Skip to Content
author's profile photo Former Member
Former Member

B2B de saída - Email, webservice e arquivo

Boa noite pessoal,

Queria saber como posso configurar mais de um tipo de envio de XML para os clientes.

Por exemplo, um cliente A quer receber via e-mail, o cliente B via webservice e o cliente C via FTP.

Na parte do Integration Directory crio 1 adapter para cada situação, faço o RFC lookup para o caso do e-mail. A dúvida é como determinar para onde será enviado.

Tenho que criar alguma tabela Z (ECC ou GRC) dizendo qual forma o cliente deseja receber o e-mail e, de acordo com esse parâmetro, determinar o communication channel no UDF que é criado para o B2B?

Obrigado.

Abs.

Add a comment
10|10000 characters needed characters exceeded

Related questions

1 Answer

  • Best Answer
    Posted on Nov 17, 2011 at 05:57 PM

    Olá Ricardo,

    algumas considerações:

    1. Nao existe no PI um IF por adapter (i.e. se cliente tal, manda pra adapter tal). Na verdade, por definicao, se vc está falando de clientes diferentes, vc deveria considerar ter receivers diferentes. Pra manter a "genericidade" dos receivers, vc pode criar um pra cada tipo de comunicacao,e.g. GENERIC_MAIL_RECEIVER, GENERIC_FTP_RECEIVER, GENERIC_WS_RECEIVER etc.

    2. Sim, vc vai ter q ter essa informacao de qual metodo de comunicacao por cliente em alguma tabela. Uma possibilidade seria vc extender a tabela /XNFE/TB2B com um campo Z, i.e. método de comunicacao, e daí vc lá colocar um valor que defina o tipo de comunicacao, e.g. 'MAIL, 'FTP', 'WS' etc. Daí o que vc poderia fazer seria criar uma RFC Lookup genérica que vc usa pra qq tipo de comunicacao, e.g. pra cada CNPJ, ele devolve um campo com o tipo de comunicacao e o valor (e.g. se Mail, o endereço, se FTP, a URL do ftp server, se web service, a URL do WS etc. Talvez vc precise de mais dados, e.g. user/senha ou soap action no caso de WS (vc pode usar um unico campo string com algum pipeline pra separar os dados, ou criar mai de um campo mesmo). Daí na UDF que chama a RFC Lookup, dependendo do tipo de comunicacao, vc preenche os dados de comunicacao pro technical name/namespace do File adapter, Mail adapter ou SOAP adapter.

    3. Por default, alem de ter essa definicao do tipo de comunicacao na tabela Z, em teoria vc deveria saber isso tb no receiver determination, pra poder criar as conditions (i.e. se cnpj a, b, c, vai pro mail receiver; se x, y, z, vai pro ftp receiver; se m, n, p, vai pro ws receiver). Se tiver muitas opcoes pro condition, uma alternativa que talvez seja mais viável é criar um mapping pra fazer um enhanced receiver determination. Nesse mapping, vc chama a RFC lookup definida acima e retorna pra mensagem Receivers, preenchendo com o nome do generic receiver que mencionamos acima baseado no tipo de comunicacao. Mais detalhes:

    http://help.sap.com/saphelp_nw70ehp2/helpdata/en/43/a5f2066340332de10000000a11466f/frameset.htm

    Abs,

    Henrique.

    PS: talvez dê até pra evitar o enhanced receiver determination se vc chamar o método .put() no mapping normal (UDF) passando o nome do receiver de acordo com o tipo de comunicacao. O codigo seria similar ao do metodo .get() exemplificado no link abaixo (na parte final), porém chamando o .put() em vez do .get().

    http://help.sap.com/saphelp_nw70ehp2/helpdata/EN/e2/e13fcd80fe47768df001a558ed10b6/frameset.htm

    http://download.oracle.com/javase/1.4.2/docs/api/java/util/HashMap.html#put(java.lang.Object, java.lang.Object)

    Add a comment
    10|10000 characters needed characters exceeded

    • Former Member Henrique Pinto

      Faltou o principal, o link direto né, rs...

      Quis colocar o máximo de detalhes possível, pois a solução apesar de ser fácil, é bem cheia de detalhes também.

      Obrigado você por sempre ajudar a solucionarmos nossos problemas.

      Que venha o próximo!

      Abraço.

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.