Decision Management (ODM,ADS)

 View Only
Expand all | Collapse all

Wrong SOAP response serialization

  • 1.  Wrong SOAP response serialization

    Posted Wed November 30, 2022 09:25 AM

    Hello,

    Hope you're doing well.

     

    I'm having a problem with a RuleService when serialization of the SOAP response.

    The operation in the rule contains two INPUT/OUTPUT which are complex objects.

     

    When generating a request using SoapUi, the input SOAP message is fine.

    But when the response is received the parameters serialization occurs using the name of the parameter with out any reference to resolve the class.

     

    See this SOAP request fragment:

     

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

    xmlns:reg="http://www.ibm.com/rules/decisionservice/ReglasApc/ReglasApc"

    xmlns:par="http://www.ibm.com/rules/param"

    xmlns:pa="http://mydomain.com">

       <soapenv:Header/>

       <soapenv:Body>

          <reg:ReglasApcRequest>

             <!--Optional:-->

             <reg:DecisionID>?</reg:DecisionID>

             <par:calificacion>

                <pa:CalificacionApc>

                   <pa:estatusCliente>0</pa:estatusCliente>

                   <!--Optional:-->

                   <pa:calificacion></pa:calificacion>

                   <pa:tieneMadurez>false</pa:tieneMadurez>

                </pa:CalificacionApc>

             </par:calificacion>

             <par:referencias>

                <pa:Referencias>

                   <!--Zero or more repetitions:-->

                                                    <pa:ReferenciaApc>

     

    This is the first parameter:

    <par:calificacion>

    And this is the class name/type for the parameter

                <pa:CalificacionApc>

     

    linked to pa:xlmns

     

    This is the second parameter:

    <par:referencias>

    And this is the class/type name for the parameter

                <pa: Referencias >

     

     

    After sending the request, the rule is executed fine, but the response comes this way:

     

             <DecisionID>?</DecisionID>

             <calificacion xmlns="http://www.ibm.com/rules/param">

                <calificacion xmlns="http://mydomain.com" xmlns:ns1="http://mydomain.com">

                   <estatusCliente>0</estatusCliente>

                   <calificacion>REFERENCIAS EXCELENTES</calificacion>

                   <tieneMadurez>true</tieneMadurez>

                </calificacion>

             </calificacion>

             <referencias xmlns="http://www.ibm.com/rules/param">

                <referencias xmlns="http://mydomain.com" xmlns:ns2="http://mydomain.com">

                   <ReferenciaApc>

    Please notice that the element is replaced with the name of the parameter, instead of the class/type name

    And the xmlns=http://mydomain.com references just the namespace, so the client is not able to resolve

     

    This

                <calificacion xmlns="http://mydomain.com" xmlns:ns1="http://mydomain.com">

     

    To

                <CalificacionApc xmlns="http://mydomain.com" xmlns:ns1="http://mydomain.com">

     

    And

                <referencias xmlns="http://mydomain.com" xmlns:ns2="http://mydomain.com">

    To

                <Referencias xmlns="http://mydomain.com" xmlns:ns2="http://mydomain.com">

     

     

    To complicate a little more, the cliente yis a legacy application and changing the involved times could be very expensive and time consuming.

     

     

    All of this happened when migrated from ODM v8.7 to ODM v8.11

     

     

    Please, any help is really appreciated!

     

     

    Best regards!

     



  • 2.  RE: Wrong SOAP response serialization

    Posted Thu December 01, 2022 11:09 AM
    By the way, the "Legacy System" referred to is a collection of Tool Kits from IBM BPM/BAW.

    ------------------------------
    Salvador Cadena Roa
    ------------------------------