Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ Production Management

Out-of-order message handling

  • Last UpdatedFeb 24, 2025
  • 3 minute read

Sometimes, update data requests might arrive in a different order than they were created. This could be due to a variety of communication delays.

Scenarios

Consider the case where three update record submissions arrive at almost the same time. The time difference between requests might be a few seconds. Depending on the order of arrival, the outcome can be different and unpredictable.

The submit request that arrives last determines the value.

Scenario 1: Ash = 20 arrives last

Data Creation Time

Arrival Time

Update Requests

10:30:03

10:30:09

Update Record 1 with Ash = 10

10:30:09

10:30:10

Update Record 1 with Ash = 15

10:30:06

10:30:11

Update Record 1 with Ash = 20

Ash = 20

Scenario 2: Ash = 15 arrives last

Data Creation Time

Arrival Time

Update Requests

10:30:03

10:30:09

Update Record 1 with Ash = 10

10:30:06

10:30:10

Update Record 1 with Ash = 20

10:30:09

10:30:11

Update Record 1 with Ash = 15

Ash = 15

RecordDateTime field

Since it's not ideal to have a small amount of time affect the outcome so significantly, we want to be assured of more reliable and predictable results. We have added a RecordDateTime field to handle cases where record submissions arrive almost simultaneously or out of order.

An external system provides the RecordDateTime value to make sure that AVEVA™ Production Management recognizes the most up-to-date value for the record.

Scenario 3: Ash = 18

The RecordDateTime field determines the creation timestamp and the processing order.

RecordDateTime

Update Requests

Action

10:30:08

Update Record 1 with Ash = 20

Updated

10:30:10

Update Record 1 with Ash = 15

Updated

10:30:15

Update Record 1 with Ash = 18

Updated

10:30:12

Update Record 1 with Ash = 16

Ignored

Ash = 18

Modules

Each of these modules has a RecordDateTime standard field under its module configuration folder. The default behavior for the RecordDateTime field is not mandatory. You must enable IsMandatrory = True to activate the RecordDateTime feature.

When you set the value for the RecordDateTime standard field at the module level, all reporting points in the module inherits this behavior. You can set the property at the reporting point level to override the inherited behavior.

Studio project hierarchy view showing the list of standard fields at module level, including RecordDateTime.

Insert Record scenarios

The results for an Insert Record request can vary depending on whether the RecordDateTime is mandatory and whether a data capture value is present.

RecordDateTime = Mandatory

DataCapture = Present

Result

Not mandatory

No data capture present

Creates new record

Not mandatory

Yes

Creates new record

Yes

No data capture present

Error occurs

Yes

Yes

Creates new record

Update Record scenarios

The results for an Update Record request can vary depending on whether the RecordDateTime is mandatory and whether a data capture value is present.

RecordDateTime = Mandatory

DataCapture = Present

Existing Record

Result

Not mandatory

No data capture present

No existing value

Behaves as before

Not mandatory

Yes

No existing value

Overwrites existing value

Not mandatory

Yes

Existing value is older

Overwrites existing value

Not mandatory

Yes

Existing value is same

Overwrites existing value

Not mandatory

Yes

Existing value is newer

Record is unchanged

Yes

No data capture present

No existing value

Error occurs

Yes

Yes

No existing value

Overwrites existing value

Yes

Yes

Existing value is older

Overwrites existing value

Yes

Yes

Existing value is same

Overwrites existing value

Yes

Yes

Existing value is newer

Record is unchanged

In This Topic
TitleResults for “How to create a CRG?”Also Available in