on 09-13-2010 3:34 PM
Bom dia all,
Estou com um pequeno problema no B2B dinâmico. Já verifiquei esse post
O problema que está aparecendo na sxi_monitor é:
Tem um código java nesse envio dinâmico:
A variavel email é iniciada com (null), descendo código você pode verificar que ela recebe um valor, por algum motivo continua nulo.
A função já foi testada no ECC e está retornando o e-mail.
Channel channel = null;
RfcAccessor accessor = null;
String email = null;
try {
// Retreive the communication channel
channel = LookupService.getChannel(busSystem, commChannel);
// Get a RFC accessor for the channel
accessor = LookupService.getRfcAccessor(channel);
// Define the RFC Request Message
String req = "";
// Create the xml inputstream
InputStream inputStream = new ByteArrayInputStream(req.getBytes("UTF-8"));
// Create xml payload
XmlPayload payload = LookupService.getXmlPayload(inputStream);
// Execute lookup
XmlPayload result = accessor.call(payload);
// Get the response
InputStream resp = result.getContent();
// Parse the response
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(resp);
Node node = (Node) doc.getElementsByTagName("e_mail").item(0);
if (node.hasChildNodes() && !node.getFirstChild().getNodeValue().equals("")){
email = node.getFirstChild().getNodeValue();
}
} catch (Exception e) {
trace.addWarning("RFC Lookup Failed: " + e);
} finally {
// Close the accessor in order to free resources.
if (accessor!=null) {
try {
accessor.close();
} catch (Exception e) {
trace.addWarning("Error while closing accessor: " + e);
}
}
}
return email;
Alguem já passou por essa situação ? Tem alguma luz ?
Atenciosamente,
Ricardo
Ricardo,
Está chamando a Function do ECC direto pelo C.Channel ou está fazendo como o file do Henrique?
Criou uma rfc no Netweaver e dele chama a rfc no ECC?
Você importou a RFC no design? Se sim é pq ela está com o flag de RFC o que poderia ser problema também.
No mapping vc passa uma Constante com o nome do C.Channel (Adapter RFC) do Integration, chegou a comparar o nomes?
Na Moni veja o DynamicConfiguration tambem se passou algo... apesar que se deu pau na chamada da Function, vai estar nulo ou com "oi" conforme você postou...
Dá uma verificada nisso + o trace que o Henrique passou que com ctz irá funcionar...
Abraço,
Bruno Lima
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Ricardo,
após a linha "InputStream resp = result.getContent();", adicione uma entrada no trace com o conteudo desse result.
Assim vc poderá verificar o retorno da RFC em runtime.
Abs,
Henrique.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Henrique,
Como seria o código do trace ?
// Execute lookup
XmlPayload result = accessor.call(payload);
// Get the response
InputStream resp = result.getContent();
trace.addWarning(resp);
??
Assim não funcionou. Estou sem esclipse aqui para monstra a lista de metodos do trace.
Estava fazendo um teste Henrique, o código pula essa parte:
if (node.hasChildNodes() && !node.getFirstChild().getNodeValue().equals("")){
email = node.getFirstChild().getNodeValue();
}
}
catch (Exception e) {
trace.addWarning("RFC Lookup Failed: " + e);
email="oi";
}
sxi_monitor:
<SAP:AdditionalText>com.sap.aii.af.ra.ms.api.RecoverableException: java.io.IOException: server not responding OK to RCPT TO; 504 5.5.2 <oi>: Recipient address rejected: need fully-qualified address</SAP:AdditionalText>
Att,
Edited by: rviana on Sep 13, 2010 7:47 PM
Edited by: rviana on Sep 13, 2010 7:50 PM
Primeiramente obrigado pela atenção dos dois.
Segundo ponto. Henrique realizei 3 testes :
Primeiro testes:
Channel channel = null;
RfcAccessor accessor = null;
String email = null;
String var1 = null ;
String var2 = null ;
String var3= null;
try {.....
// Get the response
InputStream resp = result.getContent();
var1 = resp.toString();
...
return var1;
O que apareceu na sxi_monitor:
com.sap.aii.af.ra.ms.api.RecoverableException: java.io.IOException: server not responding OK to RCPT TO; 504 5.5.2 <java.io.ByteArrayInputStream@6def6def>: Recipient address rejected: need fully-qualified address
Segundo teste utilizando a variavel var2:
// Parse the response
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(resp);
var2 = doc.toString();
..
return var2;
O que apareceu na sxi_monitor:
com.sap.aii.af.ra.ms.api.RecoverableException: java.io.IOException: server not responding OK to RCPT TO; 504 5.5.2 </rfc:ZFSD_BUSCA_EMAIL_POR_CNPJ.Response>: Recipient address rejected: need fully-qualified address
Terceiro testes com a variavel var3:
Node node = (Node) doc.getElementsByTagName("e_mail").item(0);
var3= node.toString();
TagName("e_mail") era para estar vindo o e-mail do respectivo CNPJ mais olha o que aparece na sxi_monitor:
com.sap.aii.af.ra.ms.api.RecoverableException: java.io.IOException: server not responding OK to RCPT TO; 504 5.5.2 <null>: Recipient address rejected: need fully-qualified address
Acredito que a função que o abap criou está retornando null para tudo.
Abs,
Ricardo
Entao seu codigo tem algum erro.
O documento de resposta todo nao pode estar null.
Acho que vc está meio perdido, alterando o codigo direto na UDF.
Eu sugiro criar um projeto no eclipse pra auxiliar, e daí passar os parametros corretamente.
Mas provavelmente o campo em questao nao existe ou nao está sendo preenchido na resposta da RFC (nao achou email).
Abs,
Henrique.
Ricardo,
Já tive casos que o UDF era o mesmo em vários clientes e também não funcionava.
- Criei a RFC como nome diferente, mas parecido.. campos com nomes errado e sem opção de ser uma RFC mesmo..rs
- Mapping passar um C.Channel com nome diferente do criado no integration...
- C.Channel com autenticação errada
Não sei se chegou a fazer isso mas no Audti Log do C.Channel RFC para buscar o e-mail no abap, você consegue ver se pelo menos ele tentou executar a RFC....
Abraço,
Bruno Lima
User | Count |
---|---|
16 | |
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.