Sur cette page

Référence de l’API : simulations

Les simulations vous permettent d’exécuter des scénarios « et si » sur vos modèles de processus. Vous pouvez configurer les temps de traitement, l’affectation des ressources et les taux d’arrivée afin de 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 au tenant · 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 non valide, processus sans modèle, type d’importation non pris en charge ou champ obligatoire manquant
  • 401 Clé API manquante, non valide, désactivée ou expirée
  • 404 Ressource introuvable

Créer une simulation (idempotente lorsqu’un identifiant est fourni)

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

Authentification : Clé API limitée au tenant · 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 sur lequel la simulation s’exécute
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 ignorer 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 non valide, processus sans modèle, type d’importation non pris en charge ou champ obligatoire manquant
  • 401 Clé API manquante, non valide, désactivée ou expirée
  • 404 Ressource introuvable
  • 409 La requête est en conflit avec l’état actuel, par exemple en raison d’une restriction de licence utilisateur ou d’un identifiant déjà utilisé

Obtenir une simulation avec ses paramètres d’éléments, attributs et ressources

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

Authentification : Clé API limitée au tenant · 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 par élément
attributes object[] Oui Attributs simulés
resources object[] Oui Pools de ressources

Erreurs :

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

Mettre à jour une simulation (champs et/ou paramètres d’éléments)

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

Authentification : Clé API limitée au tenant · 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 sur lequel la simulation s’exécute
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 ignorer la période de montée en régime
elementSettings object[] Non Remplacements des paramètres par élément

Réponse (200) :

Simulation mise à jour

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

Erreurs :

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

Supprimer définitivement une simulation

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

Authentification : Clé API limitée au tenant · write portée

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, une expression de filtre non valide, un processus sans modèle, un type d’importation non pris en charge ou un champ obligatoire manquant
  • 401 Clé API manquante, non valide, désactivée ou expirée
  • 404 Ressource introuvable

Ces endpoints 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 l’endpoint d’état)

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

Authentification : Clé API limitée au tenant · write portée · limite de débit de 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 démarrée / résultat

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

Erreurs :

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

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

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

Authentification : Clé API limitée au tenant · write portée

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, une expression de filtre non valide, un processus sans modèle, un type d’importation non pris en charge ou un champ obligatoire manquant
  • 401 Clé API manquante, non valide, désactivée ou expirée
  • 404 Ressource introuvable

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

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

Authentification : Clé API limitée au tenant · write portée · limite de débit de 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 démarrée

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

Erreurs :

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

Obtenir l’état de la dernière exécution de simulation (à partir de la table de données de sortie)

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

Authentification : Clé API limitée au tenant · read portée

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, une expression de filtre non valide, un processus sans modèle, un type d’importation non pris en charge ou un champ obligatoire manquant
  • 401 Clé API manquante, non valide, désactivée ou expirée
  • 404 Ressource introuvable