[Correção] SAP chamar um método de programa externo

Em SAP em um procedimento chamar um programa externo de duas maneiras:
 
1. transação Chamada <TCODE>
BDC é comum no programa.
  CHAMADA TRANSAÇÃO TCODE
        USANDO bdcdata
        MODO p_mode
        ATUALIZAÇÃO c_update
        mensagens em messtab.
modo tem os seguintes valores opcionais.

execução

modo  

efeito

"UMA"

Tudo tela de entrada, se a tela contém o código de função em bdc_tab, uma pequena janela exibe o aparece código de função. É o padrão, se não abaixo do valor especificado, são considerados A.

"E"

tela de exibição somente quando ocorre um erro, o usuário pode corrigir os dados, o programa pode continuar a processar conforme alterada.

"N"

modo silencioso não é exibida na tela. Se você atingir o ponto de interrupção é chamado de transação, o processamento do sistema é terminada, e configurar alguns campos do sistema. sy-SUBRC  a 1001, SY-MSGTY  como "S", SY-msgstr  é "00", SY-MSGNO  como "344", SY-MSGV1  como "SAPMSSY3", SY-msgv2  como "0131."

"P"

tela modo de depuração não é exibida. Se você atingir o ponto de interrupção é chamado de transação, o sistema irá automaticamente para ABAP debugger, esta abordagem é usado principalmente para o processo de depuração.

actualização tem os seguintes valores opcionais:

Modo de atualização

efeito

"UMA"

atualização assíncrona. chamado programa actualizado implementado de acordo com a instrução COMMIT WORK e esperar e adicionais formas não especificado. Ou seja, os dados são atualizados na fila de atualização, realizada por outro processo de atualização especial, uma vez que o programa principal continuará a enviar dados, apresentaram atualizados independentemente da execução for concluída. Essa abordagem é mais adequada para usar um grande número de dados de designação de código de transação de atualização, tais como a manutenção dos dados mestre e afins.

"S"

Sincronizada. Atualizado chamado a execução do programa, de acordo com o especificado COMMIT TRABALHO E declaração esperar e formas adicionais. Ou seja, os dados são atualizados na fila de atualização, executado por um processo de atualização dedicado, mas o programa principal irá esperar até que os dados apresentados completa e retornar as informações de resultado antes de continuar a execução. Esta forma de realização é mais apropriado para os requisitos de consistência de dados são relativamente elevado processamento, contínuo de uma pluralidade de diferentes códigos de operação.

"EU"

atualização local. chamado programa actualizado executada na forma da execução da instrução SET ATUALIZAÇÃO tarefa local. Em outras palavras, o processo de atualização de dados seja concluída no programa principal está localizado, ele é chamado o programa principal deve esperar até que a transação seja concluída antes de continuar a execução.

 
2. Apresentar programa <> e regresso
programa de chamada:
RELATÓRIO ZTEST_CALL_PROG.
DATA: COMEÇAR DE w_data,
  tipo string FID1,
  Num1 tipo I,
  num2 tipo I,
FIM DO w_data.
DATA: T_OUT COMO OCORRE W_DATA 0 com cabeçalho LINE.
Faça 10 vezes.
  se sy-índice <4.
    t_out-FID1 = 'A'.
    t_out-num1 = sy-índice.
    t_out-num2 = sy-índice de + 1.
  elseif seu índice <7.
    t_out-FID1 = 'B'.
    t_out-num1 = sy-índice de + 1.
    t_out-num2 = sy-índice + 2.
  outro.
    t_out-FID1 = 'C'.
    t_out-num1 = sy-índice.
    t_out-num2 = sy-índice - 1.
  FIM SE.
  anexar t_out.
  ENDDO.
  exportação t_out para dentro 'T_OUT'. "t_out Tabela da memória memória id id é 'T_OUT', o programa é chamado dados adquiridos a partir daqui.
  ENVIE zwrite_date e RETURN. "Aqui você também pode usar enviar zwrite_data com COM s_aufnr = p_aufnr
                                     "COM s_mode = 'valor N passado para o procedimento chamado.
  escrever: / 'Justin'.
 
 
O programa é chamado, para obter dados a serem tratados no armazenamento de memória ABAP do chamador.
RELATÓRIO ZWRITE_DATE.
dados: COMEÇAR DE w_data,
  tipo string FID1,
  Num1 tipo I,
  num2 tipo I,
 FIM DO w_data.
 dados: t_out COMO OCORRE w_data 0 com cabeçalho LINE.
 importar t_out de id MEMÓRIA 'T_OUT'.
 MEMÓRIA LIVRE ID 'T_OUT'. "Limpar a memória ID é o conteúdo 'T_OUT'.
 laço na t_out.
   escreve: / '', t_out-FID1, t_out-num1, t_out-num2.
 ENDLOOP.
 escrever: sy-Uline.
 
 
Outro exemplo:
   EXPORT rm16_lgort DE l_lgort

          rm16_werks DE p_plwrk
          rm16_matnr DE p_matnr TO MEMORY ID 'ZPHRRM13'.
  ENVIE zphrrm13 e retorno.
  IMPORT mdezx mdpsx mdkp mdsta mdstal DE ID MEMÓRIA 'ZPHRRM13'

 

 
Lançado 2018 artigos originais · ganhou elogios 3957 · Vistas 10350000 +

Acho que você gosta

Origin blog.csdn.net/zhongguomao/article/details/46827099
Recomendado
Clasificación