CE PLUS - Nota 012632

Módulo: CÂMBIO FINANCEIRO

Funcionalidade: SISCOSERV

Data/Hora da Publicação: 15/05/2013 09:32:00

Data/Hora Última Alteração: 15/05/2013 09:32:00

Descrição da Nota: CARGA SISCOSERV

Sintoma

Desenvolvimento de Programa para de Carga dos processos de SISCOSERV

 

 

Solução

Desenvolvimento de Programa para de Carga dos processos de SISCOSERV

 

Versões Tratadas

9.0


Pré-Requisitos

Produto:

Nota

Descrição

SISCOSERV

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 12632 Data: 30/10/2012 Hora: 13:19:24

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 12632

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 9.0

Pacote                   : 00002

Agrupamento              : 00136

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

12480  - 00001 - 9.0    - 00001  - SISCOSERV

----------------------------------------------------------------------------------------------------

CARGA SISCOSERV

----------------------------------------------------------------------------------------------------

Palavras Chave:

CARGA SISCOSERV - SISCOSERV

 

----------------------------------------------------------------------------------------------------

Objetos da nota:

TABD /PWS/ZYCAE004

FUNC /PWS/ZYCA_CARGA_SICOSERV_CONTR

FUNC /PWS/ZYCA_CARGA_SICOSERV_ASSOC

REPS /PWS/LZYCAGFF01

REPT /PWS/SAPLZYCAGF

TRAN /PWS/ZYCAR022

REPS /PWS/ZYCAR022

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em TABD /PWS/ZYCAE004

CRIAR ESTRUTURA: /PWS/ZYCAE004

DESCRIÇÃO BREVE: Erros Carga Siscoserv

 

COMPONENTES NOVOS

COMPONENTE:     TP. COMP:      DTDD  COMPR.  CASAS DEC.    TAB.REF.:       CPO.REF.:    AJUD. PESQU.

ORDEM_SERVICO                  CHAR   20

NRSEQ           /PWS/ZYCAL053

OPERACAO        /PWS/ZYCAL027

FATURA          /PWS/ZYCAL054

CAMPO           CHAR30

MSG                            CHAR   60

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/LZYCAGFF01

 

...

    IF sy-subrc = 0.

      CALL FUNCTION 'J_1BBUILD_CGC'

           EXPORTING

                cgc_company = v_cgc_company

                cgc_branch  = j_1bbranch-cgc_branch

           IMPORTING

                cgc_number  = p_cgcnumber.

    ENDIF.

  ENDIF.

ENDFORM.

* >> Início da inclusão:

form verifica_cabecalho tables   p_erro     structure /pws/zycae004

                        using    p_zycat030 structure /pws/zycat030.

  data: wa_erro type /pws/zycae004.

  if p_zycat030-bukrs is initial.

    wa_erro-campo = text-012.

    wa_erro-msg   = text-e02.

    append wa_erro to p_erro.

  endif.

  if p_zycat030-j_1bbranch is initial.

    wa_erro-campo = text-013.

    wa_erro-msg   = text-e02.

    append wa_erro to p_erro.

  endif.

  if p_zycat030-tp_processo is initial.

    wa_erro-campo = text-014.

    wa_erro-msg   = text-e02.

    append wa_erro to p_erro.

  endif.

  if p_zycat030-cod_pais is initial.

    wa_erro-campo = text-015.

    wa_erro-msg   = text-e02.

    append wa_erro to p_erro.

  endif.

  if p_zycat030-bukrs_ext is initial.

    wa_erro-campo = text-016.

    wa_erro-msg   = text-e02.

    append wa_erro to p_erro.

  endif.

  if p_zycat030-waers is initial.

    wa_erro-campo = text-017.

    wa_erro-msg   = text-e02.

    append wa_erro to p_erro.

  endif.

endform.

form verifica_operacoes tables   p_zycat031 structure /pws/zycat031

                                 p_zycat032 structure /pws/zycat032

                                 p_erro     structure /pws/zycae004

                        using    p_zycat030 structure /pws/zycat030.

  data: wa_zycat031 type /pws/zycat031,

        wa_erro     type /pws/zycae004.

  if p_zycat031[] is initial.

    wa_erro-msg = text-e05.

    append wa_erro to p_erro.

  endif.

  loop at p_zycat031 into wa_zycat031.

    if wa_zycat031-operacao is initial.

      wa_erro-campo = text-018.

      wa_erro-msg   = text-e02.

      append wa_erro to p_erro.

    endif.

    if wa_zycat031-nbs is initial.

      wa_erro-operacao = wa_zycat031-operacao.

      wa_erro-campo = text-018.

      wa_erro-msg   = text-e02.

      append wa_erro to p_erro.

    endif.

    if wa_zycat031-cod_pais is initial.

      wa_erro-operacao = wa_zycat031-operacao.

      wa_erro-campo = text-019.

      wa_erro-msg   = text-e02.

      append wa_erro to p_erro.

    endif.

    if wa_zycat031-modo_prest is initial.

      wa_erro-operacao = wa_zycat031-operacao.

      wa_erro-campo = text-020.

      wa_erro-msg   = text-e02.

      append wa_erro to p_erro.

    endif.

    if wa_zycat031-data_ini is initial.

      wa_erro-operacao = wa_zycat031-operacao.

      wa_erro-campo = text-021.

      wa_erro-msg   = text-e02.

      append wa_erro to p_erro.

    elseif wa_zycat031-data_ini > sy-datum.

      wa_erro-operacao = wa_zycat031-operacao.

      wa_erro-campo = text-021.

      wa_erro-msg   = text-e03.

      append wa_erro to p_erro.

    endif.

    if wa_zycat031-data_fim is initial.

      wa_erro-operacao = wa_zycat031-operacao.

      wa_erro-campo = text-022.

      wa_erro-msg   = text-e02.

      append wa_erro to p_erro.

    elseif wa_zycat031-data_fim < wa_zycat031-data_ini.

      wa_erro-operacao = wa_zycat031-operacao.

      wa_erro-campo = text-022.

      wa_erro-msg   = text-e04.

      append wa_erro to p_erro.

    endif.

    if wa_zycat031-valor is initial.

      wa_erro-operacao = wa_zycat031-operacao.

      wa_erro-campo = text-023.

      wa_erro-msg   = text-e02.

      append wa_erro to p_erro.

    endif.

  endloop.

endform.

form carga_ras_rvs tables   p_zycat031 structure /pws/zycat031

                            p_zycat032 structure /pws/zycat032

                            p_zycat033 structure /pws/zycat033

                            p_tline    structure tline

                            p_retorno  structure /pws/zycae004

                   using    p_zycat030 structure /pws/zycat030.

  data: wa_zycat031 type /pws/zycat031,

        wa_zycat032 type /pws/zycat032,

        wa_zycat033 type /pws/zycat033,

        wa_retorno  type /pws/zycae004,

        wa_thead    type thead,

        v_valor     type /pws/zycat030-valor,

        v_saldo     type /pws/zycat030-saldo,

        v_processo  type /pws/zycat038-processo,

        v_funcionalidade type /pws/zyglt390-programa

                       value '/PWS/SAPMZYCA011',

        v_identificador  type /pws/zyglt390-identificador.

  loop at p_zycat031 into wa_zycat031.

    v_valor = v_valor + wa_zycat031-valor.

    v_saldo = v_saldo + wa_zycat031-saldo.

  endloop.

  p_zycat030-valor = v_valor.

  p_zycat030-saldo = v_saldo.

  perform busca_sequencial_siscoserv changing p_zycat030-nrseq.

  insert into /pws/zycat030 values p_zycat030.

  while sy-subrc ne 0.

    perform busca_sequencial_siscoserv changing p_zycat030-nrseq.

    insert into /pws/zycat030 values p_zycat030.

  endwhile.

  move-corresponding p_zycat030 to /pws/zycat030.

  move /pws/zycat030-nrseq      to v_identificador.

  perform carrega_log using '/PWS/ZYCAT030'

                            'I'

                            sy-tcode

                            v_funcionalidade

                            v_identificador.

  wa_retorno-nrseq = p_zycat030-nrseq.

  wa_retorno-msg   = text-s01.

  loop at p_zycat031 into wa_zycat031.

    wa_zycat031-nrseq = p_zycat030-nrseq.

    wa_zycat031-saldo = wa_zycat031-valor.

    wa_zycat031-waers = p_zycat030-waers.

    modify p_zycat031 from wa_zycat031

      index sy-tabix.

  endloop.

  modify /pws/zycat031 from table p_zycat031.

  loop at p_zycat031 into wa_zycat031.

    move-corresponding wa_zycat031 to /pws/zycat031.

    move /pws/zycat031-nrseq      to v_identificador.

    perform carrega_log using '/PWS/ZYCAT031'

                              'I'

                              sy-tcode

                              v_funcionalidade

                              v_identificador.

  endloop.

  loop at p_zycat032 into wa_zycat032.

    wa_zycat032-nrseq = p_zycat030-nrseq.

    modify p_zycat032 from wa_zycat032

      index sy-tabix.

  endloop.

  modify /pws/zycat032 from table p_zycat032.

  loop at p_zycat032 into wa_zycat032.

    move-corresponding wa_zycat032 to /pws/zycat032.

    move /pws/zycat032-nrseq      to v_identificador.

    perform carrega_log using '/PWS/ZYCAT032'

                              'I'

                              sy-tcode

                              v_funcionalidade

                              v_identificador.

  endloop.

  loop at p_zycat033 into wa_zycat033.

    wa_zycat033-nrseq = p_zycat030-nrseq.

    modify p_zycat033 from wa_zycat033

      index sy-tabix.

  endloop.

  modify /pws/zycat033 from table p_zycat033.

  loop at p_zycat033 into wa_zycat033.

    move-corresponding wa_zycat033 to /pws/zycat033.

    move /pws/zycat031-nrseq      to v_identificador.

    perform carrega_log using '/PWS/ZYCAT033'

                              'I'

                              sy-tcode

                              v_funcionalidade

                              v_identificador.

  endloop.

  if not p_tline[] is initial.

    wa_thead-tdobject   = '/PWS/CA011'.

    wa_thead-tdname     = p_zycat030-nrseq.

    wa_thead-tdid       = 'CA11'.

    wa_thead-tdspras    = sy-langu.

    wa_thead-tdlinesize = '070'.

    call function 'SAVE_TEXT'

      exporting

        client          = sy-mandt

        header          = wa_thead

        insert          = 'X'

        savemode_direct = 'X'

        owner_specified = 'X'

      tables

        lines           = p_tline[]

      exceptions

        id              = 1

        language        = 2

        name            = 3

        object          = 4

        others          = 5.

    if sy-subrc eq 0 or sy-subrc eq 5.

    else.

      p_retorno-msg = text-e06.

    endif.

  endif.

  if p_zycat030-tp_processo = 'V'.

    v_processo = 'IRVS'.

  elseif p_zycat030-tp_processo = 'A'.

    v_processo = 'IRAS'.

  endif.

  call function '/PWS/ZYCA_GERA_XML_SISCOSERV'

       exporting

            i_processo = v_processo

            i_zycat030 = p_zycat030

       tables

            i_zycat031 = p_zycat031

            i_zycat032 = p_zycat032

            i_zycat033 = p_zycat033

            i_infcomp  = p_tline

       exceptions

            xml_error  = 1.

  if sy-subrc ne 0.

    wa_retorno-msg = text-e07.

  endif.

  append wa_retorno to p_retorno.

  commit work.

endform.

form busca_sequencial_siscoserv changing p_nrseq.

  data: v_nrseq    type /pws/zycat030-nrseq,

        v_ano(3),

        v_count(6) type n.

  concatenate '%' sy-datum+2(2) into v_ano.

  select max( nrseq ) into (v_nrseq)

    from /pws/zycat030

    where nrseq like v_ano.

  v_count = v_nrseq+0(6) + 1.

  concatenate v_count sy-datum+2(2) into p_nrseq.

endform.

form verifica_bloqueio tables   p_retorno  structure /pws/zycae004

                       using    p_zycat039 structure /pws/zycat039

                       changing p_bloqueio.

  data: wa_retorno  type /pws/zycae004.

  call function 'ENQUEUE_/PWS/EZYCAT030'

       exporting

            nrseq          = p_zycat039-nrseq

       exceptions

            foreign_lock   = 1

            system_failure = 2

            others         = 3.

  if sy-subrc = 0.

    call function 'ENQUEUE_/PWS/EZYCAT031'

         exporting

              nrseq          = p_zycat039-nrseq

              operacao       = p_zycat039-operacao

         exceptions

              foreign_lock   = 1

              system_failure = 2

              others         = 3.

    if sy-subrc <> 0.

      move: p_zycat039-nrseq    to wa_retorno-nrseq,

            p_zycat039-operacao to wa_retorno-operacao,

            text-e09             to wa_retorno-msg.

      append wa_retorno to p_retorno.

      p_bloqueio = 'X'.

    endif.

  else.

    move: p_zycat039-nrseq    to wa_retorno-nrseq,

          text-e08             to wa_retorno-msg.

    append wa_retorno to p_retorno.

    p_bloqueio = 'X'.

  endif.

endform.

form desbloqueia_registros using  p_zycat039 structure /pws/zycat039.

  call function 'DEQUEUE_/PWS/EZYCAT030'

       exporting

            nrseq = p_zycat039-nrseq.

  if sy-subrc ne 0.

  endif.

  call function 'DEQUEUE_/PWS/EZYCAT031'

       exporting

            nrseq    = p_zycat039-nrseq

            operacao = p_zycat039-operacao.

  if sy-subrc ne 0.

  endif.

endform.

form carrega_associacao tables   p_retorno  structure /pws/zycae004

                                 p_zycat039 structure /pws/zycat039.

  data: itab_zycat030 type table of /pws/zycat030,

        itab_zycat031 type table of /pws/zycat031,

        wa_zycat030   type /pws/zycat030,

        wa_zycat031   type /pws/zycat031,

        wa_zycat039   type /pws/zycat039,

        wa_retorno    type /pws/zycae004,

        v_saldo       type /pws/zycat031-saldo,

        v_processo    type /pws/zycat038-processo,

        v_erro,

        v_funcionalidade type /pws/zyglt390-programa

                         value '/PWS/SAPMZYCA012',

        v_identificador  type /pws/zyglt390-identificador.

  select * from /pws/zycat031

    into table itab_zycat031

    for all entries in p_zycat039

    where nrseq    = p_zycat039-nrseq

      and operacao = p_zycat039-operacao.

  select * from /pws/zycat030

    into table itab_zycat030

    for all entries in p_zycat039

    where nrseq = p_zycat039-nrseq.

  loop at p_zycat039 into wa_zycat039.

    clear: v_erro, v_saldo, wa_zycat031, wa_zycat030.

    read table itab_zycat031 into wa_zycat031

      with key nrseq    = wa_zycat039-nrseq

               operacao = wa_zycat039-operacao.

    if sy-subrc ne 0.

      move: wa_zycat039-nrseq    to wa_retorno-nrseq,

            wa_zycat039-operacao to wa_retorno-operacao,

            wa_zycat039-fatura   to wa_retorno-fatura,

            text-e10             to wa_retorno-msg.

      append wa_retorno to p_retorno.

      continue.

    endif.

    read table itab_zycat030 into wa_zycat030

      with key nrseq = wa_zycat039-nrseq.

    perform verifica_bloqueio tables   p_retorno

                              using    wa_zycat039

                              changing v_erro.

    if not v_erro is initial.

      continue.

    endif.

    v_saldo = wa_zycat031-saldo - wa_zycat039-valor.

    if v_saldo < 0.

      move: wa_zycat039-nrseq    to wa_retorno-nrseq,

            wa_zycat039-operacao to wa_retorno-operacao,

            wa_zycat039-fatura   to wa_retorno-fatura,

            text-e11             to wa_retorno-msg.

      append wa_retorno to p_retorno.

      perform desbloqueia_registros using wa_zycat039.

      continue.

    endif.

    perform valida_campos tables   p_retorno

                          using    wa_zycat030

                          changing wa_zycat039

                                   v_erro.

    check v_erro is initial.

    modify /pws/zycat039 from wa_zycat039.

    if sy-subrc eq 0.

      move-corresponding wa_zycat039 to /pws/zycat039.

      move /pws/zycat039-nrseq to v_identificador.

      perform carrega_log using '/PWS/ZYCAT039'

                                'I'

                                sy-tcode

                                v_funcionalidade

                                v_identificador.

      wa_zycat031-saldo = v_saldo.

      modify itab_zycat031 from wa_zycat031

        transporting saldo

        where nrseq    = wa_zycat031-nrseq

          and operacao = wa_zycat031-operacao.

      modify /pws/zycat031 from wa_zycat031.

      v_funcionalidade = '/PWS/SAPMZYCA011'.

      move-corresponding wa_zycat031 to /pws/zycat031.

      move /pws/zycat031-nrseq to v_identificador.

      perform carrega_log using '/PWS/ZYCAT031'

                                'U'

                                sy-tcode

                                v_funcionalidade

                                v_identificador.

      wa_zycat030-saldo = wa_zycat030-saldo - wa_zycat039-valor.

      modify itab_zycat030 from wa_zycat030

        transporting saldo

        where nrseq = wa_zycat030-nrseq.

      modify /pws/zycat030 from wa_zycat030.

      move-corresponding wa_zycat030 to /pws/zycat030.

      move /pws/zycat030-nrseq to v_identificador.

      perform carrega_log using '/PWS/ZYCAT030'

                                'U'

                                sy-tcode

                                v_funcionalidade

                                v_identificador.

      if wa_zycat030-tp_processo = 'V'.

        v_processo = 'IRF'.

      elseif wa_zycat030-tp_processo = 'A'.

        v_processo = 'IRP'.

      endif.

      call function '/PWS/ZYCA_GERA_XML_SISCOSERV'

           exporting

                i_processo = v_processo

                i_zycat030 = wa_zycat030

                i_zycat039 = wa_zycat039

           exceptions

                xml_error  = 1.

      if sy-subrc ne 0.

      endif.

      move: wa_zycat039-nrseq    to wa_retorno-nrseq,

            wa_zycat039-operacao to wa_retorno-operacao,

            wa_zycat039-fatura   to wa_retorno-fatura,

            text-s02             to wa_retorno-msg.

            append wa_retorno    to p_retorno.

    endif.

    perform desbloqueia_registros using wa_zycat039.

    commit work.

  endloop.

endform.

form valida_campos tables   p_erro     structure /pws/zycae004

                   using    p_zycat030 structure /pws/zycat030

                   changing p_zycat039 structure /pws/zycat039

                            p_v_erro.

  data: wa_erro type /pws/zycae004.

  if p_zycat039-fatura is initial.

    wa_erro-nrseq    = p_zycat039-nrseq.

    wa_erro-operacao = p_zycat039-operacao.

    wa_erro-campo = text-024.

    wa_erro-msg   = text-e02.

    append wa_erro to p_erro.

    p_v_erro = 'X'.

  endif.

  if p_zycat039-dt_pg_rec is initial.

    wa_erro-nrseq    = p_zycat039-nrseq.

    wa_erro-operacao = p_zycat039-operacao.

    wa_erro-fatura   = p_zycat039-fatura.

    wa_erro-campo = text-025.

    wa_erro-msg   = text-e02.

    append wa_erro to p_erro.

    p_v_erro = 'X'.

  endif.

  if p_zycat039-moeda is initial.

    wa_erro-nrseq    = p_zycat039-nrseq.

    wa_erro-operacao = p_zycat039-operacao.

    wa_erro-fatura   = p_zycat039-fatura.

    wa_erro-campo = text-027.

    wa_erro-msg   = text-e02.

    append wa_erro to p_erro.

    p_v_erro = 'X'.

  elseif p_zycat039-moeda ne p_zycat030-waers.

    wa_erro-nrseq    = p_zycat039-nrseq.

    wa_erro-operacao = p_zycat039-operacao.

    wa_erro-fatura   = p_zycat039-fatura.

    wa_erro-campo = text-027.

    wa_erro-msg   = text-e12.

    append wa_erro to p_erro.

    p_v_erro = 'X'.

  endif.

  if p_zycat039-valor is initial.

    wa_erro-nrseq    = p_zycat039-nrseq.

    wa_erro-operacao = p_zycat039-operacao.

    wa_erro-fatura   = p_zycat039-fatura.

    wa_erro-campo = text-026.

    wa_erro-msg   = text-e02.

    append wa_erro to p_erro.

    p_v_erro = 'X'.

  endif.

  if not p_v_erro is initial.

    perform desbloqueia_registros using p_zycat039.

  endif.

endform.

* << Fim da inclusão

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em FUNC /PWS/ZYCA_CARGA_SICOSERV_CONTR

 

CRIAR MÓDULO DE FUNÇÃO: /PWS/ZYCA_CARGA_SICOSERV_CONTR

CARACTERÍSTICAS

 

CLASSIFICAÇÃO:

GRUPO DE FUNÇÕES: /PWS/ZYCAGF

TEXTO BREVE: Carga Contratos Siscoserv

 

TIPO DE EXECUÇÃO:

(_) - MÓDULO DE FUNÇÃO NORMAL

(X) - MÓDULO DE ACESSO REMOTO

(_) - MÓDULO DE ATUALIZAÇÃO

     (X) - INÍCIO IMEDIATO

     (_) - INÍCIO IMEDIATO-SEM ATUAL.POSTER.

     (_) - INÍC. RETARDADO

     (_) - PROCES. CLOETIVO

 

DADOS GERAIS:

(_) - BLOQUEIO PROCESSO

(_) - GLOBAL

 

IMPORTAÇÃO:

NOME PARAM.   ATRIB. TIPO REFERÊNCIA  VL. PROPOSTO OPCIONAL TRANSF. TEXT

I_ZYCAT030    TYPE   /PWS/ZYCAT030                             X

 

TABELAS:

NOME PARAM.   ATRIB. TIPO REFERÊNCIA  OPCIONAL TEXTO BREVE

I_ZYCAT031    LIKE   /PWS/ZYCAT031

I_ZYCAT032    LIKE   /PWS/ZYCAT032       X

I_ZYCAT033    LIKE   /PWS/ZYCAT033       X

I_TLINE       LIKE   TLINE               X

E_RETORNO     LIKE   /PWS/ZYCAE004

 

EXCEÇÕES:

EXCEÇÃO                    TEXTO BREVE

ERRO_CARGA                 Falha Validações RAS/RVS

 

* >> Início da inclusão:

FUNCTION /pws/zyca_carga_sicoserv_contr.

  TABLES: /pws/zycat037.

  DATA: wa_erro TYPE /pws/zycae004.

  SELECT SINGLE * FROM /pws/zycat037

    WHERE usuario = sy-uname.

  IF sy-subrc NE 0.

    MOVE: text-e01 TO wa_erro-msg.

    APPEND wa_erro TO e_retorno.

  ENDIF.

  PERFORM verifica_cabecalho TABLES e_retorno

                             USING  i_zycat030.

  PERFORM verifica_operacoes TABLES i_zycat031

                                    i_zycat032

                                    e_retorno

                             USING  i_zycat030.

  IF NOT e_retorno[] IS INITIAL.

    RAISE erro_carga.

  ENDIF.

  PERFORM carga_ras_rvs TABLES i_zycat031

                               i_zycat032

                               i_zycat033

                               i_tline

                               e_retorno

                        USING  i_zycat030.

ENDFUNCTION.

* << Fim da inclusão

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em FUNC /PWS/ZYCA_CARGA_SICOSERV_ASSOC

 

CRIAR MÓDULO DE FUNÇÃO: /PWS/ZYCA_CARGA_SICOSERV_ASSOC

CARACTERÍSTICAS

 

CLASSIFICAÇÃO:

GRUPO DE FUNÇÕES: /PWS/ZYCAGF

TEXTO BREVE:  Carga Associações Siscoserv

 

TIPO DE EXECUÇÃO:

(_) - MÓDULO DE FUNÇÃO NORMAL

(X) - MÓDULO DE ACESSO REMOTO

(_) - MÓDULO DE ATUALIZAÇÃO

     (X) - INÍCIO IMEDIATO

     (_) - INÍCIO IMEDIATO-SEM ATUAL.POSTER.

     (_) - INÍC. RETARDADO

     (_) - PROCES. CLOETIVO

 

DADOS GERAIS:

(_) - BLOQUEIO PROCESSO

(_) - GLOBAL

 

                      X

 

TABELAS:

NOME PARAM.   ATRIB. TIPO REFERÊNCIA  OPCIONAL TEXTO BREVE

I_ZYCAT039    LIKE   /PWS/ZYCAT039

E_RETORNO     LIKE   /PWS/ZYCAE004

 

EXCEÇÕES:

EXCEÇÃO                    TEXTO BREVE

ERRO_CARGA                 Falha Validações RAS/RVS

 

* >> Início da inclusão:

FUNCTION /pws/zyca_carga_sicoserv_assoc.

  DATA: wa_retorno   TYPE /pws/zycae004.

  SELECT SINGLE * FROM /pws/zycat037

    WHERE usuario = sy-uname.

  IF sy-subrc NE 0.

    MOVE: text-e01 TO wa_retorno-msg.

    APPEND wa_retorno TO e_retorno.

    RAISE erro_carga.

  ENDIF.

  PERFORM carrega_associacao  TABLES   e_retorno

                                       i_zycat039.

ENDFUNCTION.

* << Fim da inclusão

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPT /PWS/SAPLZYCAGF

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 012

 

Texto: (7 caracteres)

"Company"

 

Comprimento máximo: 7

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 012

 

Texto: (7 caracteres)

"Empresa"

 

Comprimento máximo: 7

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 012

 

Texto: (7 caracteres)

"compañi"

 

Comprimento máximo: 7

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 013

 

Texto: (6 caracteres)

"Branch"

 

Comprimento máximo: 6

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 013

 

Texto: (6 caracteres)

"Filial"

 

Comprimento máximo: 6

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 013

 

Texto: (6 caracteres)

"Filial"

 

Comprimento máximo: 6

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 014

 

Texto: (15 caracteres)

"Import Modality"

 

Comprimento máximo: 16

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 014

 

Texto: (16 caracteres)

"Tipo de Processo"

 

Comprimento máximo: 16

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 014

 

Texto: (16 caracteres)

"Tipo del Proceso"

 

Comprimento máximo: 16

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 015

 

Texto: (28 caracteres)

"Country Code Outside Company"

 

Comprimento máximo: 28

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 015

 

Texto: (28 caracteres)

"Código País Empresa Exterior"

 

Comprimento máximo: 28

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 015

 

Texto: (28 caracteres)

"País Código de la Empresa Ex"

 

Comprimento máximo: 28

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 016

 

Texto: (15 caracteres)

"Outside Company"

 

Comprimento máximo: 19

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 016

 

Texto: (19 caracteres)

"Empresa no Exterior"

 

Comprimento máximo: 19

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 016

 

Texto: (16 caracteres)

"Empresa Exterior"

 

Comprimento máximo: 19

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 017

 

Texto: (5 caracteres)

"Curr."

 

Comprimento máximo: 5

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 017

 

Texto: (5 caracteres)

"Moeda"

 

Comprimento máximo: 5

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 017

 

Texto: (5 caracteres)

"Moned"

 

Comprimento máximo: 5

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 018

 

Texto: (12 caracteres)

"Oper. Number"

 

Comprimento máximo: 12

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 018

 

Texto: (12 caracteres)

"Nº. Operação"

 

Comprimento máximo: 12

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 018

 

Texto: (12 caracteres)

"Nº Operación"

 

Comprimento máximo: 12

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 019

 

Texto: (26 caracteres)

"Country Code Service Deliv"

 

Comprimento máximo: 26

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 019

 

Texto: (26 caracteres)

"Código País Prest. Serviço"

 

Comprimento máximo: 26

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 019

 

Texto: (26 caracteres)

"Prov servicios Cód del paí"

 

Comprimento máximo: 26

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 020

 

Texto: (14 caracteres)

"Rendering Mode"

 

Comprimento máximo: 14

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 020

 

Texto: (14 caracteres)

"Modo Prestação"

 

Comprimento máximo: 14

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 020

 

Texto: (14 caracteres)

"Rendering Mode"

 

Comprimento máximo: 14

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 021

 

Texto: (20 caracteres)

"Operation Start Date"

 

Comprimento máximo: 20

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 021

 

Texto: (20 caracteres)

"Data Início Operação"

 

Comprimento máximo: 20

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 021

 

Texto: (20 caracteres)

"Fecha Inicio Operaci"

 

Comprimento máximo: 20

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 022

 

Texto: (17 caracteres)

"Operation End Dat"

 

Comprimento máximo: 17

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 022

 

Texto: (17 caracteres)

"Data Fim Operação"

 

Comprimento máximo: 17

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 022

 

Texto: (17 caracteres)

"Fecha Fim Operaci"

 

Comprimento máximo: 17

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 023

 

Texto: (11 caracteres)

"Oper. Value"

 

Comprimento máximo: 14

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 023

 

Texto: (14 caracteres)

"Valor Operação"

 

Comprimento máximo: 14

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 023

 

Texto: (14 caracteres)

"Valor de la Op"

 

Comprimento máximo: 14

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 024

 

Texto: (6 caracteres)

"Invoic"

 

Comprimento máximo: 6

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 024

 

Texto: (6 caracteres)

"Fatura"

 

Comprimento máximo: 6

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 024

 

Texto: (6 caracteres)

"Factur"

 

Comprimento máximo: 6

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 025

 

Texto: (14 caracteres)

"Pay./Rec. Date"

 

Comprimento máximo: 16

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 025

 

Texto: (16 caracteres)

"Data Pgto/Receb."

 

Comprimento máximo: 16

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 025

 

Texto: (16 caracteres)

"Fecha Pago/Recib"

 

Comprimento máximo: 16

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 026

 

Texto: (5 caracteres)

"Value"

 

Comprimento máximo: 5

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 026

 

Texto: (5 caracteres)

"Valor"

 

Comprimento máximo: 5

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 026

 

Texto: (5 caracteres)

"Valor"

 

Comprimento máximo: 5

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 027

 

Texto: (8 caracteres)

"Currency"

 

Comprimento máximo: 132

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 027

 

Texto: (5 caracteres)

"Moeda"

 

Comprimento máximo: 132

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 027

 

Texto: (6 caracteres)

"Moneda"

 

Comprimento máximo: 132

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: E01

 

Texto: (53 caracteres)

"User not registered. Check /PWS/ZYCAT037 transaction;"

 

Comprimento máximo: 58

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: E01

 

Texto: (58 caracteres)

"Usuário não cadastrado. Verificar transação /PWS/ZYCAT037."

 

Comprimento máximo: 58

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: E01

 

Texto: (58 caracteres)

"Usuario no registrado. Compruebe la transacción /PWS/ZYCAT"

 

Comprimento máximo: 58

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: E02

 

Texto: (29 caracteres)

"Mandatory field is not filled"

 

Comprimento máximo: 33

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: E02

 

Texto: (33 caracteres)

"Campo obrigatório não preenchido."

 

Comprimento máximo: 33

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: E02

 

Texto: (33 caracteres)

"Los campos obligatorios sin relle"

 

Comprimento máximo: 33

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: E03

 

Texto: (23 caracteres)

"Future date not allowed"

 

Comprimento máximo: 25

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: E03

 

Texto: (25 caracteres)

"Data Futura não permitida"

 

Comprimento máximo: 25

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: E03

 

Texto: (25 caracteres)

"Fecha futura no permitido"

 

Comprimento máximo: 25

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: E04

 

Texto: (29 caracteres)

"End Data less than Start Date"

 

Comprimento máximo: 30

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: E04

 

Texto: (30 caracteres)

"Data Fim menor que Data Início"

 

Comprimento máximo: 30

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: E04

 

Texto: (30 caracteres)

"Fecha de Fecha de finalización"

 

Comprimento máximo: 30

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: E05

 

Texto: (29 caracteres)

"Fill Operation(s) for RAS/RVS"

 

Comprimento máximo: 37

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: E05

 

Texto: (37 caracteres)

"Informar Operação(ões) para a RAS/RVS"

 

Comprimento máximo: 37

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: E05

 

Texto: (34 caracteres)

"Informar Operaciones a los RAS/RVS"

 

Comprimento máximo: 37

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: E06

 

Texto: (40 caracteres)

"Error in recording Additional informatio"

 

Comprimento máximo: 40

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: E06

 

Texto: (40 caracteres)

"Erro na gravação da Inform. Complementar"

 

Comprimento máximo: 40

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: E06

 

Texto: (40 caracteres)

"Error en la grabación de Inform.Complem."

 

Comprimento máximo: 40

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: E07

 

Texto: (23 caracteres)

"Error in generating XML"

 

Comprimento máximo: 23

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: E07

 

Texto: (23 caracteres)

"Erro na geração do XML."

 

Comprimento máximo: 23

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: E07

 

Texto: (23 caracteres)

"Error en generación XML"

 

Comprimento máximo: 23

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: E08

 

Texto: (30 caracteres)

"RAS/RVS locked by another user"

 

Comprimento máximo: 36

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: E08

 

Texto: (36 caracteres)

"RAS/RVS bloqueada por outro usuário."

 

Comprimento máximo: 36

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: E08

 

Texto: (35 caracteres)

"RAS/RVS bloqueados por otro usuario"

 

Comprimento máximo: 36

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: E09

 

Texto: (32 caracteres)

"Operation locked by another user"

 

Comprimento máximo: 37

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: E09

 

Texto: (37 caracteres)

"Operação bloqueada por outro usuário."

 

Comprimento máximo: 37

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: E09

 

Texto: (37 caracteres)

"Operacione bloqueados por otro usuari"

 

Comprimento máximo: 37

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: E10

 

Texto: (28 caracteres)

"RAS/RVS / Operaton not found"

 

Comprimento máximo: 35

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: E10

 

Texto: (35 caracteres)

"RAS/RVS / Operação não encontrados."

 

Comprimento máximo: 35

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: E10

 

Texto: (35 caracteres)

"RAS/RVS / Operación no se ha encont"

 

Comprimento máximo: 35

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: E11

 

Texto: (34 caracteres)

"Insufficient funds for association"

 

Comprimento máximo: 35

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: E11

 

Texto: (35 caracteres)

"Saldo insuficiente para Associação."

 

Comprimento máximo: 35

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: E11

 

Texto: (35 caracteres)

"Asociación insuficientes para equil"

 

Comprimento máximo: 35

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: E12

 

Texto: (42 caracteres)

"Invoice currency differs from the Contract"

 

Comprimento máximo: 43

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: E12

 

Texto: (43 caracteres)

"Moeda da Fatura difere da Moeda do Contrato"

 

Comprimento máximo: 43

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: E12

 

Texto: (43 caracteres)

"Moneda de la factura diferente de la Contra"

 

Comprimento máximo: 43

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: S01

 

Texto: (26 caracteres)

"RAS/RVS successfully gener"

 

Comprimento máximo: 26

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: S01

 

Texto: (26 caracteres)

"RAS/RVS gerada com sucesso"

 

Comprimento máximo: 26

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: S02

 

Texto: (29 caracteres)

"Association successfully gene"

 

Comprimento máximo: 29

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: S02

 

Texto: (29 caracteres)

"Associação gerada com sucesso"

 

Comprimento máximo: 29

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYCAR022

 

CRIAR O PROGRAMA /PWS/ZYCAR022 COM AS CARACTERÍSTICAS ABAIXO:

TÍTULO: Carga SISCOSERV

CATEGORIA: Programa Executável

CL. DESENVOLVIMENTO: /PWS/ZYCA

 

* >> Início da inclusão:

report  /pws/zycar022  no standard page heading message-id /pws/zycbm.

include /pws/z_rel_alv.

types:

  begin of ty_cabec,

    nrseq(8)       type c,

    bukrs(4)       type c,

    j_1bbranch(4)  type c,

    tp_processo(1) type c,

    bukrs_ext(10)  type c,

    cod_pais(5)    type c,

    nif(40)        type c,

    waers(5)       type c,

    n_rvs_ras(12)  type c,

  end of ty_cabec,

  begin of ty_opera,

    nrseq(8)       type c,

    operacao(4)    type c,

    nbs(12)        type c,

    cod_pais(5)    type c,

    modo_prest(1)  type c,

    data_ini(10)   type c,

    data_fim(10)   type c,

    valor(18)      type c,

  end of ty_opera,

  begin of ty_enqua,

    nrseq(8)       type c,

    operacao(4)    type c,

    cod_enquad(10) type c,

    numero_rc(9)   type c,

  end of ty_enqua,

  begin of ty_redi,

    nrseq(8)       type c,

    re(13)         type c,

    di(12)         type c,

  end of ty_redi,

  begin of ty_assoc,

    nrseq(8)      type c,

    operacao(4)   type c,

    fatura(20)    type c,

    num_nf(20)    type c,

    dt_pg_rec(10) type c,

    moeda(5)      type c,

    valor(18)     type c,

    vme(18)       type c,

    re(13)        type c,

    di(12)        type c,

  end of ty_assoc.

data: itab_cabec      type table of ty_cabec,

      itab_opera      type table of ty_opera,

      itab_enqua      type table of ty_enqua,

      itab_redi       type table of ty_redi ,

      itab_assoc      type table of ty_assoc,

      itab_retorno    type table of /pws/zycae004,

      itab_fieldcat   type table of kkblo_fieldcat,

      itab_listheader type slis_t_listheader,

      itab_sort       type table of slis_sortinfo_alv.

data: wa_variante  type disvariant.

selection-screen begin of block bl1 with frame title text-t01.

parameters: r_contr as checkbox user-command rcontr,

            r_assoc as checkbox user-command rassoc .

selection-screen skip 1.

parameters: p_cabec like rlgrap-filename ,

            p_opera like rlgrap-filename ,

            p_enqua like rlgrap-filename ,

            p_redi  like rlgrap-filename ,

            p_assoc like rlgrap-filename .

selection-screen skip 1.

parameters: r_header as checkbox.

selection-screen end of block bl1.

initialization.

  r_contr = 'X'.

at selection-screen on value-request for p_cabec.

  perform seleciona_arquivo changing p_cabec.

at selection-screen on value-request for p_opera.

  perform seleciona_arquivo changing p_opera.

at selection-screen on value-request for p_enqua.

  perform seleciona_arquivo changing p_enqua.

at selection-screen on value-request for p_redi.

  perform seleciona_arquivo changing p_redi.

at selection-screen on value-request for p_assoc.

  perform seleciona_arquivo changing p_assoc.

at selection-screen.

  case sy-ucomm.

    when 'RCONTR'.

      clear r_assoc.

    when 'RASSOC'.

      clear r_contr.

  endcase.

at selection-screen output.

  if not r_contr is initial.

    loop at screen.

      if screen-name    = 'P_CABEC'   or

         screen-name(9) = '%_P_CABEC' or

         screen-name    = 'P_OPERA'   or

         screen-name(9) = '%_P_OPERA' or

         screen-name    = 'P_ENQUA'   or

         screen-name(9) = '%_P_ENQUA' or

         screen-name    = 'P_REDI'    or

         screen-name(8) = '%_P_REDI'.

        screen-input    = '1'.

        screen-active   = '1'.

      elseif screen-name    = 'P_ASSOC' or

             screen-name(9) = '%_P_ASSOC'.

        screen-input    = '0'.

        screen-active   = '0'.

      endif.

      modify screen.

    endloop.

    clear: p_assoc.

  elseif not r_assoc is initial.

    loop at screen.

      if screen-name    = 'P_CABEC'   or

         screen-name(9) = '%_P_CABEC' or

         screen-name    = 'P_OPERA'   or

         screen-name(9) = '%_P_OPERA' or

         screen-name    = 'P_ENQUA'   or

         screen-name(9) = '%_P_ENQUA' or

         screen-name    = 'P_REDI'    or

         screen-name(8) = '%_P_REDI'.

        screen-input    = '0'.

        screen-active   = '0'.

      elseif screen-name    = 'P_ASSOC' or

             screen-name(9) = '%_P_ASSOC'.

        screen-input    = '1'.

        screen-active   = '1'.

      endif.

      modify screen.

    endloop.

    clear: p_cabec, p_opera, p_enqua, p_redi.

  endif.

initialization.

  clear wa_variante.

  v_repid = sy-repid.

  wa_variante-report = v_repid.

  wa_variante-username = sy-uname.

start-of-selection.

  refresh itab_retorno.

  if not r_contr is initial.

    perform carrega_ras_rvs.

  elseif not r_assoc is initial.

    perform carrega_associacao.

  endif.

  if not itab_retorno[] is initial.

    perform exibe_log.

  endif.

end-of-selection.

form seleciona_arquivo changing p_path.

  data: v_path type string.

  call function 'WS_FILENAME_GET'

       exporting

            def_filename     = ''

            def_path         = 'C:\'

            mask             = ',all files, *.*.'

            mode             = 'O'

            title            = text-001

       importing

            filename         = v_path

       exceptions

            inv_winsys       = 1

            no_batch         = 2

            selection_cancel = 3

            selection_error  = 4

            others           = 5.

  if sy-subrc = 0.

    move v_path to p_path.

  else.

  endif.

endform.

form carrega_ras_rvs.

  data: itab_zycat031 type table of /pws/zycat031,

        itab_zycat032 type table of /pws/zycat032,

        itab_zycat033 type table of /pws/zycat033,

        itab_ret      type table of /pws/zycae004,

        wa_zycat030   type /pws/zycat030,

        wa_zycat031   type /pws/zycat031,

        wa_zycat032   type /pws/zycat032,

        wa_zycat033   type /pws/zycat033,

        wa_cabec      type ty_cabec,

        wa_opera      type ty_opera,

        wa_enqua      type ty_enqua,

        wa_redi       type ty_redi,

        wa_retorno    type /pws/zycae004,

        v_erro.

  if p_cabec is initial or

     p_opera is initial.

    message i015 with text-e01 text-e02.

    exit.

  endif.

  clear: itab_cabec, itab_opera, itab_enqua, itab_redi, itab_retorno.

  refresh: itab_cabec, itab_opera, itab_enqua, itab_redi, itab_retorno.

  perform download_arquivo using p_cabec

                                 'ITAB_CABEC'

                                 v_erro.

  if not v_erro is initial.

    message i015 with text-e04.

    exit.

  endif.

  if not r_header is initial and

     not itab_cabec[] is initial.

    delete itab_cabec index 1.

  endif.

  perform download_arquivo using p_opera

                                 'ITAB_OPERA'

                                 v_erro.

  if not v_erro is initial.

    message i015 with text-e05.

    exit.

  endif.

  if not r_header is initial and

     not itab_opera[] is initial.

    delete itab_opera index 1.

  endif.

  if not p_enqua is initial.

    perform download_arquivo using p_enqua

                                   'ITAB_ENQUA'

                                   v_erro.

    if not v_erro is initial.

      message i015 with text-e06 text-e07.

    endif.

  endif.

  if not r_header is initial and

     not itab_enqua[] is initial.

    delete itab_enqua index 1.

  endif.

  if not p_redi is initial.

    perform download_arquivo using p_redi

                                   'ITAB_REDI'

                                   v_erro.

    if not v_erro is initial.

      message i015 with text-e08 text-e07.

    endif.

  endif.

  if not r_header is initial and

     not itab_redi[] is initial.

    delete itab_redi index 1.

  endif.

  loop at itab_cabec into wa_cabec.

    perform ajusta_emp changing wa_cabec-bukrs_ext.

    move-corresponding wa_cabec to wa_zycat030.

    clear: wa_zycat030-nrseq, wa_zycat030-valor.

    loop at itab_opera into wa_opera

      where nrseq = wa_cabec-nrseq.

      perform ajusta_valor using    wa_zycat030-waers

                           changing wa_opera-valor.

      perform ajusta_data changing wa_opera-data_ini.

      perform ajusta_data changing wa_opera-data_fim.

      move-corresponding wa_opera to wa_zycat031.

      clear wa_zycat031-nrseq.

      wa_zycat031-saldo = wa_zycat031-valor.

      wa_zycat031-waers = wa_zycat030-waers.

      wa_zycat030-valor = wa_zycat030-valor + wa_zycat031-valor.

      append wa_zycat031 to itab_zycat031.

      loop at itab_enqua into wa_enqua

        where nrseq    = wa_opera-nrseq

          and operacao = wa_opera-operacao.

        move-corresponding wa_enqua to wa_zycat032.

        append wa_zycat032 to itab_zycat032.

      endloop.

    endloop.

    wa_zycat030-saldo = wa_zycat030-valor.

    wa_zycat030-processamento = 'X'.

    loop at itab_redi into wa_redi

      where nrseq = wa_cabec-nrseq.

      move-corresponding wa_redi to wa_zycat033.

      append wa_zycat033 to itab_zycat033.

    endloop.

    call function '/PWS/ZYCA_CARGA_SICOSERV_CONTR'

      exporting

        i_zycat030       = wa_zycat030

      tables

        i_zycat031       = itab_zycat031

        i_zycat032       = itab_zycat032

        i_zycat033       = itab_zycat033

        e_retorno        = itab_ret

      exceptions

        erro_carga       = 1

        others           = 2.

    if sy-subrc <> 0.

    endif.

    loop at itab_ret into wa_retorno.

      move wa_cabec-nrseq to wa_retorno-ordem_servico.

      append wa_retorno to itab_retorno.

    endloop.

    refresh: itab_zycat031, itab_zycat032, itab_zycat033, itab_ret.

    clear: wa_zycat030, wa_zycat031, wa_zycat032, wa_zycat033, itab_ret.

  endloop.

endform.

form carrega_associacao.

  data: itab_zycat039 type table of /pws/zycat039,

        itab_ret      type table of /pws/zycae004,

        wa_zycat039   type /pws/zycat039,

        wa_assoc      type ty_assoc,

        wa_retorno    type /pws/zycae004,

        v_erro,

        v_nrseq(8) type n,

        v_oper(4)  type n.

  if p_assoc is initial.

    message i015 with text-e03.

    exit.

  endif.

  clear: itab_zycat039, itab_ret.

  refresh: itab_zycat039, itab_ret.

  perform download_arquivo using p_assoc

                                 'ITAB_ASSOC'

                                 v_erro.

  if not v_erro is initial.

    message i015 with text-e09.

    exit.

  endif.

  if not r_header is initial and

     not itab_assoc[] is initial.

    delete itab_assoc index 1.

  endif.

  loop at itab_assoc into wa_assoc.

    perform ajusta_data changing wa_assoc-dt_pg_rec.

    perform ajusta_valor using    wa_assoc-moeda

                         changing wa_assoc-valor.

    perform ajusta_valor using    wa_assoc-moeda

                         changing wa_assoc-vme.

    move-corresponding wa_assoc to wa_zycat039.

    move: wa_assoc-nrseq    to v_nrseq,

          v_nrseq           to wa_zycat039-nrseq,

          wa_assoc-operacao to v_oper,

          v_oper            to wa_zycat039-operacao.

    append wa_zycat039 to itab_zycat039.

    clear wa_zycat039.

  endloop.

  call function '/PWS/ZYCA_CARGA_SICOSERV_ASSOC'

       tables

            i_zycat039 = itab_zycat039

            e_retorno  = itab_ret

       exceptions

            erro_carga = 1

            others     = 2.

  if sy-subrc <> 0.

  endif.

  loop at itab_ret into wa_retorno.

    append wa_retorno to itab_retorno.

  endloop.

endform.

form download_arquivo using    p_path

                               p_itab

                               p_erro.

  data: v_download type ref to cl_gui_frontend_services,

        v_path     type string,

        v_type(10) type c value 'ASC'.

  field-symbols: <fs_itab> type any table.

  assign (p_itab) to <fs_itab>.

  if not <fs_itab> is assigned.

    p_erro = 'X'.

    exit.

  endif.

  create object v_download.

  v_path = p_path.

  call method v_download->gui_upload

    exporting

      filename            = v_path

      filetype            = v_type

      has_field_separator = 'X'

    changing

      data_tab   = <fs_itab>

    exceptions

      file_open_error         = 1

      file_read_error         = 2

      no_batch                = 3

      gui_refuse_filetransfer = 4

      invalid_type            = 5

      no_authority            = 6

      unknown_error           = 7

      bad_data_format         = 8

      header_not_allowed      = 9

      separator_not_allowed   = 10

      header_too_long         = 11

      unknown_dp_error        = 12

      access_denied           = 13

      dp_out_of_memory        = 14

      disk_full               = 15

      dp_timeout              = 16 .

  if sy-subrc ne 0.

    p_erro = 'X'.

    exit.

  else.

    unassign <fs_itab>.

  endif.

endform.

form ajusta_valor using    p_moeda type /pws/zycat030-waers

                  changing p_valor type char18.

  data: v_valor1   like wmto_s-amount,

        v_valor2   like wmto_s-amount,

        v_moeda    like tcurc-waers.

  clear sy-subrc.

  if not p_valor is initial.

    while sy-subrc eq 0.

      replace '.' with space into p_valor.

    endwhile.

    replace ',' with '.'   into p_valor.

  else.

    move '0.00' to p_valor.

  endif.

  condense p_valor no-gaps.

  clear: v_valor1,

         v_valor2.

  v_valor1 = p_valor.

  v_moeda  = p_moeda.

  call function 'CURRENCY_AMOUNT_DISPLAY_TO_SAP'

       exporting

            currency        = v_moeda

            amount_display  = v_valor1

       importing

            amount_internal = v_valor2

       exceptions

            internal_error  = 1

            others          = 2.

  if sy-subrc = 0.

  else.

  endif.

  p_valor = v_valor2.

endform.

form ajusta_data changing p_data type char10.

  if not p_data is initial.

    concatenate p_data+6(4)

                p_data+3(2)

                p_data(2)

           into p_data.

  else.

    move '00000000' to p_data.

  endif.

  condense p_data no-gaps.

endform.

form ajusta_emp changing v_valor type char10.

  data: v_lifnr like  lfa1-lifnr.

  if not v_valor is initial.

    call function 'CONVERSION_EXIT_ALPHA_INPUT'

         exporting

              input  = v_valor

         importing

              output = v_lifnr

         exceptions

              others = 1.

    v_valor = v_lifnr.

  endif.

endform.

form exibe_log.

  perform monta_fieldcat.

  perform monta_top_of_page.

  call function '/PWS/ZYGL_GERA_RELATORIO_ALV'

       exporting

            v_program      = v_repid

            v_pf_status    = 'PF_STATUS'

            v_user_command = 'USER_COMMAND'

            v_top_of_page  = 'TOP_OF_PAGE'

       tables

            i_fieldcat     = itab_fieldcat

            t_data         = itab_retorno.

endform.

form monta_fieldcat.

  data: wa_fieldcat type kkblo_fieldcat,

        v_colpos    type i.

  refresh itab_fieldcat.

  v_colpos = v_colpos + 1.

  wa_fieldcat-col_pos      = v_colpos.

  wa_fieldcat-fieldname    = 'ORDEM_SERVICO'.

  wa_fieldcat-reptext_ddic = text-t02.

  wa_fieldcat-outputlen    = '20'.

  if not p_assoc is initial.

    wa_fieldcat-no_out = 'X'.

  endif.

  append wa_fieldcat to itab_fieldcat.

  clear wa_fieldcat.

  v_colpos = v_colpos + 1.

  wa_fieldcat-col_pos      = v_colpos.

  wa_fieldcat-fieldname    = 'NRSEQ'.

  wa_fieldcat-reptext_ddic = text-t03.

  wa_fieldcat-outputlen    = '12'.

  append wa_fieldcat to itab_fieldcat.

  clear wa_fieldcat.

  v_colpos = v_colpos + 1.

  wa_fieldcat-col_pos      = v_colpos.

  wa_fieldcat-fieldname    = 'OPERACAO'.

  wa_fieldcat-reptext_ddic = text-t04.

  wa_fieldcat-outputlen    = '8'.

  append wa_fieldcat to itab_fieldcat.

  clear wa_fieldcat.

  v_colpos = v_colpos + 1.

  wa_fieldcat-col_pos      = v_colpos.

  wa_fieldcat-fieldname    = 'FATURA'.

  wa_fieldcat-reptext_ddic = text-t05.

  wa_fieldcat-outputlen    = '20'.

  if p_assoc is initial.

    wa_fieldcat-no_out = 'X'.

  endif.

  append wa_fieldcat to itab_fieldcat.

  clear wa_fieldcat.

  v_colpos = v_colpos + 1.

  wa_fieldcat-col_pos      = v_colpos.

  wa_fieldcat-fieldname    = 'CAMPO'.

  wa_fieldcat-reptext_ddic = text-t06.

  wa_fieldcat-outputlen    = '20'.

  append wa_fieldcat to itab_fieldcat.

  clear wa_fieldcat.

  v_colpos = v_colpos + 1.

  wa_fieldcat-col_pos      = v_colpos.

  wa_fieldcat-fieldname    = 'MSG'.

  wa_fieldcat-reptext_ddic = text-t07.

  wa_fieldcat-outputlen    = '60'.

  append wa_fieldcat to itab_fieldcat.

endform.

form monta_top_of_page.

  data: wa_listheader type slis_listheader,

        v_data(10)    type c,

        v_hora(08)    type c.

  refresh itab_listheader.

  write:

    sy-datum to v_data,

    sy-uzeit to v_hora.

  translate v_data using './'.

  wa_listheader-typ = 'H'.

  move text-t08 to wa_listheader-info.

  append wa_listheader to itab_listheader.

  clear wa_listheader.

  wa_listheader-typ = 'S'.

  wa_listheader-info = text-t09.

  append wa_listheader to itab_listheader.

  clear wa_listheader.

  wa_listheader-typ = 'S'.

  concatenate

    text-t10 v_data '-' text-t11 v_hora

    into wa_listheader-info

    separated by space.

  append wa_listheader to itab_listheader.

endform.

form pf_status using rt_extab type slis_t_extab.            "#EC *.

  set pf-status 'STANDARD_FULLSCREEN'.

endform.

form user_command using ucomm like sy-ucomm

                          selfield type slis_selfield.      "#EC CALLED

endform.

form top_of_page.

  call function 'REUSE_ALV_COMMENTARY_WRITE'

       exporting

            it_list_commentary = itab_listheader.

endform.

* << Fim da inclusão

 

TEXTOS DE SELEÇÃO:

P_ASSOC  Arquivo de Associação

P_CABEC  Arquivo de Cabeçalho

P_ENQUA  Arquivo de Enquadramentos

P_OPERA  Arquivo de Operações

P_REDI   Arquivo de RE's/DI's

R_ASSOC  Carga de Associação

R_CONTR  Carga de RAS/RVS

R_HEADER Arquivo com Identificador

 

SÍMBOLOS DE TEXTO:

001  Seleção de Arquivo

E01  Preencher Arquivo de Cabeçalho

E02  e Arquivo de Operações

E03  Preencher Arquivo de Associação

E04  Erro na extração do arquivo de Cabeçalho

E05  Erro na extração do arquivo de Operações

E06  Erro na extração do arquivo de Enquadramentos.

E07  Informações não serão carregadas.

E08  Erro na extração do arquivo de RE/DI.

E09  Erro na extração do arquivo.

T01  Arquivos para Carga

T02  Ordem Serviço

T03  Nº Sequecial

T04  Operação

T05  Fatura

T06  Nome Campo

T07  LOG

T08  LOG Processamento Carga SISCOSERV

T09  Sistema de Câmbio - Módulo Financeiro

T10  Data:

T11  Hora:

 

---------------------------------------------------------------------------------------------------

Modificações efetuadas em TRAN /PWS/ZYCAR022

 

CÓDIGO DE TRANSAÇÃO: /PWS/ZYCAR022

 

ATRIBUTOS DA TRANSAÇÃO

TEXTO BREVE: Carga Siscoserv

 

OBJETO DE EXECUÇÃO

(_) - PROGRAMA E TELA (TRANSAÇÃO DE DIÁLOGO)

(X) - PROGRAMA E TELA DE SELEÇÃO (TRANSAÇÃO DE REPORT)

 

TEXTO DA TRANSAÇÃO: Carga Siscoserv

PROGRAMA: /PWS/ZYCAR022

TELA(SELEÇÃO): 1000

INÍCIO COM VARIANTE: _____________________________________________

OBJETO DE AUTORIZAÇÃO: ___________________________________________

(_) - ATUALIZAÇÃO DA VARIANTE DA TRANSAÇÃO STANDARD PERMITIDA

 

CLASSIFICAÇÃO

 

CLASSIFICAÇÃO DE TRANSAÇÃO:

(X) - TRANSAÇÃO PROFESSIONAL USER

(_) - TRANSAÇÃO EASY WEB      SERVIÇO: ___________________________

 

CAPACIDADE GUI:

(X) SAP GUI PARA HTML

(X) SAP GUI PARA JAVA

(X) SAP GUI PARA WINDOWS

 

---------------------------------------------------------------------------------------------------

Modificações efetuadas em MENU /PWS/ZYCB

 

1) Na pasta Financeiro--> SISCOSERV, logo abaixo da subpasta Associação RAS/RVS, incluir a opção

abaixo:

   Texto: Carga SISCOSERV

   Transação: /PWS/ZYCAR022