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 ...
    • Debugging COBOL Code in Elliott 8.6

      Preparation This documentation is intended for Netcellent or Netcellent's developers. It use Netcellent's own environment as an example of how to perform certain tasks. Start by opening a command prompt and typing COB86. This will set the necessary ...
    • Btrieve Error Codes 001 - 199

      MicroKernel (Btrieve) Database Engine Status Codes This section describes status codes that the MicroKernel returns. All status codes are provided in 3-digit formats since the search on this website cannot search 1 or 2-digit words correctly. That is ...
    • ARTAXMNT Accounts Receivable Tax Code File Maintenance

      Tax Code File Maintenance Application Overview When you are setting up your Customer file, you will be asked to enter a Tax Code for each customer who is taxable. This tax code will designate what sales or other tax is to be charged when he purchases ...
    • Avalara Source Code Integration - AV API Call

      Release Date: 11/16/21 Revised: 05/23/22 Version: 8.6 and Above This article is intended for Elliott Business Software developers. This API call will allow the programmer to pass a value to indicate which Avalara function is to be performed. The ...