ZokasTech Innovate Connect Grow

Intégration

Ajouter un type d'étape

Étendre le catalogue avec une nouvelle action, de façon cohérente dans Studio, l'assistant, l'Orchestrator et la documentation.

Cette page s'adresse aux développeurs de ZOKAS Automate. Un type d'étape est déclaré à cinq endroits, qui doivent rester alignés.

1. Déclarer le type pour l'assistant et la validation

Dans orchestrator/zokas_orch/scenario.py, ajoutez une entrée à STEP_TYPES :

"pdf.merge": ("Fusionner des PDF en un seul fichier", {
    "files": "chemins séparés par des virgules",
    "output": "fichier produit",
}),

La description et le texte de chaque propriété sont lus par l'assistant : écrivez-les comme une consigne, avec un exemple entre parenthèses. Les propriétés listées ici sont les seules conservées à l'import.

2. Exécuter le type

Dans orchestrator/zokas_orch/runtime.py, PackageRunner._exec :

  • action sur le poste du robot : ajoutez le type à ROBOT_STEPS ("pdf.merge": ("pdf_merge", ["files", "output"])) et, si la sortie est stockée, à STORE_RESULT ;
  • action côté Orchestrator : ajoutez une branche elif t == "pdf.merge":.

Appelez self._check_filled(s, [...], {...}) pour les propriétés obligatoires : l'utilisateur obtient alors « valeur vide pour … » au lieu d'une erreur technique.

3. Outil du robot (si action robot)

Dans robot/zokas_robot/server.py, exposez l'outil MCP pdf_merge, en respectant les dossiers autorisés (files.safe) et le mode simulation (ZOKAS_ROBOT_DRY_RUN).

4. Palette de Studio

Dans desktop/shared/zk-engine.js, ajoutez la fiche à TYPES (famille, nom, icône, champs) et, si besoin, le comportement simulé dans run(). Champs : [clé, libellé, exemple, genre], genre = area, image ou select:val=Libellé|….

5. Documentation

Ajoutez la fiche dans web/docs-src/steps.json : type, group, name, summary, when, props (nom, type, requis, défaut, valeurs), output, example, errors, see, source. Lancez ensuite :

cd web && npm run docs

La construction échoue si un type de scenario.py n'est pas documenté, si une propriété documentée n'existe pas, ou si un exemple utilise une propriété inconnue. Elle régénère les pages, l'index de recherche et le Schéma JSON.

Liste de contrôle

  • Même nom de type et mêmes propriétés dans scenario.py, zk-engine.js et steps.json.
  • Propriétés obligatoires contrôlées par _check_filled.
  • Secrets lus par credential, jamais en clair.
  • Un test dans tests/ (exécution et validation du package).
  • npm run docs sans erreur.

Mis à jour le 28 octobre 2026