Sumário:
Este documento descreve a criação de uma interface que receberá vários anexos em um email, irá capturar apenas os anexos do tipo XML via java mapping, e gerar em forma de String em um unico arquivo, o intuito do documento não é descrever criação de canais de comunicação e integration builder.
Introdução:
A partir da versão 7.1 do PI contamos com recursos que nos permitem acessar os anexos de uma mensagem via Java mapping.
Pré-requisitos:
Netweaver Developer Studio
Libs para Java Mapping
External definition ximail importada no SWCV
Canais de comunicação Email(Sender) e File(Receiver) devidamente configurados
Passos da implementação:
1. Design:
1.1 Data Type:
Crie um data type que receberá as Strings dos anexos, conforme abaixo:
1.2 Message Type:
Crie um message type com o DT_MultiAttachments:
1.3 Services Interfaces
Outbound: Crie um Service Interface Outbound e referencie a external definition xiMail:
Inbound: Crie um service interface Inbound com o message type MT_MultiAttachments:
1.4 Operation mapping: Criar um Operation Mapping: no Source Operation insira o Service Interface MFB2B_MailPackage_OB, e Target Operation insira o Service interface MFB2B_MultipleAttachments_IB
Note que o Mapping Program é um Java Mapping, este Java Mapping acessa os anexos da mensagem pela interface inputattachments e seus métodos, para que o anexos da mensagem estejam disponíveis você DEVE selecionar a opção “Read Attachments” no Operation Mapping.
As referencias para o código do Java Mapping são:
http://scn.sap.com/thread/3257778
yugapreetha.t/blog/2009/08/24/read-the-attachments-of-the-input-xi-message-in-the-message-mapping
Apesar da Thread ser sobre B2B Outbound, o código do Java Mapping está praticamente igual ao da Thread, apenas adicionei o que preciso, como, formatar o payload de saída, incluir a string da NF-e no payload de saída, verificação do tipo do arquivo, e nome do arquivo dinâmico com o campo “From” do email, você encontra o código usado neste exemplo no arquivo anexo SDN_getAttachments.txt.
2. Configuration
2.1 Neste passo apenas crie o Scnario para sua interface de modo que a interface Sender seja MFB2B_MailPackage_OB e a interface receiver MFB2B_MultipleAttachments_IB, o objetivo deste documento não é descrever a configuração de uma interface simples mail to file, apenas tenha certeza de ter o flag "Keep Attachments" em seu canal mail sender.
3. Execução:
3.1 Enviando email com xml`s anexados
3.2 SXI_MONITOR
Mail package e anexos:
Trace:
Mensagem de saida:
Repare no Pipeline que apesar de ter colocado a string da nota no payload principal a mensagem ainda contém anexos, na Thread mencionada para criação do java mapping você tem um exemplo de como remove-los, você também consegue buscar o conteúdo do arquivo codificado em BASE64 através do método getBase64EncondedContent.
3.3 Arquivo no servidor
3.4 Arquivo
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
4 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |