Real-time availability monitor (RTAM)

This time-triggered transaction monitors the inventory availability of inventory items and publishes availability by raising the REALTIME_AVAILABILITY_CHANGE_LIST event. The Real-time Availability Monitor (RTAM) can be run in three modes:
  • Activity Based: Raises the event in real time for inventory changes, such as when an item goes above or below one of the thresholds.
  • Quick Sync: Re-sends the most recently published inventory availability information.
  • Full Sync: Monitors all of the items regardless of activity and publishes the inventory information for all of the items.

Before the 9.3 version, when the inventory item in the activity based mode was monitored, RTAM monitored the related items such as Bundle Item, Model Item, and GTIN in the same run. Therefore, the related items were processed multiple times in one run of the activity based RTAM agent. This also impacted the performance of RTAM in the activity based mode.

In the 9.3 and later versions, RTAM is enhanced to create activity of related items instead of processing the related items with the current items. The activity for the related items is created with purpose 70. While processing activity for related items, RTAM does not create activities for any of the current items. RTAM monitors only the related items when the inventory item key of the related items is processed.
Note: Valid values for purpose are 70 and null.

Attributes

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

Table 1. Real-time availability monitor attributes
Attribute Value
Base Transaction ID REALTIME_ATP_MONITOR
Base Document Type General
Base Process Type General
Abstract Transaction No
APIs Called FindInventory

Criteria parameters

The following are the criteria parameters for this monitor:

Table 2. Real-time availability monitor 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.
InventoryOrganizationCode Inventory organization code to use when MonitorOption is passed as 3. The inventory organization has to be an enterprise.

If this is not passed, the monitor runs for all inventory organizations.

MonitorOption 1 - Activity Based (Monitor based on distinct inventory items in YFS_INVENTORY_ACTIVITY table).

2 – Quick Sync (Re-raise event to publish information from the YFS_INVENTORY_ALERTS table).

3 – Full Sync (Monitor based on all inventory items maintained by the inventory organization provided. If no InventoryOrganizationCode is provided, all inventory item is monitored).

If not provided, default value is 1.

ItemStatuses List of valid statuses of items to be processed. Statuses must be separated by a , for example 3000,2000. This is only used when MonitorOption is passed as 2 or 3. If provided, only items with the matching statuses is monitored.
FromAlertTimestamp This is only used when MonitorOption is passed as 2. If provided, the agent raises the REALTIME_AVAILABILITY_CHANGE_LIST event to republish inventory availability information which was published between the time that the agent started and FromAlertTimestamp.

If not provided, all inventory availability information published before the time that the agent started is republished.

AllowedOverriddenCriteria If set to Y, the overridden value for the agent criteria parameters can be provided at the command line while triggering the agent in the following format:

<AgentCriteriaAttribute> <OverriddenValue>

For more information about passing these attributes, see the Installing topic.

FromLastNumberOfHours This is only used when MonitorOption is passed as 2 to calculate the FromAlertTimestamp parameter, if necessary.

If the FromAlertTimestamp parameter is not provided, it is calculated as current timestamp minus FromLastNumberOfHours.

CollectPendingJobs If this parameter is set to N, the agent does not collect information on the pending jobs for this monitor. This pending job information is used for monitoring the monitor in the System Management Console.
RaiseEventsOnAllAvailability
Changes
When set to Y, overrides AlwaysRaiseBeyondLevel and raises the REALTIME_AVAILABILITY_CHANGE_LIST event on all availability changes regardless of whether availability exceeds or falls below specified thresholds. This is only used when MonitorOption is passed as 1. Valid values: Y or N. Default value: N.
ColonyID Required in a sharded deployment where a table may exist in multiple schemas. Runs the agent for the colony.
Note: Distribution Rule Id is used for internal purposes and should be left blank.

Statistics tracked

NumInvActivitiesProcessed

Pending job count

None.

Events raised

The following events are raised by this time-triggered transaction:

Table 3. Events raised by the realtime availability monitor transaction
Transaction/Event Key Data Data Published* Template Support?
REALTIME_
AVAILABILITY_
CHANGE_LIST
None
YFS_REALTIME_ATP_MONITOR.
REALTIME_AVAILABILITY
_CHANGE_LIST.html
Yes
* These files are located in the following directory:

<INSTALL_DIR>/xapidocs/api_javadocs/XSD/HTML

Although described as 'real time', availability changes may not be triggered immediately as inventory changes occur if the agent has a backlog of messages to process. Furthermore, this monitor exists as a time-triggered transaction, and thus monitors availability of inventory items only when the monitor is triggered based on the configured runtime properties.