I apologize if this has been discussed before (I DID do various searches in several NATURAL Forums, but came up empty). The issue:
My NATURAL program is calling a Web Service from mainframe NATURAL on z/OS. I am running an XML/SOAP RPC server on my workstation. I have generated the IDL from a WSDL (in the EntireX Perspective of Eclipse/NaturalONE), and from the IDL I have generated the NATURAL RPC Client to the mainframe – all is well and everything is working as it should, EXCEPT:
The Web Service is expecting mixed case “units of weight” (e.g., “Grams”). When I put “Grams” in the mainframe map, it gets translated to “GRAMS”, which the Web Service does not like. So, I have set %L in the NATURAL client session – No Good. I have put SET CONTROL ‘L’ in both the program and subprogram – No Good. I have put (AD=W) in the attribute definition of the map fields – No Good. I have done ALL of that simultaneously – No Good. In all cases m/f NATURAL still translates to upper case before sending to EntireX Broker (I don’t think it is Broker doing this). In all cases I get a very specific message from the Web Service, which states “Instance validation error: ‘GRAMS’ is not a valid value for WeightUnit.”
So, the question is: How can I force NATURAL to accept the field as-entered with no lower-to-upper-case translation? I have successfully called other Web Services in this way with no issues. Also, I have tested the Web service in question from Eclipse, and it works. I can produce the same error without NATURAL being in the picture.
UPDATE: I also tried modifying the PDA to have the parameter fileds passed “BY VALUE” rather than by REFERENCE, and then re-STOWing everything, but to no avail. The UNITS are still getting to the Web service as “GRAMS” instead of “Grams”.