Lucernex Lookup Keys
An lookup key is a value that identifies a record and can be used to create, read, update, or delete records. A single record can have multiple lookup keys that may or may not be unique to the record. This article will teach you the differences between lookup keys.
Lookup Keys are required for inbound integrations, imports, and creating record-specific URLs. You may also use lookup keys when researching audit history.
We recommend you only use one lookup key per record in integrations and imports. If you choose to use more than one lookup key, please refer to the Lookup Key Priority sections in the Lookup Keys Exclusive to Entities and the Lookup Keys Exclusive to Employers sections below for more information.
Common Lookup Keys
These keys exist for almost every object in Lucernex.
ClientID
The ClientID field is a free form text field that exists for most objects. This field can be used when importing data to uniquely look up a record for update. This lookup key can either be system-generated or defined by the user upon the initial import of record data. A ClientID has the database name BOMapClientRecordID, and its user interface label follows the following naming convention: Object ClientID.
A ClientID is only assignable through import or API call, not through the user interface. A ClientID cannot be changed once it has been assigned. If an object is exported and has no assigned ClientID, the system will assign one. A system-assigned ClientID uses the following naming convention:
-
client‐LxID‐DateTimeInMilliseconds
For example, client‐699209‐1498506974001
Database Name | User-Interface Label | Sample Data (text) |
---|---|---|
BOMapClientRecordID | Employer ClientID |
EMP_12345‐SITE |
BOMapClientRecordID | Location ClientID |
001253 |
BOMapClientRecordID | Payment Transaction ClientID |
001253‐12345‐20170724 |
RecID (LxID)
RecID fields contain an automatically assigned integer that uniquely identifies each record. A RecID field is also known as a Lucernex ID or an LxID. They are not editable. A RecID has the database naming convention <Object>ID, and its user interface label follows the following naming convention: <Object> RecID.
An object's RecID is what Lucernex uses to link the object to another object.
Database Name | User-Interface Label | Sample Data (integer) |
---|---|---|
EmployerID | Employer RecID |
699209 |
LocationID | Location RecID |
216811 |
PaymentTransactionID | Payment Transaction RecID |
50578184 |
Lookup Keys Exclusive to Entities
These primary keys will only be found on entity database tables. An entity is defined as a parent record type that can be accessed via first-level navigation in Lucernex, such as a contract, project, or portfolio.
[Client] Entity ID (entities only)
ClientEntityID fields are editable client-assigned text fields. They are not required to be unique. A ClientEntityID has the database name ClientEntityID, and its user interface label uses the following naming convention: Object ID.
This field exists on the General Entity Info table (ProjectEntity) and in the Summary Information data group > General Summary Information data sub-group. The front-end label of this field in these areas is Store Number.
When added from the General Summary Information data sub-group to a report, Lucernex will automatically grab the appropriate ClientEntityID from the entity type that you are reporting on.
The ClientEntityID is not required to be unique. Be cautious when using the ClientEntityID in imports, because Lucernex will attempt to update the first-created entity of that type that has a matching ClientEntityID.
However if you include a unique lookup key—such as the ClientID or the LxID—in the import, Lucernex will update the appropriate entity.
Database Name | User-Interface Label | Sample Data (text) |
---|---|---|
ClientEntityID | Location ID |
001253 |
ClientEntityID | Contract ID |
001253‐01 |
ClientEntityID | Store Number* |
001253 |
*For ProjectEntity (General Entity Info) table
Entity RecID (entities only)
The entity-level ProjectEntityID is system‐assigned, unique, and cannot be edited. The ProjectEntityID field's user interface label is Entity RecID.
This field exists on the General Entity Info table (ProjectEntity) and in the Summary Information data group > General Summary Information data sub-group. The value of the ProjectEntityID is sequential across all entity types. This differs from the entity-type-specific RecID field, which is sequential for a single entity type. For example, the Entity RecID for Location ≠ the Location RecID.
An entity's RecID is what Lucernex uses to link the entity to child objects that can be associated with any entity type. For example, Lucernex links person records to entities using the entity's Entity RecID.
Database Name | User-Interface Label | Sample Data (integer) |
---|---|---|
ProjectEntityID | Entity RecID |
131149 |
ProjectEntityID | Entity RecID |
829212 |
ProjectEntityID | Entity RecID |
342012 |
Client Unique ID (entities only)
The entity-level Client Unique ID field is client‐assigned, unique, and cannot be edited after being established. The entity-level Client Unique ID field has the database name MapClientRecordID, and its user interface label is Client Unique ID.
This field exists on the General Entity Info table (ProjectEntity) and in the Summary Information data group > General Summary Information data sub-group. The value of this field is only assignable through import or API call, not through the UI. It can be system‐assigned when the object is exported and has no assigned ClientID. A system‐assigned ClientID uses the naming convention client‐LxID‐DateTimeInMilliseconds—for example, client‐699209‐1498506974001. In this naming convention, the word "client" is literal, and the LxID and DateTimeInMilliseconds are variables populated by the system.
This field is the same regardless of which database table you access it from. For example, if you pull the Client Unique ID for a Location, its value is equal to the Location ClientID.
Database Name | User-Interface Label | Sample Data (text) |
---|---|---|
MapClientRecordID | Client Unique ID |
EMP_12345‐SITE |
MapClientRecordID | Client Unique ID |
001253 |
MapClientRecordID | Client Unique ID |
001253‐12345‐20170724 |
Specific Entity Type Name (entities only)
Entity-level Specific Entity Type Name fields are client‐assigned, unique, and can be edited after being established. The entity-level Specific Entity Type Name fields use the database naming convention Object Name, and their user interface labels are dependent upon the entity type. For example the Specific Entity Type Name for the Site module would have the database name PotentialProjectName, and the user interface label Site Name.
Database Name | User-Interface Label | Sample Data (text) |
---|---|---|
LocationName | Location Name |
001253 ‐ Pacific Center |
ProjectName | Project Name |
001253 ‐ Original Build |
ContractName | Contract Name |
001253 ‐ Master Lease |
Entity Name (entities only)
The entity-level ProjectEntityName field is client‐assigned, unique, and can be edited after being established. The ProjectEntityName field's user interface label is Name. This field's value is the same regardless of which database table you access it from.
For example, if you wanted to report across entity types and include the name of each entity, the ProjectEntityName could be used to pull the entity name regardless of entity type. These entity names would all be listed in one column. For a Location, the ProjectEntityName field's value would be equal to the Location Name, for a Project, its value would be equal to the Project Name, and so forth.
Database Name | User-Interface Label | Sample Data (text) |
---|---|---|
ProjectEntityName | Name |
001253 ‐ Pacific Center |
ProjectEntityName | Name |
001253 ‐ Original Build |
ProjectEntityName | Name |
001253 ‐ Master Lease |
XML Example
<Location>
<ProjectEntityName>001253 ‐ Pacific Center</ProjectEntityName>
</Location>
Entity Lookup Key Priority for POST / PUT
When adding or updating data via API call, if there is more than one lookup key in the call, the system attempts to match record lookup keys in the following order. If the lookup keys included in the call conflict with one another—for example, the RecID refers to record A, and the ClientID matches to record B—the following list displays what happens when these conflicts occur.
-
Lookup Keys: RecID, ClientID / Client Unique ID
-
Lookup Key Given Highest Priority: RecID
-
Consequence: there may be a warning returned if you perform multiple calls on the same record but do not specify that you are updating the record. This is because once the ClientID is specified, it cannot be changed.
-
-
Lookup Keys: RecID, [Client] Entity ID
-
Lookup Key Given Highest Priority: RecID
-
Consequence: updates [Client] Entity ID, no warnings
-
-
Lookup Keys: RecID, Entity RecID
-
Lookup Key Given Highest Priority: RecID
-
Consequence: does not update Entity RecID if there is a conflict between lookup keys, no warnings
-
-
Lookup Keys: RecID, Specific Entity Type Name
-
Lookup Key Given Highest Priority: RecID
-
Consequence: attempts to update Name, warns when an entity of same name exists
-
-
Lookup Keys: RecID, Entity Name
-
Lookup Key Given Highest Priority: RecID
-
Consequence: does not update Entity Name if there is a conflict between lookup keys, no warnings
-
-
Lookup Keys: Entity RecID, ClientID / Client Unique ID
-
Lookup Key Given Highest Priority: Entity RecID
-
Consequence: warns when in conflict
-
-
Lookup Keys: Entity RecID, [Client] Entity ID
-
Lookup Key Given Highest Priority: Entity RecID
-
Consequence: updates [Client] Entity ID, no warnings
-
-
Lookup Keys: Entity RecID, Specific Entity Type Name
-
Lookup Key Given Highest Priority: Entity RecID
-
Consequence: attempts to update Name, warns when an entity of same name exists
-
-
Lookup Keys: Entity RecID, Entity Name
-
Lookup Key Given Highest Priority: Entity RecID
-
Consequence: does not update Entity Name if there is a conflict between lookup keys, no warnings
-
-
Lookup Keys: ClientID / Client Unique ID, [Client] Entity ID
-
Lookup Key Given Highest Priority: ClientID / Client Unique ID
-
Consequence: updates [Client] Entity ID, no warnings
-
-
Lookup Keys: ClientID / Client Unique ID, Specific Entity Type Name
-
Lookup Key Given Highest Priority: ClientID / Client Unique ID
-
Consequence: attempts to update Name, warns when an entity of same name exists
-
-
Lookup Keys: ClientID / Client Unique ID, Entity Name
-
Lookup Key Given Highest Priority: ClientID / Client Unique ID
-
Consequence: does not update Entity Name if there is a conflict between lookup keys, no warnings
-
-
Lookup Keys: [Client] Entity ID, Specific Entity Type Name
-
Lookup Key Given Highest Priority: [Client] Entity ID
-
Consequence: attempts to update Name, warns when an entity of same name exists
-
-
Lookup Keys: [Client] Entity ID, Entity Name
-
Lookup Key Given Highest Priority: [Client] Entity ID
-
Consequence: does not update Entity Name if there is a conflict between lookup keys, no warnings
-
-
Lookup Keys: Specific Entity Type Name, Entity Name
-
Lookup Key Given Highest Priority: Specific Entity Type Name
-
Consequence: no warnings
-
Lookup Keys Exclusive to Employers
These primary keys will only be found on the Employer database table. Depending on your goal when working with employer records, you might use the LxID, the ClientID, or a combination of the EmployerName and APVendorNumber fields.
EmployerName
The EmployerName field is client-assigned, editable, and not required to be unique. It has a user interface label of Employer Name.
Database Name | User-Interface Label | Sample Data (text) |
---|---|---|
EmployerName | Employer Name | Lucernex |
EmployerName | Employer Name | Accruent |
EmployerName | Employer Name | Realty King |
XML Examples:
<Employer lxID="4819256">
<EmployerName>Realty King</EmployerName>
<City>Miami</City>
</Employer>
APVendorNumber
The APVendorNumber is client-assigned, editable, and not required to be unique. It has a user interface label of AP Vendor Number.
Examples:
Database Name | User-Interface Label | Sample Data (text) |
---|---|---|
APVendorNumber | AP Vendor Number | 593-201952 |
APVendorNumber | AP Vendor Number | 888‐234682 |
XML Examples:
<Employer>
<EmployerName>Landlord Limited</EmployerName>
<APVendorNumber>742‐203941</APVendorNumber>
<City>Little Rock</City>
</Employer>
Employer Lookup Key Priority for POST/PUT
When adding or updating data via API call, if there is more than one lookup key in the call, the system attempts to match record lookup keys in the following order. If the lookup keys included in the call conflict with one another—for example, the RecID refers to record A, and the ClientID matches to record B—the following list displays what happens when these conflicts occur.
-
The typical lookup key priority is RecID > ClientID > Employer Name > Employer Name + AP Vendor Number.
-
However, if you include the match="clientID" attribute in your XML input, Lucernex won’t look further if it fails to find a record with the specified ClientID. Instead, Lucernex will create a new record (POST) or return an error (PUT).
-
If the Employer Name is not found, Lucernex will create a new record (POST) or return an error (PUT). If multiple matches are found, Lucernex will continue with Employer Name + AP Vendor Number.
-
If the Employer Name + AP Vendor Number is not found or if multiple records are found, Lucernex will create a new record (POST) or return an error (PUT).