En esta página

Referencia de API: simulaciones

Las simulaciones permiten ejecutar escenarios hipotéticos en sus modelos de proceso. Puede configurar tiempos de procesamiento, asignaciones de recursos y tasas de llegada para predecir el comportamiento del proceso.

Enumerar las simulaciones de un proceso

Endpoint: GET /v1/tenant/{tenantId}/processes/{processId}/simulations

Autenticación: Clave de API con ámbito de inquilino · ámbito read

Parámetros:

Nombre Tipo Ubicación Obligatorio Descripción
tenantId string ruta Formato: uuid
processId string ruta Formato: uuid
limit integer consulta No Número máximo de elementos que se devolverán
offset integer consulta No Número de elementos que se omitirán

Respuesta (200):

Lista de simulaciones

[
	{
		"id": "00000000-0000-0000-0000-000000000000",
		"displayName": "string",
		"datasetName": "string",
		"startTime": "2024-03-15T16:30:00Z",
		"endTime": "2024-03-15T16:30:00Z",
		"useWarmUp": true
	}
]

Errores:

  • 400 Solicitud incorrecta: por ejemplo, una expresión de filtro no válida, un proceso sin modelo, un tipo de carga no compatible o la ausencia de un campo obligatorio
  • 401 Falta la clave de API, o esta no es válida, está deshabilitada o ha caducado
  • 404 Recurso no encontrado

Crear una simulación (idempotente cuando se proporciona un identificador)

Endpoint: POST /v1/tenant/{tenantId}/processes/{processId}/simulations

Autenticación: Clave de API con ámbito de inquilino · ámbito write

Parámetros:

Nombre Tipo Ubicación Obligatorio Descripción
tenantId string ruta Formato: uuid
processId string ruta Formato: uuid

Cuerpo de la solicitud:

{
	"id": "00000000-0000-0000-0000-000000000000",
	"displayName": "string",
	"datasetName": "string",
	"startTime": "2024-03-15T16:30:00Z",
	"endTime": "2024-03-15T16:30:00Z",
	"useWarmUp": true
}
Campo Tipo Obligatorio Descripción
id string No Identificador opcional para reintentos idempotentes (debe ser un UUID)
Formato: uuid
displayName string No Nombre de la simulación
Valor predeterminado: New Simulation
datasetName string No Nombre del conjunto de datos en el que se ejecuta la simulación
startTime string No Hora de inicio de la simulación
Formato: date-time
endTime string No Hora de finalización de la simulación
Formato: date-time
useWarmUp boolean No Indica si se descarta el periodo de calentamiento
Valor predeterminado: false

Respuesta (201):

Simulación creada

{
	"simulation": {
		"id": "00000000-0000-0000-0000-000000000000",
		"displayName": "string"
	},
	"message": "string"
}
Campo Tipo Obligatorio Descripción
simulation object
message string

Errores:

  • 400 Solicitud incorrecta: por ejemplo, una expresión de filtro no válida, un proceso sin modelo, un tipo de carga no compatible o la ausencia de un campo obligatorio
  • 401 Falta la clave de API, o esta no es válida, está deshabilitada o ha caducado
  • 404 Recurso no encontrado
  • 409 La solicitud entra en conflicto con el estado actual, por ejemplo, por una restricción de licencias o por reutilizar un identificador

Obtener una simulación con sus configuraciones de elementos, atributos y recursos

Endpoint: GET /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}

Autenticación: Clave de API con ámbito de inquilino · ámbito read

Parámetros:

Nombre Tipo Ubicación Obligatorio Descripción
tenantId string ruta Formato: uuid
processId string ruta Formato: uuid
simulationId string ruta Formato: uuid

Respuesta (200):

Detalles de la simulación

{
	"simulation": {
		"id": "00000000-0000-0000-0000-000000000000",
		"displayName": "string",
		"datasetName": "string",
		"startTime": "2024-03-15T16:30:00Z",
		"endTime": "2024-03-15T16:30:00Z",
		"useWarmUp": true
	},
	"elementSettings": [
		{
			"simulationId": "00000000-0000-0000-0000-000000000000",
			"modelElementId": "00000000-0000-0000-0000-000000000000",
			"settings": {
				"processingTimeDistribution": [
					{
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"distribution": {
							"type": "Fixed",
							"value": 0
						},
						"timeUnit": "seconds",
						"rateUnit": "perTimeSlot"
					}
				],
				"processingTimeUnit": "seconds",
				"updateAttributeRules": [
					{
						"id": "string",
						"attributeId": "00000000-0000-0000-0000-000000000000",
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"newValue": "string",
						"isEnabled": true
					}
				],
				"requiredResources": [
					{
						"resourceId": "00000000-0000-0000-0000-000000000000",
						"amount": 0
					}
				],
				"caseStartsDistribution": [
					{
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"distribution": {
							"type": "Fixed",
							"value": 0
						},
						"timeUnit": "seconds",
						"rateUnit": "perTimeSlot"
					}
				],
				"caseStartsTimeUnit": "perTimeSlot",
				"capacityInterval": "perHour",
				"skipChanceDistribution": [
					{
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"distribution": {
							"type": "Fixed",
							"value": 0
						},
						"timeUnit": "seconds",
						"rateUnit": "perTimeSlot"
					}
				],
				"queueStrategy": "fifo",
				"chanceToTakeDistribution": [
					{
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"distribution": {
							"type": "Fixed",
							"value": 0
						},
						"timeUnit": "seconds",
						"rateUnit": "perTimeSlot"
					}
				]
			}
		}
	],
	"attributes": [
		{
			"id": "00000000-0000-0000-0000-000000000000",
			"simulationId": "00000000-0000-0000-0000-000000000000",
			"displayName": "string",
			"valueDistribution": {
				"type": "Number",
				"numberDistributions": [
					{
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"distribution": {
							"type": "Fixed",
							"value": 0
						},
						"timeUnit": "seconds",
						"rateUnit": "perTimeSlot",
						"id": "string",
						"isEnabled": true,
						"isDefault": true
					}
				],
				"textDistributions": [
					{
						"id": "string",
						"timeslot": {
							"periodicity": "Always"
						},
						"isEnabled": true,
						"isDefault": true,
						"mode": "list",
						"textValues": [
							{
								"id": "string",
								"value": "string",
								"chance": 0
							}
						]
					}
				]
			},
			"simulationAttributeType": "string"
		}
	],
	"resources": [
		{
			"id": "00000000-0000-0000-0000-000000000000",
			"simulationId": "00000000-0000-0000-0000-000000000000",
			"displayName": "string",
			"levelDistribution": [
				{
					"timeslot": {
						"periodicity": "Always"
					},
					"conditions": [
						{
							"type": "Values",
							"attribute": "string",
							"values": [
								"string"
							]
						}
					],
					"distribution": {
						"type": "Fixed",
						"value": 0
					},
					"timeUnit": "seconds",
					"rateUnit": "perTimeSlot"
				}
			],
			"attributeId": "00000000-0000-0000-0000-000000000000"
		}
	]
}
Campo Tipo Obligatorio Descripción
simulation object Encabezado de la simulación
elementSettings object[] Configuración de simulación por elemento
attributes object[] Atributos simulados
resources object[] Grupos de recursos

Errores:

  • 400 Solicitud incorrecta: por ejemplo, una expresión de filtro no válida, un proceso sin modelo, un tipo de carga no compatible o la ausencia de un campo obligatorio
  • 401 Falta la clave de API, o esta no es válida, está deshabilitada o ha caducado
  • 404 Recurso no encontrado

Actualizar una simulación (campos o configuraciones de elementos)

Endpoint: PUT /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}

Autenticación: Clave de API con ámbito de inquilino · ámbito write

Parámetros:

Nombre Tipo Ubicación Obligatorio Descripción
tenantId string ruta Formato: uuid
processId string ruta Formato: uuid
simulationId string ruta Formato: uuid

Cuerpo de la solicitud:

{
	"displayName": "string",
	"datasetName": "string",
	"startTime": "2024-03-15T16:30:00Z",
	"endTime": "2024-03-15T16:30:00Z",
	"useWarmUp": true,
	"elementSettings": [
		{
			"modelElementId": "00000000-0000-0000-0000-000000000000",
			"settings": {
				"caseStartsDistribution": [
					{
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"distribution": {
							"type": "Fixed",
							"value": 0
						},
						"timeUnit": "seconds",
						"rateUnit": "perTimeSlot"
					}
				],
				"processingTimeDistribution": [
					{
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"distribution": {
							"type": "Fixed",
							"value": 0
						},
						"timeUnit": "seconds",
						"rateUnit": "perTimeSlot"
					}
				]
			}
		}
	]
}
Campo Tipo Obligatorio Descripción
displayName string No Nombre de la simulación
datasetName string No Nombre del conjunto de datos en el que se ejecuta la simulación
startTime string No Hora de inicio de la simulación
Formato: date-time
endTime string No Hora de finalización de la simulación
Formato: date-time
useWarmUp boolean No Indica si se descarta el periodo de calentamiento
elementSettings object[] No Sobrescrituras de la configuración por elemento

Respuesta (200):

Simulación actualizada

{
	"message": "string"
}
Campo Tipo Obligatorio Descripción
message string

Errores:

  • 400 Solicitud incorrecta: por ejemplo, una expresión de filtro no válida, un proceso sin modelo, un tipo de carga no compatible o la falta de un campo obligatorio
  • 401 Falta la clave de API, no es válida, está deshabilitada o ha caducado
  • 404 Recurso no encontrado

Eliminar definitivamente una simulación

Endpoint: DELETE /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}

Autenticación: Clave de API con alcance de inquilino · write alcance

Parámetros:

Nombre Tipo Ubicación Obligatorio Descripción
tenantId string ruta Formato: uuid
processId string ruta Formato: uuid
simulationId string ruta Formato: uuid

Respuesta (200):

Simulación eliminada

{
	"message": "string"
}
Campo Tipo Obligatorio Descripción
message string

Errores:

  • 400 Solicitud incorrecta: por ejemplo, una expresión de filtro no válida, un proceso sin modelo, un tipo de carga no compatible o la falta de un campo obligatorio
  • 401 Falta la clave de API, no es válida, está deshabilitada o ha caducado
  • 404 Recurso no encontrado

Estos endpoints utilizan IA para generar automáticamente la configuración de la simulación a partir del modelo de proceso.

Generar la configuración de una simulación mediante IA (asíncrono; consulte el endpoint de estado)

Endpoint: POST /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}/generate-settings

Autenticación: Clave de API con alcance de inquilino · write alcance · límite de frecuencia: 2 solicitudes/s (ráfaga de 4)

Parámetros:

Nombre Tipo Ubicación Obligatorio Descripción
tenantId string ruta Formato: uuid
processId string ruta Formato: uuid
simulationId string ruta Formato: uuid

Cuerpo de la solicitud:

{
	"processDescription": "string",
	"additionalContext": "string"
}
Campo Tipo Obligatorio Descripción
processDescription string No
additionalContext string No

Respuesta (200):

Generación iniciada / resultado

{
	"message": "string"
}
Campo Tipo Obligatorio Descripción
message string

Errores:

  • 400 Solicitud incorrecta: por ejemplo, una expresión de filtro no válida, un proceso sin modelo, un tipo de carga no compatible o la falta de un campo obligatorio
  • 401 Falta la clave de API, no es válida, está deshabilitada o ha caducado
  • 404 Recurso no encontrado

Consultar el estado de generación de la configuración de la simulación

Endpoint: GET /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}/generate-settings/status

Autenticación: Clave de API con alcance de inquilino · write alcance

Parámetros:

Nombre Tipo Ubicación Obligatorio Descripción
tenantId string ruta Formato: uuid
processId string ruta Formato: uuid
simulationId string ruta Formato: uuid

Respuesta (200):

Estado de generación

{
	"message": "string"
}
Campo Tipo Obligatorio Descripción
message string

Errores:

  • 400 Solicitud incorrecta: por ejemplo, una expresión de filtro no válida, un proceso sin modelo, un tipo de carga no compatible o la falta de un campo obligatorio
  • 401 Falta la clave de API, no es válida, está deshabilitada o ha caducado
  • 404 Recurso no encontrado

Iniciar una ejecución de simulación (asíncrono; los resultados se guardan en las tablas de datos del proceso)

Endpoint: POST /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}/run

Autenticación: Clave de API con alcance de inquilino · write alcance · límite de frecuencia: 5 solicitudes/s (ráfaga de 10)

Parámetros:

Nombre Tipo Ubicación Obligatorio Descripción
tenantId string ruta Formato: uuid
processId string ruta Formato: uuid
simulationId string ruta Formato: uuid

Respuesta (200):

Simulación iniciada

{
	"message": "string"
}
Campo Tipo Obligatorio Descripción
message string

Errores:

  • 400 Solicitud incorrecta: por ejemplo, una expresión de filtro no válida, un proceso sin modelo, un tipo de carga no compatible o la falta de un campo obligatorio
  • 401 Falta la clave de API, no es válida, está deshabilitada o ha caducado
  • 404 Recurso no encontrado

Obtener el estado de la última ejecución de simulación (derivado de la tabla de datos de salida)

Endpoint: GET /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}/run/status

Autenticación: Clave de API con alcance de inquilino · read alcance

Parámetros:

Nombre Tipo Ubicación Obligatorio Descripción
tenantId string ruta Formato: uuid
processId string ruta Formato: uuid
simulationId string ruta Formato: uuid

Respuesta (200):

Estado de la ejecución

{
	"state": "notStarted",
	"startedAt": "2024-03-15T16:30:00Z",
	"completedAt": "2024-03-15T16:30:00Z",
	"step": "string",
	"casesSimulated": 0,
	"targetCases": 0,
	"eventsGenerated": 0,
	"errorMessage": "string",
	"simulationId": "00000000-0000-0000-0000-000000000000"
}
Campo Tipo Obligatorio Descripción
state notStarted | running | processing | ready | error Valores permitidos: notStarted, running, processing, ready, error
startedAt string No Formato: date-time
completedAt string No Formato: date-time
step string No
casesSimulated number No
targetCases number No
eventsGenerated number No
errorMessage string No
simulationId string Formato: uuid

Errores:

  • 400 Solicitud incorrecta: por ejemplo, una expresión de filtro no válida, un proceso sin modelo, un tipo de carga no compatible o la falta de un campo obligatorio
  • 401 Falta la clave de API, no es válida, está deshabilitada o ha caducado
  • 404 Recurso no encontrado