Relación entre ASMS y ServiceNow
Para realizar la integración es necesario relacionar la información de Aranda ASMS y ServiceNow por medio de la sección “case” del archivo de configuración.
Estructura del json
{
"case": [
{
"externalIdField": "",
"table": "",
"definition": {
"itemType": "",
"applicant": {
"key": "",
"searchBy": "",
"type": "",
"defaultValue": {
"id": 0,
"value": ""
},
"onError": [
{
"action": "",
"message": ""
}
]
},
"category": {
"key": "",
"searchBy": "",
"type": ""
},
"ci": {
"key": "",
"searchBy": "",
"type": "",
"defaultValue": {
"id": 0,
"value": ""
},
"onError": [
{
"action": "",
"message": ""
}
]
},
"project": {
"key": "",
"searchBy": "",
"type": ""
},
"responsible": {
"key": "",
"searchBy": "",
"type": "",
"defaultValue": {
"id": 0,
"value": ""
},
"onError": [
{
"action": "",
"message": ""
}
]
},
"responsibleGroup": {
"key": "",
"searchBy": "",
"type": "",
"defaultValue": {
"id": 0,
"value": ""
},
"onError": [
{
"action": "",
"message": ""
}
]
},
"service": {
"key": "",
"searchBy": "",
"type": ""
},
"typeRegister": {
"key": "",
"searchBy": "",
"type": "",
"defaultValue": {
"id": 0,
"value": ""
},
"onError": [
{
"action": "",
"message": ""
}
]
},
"providers": {
"key": "",
"searchBy": "",
"type": "",
"defaultValue": {
"id": 0,
"value": ""
},
"onError": [
{
"action": "",
"message": ""
}
]
},
"organizationalArea": {
"key": "",
"searchBy": "",
"type": "",
"defaultValue": {
"id": 0,
"value": ""
},
"onError": [
{
"action": "",
"message": ""
}
]
}
}
}
]
}
Propiedades :
Propiedades | Descripción |
---|---|
table | Entidad o clase (tabla) a la que se hace referencia en ServiceNow, entidades soportadas incident, problem y change_request |
externalIdField | Campo donde se almacenará el identificador del caso de ASMS en ServiceNow |
definition | Permite relacionar los campos del caso de ASMS con los campos en ServiceNow |
definition
Para realizar la integración es necesario relacionar los campos del caso en Aranda ASMS con el Caso en ServiceNow mediante la sección “definition” del archivo de configuración.
Propiedades:
Propiedades | Descripción |
---|---|
itemType | Tipo de caso en ASMS al que se asocia esta definición; en la vista de creación podrá visualizar el nombre del campo como “tipo”. Los tipos soportados son Incidents, Problem, Change, ServiceCall, Release |
typeRegister | Representa el campo Tipo de registro del caso en Aranda y permite relacionar este campo con un campo equivalente de las clases (incident, problem, change_request) en ServiceNow. |
service | Representa el campo Servicio del caso en Aranda y permite relacionar este campo con un campo equivalente de las clases (incident, problem, change_request) en ServiceNow. |
project | Representa el campo Proyecto del caso en Aranda, permite relacionar este campo con otro campo equivalente de las clases (incident, problem, change_request) en ServiceNow. |
responsibleGroup | Representa el campo Grupo responsable del caso en Aranda y permite relacionar este campo con un campo equivalente de las clases (incident, problem, change_request) en ServiceNow. |
responsible | Representa el campo Responsable del caso en Aranda y permite relacionar este campo con un campo equivalente de las clases (incident, problem, change_request) en ServiceNow. |
category | Representa el campo Categoría del caso en Aranda y permite relacionar este campo con un campo equivalente de las clases (incident, problem, change_request) en ServiceNow. |
applicant | Representa el campo Solicitante del caso en Aranda y permite relacionar este campo con un campo equivalente de las clases (incident, problem, change_request) en ServiceNow. |
ci | Representa el campo CI del caso en Aranda y permite relacionar este campo con un campo equivalente de las clases (incident, problem, change_request) en ServiceNow. |
company | Representa el campo Compañía del caso en Aranda y permite relacionar este campo con un campo equivalente de las clases (incident, problem, change_request) en ServiceNow. |
client | Representa el campo Cliente del caso en Aranda y permite relacionar este campo con un campo equivalente de las clases (incident, problem, change_request) en ServiceNow. |
providers | Representa el campo Proveedores del caso en Aranda y permite relacionar este campo con un campo equivalente de las clases (incident, problem, change_request) en ServiceNow. |
organizationalArea | Representa el campo Area Organizacional del caso en Aranda y permite relacionar este campo con un campo equivalente de las clases (incident, problem, change_request) en ServiceNow. |
Caso en ASMS: Ilustración de referencia, información del cliente de los casos en la plataforma ASMS
Caso en ASMS parte 2: Ilustración de referencia, información básica de los casos en la plataforma ASMS
propiedades internas
{
"key": "",
"searchBy": "",
"type": "",
"defaultValue": {
"id": 0,
"value": ""
},
"onError": [
{
"action": "",
"message": ""
}
]
}
A continuación se describen las propiedades que son utilizadas dentro de los objetos typeRegister, service, project, responsibleGroup, responsible, category, providers, organizationalArea y applicant:
Propiedades | Descripción | |
---|---|---|
type | Tipo de asociación; los tipos soportados son Value, Mapper, FieldValue | FieldValue, Value, Mapper. |
key | Nombre o identificador del campo en ServiceNow donde se buscará y actualizará el valor. | Tipo de propiedades en ServiceNow |
searchBy | Si el campo es de tipo Reference (referencia a otra clase) debe incluir el nombre por el que se buscará en la referencia. | |
onError | Permite ejecutar una acción si no se encuentra el item en la plataforma | ver |
defaultValue | Permite agregar un campo por defecto. | ver |
Tipos de relación o asociación de campos
A continuación podrá visualizar información sobre el funcionamiento de los tipos en la propiedad type descrita en el cuadro anterior.
Nombre | Descripción | Ejemplo |
---|---|---|
Value | Permite asignar un valor al campo seleccionado a través del archivo de configuración. Se requiere que el valor esté en las propiedades de relación de valores | ver ejemplo |
Mapper | Busca asociar y/o relacionar los valores de la CMDB de Aranda con los valores de la CMDB de ServiceNow el campo indicado en la propiedad key en ServiceNow, la relación de valores se hace 1 a 1, no se admite que la asignación se repita | ver ejemplo |
FieldValue | Los valores de las propiedades se envían directamente entre plataformas sin ningún tipo de asociación/relación, para los campos tipo “Reference” en ServiceNow se requiere escribir el campo que se tomará y procesara para ser enviado a la plataforma de Aranda, este campo debe escribirlo en la propiedad “searchBy” | ver ejemplo |
Propiedad “onError”
-
El array onError permite ejecutar una acción si no se encuentra el item en la plataforma; repetir una acción genera error.
-
Las acciones que puede ejecutar si no encuentra el item buscado en la plataforma son:
“Crea una nota en la plataforma” (createNote), en la propiedad onError.message permite personalizar el mensaje que se mostrará en la nota. Se recomienda agregar los siguientes caracteres “{0}” que se reemplazarán por el ID del item que se está buscando.
“Retornar error al consumir el API de integración” (returnError), en la propiedad onError.message permite personalizar el mensaje que se mostrara en el mensaje de error, se recomienda agregar los siguientes caracteres “{0}” que reemplazarán por el ID del item que se esta buscando.
Propiedad “defaultValue”
-
La propiedad defaultValue permite agregar valores por defecto, si agrega esta propiedad con el valor de true, el sistema solicita agregar el valor por defecto dentro de las propiedades destinadas para la relación de valores.
-
Para los campos “project, service, category”, no s podrá agregar un valor por defecto por ser valores requeridos para la creación del caso y es necesario establecer una relación con los valores de ServiceNow.
-
Sólo se puede agregar un valor por defecto si el tipo de mapeo es “Mapper” o “FieldValue”.
Ejemplo:
- Asigne el valor “incident” en la propiedad table:
- En la definición del case tome la propiedad Responsable (responsible)
- “type”: Asigne el tipo de asociación como FieldValue:
- “key”: Asigne el nombre de la propiedad en ServiceNow como assigned_to, las propiedades pueden ser de tipo Reference, Choice, Data ( Tipo de propiedades en ServiceNow):
- “defaultValue”: Asigne la propiedad defaultValue:
{
"case": [
{
"table": "incident",
"definition": {
"itemType": "ServiceCall",
"responsible": {
"key": "assigned_to",
"type": "FieldValue",
"defaultValue": {
"id": 222,
"value": "sys_id_usuario_servicenow"
}
}
}
}
]
}
⚐ Nota: Se recomienda escribir el sys_id (si es un Reference) o el “value” (si es un Choice) del usuario a relacionar.***
Ejemplo tipo Value
- Asigne el valor “incident” en la propiedad table:
- En la definición del case tome la propiedad Solicitante (applicant) y asigne el tipo de asociación como Value:
{ "case": [ { "table": "incident", "definition": { "applicant": { "type": "Value" } } } ] }
- La relación implica que debe asignarse un valor de forma común para todos los casos, esto se logra mediante la propiedad “applicant”, como se muestra a continuación:
{ "case": [ { "table": "incident", "definition": { "applicant": { "type": "Value" } } } ], "applicant": [ { "reference": "", "id": 10 } ] }
- Asigne un valor a la propiedad “applicant.reference”:
{ "case": [ { "table": "incident", "definition": { "applicant": { "type": "Value" } } } ], "applicant": [ { "reference": "ref_incident", "id": 10 } ] }
- El tipo de asociación tipo “Value” requiere asignar las propiedades básicas (project, service, category) con un tipo de asociación “Mapper”:
- Asigne la propiedad “case.category”.
- Asigne la propiedad “category.reference” con el mismo valor que asignó en “applicant.reference”.
{
"case": [
{
"table": "incident",
"definition": {
"applicant": {
"type": "Value"
},
"category": {
"key": "category",
"type": "Mapper"
}
}
}
],
"applicant": [
{
"reference": "ref_incident",
"id": 10
}
],
"category": [
{
"reference": "ref_incident",
"id": 222,
"value": "value_category_servicenow"
}
]
}
⚐ Nota: Los casos asignados a la clase “incident” en ASMS se les asignará el solicitante con Id 10.***
Ejemplo tipo Mapper
- Asigne el valor “incident” en la propiedad table:
- En la definición del case tome la propiedad Solicitante (applicant)
- “type”: Asigne el tipo de asociación como Mapper:
- “key”: Asigne el nombre de la propiedad en ServiceNow como model_id, las propiedades pueden ser de tipo Reference, Choice, Data (Tipo de propiedades en ServiceNow):
{ "case": [ { "table": "incident", "definition": { "applicant": { "type": "Mapper", "key": "model_id" } } } ] }
- La relación implica que debe asociarse los solicitantes de la mesa de Aranda (ASMS) con los solicitantes de ServiceNow; se recomienda escribir el sys_id del solicitante a relacionar , como se muestra a continuación:
{ "case": [ { "table": "incident", "definition": { "applicant": { "type": "Value" } } } ], "applicant": [ { "table": "incident", "mapping": [ { "id":5, "value": "sys_id_solicitante_servicenow" } ] } ] }
⚐ Nota: Se relaciona el solicitante con Id “5” de la mesa de Aranda (ASMS) con el solicitante “sys_id_solicitante_servicenow” en la CMDB de ServiceNow***
Ejemplo tipo FieldValue
- Asigne el valor “incident” en la propiedad table:
- En la definición del case tome la propiedad Solicitante (applicant)
- “type”: Asigne el tipo de asociación como FieldValue:
- “key”: Asigne el nombre de la propiedad en ServiceNow como model_id; las propiedades pueden ser de tipo Reference, Choice, Data (Tipo de propiedades en ServiceNow); la propiedad asignada es de tipo Reference; este tipo de propiedad requiere que el campo searchBy se le asigne un valor (nombre por el que se buscara en la entidad Referenciada):
- “searchBy”: Asigne el nombre de la propiedad con la que se buscará en la entidad referenciada:
{ "case": [ { "table": "incident", "definition": { "applicant": { "type": "FieldValue", "key": "model_id", "searchBy": "name" } } } ] }
⚐ Nota: Las propiedades referenciadas a otras clases (tablas) en ServiceNow están compuestas por diferentes propiedades. Para permitir la búsqueda del item se requiere especificar el nombre de este campo. En la búsqueda del item se usa el nombre/display del item de la mesa (ASMS) hacia terceros; no se utiliza el id u otra propiedad; si en la CMDB de ServiceNow existen muchos elementos con el mismo nombre, seleccione el tipo de relación como “Mapper”, para relacionarlos los items por IDs - sys_id.***