Sur cette page

Référence de l’API : simulations

Les simulations vous permettent de tester des scénarios « et si » sur vos modèles de processus. Configurez les durées de traitement, l’affectation des ressources et les taux d’arrivée pour prévoir le comportement du processus.

Lister les simulations d’un processus

Point de terminaison : GET /v1/tenant/{tenantId}/processes/{processId}/simulations

Authentification : Clé API limitée à l’environnement · portée read

Paramètres :

Nom Type Emplacement Obligatoire Description
tenantId string chemin Oui Format : uuid
processId string chemin Oui Format : uuid
limit integer requête Non Nombre maximal d’éléments à renvoyer
offset integer requête Non Nombre d’éléments à ignorer

Réponse (200) :

Liste des simulations

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

Erreurs :

  • 400 Requête incorrecte : par exemple, expression de filtre invalide, processus sans modèle, type d’importation non pris en charge ou champ obligatoire manquant
  • 401 Clé API manquante, invalide, désactivée ou expirée
  • 404 Ressource introuvable

Créer une simulation (opération idempotente si un identifiant est fourni)

Point de terminaison : POST /v1/tenant/{tenantId}/processes/{processId}/simulations

Authentification : Clé API limitée à l’environnement · portée write

Paramètres :

Nom Type Emplacement Obligatoire Description
tenantId string chemin Oui Format : uuid
processId string chemin Oui Format : uuid

Corps de la requête :

{
	"id": "00000000-0000-0000-0000-000000000000",
	"displayName": "string",
	"datasetName": "string",
	"startTime": "2024-03-15T16:30:00Z",
	"endTime": "2024-03-15T16:30:00Z",
	"useWarmUp": true
}
Champ Type Obligatoire Description
id string Non Identifiant facultatif pour les nouvelles tentatives idempotentes (doit être un UUID)
Format : uuid
displayName string Non Nom de la simulation
Valeur par défaut : New Simulation
datasetName string Non Nom du jeu de données utilisé pour la simulation
startTime string Non Heure de début de la simulation
Format : date-time
endTime string Non Heure de fin de la simulation
Format : date-time
useWarmUp boolean Non Indique s’il faut exclure la période de montée en régime
Valeur par défaut : false

Réponse (201) :

Simulation créée

{
	"simulation": {
		"id": "00000000-0000-0000-0000-000000000000",
		"displayName": "string"
	},
	"message": "string"
}
Champ Type Obligatoire Description
simulation object Oui
message string Oui

Erreurs :

  • 400 Requête incorrecte : par exemple, expression de filtre invalide, processus sans modèle, type d’importation non pris en charge ou champ obligatoire manquant
  • 401 Clé API manquante, invalide, désactivée ou expirée
  • 404 Ressource introuvable
  • 409 La requête est incompatible avec l’état actuel (par exemple, une restriction liée à une licence utilisateur ou un identifiant déjà utilisé)

Récupérer une simulation avec les paramètres de ses éléments, ses attributs et ses ressources

Point de terminaison : GET /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}

Authentification : Clé API limitée à l’environnement · portée read

Paramètres :

Nom Type Emplacement Obligatoire Description
tenantId string chemin Oui Format : uuid
processId string chemin Oui Format : uuid
simulationId string chemin Oui Format : uuid

Réponse (200) :

Détails de la simulation

{
	"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"
		}
	]
}
Champ Type Obligatoire Description
simulation object Oui En-tête de la simulation
elementSettings object[] Oui Paramètres de simulation pour chaque élément
attributes object[] Oui Attributs simulés
resources object[] Oui Pools de ressources

Erreurs :

  • 400 Requête incorrecte : par exemple, expression de filtre invalide, processus sans modèle, type d’importation non pris en charge ou champ obligatoire manquant
  • 401 Clé API manquante, invalide, désactivée ou expirée
  • 404 Ressource introuvable

Modifier une simulation (champs et/ou paramètres des éléments)

Point de terminaison : PUT /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}

Authentification : Clé API limitée à l’environnement · portée write

Paramètres :

Nom Type Emplacement Obligatoire Description
tenantId string chemin Oui Format : uuid
processId string chemin Oui Format : uuid
simulationId string chemin Oui Format : uuid

Corps de la requête :

{
	"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"
					}
				]
			}
		}
	]
}
Champ Type Obligatoire Description
displayName string Non Nom de la simulation
datasetName string Non Nom du jeu de données utilisé pour la simulation
startTime string Non Heure de début de la simulation
Format : date-time
endTime string Non Heure de fin de la simulation
Format : date-time
useWarmUp boolean Non Indique s’il faut exclure la période de montée en régime
elementSettings object[] Non Remplacements des paramètres pour chaque élément

Réponse (200) :

Simulation modifiée

{
	"message": "string"
}
Champ Type Obligatoire Description
message string Oui

Erreurs :

  • 400 Requête incorrecte : par exemple, expression de filtre invalide, processus sans modèle, type d’importation non pris en charge ou champ obligatoire manquant
  • 401 Clé API manquante, invalide, désactivée ou expirée
  • 404 Ressource introuvable

Supprimer définitivement une simulation

Point de terminaison : DELETE /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}

Authentification : Clé API limitée à l’environnement · portée write

Paramètres :

Nom Type Emplacement Obligatoire Description
tenantId string chemin Oui Format : uuid
processId string chemin Oui Format : uuid
simulationId string chemin Oui Format : uuid

Réponse (200) :

Simulation supprimée

{
	"message": "string"
}
Champ Type Obligatoire Description
message string Oui

Erreurs :

  • 400 Requête incorrecte : par exemple, expression de filtre invalide, processus sans modèle, type d’importation non pris en charge ou champ obligatoire manquant
  • 401 Clé API manquante, invalide, désactivée ou expirée
  • 404 Ressource introuvable

Ces points de terminaison utilisent l’IA pour générer automatiquement les paramètres de simulation à partir du modèle de processus.

Générer les paramètres de simulation avec l’IA (asynchrone ; interroger le point de terminaison d’état)

Point de terminaison : POST /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}/generate-settings

Authentification : Clé API limitée à l’environnement · portée write · limite de débit : 2 req/s (rafale de 4)

Paramètres :

Nom Type Emplacement Obligatoire Description
tenantId string chemin Oui Format : uuid
processId string chemin Oui Format : uuid
simulationId string chemin Oui Format : uuid

Corps de la requête :

{
	"processDescription": "string",
	"additionalContext": "string"
}
Champ Type Obligatoire Description
processDescription string Non
additionalContext string Non

Réponse (200) :

Génération lancée / résultat

{
	"message": "string"
}
Champ Type Obligatoire Description
message string Oui

Erreurs :

  • 400 Requête incorrecte : par exemple, expression de filtre invalide, processus sans modèle, type d’importation non pris en charge ou champ obligatoire manquant
  • 401 Clé API manquante, invalide, désactivée ou expirée
  • 404 Ressource introuvable

Interroger l’état de la génération des paramètres de simulation

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

Authentification : Clé API limitée à l’environnement · portée write

Paramètres :

Nom Type Emplacement Obligatoire Description
tenantId string chemin Oui Format : uuid
processId string chemin Oui Format : uuid
simulationId string chemin Oui Format : uuid

Réponse (200) :

État de la génération

{
	"message": "string"
}
Champ Type Obligatoire Description
message string Oui

Erreurs :

  • 400 Requête incorrecte : par exemple, expression de filtre invalide, processus sans modèle, type d’importation non pris en charge ou champ obligatoire manquant
  • 401 Clé API manquante, invalide, désactivée ou expirée
  • 404 Ressource introuvable

Lancer une simulation (asynchrone ; les résultats sont enregistrés dans les tables de données du processus)

Point de terminaison : POST /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}/run

Authentification : Clé API limitée à l’environnement · portée write · limite de débit : 5 req/s (rafale de 10)

Paramètres :

Nom Type Emplacement Obligatoire Description
tenantId string chemin Oui Format : uuid
processId string chemin Oui Format : uuid
simulationId string chemin Oui Format : uuid

Réponse (200) :

Simulation lancée

{
	"message": "string"
}
Champ Type Obligatoire Description
message string Oui

Erreurs :

  • 400 Requête incorrecte : par exemple, expression de filtre invalide, processus sans modèle, type d’importation non pris en charge ou champ obligatoire manquant
  • 401 Clé API manquante, invalide, désactivée ou expirée
  • 404 Ressource introuvable

Récupérer l’état de la dernière simulation (déduit de la table de données de sortie)

Point de terminaison : GET /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}/run/status

Authentification : Clé API limitée à l’environnement · portée read

Paramètres :

Nom Type Emplacement Obligatoire Description
tenantId string chemin Oui Format : uuid
processId string chemin Oui Format : uuid
simulationId string chemin Oui Format : uuid

Réponse (200) :

État de l’exécution

{
	"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"
}
Champ Type Obligatoire Description
state notStarted | running | processing | ready | error Oui Valeurs autorisées : notStarted, running, processing, ready, error
startedAt string Non Format : date-time
completedAt string Non Format : date-time
step string Non
casesSimulated number Non
targetCases number Non
eventsGenerated number Non
errorMessage string Non
simulationId string Oui Format : uuid

Erreurs :

  • 400 Requête incorrecte : par exemple, expression de filtre invalide, processus sans modèle, type d’importation non pris en charge ou champ obligatoire manquant
  • 401 Clé API manquante, invalide, désactivée ou expirée
  • 404 Ressource introuvable