A classe “core_company” é exigida por diferentes classes do ServiceNow, no arquivo de configuração em que ela é referenciada, use o “mappingName” para designar como obterá seus valores de acordo com o campo que se refere a esta classe. Os atributos que são levados em consideração são os seguintes:
- Nome
- Fabricante
- Fornecedor

Os atributos da classe “core_company” mapeados para o arquivo de configuração assumem esta forma:
{
"searchBy": [
"name"
],
"name": "core_company",
"fields": [
{
"type": "string",
"name": "name",
"mappingType": "Mapper",
"mappingName": null,
"isRequired": true,
"classReference": null
},
{
"type": "boolean",
"name": "manufacturer",
"mappingType": "Data",
"mappingName": null,
"isRequired": false,
"classReference": null
},
{
"type": "boolean",
"name": "vendor",
"mappingType": "Data",
"mappingName": null,
"isRequired": false,
"classReference": null
}
]
}
É importante notar que esta classe tem propriedades de “mappingType” = “Dados”, esse tipo de valor será registrado no “dataReference” no arquivo de configuração.
Escreva a classe no arquivo de configuração com a classe que faz referência a ela, nesta classe “cmdb_ci_computer”
{
"dataReference": [
],
"mapper": [
],
"classCMDB": [
{
"searchBy": [
"object_id"
],
"name": "cmdb_ci_computer",
"fields": [
{
"type": "string",
"name": "manufacturer",
"mappingType": "Reference",
"mappingName": "CompanyManufactureReference",
"isRequired": false,
"classReference": "core_company"
},
{
"type": "string",
"name": "company",
"mappingType": "Reference",
"mappingName": "CompanyOwnerReference",
"isRequired": false,
"classReference": "core_company"
}
]
},
{
"searchBy": [
"name"
],
"name": "core_company",
"fields": [
{
"type": "string",
"name": "name",
"mappingType": "Mapper",
"mappingName": null,
"isRequired": true,
"classReference": null
},
{
"type": "boolean",
"name": "manufacturer",
"mappingType": "Data",
"mappingName": null,
"isRequired": false,
"classReference": null
},
{
"type": "boolean",
"name": "vendor",
"mappingType": "Data",
"mappingName": null,
"isRequired": false,
"classReference": null
}
]
}
]
}
A classe “core_company” é referenciada duas vezes. Isso não implica duplicar a classe na propriedade “classCMDB”, é adicionado apenas uma vez usando o comando “mappingName” que faz referência a “dataReference” e “mapper” para obter os valores da seguinte maneira:
- EmpresaFabricanteReferência
- CompanyOwnerReference
{
"dataReference": [
],
"mapper": [
],
"classCMDB": [
{
"searchBy": [
"object_id"
],
"name": "cmdb_ci_computer",
"fields": [
{
"type": "string",
"name": "manufacturer",
"mappingType": "Reference",
"mappingName": "CompanyManufactureReference",
"isRequired": false,
"classReference": "core_company"
},
{
"type": "string",
"name": "company",
"mappingType": "Reference",
"mappingName": "CompanyOwnerReference",
"isRequired": false,
"classReference": "core_company"
}
]
}
]
}
Para resolver o valor do “mappingName”: “CompanyOwnerReference” será criado estaticamente para todos os dispositivos relacionados ao “cmdb_ci_computer”; O valor que o atributo assumirá é registrado “fieldCMDB”: “nome” da classe “core_company” em “dataReference” da seguinte maneira:
{
"dataReference": [
{
"name": "CompanyOwnerReference",
"fields": [
{
"value": "Aranda Software",
"fieldCMDB": "name",
"classDevice": [
"Desktop"
]
},
{
"value": "false",
"fieldCMDB": "manufacturer",
"classDevice": [
"Desktop"
]
},
{
"value": "false",
"fieldCMDB": "vendor",
"classDevice": [
"Desktop"
]
}
]
}
],
"mapper": [
],
"classCMDB": [
]
}
Ele é adicionado dessa forma porque as APIs do Aranda DEVIDCE MANAGEMENT ADM não trazem as informações da empresa do proprietário.
Juntando todas as configurações:
{
"dataReference": [
{
"name": "CompanyManufactureReference",
"fields": [
{
"value": "false",
"fieldCMDB": "manufacturer",
"classDevice": [
"Desktop"
]
},
{
"value": "false",
"fieldCMDB": "vendor",
"classDevice": [
"Desktop"
]
}
]
},
{
"name": "CompanyOwnerReference",
"fields": [
{
"value": "Aranda Software",
"fieldCMDB": "name",
"classDevice": [
"Desktop"
]
},
{
"value": "false",
"fieldCMDB": "manufacturer",
"classDevice": [
"Desktop"
]
},
{
"value": "false",
"fieldCMDB": "vendor",
"classDevice": [
"Desktop"
]
}
]
}
],
"mapper": [
{
"name": "CompanyManufactureReference",
"fields": [
{
"fieldDevice": "manufacturer",
"fieldCMDB": "name"
}
]
}
],
"classCMDB": [
{
"searchBy": [
"object_id"
],
"name": "cmdb_ci_computer",
"fields": [
{
"type": "string",
"name": "manufacturer",
"mappingType": "Reference",
"mappingName": "CompanyManufactureReference",
"isRequired": false,
"classReference": "core_company"
},
{
"type": "string",
"name": "company",
"mappingType": "Reference",
"mappingName": "CompanyOwnerReference",
"isRequired": false,
"classReference": "core_company"
}
]
},
{
"searchBy": [
"name"
],
"name": "core_company",
"fields": [
{
"type": "string",
"name": "name",
"mappingType": "Mapper",
"mappingName": null,
"isRequired": true,
"classReference": null
},
{
"type": "boolean",
"name": "manufacturer",
"mappingType": "Data",
"mappingName": null,
"isRequired": false,
"classReference": null
},
{
"type": "boolean",
"name": "vendor",
"mappingType": "Data",
"mappingName": null,
"isRequired": false,
"classReference": null
}
]
}
]
}
Exibir mapeamento de classe Ci ↪