on 01-08-2013 11:29 AM
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 "
Description | Resource | Path | Location | Type |
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-INF | line 3 | XML Problem |
"
e na linha "<session>" o erro: "
Description | Resource | Path | Location | Type |
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-INF | line 7 | XML 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.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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):
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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.
User | Count |
---|---|
6 | |
5 | |
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.