cancel
Showing results for 
Search instead for 
Did you mean: 

B2B - Corpo de Email vazio

Former Member
0 Kudos

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,

Accepted Solutions (1)

Accepted Solutions (1)

rhviana
Active Contributor
0 Kudos

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.

Former Member
0 Kudos

<?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!

rhviana
Active Contributor
0 Kudos

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&#xD;

Content-Type: text/plain; charset=UTF-8&#xD;

Content-Disposition: inline&#xD;

&#xD;

Prezado Cliente,

&#xD;Segue anexo arquivo referente a Carta de correção eletronica&#xD;

----AaZz&#xD;

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.

Former Member
0 Kudos

Cara foi mal sobre a wiki, eu quis dizer que infelizmente não utilizei sua Wiki! Só agora que vi, desculpa mesmo!

Former Member
0 Kudos

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!

rhviana
Active Contributor
0 Kudos

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!

rhviana
Active Contributor
0 Kudos

Sem rancor no coracao rsrs tranquilo cara, so estava brincando contigo.

Former Member
0 Kudos

Ricardo,

Certeza que vou tentar compilar seu código e subir no PI, mais uma vez obrigado. Só uma coisa, como estou utilizando o PI 7.3, parece que existem algumas coisas que precisam ser modificadas no código, vc saberia o que?

rhviana
Active Contributor
0 Kudos

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,

Answers (0)