on 01-10-2014 6:47 PM
Olá pessoal,
No envio do xml para o cliente, verifiquei e o corpo do email está vazio, ou seja, estou recebendo o email com o anexo (xml), porém a mensagem não está sendo exibida. Infelizmente utilizei a solução da wiki do Ricardo, desta forma o corpo do email está sendo montado no mapping standard, para teste estou passando apenas uma constante para a tag <content> e ainda assim não recebo este texto no email. Segue o print do canal de comunicação.
Att,
Olá Alan,
Infelizmente você usou a minha wiki, fiquei bolado rsrsrs , não seria felizmente eu tive uma wiki para seguir
Seguinte marque como "NONE" em vez de "BASE64".
Não marque nenhuma das opções avançadas.
Por favor, poderia fazer um teste via operation mapping e posta o resultado do texte na estrutura XiMail30 como ficou ?
Quando você dispara a mensagem, o anexo está OK ?
Atenciosamente,
Ricardo Viana.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
<?xml version="1.0" encoding="UTF-8"?>
<ns1:Mail xmlns:ns1="http://sap.com/xi/XI/Mail/30">
<Subject>Nota Fiscal Eletronica – Nfe</Subject>
<From>nfeletronica@xxxxxxxx.com.br</From>
<To>alanmottaoliveira@gmail.com</To>
<Content_Type>application/xml</Content_Type>
<Content_Description>NFe35131260934551000154550040001XXXXXXXXX</Content_Description>
<Content_Disposition>attachment;filename= NFe35131260934551000154550040001001XXXXXXXXX.xml</Content_Disposition>
<Content>Prezado</Content>
</ns1:Mail>
O anexo está ok!
Alan,
Se você seguiu a minha wiki, está faltando coisa.
Da para entender o por que o anexo está ok e por que está faltando o texto.
Você não vai mais usar content_description e content_disposition, eles já vão estar embutidos no <Content>, da forma que você desenvolveu, realmente você só vai receber o anexo.
O Content_type não teve apenas conter application/xml (apenas anexo) - ele precisa conter o MIME - multipart/mixed;boundary
<?xml version="1.0" encoding="utf-8"?>
<ns1:Mail xmlns:ns1="http://sap.com/xi/XI/Mail/30">
<Subject>CC-e - Empresa do Amor: xxxxxxxxxxxxxxxxxxChave de acessoxxxxxxxxxxx </Subject>
<From>nfealgumacoisa@teste.com</From>
<To>nfealgumacoisa@teste.com</To>
<Content_Type>multipart/mixed;boundary=--AaZz</Content_Type>
<Content>----AaZz
Content-Type: text/plain; charset=UTF-8
Content-Disposition: inline

Prezado Cliente,

Segue anexo arquivo referente a Carta de correção eletronica
----AaZz
Content-Disposition: attachment; filename=CC-e - xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xml&
</Content></ns1:Mail>
--AaZz eu que defini assim, você pode criar como --Body--Anexo, como quiser, esse --AaZz é o delimitador do que é texto e do que é anexo.
Texto = text/plain; charset=UTF-8
Anexo = attachment; filename.
Cara espero te ajudado agora.
Abs.
Ricardo Viana.
Vc é o cara Ricardo,
Deu certo....!!!!
Com a explicação que vc me passou + uma UDF que outra pessoa havia me passado (pq de java não manjo nada):
public String concatCompletText(String body, String boundary, String filename, String ext, String attachment, Container container) throws StreamTransformationException{
{
String CRLF = "\r\n";
String output = new String("");
output = boundary + CRLF
+ "Content-Type: text/plain; charset=UTF-8" + CRLF
+ "Content-Disposition: inline" + CRLF
+ CRLF
+ body + CRLF
+ boundary + CRLF
+ "Content-Type: application/xml; name=" + filename + ext + CRLF
+ "Content-Disposition: attachment; filename=" + filename + ext + CRLF
+ "Content-Transfer-Encoding: base64" + CRLF
+ CRLF
+ ((String)new sun.misc.BASE64Encoder().encode(attachment.getBytes())) + CRLF
+ CRLF
+ boundary + "--" + CRLF;
return output;
}
Fiz o Mapping e funfou. Segue o print do Mapping:
Claro que tenho que melhorar o texto, mas só de estar funcionando valeu a semana....! Vou ver se antes de entrar em produção eu consigo compilar seu codigo java e utilizar ele. Mais uma vez desculpa pelo outro comentário (não foi a intenção) e muito obrigado!
Boa Alan !!!!!
Feliz por saber que consegui te ajudar, esse solução que vc esta utilizando, eu ja fiz, e te garanto que é mais complexo do que javamapping.
Sobre o javamapping, basicamente pega meu codigo, altera o que for necessario no ecplise, salva como .jar e sobe no PI.
Joga no operation mapping e ja era. Que tal vc tentar ? Assim vc vai aprender tambem o mapeamento via java e nao vai ficar limitado apenas ao mapeamento grafio vulgo "MENSAGEM MAPPING.
Abs e parabens!
Precisa cara,
Nova api para java mapping versão 7.1+ e o metodo execute não funciona, foi substituido pelo Transform.
Cara da uma olhada no blog que acabei de jogar no forum de PI Global, de como fazer java mapping via DOM parsing.
http://scn.sap.com/docs/DOC-45642
Lá tem todos os steps e as libs necessárias para versão 7.1+
Abraços,
User | Count |
---|---|
15 | |
3 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.