Exemples

Exemples complets de bout en bout montrant comment utiliser les outils DocFlow MCP ensemble.

Exemple 1 : Créer une carte personnalisée et l'utiliser dans un workflow

Cet exemple parcourt le cycle de vie complet : créer une carte partenaire, la valider, la tester, l'approuver et construire un workflow qui l'utilise.

Étape 1 : Créer la carte

Appelez sdk_create_card :

{
  "app_manifest": {
    "id": "com.example.invoice-tools",
    "name": "Invoice Tools",
    "version": "1.0.0",
    "partner": {
      "id": "example-partner",
      "name": "Example Corp"
    }
  },
  "card_manifest": {
    "id": "high-value-check",
    "title": {"en": "High Value Invoice Check"},
    "entry_point": "src/high_value.py",
    "class_name": "HighValueCheck",
    "args": [
      {
        "id": "threshold",
        "title": {"en": "Amount Threshold"},
        "type": "number",
        "required": true
      }
    ]
  },
  "card_type": "condition",
  "source_code": "from api.sdk.base import PartnerCard\nfrom api.sdk.result import CardResult, CardStatus\n\nclass HighValueCheck(PartnerCard):\n    def execute(self, context):\n        threshold = float(self.variables.get('threshold', 1000))\n        total = float(context.document_fields.get('total_amount', 0))\n        if total > threshold:\n            return CardResult(status=CardStatus.SUCCESS, message=f'High value: {total}')\n        return CardResult(status=CardStatus.FAILURE, message=f'Below threshold: {total}')",
  "test_code": "def test_high_value():\n    assert True  # Basic test"
}

Notez le card_id de la réponse -- vous en aurez besoin dans les étapes suivantes.

Étape 2 : Valider la carte

Appelez sdk_validate_card avec l'ID de la carte :

Examinez le rapport de validation. Les 5 étapes doivent réussir.

Étape 3 : Tester la carte

Appelez sdk_test_card avec un contexte de document simulé :

Vérifiez que la réponse affiche CardStatus.SUCCESS.

Étape 4 : Approuver la carte

Appelez sdk_approve_card (nécessite un administrateur) :

La carte est maintenant active et disponible pour une utilisation dans les workflows.

Étape 5 : Construire un workflow avec la carte

D'abord, obtenez les cartes disponibles en utilisant list_cards ou sdk_list_cards_picker pour trouver les IDs de cartes.

Puis appelez create_advanced_workflow :

Étape 6 : Tester le workflow

Appelez test_advanced_workflow :

Examinez les journaux d'exécution pour vérifier que chaque nœud s'est exécuté correctement.


Exemple 2 : Construire un workflow avec des cartes intégrées

Cet exemple crée un workflow en utilisant uniquement des cartes intégrées (aucune carte personnalisée nécessaire).

Étape 1 : Découvrir les cartes disponibles

Appelez sdk_list_cards_picker pour voir toutes les cartes disponibles avec leurs indicateurs de rôle :

Filtrez par rôle :

  • is_when: true — Utiliser dans les nœuds WHEN (déclencheurs)

  • is_and: true — Utiliser dans les nœuds AND (conditions supplémentaires)

  • is_then: true — Utiliser dans les nœuds THEN (actions)

Étape 2 : Créer le workflow

Cela crée un workflow : WHEN le document est une facture AND le montant > 1000 THEN définir le statut sur révision.


Exemple 3 : Importer des cartes depuis GitHub

Si vos cartes partenaires se trouvent dans un dépôt GitHub, vous pouvez les importer directement :

Pour les dépôts privés, incluez un jeton GitHub :

Après l'importation, les cartes passent automatiquement par la validation. Vérifiez leur statut avec sdk_list_submissions et approuvez-les avec sdk_approve_card.

Last updated