In this scenario, ABL is updated with a different procedure prototype (signature), but the Web service is not updated accordingly. At this point:

  1. The client sends the following method request:
    FindCustomerByNum(3, custNameVar)
  2. The WSA gets the request and asks the server to run the procedure FindCustomerByNum.p.
  3. The server:
    1. Tries to run FindCustomerByNum.p
    2. Detects a parameter-type mismatch and records the following error message in its log, *.server.log:
      [02/12/11@16:07:01.427-0500] P-000371 T-000370 0 AS --
        Mismatched parameter types passed to procedure   OrderInfo/FindCustomerByNum.p. (3230)
    3. Returns the error to the WSA
  4. The WSA:
    1. Records the following message in its log:
      [02/12/11@16:07:01.802-0500] P-000120 T-Thread-11 2 OrderInfo ABL-Provider     
      (reqid:6) Error in SOAP request execution: ABL
      ERROR condition: Mismatched parameter types passed to
      procedure OrderInfo/FindCustomerByNum.p. (3230) (7211) (10926)
    2. Sends the following SOAP containing a SOAP fault back to the client:
      <?xml version="1.0" encoding="UTF-8" ?>
      <soap:Envelope  namespaces defined here…>
        <soap:Body>
          <soap:Fault>
            <faultcode>SOAP-ENV:Server</faultcode>
            <faultstring>An error was detected … request. (10893)
            </faultstring>
            <detail>
              <FaultDetail xmlns="http://servicehost:8080/wsa/wsa1">
                <errorMessage>Error in SOAP request execution: ABL ERROR
                  condition: Mismatched parameter types passed to
                  procedure OrderInfo/FindCustomerByNum.p.  … (10926)
                </errorMessage> 
                <requestID>2e62cab6b81150d5:-87f76e:f20f57227d:-8000#6
                </requestID> 
              </FaultDetail>
            </detail>
          </soap:Fault>
        </soap:Body>
      </soap:Envelope>
      Note: This example uses a value of 3 for the serviceFaultLevel property.

    Notice the correspondence between the "(reqid:6)" string in the log file entry and the "<requestID> ...2e62...#6" string in the SOAP fault message, indicating information for the same request.

  5. The interface translates the SOAP fault into a SOAP exception.
  6. The client catches the SOAP exception.
  7. The client displays the following error message (assuming the client application has a user interface):