注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
この内容は、learn.palantir.com でも以下の内容をご覧いただけますが、アクセシビリティの観点から、ここに掲載しています。
ユーザーの Workshop モジュールは、アラートの割り当てや(再)優先度付けに関する意思決定を助けるための多くのデータと可視化を提供します。次に、アラートの深刻度の定性的評価に基づいて、補償バウチャーや顧客への手紙を提供できるようにしたいと考えています。
一部の組織では、パイプラインやバックグラウンド Function にエンコードされた一連のルールに基づいて、バウチャープロセスを完全に自動化することができます。しかし、今回の実装では、アナリストが3つの可能な深刻度レベルから選択できるようにし、それぞれのレベルが、乗客のフライヤーステータスプロパティ(例えば、Platinum
ステータスの乗客は Silver
ステータスの乗客よりも大きなバウチャーを受け取ることが期待される)を考慮したビジネスロジックに基づいてバウチャーアクションをトリガーします。バウチャーの決定は、その後、乗客の status
プロパティに記載され、下流でさらなるアクションが取られます。
Function でオントロジー内のデータを変更したい場合(一時的な、プレゼンテーションレベルの変更とは異なる)、@OntologyEditFunction()
デコレータを使用し、他にもいくつかの要件が必要になります。これらの要件についてはこちらを参照してください。これにより、以下の説明がより明確になります。
Functions リポジトリの ../src/index.ts
ファイルを開きます。
MyFunctions クラスの内部にある(ただし、上部にはない)新しい Function 用のスペースを確保します。
以下に示すコードブロックを挿入し、@Function()
デコレータや public...
行が上の Function と同じ位置になるようにします。また、以下の置換を行ってください。
jmeierAlertVoucher
: jmeier
関数名を あなたの 名前に置き換えます。JmeierFlightAlert
: この API 名を あなたの フライトアラートオブジェクトタイプの API 名に置き換えます。jmeierPassenger
: これを あなたの フライトアラートと あなたの 乗客オブジェクトタイプ間のリンクの OMA で表示される API 名に置き換えます。下の拡大可能な画像を参照してください。もし Code Assist が実行されている場合、@OntologyEditFunction
が認識されないことにすぐに気付くでしょう。これまでの演習では、不足しているタイプを手動で Functions API インポートステートメントに追加していましたが、Code Assist 機能を使って自動的に追加することもできます。
ポップアップメニューから import '@OntologyEditFunction' from module "foundry/functions-api"
を選択します。デコレータがインポートステートメントに追加されます。
@OntologyEditFunction()
// 入力は、1) "alert" としてエイリアスされた単一のフライトアラートと 2) "severity" レーティングです。OntologyEditFunctions では、
// "void" タイプを返す必要があります。
public jmeierAlertVoucher(alert : JmeierFlightAlert, severity : string): void {
// 与えられたアラートに関連付けられた乗客を取得します。ここで、jmeierPassenger はリンクタイプの API 名であり、
// オブジェクトタイプの API 名ではありません。乗客とフライトアラートのオブジェクトタイプ間のリンクの API 名を
// OMA から取得してください。
const passengers = alert.jmeierPassengers.all();
// 各乗客に対して、フライヤーステータス + 与えられた "severity" の組み合わせを評価し、ビジネスロジックに従って
// "status" プロパティにバウチャー判断をプッシュします。
for (const passenger of passengers) {
if (severity === "Max" && ((passenger.flyerStatus === "Platinum") || (passenger.flyerStatus === "Gold"))) {
passenger.status = "Provide $500 Travel Voucher";
}
else if (severity === "Med" && ((passenger.flyerStatus === "Platinum") || (passenger.flyerStatus === "Gold"))
|| severity === "Max" && passenger.flyerStatus === "Silver") {
passenger.status = "Provide $250 Travel Voucher";
}
else if (severity === "Min" && ((passenger.flyerStatus === "Platinum") || (passenger.flyerStatus === "Gold"))
|| severity === "Med" && passenger.flyerStatus === "Silver") {
passenger.status = "Provide Upgrade Voucher";
}
// 上記の基準を満たさない顧客(例えば、ステータスが "None" の場合)は、手紙を受け取ります。
else passenger.status = "Provide Customer Letter";
}
}