The return parameter of a Web Service call is not being saved

Version 1

    Problem

    When a web service call is made from an object record, you have the return parameter mapped to an attribute but the value is not saved to it.

     

    Cause

    Firstly, the web service call might not have succeeded.  Secondly, the data type of the return parameter might not match that of the attribute it is mapped to.

     

    Solution

    To ensure the web service call was successful check the value of the Web Service Creation Status attribute, (or Update or Deletion attribute accordingly).  If this value starts with anything other than Status:OK then the call failed.  Read the full attribute value for details of why.

     

    Otherwise check the data type of the return parameter value.  You can see this in the Web Service dialog where the parameter is listed:

    return 1.PNG

    The return parameter is always last in the parameter list, is called ReturnParameter, and shows its data type.  In the screenshot example this is a Boolean.

     

    In this example you should make sure that the return parameter is mapped to a Boolean attribute.  If it is mapped to anything else then it may not work.  Another example is with Decimal or Double return parameters which are the two types of numbers that can contain decimal places.  These must be mapped to a Decimal attribute and not an Int16 or Int32 attribute.

     

    To confirm further why the value is not being set you can enable the Web Service diagnostic logging category within Configuration Centre and check the resulting log file on the server.  An example entry where the data type is incorrect is below:

     

    WebService
    SaveReturnValueToMappingAttribute at 2014-03-31 10:48:38.202
    Exception when save return value to mapping attribute _ReturnInt
    FAILED
    Type mismatch when attempting to set attribute value _ReturnInt.