You can configure different types of agents for different scenarios to meet your business need.
For enterprise agents, you can set the ColonyId or EnterpriseCode attribute in the agent criteria. If the EnterpriseCode attribute is passed in the agent criteria, the agent runs for the specified enterprise. If only the ColonyId attribute is passed in the agent criteria, the agent runs for those enterprises that match the ColonyId.
The enterprise agents implement the
getJobsForEnterprise function, whereas other
agents implement the
Consider the following scenarios in which either ColonyId and/or EnterpriseCode is passed when the Enhanced Order Monitor agent is run.
- Scenario 1: Only ColonyId is passed – In this case, enterprises that match the ColonyId are derived and for each enterprise, the orders present in the colony are monitored.
- Scenario 2: If EnterpriseCode is passed – In this case, the orders for this enterprise present in the colony of the enterprise are monitored. This is irrespective of whether or not the ColonyId is passed in the criteria.
The enterprise agents that process across colonies are as follows:
- Extended Order Monitor
- Shipment Monitor
- Request Collection
Person Info Purge agents
Agents such as Person Info Purge and Person Info History Purge require a TableType attribute in the criteria, in addition to the ColonyId attribute. This is because the YFS_Person_Info and YFS_Audit tables exist in more than one shard and the agent runs with one TableType at a time. Therefore, for every colony, an agent must be configured with an agent criteria of TableType="TRANSACTION" and TableType="MASTER".
If the TableType attribute is not set, the agent works for the default TableType for that table. For YFS_Person_Info, the default TableType is TRANSACTION.
Agents that process transactional data, such as non-enterprise agents and other purge agents, accept ColonyId as a criteria, and it has to be passed to process the data in the corresponding shard. So a shard level criteria is required for all these agents and gets triggered separately.