1 Reply Latest reply on Mar 15, 2006 9:41 AM by 39113

    OAI message not send due to mandatory field defined in DTD?

    39113
      Hi,

      I really appreciate any help on this problem because I am really stuck.

      I'm using AQ-adapters to transport messages (as raw xml) between applications. All my AV's and CV are definied by the DTD.

      I succesfully can enqueue messages to the application queue (bkg_queue) and when I read through the adapter log file I see that the messages are succesfully dequeued by the adapter including the correct data (message printed below), but the problem is that the messages are not send to the OAI because of the following error:

      --------------------------------------------------------------
      AQ Adapter: ** Error ** could not send an OAI message for the message read from the queue.
      oracle.oai.agent.common.AgentRuntimeException: You must have data for PKS_Interface_Uitwisselen_budgetten_OAI_V1_P:OAI/V1.budgetering.machtigingsnr in your XML according to the DTD which was imported in iStudio.
      at oracle.oai.agent.client.XMLToAOConverter.addAttribute(XMLToAOConverter.java:949)
      at oracle.oai.agent.client.XMLToAOConverter.addAttribute(XMLToAOConverter.java:711)
      at oracle.oai.agent.client.XMLToAOConverter.createMainAO(XMLToAOConverter.java:633)
      at oracle.oai.agent.client.XMLToAOConverter.createMessageObjectUsingDOM(XMLToAOConverter.java:542)
      at oracle.oai.agent.client.XMLToAOConverter.createMessageObjectUsingDOM(XMLToAOConverter.java:462)
      at oracle.oai.agent.client.XMLToAOConverter.createMessageObject(XMLToAOConverter.java:444)
      at oracle.oai.agent.client.AgentImpl.createMessageObject(AgentImpl.java:243)
      at oracle.oai.agent.adapter.aq.XMLAQMessageReader.onMessage(XMLAQMessageReader.java:97)
      at oracle.oai.agent.adapter.aq.XMLAQBridge.messageReceived(XMLAQBridge.java:352)
      at oracle.oai.agent.common.oracleaq.MessageReader.run(MessageReader.java:138)
      --------------------------------------------------------------

      As I understand the meaning of the error, it states that field budgetering.machtigingsnr has no data but according to the DTD it is defined as a manatory field, and is complaining about that!? But according to the send message field budgetering.machtigingsnr has value 40184.

      Please, can anyone help me understanding the error message and give me a solution where to fix the problem.





      The AQ Adapter read this message from queue BKG_QUEUE.
      --------------------------------------------------------------
      <budgetering><niveau>MTG</niveau><machtigingnr>40184</machtigingnr><machtigingsregelcode/><bedrag-verplicht>280001</bedrag-verplicht><bedrag-realisatie>280002</bedrag-realisatie><status>J</status><jaarschijf>2006</jaarschijf></budgetering>
      --------------------------------------------------------------


      DTD AV (imported in iStudio):
      --------------------------------------------------------------
      <!ELEMENT budgetering (niveau
      ,machtigingsnr
      ,machtigingsregelcode
      ,bedrag-verplicht
      ,bedrag-realisatie
      ,status
      ,jaarschijf )
      >
      <!ELEMENT niveau (#PCDATA)>
      <!ELEMENT machtigingsnr (#PCDATA)>
      <!ELEMENT machtigingsregelcode (#PCDATA)>
      <!ELEMENT bedrag-verplicht (#PCDATA)>
      <!ELEMENT bedrag-realisatie (#PCDATA)>
      <!ELEMENT status (#PCDATA)>
      <!ELEMENT jaarschijf (#PCDATA)>
      --------------------------------------------------------------