SalesOrder
This component runs the Sales Order Entry (SOE) function and allows you to set up and maintain sales order header information which applies to all the lines on the order and sales order lines for entering individual transaction lines.
This component also provides various methods that allow you to progress sales orders through certain stages. If doing so, you must ensure that sales orders are at the correct stage in order to be processed. For example, you cannot invoice a sales order unless it is available for invoicing.
There are three ways to improve performance of sales order imports:
-
Restricting the payload - the payload definition for sales orders is composed of all data items that are used within Order Fulfilment. As your SunSystems installation may not use all available data items, you can reduce the time taken to process sales orders by ensuring that your payloads only include those data items that you wish to work with.
- Reduce the number of processing options in SunSystems. If you are importing sales orders from an external application you can set up a particular sales type that does not carry out the various calculations, validations and lookups that would normally happen. For example, you might ensure that credit checking and inventory allocation do not occur at order entry. These can significantly increase the time taken to process an order entry. These can significantly increase the time taken to process a given Sales Order.
- Ensure that any line numbers are in numerical order, as disordered line numbers will impact performance. If both the User Line Number (
SalesOrder.Line.LineNumber) and the System Line Number (SalesOrder.Line.SalesOrderLineNumber) are provided, then the User Line Number is used.
- Where payload definition fields refer to static data, the data must already have been set up. For example, a supplier code must have been defined using the SunSystems Supplier function, or via the Supplier component.
- Depending on how your sales type stages have been set up, some component methods will be not be relevant.
- We do not support the import of Sales Orders using a 'Start of Document', 'Line' or 'End of Document' preset type. 'Start of Document' and 'Line' preset types can cause inconsistency in the line numbers. For example, when importing a new Sales Order using a 'Start of Document' preset type, the order is created with a preset line, then imported into a Sales Type that also creates a preset line.
Creating new orders line using the 'End of Document' preset type will not work, because an empty line is required to insert the new lines information. However, the empty line is not present if this preset type has been used.
Methods
- AcknowledgeLineOrder
- Driver Type: SASI
- Allocate
- Driver Type: SASI
- CreateOrAmend
- Driver Type: SASI
- CreateOrAmendAndGenerateInvoice
- Driver Type: SASI
- DeleteLineOrder
- Driver Type: SASI
- DeleteLines
- Driver Type: SASI
- DeleteWholeOrder
- Driver Type: SASI
- GenerateInvoice
- Driver Type: SASI
- HoldLineOrder
- Driver Type: SASI
- Query
- Drivery Type: Export
- ReleaseLineOrder
- Driver Type: SASI
- ReprocessWholeOrder
- Driver Type: SASI
Note on AbortOnZeroSubstitutionMessage
When creating or amending a sales order, if the payload element AbortOnZeroSubstitutionMessage is supplied with Y, and if the following zero substitution message is displayed:
"Value using formula SELLING_PRICE could not be calculated, as part of the information required by the formula is not available. A value of zero has been substituted",
the create or amend processing is aborted. If this element is set to anything other than Y, for example N, or no value, the create or amend processing continues. In this case, the zero substitution message is truncated in the Transfer Desk output, but is captured in full in the transfer log.
The element is defined in the payload as follows:
<?xml version="1.0" encoding="UTF-8"?>
<SSC>
<Payload>
<SalesOrder>
<FlagOptions>
<AbortOnZeroSubstitutionMessage>Y</AbortOnZeroSubstitutionMessage>
</FlagOptions>
</SalesOrder>
</Payload>
</SSC>
Mandatory fields
- General
- As sales orders can be tailored to suit customer needs, there are no fields that are always mandatory. The minimum amount of data required for entering sales orders is small. However, you should bear in mind that the actual amount needed to create meaningful orders and to progress those orders is much larger. This is wholly dependent on how your system is configured.
- Generating an Invoice
-
When generating an invoice, values for one or more of the following elements in the
<GenerateInvoiceParams>group may need to be supplied:- Consolidation Group Name- payload element
<ConsolidationGroupName> - Document Format Code - payload element
<DocumentFormatCode> - Invoice Date - payload element
<InvoiceDate> - Invoice Period - payload element
<InvoicePeriod>
- Consolidation Group Name- payload element
- Notes
-
Although the payload definition includes the
<DemandQuantity>and<OriginalDemandQuantity>elements within the<Line>element, these must not be used when creating or amending the Sales Order Line quantity. Instead, you must provide it in the appropriate Value Label (<VLabnn>) element.
Related data
For each line:
- Stage including Item Characteristic
- Sales Order Standard Text
- Sales Order Line Standard Text
- Analysis Quantity 1-10
- Value Labels 1-50
The attachment of Standard Text is supported by the CreateOrAmend and CreateOrAmendAndGenerateInvoice methods. If the standard text supplied in the payload does not exist then it is created. However, it is not possible to amend existing standard text by this means; existing standard text is attached by key only, and any non-key fields in the SSC payload are ignored. Standard text can be amended using the Standard Text Language Variants function from SunSystems or the SSC component StandardTextLanguageVariants.
The standard text to be attached is language specific and therefore must be included within the StandardTextLang part of the payload in order to be detected by the SSC component, as shown in the following example:
<SalesOrder>
...
<StandardText>
<StandardTextLang>
<Description>Delivery</Description>
<LanguageCode>1</LanguageCode>
<Paragraph1>Follow the special Instructions on the Invoice</Paragraph1>
<ShortHeading>Delivery</ShortHeading>
<StandardTextClassCode>SALES</StandardTextClassCode>
<StandardTextCode>DELIVERY</StandardTextCode>
</StandardTextLang>
</StandardText>
</SalesOrder>