Escolar Documentos
Profissional Documentos
Cultura Documentos
IDoc
O que ALE?
SAP ALE (Application Link Enabling) a tecnologia proprietria que permite a comunicao de dados
entre dois ou mais ambientes SAP R/3 ou R/3 e sistemas de terceiros. A tecnologia ALE facilita rpida
prototipao de aplicao e desenvolvimento de interface de aplicao, e ainda reduz o tempo de
implementao.
ALE vem com cenrios de integrao/distribuio de aplicao e um conjunto de ferramentas, programas,
definio de dados e metodologias que voc pode facilmente configurar para construir e rodar uma
interface.
A arquitetura de ALE composta de trs camadas:
Application layer. Esta camada fornece a ALE uma interface para criar ou receber mensagens contendo
dados para/de sistemas externos (ou outra SAP R/3).
Distribution layer (ALE layer). A camada de distribuio filtra e converte mensagens contendo dados
baseados de regras predefinidas ou customizadas. Estas converses podem ocorrer para assegurar a
compatibilidade entre diferentes releases de R/3 e R/2.
Communications layer. As comunicaes ALE so realizadas tanto sincronamente quanto
assincronamente. Transmisses de mensagens sincronamente so tipicamente usadas para leitura de
dados diretamente, enquanto transmisses de mensagens assincronamente so usadas para transmitir e
receber dados da aplicao.
Pg 2 de 18
Pg 3 de 18
Pg 4 de 18
Registro de controle, ou EDI_DC, uma estrutura de controle que contm vrios campos com
as informaes sobre o IDoc, tais como o tipo de IDoc, o tipo de mensagem, informao de
sender e de receiver, e a direo (1 para outbound e 2 para inbound). Estas informaes
Pg 5 de 18
Porta. Porta a representao lgica de canal de comunicao em SAP, com os IDocs sendo os dados
comunicados. So quatro tipos de portas que podem ser definidos em R/3: tRFC, File, R/2, e Internet.
ALE pode utilizar todas os tipos de porta para distribuir IDocs, enquanto EDI tipicamente utiliza a porta
baseada em file. As portas tipo tRFC e file podem ser ligadas aos destinos RFC conectados em R/3para-R/3 ou TCP/IP.
Pg 6 de 18
Pg 7 de 18
Nome de campo
BANK_CTRY
BANK_KEY
BANK_NAME
CITY
Elemento de dados
BANKS
BANKK
BANKA
ORT01_GP
Pg 8 de 18
LIKE
LIKE
BAPI1011_LIST
SERIAL-CHNUM
Tabelas:
Nome parmetro
RECEIVERS
COMMUNICATION_DOCUMENTS
'0'
Opc.
Trans
X
X
Atrib.
Tipo referncia
Opc.
LIKE
LIKE
BDI_LOGSYS
SWOTOBJID
Exceo:
ERROR_CREATING_IDOCS
Texto fonte:
*-------------------*
* Tabelas internas
*-------------------*
DATA: BEGIN OF ti_bank_list OCCURS 0.
INCLUDE STRUCTURE bapi1011_list.
DATA: END OF ti_bank_list.
*-------------------*
* Variveis globais
*-------------------*
DATA: idoc_control
idoc_data
idoc_receiver
idoc_comm
syst_info
LIKE
LIKE
LIKE
LIKE
LIKE
bdicontrol,
edidd
OCCURS 0 WITH HEADER LINE,
bdi_logsys OCCURS 0 WITH HEADER LINE,
edidc
OCCURS 0 WITH HEADER LINE,
syst.
*----------------*
* Processamento
*----------------*
* Popular registro de controle
* Tipo de mensagem
idoc_control-mestyp = 'ZMG_BANKLIST'.
* Tipo de IDoc
idoc_control-idoctp = 'ZID_BANKLIST'.
idoc_control-serial = sy-datum.
idoc_control-serial+8 = sy-uzeit.
*-------------------*
* Seleo de dados
*-------------------*
LOOP AT receivers.
CLEAR: syst_info.
Pg 9 de 18
distribute idocs
REFRESH: idoc_receiver, idoc_comm.
APPEND receivers TO idoc_receiver.
= idoc_control
= serial_id
= idoc_data
= idoc_receiver
= idoc_comm
= 1
= 2.
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.
ENDIF.
IF communication_documents IS REQUESTED.
LOOP AT idoc_comm.
CLEAR communication_documents.
communication_documents-objtype = 'IDOC'.
communication_documents-objkey
= idoc_comm-docnum.
communication_documents-logsys
= idoc_comm-rcvprn.
communication_documents-describe = space.
APPEND communication_documents.
ENDLOOP.
ENDIF.
ENDLOOP.
* applications do commit work to trigger communications
COMMIT WORK.
Pg 10 de 18
ENDFUNCTION.
*---------------------------------------------------------------------*
*
FORM inserir_segmento_banklist
*
*---------------------------------------------------------------------*
*
Criar IDoc data-record
*
*---------------------------------------------------------------------*
FORM inserir_segmento_banklist
TABLES
ti_bank_list STRUCTURE bapi1011_list
idoc_data
STRUCTURE edidd.
DATA: ze1banklist
LIKE ze1banklist,
ti_ze1banklist LIKE edidd OCCURS 0 WITH HEADER LINE.
* for segment 'ZE1BANKLIST'
CLEAR ti_ze1banklist.
REFRESH ti_ze1banklist.
ti_ze1banklist-segnam = 'ZE1BANKLIST'.
LOOP AT ti_bank_list.
CLEAR ze1banklist.
MOVE-CORRESPONDING ti_bank_list TO ze1banklist.
IF NOT ze1banklist IS INITIAL.
ti_ze1banklist-sdata = ze1banklist.
APPEND ti_ze1banklist.
ENDIF.
APPEND ti_ze1banklist TO idoc_data.
ENDLOOP.
ENDFORM.
8 passo: Criar cdigo de processo sada atravs da transao WE41:
Cd.processo: ZCP_BANKLIST
Mdulo de funo: ZALE_GET_BANKLIST
Clicar <Enter> (O sistema traz a descrio automaticamente)
Double-click na palavra Mensagem lgica
Clicar no boto <Entradas novas>
Tipo mensagem: ZMG_BANKLIST
Salvar o cdigo de processo
9 passo: Atribuir mdulo de funo a tipo de mensagem e de IDoc atravs da transao WE57:
Mdulo: ZALE_GET_BANKLIST
Pg 11 de 18
Pg 12 de 18
Pg 13 de 18
Pg 14 de 18
Pg 15 de 18
2) Suponha que no SAP no existe uma BAPI que satisfaz a necessidade do usurio. Por exemplo, o
SAP precisa receber IDocs para alimentar uma tabela Z.
Pg 16 de 18