Configurar dependencias entre campos adicionales
Detalles de la petición
- URL Base: {host}/ASMSAPI/
- Uri: /api/v9/additionalsfields/dependents/load
- Tipo: POST
- Encabezados requeridos:
- content-type: application/json
- X-Authorization: Bearer {token}
Descripción de la URL
- {host}: Representa el dominio del ambiente en el que se encuentra la API.
- ASMSAPI/: Prefijo fijo de la API.
- Uri: Endpoint específico para la petición.
⚐ EJEMPLO URL:
https://{host}/ASMSAPI/api/v9/additionalsfields/dependents/load
Parámetros del cuerpo de la petición
| Nombre | Tipo de dato | Obligatorio | Descripción |
|---|---|---|---|
| dependencies | Lista | Sí | Array de objetos que define las dependencias a configurar. Se pueden enviar múltiples dependencias en una sola petición. |
| sourceFieldId | Número | Sí | Identificador del campo padre. Solo se permiten campos tipo List, CatalogList y CheckBox. |
| triggerValueId | Número | Sí | Identificador del valor del campo padre que activa la dependencia. Para campos tipo List y CatalogList se obtiene del endpoint de consulta de valores. Para campos tipo CheckBox el valor es siempre 1 (verdadero). |
| targetFieldId | Número | Sí | Identificador del campo hijo que se activa cuando el campo padre tiene el valor definido en triggerValueId. |
| visible | Booleano | Sí | Indica si el campo hijo es visible cuando se activa la dependencia. |
| editable | Booleano | Sí | Indica si el campo hijo es editable cuando se activa la dependencia. |
| mandatory | Booleano | Sí | Indica si el campo hijo es obligatorio cuando se activa la dependencia. |
| inheritValues | Booleano | Sí | Indica si el campo hijo tipo ShortText hereda automáticamente la clave (key) del valor seleccionado en el campo padre tipo CatalogList. Solo aplica cuando el campo hijo es tipo ShortText. |
| filteredValueIds | Lista | No | Array de identificadores de los valores del campo hijo que se mostrarán cuando se active la dependencia. Si se envía vacío, el campo hijo muestra todos sus valores disponibles. Solo aplica para campos hijo tipo List y CatalogList. |
⚐ NOTA:
- Un campo hijo solo puede tener un único campo padre. Si se intenta configurar un campo hijo que ya tiene otro padre asignado, la dependencia retornará
success: false.- El campo padre y el campo hijo deben pertenecer al mismo modelo y al mismo tipo de caso. Z- El campo padre no puede ser el mismo que el campo hijo.
- Solo los campos tipo List, CatalogList y CheckBox pueden actuar como campo padre.
- Solo puede existir un campo ShortText con inheritValues=true por combinación de sourceFieldId + triggerValueId.
- Si se reenvía una dependencia existente (mismo sourceFieldId + targetFieldId + triggerValueId), el sistema realiza un upsert: actualiza las propiedades y reemplaza los filteredValueIds existentes.
- El procesamiento es independiente por ítem: si una dependencia falla, las demás se procesan correctamente.
Auto-corrección de propiedades
El sistema aplica las siguientes correcciones automáticas cuando se envían combinaciones incoherentes de visible, editable y mandatory:
| Combinación enviada | Resultado persistido |
|---|---|
| mandatory=true, visible=false, editable=false | visible=true, editable=true, mandatory=true |
| editable=true, visible=false | visible=true, editable=true |
| visible=false, editable=false, mandatory=false | visible=false, editable=false, mandatory=false |
⚐ NOTA: Para campos tipo CheckBox como campo padre, el endpoint acepta el envío de
filteredValueIdsy las propiedades visible, editable y mandatory, sin embargo esta configuración no tiene repercusión en las consolas Specialist y Customer. Desde la consola Administrator no es posible configurar valores filtrados ni propiedades para dependencias de campos tipo CheckBox.
Cuerpo de la petición
Dependencia List → List con filteredValueIds:
{
"dependencies": [
{
"sourceFieldId": 543,
"triggerValueId": 494,
"targetFieldId": 544,
"visible": true,
"editable": true,
"mandatory": true,
"inheritValues": false,
"filteredValueIds": [497, 498, 499]
}
]
}
Dependencia CatalogList → ShortText con inheritValues:
{
"dependencies": [
{
"sourceFieldId": 545,
"triggerValueId": 81,
"targetFieldId": 546,
"visible": true,
"editable": true,
"mandatory": false,
"inheritValues": true,
"filteredValueIds": []
}
]
}
Dependencia CheckBox → List:
{
"dependencies": [
{
"sourceFieldId": 552,
"triggerValueId": 1,
"targetFieldId": 544,
"visible": true,
"editable": true,
"mandatory": false,
"inheritValues": false,
"filteredValueIds": []
}
]
}
Múltiples dependencias en una sola petición:
{
"dependencies": [
{
"sourceFieldId": 543,
"triggerValueId": 494,
"targetFieldId": 544,
"visible": true,
"editable": true,
"mandatory": true,
"inheritValues": false,
"filteredValueIds": [497, 498]
},
{
"sourceFieldId": 543,
"triggerValueId": 495,
"targetFieldId": 544,
"visible": true,
"editable": true,
"mandatory": true,
"inheritValues": false,
"filteredValueIds": [500]
}
]
}
Respuesta
{
"content": [
{
"errorMessage": null,
"sourceFieldId": 543,
"success": true,
"targetFieldId": 544,
"triggerValueId": 494
}
],
"totalItems": 1
}
Parámetros Response
| Nombre | Tipo de dato | Descripción |
|---|---|---|
| totalItems | Número | Total de dependencias procesadas en la petición. |
| content | Lista | Listado con el resultado de cada dependencia enviada. |
| sourceFieldId | Número | Identificador del campo padre enviado en la petición. |
| targetFieldId | Número | Identificador del campo hijo enviado en la petición. |
| triggerValueId | Número | Identificador del valor disparador enviado en la petición. |
| success | Booleano | Indica si la dependencia fue configurada exitosamente. Si es false, el campo errorMessage describe el motivo. |
| errorMessage | Texto | Descripción del error cuando success es false. Su valor es null cuando la operación es exitosa. |
Mensajes de error
| Código | Estado HTTP | Mensaje de error |
|---|---|---|
| 200 | OK | success: false — Source field {id} not found or deleted |
| 200 | OK | success: false — Source and target field cannot be the same |
| 200 | OK | success: false — Source field type '{tipo}' is not valid. Must be List, CatalogList or CheckBox |
| 200 | OK | success: false — Trigger value {id} does not exist in source field {id} |
| 200 | OK | success: false — inheritValues is only valid for target fields of type ShortText, but target is '{tipo}' |
| 200 | OK | success: false — Only one ShortText with inheritValues=true is allowed per source+triggerValue in a single request (source {id}, triggerValue {id}) |
| 200 | OK | success: false — Source field model ({id}) does not match target field model ({id}) |
| 401 | Unauthorized | Token no proporcionado o expirado. |
| 500 | InternalServerError | FailureLoadDependentFields |