[v2.6] DemandValidation

Overview

Demand Validation in Orchestrate provides the ability to add in business logic at any point in the order-to-cash process.

The host system provides any number of demand lines, and the Demand Validation endpoint iterates over those demand lines and runs each against the ruleset created in SCC: Orchestrate proper.

These rules are entirely user defined, but are commonly used to check for past due invoices, credit checks, licenses or certifications, and many other client-specific rules. 

The endpoint can then pass back a success or failure of each rule run against the demand line. How the host system processes each of these test results is up to user discretion.


POST /DemandValidation


 Request Body
PropertyData TypeNotes
demandValidationPolicystring

Sets which validation policy and business logic will be run over the demand lines.

Different policies contain different logic depending on how you have configured demand policies.

The desired policy must be selected here. This endpoint does not run all policies configured.


 demandLines
PropertyData TypeNotes
sourceOrderstring

The unique order number provided by the host entity.

Orchestrate is agnostic to the order type, so inbound or outbound order types are both permissible.

Furthermore, this is the order number, not the line number.

customerIDstringIf a customer is associated to the order, that value is placed here.
demandLineNumberinteger

Unique identifier for the demand line.

  • int32

Note

Orchestrate operates on a per line basis.

Each line is evaluated on its own, independent of the order or header information, unless specified otherwise by the feature.

totalUnitsOrderednumber

The total quantity of units ordered for the entire order.

  • decimal
totalValueOrderednumber

The total value of units ordered for the demand line.

The value in SCC is agnostic to currency, and will not be adjusted to reflect a different country currency.

The host entity can expect to receive back the value in the same currency as it was in the request.

  • decimal

Note

If there are validations around currency, ensure the validations are created with the demand currency code in mind.

Otherwise, currency conversion needs to take place prior to the request in Orchestrate.

hostItemstringUnique identifier for the item demanded.
itemGroupstringIf the item belongs to a specific group, this is included here.
qtyOrderednumber

The quantity ordered by the demand line.

  • decimal
quantityUomstring

Unit of measure as defined by the host system.

Note

Orchestrate does not define nor execute unit of measure conversions. 

marginPerUnitnumber

Profit margin per unit as defined by the host system.

  • decimal


 attributes
PropertyData TypeNotes
namestringName of the given attribute attached to the requested demand line.
valuestringWhere applicable, the value of the given attribute.



 Response
PropertyData TypeNotes
demandValidationPolicystring

The validation policy and business logic that was run over the demand lines.

Different policies contain different logic depending on how you have configured demand policies.

errorMessagesstringAny errors encountered during the priority logic appear here.


 validDemandLines
PropertyData TypeNotes
sourceOrderstring

The unique order number provided by the host entity.

Orchestrate is agnostic to the order type, so inbound or outbound order types are both permissible.

Furthermore, this is the order number, not the line number.

demandLineNumberinteger

Unique identifier for the demand line that succeeded validation.

  • int32

Note

Orchestrate operates on a per line basis.

Each line is evaluated on its own, independent of the order or header information, unless specified otherwise by the feature.

demandValidatorNamesstring

Lists each validator that was executed as part of the entire policy.

This could be a single validator or many validators depending on how you configured the policy.

messagesstringProvides additional detail on the validations passed or otherwise.
 invalidDemandLines
PropertyData TypeNotes
sourceOrderstring

The unique order number provided by the host entity.

Orchestrate is agnostic to the order type, so inbound or outbound order types are both permissible.

Furthermore, this is the order number, not the line number.

demandLineNumberinteger

Unique identifier for the demand line that failed validation.

  • int32

Note

Orchestrate operates on a per line basis.

Each line is evaluated on its own, independent of the order or header information, unless specified otherwise by the feature.

demandValidatorNamesstring

Lists each validator that was executed as part of the entire policy.

This could be a single validator or many validators depending on how you configured the policy.

messagesstringProvides additional detail on the validations failed or otherwise.

Feedback

Submit feedback.