Error Code 19 Using EliOrderService.asmx CreateOrder() Method

Error Code 19 Using EliOrderService.asmx CreateOrder() Method

Release Date: 10/07/2023
Version: 8.x & Up

A developer received Error Code 19 when using the Elliott web services EliOrderService.asmx CreateOrder() method.  The EliOrderService.asm document details can be found in this KB article:
At the end of this document, you can find a list of error codes. According to this document, error code 19 means:
    19 = Fail To Apply A/R Open Item

To be more specific, this means payment information was provided in the header area when using the CreateOrder() method. The payment-related information involved the following fields:
  • ORDER_CHECK_NO
  • ORDER_CHECK_DATE
  • ORDER_PAYMENT_AMOUNT
  • ORDER_PAYMENT_TP
When some of these fields are provided, it implies the caller wishes to apply the payments in the A/R open item table to this order that was just created.  If we can't find it, then the Error 19 is returned.

The following is the information the developer passed to the CreateOrder() method:

<SOAP-ENV:Envelope
   xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
   xmlns:ns1="http://webservices.elliott.com/eliorderservice.asmx">
   <SOAP-ENV:Body>
      <ns1:CreateOrder>
          <ns1:CreateOrderInput>
              <ns1:ORDER_DATE_ENTERED>2023-10-06T08:35:02</ns1:ORDER_DATE_ENTERED>
              <ns1:ORDER_DATE>2023-10-06T08:35:02</ns1:ORDER_DATE>
              <ns1:ORDER_CUSTOMER_NO>130008</ns1:ORDER_CUSTOMER_NO>
              <ns1:ORDER_SHIPPING_DATE>2023-10-06T08:35:02</ns1:ORDER_SHIPPING_DATE>
              <ns1:ORDER_SLS_PCT_COMM_1>0</ns1:ORDER_SLS_PCT_COMM_1>
              <ns1:ORDER_SLS_COMM_AMT_1>0</ns1:ORDER_SLS_COMM_AMT_1>
              <ns1:ORDER_SLS_PCT_COMM_2>0</ns1:ORDER_SLS_PCT_COMM_2>
              <ns1:ORDER_SLS_COMM_AMT_2>0</ns1:ORDER_SLS_COMM_AMT_2>
              <ns1:ORDER_SLS_PCT_COMM_3>0</ns1:ORDER_SLS_PCT_COMM_3>
              <ns1:ORDER_SLS_COMM_AMT_3>0</ns1:ORDER_SLS_COMM_AMT_3>
              <ns1:ORDER_TAX_CODE_1>NO</ns1:ORDER_TAX_CODE_1>
              <ns1:ORDER_TAX_PERCENT_1>0</ns1:ORDER_TAX_PERCENT_1>
              <ns1:ORDER_TAX_PERCENT_2>0</ns1:ORDER_TAX_PERCENT_2>
              <ns1:ORDER_TAX_PERCENT_3>0</ns1:ORDER_TAX_PERCENT_3>
              <ns1:ORDER_DISC_PERCENT>0</ns1:ORDER_DISC_PERCENT>
              <ns1:ORDER_TOTAL_SALE_AMT>0</ns1:ORDER_TOTAL_SALE_AMT>
              <ns1:ORDER_TOTL_TAXBL_AMT>0</ns1:ORDER_TOTL_TAXBL_AMT>
              <ns1:ORDER_TOTAL_COST>15</ns1:ORDER_TOTAL_COST>
              <ns1:ORDER_TOTAL_WEIGHT>0</ns1:ORDER_TOTAL_WEIGHT>
              <ns1:ORDER_MISC_CHRG_AMT>0</ns1:ORDER_MISC_CHRG_AMT>
              <ns1:ORD_FREIGHT_AMOUNT>0</ns1:ORD_FREIGHT_AMOUNT>
              <ns1:ORD_SALES_TAX_AMT_1>0</ns1:ORD_SALES_TAX_AMT_1>
              <ns1:ORD_SALES_TAX_AMT_2>0</ns1:ORD_SALES_TAX_AMT_2>
              <ns1:ORD_SALES_TAX_AMT_3>0</ns1:ORD_SALES_TAX_AMT_3>
              <ns1:ORDER_COMM_PERCENT>0</ns1:ORDER_COMM_PERCENT>
              <ns1:ORDER_COMM_AMOUNT>0</ns1:ORDER_COMM_AMOUNT>
              <ns1:ORDER_COMMENT1>PreA **1111       15 TX12345678901</ns1:ORDER_COMMENT1>
              <ns1:ORDER_COMMENT2>AVS OK: Address and 5-digit Zip code match</ns1:ORDER_COMMENT2>
              <ns1:ORDER_PAYMENT_AMOUNT>0</ns1:ORDER_PAYMENT_AMOUNT>
              <ns1:ORDER_PAYMNT_DIS_AMT>0</ns1:ORDER_PAYMNT_DIS_AMT>
              <ns1:ORDER_CHECK_DATE>2023-10-06T08:35:02</ns1:ORDER_CHECK_DATE>
              <ns1:ORDER_DATE_PICKED>2023-10-06T08:35:02</ns1:ORDER_DATE_PICKED>
              <ns1:ORDER_DATE_BILLED>2023-10-06T08:35:02</ns1:ORDER_DATE_BILLED>
              <ns1:ORDER_INVOICE_DATE>2023-10-06T08:35:02</ns1:ORDER_INVOICE_DATE>
              <ns1:ORDER_POSTED_DATE>2023-10-06T08:35:02</ns1:ORDER_POSTED_DATE>
              <ns1:ORDER_ACC_MISC_AMT>0</ns1:ORDER_ACC_MISC_AMT>
              <ns1:ORDER_ACC_FREIGHT>0</ns1:ORDER_ACC_FREIGHT>
              <ns1:ORDER_ACC_TOT_TAXBLE>0</ns1:ORDER_ACC_TOT_TAXBLE>
              <ns1:ORDER_ACC_SALES_TAX>0</ns1:ORDER_ACC_SALES_TAX>
              <ns1:ORDER_ACC_TOT_SALES>0</ns1:ORDER_ACC_TOT_SALES>
              <ns1:ORDER_SHIP_ACK_DATE>2023-10-06T08:35:02</ns1:ORDER_SHIP_ACK_DATE>
              <ns1:ORDER_PICK_TICK_CUT>2023-10-06T08:35:02</ns1:ORDER_PICK_TICK_CUT>
              <ns1:OrderTimeRelease>2023-10-06T08:35:02</ns1:OrderTimeRelease>
              <ns1:LineItem>
                  <ns1:LineItem>
                      <ns1:LINE_ITM_SEQ_NO>0</ns1:LINE_ITM_SEQ_NO>
                      <ns1:LINE_ITM_ITEM_NO>45MMJ</ns1:LINE_ITM_ITEM_NO>
                      <ns1:LINE_ITM_SER_EFF_DT>2023-10-06T08:35:02</ns1:LINE_ITM_SER_EFF_DT>
                      <ns1:LINE_ITM_LOT_EXP_DT>2023-10-06T08:35:02</ns1:LINE_ITM_LOT_EXP_DT>
                      <ns1:LINE_ITM_QTY_ORDRD>1</ns1:LINE_ITM_QTY_ORDRD>
                      <ns1:LINE_ITM_QTY_TO_SHIP>0</ns1:LINE_ITM_QTY_TO_SHIP>
                      <ns1:LINE_ITM_UNIT_PRICE>0</ns1:LINE_ITM_UNIT_PRICE>
                      <ns1:LINE_ITM_DISC_PCT>0</ns1:LINE_ITM_DISC_PCT>
                      <ns1:LINE_ITM_REQST_DATE>2023-10-06T08:35:02</ns1:LINE_ITM_REQST_DATE>
                      <ns1:LINE_ITM_QTY_BCK_ORD>0</ns1:LINE_ITM_QTY_BCK_ORD>
                      <ns1:LINE_QTY_RET_TO_STCK>0</ns1:LINE_QTY_RET_TO_STCK>
                      <ns1:LINE_ITM_UNIT_COST>0</ns1:LINE_ITM_UNIT_COST>
                      <ns1:LINE_ITM_UNIT_WEIGHT>0</ns1:LINE_ITM_UNIT_WEIGHT>
                      <ns1:LINE_COMM_PCT_OR_AMT>0</ns1:LINE_COMM_PCT_OR_AMT>
                      <ns1:LINE_ITM_PROMISE_DT>2023-10-06T08:35:02</ns1:LINE_ITM_PROMISE_DT>
                      <ns1:LINE_TOTAL_QTY_ORDRD>0</ns1:LINE_TOTAL_QTY_ORDRD>
                      <ns1:LINE_TOTAL_QTY_SHIPD>0</ns1:LINE_TOTAL_QTY_SHIPD>
                      <ns1:LINE_ITM_PRICE_ORG>0</ns1:LINE_ITM_PRICE_ORG>
                      <ns1:LINE_ITM_NO_PACKAGE>0</ns1:LINE_ITM_NO_PACKAGE>
                      <ns1:LINE_ITM_PO_XR_SEQNO>0</ns1:LINE_ITM_PO_XR_SEQNO>
                      <ns1:LINE_ITM_PRC_LVL_NO>0</ns1:LINE_ITM_PRC_LVL_NO>
                      <ns1:LINE_ITM_BKT_SEQ_NO>0</ns1:LINE_ITM_BKT_SEQ_NO>
                      <ns1:IMHLTFIL_TRX_ID>0</ns1:IMHLTFIL_TRX_ID>
                      <ns1:DisplayUnitPrice>0</ns1:DisplayUnitPrice>
                  </ns1:LineItem>
              </ns1:LineItem>
              <ns1:ContactID>0</ns1:ContactID>
              <ns1:DisplayFreight>0</ns1:DisplayFreight>
              <ns1:DisplayTax>0</ns1:DisplayTax>
              <ns1:DisplayMisc>0</ns1:DisplayMisc>
              <ns1:DisplayAmtPaid>0</ns1:DisplayAmtPaid>
              <ns1:DisplayTaxPercent1>0</ns1:DisplayTaxPercent1>
              <ns1:DisplayTaxPercent2>0</ns1:DisplayTaxPercent2>
              <ns1:DisplayTaxPercent3>0</ns1:DisplayTaxPercent3>
              <ns1:SendConfirmationEmail>N</ns1:SendConfirmationEmail>
              <ns1:OrderTimeReleaseNew>0</ns1:OrderTimeReleaseNew>
          </ns1:CreateOrderInput>
      </ns1:CreateOrder>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

We noticed the <ns1:ORDER_CHECK_DATE>2023-10-06T08:35:02</ns1:ORDER_CHECK_DATE> is passed. We asked the developer not to pass. However, the developer claims they are passing a null value and yet still received the Error 19.

Upon further investigation, we found the following ORDER_CHECK_DATE was passed: 1969-12-31T17:00:00-07:00 (the local time that corresponds to UTC time 1970-01-01). This is due to the fact that  the language the developer used treats 1970-01-01 (UNIX time) as the default /empty date.

The core of the the issue is how Nullable types are represented in xml vs different languages. Elliott web services was written in VB.NET, at a time when the platform didn't have actual Nullable types in .NET. DateTime default values are 0001-01-01T:00:00:00-00:00. Most of Elliott web services callers are .NET apps. The auto-generated client hides these details. 

In summary, for a language that's not written in .NET that needs to call Elliott web services, if a developer needs to pass a null date value, he/she should pass the value  0001-01-01T:00:00:00-00:00. On the other hand, for .NET applications, the developer can simply pass null and .NET will hide the details from the  developer.


EMK

    • Related Articles

    • EliOrderService

      EliOrderService.asmx This web service provides the methods to create/modify/delete a customer sales order. To create an order, the minimum requirement is to provide the customer number, item number, and quantity for the order. For the remaining ...
    • Received Return Status Code 3 When Using Elilogin Login Method

      Q - When trying to use the EliloginService Login Method when another user is in Password Setup in Elliott, I receive a return status of 3 (Passwords Turned Off). Why? A - This is happening because the Login Method is attempting to read the System ...
    • Feature - Zone Breakdown Method by Freight Pay Code and State

      'Release Date: 4/4/18 This feature allows the user to set up a zone breakdown method by freight pay code and state. An example of where this new method can be used is the case where Global Setup -> Cop-Func -> Order Header Screen -> “22. Does Frt ...
    • Elliott Is Moving Away from Real-Time Inventory Update Method

      Release Date: 04/07/222 Version: 7.5 & Up Q - I would like to be able to auto-create an item at a location when it doesn't already exist, but it is not working. I changed the flag in Global Setup and it still does not work. Am I missing something? ...
    • Feature - Inventory Transfer Management Batches Using CSV Import

      Release date: 8/3/2018 "Free" Inventory Transfer Management batches are batches that have been entered by hand through the Inventory Transfer Management application and not automatically generated by Elliott when inventory needs to be transferred. ...