SAP R/3
                                         GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________
                 Output Message – Exemplo de Processo e parametrizações na Confirmação da
                 ordem de Vendas

Transação: IMG                               Aplicação ( Processo )




                 Atualizar tipos de mensagem


Definir, nesta entrada de menu, as condições de mensagens para registros de condições de mensagens.
A condição de mensagens forma diferentes mensagens no sistema SAP, como por exemplo, cotação,
confirmações de ordens e notas de remessa.
Para definir uma condição de mensagem, o usuário terá de efetuar as seguintes entradas:
    •    Tipo de condição
Chave alfanumérica com até 4 carcaterers que identifique uma condição de mensagem univocamente
    •    Sequência de acesso
         Chave de sequência de acesso
    •    Denominação
         Texto para a descrição da condição de mensagens
    •    Dados de detalhe (apenas os dados de detalhe mais importantes serão elucidados)

             o    Meio de transmissão
                  Chave alfanumérica com um caractere que determina o tipo de processamento de mensagem
                  (por exemplo, saída de impressão, transmissão por fax ou mail)
             o    Momento
                  Chave alfanumérica com um caractere que determina o momento do processamento de
                  mensagem (por exemplo, imediatamente ao gravar um documento ou com o processo de
                  seleção seguinte)
             o    Função do parceiro
                  Função do parceiro para a definição do recebedor de uma mensagem no documento de vendas
             o    Acesso de condições
                  Código com o qual se determina que a proposta de mensagem para esta mensagem deverá ser
                  efetuada através da técnica de condição.
                  Caso o usuário não defina o código, esta mensagem poderá ser localizada através da proposta
                  proveniente do registro mestre de clientes. Para isto, o usuário terá de ter efetuado as opções
                  correspondentes para a determinação de mensagens proveniente do registro mestre de
                  clientes.
             o    Parâmetros de impressão
                  Chave alfanumérica com um caractere que define os requisitos que serão a base para a
                  determinação dos parâmetros de impressão (ver Seção "Definir parâmetros de impressão").
             o    Modo de arquivamento Este campo controla se um documento será apenas impresso, apenas
                  arquivado ou tanto impresso como arquivado.
Menu : Vendas e distribuição > Funções básicas> Controle de Mensagens > Determinação de mensagens > Determinação de
mensagem via técnica de condições>Atualizar determinação de mensagens para docs. vendas> atualizar tipos de mensagem




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                 Pág. 1
SAP R/3
                                          GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________




Foi criado um controle de cópia para cotação como ZA00




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                 Pág. 2
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                 Pág. 3
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                 Pág. 4
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                 Pág. 5
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                 Pág. 6
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                 Pág. 7
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                 Pág. 8
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                 Pág. 9
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 10
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 11
SAP R/3
                                          GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________




Aqui associo os tipos de ordem com os controles de mensagem criado.




Necessário entrar na transação VV11




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 12
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 13
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 14
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 15
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________

                   Output Message – Exemplo de Processo e parametrizações no faturamento

Transação: NACE                        Aplicação ( Processo )




Escolher o processo, Ordem , Remessa, transporte, Fatura ou NF.




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 16
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________
                 Output Message – Tipo de Mensagem

Transação: NACE                        Esquema de Mensagem




O tipo de mensagem define o programa que deve ser executado.




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 17
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________
                 Output Message – Seqüência de Acesso

Transação: NACE                        Seqüência de Acesso




Definir a seqüência de acesso conforme a necessidade do Cliente.
A seqüência de acesso é definida no tipo de mensagem.

Na seqüência de acesso é possível incluir um requisito, onde a mensagem só é executada, se o
retorno do requisito for positivo. Ou seja, em que condição esta mensagem deve ser
executada.




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 18
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________
                 Output Message – Esquema de Mensagem

Transação: NACE                        Tipo de Mensagem




Incluir o tipo de mensagem no Esquema de mensagem

No esquema de mensagem também é possível incluir um requisito, onde a mensagem só é
executada, se o retorno do requisito for positivo. Ou seja, em que condição esta mensagem
deve ser executada.




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 19
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________
                 Output Message – Registro de Condição

Transação: VV31                        Tipo de Mensagem




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 20
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________




O meio e a Hora em que o processo deve ser executado é muito importante e é
indicado Na condition record.




Neste caso foi utilizado o tipo de documento como chave para executar a
mensagem, mas poderia ser qualquer informação disponível no SAP.




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 21
SAP R/3
                                               GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________
                 Exemplo de Programa e Explicações

Transação: Se38                                     Menu Sap:




A rotina marcada em Vermelho é o segredo, para atualizar o Status da
mensagem no documento de vendas que fez o start da operação ( Tabela
NAST).
O laureano da Complex é o programador ABAP que fez este programa.
Ele é o CARA..........

REPORT ZPrograma LINE-COUNT 100 MESSAGE-ID ZMensagem.

TABLES: Ztabela,
    vbrk,
    vbrp.
INCLUDE rvadtabl.

DATA: ls_bkpf TYPE bkpf,
     ls_vbrk TYPE vbrk,
     retcode LIKE sy-subrc,                  "Returncode
     xscreen(1) TYPE c.                    "Output on printer or screen
*&---------------------------------------------------------------------*
*&      Form ENTRY
*&---------------------------------------------------------------------*
*      text
*----------------------------------------------------------------------*
* --> p1          text
* <-- p2          text
*----------------------------------------------------------------------*
FORM entry USING return_code us_screen.

 CLEAR retcode.

 xscreen = us_screen.

 PERFORM ler_tabela. ( Rotina de Processamento )

 CASE retcode.
  WHEN 0.
   return_code = 0.
  WHEN 3.
   return_code = 3.
  WHEN OTHERS.
   return_code = 1.
 ENDCASE.

ENDFORM.                        " ENTRY
*&---------------------------------------------------------------------*
*&      Form ler_tabela
*&---------------------------------------------------------------------*
*      text
*----------------------------------------------------------------------*


______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 22
SAP R/3
                                          GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________
* --> p1          text
* <-- p2          text
*----------------------------------------------------------------------*
FORM ler_tabela.

 SELECT SINGLE * FROM vbrk
 WHERE vbeln = nast-objky.

 IF sy-subrc IS INITIAL.

  SELECT SINGLE * FROM vbrp
  WHERE vbeln = vbrk-vbeln.

  IF sy-subrc IS INITIAL AND
    NOT vbrp-codigo_ac IS INITIAL.

   SELECT SINGLE * FROM Ztabela
   WHERE codigo_ac = vbrp-codigo_ac AND
       matnr = vbrp-matnr AND
       tipomov = 'S'.
   IF sy-subrc NE 0.
    Ztabela-codigo_ac = vbrp-codigo_ac.
    Ztabela-matnr = vbrp-matnr.
    Ztabela-tipomov = 'S'.
    Ztabela-menge = vbrp-fkimg.
    INSERT Ztabela.
    COMMIT WORK.
   ENDIF.
  ENDIF.
 ENDIF.

ENDFORM.                   " ler_tabela




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 23
SAP R/3
                                          GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________
                 Debugando Programas de Output Message – Exemplo Faturamento de SD

Transação: VV31 – Criar                       Menu Sap: Logistica>Vendas e Distribuição>Dados
           VV32 – Modificar                   Mestres>Mensagens>Documento de Faturamento
           VV33 - Exibir




Resumo do Processo
Criação / Modificação / Consulta de Record Condition de output Message



Dicas
Ao Criar sua record condition, escolher a opção 1 - Enviar através de jobs escalonados periodicamente.
Esta opção faz com que o Output message não seja executado imediatamente após a gravação da aplicação,
Necessitando da execução de um JOB para para definir o momento do envio.




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 24
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________

                     Debugando Programas de Output Message – Exemplo Faturamento de SD

Transação: VF01 – Criar                Menu Sap: Logistica>Vendas e Distribuição>Faturamento>Documento de
           VF02 – Modificar            Faturamento
           VF03 - Exibir




Digitar o numero da fatura para modificação e Dar Enter...




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 25
SAP R/3
                                          GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________




Clicar no Icone ( Lupa ) para ir para o Cabeçalho do documento faturamento




Já na pasta Cabeçalho, clicar em Mensagens:




Na Primeira Tela vc tb pode ir por este caminho para chegar na mensagem...


Resumo do Processo
Na Criação ou Modificação de um Documento de faturamento, é possivel Gravar uma output Message com as suas opções.



Dicas
Neste caso, se vc tem uma record condition para a sua Output Messagem, a mesma pode ser modificada para a sua necessidade.




                      Debugando Programas de Output Message – Exemplo Faturamento de SD

______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 26
SAP R/3
                                          GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________

Transação: VF01 – Criar                      Menu Sap: Logistica>Vendas e Distribuição>Faturamento>Documento de
           VF02 – Modificar                  Faturamento
           VF03 - Exibir




Marcar a sua mensagem e Clicar em dados complementares para abrir a proxima tela:




Alterar a opção de momento do envio para 1 Enviar através de jobs escalonados periodicamente.

Resumo do Processo
Modificar a sua Output Message, segundo as suas necessidades



Dicas




                      Debugando Programas de Output Message – Exemplo Faturamento de SD


______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 27
SAP R/3
                                          GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________

Transação: VF01 – Criar                       Menu Sap: Logistica>Vendas e Distribuição>Faturamento>Documento de
           VF02 – Modificar                   Faturamento
           VF03 - Exibir




Resumo do Processo
Gravar a fatura para gerar a sua Output Message, segundo as suas necessidades



Dicas




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 28
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________
                 Debugando Programas de Output Message – Exemplo Faturamento de SD

Transação: Nace                        Verificando o programa que a Output Message Executa...




Marcar a Output e clicar em tipo de mensagem...




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 29
SAP R/3
                                          GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________




Marcar o tipo de mensagem e clicar na pasta Rotina de processamento no SAP




Neste caso o programa é o RVADIN01...




Resumo do Processo
Gravar a fatura para gerar a sua Output Message, segundo as suas necessidades



Dicas




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 30
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________
                 Debugando Programas de Output Message – Exemplo Faturamento de SD

Transação: SE38                        Menu Sap: Ferramentas > ABAP Workbench > Desenvolvimento > Editor
                                       ABAP




Chamar o programa a ser debugado e colocar nele um Break-Point:
Neste exemplo vamos colocar um break-point no programa RVADIN01,
Standard do tipo de output message RD00.




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 31
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________
Digitar o codigo do programa e clicar no icone exibir.




Posicionar na linha desejada e clicar no icone STOP.




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 32
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________




Esta opção acima, tb funciona.




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 33
SAP R/3
                                              GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________

Feito o Break-point o linha fica marcada....



Resumo do Processo
Bem existem varias literaturas sobre break-point, como colocar como tirar....secão, servidor, usuário...ETC....



Dicas
OBS: Para retirar o breack-point basta repetir a operação no mesmo ponto ou utilizar a opção de eliminar pontos de parada via
utilitarios da se38....em relação a Break-Point fui....Deus te ajude e até a próxima.....



Continuando......... o Debugging....




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 34
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________


                    Debugando Programas de Output Message – Exemplo Faturamento de SD

Transação: SE38                        Menu Sap: Ferramentas > ABAP Workbench > Desenvolvimento > Editor
                                       ABAP




Resumo do Processo
Executar o programa RSNAST00



Dicas




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 35
SAP R/3
                                             GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________


                          Debugando Programas de Output Message – Exemplo Faturamento de SD

Transação: SE38                                  Menu Sap: Ferramentas > ABAP Workbench > Desenvolvimento > Editor
                                                 ABAP




Resumo do Processo
Aplicacação de mensagem = V3 ( Fatura )
Chave de objeto = O numero da sua fatura
Tipo de mensagem = RD00

Ao executar o programa o debug entra no ponto em que o break-point foi definido....



Dicas
Na tela abaixo o inicio do debug........




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 36
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 37
SAP R/3
                                    GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________



Programa Exemplo:


REPORT zsavo_acumulado_vendas LINE-SIZE 200 NO STANDARD PAGE HEADING.
************************************************************************
*** Programa: ZSAVO_ACUMULADO_VENDAS                                                ***
*** Descrição: Relatorio Acumulado Vendas                                 ***
*** Autor: jhrezende              Data : 17/05/2007                  ***
************************************************************************
*** Description:                                        ***
***                                               ***
************************************************************************
*** Tabelas Utilizadas:                                     ***
*** vbak - Documento de vendas: dados de cabeçalho                              ***
*** vbap - Documento de vendas: dados de item                               ***
*** vbrp - Documento de faturamento: dados de item                            ***
*** vbfa - Fluxo de documentos de vendas e distribuição (VD)                      ***
************************************************************************
*** Funções Utilizadas:                                      ***
***                                               ***
*** Includes                                           ***
***                                               ***
*** Transação                                            ***
***                                               ***
***                                               ***
*** Parâmetros de Entrada:                                      ***
*** p_VBELN - Documento de venda                                        ***
***                                               ***
*** Histórico de Alterações:                                  ***
************************************************************************
*** Data | Change # | Autor                | Alteração              ***
*** 17.05.2007| SD1K9A05KY | Jhrezende                | Desenv. Inicial           ***
************************************************************************
* OBS: NÃO UTILIZAR: DISPLAY DE MENSAGENS, STOP, BREAK-POINT,
*               COMMIT_WORK
* Sempre que for necessitar que mostre uma msg utilize a fução
*      CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
************************************************************************
*** Tabelas do dicionário de dados
************************************************************************
*TABLES: tvagt, dd07t.

DATA: qtd    LIKE ekpo-menge,
  puni(16) TYPE p DECIMALS 10,
  vluni(16) TYPE p DECIMALS 10,
  uni1(3) TYPE c,
  uni2(3) TYPE c,
  vbeln    LIKE vbak-vbeln,
  cred(1) TYPE c,
  xscreen(1) TYPE c.        "Output on printer or screen

______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 38
SAP R/3
                                         GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________

*CONSTANTS: c_cmgst(5) TYPE c VALUE 'CMGST',
*    c_a(1)   TYPE c VALUE 'A'.

* Definição das tabelas internas globais *******************************
DATA:
* Dados de Ordem de Venda Cabec
  t_vbak    TYPE vbak OCCURS 0 WITH HEADER LINE,
* Dados de Ordem de Venda Item
  t_vbap    TYPE vbap OCCURS 0 WITH HEADER LINE,
  t_s604n TYPE s604 OCCURS 0 WITH HEADER LINE,
*Documento VD: status de cabeçalho e dados administrativos
  t_vbuk    TYPE vbuk OCCURS 0 WITH HEADER LINE,
* Fluxo de documentos de vendas e distribuição (VD)
  t_vbfa   TYPE vbfa OCCURS 0 WITH HEADER LINE,
* Documento de faturamento: dados de cabeçalho
  t_vbrk   TYPE vbrk OCCURS 0 WITH HEADER LINE,
* Documento de faturamento: dados de item
  t_vbrp    TYPE vbrp OCCURS 0 WITH HEADER LINE.

*
INCLUDE rvadtabl.                    "obrigatorio

DATA: retcode LIKE sy-subrc. "Returncode "obrigatorio

*---------------------------------------------------------------------*
*      FORM entry                                                 *
*---------------------------------------------------------------------*
*      ........                                           *
*---------------------------------------------------------------------*
* --> RETURN_CODE                                                       *
* --> US_SCREEN                                                       *
*---------------------------------------------------------------------*
FORM entry USING return_code us_screen.                                   "#EC CALLED
* Quando o programa for acionado já vem algumas informações da NAST,
* se houver necessidade de mais informações dessa tabela é só fazer
* uma leitura da mesma
*--------------------------------------------------------------------
  CLEAR retcode.
  IF nast-kappl = 'V3'.
   vbeln = nast-objky.
   PERFORM f_ler_documento_venda_0.
   LOOP AT t_vbrp.
     vbeln = t_vbrp-aubel.
     PERFORM get_data.
     IF retcode NE 0.
       return_code = 1.
     ELSE.
       return_code = 0.
     ENDIF.
   ENDLOOP.
  ELSEIF nast-kappl = 'V1'.
   vbeln = nast-objky.
   PERFORM get_data.
   IF retcode NE 0.


______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 39
SAP R/3
                                               GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________
   return_code = 1.
  ELSE.
   return_code = 0.
  ENDIF.
 ENDIF.

ENDFORM.
*---------------------------------------------------------------------*
*      FORM PROTOCOL_UPDATE "obrigatorio                                *
*---------------------------------------------------------------------*
*      The messages are collected for the processing protocol.          *
*---------------------------------------------------------------------*
FORM protocol_update.
* sempre que necessitar mostrar mensagens deve ser utilizada essa
* função
  CHECK xscreen = space.
  CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
      EXPORTING
          msg_arbgb = syst-msgid
          msg_nr = syst-msgno
          msg_ty = syst-msgty
          msg_v1 = syst-msgv1
          msg_v2 = syst-msgv2
          msg_v3 = syst-msgv3
          msg_v4 = syst-msgv4
      EXCEPTIONS
          OTHERS = 1.
  IF sy-subrc <> 0.
* NÃO COLOCAR WRITE DE MSG.
* utilizar CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
  ENDIF.
ENDFORM.

*---------------------------------------------------------------------*
*      FORM GET_DATA                                                    *
*---------------------------------------------------------------------*
FORM get_data.
* essa parte é livre não tem nada de diferente
  CLEAR: t_s604n. REFRESH: t_s604n.
  PERFORM f_ler_documento_venda.
  PERFORM f_montar_s604_nova.
  PERFORM f_deletar_s604_velha.
  PERFORM f_gravar_s604_nova.


ENDFORM.
*&---------------------------------------------------------------------*
*&     Form f_ler_documento_venda
*&---------------------------------------------------------------------*
FORM f_ler_documento_venda_0.

* Seleção dos dados VBRP Documento de faturamento: dados de item
  SELECT * FROM vbrp
       INTO TABLE t_vbrp
       WHERE vbeln = vbeln.


______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 40
SAP R/3
                                               GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________
 SORT t_vbrp BY aubel.
 DELETE ADJACENT DUPLICATES FROM t_vbrp COMPARING aubel.

ENDFORM.                        " f_ler_documento_venda_0

*&---------------------------------------------------------------------*
*&     Form f_ler_documento_venda
*&---------------------------------------------------------------------*
FORM f_ler_documento_venda.
* Seleção dos dados VBAK (Venda)
  SELECT * FROM vbak
        INTO TABLE t_vbak
        WHERE vbeln = vbeln.

  IF NOT t_vbak[] IS INITIAL.
* Seleção dos dados VBAP (Carteira)
   SELECT * FROM vbap
        INTO TABLE t_vbap
        FOR ALL ENTRIES IN t_vbak
        WHERE vbeln = t_vbak-vbeln.
* Documento VD: status de cabeçalho e dados administrativos
   SELECT * FROM vbuk
        INTO TABLE t_vbuk
        FOR ALL ENTRIES IN t_vbak
        WHERE vbeln = t_vbak-vbeln.


* Fluxo de documentos de vendas e distribuição (VD)
   SELECT * FROM vbfa
        INTO TABLE t_vbfa
        FOR ALL ENTRIES IN t_vbak
        WHERE vbelv = t_vbak-vbeln AND
        vbtyp_n = 'M'.


   IF NOT t_vbfa[] IS INITIAL.
*Documento de faturamento: dados de cabeçalho
    SELECT * FROM vbrk
         INTO TABLE t_vbrk
         FOR ALL ENTRIES IN t_vbfa
         WHERE vbeln = t_vbfa-vbeln AND
             fksto = ' '.
    IF NOT t_vbrk[] IS INITIAL.
* Fluxo de documentos de vendas e distribuição (VD)
      SELECT * FROM vbfa
           INTO TABLE t_vbfa
           FOR ALL ENTRIES IN t_vbrk
           WHERE vbeln = t_vbrk-vbeln AND
               vbelv = vbeln    AND
               vbtyp_n = 'M'.
      SORT t_vbfa BY posnv.
    ELSE.
      REFRESH: t_vbfa[].
    ENDIF.
   ENDIF.


______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 41
SAP R/3
                                                GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________

 ENDIF.


ENDFORM.                       " f_ler_documento_venda
*&---------------------------------------------------------------------*
*&     Form f_montar_s604_nova
*&---------------------------------------------------------------------*
FORM f_montar_s604_nova.

 CLEAR: t_vbak,t_vbuk.
 READ TABLE t_vbak WITH KEY vbeln = vbeln.
* READ TABLE t_tvko INDEX 1.
 READ TABLE t_vbuk INDEX 1.

 LOOP AT t_vbap.
  MOVE-CORRESPONDING t_vbap TO t_s604n.
  t_s604n-vrsio = '000'.     " sempre 000
  t_s604n-spmon = t_vbak-erdat. " ano e mes
  t_s604n-erdat = t_vbak-erdat. " ano/mes/dia
  t_s604n-bukrs = t_vbak-kkber. " empresa
  t_s604n-auart = t_vbak-auart. " Tipo de documento de venda
  t_s604n-vkbur = t_vbak-vkbur. " Escritorio de vendas
  t_s604n-kunnr = t_vbak-knkli. " Emissor da ordem
  t_s604n-vtweg = t_vbak-vtweg. " canal Distribuição
  t_s604n-stwae = t_vbak-waerk. " Moeda
  t_s604n-gewei = ' '. " Unidade de peso
  t_s604n-basme = ' '. "t_vbap-meins. " Unidade medida basica

* Carteira
   PERFORM f_carteira.
* Recusa
   IF t_vbap-abgru <> ' ' .
     PERFORM f_recusa.
   ELSE.
* ajustar credito - é só ele
     PERFORM f_ajustar_credito.
     IF cred = ' '.
* Ajustar faturado
       PERFORM f_faturado.
* Ajustar a faturar
       PERFORM f_afaturar.
* backorder = carteira - a faturar
       PERFORM f_backorder.
     ENDIF.
   ENDIF.
* ----------------------------------------------------
   IF t_vbak-vbtyp = 'H'.
     PERFORM f_multipl_menos_hum.
   ENDIF.

  APPEND t_s604n.
  CLEAR: t_s604n, t_vbap, cred.
 ENDLOOP.



______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 42
SAP R/3
                                               GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________
ENDFORM.                       " f_montar_s604_nova
*&---------------------------------------------------------------------*
*&     Form f_deletar_s604_velha
*&---------------------------------------------------------------------*
FORM f_deletar_s604_velha.
 DELETE FROM s604 WHERE vbeln = vbeln.
ENDFORM.                       " f_deletar_s604_velha

*&---------------------------------------------------------------------*
*&      Form f_gravar_s604_nova
*&---------------------------------------------------------------------*
FORM f_gravar_s604_nova.
  IF retcode = 0.
   LOOP AT t_s604n.
     INSERT INTO s604 VALUES t_s604n.
   ENDLOOP.
  ENDIF.
ENDFORM.                        " f_gravar_s604_nova
*&---------------------------------------------------------------------*
*&      Form f_converter_unidade
*&---------------------------------------------------------------------*
*      text
*----------------------------------------------------------------------*
*     -->P_UNI1 text
*     -->P_UNI2 text
*     -->P_QTD text
*----------------------------------------------------------------------*
FORM f_converter_unidade USING p_uni1
                            p_uni2
                            p_qtd.
  CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
      EXPORTING
          i_matnr              = t_vbap-matnr
          i_in_me               = p_uni1
          i_out_me               = p_uni2
          i_menge                = p_qtd
      IMPORTING
          e_menge                 = qtd
      EXCEPTIONS
          error_in_application = 1
          error              =2
          OTHERS                   = 3.

 IF sy-subrc <> 0.
*   retcode = sy-subrc.
   PERFORM protocol_update.
 ENDIF.
ENDFORM.                       " f_converter_unidade
*&---------------------------------------------------------------------*
*&     Form f_carteira
*&---------------------------------------------------------------------*
FORM f_carteira.
 IF t_vbap-kwmeng = 0.
   t_vbap-kwmeng = t_vbap-zmeng.
 ENDIF.


______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 43
SAP R/3
                                               GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________

 t_s604n-cartkg = t_vbap-brgew. " carteira kg
 t_s604n-cartvl = t_vbap-netwr. " Valor carteira

* ajustar campos carteira dp e carteira cx
  qtd = t_vbap-kwmeng.
  uni1 = t_vbap-meins.     " unidade original
  uni2 = 'DP' .
  PERFORM f_converter_unidade USING uni1 uni2 qtd.
  t_s604n-cartdp = qtd.

  IF t_s604n-cartdp <> 0.
* Peso unitário menor unidade existente que é o display
   puni = t_s604n-cartkg / t_s604n-cartdp.
   vluni = t_s604n-cartvl / t_s604n-cartdp.
  ELSE.
   MESSAGE i368(00) WITH t_vbak-vbeln.
   puni = 1.
   vluni = 1.
  ENDIF.
  qtd = t_vbap-kwmeng.
  uni1 = t_vbap-meins. " unidade original
  uni2 = 'KI' .  " caixa
  PERFORM f_converter_unidade USING uni1 uni2 qtd.
  t_s604n-cartcx = qtd.

ENDFORM.                        " f_carteira


*&---------------------------------------------------------------------*
*&     Form f_faturado
*&---------------------------------------------------------------------*
FORM f_faturado.

  READ TABLE t_vbfa WITH KEY posnv = t_vbap-posnr BINARY SEARCH.
  IF sy-subrc = 0.
* convertendo para caixa
   qtd = t_vbfa-rfmng_flo.
   uni1 = t_vbfa-vrkme. " unidade original
   uni2 = 'KI' .   " caixa
   PERFORM f_converter_unidade USING uni1 uni2 qtd.
   t_s604n-fatcx = qtd.

* convertendo para display
   qtd = t_vbfa-rfmng_flo.
   uni1 = t_vbfa-vrkme. " unidade original
   uni2 = 'DP' .    " display
   PERFORM f_converter_unidade USING uni1 uni2 qtd.
   t_s604n-fatdp = qtd.


   t_s604n-fatkg = t_s604n-fatdp * puni.

* mult pelo peso bruto do item
   t_s604n-fatvl = t_s604n-fatdp * vluni.


______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 44
SAP R/3
                                               GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________

 ENDIF.

ENDFORM.                       " f_faturado
*&---------------------------------------------------------------------*
*&     Form f_afaturar
*&---------------------------------------------------------------------*
FORM f_afaturar.

* convertendo para caixa
  uni1 = t_vbap-zieme. " unidade original
  qtd = t_vbap-kbmeng.
  uni2 = 'KI' .   " caixa
  PERFORM f_converter_unidade USING uni1 uni2 qtd.
  t_s604n-afatcx = qtd.

* convertendo para display
  qtd = t_vbap-kbmeng.
  uni1 = t_vbap-zieme. " unidade original
  uni2 = 'DP' .     " display
  PERFORM f_converter_unidade USING uni1 uni2 qtd.
  t_s604n-afatdp = qtd.
  t_s604n-afatkg = t_s604n-afatdp * puni.
  t_s604n-afatvl = t_s604n-afatdp * vluni.

ENDFORM.                        " f_afaturar

*&---------------------------------------------------------------------*
*&     Form f_backorder
*&---------------------------------------------------------------------*
FORM f_backorder.
 t_s604n-backcx = t_s604n-cartcx - t_s604n-afatcx .
 t_s604n-backdp = t_s604n-cartdp - t_s604n-afatdp.
 t_s604n-backkg = t_s604n-backdp * puni.
 IF t_s604n-backcx <> 0.
   t_s604n-backvl = t_s604n-cartvl - t_s604n-afatvl.
 ENDIF.

ENDFORM.                        " f_backorder

*&---------------------------------------------------------------------*
*&     Form f_ajustar_credito
*&---------------------------------------------------------------------*
FORM f_ajustar_credito.
 cred = ' '.
 IF t_vbuk-cmgst = 'B' OR t_vbuk-cmgst = 'C'.
   t_s604n-credkg = t_s604n-cartkg.
   t_s604n-credvl = t_s604n-cartvl.
   t_s604n-creddp = t_s604n-cartdp.
   t_s604n-credcx = t_s604n-cartcx.
   cred = 'X'.
 ENDIF.
ENDFORM.                       " f_ajustar_credito
*&---------------------------------------------------------------------*
*&     Form f_RECUSA


______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 45
SAP R/3
                                               GUIA DE IMPLEMENTAÇÃO
___________________________________________________________________________________________
*&---------------------------------------------------------------------*
FORM f_recusa.
 t_s604n-recskg = t_s604n-cartkg.
 t_s604n-recsvl = t_s604n-cartvl.
 t_s604n-recsdp = t_s604n-cartdp.
 t_s604n-recscx = t_s604n-cartcx.

ENDFORM.                       " f_RECUSA
*&---------------------------------------------------------------------*
*&     Form f_multipl_menos_hum
*&---------------------------------------------------------------------*
FORM f_multipl_menos_hum.
* Carteira
  t_s604n-cartcx = t_s604n-cartcx * ( - 1 ).
  t_s604n-cartdp = t_s604n-cartdp * ( - 1 ).
  t_s604n-cartkg = t_s604n-cartkg * ( - 1 ).
  t_s604n-cartvl = t_s604n-cartvl * ( - 1 ).

* Faturardo
  t_s604n-fatcx = t_s604n-fatcx * ( - 1 ).
  t_s604n-fatdp = t_s604n-fatdp * ( - 1 ).
  t_s604n-fatkg = t_s604n-fatkg * ( - 1 ).
  t_s604n-fatvl = t_s604n-fatvl * ( - 1 ).

* A faturar
  t_s604n-afatcx = t_s604n-afatcx * ( - 1 ).
  t_s604n-afatdp = t_s604n-afatdp * ( - 1 ).
  t_s604n-afatkg = t_s604n-afatkg * ( - 1 ).
  t_s604n-afatvl = t_s604n-afatvl * ( - 1 ).

* Back-order
  t_s604n-backcx = t_s604n-backcx * ( - 1 ).
  t_s604n-backdp = t_s604n-backdp * ( - 1 ).
  t_s604n-backkg = t_s604n-backkg * ( - 1 ).
  t_s604n-backvl = t_s604n-backvl * ( - 1 ).

* Credito
  t_s604n-credkg = t_s604n-credkg * ( - 1 ).
  t_s604n-credvl = t_s604n-credvl * ( - 1 ).
  t_s604n-creddp = t_s604n-creddp * ( - 1 ).
  t_s604n-credcx = t_s604n-credcx * ( - 1 ).

* Recusa
  t_s604n-recskg = t_s604n-recskg * ( - 1 ).
  t_s604n-recsvl = t_s604n-recsvl * ( - 1 ).
  t_s604n-recsdp = t_s604n-recsdp * ( - 1 ).
  t_s604n-recscx = t_s604n-recscx * ( - 1 ).

ENDFORM.                        " f_multipl_menos_hum




______________________________________________________________________________________________________
Versão: 1.0 - 19/08/09                                                                Pág. 46

SAP Inside Track Sao Paulo 09 - Output Message

  • 1.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Output Message – Exemplo de Processo e parametrizações na Confirmação da ordem de Vendas Transação: IMG Aplicação ( Processo ) Atualizar tipos de mensagem Definir, nesta entrada de menu, as condições de mensagens para registros de condições de mensagens. A condição de mensagens forma diferentes mensagens no sistema SAP, como por exemplo, cotação, confirmações de ordens e notas de remessa. Para definir uma condição de mensagem, o usuário terá de efetuar as seguintes entradas: • Tipo de condição Chave alfanumérica com até 4 carcaterers que identifique uma condição de mensagem univocamente • Sequência de acesso Chave de sequência de acesso • Denominação Texto para a descrição da condição de mensagens • Dados de detalhe (apenas os dados de detalhe mais importantes serão elucidados) o Meio de transmissão Chave alfanumérica com um caractere que determina o tipo de processamento de mensagem (por exemplo, saída de impressão, transmissão por fax ou mail) o Momento Chave alfanumérica com um caractere que determina o momento do processamento de mensagem (por exemplo, imediatamente ao gravar um documento ou com o processo de seleção seguinte) o Função do parceiro Função do parceiro para a definição do recebedor de uma mensagem no documento de vendas o Acesso de condições Código com o qual se determina que a proposta de mensagem para esta mensagem deverá ser efetuada através da técnica de condição. Caso o usuário não defina o código, esta mensagem poderá ser localizada através da proposta proveniente do registro mestre de clientes. Para isto, o usuário terá de ter efetuado as opções correspondentes para a determinação de mensagens proveniente do registro mestre de clientes. o Parâmetros de impressão Chave alfanumérica com um caractere que define os requisitos que serão a base para a determinação dos parâmetros de impressão (ver Seção "Definir parâmetros de impressão"). o Modo de arquivamento Este campo controla se um documento será apenas impresso, apenas arquivado ou tanto impresso como arquivado. Menu : Vendas e distribuição > Funções básicas> Controle de Mensagens > Determinação de mensagens > Determinação de mensagem via técnica de condições>Atualizar determinação de mensagens para docs. vendas> atualizar tipos de mensagem ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 1
  • 2.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Foi criado um controle de cópia para cotação como ZA00 ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 2
  • 3.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 3
  • 4.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 4
  • 5.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 5
  • 6.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 6
  • 7.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 7
  • 8.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 8
  • 9.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 9
  • 10.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 10
  • 11.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 11
  • 12.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Aqui associo os tipos de ordem com os controles de mensagem criado. Necessário entrar na transação VV11 ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 12
  • 13.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 13
  • 14.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 14
  • 15.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 15
  • 16.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Output Message – Exemplo de Processo e parametrizações no faturamento Transação: NACE Aplicação ( Processo ) Escolher o processo, Ordem , Remessa, transporte, Fatura ou NF. ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 16
  • 17.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Output Message – Tipo de Mensagem Transação: NACE Esquema de Mensagem O tipo de mensagem define o programa que deve ser executado. ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 17
  • 18.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Output Message – Seqüência de Acesso Transação: NACE Seqüência de Acesso Definir a seqüência de acesso conforme a necessidade do Cliente. A seqüência de acesso é definida no tipo de mensagem. Na seqüência de acesso é possível incluir um requisito, onde a mensagem só é executada, se o retorno do requisito for positivo. Ou seja, em que condição esta mensagem deve ser executada. ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 18
  • 19.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Output Message – Esquema de Mensagem Transação: NACE Tipo de Mensagem Incluir o tipo de mensagem no Esquema de mensagem No esquema de mensagem também é possível incluir um requisito, onde a mensagem só é executada, se o retorno do requisito for positivo. Ou seja, em que condição esta mensagem deve ser executada. ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 19
  • 20.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Output Message – Registro de Condição Transação: VV31 Tipo de Mensagem ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 20
  • 21.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ O meio e a Hora em que o processo deve ser executado é muito importante e é indicado Na condition record. Neste caso foi utilizado o tipo de documento como chave para executar a mensagem, mas poderia ser qualquer informação disponível no SAP. ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 21
  • 22.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Exemplo de Programa e Explicações Transação: Se38 Menu Sap: A rotina marcada em Vermelho é o segredo, para atualizar o Status da mensagem no documento de vendas que fez o start da operação ( Tabela NAST). O laureano da Complex é o programador ABAP que fez este programa. Ele é o CARA.......... REPORT ZPrograma LINE-COUNT 100 MESSAGE-ID ZMensagem. TABLES: Ztabela, vbrk, vbrp. INCLUDE rvadtabl. DATA: ls_bkpf TYPE bkpf, ls_vbrk TYPE vbrk, retcode LIKE sy-subrc, "Returncode xscreen(1) TYPE c. "Output on printer or screen *&---------------------------------------------------------------------* *& Form ENTRY *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM entry USING return_code us_screen. CLEAR retcode. xscreen = us_screen. PERFORM ler_tabela. ( Rotina de Processamento ) CASE retcode. WHEN 0. return_code = 0. WHEN 3. return_code = 3. WHEN OTHERS. return_code = 1. ENDCASE. ENDFORM. " ENTRY *&---------------------------------------------------------------------* *& Form ler_tabela *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 22
  • 23.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM ler_tabela. SELECT SINGLE * FROM vbrk WHERE vbeln = nast-objky. IF sy-subrc IS INITIAL. SELECT SINGLE * FROM vbrp WHERE vbeln = vbrk-vbeln. IF sy-subrc IS INITIAL AND NOT vbrp-codigo_ac IS INITIAL. SELECT SINGLE * FROM Ztabela WHERE codigo_ac = vbrp-codigo_ac AND matnr = vbrp-matnr AND tipomov = 'S'. IF sy-subrc NE 0. Ztabela-codigo_ac = vbrp-codigo_ac. Ztabela-matnr = vbrp-matnr. Ztabela-tipomov = 'S'. Ztabela-menge = vbrp-fkimg. INSERT Ztabela. COMMIT WORK. ENDIF. ENDIF. ENDIF. ENDFORM. " ler_tabela ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 23
  • 24.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Debugando Programas de Output Message – Exemplo Faturamento de SD Transação: VV31 – Criar Menu Sap: Logistica>Vendas e Distribuição>Dados VV32 – Modificar Mestres>Mensagens>Documento de Faturamento VV33 - Exibir Resumo do Processo Criação / Modificação / Consulta de Record Condition de output Message Dicas Ao Criar sua record condition, escolher a opção 1 - Enviar através de jobs escalonados periodicamente. Esta opção faz com que o Output message não seja executado imediatamente após a gravação da aplicação, Necessitando da execução de um JOB para para definir o momento do envio. ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 24
  • 25.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Debugando Programas de Output Message – Exemplo Faturamento de SD Transação: VF01 – Criar Menu Sap: Logistica>Vendas e Distribuição>Faturamento>Documento de VF02 – Modificar Faturamento VF03 - Exibir Digitar o numero da fatura para modificação e Dar Enter... ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 25
  • 26.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Clicar no Icone ( Lupa ) para ir para o Cabeçalho do documento faturamento Já na pasta Cabeçalho, clicar em Mensagens: Na Primeira Tela vc tb pode ir por este caminho para chegar na mensagem... Resumo do Processo Na Criação ou Modificação de um Documento de faturamento, é possivel Gravar uma output Message com as suas opções. Dicas Neste caso, se vc tem uma record condition para a sua Output Messagem, a mesma pode ser modificada para a sua necessidade. Debugando Programas de Output Message – Exemplo Faturamento de SD ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 26
  • 27.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Transação: VF01 – Criar Menu Sap: Logistica>Vendas e Distribuição>Faturamento>Documento de VF02 – Modificar Faturamento VF03 - Exibir Marcar a sua mensagem e Clicar em dados complementares para abrir a proxima tela: Alterar a opção de momento do envio para 1 Enviar através de jobs escalonados periodicamente. Resumo do Processo Modificar a sua Output Message, segundo as suas necessidades Dicas Debugando Programas de Output Message – Exemplo Faturamento de SD ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 27
  • 28.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Transação: VF01 – Criar Menu Sap: Logistica>Vendas e Distribuição>Faturamento>Documento de VF02 – Modificar Faturamento VF03 - Exibir Resumo do Processo Gravar a fatura para gerar a sua Output Message, segundo as suas necessidades Dicas ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 28
  • 29.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Debugando Programas de Output Message – Exemplo Faturamento de SD Transação: Nace Verificando o programa que a Output Message Executa... Marcar a Output e clicar em tipo de mensagem... ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 29
  • 30.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Marcar o tipo de mensagem e clicar na pasta Rotina de processamento no SAP Neste caso o programa é o RVADIN01... Resumo do Processo Gravar a fatura para gerar a sua Output Message, segundo as suas necessidades Dicas ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 30
  • 31.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Debugando Programas de Output Message – Exemplo Faturamento de SD Transação: SE38 Menu Sap: Ferramentas > ABAP Workbench > Desenvolvimento > Editor ABAP Chamar o programa a ser debugado e colocar nele um Break-Point: Neste exemplo vamos colocar um break-point no programa RVADIN01, Standard do tipo de output message RD00. ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 31
  • 32.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Digitar o codigo do programa e clicar no icone exibir. Posicionar na linha desejada e clicar no icone STOP. ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 32
  • 33.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Esta opção acima, tb funciona. ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 33
  • 34.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Feito o Break-point o linha fica marcada.... Resumo do Processo Bem existem varias literaturas sobre break-point, como colocar como tirar....secão, servidor, usuário...ETC.... Dicas OBS: Para retirar o breack-point basta repetir a operação no mesmo ponto ou utilizar a opção de eliminar pontos de parada via utilitarios da se38....em relação a Break-Point fui....Deus te ajude e até a próxima..... Continuando......... o Debugging.... ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 34
  • 35.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Debugando Programas de Output Message – Exemplo Faturamento de SD Transação: SE38 Menu Sap: Ferramentas > ABAP Workbench > Desenvolvimento > Editor ABAP Resumo do Processo Executar o programa RSNAST00 Dicas ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 35
  • 36.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Debugando Programas de Output Message – Exemplo Faturamento de SD Transação: SE38 Menu Sap: Ferramentas > ABAP Workbench > Desenvolvimento > Editor ABAP Resumo do Processo Aplicacação de mensagem = V3 ( Fatura ) Chave de objeto = O numero da sua fatura Tipo de mensagem = RD00 Ao executar o programa o debug entra no ponto em que o break-point foi definido.... Dicas Na tela abaixo o inicio do debug........ ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 36
  • 37.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 37
  • 38.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ Programa Exemplo: REPORT zsavo_acumulado_vendas LINE-SIZE 200 NO STANDARD PAGE HEADING. ************************************************************************ *** Programa: ZSAVO_ACUMULADO_VENDAS *** *** Descrição: Relatorio Acumulado Vendas *** *** Autor: jhrezende Data : 17/05/2007 *** ************************************************************************ *** Description: *** *** *** ************************************************************************ *** Tabelas Utilizadas: *** *** vbak - Documento de vendas: dados de cabeçalho *** *** vbap - Documento de vendas: dados de item *** *** vbrp - Documento de faturamento: dados de item *** *** vbfa - Fluxo de documentos de vendas e distribuição (VD) *** ************************************************************************ *** Funções Utilizadas: *** *** *** *** Includes *** *** *** *** Transação *** *** *** *** *** *** Parâmetros de Entrada: *** *** p_VBELN - Documento de venda *** *** *** *** Histórico de Alterações: *** ************************************************************************ *** Data | Change # | Autor | Alteração *** *** 17.05.2007| SD1K9A05KY | Jhrezende | Desenv. Inicial *** ************************************************************************ * OBS: NÃO UTILIZAR: DISPLAY DE MENSAGENS, STOP, BREAK-POINT, * COMMIT_WORK * Sempre que for necessitar que mostre uma msg utilize a fução * CALL FUNCTION 'NAST_PROTOCOL_UPDATE' ************************************************************************ *** Tabelas do dicionário de dados ************************************************************************ *TABLES: tvagt, dd07t. DATA: qtd LIKE ekpo-menge, puni(16) TYPE p DECIMALS 10, vluni(16) TYPE p DECIMALS 10, uni1(3) TYPE c, uni2(3) TYPE c, vbeln LIKE vbak-vbeln, cred(1) TYPE c, xscreen(1) TYPE c. "Output on printer or screen ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 38
  • 39.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ *CONSTANTS: c_cmgst(5) TYPE c VALUE 'CMGST', * c_a(1) TYPE c VALUE 'A'. * Definição das tabelas internas globais ******************************* DATA: * Dados de Ordem de Venda Cabec t_vbak TYPE vbak OCCURS 0 WITH HEADER LINE, * Dados de Ordem de Venda Item t_vbap TYPE vbap OCCURS 0 WITH HEADER LINE, t_s604n TYPE s604 OCCURS 0 WITH HEADER LINE, *Documento VD: status de cabeçalho e dados administrativos t_vbuk TYPE vbuk OCCURS 0 WITH HEADER LINE, * Fluxo de documentos de vendas e distribuição (VD) t_vbfa TYPE vbfa OCCURS 0 WITH HEADER LINE, * Documento de faturamento: dados de cabeçalho t_vbrk TYPE vbrk OCCURS 0 WITH HEADER LINE, * Documento de faturamento: dados de item t_vbrp TYPE vbrp OCCURS 0 WITH HEADER LINE. * INCLUDE rvadtabl. "obrigatorio DATA: retcode LIKE sy-subrc. "Returncode "obrigatorio *---------------------------------------------------------------------* * FORM entry * *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* * --> RETURN_CODE * * --> US_SCREEN * *---------------------------------------------------------------------* FORM entry USING return_code us_screen. "#EC CALLED * Quando o programa for acionado já vem algumas informações da NAST, * se houver necessidade de mais informações dessa tabela é só fazer * uma leitura da mesma *-------------------------------------------------------------------- CLEAR retcode. IF nast-kappl = 'V3'. vbeln = nast-objky. PERFORM f_ler_documento_venda_0. LOOP AT t_vbrp. vbeln = t_vbrp-aubel. PERFORM get_data. IF retcode NE 0. return_code = 1. ELSE. return_code = 0. ENDIF. ENDLOOP. ELSEIF nast-kappl = 'V1'. vbeln = nast-objky. PERFORM get_data. IF retcode NE 0. ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 39
  • 40.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ return_code = 1. ELSE. return_code = 0. ENDIF. ENDIF. ENDFORM. *---------------------------------------------------------------------* * FORM PROTOCOL_UPDATE "obrigatorio * *---------------------------------------------------------------------* * The messages are collected for the processing protocol. * *---------------------------------------------------------------------* FORM protocol_update. * sempre que necessitar mostrar mensagens deve ser utilizada essa * função CHECK xscreen = space. CALL FUNCTION 'NAST_PROTOCOL_UPDATE' EXPORTING msg_arbgb = syst-msgid msg_nr = syst-msgno msg_ty = syst-msgty msg_v1 = syst-msgv1 msg_v2 = syst-msgv2 msg_v3 = syst-msgv3 msg_v4 = syst-msgv4 EXCEPTIONS OTHERS = 1. IF sy-subrc <> 0. * NÃO COLOCAR WRITE DE MSG. * utilizar CALL FUNCTION 'NAST_PROTOCOL_UPDATE' ENDIF. ENDFORM. *---------------------------------------------------------------------* * FORM GET_DATA * *---------------------------------------------------------------------* FORM get_data. * essa parte é livre não tem nada de diferente CLEAR: t_s604n. REFRESH: t_s604n. PERFORM f_ler_documento_venda. PERFORM f_montar_s604_nova. PERFORM f_deletar_s604_velha. PERFORM f_gravar_s604_nova. ENDFORM. *&---------------------------------------------------------------------* *& Form f_ler_documento_venda *&---------------------------------------------------------------------* FORM f_ler_documento_venda_0. * Seleção dos dados VBRP Documento de faturamento: dados de item SELECT * FROM vbrp INTO TABLE t_vbrp WHERE vbeln = vbeln. ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 40
  • 41.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ SORT t_vbrp BY aubel. DELETE ADJACENT DUPLICATES FROM t_vbrp COMPARING aubel. ENDFORM. " f_ler_documento_venda_0 *&---------------------------------------------------------------------* *& Form f_ler_documento_venda *&---------------------------------------------------------------------* FORM f_ler_documento_venda. * Seleção dos dados VBAK (Venda) SELECT * FROM vbak INTO TABLE t_vbak WHERE vbeln = vbeln. IF NOT t_vbak[] IS INITIAL. * Seleção dos dados VBAP (Carteira) SELECT * FROM vbap INTO TABLE t_vbap FOR ALL ENTRIES IN t_vbak WHERE vbeln = t_vbak-vbeln. * Documento VD: status de cabeçalho e dados administrativos SELECT * FROM vbuk INTO TABLE t_vbuk FOR ALL ENTRIES IN t_vbak WHERE vbeln = t_vbak-vbeln. * Fluxo de documentos de vendas e distribuição (VD) SELECT * FROM vbfa INTO TABLE t_vbfa FOR ALL ENTRIES IN t_vbak WHERE vbelv = t_vbak-vbeln AND vbtyp_n = 'M'. IF NOT t_vbfa[] IS INITIAL. *Documento de faturamento: dados de cabeçalho SELECT * FROM vbrk INTO TABLE t_vbrk FOR ALL ENTRIES IN t_vbfa WHERE vbeln = t_vbfa-vbeln AND fksto = ' '. IF NOT t_vbrk[] IS INITIAL. * Fluxo de documentos de vendas e distribuição (VD) SELECT * FROM vbfa INTO TABLE t_vbfa FOR ALL ENTRIES IN t_vbrk WHERE vbeln = t_vbrk-vbeln AND vbelv = vbeln AND vbtyp_n = 'M'. SORT t_vbfa BY posnv. ELSE. REFRESH: t_vbfa[]. ENDIF. ENDIF. ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 41
  • 42.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ ENDIF. ENDFORM. " f_ler_documento_venda *&---------------------------------------------------------------------* *& Form f_montar_s604_nova *&---------------------------------------------------------------------* FORM f_montar_s604_nova. CLEAR: t_vbak,t_vbuk. READ TABLE t_vbak WITH KEY vbeln = vbeln. * READ TABLE t_tvko INDEX 1. READ TABLE t_vbuk INDEX 1. LOOP AT t_vbap. MOVE-CORRESPONDING t_vbap TO t_s604n. t_s604n-vrsio = '000'. " sempre 000 t_s604n-spmon = t_vbak-erdat. " ano e mes t_s604n-erdat = t_vbak-erdat. " ano/mes/dia t_s604n-bukrs = t_vbak-kkber. " empresa t_s604n-auart = t_vbak-auart. " Tipo de documento de venda t_s604n-vkbur = t_vbak-vkbur. " Escritorio de vendas t_s604n-kunnr = t_vbak-knkli. " Emissor da ordem t_s604n-vtweg = t_vbak-vtweg. " canal Distribuição t_s604n-stwae = t_vbak-waerk. " Moeda t_s604n-gewei = ' '. " Unidade de peso t_s604n-basme = ' '. "t_vbap-meins. " Unidade medida basica * Carteira PERFORM f_carteira. * Recusa IF t_vbap-abgru <> ' ' . PERFORM f_recusa. ELSE. * ajustar credito - é só ele PERFORM f_ajustar_credito. IF cred = ' '. * Ajustar faturado PERFORM f_faturado. * Ajustar a faturar PERFORM f_afaturar. * backorder = carteira - a faturar PERFORM f_backorder. ENDIF. ENDIF. * ---------------------------------------------------- IF t_vbak-vbtyp = 'H'. PERFORM f_multipl_menos_hum. ENDIF. APPEND t_s604n. CLEAR: t_s604n, t_vbap, cred. ENDLOOP. ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 42
  • 43.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ ENDFORM. " f_montar_s604_nova *&---------------------------------------------------------------------* *& Form f_deletar_s604_velha *&---------------------------------------------------------------------* FORM f_deletar_s604_velha. DELETE FROM s604 WHERE vbeln = vbeln. ENDFORM. " f_deletar_s604_velha *&---------------------------------------------------------------------* *& Form f_gravar_s604_nova *&---------------------------------------------------------------------* FORM f_gravar_s604_nova. IF retcode = 0. LOOP AT t_s604n. INSERT INTO s604 VALUES t_s604n. ENDLOOP. ENDIF. ENDFORM. " f_gravar_s604_nova *&---------------------------------------------------------------------* *& Form f_converter_unidade *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->P_UNI1 text * -->P_UNI2 text * -->P_QTD text *----------------------------------------------------------------------* FORM f_converter_unidade USING p_uni1 p_uni2 p_qtd. CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT' EXPORTING i_matnr = t_vbap-matnr i_in_me = p_uni1 i_out_me = p_uni2 i_menge = p_qtd IMPORTING e_menge = qtd EXCEPTIONS error_in_application = 1 error =2 OTHERS = 3. IF sy-subrc <> 0. * retcode = sy-subrc. PERFORM protocol_update. ENDIF. ENDFORM. " f_converter_unidade *&---------------------------------------------------------------------* *& Form f_carteira *&---------------------------------------------------------------------* FORM f_carteira. IF t_vbap-kwmeng = 0. t_vbap-kwmeng = t_vbap-zmeng. ENDIF. ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 43
  • 44.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ t_s604n-cartkg = t_vbap-brgew. " carteira kg t_s604n-cartvl = t_vbap-netwr. " Valor carteira * ajustar campos carteira dp e carteira cx qtd = t_vbap-kwmeng. uni1 = t_vbap-meins. " unidade original uni2 = 'DP' . PERFORM f_converter_unidade USING uni1 uni2 qtd. t_s604n-cartdp = qtd. IF t_s604n-cartdp <> 0. * Peso unitário menor unidade existente que é o display puni = t_s604n-cartkg / t_s604n-cartdp. vluni = t_s604n-cartvl / t_s604n-cartdp. ELSE. MESSAGE i368(00) WITH t_vbak-vbeln. puni = 1. vluni = 1. ENDIF. qtd = t_vbap-kwmeng. uni1 = t_vbap-meins. " unidade original uni2 = 'KI' . " caixa PERFORM f_converter_unidade USING uni1 uni2 qtd. t_s604n-cartcx = qtd. ENDFORM. " f_carteira *&---------------------------------------------------------------------* *& Form f_faturado *&---------------------------------------------------------------------* FORM f_faturado. READ TABLE t_vbfa WITH KEY posnv = t_vbap-posnr BINARY SEARCH. IF sy-subrc = 0. * convertendo para caixa qtd = t_vbfa-rfmng_flo. uni1 = t_vbfa-vrkme. " unidade original uni2 = 'KI' . " caixa PERFORM f_converter_unidade USING uni1 uni2 qtd. t_s604n-fatcx = qtd. * convertendo para display qtd = t_vbfa-rfmng_flo. uni1 = t_vbfa-vrkme. " unidade original uni2 = 'DP' . " display PERFORM f_converter_unidade USING uni1 uni2 qtd. t_s604n-fatdp = qtd. t_s604n-fatkg = t_s604n-fatdp * puni. * mult pelo peso bruto do item t_s604n-fatvl = t_s604n-fatdp * vluni. ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 44
  • 45.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ ENDIF. ENDFORM. " f_faturado *&---------------------------------------------------------------------* *& Form f_afaturar *&---------------------------------------------------------------------* FORM f_afaturar. * convertendo para caixa uni1 = t_vbap-zieme. " unidade original qtd = t_vbap-kbmeng. uni2 = 'KI' . " caixa PERFORM f_converter_unidade USING uni1 uni2 qtd. t_s604n-afatcx = qtd. * convertendo para display qtd = t_vbap-kbmeng. uni1 = t_vbap-zieme. " unidade original uni2 = 'DP' . " display PERFORM f_converter_unidade USING uni1 uni2 qtd. t_s604n-afatdp = qtd. t_s604n-afatkg = t_s604n-afatdp * puni. t_s604n-afatvl = t_s604n-afatdp * vluni. ENDFORM. " f_afaturar *&---------------------------------------------------------------------* *& Form f_backorder *&---------------------------------------------------------------------* FORM f_backorder. t_s604n-backcx = t_s604n-cartcx - t_s604n-afatcx . t_s604n-backdp = t_s604n-cartdp - t_s604n-afatdp. t_s604n-backkg = t_s604n-backdp * puni. IF t_s604n-backcx <> 0. t_s604n-backvl = t_s604n-cartvl - t_s604n-afatvl. ENDIF. ENDFORM. " f_backorder *&---------------------------------------------------------------------* *& Form f_ajustar_credito *&---------------------------------------------------------------------* FORM f_ajustar_credito. cred = ' '. IF t_vbuk-cmgst = 'B' OR t_vbuk-cmgst = 'C'. t_s604n-credkg = t_s604n-cartkg. t_s604n-credvl = t_s604n-cartvl. t_s604n-creddp = t_s604n-cartdp. t_s604n-credcx = t_s604n-cartcx. cred = 'X'. ENDIF. ENDFORM. " f_ajustar_credito *&---------------------------------------------------------------------* *& Form f_RECUSA ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 45
  • 46.
    SAP R/3 GUIA DE IMPLEMENTAÇÃO ___________________________________________________________________________________________ *&---------------------------------------------------------------------* FORM f_recusa. t_s604n-recskg = t_s604n-cartkg. t_s604n-recsvl = t_s604n-cartvl. t_s604n-recsdp = t_s604n-cartdp. t_s604n-recscx = t_s604n-cartcx. ENDFORM. " f_RECUSA *&---------------------------------------------------------------------* *& Form f_multipl_menos_hum *&---------------------------------------------------------------------* FORM f_multipl_menos_hum. * Carteira t_s604n-cartcx = t_s604n-cartcx * ( - 1 ). t_s604n-cartdp = t_s604n-cartdp * ( - 1 ). t_s604n-cartkg = t_s604n-cartkg * ( - 1 ). t_s604n-cartvl = t_s604n-cartvl * ( - 1 ). * Faturardo t_s604n-fatcx = t_s604n-fatcx * ( - 1 ). t_s604n-fatdp = t_s604n-fatdp * ( - 1 ). t_s604n-fatkg = t_s604n-fatkg * ( - 1 ). t_s604n-fatvl = t_s604n-fatvl * ( - 1 ). * A faturar t_s604n-afatcx = t_s604n-afatcx * ( - 1 ). t_s604n-afatdp = t_s604n-afatdp * ( - 1 ). t_s604n-afatkg = t_s604n-afatkg * ( - 1 ). t_s604n-afatvl = t_s604n-afatvl * ( - 1 ). * Back-order t_s604n-backcx = t_s604n-backcx * ( - 1 ). t_s604n-backdp = t_s604n-backdp * ( - 1 ). t_s604n-backkg = t_s604n-backkg * ( - 1 ). t_s604n-backvl = t_s604n-backvl * ( - 1 ). * Credito t_s604n-credkg = t_s604n-credkg * ( - 1 ). t_s604n-credvl = t_s604n-credvl * ( - 1 ). t_s604n-creddp = t_s604n-creddp * ( - 1 ). t_s604n-credcx = t_s604n-credcx * ( - 1 ). * Recusa t_s604n-recskg = t_s604n-recskg * ( - 1 ). t_s604n-recsvl = t_s604n-recsvl * ( - 1 ). t_s604n-recsdp = t_s604n-recsdp * ( - 1 ). t_s604n-recscx = t_s604n-recscx * ( - 1 ). ENDFORM. " f_multipl_menos_hum ______________________________________________________________________________________________________ Versão: 1.0 - 19/08/09 Pág. 46