Você está na página 1de 48

1

Apostila de IDOC

1. Criação do Segmento de IDOC (WE31) ...........................................................................................................................3


2. Criar Tipo de IDOC (WE30) .............................................................................................................................................4
3. Criar o Tipo de Mensagem (WE81) ................................................................................................................................7
4. Associar o Tipo de IDOC ao Tipo de Mensagem (WE82) ...............................................................................................11
5. Verificar/Criar Sistemas Lógicos (SALE) – BASIS ...........................................................................................................13
6. Verificar/Criar Destino RFC (SM59) - BASIS ..................................................................................................................14
7. Modelo de Distribuição (BD64) ....................................................................................................................................15
8. Verificar Protocolo de Transmissão (WE20) .................................................................................................................18
9. Verificar Portas no Processamento IDOC (WE21) .........................................................................................................22
10. Criar função para criação do IDOC (SE37) ................................................................................................................24
11. Selecionar IDOCs (BD87) ..........................................................................................................................................27

ANEXO I – FUNÇÃO OUTBOUND. .................................................................................................................................................29

CRIAÇÃO TIPO INBOUND .................................................................................................................................................................32


12. Criar função que receberá os dados do IDOC (SE37) ................................................................................................33
13. Cadastrar função como “Entrada” (BD51) ...............................................................................................................34
14. Associar Tipo de Mensagem a Função (WE57) .........................................................................................................36
15. Criar Process Code (WE42) ......................................................................................................................................37
16. Associar Process Code a Função (DB67) ...................................................................................................................39
17. Ferramenta de Teste para o processamento IDOC (WE19) - TESTE ..........................................................................40
18. Centro de Custo/Tipo Ativ.: Enviar qtd planejadas e tarifas (BD27) - TESTE ..............................................................44
19. Cliente exibir: 1º Tela (XD03) – TESTE ......................................................................................................................45

ANEXO II – FUNÇÃO INBOUND. ...................................................................................................................................................46

2
1. Criação do Segmento de IDOC (WE31)
Depois processar->definir liberação, isso para poder editar.

3
2. Criar Tipo de IDOC (WE30)

4
• Clicar no novo (folhinha)

5
6
3. Criar o Tipo de Mensagem (WE81)

7
8
9
10
4. Associar o Tipo de IDOC ao Tipo de Mensagem (WE82)

11
Tipo mensagem: ZMCPX_ALUNO07_OUT

Tipo básico: ZTCPX_ALUNO07_OUT

Aplicação: -

Release: 600

12
5. Verificar/Criar Sistemas Lógicos (SALE) – BASIS

13
6. Verificar/Criar Destino RFC (SM59) - BASIS

14
7. Modelo de Distribuição (BD64)
Definir Modelo de Distribuição

15
16
17
8. Verificar Protocolo de Transmissão (WE20)

18
19
Tela: Outbound

20
Tela: Inbound

21
9. Verificar Portas no Processamento IDOC (WE21)

22
23
10. Criar função para criação do IDOC (SE37)

24
CODIGO: function ZF_CPX_ALUNO07_OUTBOUND. (ANEXO I)

EXECUTANDO A FUNÇÃO (F8)

25
26
11. Selecionar IDOCs (BD87)

Clique no nó (ícone amarelo – esperando processamento), processar (F8), Voltando para tela abaixo.

27
Arquivo criado.

Outras telas

WE05

28
ANEXO I – Função Outbound.

function ZF_CPX_ALUNO07_OUTBOUND.
*"--------------------------------------------------------------------
*"*"Interface local:
*" IMPORTING
*" REFERENCE(I_KUNNR) TYPE KUNNR
*" TABLES
*" COMMUNICATION_DOCUMENTS STRUCTURE SWOTOBJID OPTIONAL
*" EXCEPTIONS
*" ERROR_CREATING_IDOCS
*"--------------------------------------------------------------------
data:
wl_idoc_control like bdicontrol,
wl_idoc_data like edidd occurs 0 with header line,
wl_idoc_receiver like bdi_logsys occurs 0 with header line,
wl_idoc_comm like edidc occurs 0 with header line,
wl_tabix like sy-tabix,
vl_emissor like tbdls-logsys, " Emissor.
bdi_model like bdi_model occurs 0 with header line,
receivers like bdi_logsys occurs 0 with header line,
edipod like edipod occurs 0 with header line,
edidc like edidc occurs 0 with header line,
t_zscpx_ALUNO07_out like zscpx_ALUNO07_out occurs 0 with header line.

constants:
c_mestyp like bdicontrol-mestyp value 'ZMCPX_ALUNO07_OUT',
c_idoctp like bdicontrol-idoctp value 'ZTCPX_ALUNO07_OUT',
c_segnam like edidd-segnam value 'ZSCPX_ALUNO07_OUT'.

wl_idoc_control-mestyp = c_mestyp.
wl_idoc_control-idoctp = c_idoctp.
wl_idoc_control-serial = sy-datum.
wl_idoc_control-serial+8 = sy-uzeit.
wl_idoc_data-mandt = sy-mandt.

select single kunnr name1 sortl stras ort01 pstlz ort02 land1 regio spras telf1 k
nurl
into t_zscpx_ALUNO07_out
from kna1
where kunnr eq i_kunnr.

if sy-subrc eq 0.

* loop at t_zscpx_ALUNO07_out.

add 1 to wl_tabix.

move: t_zscpx_ALUNO07_out to wl_idoc_data-sdata,


c_segnam to wl_idoc_data-segnam,
wl_tabix to wl_idoc_data-segnum.

append wl_idoc_data.

* endloop.
29
refresh: wl_idoc_receiver, wl_idoc_comm.

*vl_emissor = 'SAPEC6'.

* Recupera o Sistema Lógico do Emissor


call function 'OWN_LOGICAL_SYSTEM_GET'
importing
own_logical_system = vl_emissor
exceptions
own_logical_system_not_defined = 1
others = 2.

* IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
* ENDIF.

* Lê o modelo de Distribuição para encontrar o Destinatário


call function 'ALE_MODEL_INFO_GET'
exporting
message_type = c_mestyp
sending_system = vl_emissor
tables
model_data = bdi_model.

* IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
* ENDIF.

* Verifica se existe o Modelo


move bdi_model-rcvsystem to receivers-logsys.
append receivers.

call function 'ALE_IDOCS_CREATE'


exporting
idoc_control = wl_idoc_control
tables
idoc_data = wl_idoc_data
receivers = receivers
created_idocs_additional = wl_idoc_comm
exceptions
idoc_input_was_inconsistent = 1
others = 2.

clear wl_idoc_data.
refresh wl_idoc_data.

if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
raising error_creating_idocs.
else.
commit work.
endif.

30
* Enviar o Arquivo
call function 'EDI_OUTPUT_NEW'
tables
i_edidc = wl_idoc_comm
i_edidd = wl_idoc_data.

endif.

endfunction.

31
Criação tipo Inbound

WE31 - Criação do Segmento de IDOC

WE30 – Criar Tipo de IDOC

WE81 – Criar o Tipo de Mensagem

WE82 – Associar o Tipo de IDOC ao Tipo de Mensagem

SE37 – Criar função que receberá os dados do IDOC *

BD51 – Cadastrar função como “Entrada” *

WE57 – Associar Tipo de Mensagem a Função *

WE42 – Criar Process Code *

BD67 – Associar Process Code a Função *

SALE – Verificar/Criar Sistemas Lógicos

SM59 – Verificar/Criar Destino RFC

BD64 – Modelo de Distribuição

WE20 – Verificar Protocolo de Transmissão

WE21 – Verificar Portas no Processamento IDOC

* Transações que são diferentes do processo de criação de IDOC Outbound

32
12.Criar função que receberá os dados do IDOC (SE37)

33
13.Cadastrar função como “Entrada” (BD51)

34
35
14.Associar Tipo de Mensagem a Função (WE57)

36
15.Criar Process Code (WE42)

37
38
16.Associar Process Code a Função (DB67)

39
17. Ferramenta de Teste para o processamento IDOC (WE19) - TESTE

40
41
42
43
18. Centro de Custo/Tipo Ativ.: Enviar qtd planejadas e tarifas (BD27) - TESTE

44
19. Cliente exibir: 1º Tela (XD03) – TESTE

45
ANEXO II – Função Inbound.
function ZF_CPX_ALUNO07_INBOUND.
*"--------------------------------------------------------------------
*"*"Interface local:
*" IMPORTING
*" VALUE(INPUT_METHOD) LIKE BDWFAP_PAR-INPUTMETHD
*" VALUE(MASS_PROCESSING) LIKE BDWFAP_PAR-MASS_PROC
*" EXPORTING
*" VALUE(WORKFLOW_RESULT) LIKE BDWFAP_PAR-RESULT
*" VALUE(APPLICATION_VARIABLE) LIKE BDWFAP_PAR-APPL_VAR
*" VALUE(IN_UPDATE_TASK) LIKE BDWFAP_PAR-UPDATETASK
*" VALUE(CALL_TRANSACTION_DONE) LIKE BDWFAP_PAR-CALLTRANS
*" TABLES
*" IDOC_CONTRL STRUCTURE EDIDC OPTIONAL
*" IDOC_DATA STRUCTURE EDIDD OPTIONAL
*" IDOC_STATUS STRUCTURE BDIDOCSTAT OPTIONAL
*" RETURN_VARIABLES STRUCTURE BDWFRETVAR OPTIONAL
*" SERIALIZATION_INFO STRUCTURE BDI_SER OPTIONAL
*" EXCEPTIONS
*" WRONG_FUNCTION_CALLED
*"--------------------------------------------------------------------

************************************************************************
* Declaração de Tabelas
************************************************************************
* tables: zscpx_alunoxx.

************************************************************************
* Declaração de Variáveis
************************************************************************
data: vg_docnum like edidd-docnum.
data: zscpx_alunoxx.

************************************************************************
* Tabelas Internas
************************************************************************
data: t_cliente type zscpx_alunoxx_in occurs 0 with header line,
t_return type bdcmsgcoll occurs 0 with header line.
************************************************************************
* Processamento
************************************************************************
* faz a leitura das informações do idoc
read table idoc_data index 1.

* Obter o numero do IDOC


move idoc_data-docnum to vg_docnum.

* move o conteúdo do Segmento para tabela declarada.


t_cliente = idoc_data-sdata.

* utiliza função e informações recebidas para criar um novo cliente


call function 'Z_IDOC_CREATE_CUSTOMER'
exporting
i_name1 = t_cliente-name1
i_sortl = t_cliente-sortl

46
i_stras = t_cliente-stras
i_ort01 = t_cliente-ort01
i_pstlz = t_cliente-pstlz
i_ort02 = t_cliente-ort02
i_land1 = t_cliente-land1
i_regio = t_cliente-regio
i_spras = t_cliente-spras
i_telf1 = t_cliente-telf1
i_knurl = t_cliente-knurl
tables
return = t_return.

* Atualiza tabela de LOG


loop at t_return.
if t_return-msgtyp eq 'E'.
idoc_status-status = '51'. "Erro
else.
idoc_status-status = '53'. "Sucesso
endif.

idoc_status-docnum = vg_docnum.
idoc_status-msgty = t_return-msgtyp.
idoc_status-msgid = t_return-msgid.
idoc_status-msgno = t_return-msgnr.
idoc_status-msgv1 = t_return-msgv1.
idoc_status-msgv2 = t_return-msgv2.
idoc_status-msgv3 = t_return-msgv3.
idoc_status-msgv4 = t_return-msgv4.
idoc_status-segnum = idoc_status-segnum.
idoc_status-uname = sy-uname.
idoc_status-repid = sy-repid.
idoc_status-routid = sy-cprog.
append idoc_status.
endloop.

endfunction.

47
Conheça nossos cursos:

• ABAP Online Básico


• ABAP Online Avançado
• Debug para Funcionais Online
• Debug para Funcionais Presencial

Veja todos e mais informações no site: https://aztreinamentos.com/cursos

48

Você também pode gostar