How to load orders to DC1?
There are 2 sets of methods that can be used to create sales order in DC1:
- Methods which use DI (witout prevalidation)
- Methods to dirrect create sales orders.
Create sales orders inside DI files
These are set of API’s which create sales order inside DI files. You don’t have validation of data you put inside files. You can use these API’s to register an order with any type, because these orders will be managed by standard DI interface. (You can e.g. use a sales order type with ‘invoicing only flag’)
Steps:
- Add the order into DI files by following methonds:
- diSalesOrder.add
- diSalesOrderAddress.add
- diSalesOrderLine.add
- Then when order is ready, you run the di processing method using salesOrderCreation.add. This method change status of DI control record, then receiving order process starts.During order creation missing values are retrieved either from defaults and replacements or from DC1 set up. The order of bringing default values is as follows:
- Search in defaults and replacements. Use methodSubtype as group for searching for defaults value.
- If the value is not found in defaults and replacement then orodinary DC1 set up is used determine value. See documentation of DIS module of DC1. (e.g. sales order type can be taken from DC1 user default value.)
Following key values are put into DI interface:
- Method Subtype is taken from diSalesOrder.add input parameter. It can be any string (10A) (e.g. MAGENTO)
- DI Method is defailted to *INTERNAL
- DI Document is defaulted to ORDERS
Default and replacements Some defaults can be defined in ‘default and replacements ‘. The ‘group’ name is the same as methodSubtype passes in diSalesOrder.add. Following defaults and replacement keys are available:
| API method | Group | Level | Key | description |
|---|---|---|---|---|
| diSalesOrder.add | {as methodSubtype} | SALES | ROUTINE | Routine id |
| diSalesOrder.add | {as methodSubtype} | SALES | CUSTOMER | Customer |
| diSalesOrder.add | {as methodSubtype} | SALES | ORDTDEB | Sales order type |
| diSalesOrder.add | {as methodSubtype} | SALES | HANDLER | Handler |
| diSalesOrder.add | {as methodSubtype} | SALES | DEBTOR_ADDRESS | Debtor addres no. |
| diSalesOrder.add | {as methodSubtype} | SALES | CURRENCY | Currency |
| diSalesOrder.add | {as methodSubtype} | SALES | TOPC | Terms of payment |
| diSalesOrder.add | {as methodSubtype} | SALES | MOTC | Manner of transport |
| diSalesOrder.add | {as methodSubtype} | SALES | TODC | Terms of delivery |
| diSalesOrder.add | {as methodSubtype} | SALES | CONTRACT | Inventory contract number |
| diSalesOrder.add | {as methodSubtype} | SALES | SOURCE | Order source |
| diSalesOrderLine.add | {as methodSubtype} | SALES | WAREHOUSE | Warehouse |
| diSalesOrderLine.add | {as methodSubtype} | SALES | MOTC | Manner of transport |
| diSalesOrderLine.add | {as methodSubtype} | SALES | TODC | Terms of delivery |
| diSalesOrderCreation.add | {as methodSubtype} | SALES | ROUTINE | Routine id |
| diSalesOrderCreation.add | {as methodSubtype} | SALES | USER | User |
As next step the additional defaults and replacements are used by DC1 system itself.
| Routine | Group | Level | Key | description |
|---|---|---|---|---|
| Sales order creation process | {as methodSubtype} | SALES | REPRICE | Reprice (Y/N). Use “N” for manual price |
| Sales order creation process | {as methodSubtype} | DFTORDT | ORDERTYPE | Sales order type |
| Sales order creation process | {as methodSubtype} | DFTORDT | HANDLER | Handler |
Create / update sales order in interactive mode
These are set of API’s to create order in interactive mode. The validation is included, in case of error during, the API will return an error message in the response. In this way you create an order at the first step by salesOrderHeader.add and next you can add/change lines, texts, discounts, batches.
NOTE: Interactive API’s can create orders up to status 20.
NOTE: There is limitation that order types must be set up to print pick list: After the order is entered via the API into DC1, there is no API to interactively push the client to execute the pick process. These API’s are to register the order only and the picking, packing, transport, and invoicing is done in DC1 in “normal way”. This set of API’s is to use in case you would like to interact with the user. In this method client has to enter all mandatory parameters and react on erro messages if validation fails.
Following methods are used to maintain sales order:
- salesOrder.delete
- salesOrderHeader.add
- salesOrderHeader.get
- salesOrderHeader.update
- salesOrderHeaderAddress.get
- salesOrderHeaderAddress.update
- salesOrderHeaderAddresses.get
- salesOrderHeaderDiscount.add
- salesOrderHeaderDiscount.delete
- salesOrderHeaderDiscount.get
- salesOrderHeaderDiscount.update
- salesOrderHeaderDiscounts.get
- salesOrderHeaderHoldReasonRelease.add
- salesOrderHeaderProfit.get
- salesOrderHeaders.get
- salesOrderHeaderSimulation.get
- salesOrderHeaderText.add
- salesOrderHeaderText.delete
- salesOrderHeaderText.get
- salesOrderHeaderText.update
- salesOrderHeaderTexts.get
- salesOrderHeldReason.get
- salesOrderHeldReasons.get
- salesOrderLine.add
- salesOrderLine.delete
- salesOrderLine.get
- salesOrderLine.reprice
- salesOrderLine.update
- salesOrderLineAddress.get
- salesOrderLineAddress.update
- salesOrderLineBatch.add
- salesOrderLineBatch.delete
- salesOrderLineBatch.get
- salesOrderLineBatch.update
- salesOrderLineBatches.get
- salesOrderLineDiscount.add
- salesOrderLineDiscount.delete
- salesOrderLineDiscount.get
- salesOrderLineDiscount.update
- salesOrderLineDiscounts.get
- salesOrderLineProfit.get
- salesOrderLines.get
- salesOrderLineSerialNumber.get
- salesOrderLineSerialNumbers.get
- salesOrderLineSimulation.get
- salesOrderLineText.add
- salesOrderLineText.delete
- salesOrderLineText.get
- salesOrderLineText.update
- salesOrderLineTexts.get
- salesOrderStatistics.get
- salesOrderTexts.get
Examples
Example 1 : creating sales order using DI Execute the steps in the following order:
- diSalesOrder.add
e.g.
This returns a transmissionid to be used in subsequent calls e.g 250
- diSalesOrderAddress.add
e.g.
Returns empty response if OK.
- diSalesOrderLine.add
e.g
Returns empty response if OK.
- diSalesOrderCreation.add
e.g.
Returns empty response if OK.