mcpField
W
workflow

workflow

github.com/stahura開発24197 回インストール27 週間前に更新
リポジトリ

workflow について

workflowは、Domo App Platform開発者向けのワークフロー連携ガイドです。WorkflowClientでの起動や状態確認と、manifest.jsonのエイリアスを使った呼び出しを説明します。

主な機能

  1. 01エイリアスでワークフローを起動
  2. 02インスタンスの状態とモデル詳細を確認
  3. 03manifest.jsonでワークフローマッピングを設定
  4. 04入力変数名と型を確認

活用シーン

  1. 01Domoアプリからワークフローを起動
  2. 02長時間実行されるワークフローの状態確認
  3. 03アプリのペイロードをワークフロー入力に対応

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/stahura/domo-ai-vibe-rules --skill workflow

インストール後、Claude Code で/workflowを入力して読み込まれたか確認します。

詳細

ルール:Domo App Platform のワークフロー(ツールキット優先)

このルールはツールキット優先です。アプリでのワークフロー操作には WorkflowClient を使用してください。

標準クライアント

yarn add @domoinc/toolkit
import { WorkflowClient } from '@domoinc/toolkit';

const startResponse = await WorkflowClient.startModel('myWorkflow', {
  inputVar: 'value',
  anotherVar: 123
});
const instance = startResponse.body;

ステータスを確認します:

const statusResponse = await WorkflowClient.getInstance('myWorkflow', instance.id);
const status = statusResponse.body.status;

正しいメソッドの使用方法(UUID ではなくエイリアス)

WorkflowClient のワークフローメソッドでは、UUID ではなく、manifest.json の workflowMapping にあるワークフローのエイリアスを使用します。

await WorkflowClient.startModel('myWorkflow', { inputVar: 'value' });
await WorkflowClient.getAllModels();          // or getAllModels(true)
await WorkflowClient.getModelDetails('myWorkflow');
await WorkflowClient.getInstance('myWorkflow', 'instance-id');

マニフェストの要件

ワークフローには、引き続き manifest.json の workflowMapping エントリーが必要です。

{
  "workflowMapping": [
    {
      "alias": "sendReport",
      "modelId": "d1373fa7-9df8-45d3-80ba-f931dda169b4",
      "parameters": [
        { "aliasedName": "reportType", "type": "string", "list": false, "children": null },
        { "aliasedName": "recipients", "type": "string", "list": true, "children": null }
      ]
    }
  ]
}

カードのマッピングと入力の契約に関する注意事項

  • Domo では、アプリのカードを、カード/アプリの設定 UI で意図するワークフローモデルにマッピングしてください(ソースファイル内だけで設定しないでください)。
  • ワークフローの開始ノードの入力パラメーターがワークフローで設定されており、アプリが WorkflowClient.startModel(workflowAlias, variables) で送信するペイロードのキーと一致していることを確認してください。
  • パラメーター名、型、リスト設定が一致しない場合、ワークフローの開始に失敗したり、入力が誤って処理されたりすることがあります。
  • WorkflowClient.startModel(...) の呼び出しを推奨または生成する際、エージェントは渡される入力変数の正確な名前と型をユーザーに明示する必要があります。

エラー処理パターン

async function runWorkflow(workflowAlias: string, payload: Record<string, unknown>) {
  try {
    const response = await WorkflowClient.startModel(workflowAlias, payload);
    return response.body;
  } catch (error) {
    console.error(`WorkflowClient.startModel failed for ${workflowAlias}`, error);
    throw error;
  }
}

チェックリスト

  • workflowMapping が設定されている
  • アプリのカードが Domo UI で正しいワークフローにマッピングされている
  • ワークフローの開始ノードの入力パラメーターがアプリのペイロードのキー/型と一致している
  • 呼び出しで WorkflowClient のエイリアスベースのメソッド(startModel、getModelDetails、getInstance)を使用している
  • エージェントが、ガイダンスで startModel に渡す正確な入力変数名と型を明示している
  • コードがワークフロー UUID ではなく、ワークフローのエイリアス(workflowMapping.alias の値)を渡している
  • レスポンスの解析に response.body を使用している
  • 実行時間の長いワークフローの UX に、ステータス確認または非同期のユーザーフィードバックが含まれている

コメント