{"revision":"c10276e953456835cdbb1f3a60d58ae1980be353","document":{"id":967,"path":"api-reference/server-api-reference/c_CMDBTransformUtilAPI.md","title":"CMDBTransformUtil - Global","bundle":null,"doc_type":null,"release":"australia","body":"\n# CMDBTransformUtil- Global\n\nThe CMDBTransformUtil script include uses the Identification and Reconciliation \\(IRE\\) framework to minimize the creation of duplicate configuration items \\(CI\\).\n\nThe IRE framework also reconciles CI attributes by only accepting information from authorized sources when updating the CMDB in `onBefore` transform map scripts. You can't use this class in other scripts. For additional information on how the IRE framework operates, see [CMDB Identification and Reconciliation](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/servicenow-platform/c_CMDBIdentifyandReconcile.md).\n\n**Parent Topic:**[Server API reference](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/server-api-reference/api-server.md)\n\n## CMDBTransformUtil - CMDBTransformUtil\\(\\)\n\nCreates a CMDBTransformUtil object.\n\n|Name|Type|Description|\n|----|----|-----------|\n|None| | |\n\n```\nvar cmdbUtil = new CMDBTransformUtil();\n```\n\n## CMDBTransformUtil - getError\\(\\)\n\nReturns any errors generated by the previous identifyAndReconcile\\(\\) or identifyAndReconcileEnhanced\\(\\) method call.\n\nUse this method in onBefore transform map scripts to obtain errors. Use the [hasError\\(\\)](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/server-api-reference/c_CMDBTransformUtilAPI.md) method to first detect any errors from the identifyAndReconcile\\(\\) or identifyAndReconcileEnhanced\\(\\) method.\n\n|Name|Type|Description|\n|----|----|-----------|\n|None| | |\n\n|Type|Description|\n|----|-----------|\n|String|Error message from identifyAndReconcile\\(\\) or identifyAndReconcileEnhanced\\(\\).|\n\n```\n// Add this code to the onBefore transform map script\n// Call CMDB API to do Identification and Reconciliation of the current row\nvar cmdbUtil = new CMDBTransformUtil();\ncmdbUtil.setDataSource('ImportSet');\ncmdbUtil.identifyAndReconcileEnhanced(source, map, log);\nignore = true;\n\nif (cmdbUtil.hasError()) {\n  var errorMessage = cmdbUtil.getError();\n  log.error(errorMessage);\n} else {\n  log.info('IE Output Payload: ' + cmdbUtil.getOutputPayload());\n  log.info('Imported CI: ' + cmdbUtil.getOutputRecordSysId());\n}\n```\n\n### Scoped equivalent\n\nThere is no scoped equivalent for this method.\n\n## CMDBTransformUtil - getOutputPayload\\(\\)\n\nReturns the JSON payload from the previous identifyAndReconcile\\(\\) or identifyAndReconcileEnhanced\\(\\) method call.\n\nUse this method in onBefore transform map scripts.\n\n|Name|Type|Description|\n|----|----|-----------|\n|None| | |\n\n<table id=\"table_dyb_nh4_ylb\" class=\"returns\"><thead><tr><th>\n\nType\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\n&lt;String&gt;\n\n</td><td>\n\nJSON formatted string that is a list of results for the configuration items in the input string. Each result string is in the format  'items: \\[\\{\\}\\], relations:\\[\\{\\}\\]', where each item within the items and relations lists contains name-value pairs. Data type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.additionalCommittedItems\n\n</td><td>\n\nNo values are currently returned.\n\n</td></tr><tr><td>\n\n&lt;String&gt;.additionalCommittedRelations\n\n</td><td>\n\nNo values are currently returned.\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items\n\n</td><td>\n\nDescription of the created or updated CIs.Data type: Object\n\n```\n\"items\": { \n  \"additionalRelatedItems\": [Array],\n  \"className\": \"String\",\n  \"duplicateIndices\": [Array],\n  \"errorCount\": Number,\n  \"errors\": [Array],\n  \"identificationAttempts\": [Array],\n  \"identifierEntrySysId\": \"String\",\n  \"info\": [Array],\n  \"inputIndices\": [Array],\n  \"maskedAttributes\": [Array],\n  \"operation\": \"String\",\n  \"relatedItems\": [Array],\n  \"relatedSysIds\": [Array],\n  \"sysId\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.additionalRelatedItems\n\n</td><td>\n\nList of information about additional lookup and related items that were processed but not provided as part of the input payload. These items are from partial payloads.This information is not currently returned.\n\nData type: Array of Objects\n\n```\n\"additionalRelatedItems\": [ \n  {\n    \"className\": \"String\", \n    \"inputIndices\": [Array], \n    \"operation\": \"String\",\n    \"sysId\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.additionalRelatedItems.className\n\n</td><td>\n\nClass/table name \\(sys\\_class\\_name\\) of the CI that was created or updated.Data type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.additionalRelatedItems.inputIndices\n\n</td><td>\n\nIndex of the corresponding input item. For top-level items, it is a list of integers. For related or lookup items, it is list of JSON objects.Data type: Array of Numbers or Array of Objects\n\n```\n\"inputIndices\": [\n  { \n   \"mainIndex\": Number, \n   \"subIndex\": Number \n  }\n]\n```\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.additionalRelatedItems.inputIndices.mainIndex\n\n</td><td>\n\nIndex value from the request body **items** array that corresponds to the CI parent of the additional related item. Data type: Number\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.additionalRelatedItems.inputIndices.subIndex\n\n</td><td>\n\nIndex value from the request body **items.lookup** array that corresponds to the additional related item.Data type: Number\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.additionalRelatedItems.operation\n\n</td><td>\n\nType of operation.Possible values:\n\n-   INSERT: New CI was inserted into the database.\n-   NO\\_CHANGE: No CI changes were made.\n-   UPDATE: Existing CI was updated.\n\nData type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.additionalRelatedItems.sysId\n\n</td><td>\n\nSys\\_id of the additional related items.Data type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.className\n\n</td><td id=\"entry_return_item_className\">\n\nClass/table name \\(sys\\_class\\_name\\) of the CI that was created or updated.Data type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.duplicateIndices\n\n</td><td id=\"entry_return_items_duplicateIndices\">\n\nList of indexes of CIs that are duplicates of the current item.Data type: Array\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.errorCount\n\n</td><td>\n\nNumber of errors.Data type: Number\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.errors\n\n</td><td id=\"entry_return_item_error\">\n\nList of errors encountered while processing this CI.Data type: Array of Objects\n\n```\n\"errors\": [\n  {\n    \"error\": \"String\",\n    \"message\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.errors.error\n\n</td><td id=\"items_errors_errors-entry-IRE\">\n\nType of error encountered while processing the CI.Data type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.errors.message\n\n</td><td id=\"items_errors_msg-entry-IRE\">\n\nError message associated with the error.Data type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.identificationAttempts\n\n</td><td id=\"entry_return_item_identificationAttempts\">\n\nList of attempts that were made to identify the CIs.Data type: Array of Objects\n\n```\n\"identificationAttempts\": [\n  { \n    \"attemptResult\": \"String\", \n    \"attributes\": [Array],\n    \"hybridEntryCiAttributes\": [Array],\n    \"identifierName\": \"String\",\n    \"searchOnTable\": \"String\" \n  }\n]\n```\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.identificationAttempts.attemptResult\n\n</td><td id=\"entry_return_item_identificationAttempts_attemptResult\">\n\nResults of the attempt to identify the CI.Possible values:\n\n-   MATCHED: Identification succeeded. A unique CI was found in the identifier rule table which exactly matched the specified attributes.\n-   MULTI\\_MATCH: Identification failed with an error. Duplicate CIs were found in the identifier rule table when matching against the specified attributes.\n-   NO\\_MATCH: Identification failed. No CI was found in the identifier rule table which matched the specified attributes.\n-   SKIPPED: Identification not attempted. The attributes required for this identifier rule table search were not provided, so the rule was not applied.\n\nData type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.identificationAttempts.attributes\n\n</td><td id=\"entry_return_item_identificationAttempts_attributes\">\n\nList of CI identifier entry attributes that were used during the identification process.Data type: Array\n\nAttribute names and types depend on the request body data and the identifier in use, such as:\n\n```\n\"attributes\": [\n  \"serial_number\": \"String\",\n  \"serial_number_type\": \"String\",\n]\n```\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.identificationAttempts.hybridEntryCiAttributes\n\n</td><td>\n\nNo values are currently returned.\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.identificationAttempts.identifierName\n\n</td><td id=\"entry_return_item_identificationAttempts_identifierName\">\n\nIdentifier rule used for this CI identification attempt.Data type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.identificationAttempts.searchOnTable\n\n</td><td id=\"entry_return_item_identificationAttempts_searchOnTable\">\n\nName of the table searched during the identification process.Data type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.identifierEntrySysId\n\n</td><td id=\"entry_return_item_identifierEntrySysId\">\n\nSys\\_id for the identifier rule used to identify the CI.Data type: String\n\nTable: Identifier Entry \\[cmdb\\_identifier\\_entry\\]\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.info\n\n</td><td id=\"items_info-entry-IREE\">\n\nList that contain additional information about the processing of the item.Data type: Array of Objects\n\n```\n\"info\": [\n  {\n    \"code\": \"String\",\n    \"message\": \"String\",\n    \"ruleSysId\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.info.code\n\n</td><td>\n\nReclassification type that was skipped.Possible values:\n\n-   SKIPPED\\_CLASS\\_SWITCH\n-   SKIPPED\\_CLASS\\_DOWNGRADE\n-   SKIPPED\\_CLASS\\_UPGRADE\n\nData type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.info.message\n\n</td><td>\n\nMessage that provides additional insights into the reason for skipping the reclassification.Data type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.info.ruleSysId\n\n</td><td>\n\nSys\\_id of the reclassification restriction rule that was matched. Applicable only when IRE skips reclassification due to reclassification restriction rule. This value is empty if the reclassification is skipped due to a payload or global flag.Data type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.inputIndices\n\n</td><td>\n\nIndex values for CIs from the request body **items** array that correspond to this CI.Data type: Array\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.maskedAttributes\n\n</td><td id=\"entry_return_item_maskedAttributes\">\n\nList of attributes whose update by a non-authoritative data source was skipped as defined by the [Reconciliation Rules](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/servicenow-platform/create-reconciliation-rule.md).Data type: Array\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.relatedItems\n\n</td><td>\n\nList that provides information about the processed related items.Data type: Array of Objects\n\n```\n\"relatedItems\": [\n  { \n    \"className\": \"String\",\n    \"errors\": [Array],\n    \"errorCount\": Number, \n    \"inputIndices\": [Array],\n    \"operation\": \"String\",\n    \"sysId\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.relatedItems.className\n\n</td><td>\n\nClass/table name \\(sys\\_class\\_name\\) of the related item.Data type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.relatedItems.errors\n\n</td><td>\n\nList of errors that occurred during processing.Data type: Array of Objects\n\n```\n\"errors\": [\n  {\n    \"error\": \"String\",\n    \"message\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.relatedItems.errorCount\n\n</td><td>\n\nNumber of errors detected during processing.Data type: Number\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.relatedItems.inputIndices\n\n</td><td>\n\nIndexes of the corresponding related items.Data type: Array or Numbers\n\n```\n\"inputIndices\": [\n  { \n   \"mainIndex\": Number, \n   \"subIndex\": Number \n  }\n]\n```\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.relatedItems.inputIndices.mainIndex\n\n</td><td>\n\nInteger value from the request body **items** array that corresponds to the CI parent of the related item.Data type: Number\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.relatedItems.inputIndices.subIndex\n\n</td><td>\n\nInteger value from the request body **items.lookup** array that corresponds to the related item.Data type: Number\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.relatedItems.operation\n\n</td><td>\n\nType of operation.Possible values:\n\n-   INSERT: New CI was inserted into the database.\n-   NO\\_CHANGE: No CI changes were made.\n-   UPDATE: Existing CI was updated.\n\nData type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.relatedSysIds\n\n</td><td>\n\nList of the sys\\_id values for related items \\(table lookup items\\) from the request body **items.lookup** array.Notable values - null: No sys\\_id was identified for this related item.\n\nData type: Array\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.sys\\_id\n\n</td><td id=\"entry_return_item_sys_id\">\n\nSys\\_id of the CI that was updated or created.Data type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.relations\n\n</td><td>\n\nInformation about the processed relations.Data type: Array of Objects\n\n```\n\"relations\":[\n  { \n    \"className\": \"String\",\n    \"errorCount\": Number,\n    \"inputIndices\": [Array],\n    \"operation\": \"String\",\n    \"sysId\": \"String\" \n  }\n]\n```\n\n</td></tr><tr><td>\n\n&lt;String&gt;.relations.className\n\n</td><td id=\"entry_return_relations_className\">\n\nSys\\_class\\_name of this dependent relationship CI.Only supported value: cmdb\\_rel\\_ci: CI Relationship table.\n\nData type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.relations.errorCount\n\n</td><td>\n\nNumber of errors.Data type: Number\n\n</td></tr><tr><td>\n\n&lt;String&gt;.relations.inputIndices\n\n</td><td>\n\nIndexes of the corresponding input relations.Data type: Array\n\n</td></tr><tr><td>\n\n&lt;String&gt;.relations.operation\n\n</td><td>\n\nType of operation performed.Possible values:\n\n-   INSERT\n-   UPDATE\n-   NO\\_CHANGE\n\nData type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.relations.sysId\n\n</td><td id=\"entry_return_relations_sys_id\">\n\nSys\\_id of the dependent relationship CI.Data type: String\n\n</td></tr></tbody>\n</table>```\n// Add this code to the onBefore transform map script\n// Call CMDB API to do Identification and Reconciliation of the current row\nvar cmdbUtil = new CMDBTransformUtil();\ncmdbUtil.setDataSource('ImportSet');\ncmdbUtil.identifyAndReconcileEnhanced(source, map, log);\nignore = true;\n\nif (cmdbUtil.hasError()) {\n  var errorMessage = cmdbUtil.getError();\n  log.error(errorMessage);\n} else {\n  log.info('IE Output Payload: ' + cmdbUtil.getOutputPayload());\n  log.info('Imported CI: ' + cmdbUtil.getOutputRecordSysId());\n}\n```\n\n### Scoped equivalent\n\nThere is no scoped equivalent for this method.\n\n## CMDBTransformUtil - getOutputRecordSysId\\(\\)\n\nReturns the sys\\_id of the configuration item \\(CI\\) that was inserted or updated.\n\nUse this method in onBefore transform map scripts.\n\n|Name|Type|Description|\n|----|----|-----------|\n|None| | |\n\n|Type|Description|\n|----|-----------|\n|String|Sys\\_id of the CI that was inserted or updated.|\n\n```\n// Add this code to the onBefore transform map script\n// Call CMDB API to do Identification and Reconciliation of current row\nvar cmdbUtil = new CMDBTransformUtil();\ncmdbUtil.setDataSource('ImportSet');\ncmdbUtil.identifyAndReconcileEnhanced(source, map, log);\nignore = true;\n\nif (cmdbUtil.hasError()) {\n  var errorMessage = cmdbUtil.getError();\n  log.error(errorMessage);\n} else {\n  log.info('IE Output Payload: ' + cmdbUtil.getOutputPayload());\n  log.info('Imported CI: ' + cmdbUtil.getOutputRecordSysId());\n}\n```\n\n### Scoped equivalent\n\nThere is no scoped equivalent for this method.\n\n## CMDBTransformUtil - getPayload\\(Object source, Object map, Object log\\)\n\nReturns the JSON payload generated from the specified input.\n\nYou can then modify the payload and use the setPayload\\(\\) method to store the updated payload. Once the payload is modified and stored, use identifyAndReconcile\\(\\) or identifyAndReconcileEnhanced\\(\\) to process the payload.\n\n|Name|Type|Description|\n|----|----|-----------|\n|source|Object|Global object available in transform map scripts that holds the incoming record.|\n|map|Object|Map object available in transform map scripts that holds the current transform map record.|\n|log|Object|Log object available in transform map scripts.|\n\n<table id=\"id_fm1_n55_4pb\" class=\"returns\"><thead><tr><th>\n\nParameter\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr id=\"row-string-enhanced\"><td>\n\n&lt;String&gt;\n\n</td><td>\n\nJSON formatted string that is a list of results for the configuration items in the input string.Data type: String\n\n```\n{ \n  \"additionalCommittedItems\": [Array],  \n  \"additionalCommittedRelations\": [Array], \n  \"hasError\": Boolean, \n  \"hasWarning\": Boolean,\n  \"items\": [Array],  \n  \"relations\": [Array], \n  \"summary\": {Object} \n}\n```\n\n</td></tr><tr id=\"row_return_additionalCommittedItems\"><td>\n\n&lt;String&gt;.additionalCommittedItems\n\n</td><td>\n\nList of CIs that were committed during the IRE processing of the current payload, but were not present in the current input payload.Data type: Array of Objects\n\n```\n\"additionalCommittedItems\": [\n  {\n    \"className\": \"String\",\n    \"errorCount\": Number,\n    \"operation\": \"String\",\n    \"identificationAttempts\": [Array],\n    \"inputIndices\": [Array],\n    \"markers\": [Array],\n    \"mergedPayloads\": [Array],\n    \"sysId\": \"String\"\n  }\n]\n```\n\n</td></tr><tr id=\"row-return-additionalCommittedItems-className\"><td>\n\n&lt;String&gt;.additionalCommittedItems.className\n\n</td><td>\n\nSys\\_class\\_name of this additional CI.Data type: String\n\n</td></tr><tr id=\"row-return-additionalCommittedItems-errorCount\"><td>\n\n&lt;String&gt;.additionalCommittedItems.errorCount\n\n</td><td>\n\nNumber of errors encountered while processing this additional CI.Data type: Number\n\n</td></tr><tr id=\"row-return-additionalCommittedItems-errors\"><td>\n\n&lt;String&gt;.additionalCommittedItems.errors\n\n</td><td id=\"entry-errors\">\n\nArray of objects that describes errors encountered while processing this additional CI.Data type: Array\n\n```\n\"errors\": [\n  {\n    \"error\": \"String\",\n    \"message\": \"String\"\n  }\n]\n```\n\n</td></tr><tr id=\"row-return-additionalCommittedItems-errors-error\"><td>\n\n&lt;String&gt;.additionalCommittedItems.errors.error\n\n</td><td id=\"entry-errors-error\">\n\nType of error encountered while processing the additional CI.Data type: String\n\n</td></tr><tr id=\"row-return-additionalCommittedItems-errors-message\"><td>\n\n&lt;String&gt;.additionalCommittedItems.errors.message\n\n</td><td id=\"entry-errors-message\">\n\nError message encountered while processing the additional CI.Data type: String\n\n</td></tr><tr id=\"row-return-additionalCommittedItems-identificationAttempts\"><td>\n\n&lt;String&gt;.additionalCommittedItems.identificationAttempts\n\n</td><td id=\"addCommItems_identificationAttempts-entry-IRE\">\n\nArray of objects in which each object describes an attempt made to identify this additional CI.Data type: Array of Objects\n\n```\n\"identificationAttempts\": [\n  {\n    \"attemptResult\": \"String\",\n    \"attributes\": [Array],\n    \"hybridEntryCiAttributes\": [Array],\n    \"identiferName\": \"String\",\n    \"searchOnTable\": [Array]\n  }\n]\n```\n\n</td></tr><tr id=\"row-return-additionalCommittedItems-identificationAttempts-attemptResult\"><td>\n\n&lt;String&gt;.additionalCommittedItems.identificationAttempts.attemptResult\n\n</td><td id=\"addCommItems_idAtt_attemptResult-entry-IRE\">\n\nOutcome of this additional CI identification attempt.Data type: String\n\nPossible values:\n\n-   MATCHED: Identification succeeded. A unique CI was found in the identifier rule table which exactly matched the specified attributes.\n-   MULTI\\_MATCH: Identification failed with an error. Duplicate CIs were found in the identifier rule table when matching against the specified attributes.\n-   NO\\_MATCH: Identification failed. No CI was found in the identifier rule table which matched the specified attributes.\n-   SKIPPED: Identification not attempted. The attributes required for this identifier rule table search were not provided, so the rule was not applied.\n\n</td></tr><tr id=\"row-return-additionalCommittedItems-identificationAttempts-attributes\"><td>\n\n&lt;String&gt;.additionalCommittedItems.identificationAttempts.attributes\n\n</td><td id=\"addCommItems_idAtt_attributes-entry-IRE\">\n\nCI identifier entry attributes used during this additional CI identification attempt.Data type: Array\n\nAttribute names and types depend on the request body data and the identifier in use, such as:\n\n```\n\"attributes\": [\n  \"serial_number\": \"String\",\n  \"serial_number_type\": \"String\",\n]\n```\n\n</td></tr><tr id=\"row-return-additionalCommittedItems-identificationAttempts-hybrid\"><td>\n\n&lt;String&gt;.additionalCommittedItems.identificationAttempts.hybridEntryCiAttributes\n\n</td><td id=\"addCommItems_idAtt_hybridEntryCIAtt-entry-IRE\">\n\nArray of CI identifier entry attributes used during this additional CI identification attempt.Data type: Array\n\nAttribute names and types depend on the request body data and the identifier in use, such as:\n\n```\n\"hybridEntryCiAttributes\": [\n  \"name\": \"String\",\n  \"serial_number\": \"String\"\n]\n```\n\n</td></tr><tr id=\"row-return-additionalCommittedItems-identificationAttempts-identifierName\"><td>\n\n&lt;String&gt;.additionalCommittedItems.identificationAttempts.identifierName\n\n</td><td id=\"addCommItems_idAtt_identifierName-entry-IRE\">\n\nIdentifier rule used for this additional CI identification attempt.Data type: String\n\n</td></tr><tr id=\"row-return-additionalCommittedItems-identificationAttempts-searchOnTable\"><td>\n\n&lt;String&gt;.additionalCommittedItems.identificationAttempts.searchOnTable\n\n</td><td id=\"addCommItems_identifierEntrySysId-entry-IRE\">\n\nName of the table searched for this additional CI identification attempt.Data type: String\n\n</td></tr><tr id=\"row-return-additionalCommittedItems-identifierEntrySysId\"><td>\n\n&lt;String&gt;.additionalCommittedItems.identifierEntrySysId\n\n</td><td id=\"addCommItems_identifierEntrySysId2-entry-IRE\">\n\nSys\\_id for the identifier rule used to identify this additional CI.Notable values - Unknown: Identification of this additional CI failed. See **errors** for details.\n\n</td></tr><tr id=\"row-return-additionalCommittedItems-inputIndices\"><td>\n\n&lt;String&gt;.additionalCommittedItems.inputIndices\n\n</td><td id=\"addCommItems_inputIndices-entry-IRE\">\n\nIndex values for CIs from the request body **items** array that correspond to this additional CI.Data type: Array of Numbers\n\n```\n\"inputIndices\": [\n  {\n    Number\n  }\n]\n```\n\n</td></tr><tr id=\"row-return-additionalCommittedItems-markers\"><td>\n\n&lt;String&gt;.additionalCommittedItems.markers\n\n</td><td id=\"addCommItems_markers-entry-IRE\">\n\nMarker values for internal use.Data type: Array\n\n```\n\"markers\": []\n```\n\n</td></tr><tr id=\"row-return-additionalCommittedItems-mergedPayloads\"><td>\n\n&lt;String&gt;.additionalCommittedItems.mergedPayloads\n\n</td><td id=\"addCommItems_mergedPayloads-entry-IRE\">\n\nSys\\_id values for partial payloads from the CMDB IRE Partial Payloads \\[cmdb\\_ire\\_partial\\_payloads\\] table that were merged during processing of this additional CI.Data type: Array\n\n```\n\"mergedPayloadIds\": [\n  \"String\"\n]\n```\n\n</td></tr><tr id=\"row-return-additionalCommittedItems-operation\"><td>\n\n&lt;String&gt;.additionalCommittedItems.operation\n\n</td><td id=\"addCommItems_operation-entry-IRE\">\n\nOperation performed for this additional CI.Data type: String\n\nPossible values:\n\n-   DELETE: An existing CI is removed from the target table.\n-   INSERT: The additional CI is inserted into the target table as a new record.\n-   NO\\_CHANGE: No operation is performed for the additional CI.\n-   UPDATE: An existing CI in the target table is updated.\n-   UPDATE\\_WITH\\_DOWNGRADE: An existing CI in the target table is updated and its class is changed to a more generic class \\(ancestor class\\).\n-   UPDATE\\_WITH\\_SWITCH: An existing CI in the target table is updated and its class is changed to another class which is not an ancestor or descendent class.\n-   UPDATE\\_WITH\\_UPGRADE: An existing CI in the target table is updated and its class is changed to a more specialized class \\(descendent class\\).\n\n</td></tr><tr id=\"row-return-additionalCommittedItems-sysId\"><td>\n\n&lt;String&gt;.additionalCommittedItems.sysId\n\n</td><td id=\"addCommItems_sysId-entry-IRE\">\n\nSys\\_id found for this additional CI through identification.Data type: String\n\nNotable values - Unknown: Identification of this additional CI failed. See **errors** for details.\n\n</td></tr><tr id=\"row-return-additionalCommittedItems-warnings\"><td>\n\n&lt;String&gt;.additionalCommittedItems.warnings\n\n</td><td id=\"addCommItems_warnings-entry-IRE\">\n\nDescription of warnings encountered while processing this additional CI.Data type: Array of Objects\n\n```\n\"warnings\": [\n  {\n    \"error\": \"String\",\n    \"message\": \"String\"\n  }\n]\n```\n\n</td></tr><tr id=\"row-return-additionalCommittedItems-warnings-error\"><td>\n\n&lt;String&gt;.additionalCommittedItems.warnings.error\n\n</td><td id=\"addCommItems_warnings_error-entry-IRE\">\n\nType of warning encountered while processing this additional CI.Data type: String\n\n</td></tr><tr id=\"row-return-additionalCommittedItems-warnings-message\"><td>\n\n&lt;String&gt;.additionalCommittedItems.warnings.message\n\n</td><td id=\"addCommItems_warnings_message-entry-IRE\">\n\nWarning message encountered while processing this additional CI.Data type: String\n\n</td></tr><tr id=\"row_return_additionalCommittedRelations\"><td>\n\n&lt;String&gt;.additionalCommittedRelations\n\n</td><td id=\"entry_return_additionalCommittedRelations\">\n\nDescription of a dependent relationship CI that was not included in the request body **relations** list to insert or update.Data type: Array of Objects\n\n```\n\"additionalCommittedRelations\": [\n  {\n    \"className\": \"String\",\n    \"inputIndices\": [Array],\n    \"markers\": [Array],\n    \"mergedPayloadIds\": [Array],\n    \"operation\": \"String\"\n  }\n]\n```\n\n</td></tr><tr id=\"row_return_additionalCommittedRelations-className\"><td>\n\n&lt;String&gt;.additionalCommittedRelations.className\n\n</td><td id=\"addCommRel_className-entry-IRE\">\n\nThe sys\\_class\\_name of this additional dependent relationship CI.Data type: String\n\nOnly supported value: cmdb\\_rel\\_ci: The CI Relationship table.\n\n</td></tr><tr id=\"row_return_additionalCommittedRelations-errorCount\"><td>\n\n&lt;String&gt;.additionalCommittedRelations.errorCount\n\n</td><td id=\"addCommRel_errorCount-entry-IRE\">\n\nNumber of errors encountered while processing this additional dependent relationship CI.Data type: Number\n\n</td></tr><tr id=\"row_return_additionalCommittedRelations-errors\"><td>\n\n&lt;String&gt;.additionalCommittedRelations.errors\n\n</td><td id=\"addCommRel_errors-entry-IRE\">\n\nDescription of the errors encountered while processing this additional dependent relationship CI.Data type: Array of Objects\n\n```\n\"errors\": [\n  {\n    \"error\": \"String\",\n    \"message\": \"String\"\n  }\n]\n```\n\n</td></tr><tr id=\"row_return_additionalCommittedRelations-errors-error\"><td>\n\n&lt;String&gt;.additionalCommittedRelations.errors.error\n\n</td><td id=\"addCommRel_errors_error-entry-IRE\">\n\nType of error encountered while processing the additional dependent relationship CI.Data type: String\n\n</td></tr><tr id=\"row_return_additionalCommittedRelations-errors-message\"><td>\n\n&lt;String&gt;.additionalCommittedRelations.errors.message\n\n</td><td id=\"addCommRel_errors_message-entry-IRE\">\n\nError message encountered while processing this additional dependent relationship CI.Data type: String\n\n</td></tr><tr id=\"row_return_additionalCommittedRelations-inputIndices\"><td>\n\n&lt;String&gt;.additionalCommittedRelations.inputIndices\n\n</td><td id=\"addCommRel_inputIndices-entry-IRE\">\n\nIndex values for dependent relationship CI objects in the request body **relations** array that correspond to this additional dependent relationship CI.Data type: Array\n\n```\n\"inputIndices\": [\n  Number\n]\n```\n\n</td></tr><tr id=\"row_return_additionalCommittedRelations-markers\"><td>\n\n&lt;String&gt;.additionalCommittedRelations.markers\n\n</td><td id=\"addCommRel_markers-entry-IRE\">\n\nMarker values for internal use.Data type: Array\n\n```\n\"markers\": []\n```\n\n</td></tr><tr id=\"row_return_additionalCommittedRelations-mergedPayloadIds\"><td>\n\n&lt;String&gt;.additionalCommittedRelations.mergedPayloadIds\n\n</td><td id=\"addCommRel_mergedPayloadIds-IRE\">\n\nSys\\_id values for partial payloads from the CMDB IRE Partial Payloads \\[cmdb\\_ire\\_partial\\_payloads\\] table that were merged for this CI.that were merged during processing of this additional dependent relationship CI.Data type: Array\n\n```\n\"mergedPayloadIds\": [\n  \"String\"\n]\n```\n\n</td></tr><tr id=\"row_return_additionalCommittedRelations-operation\"><td>\n\n&lt;String&gt;.additionalCommittedRelations.operation\n\n</td><td id=\"addCommRel_operations-entry-IRE\">\n\nOperation that was performed for the additional dependent relationship CI.Possible values:\n\n-   INSERT: The dependent relationship CI is inserted into the target table as a new record.\n-   INSERT\\_AS\\_INCOMPLETE: The dependent relationship CI had errors and is inserted into the CMDB IRE Incomplete Payloads \\[cmdb\\_ire\\_incomplete\\_payloads\\] table.\n-   INSERT\\_AS\\_PARTIAL: The dependent relationship CI had errors and is inserted into the CMDB IRE Partial Payloads \\[cmdb\\_ire\\_partial\\_payloads\\] table.\n-   NO\\_CHANGE: No operation is performed for the dependent relationship CI.\n-   UPDATE: An existing dependent relationship CI in the target table is updated.\n\nData type: String\n\n</td></tr><tr id=\"row_return_hasError\"><td>\n\n&lt;String&gt;.hasError\n\n</td><td id=\"entry_return_summary_class_name_hasError\">\n\nFlag that indicates whether any item or relation has errors.Data type: Boolean\n\n</td></tr><tr id=\"row_return_hasWarning\"><td>\n\n&lt;String&gt;.hasWarning\n\n</td><td id=\"entry_return_summary_class_name_hasWarning\">\n\nFlag that indicates whether any item or relation has warnings.Data type: Boolean\n\n</td></tr><tr id=\"row_items_IEES\"><td>\n\n&lt;String&gt;.items\n\n</td><td id=\"items-entry-IRE\">\n\nDescription of the created or updated CIs.Data type: Array of Objects\n\n```\n\"items\": [\n  {  \n    \"additionalRelatedItems\": [Array],\n    \"className\": \"String\",\n    \"duplicateIndices\": [Array],\n    \"errorCount\": Number, \n    \"errors\": [Array], \n    \"identificationAttempts\": [Array], \n    \"identifierEntrySysId\": \"String\",  \n    \"incompleteSysIds\": \"String\",\n    \"info\": [Array],\n    \"inputIndices\": [Array], \n    \"maskedAttributes\": [Array],\n    \"operation\": \"String\", \n    \"partialSysIds\": \"String\", \n    \"relatedItems\": [Array], \n    \"relatedSysIds\": [Array], \n    \"sysId\": \"String\" \n  }\n]\n```\n\n</td></tr><tr id=\"row_return_item_additionalRelatedItems\"><td>\n\n&lt;String&gt;.items.additionalRelatedItems\n\n</td><td id=\"entry_return_item_additionalRelatedItems\">\n\nInformation about additional lookup and related items that were processed but not provided as part of the input payload. These items are from partial payloads.Data type: Array of Objects\n\n```\n\"additionalRelatedItems\": [ \n  {\n    \"className\": \"String\", \n    \"inputIndices\": [Array],\n    \"mergedPayloadIds\": [Array], \n    \"operation\": \"String\",\n    \"sysId\": \"String\"\n  }\n]\n```\n\n</td></tr><tr id=\"row_return_item_additionalRelatedItems_className\"><td>\n\n&lt;String&gt;.items.additionalRelatedItems.className\n\n</td><td id=\"items_addRelItems_className-entry-IRE\">\n\nClass/table name \\(sys\\_class\\_name\\) of the CI that was created or updated.Data type: String\n\n</td></tr><tr id=\"row_return_item_additionalRelatedItems_inputIndices\"><td>\n\n&lt;String&gt;.items.additionalRelatedItems.inputIndices\n\n</td><td id=\"items_addRelItems_inputIndices-entry-IRE\">\n\nIndex values for CIs from the request body **items** array that correspond to this related item.Data type: Array of Numbers\n\n</td></tr><tr id=\"row_return_item_additionalRelatedItems_mergedPayloadIds\"><td>\n\n&lt;String&gt;.items.additionalRelatedItems.mergedPayloadIds\n\n</td><td id=\"entry_return_item_additionalRelatedItems_mergedPayloadIds\">\n\nList of sys\\_ids of the partial payloads that were merged into the related item.Data type: Array\n\nTable: CMDB IRE Partial Payloads \\[cmdb\\_ire\\_partial\\_payloads\\]\n\n</td></tr><tr id=\"row_return_item_additionalRelatedItems_operations\"><td>\n\n&lt;String&gt;.items.additionalRelatedItems.operation\n\n</td><td id=\"entry_return_item_additionalRelatedItems_operations\">\n\nType of operation.Possible values:\n\n-   INSERT: New CI was inserted into the database.\n-   NO\\_CHANGE: No CI changes were made.\n-   UPDATE: Existing CI was updated.\n\nData type: String\n\n</td></tr><tr id=\"row_return_item_additionalRelatedItems_sysId\"><td>\n\n&lt;String&gt;.items.additionalRelatedItems.sysId\n\n</td><td id=\"items_addRelItems_sysId-entry-IRE\">\n\nSys\\_id of the CI that was updated or created.Data type: String\n\n</td></tr><tr id=\"row_return_item_className\"><td>\n\n&lt;String&gt;.items.className\n\n</td><td id=\"entry_return_item_className\">\n\nClass/table name \\(sys\\_class\\_name\\) of the CI that was created or updated.Data type: String\n\n</td></tr><tr id=\"row_return_items_duplicateIndices\"><td>\n\n&lt;String&gt;.items.duplicateIndices\n\n</td><td id=\"entry_return_items_duplicateIndices\">\n\nList of indexes of CIs that are duplicates of the current item.Data type: Array\n\n</td></tr><tr id=\"row_return_item_errorCount\"><td>\n\n&lt;String&gt;.items.errorCount\n\n</td><td id=\"entry_return_item_errorCount\">\n\nNumber of errors encountered while processing the item.Data type: Number\n\n</td></tr><tr id=\"row_return_item_error\"><td>\n\n&lt;String&gt;.items.errors\n\n</td><td id=\"entry_return_item_error\">\n\nList of errors encountered while processing this CI.Data type: Array of Objects\n\n```\n\"errors\": [\n  {\n    \"error\": \"String\",\n    \"message\": \"String\"\n  }\n]\n```\n\n</td></tr><tr id=\"row_return_item_errors-error\"><td>\n\n&lt;String&gt;.items.errors.error\n\n</td><td id=\"items_errors_errors-entry-IRE\">\n\nType of error encountered while processing the CI.Data type: String\n\n</td></tr><tr id=\"row_return_item_errors-message\"><td>\n\n&lt;String&gt;.items.errors.message\n\n</td><td id=\"items_errors_msg-entry-IRE\">\n\nError message associated with the error.Data type: String\n\n</td></tr><tr id=\"row_return_item_identificationAttempts\"><td>\n\n&lt;String&gt;.items.identificationAttempts\n\n</td><td id=\"entry_return_item_identificationAttempts\">\n\nList of attempts that were made to identify the CIs.Data type: Array of Objects\n\n```\n\"identificationAttempts\": [\n  { \n    \"attemptResult\": \"String\", \n    \"attributes\": [Array],\n    \"hybridEntryCiAttributes\": [Array],\n    \"identifierName\": \"String\",\n    \"searchOnTable\": \"String\" \n  }\n]\n```\n\n</td></tr><tr id=\"row_return_item_identificationAttempts_attemptResult\"><td>\n\n&lt;String&gt;.items.identificationAttempts.attemptResult\n\n</td><td id=\"entry_return_item_identificationAttempts_attemptResult\">\n\nResults of the attempt to identify the CI.Possible values:\n\n-   MATCHED: Identification succeeded. A unique CI was found in the identifier rule table which exactly matched the specified attributes.\n-   MULTI\\_MATCH: Identification failed with an error. Duplicate CIs were found in the identifier rule table when matching against the specified attributes.\n-   NO\\_MATCH: Identification failed. No CI was found in the identifier rule table which matched the specified attributes.\n-   SKIPPED: Identification not attempted. The attributes required for this identifier rule table search were not provided, so the rule was not applied.\n\nData type: String\n\n</td></tr><tr id=\"row_return_item_identificationAttempts_attributes\"><td>\n\n&lt;String&gt;.items.identificationAttempts.attributes\n\n</td><td id=\"entry_return_item_identificationAttempts_attributes\">\n\nList of CI identifier entry attributes that were used during the identification process.Data type: Array\n\nAttribute names and types depend on the request body data and the identifier in use, such as:\n\n```\n\"attributes\": [\n  \"serial_number\": \"String\",\n  \"serial_number_type\": \"String\",\n]\n```\n\n</td></tr><tr><td>\n\n&lt;String&gt;items.identificationAttempts.hybridEntryCiAttributes\n\n</td><td id=\"items_identAtt_hyEntCiAtt-IRE\">\n\nList of CI identifier entry attributes that were used during the identification process.Data type: Array\n\nAttribute names and types depend on the request body data and the identifier in use, such as:\n\n```\n\"hybridEntryCiAttributes\": [\n  \"name\": \"String\",\n  \"serial_number\": \"String\"\n]\n```\n\n</td></tr><tr id=\"row_return_item_identificationAttempts_identifierName\"><td>\n\n&lt;String&gt;.items.identificationAttempts.identifierName\n\n</td><td id=\"entry_return_item_identificationAttempts_identifierName\">\n\nIdentifier rule used for this CI identification attempt.Data type: String\n\n</td></tr><tr id=\"row_return_item_identificationAttempts_searchOnTable\"><td>\n\n&lt;String&gt;.items.identificationAttempts.searchOnTable\n\n</td><td id=\"entry_return_item_identificationAttempts_searchOnTable\">\n\nName of the table searched during the identification process.Data type: String\n\n</td></tr><tr id=\"row_return_item_identifierEntrySysId\"><td>\n\n&lt;String&gt;.items.identifierEntrySysId\n\n</td><td id=\"entry_return_item_identifierEntrySysId\">\n\nSys\\_id for the identifier rule used to identify the CI.Data type: String\n\nTable: Identifier Entry \\[cmdb\\_identifier\\_entry\\]\n\n</td></tr><tr id=\"row_return_item_incompleteSysId\"><td>\n\n&lt;String&gt;.items.incompleteSysIds\n\n</td><td id=\"entry_return_item_incompleteSysId\">\n\nIf the item had errors and was saved as an incomplete payload, this parameter contains the sys\\_id of the record in the CMDB IRE Incomplete Payloads \\[cmdb\\_ire\\_incomplete\\_payloads\\] table.Data type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.info\n\n</td><td id=\"items_info-entry-IRE\">\n\nAdditional information about the processing of the item.Data type: Array of Objects\n\n```\n\"info\": [\n  {\n    \"code\": \"String\",\n    \"message\": \"String\",\n    \"ruleSysId\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.info.code\n\n</td><td id=\"items_info_code-entry-IRE\">\n\nReclassification type that was skipped.Possible values:\n\n-   SKIPPED\\_CLASS\\_DOWNGRADE\n-   SKIPPED\\_CLASS\\_SWITCH\n-   SKIPPED\\_CLASS\\_UPGRADE\n\nData type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.info.message\n\n</td><td id=\"items_info_message-entry-IRE\">\n\nMessage that provides additional insights into the reason for skipping the reclassification.Data type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.info.ruleSysId\n\n</td><td id=\"items_info_ruleSysId-entry-IRE\">\n\nSys\\_id of the reclassification restriction rule that was matched. Applicable only when IRE skips reclassification due to reclassification restriction rule. This value is empty if the reclassification is skipped due to a payload or global flag.Data type: String\n\n</td></tr><tr id=\"row_return_items_inputIndices\"><td>\n\n&lt;String&gt;.items.inputIndices\n\n</td><td id=\"entry_return_items_inputIndices\">\n\nIndexes of the corresponding input CI. For top-level items, it is a list of integers. For related or lookup CIs, it is list of JSON objects.Data type: Array of Numbers\n\n</td></tr><tr id=\"row_return_item_maskedAttributes\"><td>\n\n&lt;String&gt;.items.maskedAttributes\n\n</td><td id=\"entry_return_item_maskedAttributes\">\n\nList of attributes whose update by a non-authoritative data source was skipped as defined by the [Reconciliation Rules](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/servicenow-platform/create-reconciliation-rule.md).Data type: Array\n\n</td></tr><tr id=\"row_return_item_operation\"><td>\n\n&lt;String&gt;.items.operation\n\n</td><td id=\"entry_return_item_operation\">\n\nOperation that took place.Possible values:\n\n-   INSERT: New CI was inserted into the database.\n-   INSERT\\_AS\\_INCOMPLETE: Item was saved in cmdb\\_ire\\_incomplete\\_payloads table.\n-   INSERT\\_AS\\_PARTIAL: Item was saved in cmdb\\_ire\\_partial\\_payloads table.\n-   UPDATE: Existing CI was updated.\n-   UPDATE\\_WITH\\_DOWNGRADE: CI was updated and the class changed to a more generic class \\(ancestor class\\).\n-   UPDATE\\_WITH\\_SWITCH: CI was updated and the class changed to a class that is not ancestor or descendent.\n-   UPDATE\\_WITH\\_UPDRADE: CI was updated and the class changed to a more specialized class \\(descendent class\\).\n\nData type: String\n\n</td></tr><tr id=\"row_return_item_partialSysId\"><td>\n\n&lt;String&gt;.items.partialSysIds\n\n</td><td id=\"entry_return_item_partialSysId\">\n\nIf the item had errors and was saved as a partial payload, this parameter contains the sys\\_id of the partial payload record. Data type: String\n\n</td></tr><tr id=\"row_return_item_relatedItems\"><td>\n\n&lt;String&gt;.items.relatedItems\n\n</td><td id=\"entry_return_item_relatedItems\">\n\nList of JSON objects that describe a related CI \\(table lookup CI\\) from the request body **items.lookup** array.Data type: Array of Objects\n\n```\n\"relatedItems\": [\n  { \n    \"className\": \"String\",\n    \"errors\": [Array],\n    \"errorCount\": Number, \n    \"incompleteSysIds\": [Array],\n    \"inputIndices\": [Array],\n    \"mergePayloadIds\": [Array],\n    \"operation\": \"String\",\n    \"partialSysIds\": [Array], \n    \"sysId\": \"String\",\n    \"warningCount\": Number,\n    \"warnings\": [Array]\n  }\n]\n```\n\n</td></tr><tr id=\"row_return_item_relatedItems_className\"><td>\n\n&lt;String&gt;.items.relatedItems.className\n\n</td><td>\n\nClass/table name \\(sys\\_class\\_name\\) of the related item.Data type: String\n\n</td></tr><tr id=\"row_return_item_relatedItems_errors\"><td>\n\n&lt;String&gt;.items.relatedItems.errors\n\n</td><td id=\"entry_return_item_relatedItems_errors\">\n\nList of errors that occurred during processing of the related item.Data type: Array of Objects\n\n```\n\"errors\": [\n  {\n    \"error\": \"String\",\n    \"message\": \"String\"\n  }\n]\n```\n\n</td></tr><tr id=\"row_return_item_relatedItems_errors_error\"><td>\n\n&lt;String&gt;.items.relatedItems.errors.error\n\n</td><td>\n\nType of error encountered while processing the related item.Data type: String\n\n</td></tr><tr id=\"row_return_item_relatedItems_errors-message\"><td>\n\n&lt;String&gt;.items.relatedItems.errors.message\n\n</td><td>\n\nError message associated with the error.Data type: String\n\n</td></tr><tr id=\"row_return_item_relatedItems_errorCount\"><td>\n\n&lt;String&gt;.items.relatedItems.errorCount\n\n</td><td id=\"entry_return_item_relatedItems_errorCount\">\n\nNumber of errors detected while processing the related items.Data type: Number\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.relatedItems.incompleteSysIds\n\n</td><td>\n\nIf the relation had errors and was saved as an incomplete payload, this value is the sys\\_id of the record in the CMDB IRE Incomplete Payloads \\[cmdb\\_ire\\_incomplete\\_payloads\\] table.Data type: String\n\n</td></tr><tr id=\"row_return_item_relatedItems_inputIndices\"><td>\n\n&lt;String&gt;.items.relatedItems.inputIndices\n\n</td><td id=\"entry_return_item_relatedItems_inputIndices\">\n\nIndex of the corresponding input item. For top-level items, it is a list of integers. For related or lookup items, it is list of JSON objects.Data type: Array of Numbers or Array of Objects\n\n```\n\"inputIndices\": [\n  { \n   \"mainIndex\": Number, \n   \"subIndex\": Number \n  }\n]\n```\n\n</td></tr><tr id=\"row_return_item_relatedItems_inputIndices_mainIndex\"><td>\n\n&lt;String&gt;.items.relatedItems.inputIndices.mainIndex\n\n</td><td id=\"entry_return_item_relatedItems_inputIndices.mainIndex\">\n\nIndex value from the request body **items** array that corresponds to the CI parent of the related item. Data type: Number\n\n</td></tr><tr id=\"row_return_item_relatedItems_inputIndices_subIndex\"><td>\n\n&lt;String&gt;.items.relatedItems.inputIndices.subIndex\n\n</td><td id=\"entry_return_item_relatedItems_inputIndices.subIndex\">\n\nIndex value from the request body **items.lookup** array that corresponds to the related item.Data type: Number\n\n</td></tr><tr id=\"row_return_item_relatedItems_mergedPayloadIds\"><td>\n\n&lt;String&gt;.items.relatedItems.mergedPayloadIds\n\n</td><td>\n\nList of sys\\_ids of the partial payloads that were merged into the CI during processing.Data type: Array\n\n</td></tr><tr id=\"row_return_item_relatedItems_operation\"><td>\n\n&lt;String&gt;.items.relatedItems.operation\n\n</td><td>\n\nOperation that took place.Possible values:\n\n-   INSERT: New related CI was inserted into the database.\n-   INSERT\\_AS\\_INCOMPLETE: Item was saved in cmdb\\_ire\\_incomplete\\_payloads table.\n-   INSERT\\_AS\\_PARTIAL: Item was saved in cmdb\\_ire\\_partial\\_payloads table.\n-   NO\\_CHANGE: No related CI changes were made.\n-   UPDATE: Existing related CI was updated.\n-   UPDATE\\_WITH\\_DOWNGRADE: Related CI was updated and the class changed to a more generic class \\(ancestor class\\).\n-   UPDATE\\_WITH\\_SWITCH: Related CI was updated and the class changed to a class that is not ancestor or descendent.\n-   UPDATE\\_WITH\\_UPDRADE: Related CI was updated and the class changed to a more specialized class \\(descendent class\\).\n\nData type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.relatedItems.partialSysIds\n\n</td><td>\n\nIf the related item had errors and was saved as a partial payload, this contains a list of the sys\\_ids of the associated records in the CMDB IRE Partial Payloads \\[cmdb\\_ire\\_partial\\_payloads\\] table.Data type: Array\n\n</td></tr><tr id=\"row_return_item_relatedItems_sysId\"><td>\n\n&lt;String&gt;.items.relatedItems.sysId\n\n</td><td>\n\nSys\\_id of the related item.Data type: String\n\n</td></tr><tr id=\"row_return_item_relatedItems_warningCount\"><td>\n\n&lt;String&gt;.items.relatedItems.warningCount\n\n</td><td>\n\nNumber of warnings encountered when processing the related items.Data type: Number\n\n</td></tr><tr id=\"row_return_item_relatedItems_wrnings\"><td>\n\n&lt;String&gt;.items.relatedItems.warnings\n\n</td><td>\n\nDescription of warnings encountered while processing the related items.Data type: Array of Objects\n\n```\n\"warnings\": [\n  {\n    \"error\": \"String\",\n    \"message\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.relatedItems.warnings.error\n\n</td><td>\n\nType of warning encountered while processing the related item.Data type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.items.relatedItems.warnings.message\n\n</td><td>\n\nMessage associated with the warning.Data type: String\n\n</td></tr><tr id=\"row_return_item_relatedSysIds\"><td>\n\n&lt;String&gt;.items.relatedSysIds\n\n</td><td id=\"entry_return_item_relatedSysIds\">\n\nList of the sys\\_id values of the CIs used during lookup-based identification of related items.Data type: String\n\n</td></tr><tr id=\"row_return_item_sys_id\"><td>\n\n&lt;String&gt;.items.sys\\_id\n\n</td><td id=\"entry_return_item_sys_id\">\n\nSys\\_id of the CI that was updated or created.Data type: String\n\n</td></tr><tr id=\"row_return_relations\"><td>\n\n&lt;String&gt;.relations\n\n</td><td id=\"entry_return_relations\">\n\nDescription of a dependent relationship CI from the request body **relations** array.Data type: Array of Objects\n\n```\n\"relations\": [ \n  { \n    \"className\": \"String\",\n    \"errorCount\": Number,\n    \"errors\": [Array],\n    \"incompleteSysIds\": \"String\",\n    \"inputIndices\": [Array],\n    \"operation\": \"String\",\n    \"partialSysIds\": \"String\",\n    \"sysId\": \"String\" \n  }\n]\n```\n\n</td></tr><tr id=\"row_return_relations_className\"><td>\n\n&lt;String&gt;.relations.className\n\n</td><td id=\"entry_return_relations_className\">\n\nSys\\_class\\_name of this dependent relationship CI.Only supported value: cmdb\\_rel\\_ci: CI Relationship table.\n\nData type: String\n\n</td></tr><tr id=\"row_return_relations_errorsCount\"><td>\n\n&lt;String&gt;.relations.errorCount\n\n</td><td id=\"entry_return_relations_errorsCount\">\n\nNumber of errors encountered when processing the dependent relationship CI.Data type: Number\n\n</td></tr><tr id=\"row_return_relations_errors\"><td>\n\n&lt;String&gt;.relations.errors\n\n</td><td id=\"entry_return_relations_errors\">\n\nList that describes errors that were encountered while processing this dependent relationship CI.Data type: Array of Objects\n\n```\n\"errors\": [\n  {\n    \"error\": \"String\",\n    \"message\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\n&lt;String&gt;.relations.errors.error\n\n</td><td>\n\nType of error encountered while processing the dependent relationship CI.Data type: String\n\n</td></tr><tr><td>\n\n&lt;String&gt;.relations.errors.message\n\n</td><td>\n\nError message encountered while processing this dependent relationship CI.Data type: String\n\n</td></tr><tr id=\"row_return_relations_incompleteSysId\"><td>\n\n&lt;String&gt;.relations.incompleteSysIds\n\n</td><td id=\"entry_return_relations_incompleteSysId\">\n\nIf the relation had errors and was saved as an incomplete payload, this value is the sys\\_id of the record in the CMDB IRE Incomplete Payloads \\[cmdb\\_ire\\_incomplete\\_payloads\\] table.Data type: String\n\n</td></tr><tr id=\"row_return_relations_inputIndices\"><td>\n\n&lt;String&gt;.relations.inputIndices\n\n</td><td id=\"entry_return_relations_inputIndices\">\n\nIndexes for the dependent relationship CI objects in the request body **relations** array that correspond to this dependent relationship CI.Data type: Array\n\n</td></tr><tr id=\"row_return_relations_operation\"><td>\n\n&lt;String&gt;.relations.operation\n\n</td><td id=\"entry_return_relations_operation\">\n\nType of operation performed.Possible values:\n\n-   INSERT: The dependent relationship CI was inserted into the target table as a new record.\n-   INSERT\\_AS\\_INCOMPLETE: The dependent relationship CI had errors and was inserted into the CMDB IRE Incomplete Payloads \\[cmdb\\_ire\\_incomplete\\_payloads\\] table.\n-   INSERT\\_AS\\_PARTIAL: The dependent relationship CI had errors and was inserted into the CMDB IRE Partial Payloads \\[cmdb\\_ire\\_partial\\_payloads\\] table.\n-   NO\\_CHANGE: No operation was performed.\n-   UPDATE: An existing dependent relationship CI in the target table was updated.\n\nData type: String\n\n</td></tr><tr id=\"row_return_relations_partialSysId\"><td>\n\n&lt;String&gt;.relations.partialSysIds\n\n</td><td id=\"entry_return_relations_partialSysId\">\n\nIf the relation had errors and was saved as a partial payload, this value is the sys\\_id of the record in the CMDB IRE Partial Payloads \\[cmdb\\_ire\\_partial\\_payloads\\] table.Data type: String\n\n</td></tr><tr id=\"row_return_relations_sys_id\"><td>\n\n&lt;String&gt;.relations.sysId\n\n</td><td id=\"entry_return_relations_sys_id\">\n\nSys\\_id of the dependent relationship CI.Data type: String\n\n</td></tr><tr id=\"row_return_summary\"><td>\n\n&lt;String&gt;.summary\n\n</td><td id=\"entry_return_summary\">\n\nList of JSON properties that provide statistics on how many items were inserted, updated, and such, per class.Data type: Array\n\n</td></tr><tr id=\"row_return_summary_class_name\"><td>\n\n&lt;String&gt;.summary.&lt;class\\_name&gt;\n\n</td><td id=\"entry_return_summary_class_name\">\n\nStatistics for a specific class.Data type: Object\n\n```\n<class_name>: {\n \"additionalInsertedItemCount\": Number, \n \"errorCount\": Number,\n \"incompleteItemCount\": Number,\n \"insertedItemCount\": Number,\n \"partialItemCount\": Number,\n \"skippedItemCount\": Number,\n \"unchangedItemCount\": Number,\n \"updatedItemCount\": Number,\n \"warningCount\": Number \n}\n```\n\n</td></tr><tr id=\"row_return_summary_class_name_additionalInsertedItemCount\"><td>\n\n&lt;String&gt;.summary.&lt;class\\_name&gt;.additionalInsertedItemCount\n\n</td><td id=\"entry_return_summary_class_name_additionalInsertedItemCount\">\n\nNumber of items inserted due to processing of partial payloads.Data type: Number\n\n</td></tr><tr id=\"row_return_summary_class_name_errorCount\"><td>\n\n&lt;String&gt;.summary.&lt;class\\_name&gt;.errorCount\n\n</td><td id=\"entry_return_summary_class_name_errorCount\">\n\nNumber of errors encounter when processing items.Data type: Number\n\n</td></tr><tr id=\"row_return_summary_class_name_incompleteItemCount\"><td>\n\n&lt;String&gt;.summary.&lt;class\\_name&gt;.incompleteItemCount\n\n</td><td id=\"entry_return_summary_class_name_incompleteItemCount\">\n\nNumber of items inserted in the CMDB IRE Incomplete Payloads \\[cmdb\\_ire\\_incomplete\\_payloads\\] table.Data type: Number\n\n</td></tr><tr id=\"row_return_summary_class_name_insertedItemCount\"><td>\n\n&lt;String&gt;.summary.&lt;class\\_name&gt;.insertedItemCount\n\n</td><td id=\"entry_return_summary_class_name_insertedItemCount\">\n\nNumber of items created.Data type: Number\n\n</td></tr><tr id=\"row_return_summary_class_name_partialItemCount\"><td>\n\n&lt;String&gt;.summary.&lt;class\\_name&gt;.partialItemCount\n\n</td><td id=\"entry_return_summary_class_name_partialItemCount\">\n\nNumber of items saved in the Partial Payload table \\[cmdb\\_ire\\_partial\\_payloads\\].Data type: Number\n\n</td></tr><tr id=\"row_return_summary_class_name_skippedItemCount\"><td>\n\n&lt;String&gt;.summary.&lt;class\\_name&gt;.skippedItemCount\n\n</td><td>\n\nNumber of items that were skipped.Data type: Number\n\n</td></tr><tr id=\"row_return_summary_class_name_unchangedItemCount\"><td>\n\n&lt;String&gt;.summary.&lt;class\\_name&gt;.unchangedItemCount\n\n</td><td id=\"entry_return_summary_class_name_unchangedItemCount\">\n\nNumber of items that had entries but were not modified.Data type: Number\n\n</td></tr><tr id=\"row_return_summary_class_name_updatedItemCount\"><td>\n\n&lt;String&gt;.summary.&lt;class\\_name&gt;.updatedItemCount\n\n</td><td id=\"entry_return_summary_class_name_updatedItemCount\">\n\nNumber of items updated.Data type: Number\n\n</td></tr><tr id=\"row_return_summary_class_name_warningCount\"><td>\n\n&lt;String&gt;.summary.&lt;class\\_name&gt;.warningCount\n\n</td><td id=\"entry_return_summary_class_name_warningCount\">\n\nNumber of items that generated a warning when processed.Data type: Number\n\n</td></tr></tbody>\n</table>This code example shows how to obtain the payload of an ImportSet, where you can then update the payload, and then set the new payload before calling the cmdbUtil.identifyAndReconcileEnhanced\\(\\) method to process the payload.\n\n```\n// Add this code to the onBefore transform map script\n// Ability to modify the payload using get and set APIs\n// Call cmdbUtil API to do Identification and Reconciliation of current row\nvar cmdbUtil = new CMDBTransformUtil();\ncmdbUtil.setDataSource('ImportSet');\nvar payload = cmdbUtil.getPayload(source, map, log);\n// Modify the payload here\ncmdbUtil.setPayload(payload);\ncmdbUtil.identifyAndReconcileEnhanced(source, map, log);\nignore = true;\n \nif (cmdbUtil.hasError()) {\n  var errorMessage = cmdbUtil.getError();\n  log.error(errorMessage);\n} else {\n  log.info('IE Output Payload: ' + cmdbUtil.getOutputPayload());\n  log.info('Imported CI: ' + cmdbUtil.getOutputRecordSysId());\n}\n```\n\n## CMDBTransformUtil - hasError\\(\\)\n\nDetermines if an error occurred in the previous identifyAndReconcile\\(\\) or identifyAndReconcileEnhanced\\(\\) method call.\n\nUse this method in onBefore transform map scripts.\n\n|Name|Type|Description|\n|----|----|-----------|\n|None| | |\n\n<table id=\"table_zr5_swg_gz\" class=\"returns\"><thead><tr><th>\n\nType\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nBoolean\n\n</td><td>\n\nFlag that indicates whether there was an error occurred in the previously called identifyAndReconcile\\(\\) or identifyAndReconcileEnhanced\\(\\) method.Possible values:\n\n-   true: An error occurred\n-   false: No error occurred\n\n</td></tr></tbody>\n</table>```\n// Add this code to the onBefore transform map script\n// Call CMDB API to do Identification and Reconciliation of current row\nvar cmdbUtil = new CMDBTransformUtil();\ncmdbUtil.setDataSource('ImportSet');\ncmdbUtil.identifyAndReconcileEnhanced(source, map, log);\nignore = true;\n\nif (cmdbUtil.hasError()) {\n  var errorMessage = cmdbUtil.getError();\n  log.error(errorMessage);\n} else {\n  log.info('IE Output Payload: ' + cmdbUtil.getOutputPayload());\n  log.info('Imported CI: ' + cmdbUtil.getOutputRecordSysId());\n}\n```\n\n### Scoped equivalent\n\nThere is no scoped equivalent for this method.\n\n## CMDBTransformUtil - identifyAndReconcile\\(Object source, Object map, Object log\\)\n\nInserts or updates a configuration item \\(CI\\) in the Configuration Management Database \\(CMDB\\).\n\nUse this method in onBefore transform map scripts. Using this method instead of relying on the transform to insert or update the configuration item record reduces duplicate entries in the CMDB. For additional information, see [Apply CI Identification and Reconciliation to Import Sets](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/servicenow-platform/identification-import-sets.md).\n\nTo prevent the transform from adding or updating the record a second time, set `ignore = true`.\n\n|Name|Type|Description|\n|----|----|-----------|\n|source|Object|Global object available in transform map scripts that holds the incoming record.|\n|map|Object|Map object available in transform map scripts that holds the current transform map record.|\n|log|Object|Log object available in transform map scripts.|\n\n|Type|Description|\n|----|-----------|\n|void| |\n\nThis code example shows how to call the identifyAndReconcile\\(\\) method to process the current row of the input payload.\n\n```\n// Add this code to the onBefore transform map script\n// Call CMDBTransformUtil API to do Identification and Reconciliation of the current row\nvar cmdbUtil = new CMDBTransformUtil();\ncmdbUtil.identifyAndReconcile(source, map, log);\nignore = true;\n```\n\n## CMDBTransformUtil - identifyAndReconcileEnhanced\\(Object source, Object map, Object log\\)\n\nInserts or updates a configuration item \\(CI\\) in the Configuration Management Database \\(CMDB\\).\n\nIn addition to providing the functionality of the CMDBTransformUtil.identifyAndReconcile\\(\\) method, this method also supports:\n\n-   Handling partial payloads\n-   Handling partial commits\n-   Removing duplicate items within a payload\n-   Generating output summaries\n\nFor additional information on Identification and Reconciliation and more detailed explanations of the data used by this method, see [Identification and Reconciliation \\(IRE\\)](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/servicenow-platform/ire.md).\n\n|Name|Type|Description|\n|----|----|-----------|\n|source|Object|Global object available in transform map scripts that holds the incoming record.|\n|map|Object|Map object available in transform map scripts that holds the current transform map record.|\n|log|Object|Log object available in transform map scripts.|\n\n|Type|Description|\n|----|-----------|\n|None| |\n\nThis code example shows how to call the identifyAndReconcileEnhanced\\(\\) method to process the passed in payload.\n\n```\n// Add this code to the onBefore transform map script\n// Call CMDBTransformUtil API to do Identification and Reconciliation\nvar cmdbUtil = new CMDBTransformUtil();\ncmdbUtil.identifyAndReconcileEnhanced(source, map, log);\nignore = true;\n```\n\n## CMDBTransformUtil - logTransformStats\\(Object log\\)\n\nLogs the number of configuration items \\(CI\\) inserted, updated, skipped, or that had errors.\n\nUse this method in onComplete transform map scripts.\n\n|Name|Type|Description|\n|----|----|-----------|\n|log|Object|Log object available in transform map scripts.|\n\n|Type|Description|\n|----|-----------|\n|void| |\n\n```\nvar cmdbUtil = new CMDBTransformUtil();\ncmdbUtil.logTransformStats(log);\n```\n\n### Scoped equivalent\n\nThere is no scoped equivalent for this method.\n\n## CMDBTransformUtil - setDataSource\\(String source\\)\n\nSets the data source to use when the identifyAndReconcile\\(\\) or identifyAndReconcileEnhanced\\(\\) method is called.\n\nUse this method in `onBefore` transform map scripts. If this method is not called, the default value *ImportSet*.\n\n|Name|Type|Description|\n|----|----|-----------|\n|source|String|Data source for the source configuration item record.|\n\n|Type|Description|\n|----|-----------|\n|void| |\n\n```\n// Add this code to the onBefore transform map script\n// Call CMDB API to do Identification and Reconciliation of current row\nvar cmdbUtil = new CMDBTransformUtil();\ncmdbUtil.setDataSource('ImportSet');\ncmdbUtil.identifyAndReconcileEnhanced(source, map, log);\nignore = true;\n\nif (cmdbUtil.hasError()) {\n  var errorMessage = cmdbUtil.getError();\n  log.error(errorMessage);\n} else {\n  log.info('IE Output Payload: ' + cmdbUtil.getOutputPayload());\n  log.info('Imported CI: ' + cmdbUtil.getOutputRecordSysId());\n}\n```\n\n### Scoped equivalent\n\nThere is no scoped equivalent for this method.\n\n"}}