Forum Discussion

comworld's avatar
comworld
Occasional Contributor
5 years ago

Cannot find required parameters, atributes from wsdl service

Hello all,

I am trying to send an xml message to a wsdl service which there is no documentation for it.

The web page of the service is:

https://www1.gsis.gr/wsicisnet/MessageProcessorService?wsdl 

I found that in webpage

https://www1.gsis.gr/wsicisnet/MessageProcessorService?xsd=3 

there are three required attributes

<xs:attribute name="traderID" type="xs:string" use="required"/>
<xs:attribute name="wsUserID" type="xs:string" use="required"/>
<xs:attribute name="wsPass" type="xs:string" use="required"/>

When I try to send the message it gives me an error

<resultState>
<status>ValError</status>
<reasonCode>RulesConditionasError</reasonCode>
<explanation>SubmittingTraderIdentification ([SubmittingTraderIdentification: null] must be the same as the trader ID (040540011)</explanation>
</resultState>

I cannot find anywhere the SubmittingTraderIdentification 

 

  • richie's avatar
    richie
    Community Hero
    Hey @comwold,

    Have you tried loading in the .wsdl via creating a new project? This will auto generate your payload based on the content of .wsdl which might help your understand the requirements.

    In regards to your issue you state the required tags within your payload are as follows:
    "traderID", "wsUserID", "wsPass" ane after submitting your request you get a response with error response reading "[SubmittingTraderIdentification: null] must be the same as the trader ID (040540011)"

    I'm assuming your traderId tag within your payload included the tag value of 040540011. Is that correct?

    Have you verified there are no other tags in your payload that corresponds to "SubmittingTraderIdentification"?
    You only list 3 mandatory tags ("traderID", "wsUserID", "wsPass") and without knowing anything related to your payload (nor the physical representation of your underlying database) other than 3 mandatory tags listed above i'd guess that the table you are updating via your SOAP request's POST includes a TraderInformation column that is empty.

    In summary youre going to need to ensure the content of your payload referentially corresponds to the data in the database.

    Nice one

    Rich
    • comworld's avatar
      comworld
      Occasional Contributor

      Yes I load it as new project and it still gives me the same three attributes.

      The value 040540011 is something I give it as parameter.

      I tried to give some parameters like submittingTraderID ot submittingTraderIdentification but nothing changes.

      I have no access on the database and the technical support from the service is... lets say it politly "ignorants".

      Is there any way to check if it returns something as request from the server?

      For example

      ---------------------

      Server response:

      traderid:ok

      wsUserId:ok

      wsPass:ok

      someOtherParameter: Not ok

      • richie's avatar
        richie
        Community Hero
        Hey comworld,

        Ok. The more i look at this, the more confused i get...no wonder youve got problems!

        I'll list out why i'm confused so you can see my thought process.

        Your .wsdl includes 3 mandatory tags which you complete fine. I looked through the imported schemas and couldnt find anything that equated to "submittedTraderInfo" or equivalent, but even if the xsd's did include that "submittedTraderInfo" tag, theyre not included in the .wsdl's payload so shouldnt be included in your payload anyway.

        The error reported is a cross field validation error. I.e. "traderId" needs to be the same value as "submittedTraderInfo". Cross field validation is not handled by schema validation....to include cross field validation there has to be an extra layer of business validation code to handle this, so they'red by no indication of this required validation within the .wsdl or .xsd's

        Can you confirm whats the purpose of the request? Is it a CREATE or UPDATE or both CREATE and UPDATE request? Reason i ask is that the ONLY attributes needed in your request is username, password and traderId......thats not much to be updating or creating. Id suggest that its more likely that this is a CREATE request rather than an UPDATE request, cos there's only one attribute (the traderId) to be updated. To be honest, it doesnt really make much sense to me to even create a record with so few attributes, never mind update them, but i have tested systems where thr initial create had minimal data and then the update operatiom filled out the content.

        Ok. Thats the end of my list of confusing issues. Id suggest trying to get those points clarified to help you proceed with your work.

        If you havent got jdbc access to the webservices underlying database, then to query the data youd need the SOAP endpoint to include an operation like a GET request to query the data. SOAP is a bit weird inasmuch that GET is technically supported, but you dont typically see a GET SOAP request.

        If you can obtain any interface design/api documentation relating to the SOAP endpoint this should answer all the questions i listed above giving you a way forward.

        Ta

        Rich