注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Workshop モジュールのユーザーに、キュー内の未解決アラートの割合を示すメトリックカードを提供したいと考えています。Workshop は数値集計をネイティブで計算・表示できますが、Workshop のフロントエンドでは、ビジネスロジックを使用してメトリックを計算する必要がある場合があります。
Workshop の機能を拡張し、必要な数値を提供する Function を追加できます。このタスクでは、MyFunctions
クラスのメソッドとしてカスタム Function を追加します。
リポジトリ内の ../src/index.ts
ファイルを開きます。
MyFunctions
クラス内に新しい関数用のスペースを作成する必要があります。8 行目の閉じ括弧の後にカーソルを置き、2 回エンターキーを押します。
次のコードブロックを挿入し、@Function()
デコレータと public...
行が上の関数と整列するように注意してください。
jmeierPercentUnresolved
を独自の名前に置き換えて認識できるようにし(例えば、jmeier
を自分の名前に置き換え)、JmeierFlightAlert
を ユーザーの API 名に置き換えます。@Function()
// "alerts" というエイリアスのフライトアラートオブジェクトの配列を取り込み、
// Double を返す
public jmeierPercentUnresolved(alerts: JmeierFlightAlert[]): Double {
// 配列に実際にオブジェクトが存在するか確認し、存在しない場合は "0" を返す
if (alerts.length === 0) {
return 0;
}
// 配列を巡回して、解決されたステータスがないアラートがあるたびに、
// 変数("numberUnresolved")を 1 ずつ増やす
let numberUnresolved = 0;
for (const alert of alerts) {
if (alert.status != "Resolved") {
numberUnresolved++;
}
}
// 未解決のアラート数を元の配列の長さで割った値を返す
return numberUnresolved/alerts.length;
}
Code Assist が実行されている場合は、Double の出力タイプが赤で下線が引かれており、コードに問題があることが示されています。簡単に言うと、リポジトリはインポートされていないタイプを見つけました。
Double
を追加します:import { Function, Integer, Double } from "@foundry/functions-api";