関数の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. 説明 を確認し、生成された コード が適切なスクリプト構造に従い、サポートされていない構文を避けていることを確認します。

Function thinklet 用の JavaScript コード構造

When you author a Function thinklet in Nexthink Flow, you should follow these syntax rules to ensure your script works correctly and remains debuggable:

  • 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 のプロンプト例
  • プロンプトの例:

カレンダーで会議の時間枠を検索するために、指定された開始日と終了日を計算します。次の週末が終わるまでの平日(営業日)だけを含めてください。

  • Nexthink AI により生成されたコード:

// 現在の日付と時間を取得
const now = new Date();

// 開始日を現在に設定
const startDate = now;

// 次の営業日の終了日時
const endDate = new Date(now);
endDate.setDate(endDate.getDate() + 1);

// 終了日が営業日であることを確認(週末を避ける)
while (endDate.getDay() === 0 || endDate.getDay() === 6) {
  endDate.setDate(endDate.getDate() + 1);
}

// 終了時間を17:00(営業時間終了時刻)に設定
endDate.setHours(17, 0, 0, 0);

// カレンダー登録用に日付をフォーマット
const formatDate = (date) => {
  return date.toISOString().replace(/\.\d{3}Z$/, 'Z');
};

// 出力の設定
outputs.days_left = Math.ceil((endDate - startDate) / (1000 * 60 * 60 * 24));
outputs.if_expired = false; // このコンテキストでは適用不可

// 開始日と終了日のログを記録
nxLogger.log(`開始日: ${formatDate(startDate)}`);
nxLogger.log(`終了日: ${formatDate(endDate)}`);
Function thinklet 内のパスワード有効期限チェッカーのユースケース

このコード例は、Function thinklet 内でパスワード有効期限チェッカー を実装する方法を示しています。

// 入力パラメータにアクセス
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?