Beruflich Dokumente
Kultur Dokumente
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
Existem vrias vantagens pela utilizao da tecnologia ALE: SAP garante a independncia de release. ALE oferece melhor performance de interface de entrada do que as tcnicas tradicionais como Batch Data Communications (BDC) ou Call Transactions. ALE no utiliza batch-input baseada de telas. ALE fornece tecnologia tipo caixa-preta, com isso o usurio fica no nvel mais alto de desenvolvimento. A maioria de interfaces ALE pode ser prototipada em alguns dias, resultando prazo menor de implementao. Pouco ou no h desenvolvimento de ABAP. Na maioria dos casos, as funcionalidades ALE desenvolvidas pelo SAP j preenchem os requisitos. ALE oferece recursos sistemticos e organizados para manuteno de melhorias e extenses. Uma interface ALE fcil de manuteno devido ao acesso estruturado e ao nmero mnimo de objetos de desenvolvimento. ALE a arquitetura estratgica do R/3 para efetuar conexo com sistemas legados e de terceiros e o elemento chave do Business Framework. Ele determina a arquitetura baseada em mensagens para integrao assncrona de componentes de Business Framework, incluindo Business Components, Business Objects, e BAPIs.
Pg 3 de 18
Qual a diferena entre ALE, EDI, IDoc e BAPI? O conceito de interface do R/3 baseado em duas estratgias diferentes: Remote Function Calls (RFC) e a troca de dados atravs de documentos de mensagem IDoc. RFC faz a chamada direta e sincronizada de programa no sistema remoto. BAPIs so subconjunto de mdulos de funo RFC, especialmente desenhadas como Application Programming Interface (API) para objeto de negcio SAP, ou seja, BAPIs so mdulos de funo liberados oficialmente pela SAP para serem chamados por programas externos. IDoc(Intermediate Document) documento de texto codificado com uma estrutura rgida que usado para troca de dados entre R/3 e sistemas externos. Ao invs de chamar o programa diretamente no sistema destino, os dados so primeiramente empacotados para um IDoc e depois o IDoc enviado para sistema receptor, onde ele analisado e adequadamente processado. Por isso a troca de dados via IDoc sempre um processo assncrono. A principal diferena entre uma chamada simples de RFC e a troca de dados via IDoc , de fato, que cada ao executada em IDoc protocolada pelo R/3 e IDocs podem ser reprocessados se algum erro ocorrer durante um dos passos de mensagem. Enquanto IDocs so entendidos como protocolo de troca de dados, EDI e ALE so casos tpicos de uso para IDocs. R/3 utiliza IDocs atravs tanto EDI quanto ALE para distribuir dados ao sistema receptor. A grande diferena entre EDI e ALE o seguinte: se eu enviar dados para um parceiro externo, de forma geral eu estou falando de EDI, enquanto ALE o mecanismo para replicar dados de forma confivel entre sistemas de confiana para armazenar cpia redundante de dados de IDoc. Para esclarecer a diferena ainda mais, podemos pensar um pedido de compra que enviado atravs de um IDoc. Se ns enviarmos um pedido de compra para o fornecedor ento o fornecedor vai armazenar este pedido de compra como uma ordem de venda. (Isto o conceito de EDI.) No entanto, se ns enviarmos o pedido de compra via ALE para outro ambiente R/3, ento o sistema receptor vai armazenar o pedido de compra tambm como pedido de compra.
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
Manual Prtico de ALE/EDI e IDoc Roteiro prtico para criar IDoc de sada (outbound)
Vamos criar um IDoc de sada (outbound) usando a BAPI: BAPI_BANK_GETLIST. 1 passo: Criar os segmentos atravs da transao WE31: Criar segmento conforme a estrutura BAPI1011_LIST: Tipo de segmento: ZE1BANKLIST Descrio breve: Lista de Bancos
Ite m 1 2 3 4 Nome de campo BANK_CTRY BANK_KEY BANK_NAME CITY Elemento de dados BANKS BANKK BANKA ORT01_GP
Salvar e liberar o segmento. 2 passo: Criar Tipo de IDoc atravs da transao WE30: Nome IDoc: ZID_BANKLIST Descrio: Lista de Bancos Ligar o segmento ZE1BANKLIST abaixo do nome do IDoc: Nmero mnimo: 1 Nmero mximo: 99999999 Salvar e liberar o tipo de IDoc. 3 passo: Criar Tipo de mensagem atravs da transao WE81: Tipo de mensagem: ZMG_BANKLIST Descrio breve: Lista de Bancos 4 passo: Relacionar tipo de mensagem ao tipo de IDoc atravs da transao WE82: Tipo de mensagem: ZMG_BANKLIST Tipo Bsico: ZID_BANKLIST Release: 46C 5 passo: Criar destino RFC atravs da transao SM59: Clicar no boto <Criar>, Destino RFC: DESTINO_RFC_IDOC005 Tipo de conexo: T Descrio: Teste de destino RFC para IDoc ZID_BANKLIST 6 passo: Criar porta atravs da transao WE21: Posicionar o cursor na palavra RFC Transacional Portas +-------RFC Transacional Clicar o cone <Criar> Selecionar a opo Gerar nome de porta, o sistema ir gerar a porta com o prximo nmero subseqente, no nosso caso: A000000025 Descrio: Porta de sada para IDoc ZID_BANKLIST Destino RFC: DESTINO_RFC_IDOC005
Pg 8 de 18
7 passo: Criar um mdulo de funo atravs da transao SE37: Mdulo de funo: ZALE_GET_BANKLIST Grupo de funo: ZIDOC (criar se for necessrio) Texto breve: Buscar lista de bancos Importao: Nome parmetro Atrib. Tipo referncia Valor proposto
BANK_CTRY SERIAL_ID LIKE LIKE BAPI1011_LIST SERIAL-CHNUM '0'
Opc.
X
Trans
X X
Atrib.
LIKE LIKE
Tipo referncia
BDI_LOGSYS SWOTOBJID
Opc.
X
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 *----------------* * 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.
bdicontrol, edidd OCCURS 0 WITH HEADER LINE, bdi_logsys OCCURS 0 WITH HEADER LINE, edidc OCCURS 0 WITH HEADER LINE, syst.
Pg 9 de 18
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 *
Pg 10 de 18
Pg 11 de 18
Pg 12 de 18
Pg 13 de 18
Manual Prtico de ALE/EDI e IDoc Roteiro prtico para criar IDoc de entrada (inbound)
Existem duas formas de realizar IDoc de entrada, dependendo da disponibilidade de recursos no SAP. A primeira forma aproveitar a estrutura existente de BAPI no SAP, se esta atende a necessidade do usurio; caso contrario, necessrio criar uma funo e configurar o ambiente para que a entrada do IDoc seja efetuada. Vamos comear o exemplo pela forma mais fcil, a de aproveitar a estrutura existente de BAPI.
1) Vamos criar um IDoc de entrada (inbound) usando a BAPI: BAPI_BANK_CREATE.
1 passo: Buscar o bus da BAPI atravs da transao BAPI: Na transao BAPI, selecionar o folder Alfabetic, abrir a estrutura do bank e clicar na palavra create. Na parte direita da tela double-click a opo create BAPI List e depois na tela inferior mostra o bus da BAPI no campo CtgObjeto. Anotar o bus. No nosso caso BUS1011. 2 passo: Gerar interface ALE atravs da transao BDBG: Na transao BDBG, entrar o nome do bus no campo CtgObjeto/tp.interface (BUS1011), e no campo de Mtodo, clicar no match-code, selecionar a opo CREATE e depois clicar no cone <criar>. Se o interface j foi criado, ento a mensagem Existe o tipo de mensagem BANK_CREATE para objeto BUS1011 e mtodo CREATE mostrada. Neste caso, podemos consultar o interface criado clicando o cone <Verificar interface>. O sistema mostrar o tipo de mensagem BANK_CREATE, o tipo bsico (tipo de IDoc) BANK_CREATE01, os segmentos e as funes de entrada (IDOC_INPUT_BANK_CREATE) e sada (ALE_BANK_CREATE). Todos estes componentes de interface j foram criados. Se o interface ainda no foi criado, ento o sistema mostra uma janela pedindo o tipo de mensagem, e depois mostra outra janela para que entre com os dados de tipo de IDoc, mdulos de funo de entrada e sada. Aps de entrar todos os dados, o sistema gerar tipo de mensagem, IDoc, os segmentos e as funo de entrada e sada automaticamente. (Tipo de mensagem gravado na tabela standard EDMSG). 3 passo: Criar cdigo de processo entrada atravs da transao WE42: Na transao WE42, selecionar o cdigo de processo BAPI (double-click) Double-click na palavra Mensagem lgica situada no lado esquerdo da tela. No table-control do lado direito da tela, verificar se tipo de mensagem BANK_CREATE est cadastrado. Caso contrrio, clicar no cone <Entradas novas>. Tipo de mensagem: BANK_CREATE Salvar o cdigo de processo. 4 passo: Atribuir mdulo de funo a tipo de mensagem e de IDoc atravs da transao WE57: Verificar se o tipo bsico BANK_CREATE01 est cadastrado na transao WE57. Caso contrrio, clicar no cone <Entradas novas>. Mdulo: BAPI_IDOC_INPUT1 Categoria: F Tp.bsico: BANK_CREATE01
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