none
WCF-Oracle Could not Find Program Unit sysman.Package RRS feed

  • Question

  • Hi everyone,

    I consumed an adapter service from WCF-Oracle. This just consume a store procedure with a strong ref cursor output. the sp is inside of a package.

    I configured the send port with the xml binding created by the adapter service. The credentiasl and no transaction, too. The operation from logical port equal to action on send port.

    Then I run the app, but sends the message that could not find the Package.

    ORA-04063: package body "SYSMAN.PAYMENTBACH" has errors
    ORA-06508: PL/SQL: could not find program unit being called: "SYSMAN.PAYMENTBACH"
    ORA-06512: at line 3

    any idea what is happening?

    Thanks in advanced

    Tuesday, April 20, 2010 3:39 PM

Answers

  • This is by design - you will not be able to change the XML that the adapter gives out. You should handle this in your map. Changing the schema in BizTalk does not affect adapter functioning. Adapters do not have access to the schema that is deployed in BizTalk. The schema is only helpful for routing and schema validation.
    Friday, April 23, 2010 5:03 AM

All replies

  • Hi Danny,

    You are experiencing some error's related to Oracle. First error is causing the problem (ORA-04063). This ORA-04063 error is caused when a PL/SQL procedure of package becomes invalid after a change to a subordinate procedure or a schema (table) change. To resolve it you or Oracle DBA/Developer have to open SQL*Plus and log in as the XPROCESS user, then issue the following commands:

    ALTER PACKAGE SYSMAN.PAYMENTBACH COMPILE BODY;
    SHOW ERRORS

    If the package body does't compile the SHOW ERRORS command will list the errors preventing the compilation. You or an Oracle DBA/Developer will need to correct these problems.

    Regards,

    Steef-Jan Wiggers
    MCTS BizTalk Server
    http://soa-thoughts.blogspot.com/
    If this answers your question please mark it accordingly

     


    BizTalk
    Tuesday, April 20, 2010 4:41 PM
    Moderator
  • Thnks Wiggers,

    I could fix the procedure.

    Now I have another question.

    The procedure brings all the fields that I want, but on the xml generated the fields with null values are not written to the xml. I mean fields with null value not appear that element over the output xml.

    How can I fix that?

    thanks in advanced.

    Tuesday, April 20, 2010 10:19 PM
  • That is the design. As per XSD schema rules, a null node can rather be skipped in case it is optional. The XML generated from the adapter does not include these so that the size of the XML is as small as possible. What difficulty are you facing in using these XMLs?
    Wednesday, April 21, 2010 7:40 AM
  • Hi Danny,

    You must add all missing elements with the attribute xsi:nil="true". There is a discussion on this forum on this issue, see this thread Oracle Procedures and xsi:nil="true".

    Regards,

    Steef-Jan Wiggers
    MCTS BizTalk Server
    http://soa-thoughts.blogspot.com/
    If this answers your question please mark it accordingly


    BizTalk
    Wednesday, April 21, 2010 7:47 AM
    Moderator
  • Thanks Manas and Wiggers for your time,

    well, Wiggers I read and tried the options that allude the post that you remarked. I change the properties over the original schema (schema generated when I called the adapter service from oracle) and I deployed and tested these options:

    Nillbale                 Min Occurs                   Defualt Value

    true                         0                                 null

    true                         1                                 null

    false                        0                                 null

    false                        1                                 null

    But even so not appear the elements on the xml output.

    And Manas,

    The difficulty that I want to avoid, is that if the xml not contents all the fields that throw back the store procedure I will need to make a new map that validate which fields come and which not. So to avoid this, I would like that the output xml generated brings all the fields that throw back the procedure even when several fields on the procedure are null values.

    So, ¿ do I need to modify the schema or the procedure? or any other idea?

     

    Thannks in advanced.

    Wednesday, April 21, 2010 4:03 PM
  • This is by design - you will not be able to change the XML that the adapter gives out. You should handle this in your map. Changing the schema in BizTalk does not affect adapter functioning. Adapters do not have access to the schema that is deployed in BizTalk. The schema is only helpful for routing and schema validation.
    Friday, April 23, 2010 5:03 AM