cancel
Showing results for 
Search instead for 
Did you mean: 

NF-10.0 Automação Erro B2B NF de entrada E-mail

david_medeiros
Participant
0 Kudos

Prezados, bom dia!

Estou com dificuldades para tratar as notas de entrada devido ao grande numero de fornecedores que enviam notas com o PDF no primeiro anexo ao invés do XML e alguns enviam várias notas em apenas um mail.

Eu olhei a Trhead abaixo:

http://scn.sap.com/message/13744684#13744684

E estou com o mesmo problema do Felipe, alguém poderia nos dar um HELP! (Abaixo resposta do Felipe)

" Caros,

Vocês conseguiram implementar essa funcionalidade?

Estou com alguns erros que acredito serem de configuração durante o desenvolvimento, como não sou muito experiente em Java e SAP NETWeaver, gostaria de ajuda para implementa-la.

Se puderem ajudar, seguem os erros:

No codigo da classe existem 4 warnings,

o primeiro é na descrição  "* @stateless" que ao mudar o primeiro s para maiúsculo o erro some, mas não sei se isso está correto, erro apresentado "The word @stateless is not correctly spelled"

O segundo é da criação do metodo "public class readMultipleAttachment", erro apresentado "The serializable class readMultipleAttachment does not declare a static final serialVersionUID field of type long"

O terceiro é na declaração do myContext "private SessionContext myContext;"  erro apresentado "The field readMultipleAttachment.myContext is never read locally"

O quarto é na declarção do iterador "Iterator attachmentIterator = mailMessage.getAttachmentIterator();" erro apresentado "Iterator is a raw type. References to generic type Iterator<E> should be parameterized".

No arquivo ejb-j2ee-engine.xml

Na linha "<!DOCTYPE ejb-j2ee-engine SYSTEM "ejb-j2ee-engine.dtd">" apresenta o seguinte warning "

The file cannot be validated as the XML Schema "C:\workspace\MultipleAttachmentSender\ejbModule\META-INF\ejb-j2ee-engine.dtd (O sistema não pode

encontrar o arquivo especificado)" that is specified as describing the syntax of the file cannot be located."

No arquivo ejb-jar.xml

Na linha "<ejb-jar>" informa o erro "

DescriptionResourcePathLocationType
The content of element type "ejb-jar" must match "(description?,display-name?,small-icon?,large-icon?,enterprise-beans,relationships?,assembly-descriptor?,ejb-client-jar?)".ejb-jar.xml/MultipleAttachmentSender/ejbModule/META-INFline 3XML Problem

"

e na linha  "<session>" o erro: "

DescriptionResourcePathLocationType
The content of element type "session" must match "(description?,display-name?,small-icon?,large-icon?,ejb-name,home?,remote?,local-home?,local?,ejb-class,session-type,transaction-type,env-entry*,ejb-ref*,ejb-local-ref*,security-role-ref*,security-identity?,resource-ref*,resource-env-ref*)".ejb-jar.xml/MultipleAttachmentSender/ejbModule/META-INFline 7XML Problem

No arquivo application-j2ee-engine.xml na linha "<!DOCTYPE application-j2ee-engine SYSTEM "application-j2ee-engine.dtd"> " apresenta o seguinte warning "

The file cannot be validated as the XML Schema "C:\workspace\CustomAdapterModule\EarContent\META-INF\application-j2ee-engine.dtd (O sistema não

pode encontrar o arquivo especificado)" that is specified as describing the syntax of the file cannot be located.

"

Segui todos os passos descritos na wiki http://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=233474286

e além dos erros warnings anteriores quando tento efetuar o deploy do EAR o visual administrator do PI apresenta o seguinte erro de java que para falar a verdade só me confundiu mais..

ERRO DE DEPLOY JAVA

Error occurred while trying to load ear :

CustomAdapterModule.ear

java.io.IOException: Can't find ra.xml in rar file.

          at com.sap.engine.services.connector.jca.deploy.descriptor.jar.ReadRar.getDescriptor(ReadRar.java:105)

          at com.sap.engine.deploy.tool.deployer.ExtendedEarReader.loadDescriptorFromFile(ExtendedEarReader.java:258)

          at com.sap.engine.deploy.tool.deployer.ExtendedEarReader.getFullEarDescriptor(ExtendedEarReader.java:153)

          at com.sap.engine.services.deploy.gui.runtime.EarLoader.loadEar(EarLoader.java:137)

          at com.sap.engine.services.deploy.gui.runtime.MainDeployPanelLogical.loadEarAction(MainDeployPanelLogical.java:169)

          at com.sap.engine.services.deploy.gui.runtime.EarDialog.setEar(EarDialog.java:79)

          at com.sap.engine.services.deploy.gui.DeployDialogLogical.okButtonAction(DeployDialogLogical.java:294)

          at com.sap.engine.services.deploy.gui.DeployDialogLogical.actionPerformed(DeployDialogLogical.java:71)

          at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

          at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)

          at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)

          at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

          at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)

          at java.awt.Component.processMouseEvent(Unknown Source)

          at javax.swing.JComponent.processMouseEvent(Unknown Source)

          at java.awt.Component.processEvent(Unknown Source)

          at java.awt.Container.processEvent(Unknown Source)

          at java.awt.Component.dispatchEventImpl(Unknown Source)

          at java.awt.Container.dispatchEventImpl(Unknown Source)

          at java.awt.Component.dispatchEvent(Unknown Source)

          at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)

          at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)

          at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)

          at java.awt.Container.dispatchEventImpl(Unknown Source)

          at java.awt.Window.dispatchEventImpl(Unknown Source)

          at java.awt.Component.dispatchEvent(Unknown Source)

          at java.awt.EventQueue.dispatchEvent(Unknown Source)

          at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

          at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

          at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

          at java.awt.Dialog$1.run(Unknown Source)

          at java.awt.Dialog$3.run(Unknown Source)

          at java.security.AccessController.doPrivileged(Native Method)

          at java.awt.Dialog.show(Unknown Source)

          at java.awt.Component.show(Unknown Source)

          at java.awt.Component.setVisible(Unknown Source)

          at java.awt.Window.setVisible(Unknown Source)

          at java.awt.Dialog.setVisible(Unknown Source)

          at com.sap.engine.services.deploy.gui.DeployDialogLogical.showDialog(DeployDialogLogical.java:378)

          at com.sap.engine.services.deploy.gui.ApplicationsPanel.deployAction(ApplicationsPanel.java:413)

          at com.sap.engine.services.deploy.gui.ApplicationsPanel.actionPerformed(ApplicationsPanel.java:357)

          at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

          at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)

          at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)

          at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

          at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)

          at java.awt.Component.processMouseEvent(Unknown Source)

          at javax.swing.JComponent.processMouseEvent(Unknown Source)

          at java.awt.Component.processEvent(Unknown Source)

          at java.awt.Container.processEvent(Unknown Source)

          at java.awt.Component.dispatchEventImpl(Unknown Source)

          at java.awt.Container.dispatchEventImpl(Unknown Source)

          at java.awt.Component.dispatchEvent(Unknown Source)

          at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)

          at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)

          at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)

          at java.awt.Container.dispatchEventImpl(Unknown Source)

          at java.awt.Window.dispatchEventImpl(Unknown Source)

          at java.awt.Component.dispatchEvent(Unknown Source)

          at java.awt.EventQueue.dispatchEvent(Unknown Source)

          at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

          at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

          at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

          at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

          at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

          at java.awt.EventDispatchThread.run(Unknown Source)

"

Obrigado a todos pela ajuda.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Olá David,

Você vai ver que a ordem dos anexos é o menor dos problemas

O fornecedor pode enviar mais de uma nota no mesmo e-mail, pode enviar notas dentro de um arquivo zip, pode enviar notas no layout incorreto... a lista de coisas que o fornecedor pode fazer pra dificultar a sua vida é grande!

Creio que a implementação de um custom adapter module ainda seja o caminho mais adequado se você quiser manter a solução dentro do PI para receber e processar os anexos dos e-mails de NFe. Há um wiki bem detalhado de como fazer isso http://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=233474286

Um abraço!

Waldemar.

Former Member
0 Kudos

Waldemar, boa dia!

Eu e o David estamos atuando no mesmo projeto. Também entendemos que o desenvolvimento da solução dentro do PI é a melhor alternativa, dentro dos resultados que encontramos.

Criamos uma aplicação com base o pdf (Link retirado do Wiki):

http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/f013e82c-e56e-2910-c3ae-c602a67b9...

Porem ao tentar realizar o deploy dela o SDM retorna uma exception:

"AdapterModuleEAR.ear does not contain entry META-INF/application.xml as required"

(Log de erro completo anexo)

Tentei modificar o nome do arquivo application-j2ee-engine.xml para application.xml, porem outros erros de compilação apareceram.

Você teve esse problema ou conhece alguma solução para o mesmo?

Após esse projeto teste efetuaremos o desenvolvimento da aplicação B2B seguindo o tutorial do Wiki que você criou.

http://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=233474286

Poderia nos ajudar?

Abraços!

Felipe Jorge

Answers (2)

Answers (2)

Former Member
0 Kudos

Fernando e Carlos,

Estamos com o seguinte cenário, conseguimos desenvolver um pacote EAR com o module adapter. Este já não apresenta qualquer erro.

Nosso problema é que ao efetuar o deploy do mesmo via SDM, ou direto pelo SAP NetViewer o pacote não consegue ser executado, ou seja, ele é implantado, porem ao executá-lo, não conseguimos que o código incluso no mesmo seja executado, sequer erros são apresentados.

Estamos estudando para entender se houve algum problema na criação ou na implantação do mesmo, pois sem nenhum erro acabamos ficando sem norte para seguir.

Atenciosamente,

Felipe J Jorge

Former Member
0 Kudos

Fernando,

Vi os link's informados e acredito que o ultimo pode nos ser útil, assim que obtiver a algum resultado, positivo ou negativo, posto aqui o mesmo.

Desde já agradeço a ajuda.

Felipe J Jorge

former_member193386
Active Contributor
0 Kudos

Pede para o BASIS ligar o debug no ambiente e coloca um brak point e veja o que esta acontecendo.

Um CPA Full tbem pode ajudar.

former_member182114
Active Contributor
0 Kudos

Bom dia David,

Favor dê feedback ao fórum. Qualificando as respostas dos colegas e encerrando a discussão caso tenha encontrado a solução.

Atenciosamente, Fernando Da Rós

david_medeiros
Participant
0 Kudos

Olá Fernando,

Ainda não conseguimos resolver o problema, logo que eu obtiver uma noticia positiva eu volto a postar no fórum...

Obrigado.

David Medeiros

SAP MM Consultant

former_member182114
Active Contributor
0 Kudos

Bom dia David / Felipe,

Estes dois arquivos XML tem conteúdo diferente.

Encontrei algumas threads que falam do conteúdo do EAR muda conforme versão, dê uma olhada:

https://scn.sap.com/thread/1441962

http://scn.sap.com/thread/1495555

https://scn.sap.com/thread/1839746

Atenciosamente, Fernando Da Rós

former_member193386
Active Contributor
0 Kudos

David, bom dia.

Tenho visto algumas soluções para esse problema que não concordo muito mas são mais fáceis para quem não conhece ou não se  sente muito a vontade em criar um custom module adapter ou cair para dentro de um javammaping para ler os paylaods attachments onde estao os anexos.

O pessoal tem criado um cenario MAIL x File, onde todos os dados são gravados diretamente em uma pasta qualquer, no caso, nem seria muito necessario uma transformacao, da maneira que chega o email com seus attachments eles são gravados diretametne no diretorio ( NTFS ou FTP ) especificado.

Após isso é criada uma interface FILE 2 PROXY onde são lidos apenas os arquivos XMLs na pasta e dessa maneira repassados aos seus respectivos  Proxy interfaces usando um filtro no interface determination.