関数のThinklet

機能Thinkletは、JavaScriptを使用してカスタムデータ変換と計算を可能にします。 ビルトインのThinkletはほとんどのタスクを処理しますが、関数Thinkletは複雑なデータ操作やワークフローのロジックに柔軟性を提供します。

仕組み

データを変換し、インサイトを生成し、ワークフローの意思決定を自動化するために、Function thinkletにJavaScriptコードを追加します。

使用ケース

関数Thinkletを使用するのに適したケース:

  • データ変換 – 値を変換し、データをフォーマットし、新しいメトリックを計算します。

  • 時間計算 – 時間の差を決定し、期間を追跡します。

  • 意思決定の自動化 – 計算された出力を使用して条件付きワークフローロジックを進めます。

制限

パフォーマンス、セキュリティ、および予測性を確保するために、Function thinkletは次のルールを適用します:

  • Function thinkletは、安全で分離された環境で実行されます。 HTTPリクエストの送信、外部サービスやAPIへのアクセス、ワークフロー外のシステムとの連携はできません。 この制限は、実行が安全で一貫性があり、セキュリティポリシーに準拠していることを保証します。

  • Function thinkletは、すべてのロジックを5秒以内に完了しなければなりません。 この時間制限を超えるスクリプトは、自動的に終了されます。 その結果、人工的な遅延を導入したり、Function thinkletを使用してワークフロー実行を一時停止することはサポートされていません。

Function thinkletは、迅速なローカルデータ処理と意思決定のためにのみ使用してください。 遅延や外部とのやり取りを伴う高度なユースケースについては、専用のthinkletの使用を検討してください。

関数Thinkletの設定

AIで生成 されたJavaScriptは、Function thinkletを定義します。 最良の結果を得るには、このページの例に従ってAIプロンプトを構築してください。

生データを意味のあるフォーマットに変換することで、第三者の統合を簡素化し、例えば、2つの日付の間の日数を計算することができます。作業回避策や外部ツールを使用せずに対応可能です。

  • 名前: 関数Thinkletのためのユニークな名前を入力します。

  • ID: この名前に基づいて、システムがIDを自動生成します。

  • 説明 (オプション): Thinkletの目的とその機能について説明します。 この情報は、ワークフローの利用に慣れていない他のユーザーに役立ちます。

  • パラメータ: パラメータを追加を選択し、最大5つのシンクレットパラメータを構成します。これらは関数のロジックの入力パラメータにもなります。

    • ID: 入力パラメーターのIDを定義します。 バリデーションロジックは、JavaScriptがサポートする文字のみを許可します。

    • : 対応するパラメータ値を設定します—データベースの値、他のシンクレットの出力、グローバルパラメータ、またはカスタム値。

      • ユーザー または デバイス の属性をパラメータ値として選択し、環境固有のデータを入力として使用するように手動カスタムフィールドを選択できます。

  • 出力: 最大5つの出力を関数に設定するために、出力の追加を選択してください。

    • 名前: 望ましい出力のためのユニークな名前を入力します。

    • ID:この名前に基づいてシステムがIDを自動生成します。

  • JavaScript: 入力パラメータに基づいて関数のロジックを定義するJavaScriptコードを書いてください。 スクリプトは、定義された出力のIDを持つ出力も定義すべきです。

    • ファンクションシンクレットのJavaScriptをAIで生成することができます。

Function thinkletのためのJavaScriptをAIで生成する方法

システムはAI生成されたコンテンツや洞察を示すために✦スパークルアイコンを表示します。 AIは急速に進化し、素晴らしい洞察を提供していますが、まだ誤りが起こることもあります。

AIでワークフロー Function thinklet を定義するJavaScriptを生成するには:

  1. AIで生成 ボタンをクリックします。

  2. 入力パラメータ、期待される出力、および必要な変換を記述したプロンプトリクエストを挿入します。 プロンプトの例を参照してください。

  3. 説明を確認し、生成されたコードが論理要件を満たしていることを確認してください。 論理の更新が必要な場合は、プロンプトを変更して関数を再生成してください。

AIコードジェネレーターは、JavaScriptのコード構造と構文に従って関数のシンクレットを生成します。

JavaScriptのコード構造と構文に関する関数シンクレット

JavaScriptが正しく動作し、デバッグ可能であることを保証するためにこれらの構文ルールに従ってください:

  • inputs.parameter_IDを使用して、設定内でアクセス入力パラメータを定義します。

  • Assign output values with the syntax outputs.output_ID

  • Include useful information in the Workflow execution timeline for troubleshooting by using nxLogger.log()

Access input parameters
const param1 = inputs.parameter_ID_1;
const param2 = inputs.parameter_ID_2;
...
const paramN = inputs.parameter_ID_5; // Up to 5 parameters
Logic for transformations
outputs.output_1 = /* your logic here */;
outputs.output_2 = /* your logic here */;
...
outputs.output_5 = /* your logic here */;
Output any results for troubleshooting
nxLogger.log("Name the output" + output_1);
関数シンクレットで未サポートの関数とオブジェクト

次のグローバル関数とオブジェクトはサポートされていません:

  • setTimeout

  • setInterval

  • setImmediate

  • clearTimeout

  • clearInterval

  • clearImmediate

  • process

  • require

  • Buffer

  • console

  • process.nextTick

Function thinklets のJavaScript の例: プロンプトとコード

以下は、JavaScript の AI プロンプトとコーディングの例です:

AIでJavaScriptを生成するためのプロンプトの例

保証終了日をもとに、保証が切れるまでの日数を計算します。 すでに切れている場合は、0を出力します。

関数シンクレット内のパスワード有効期限チェックのユースケース

このコード例は、関数シンクレット内でパスワード有効期限チェックを実装する方法を示しています。

// 入力パラメータにアクセスする
const lastUpdate = inputs.last_update_date;
 
// パスワードの有効期間を定義する(90日)
const validityDays = 90;
const expirationDate = new Date(lastUpdate);
expirationDate.setDate(expirationDate.getDate() + validityDays);
 
// 現在の日付を取得する
const now = new Date();
 
// 残り日数を計算する
const timeDiff = expirationDate - now;
const daysLeft = Math.ceil(timeDiff / (1000 * 60 * 60 * 24));
 
// 出力を設定する
outputs.days_left = daysLeft;                  // パスワード変更までの日数
outputs.if_expired = daysLeft <= 0;             // すでに切れているかどうか
 
// トラブルシューティング用の中間結果を出力する
nxLogger.log("残り日数: " + daysLeft);
nxLogger.log("通知が必要か: " + outputs.output_2);

Last updated

Was this helpful?