Skip to main content
Version: 3.8

Object References in R-COM Gateway

Object References allow one Object to link to another Object in R-COM Gateway.

With this feature, an attribute in one Object Group can store a reference to an Object in the system. This makes it possible to model relationships between business entities, such as a delivery position linked to a delivery, an asset linked to a location, or a maintenance task linked to a machine.

Object References extend Object Groups beyond simple data storage. Instead of storing only values such as text, numbers, dates, or boolean fields, an Object can point to another Object and create a traceable relationship between records.


What Is an Object Reference?​

An Object Reference is an attribute value that links one Object to another Object by using the referenced Object’s OBJECT_ID.

Each reference points to one Object.

Example:

{
"OBJECT_ID": "9ceb38ef-a325-4711-9d79-5610caf715bf",
"positionNumber": 10,
"itemNumber": "ITEM-001",
"delivery": "c7d6f1b2-08cd-4e7b-bd36-60c74021a4c5"
}

In this example, the delivery attribute stores the OBJECT_ID of a delivery Object. This links the delivery position to that delivery record.


Why Object References Are Used​

Object References are used when records in different Object Groups are related to each other.

Common examples include:

Use CaseExample
Delivery managementA delivery position references a delivery.
Asset trackingAn asset references a location.
Maintenance managementA maintenance task references a machine.
HealthcareA medical device references a room or department.
Warehouse operationsA pallet references an order, shipment, or storage area.

Without Object References, related Object IDs would need to be stored as plain text. That approach does not create a real relationship between Objects. With Object References, R-COM Gateway can display the linked Object, allow users to open it directly, validate dependencies during deletion, and identify Objects that reference a selected Object.

Reference Column Type​

Object References are configured using the Reference Column Type in the Object Data Designer.

A Reference column stores the OBJECT_ID of another Object. The referenced Object can belong to any Object Group in the system.

This means the same Reference column can point to Objects from different Object Groups, depending on the value stored in each record.

Example:

An Object Group named activityLog contains a Reference column named targetObject.

One activity log record may reference an asset:

{
"activity": "Moved",
"targetObject": "6f24f4ef-7a0f-46c3-8eaa-85ed421e3d67"
}

Another activity log record may reference a delivery:

{
"activity": "Approved",
"targetObject": "c7d6f1b2-08cd-4e7b-bd36-60c74021a4c5"
}

Both records use the same Reference column, but each record can point to a different Object.


How Object References Work​

Reference Values Are Stored as OBJECT_IDs

A Reference column stores the OBJECT_ID of the target Object.

The OBJECT_ID is the unique system identifier of the Object being referenced.

Example reference value:

c7d6f1b2-08cd-4e7b-bd36-60c74021a4c5

When this value is saved in a Reference column, R-COM Gateway uses it to identify and link the referenced Object.


Each Reference Links to One Object

A single Reference column value can point to one Object.

Supported:

{
"assignedRoom": "6f24f4ef-7a0f-46c3-8eaa-85ed421e3d67"
}

Not supported in a single Reference column:

{
"assignedRooms": [
"6f24f4ef-7a0f-46c3-8eaa-85ed421e3d67",
"9ceb38ef-a325-4711-9d79-5610caf715bf"
]
}

If one Object must reference multiple Objects, create separate Reference columns or model the relationship using another Object Group.


Each Record Can Reference a Different Object Group

The target Object Group is not fixed at column creation. The Reference column can point to any Object in the system.

Example:

Object GroupRecordReference ColumnReferenced Object Group
activityLogRecord 1targetObjectassets
activityLogRecord 2targetObjectdeliveries
activityLogRecord 3targetObjectlocations

This is useful when a record may be related to different types of entities depending on the process.


Configuring a Reference Column

Reference columns are configured in the Object Data Designer.

To create a Reference column:

  1. Open the Object Group in the Object Data Designer.
  2. Add a new attribute.
  3. Enter the column name.
  4. Select the ObjectReference column type.
  5. Configure whether the column allows null values.
  6. Save the Object Group structure.

Example configuration:

Add Object Referance

Add Object Referance

This configuration creates a Reference column that can store the OBJECT_ID of one Object.


Displaying Object References

In the Object data view, reference values are displayed as clickable links.

View Object Referance

View Object Referance

Clicking the link opens the referenced Object.

If No Unique Constraints​

Is Defined

If the referenced Object Group does not have a Unique Constraint, the link text displays the referenced Object’s OBJECT_ID.

Example:

c7d6f1b2-08cd-4e7b-bd36-60c74021a4c5

If a Unique Constraint Is Defined​

If the referenced Object Group has one or more Unique Constraint fields, the link text displays the concatenated Unique Constraint values.

Example referenced Object:

{
"OBJECT_ID": "c7d6f1b2-08cd-4e7b-bd36-60c74021a4c5",
"deliveryNumber": "DEL-10001",
"year": "2026"
}

If deliveryNumber and year are configured as Unique Constraint fields, the reference link text may appear as:

DEL-10001, 2026

This makes references easier to identify in the Object data view.


Viewing Objects That Reference the Current Object

Each Object includes an option to display all Objects that reference it.

View referanced objected

Add referanced objected

This helps users identify where an Object is used before modifying or deleting it.

Example:

A delivery Object may be referenced by multiple delivery position Objects.

When viewing the delivery Object, users can open the reference overview to see all Objects that point to it.

Example result:

Referencing Object GroupReferencing Objects
deliveryPositionPOS-001, POS-002, POS-003
activityLogLOG-10001, LOG-10002

This makes it easier to trace dependencies between Object Groups.


Deleting Referenced Objects

R-COM Gateway checks Object References when an Object is deleted.

If an Object is referenced by another Object, deletion depends on whether the referencing column allows null values.

Deletion Fails When the Referencing Column Is Not Nullable

If another Object references the Object through a Reference column that does not allow null values, deletion fails.

This applies to:

  • Deletion from the user interface.
  • Deletion through the DeleteObject action.

Example:

A deliveryPosition Object references a delivery Object through the delivery Reference column.

The delivery column is configured with Allow Null = No.

If a user tries to delete the referenced delivery Object, the deletion fails because the delivery position requires that reference.

Why This Protection Exists

This prevents broken required references.

Without this validation, a required Reference column could point to an Object that no longer exists. That would create inconsistent Object data and may affect workflows, reports, or object views.


Workflow Action Behavior​

Object References can also be used through workflow actions.

GetObjectsOfAttributes​

For Reference columns, the GetObjectsOfAttributes action returns basic reference information.

It returns:

  • OBJECT_ID
  • UniqueGroupName

The action does not automatically resolve and return the full linked Object.

Example result:

{
"targetObject": "c7d6f1b2-08cd-4e7b-bd36-60c74021a4c5",
"targetObject_UniqueGroupName": "deliveries"
}

Use this result to identify the referenced Object. If the full Object data is required, retrieve the referenced Object separately.

SetObjectsOfAttributes​

The SetObjectsOfAttributes action accepts the OBJECT_ID as the value for Reference columns.

Example:

{
"targetObject": "c7d6f1b2-08cd-4e7b-bd36-60c74021a4c5"
}

The provided OBJECT_ID identifies the Object that should be linked through the Reference column.


Actions for Finding Referencing Objects​

R-COM Gateway provides actions to find Objects that reference a selected Object.

These actions are useful for dependency checks, reporting, validation, cleanup workflows, and impact analysis.

GetReferencingObjects​

This action accepts an OBJECT_ID and returns all Objects that reference it, grouped by Object Group.

Return type:

Dictionary<string, List<Guid>>

The dictionary key is the Object Group name.

The dictionary value is a list of OBJECT_IDs from that Object Group that reference the given Object.

Example return value:

res["T_GROUP1"] = [
c7d6f1b2-08cd-4e7b-bd36-60c74021a4c5,
9ceb38ef-a325-4711-9d79-5610caf715bf
];

res["T_GROUP2"] = [
6f24f4ef-7a0f-46c3-8eaa-85ed421e3d67
];

This means:

  • Two Objects from T_GROUP1 reference the selected Object.
  • One Object from T_GROUP2 references the selected Object.

Use this action when you need a system-wide overview of references to an Object.


GetReferencingObjectsByGroup​

This action accepts:

  • An OBJECT_ID
  • An Object Group name

It returns a list of OBJECT_IDs from the specified Object Group that reference the given Object.

Example input:

{
"OBJECT_ID": "c7d6f1b2-08cd-4e7b-bd36-60c74021a4c5",
"objectGroupName": "deliveryPosition"
}

Example result:

[
"9ceb38ef-a325-4711-9d79-5610caf715bf",
"6f24f4ef-7a0f-46c3-8eaa-85ed421e3d67"
]

Use this action when you need to find references from one specific Object Group.


Practical Example: Delivery and Delivery Positions​

A common use case is linking delivery positions to a delivery.

Object Group: deliveries​

Example Object:

{
"OBJECT_ID": "c7d6f1b2-08cd-4e7b-bd36-60c74021a4c5",
"deliveryNumber": "DEL-10001",
"status": "Open"
}

Object Group: deliveryPosition​

Example Object:

{
"OBJECT_ID": "9ceb38ef-a325-4711-9d79-5610caf715bf",
"positionNumber": 10,
"material": "MAT-001",
"quantity": 25,
"delivery": "c7d6f1b2-08cd-4e7b-bd36-60c74021a4c5"
}

In this setup:

  • deliveryPosition contains a Reference column named delivery.
  • The delivery column references one delivery Object by storing its OBJECT_ID.
  • Users can click the reference link in the Object data view to open the related delivery.
  • The referenced delivery cannot be deleted if the delivery Reference column is not nullable and delivery position records still reference it.

Best Practices​

Use Object References when one Object needs to point to another Object.

Examples:

Source Object GroupReference ColumnExample Target
deliveryPositiondeliveryA delivery Object
assetMaintenanceassetAn asset Object
patientDeviceAssignmentdeviceA medical device Object
activityLogtargetObjectAny related Object

This keeps relationships traceable and avoids storing linked Object IDs as plain text.


Use Clear Column Names​

Because a Reference column can point to Objects from any Object Group, the column name should make the expected relationship clear.

Good examples:

targetObject
relatedObject
linkedAsset
delivery
assignedRoom

Avoid vague names:

ref
object1
value
data

Make Required References Non-Nullable​

If a reference is mandatory for the business process, disable Allow Null.

Example:

A delivery position should always belong to a delivery.

Recommended configuration:

ColumnTypeAllow Null
deliveryObject ReferenceNo

This ensures that users cannot create delivery positions without assigning them to a delivery.


Check References Before Deleting Objects​

Before deleting an Object, check whether other Objects reference it.

Use the reference overview in the Object view or the available reference lookup actions.

This helps avoid failed deletion attempts and prevents accidental disruption of related data.


Store Relationships as References, Not Plain Text​

Do not store related Object IDs in normal string columns when the value represents a link to another Object.

Poor approach:

{
"deliveryId": "c7d6f1b2-08cd-4e7b-bd36-60c74021a4c5"
}

Better approach:

{
"delivery": "c7d6f1b2-08cd-4e7b-bd36-60c74021a4c5"
}

The second approach uses a Reference column, allowing R-COM Gateway to treat the value as a real Object link.