on 2015 Aug 11 2:13 AM
Oi pessoal,
por favor, estamos com esse erro abaixo no "mail receiver" do b2b:
server not responding OK to RCPT TO; 501 5.1.3 Invalid address, encontrei algumas discussões que afirmam que são parâmetros do exchange que devem ser "ajustados" para que funcione este cenário,
inclusive nos nossos ambientes de dev e qas estão funcionando somente neste ambiente que estamos preparando como produtivo não está funcionando esta comunicação. A única diferença dentre este ambiente e os demais que funcionam é que este ambiente funciona em cluster.
Estamos no NW7.4 SP20.
Nosso time de exchange / network afirmou que está tudo de acordo.
alguém já se deparou com esse erro?
obrigado!!!
Request clarification before answering.
Orival,
Verifique se o endereço do destinatário está correto. Se vocês usarem Mail Package, verifique a tag <To></To> do payload. Se definirem o destinatário via ASMA, verifique no log da mensagem (Dynamic Configuration), assim como a função que retorna o email do destinatário, se ele está retornando um e-mail válido.
Se possível, veja se existe diferença entre destinatários internos(ex. e-mail da empresa) e externos(ex. GMail, Yahoo, etc).
O Mail Server usado em DEV/QAS é o mesmo do utilizado em Produção, onde o erro acontece, certo?
[]'s
JN
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Boa tarde Jose,
muito obrigado pela resposta, como estamos preparando este ambiente para ser o produtivo conectamos no ECC QAS para validar os cenários, então o cenário e os e-mails são os mesmos (do cenário que funciona).
mas é justamente o Dynamic configuration, no preenchimento do parâmetro THeaderTO, está ocorrendo um exception na execução do java mapping. O estranho é que somente neste ambiente está ocorrendo o exception, nos demais estão com os mesmos objetos e não ocorre o erro, verifiquei o processamento da BADI (coloquei um "break dinâmico") e o ABAP é processado corretamente, retorna devidamente o e-mail.
será que o fato de ter uma arquitetura de cluster causa algum erro em na execução dos métodos desse mapping? talvez teria que utilizar outra biblioteca.
obrigado!!!
Orival,
Difícilmente esse problema é causado pelo fato do ambiente ser clusterizado ou não. Você pode postar a exception que ocorre no mapping?
Você disse que a determinação do email é feito via BAdI, aquela que gera um anexo na mensagem NTB2B* com o e-mail, certo? Esse anexo está sendo preenchido com o e-mail, da mesma forma como nos outros ambientes?
Poste mais detalhes que vai facilitar a solução do seu problema.
[]'s
JN
Obrigado,
o processamento do abap está correto (já verifiquei no debug) e o e-mail está correto,
segue o momento em que ocorre o exception :
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Map;
import com.sap.aii.mapping.api.DynamicConfiguration;
import com.sap.aii.mapping.api.DynamicConfigurationKey;
import com.sap.aii.mapping.api.StreamTransformation;
import com.sap.aii.mapping.api.StreamTransformationConstants;
import com.sap.aii.mapping.api.StreamTransformationException;
public class ZB2B_Exit implements StreamTransformation{
private Map param;
int c;
String line = "";
String tpamb = "";
String sbj_mail = "";
String email = "";
String xml = "";
public void execute(InputStream in, OutputStream out)
throws StreamTransformationException {
try{
//Transforma mensagem em entrada em string ----INICIO
ByteArrayOutputStream inpxml = new ByteArrayOutputStream();
while ((c = in.read()) != -1)
inpxml.write(c);
xml = inpxml.toString("UTF-8");
//Obtendo dados para o envio de e-mail
String idNFe = "";
String numeroNF = "";
String cnpj = "";
idNFe = xml.substring(xml.indexOf("<chNFe>")+7,xml.indexOf("</chNFe>"));
if ((xml.substring(xml.indexOf("@AMB=")+5,xml.indexOf("@EMAIL="))).equalsIgnoreCase("HOM")) {
tpamb = "<tpAmb>2</tpAmb>";
sbj_mail = "Homolo…”
} else {
tpamb = "<tpAmb>1</tpAmb>";
sbj_mail = "NFe…";
}
email = xml.substring(xml.indexOf("@EMAIL=")+7, xml.indexOf("@END</tpAmb>"));
//Fill the dynamic configuration for the �to� field in the mail adapter
DynamicConfiguration conf = (DynamicConfiguration) param.get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey keyTo = DynamicConfigurationKey.create(
"http://sap.com/xi/XI/System/Mail", "THeaderTO");
conf.put(keyTo, email);
DynamicConfigurationKey sbj = DynamicConfigurationKey.create(
"http://sap.com/xi/XI/System/Mail", "THeaderSUBJECT");
conf.put(sbj, sbj_mail);
xml = xml.replaceFirst("<tpAmb>@AMB=.*@END</tpAmb>", tpamb.toString());
out.write(xml.getBytes("UTF-8"));
}catch(Exception ex){
email = "ERRO_NFE@... ";
//Fill the dynamic configuration for the �to� field in the mail adapter
DynamicConfiguration conf = (DynamicConfiguration) param.get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey keyTo = DynamicConfigurationKey.create(
"http://sap.com/xi/XI/System/Mail", "THeaderTO");
conf.put(keyTo, email);
DynamicConfigurationKey sbj = DynamicConfigurationKey.create(
"http://sap.com/xi/XI/System/Mail", "THeaderSUBJECT");
conf.put(sbj, sbj_mail);
try{
out.write(xml.getBytes("UTF-8"));
}catch(Exception ex2){
ex.printStackTrace();
}
ex.printStackTrace();
}
}
public void setParameter(Map param) {
this.param = param;
}
public static void main(String[] args) throws Exception{
InputStream in = new FileInputStream("C:/teste_in/ln");
OutputStream out = new FileOutputStream("C:/teste_out/OUT.xml");
new ZB2B_Exit().execute(in, out);
}
}
Orival,
O erro pode estar acontecendo por conta da combinação String.substring() + String.indexOf() onde o indexOf retorna -1 por não ter encontrado a String procurada;
No trace desta mensagem não consta o stackTrace da Exception do Mapping? Se sim, poste-o aqui, talvez ajude.
Se você tiver o payload que está sendo usado e dando problema, você poderia testar o Java Mapping localmente no NWDS e ver exatamente o ponto onde está falhando.
[]'s
JN
Orival, bom dia.
Lembre-se que a BADI pode estar sendo chamada duas vezes, 01 para o Cliente e 01 para a Transportadora, caso o CNPJ da Transportadora esteja ativo para Recebimento de XML (B2B Out).
Se isto estiver ocorrendo pode ser que o e-mail da Transportadora não esteja sendo encontrado.
Envie também o código da sua BADI para ajudar a encontraruma saída.
Abraços.
Baroni
Oi pessoal,
através do debug no NWDS com o payload do B2B verificamos que é isto mesmo, o erro foi devido a busca da string no xml.
A BADI estava ok, mas descobrimos que foi criado um "enhancement Z" que altera o XML para inserir a substring para a tratativa dos e-mails. E este enhancement estava errado.
muito obrigado pela ajuda
abs
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 7 | |
| 7 | |
| 7 | |
| 3 | |
| 2 | |
| 2 | |
| 2 | |
| 2 | |
| 1 | |
| 1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.