Processing Order

The Limits process (CA_LIMITS) processes transactions based on the RESOURCE_ID_FROM and RESOURCE_ID field values. The values for these fields are created in the Project Costing Transaction table, PROJ_RESOURCE and are inserted into temporary tables for processing by the Limits process. During limit checking, transactions having numeric values in the RESOURCE_ID_FROM and RESOURCE_ID fields are processed before transactions with concatenated values. Concatenated values originate from sub-systems other than Project Costing and are stored in the PROJ_RESOURCE table. The system applies limit checking to transactions that have a numeric value prior to applying limit checking to transactions that have a concatenated value, as it processes the transactions first by RESOURCE_ID_FROM field and then RESOURCE_ID field. This occurs irrespective of the order in which the transactions are added from feeder systems such as General Ledger or transactions added from non feeder systems such as Project Costing.

For example, this table shows transactions in the Project Resource table that is from feeder and non-feeder applications for a contract with a limit amount of 2000$. The Order column shows the order in which the Limits process applies limit checking:

Analysis Type Amount ResourceIDFrom ResourceID Order

ACT

1000$

1

1

-

BIL

1000$

1

2

1

GLE

500$

GUS0010000

GUS0010000

-

BIL

500$

GUS0010000

3

2

ACT

200$

VUS0010000

VUS0010000

-

BIL

200$

VUS0010000

4

3

This table shows additional data being inserted into the Project Resource table. The Order column shows the order in which the Limits process applies limit checking.

Analysis Type Amount ResourceIDFrom ResourceID Order

ACT

1000$

1

1

-

BIL

1000$

1

2

1

ACT

2000$

5

5

-

BIL

1000$

5

6

2

OLT

1000$

5

7

2

GLE

500$

GUS0010000

GUS0010000

-

OLT

500$

GUS0010000

3

3

ACT

200$

VUS0010000

VUS0010000

-

OLT

200$

VUS0010000

4

4

In this example, when new transactions with numeric resource ID values are inserted into the Project Resource table, they are processed prior to the transactions with concatenated resource ID values. As a result, transactions having numeric resource ID values get limit checked first irrespective of their limit or the transaction being marked as OLT (over-the-limit) once the limit checking is complete.

If Separate As Incurred Billing and Revenue is selected for the contract then similar processing happens for REV/ROL rows.

Limit Processing Using Processing Order Template

A Processing Order Template can be defined and used during the Limits process. A Processing Order Template enables you to define a processing order and priority of processing for each transaction, matching specific criterion. You can select one or more fields from the given drop-down list as a criterion for sorting the transactions. This list is a subset of fields available in PROJ_RESOURCE table. The selected fields can be specified as an ascending or descending ordered field when transactions are being processed for limit checking. Also within each field you can specify additional conditions (sub-order) for prioritizing the processing of transactions based on matching criteria of the field values.

For example, consider TRANSACTION_DATE, RESOURCE_AMOUNT, TRANS_CODE, and TRANS_TYPE fields to be used as criteria for limit checking. A new Processing Order Template can be created as follows:

Field Sort Order Order Sub-Order Value to Match

RESOURCE_AMOUNT

Descending

1

-

-

TRANS_DT

Ascending

2

-

-

PROJ_TRANS_CODE

Ascending

3

-

-

PROJ_TRANS_TYPE

Ascending

4

1

C%

PROJ_TRANS_TYPE

Ascending

4

2

A%

In this example, the Resource Amount field takes precedence over the other fields because it is listed first. Similarly Transaction Date field takes precedence over Transaction Code and Transaction Type fields. For Transaction Type field, values beginning with “C” take precedence over field values beginning with “A”.

In case if RESOURCE_ID field is not selected in the processing order template, the system by default will use RESOURCE_ID as the last ordering field. This is done to ensure that the uniqueness and consistency in processing, when the fields are selected or process order specified does not result in unique values. For example, in the above illustration the final processing order that the system will use would be:

  1. RESOURCE_AMOUNT

  2. TRANS_DT

  3. PROJ_TRANS_CODE

  4. PROJ_TRANS_TYPE having values starting with C

  5. PROJ_TRANS_TYPE having values starting with A

  6. PROJ_TRANS_TYPE having values other than #4 and #5

  7. RESOURCE_ID

The resulting process ordering from #1 to #6 may not result in unique rows. As a result the transactions falling out of this order list may get processed inconsistently. Hence by default the system would use RESOURCE_ID as the last ordering field.

If you select RESOURCE_ID as one of the columns in the processing order template then the system will not append RESOURCE_ID field at the end of processing order list.

When using processing order templates, the transactions are processed based on the processing order defined by the templates and not on predefined values of RESOURCE_ID_FROM and RESOURCE_ID.

Note:

Processing Order Templates are optional. If Processing Order Template is not used then by default transactions are processed based on RESOURCE_ID_FROM and RESOURCE_ID field values.