Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Custom Benchmark involves custom index logic which is dependent on certain component values stored on underlying (assigned) constituent entities. These values and assignments are stored in the CUSTOM_INDEX_ATTRIBUTES table in the RULES database. The table keeps track of any changes to each custom entity by the EFFECTIVE_DATE field. 

In addition to the CUSTOM_INDEX_ATTRIBUTES table, there is a second table called CUSTOM_INDEX_ATTR_DETAIL that stores additional field values needed for certain custom index types (customBenchmark/customIndexType) (the constrained and exclusion type custom benchmarks). 

Entity Resolution Logic

Entity Resolution is specific logic resolving Entity ID for custom index records:

1. If both values are set up in the record:
     a. A lookup in the Entity_xreference table of the Rules database is performed to find matching entity cross reference values:
          - customBenchmark/entityXrefs/entityXref/xrefAccountId/Xref_Account_ID
          - customBenchmark/entityXrefs/entityXref/xrefAccountId/Xref_account_ID_Type

     b. If a match is NOT Found, the record is failed with the following error message: “EntityID is not resolved by XREFs”

     c. If a matching value exists, the interface will use the value from the Entity_id field and processing will move on to the entity detail resolution logic.

2. In case there were no ENTITY XREF and ENTITY XREF TYPE specified in the record:
     a. It checks for customBenchmark/entityId (CUSTOM INDEX ID) element and if there is no value for it on the record, the logic fails it with “EntityID is not resolved by XREFs” message.



  1. If both values exist on the record, the logic will be the following:
    1. Perform a lookup on the Entity_xreference table in the Rules Database and match the entity cross reference values:
      1. customBenchmark/entityXrefs/entityXref/xrefAccountId = Xref_Account_ID
      2. customBenchmark/entityXrefs/entityXref/xrefAccountId = Xref_account_ID_Type


  1. If a match NOT Found, fail the record with the error message: “EntityID is not resolved by XREFs”


  1. If a match, the interface will use the value in Entity_id. The logic will move to the entity detail resolution logic.


  1. This step is used if ENTITY XREF and ENTITY XREF TYPE do not exist on the record.
    1. If customBenchmark/entityId (CUSTOM INDEX ID) value is not on the record, the logic fails with the error message: “EntityID is not resolved by XREFs”.


  1. IF customBenchmark/entityId (CUSTOM INDEX ID) value is on the record, it performs a lookup on the Entity table in the rules database and match the value in the CUSTOM INDEX ID tag
    1. customBenchmark/entityId = entity_id.
    2. If a match, the interface has resolved the custom index record and the logic will move to the entity detail resolution logic.


1.3       ENTITY DETAIL RESOLUTION

The specific logic to resolve the Entity Detail for the custom index records is the following:

  1. This step is used to resolve the underlying/constituent entities associated to the Custom Index Entity. If both values exist on the record, the logic will be the following:


  1. Performs a lookup on the Entity_xreference table in the Rules Database and match the entity cross reference values:
    1. customBenchmark/entityDetail/entityXrefs/entityXref/xrefAccountId = Xref_Account_ID
    2. customBenchmark/entityDetail/entityXrefs/entityXref/xrefAccountIdType = Xref_account_ID_Type


  1. If a match NOT Found, it fails the record with the error message: “EntityID is not resolved by XREFs”
  2. If a match, the interface has resolved the Detail index record.


  1. This step is used if ENTITY DETAIL XREF and ENTITY DETAIL XREF TYPE do not exist on the record.


  1. If customBenchmark/entityDetail/entityId node (ENTITY DETAIL ID) is not on the record, it fails with the error message: “EntityID is not resolved by XREFs”.


  1. If the customBenchmark/entityDetail/entityId node (ENTITY DETAIL ID) value is on the record, it performs a lookup on the Entity table in the rules database and match the value in the ENTITY DETAIL ID tag
    1. customBenchmark/entityDetail/entityId = entity_id.
    2. If a match, the interface has resolved the Entity Detail record.

1.4       SECURITY CONSTRAINED RESOLUTION

If the incoming value in the customBenchmark/customIndexType (CUSTOM INDEX TYPE) tag = ‘CNST’ and a value exists in the SECURITY CONSTRAINED tag, then the custom Index has logic to constrain certain security returns.

SECURITY CONSTRAINED tag, the /customBenchmark/constrainAsset block in the incoming file, as example:

<constrainAsset>

<primaryAssetId>RJSD148507</primaryAssetId>

<primaryAssetType>INTERNAL</primaryAssetType>

</constrainAsset>

and is directly used by security resolution logic.


The Logic performs a lookup in the Perf_sec_rollup_relation table in the Perform database.

  1. If no match, the record (batch) fails with an error message: “Entity and Security Relation not found”
  2. If a match, the logic populates Security_alias in the Custom_index_attr_detail table with the security_alias value obtained above.


1.5       SECURITY EXCLUSION RESOLUTION

If the incoming value in the customBenchmark/customIndexType (CUSTOM INDEX TYPE) tag = ‘EXCL’ and a value exists in the SECURITY EXCLUSION tag, then the custom Index has logic to exclude certain security returns. The interface performs an additional lookup to resolve the Security being excluded.

SECURITY CONSTRAINED tag, the /customBenchmark/exclusionAsset block in the incoming file, as example:

 <exclusionAsset>

<primaryAssetId>RJSD148507</primaryAssetId>

<primaryAssetType>INTERNAL</primaryAssetType>

</exclusionAsset>

and is directly used by security resolution logic.


The logic is the following:

The logic performs a lookup in the Perf_sec_rollup_relation table in the Perform database.


  1. If no match, it fails the record (batch) with an error message: “Entity and Security Relation not found”


  1. If a match, it populates Security_alias in the Custom_index_attr_detail table with the security_alias value obtained above.

 

1.6       Batch and Next Instance Resolution

The batch is a unique combination of the following fields:

  • customBenchmark/effectiveDate = Effective_date in custom_index_attributes
  • customBenchmark/entityId = Entity_ID in custom_index_attributes
  • customBenchmark/entityDetail/entityId = Entity_Detail_Id in custom_index_attributes

As for example, a valid batch key would be:

<batchKey>2016-12-12^BT153545^ TB153545</batchKey>  

If a match, the interface looks to the value in PROCESS TYPE on the incoming record and:

  1. If PROCESS TYPE tag = ‘D’ or ‘DELETE’, the interface will delete all records in the database for the batch combination.
  2. If the PROCESS TYPE = 'IU' or ‘INSERT’ or ‘UPDATE’, and records exist for the same batch, the interface will remove records in the database and will re-process with the incoming records for the same batch combination
  3. If the PROCESS TYPE = 'IU' or ‘INSERT’ or ‘UPDATE’, and no records exist for the same batch, the interface will insert the records into the custom_index_attributes table.
  • No labels