Schedule

This transaction schedules orders to specific ship nodes making sure that the scheduled ship nodes have enough inventory to process the order.

Run this transaction after order creation.

Do not run the individual Schedule or Release agents when running the combined "Schedule and Release" agent.

Attributes

The following are the attributes for this time-triggered transaction:

Table 1. Schedule attributes
Attribute Value
Base Transaction ID SCHEDULE
Base Document Type Order
Base Process Type Order Fulfillment
APIs Called scheduleOrder()

Criteria parameters

The following are the criteria parameters for this transaction:

Table 2. Schedule criteria parameters
Parameter Description
Action Required. Triggers the transaction. If left blank, it defaults to Get, the only valid value.
Number of Records To Buffer Optional. Number of records to retrieve and process at one time. If left blank or specified as 0 (zero), it defaults to 5000.
MaximumRecords Determines the maximum number of possible solutions that the Schedule Agent can find. This parameter may improve the best solution found, but it also impacts the performance of this agent.

If left blank or specified as 0 (zero), it defaults to 5.

OptimizationType Optional. Determines the optimization rules to apply to the scheduling process. Valid values are:
  • 01 - Optimize on date (Default)
  • 02 - Optimize on ship node priority
  • 03 - Optimize on number of shipments
OrderFilter Optional. Determines the types of orders to filter. Possible values are:
  • A - All orders (Default)
  • B - Backorders only
  • N - New orders only
ScheduleAndRelease Optional. Notify the schedule process to release all releasable line quantities. Valid values are:
  • Y - Releases successfully scheduled line quantities.
  • N - Default value. Only schedules line quantities.

Enabling this parameter does not validate hold types configured for the release transaction.

IgnoreReleaseDate Optional. Determines whether the schedule process should ignore line release date criteria. Valid values are:
  • Y - Releases line quantities regardless of release date criteria.
  • N - Releases lines quantities only after release date criteria have been met. Default.
Next Task Queue Interval Not used. This agent updates a failed task so that it is suspended for the back order retry interval setup in the appropriately scheduled rule.
ColonyID Required in a multischema deployment where a table may exist in multiple schemas. Runs the agent for the colony.

Statistics tracked

The following statistics are tracked for this transaction:

Table 3. Schedule statistics
Statistic Name Description
NumFutureDateFailures Number of orders that Sterling Selling and Fulfillment Foundation did not attempt to schedule because of future date failures.

Failures can be caused by any of the following:

  • If the OrderFilter is “B” (Backorders Only) and there are no backordered or unscheduled lines.
  • If the OrderFilter is “N” (New orders Only) and there are some backordered or unscheduled lines.
  • If order has order lines within only backordered or unscheduled status and the status modify timestamp is after the current time - the back order wait period specified in the scheduling rule.
NumOrdersAttempted Number of orders attempted to schedule. This statistic does not include the values for NumFutureDateFailures and NumOrdersCannotBeProcessedFailures statistics.
NumOrderLinesReleased Number of order lines that have been released.

NumOrdersCannotBeProcessed
Failures

Number of orders that Sterling Selling and Fulfillment Foundation did not attempt to schedule because of cannot be processed failures.

Failures can be caused by any of the following:

  • The result of the YFSCheckOrderBeforeProcessingUE user exit returns as false.
  • The Order has the HoldFlag attribute set to ‘Y'.
  • The Order has the SaleVoided attribute set to ‘Y'.
  • The Order does not have PaymentStatus as AUTHORIZED, INVOICED, PAID, nor NOT_APPLICABLE.
NumOrdersCreated Number of orders created. This also includes the number of procurement orders created.
NumOrderLinesCreated Number of order lines created.
NumOrdersProcessed Number of orders processed.
NumOrdersScheduled Number of orders that have at least one line that was scheduled.

This includes scheduled lines in any status except BACKORDER.

NumOrdersProcOrdersCreated Number of procurement orders created.
NumWorkOrdersCreated Number of work orders created.
NumOrdersBackordered Number of orders backordered.
NumOrderLinesScheduled Number of order lines scheduled.
NumOrderLinesBackordered Number of order lines backordered.
NumReleasesCreated Number of order releases created.

Pending job count

For this transaction the pending job count is the number of records representing the unheld orders that are available to be processed by the transaction with the AVAILABLE_DATE value less than or equal to (<=) the current date value in the YFS_Task_Q table, if tasks on hold are not ready to be processed.

Events raised

This transaction raises events as specified under the scheduleOrder() API in the Sterling Selling and Fulfillment Foundation: Javadocs.

Providing Oracle hints

You can provide Oracle Hints to increase the performance of the scheduleOrder agent. The two hints that can be provided for each criteria ID of the scheduleOrder agent are the Outer Hint and the Inner Hint. The Outer Hint is always used for the YFS_TASK_Q table. The Inner Hint is used for the YFS_ORDER_HEADER table only if the earlier hold functionality is used; otherwise, the Inner Hint is used for the YFS_ORDER_RELEASE_STATUS table.

Insert the following entries in the yfs.properties file in order to enable Oracle Hints:

  1. Edit the <INSTALL_DIR>/properties/yfs.properties file.
  2. Insert yfs.<agent_criteria_id>.getjobs.hint.outer=/*+ parallel(YFS_TASK_Q 8) full(yfs_task_q) */

    Insert yfs.<agent_criteria_id>.getjobs.hint.inner=/*+ NL_SJ */