Now Mobile Agent アプリケーションの UI アクションのカスタマイズ
カスタム UI アクションを作成することで、エンドユーザーが Field Service モバイルアプリケーションを使用して作業を迅速に行うことができるようにします。
UI アクション条件の構成は、フィールドサービスモバイルアプリケーションのものとデスクトップアプリケーションのものとは異なります。デスクトップアプリケーションとは異なり、モバイルの UI アクション条件はデータベースクエリを実行しないため、モバイルリソースを消費しません。モバイルアプリケーションでは、フィールドサービス構成が有効かどうかのシステムチェックを実行する代わりに、ボタンをアクティブまたは非アクティブに設定できます。
アドミニストレーターは、モバイル UI アクションを確認し、使用されていないアクションを無効にすることで、使用するモバイルリソースを減らすことができます。
次の画像は、スタジオ で開いている Now Mobile エージェントアプリケーションを示しています。スタジオ で開いている Now Mobile エージェントアプリケーションでは、UI アクションを構成できます。
作業指示タスクを承認するための UI アクション構成のサンプルを次に示します。
デスクトップアプリケーションの [承認 ] ボタンには、次の UI アクション条件があります。
current.state == 16 && (new StateFlow().validFlow(current, '53d0aea8d7230100fceaa6859e610326', 'manual'));システムは次の状況フロー条件をチェックします。
- このスクリプトを使用して、accept_reject UI アクションが有効か無効かを確認するための
SMconfigurationレコード:(new sn_sm.SMConfiguration()).isEnabled(current, "accept_reject", false) - タスクが自己アサインされている場合
モバイルデバイスの対応するボタンの UI アクションを変更するには:
current.state == 16条件は変更しないでください。現在のレコードに関する情報をチェックします。- この条件の場合:
が false に設定されている場合は、この条件を削除し、モバイルアプリケーションで対応するモバイル UI アクションを無効にします。(new sn_sm.SMConfiguration()).isEnabled(current, "accept_reject", false) - 次に示すように、ログインしているユーザーに [割り当て られている現在のタスク ] フィールドパラメーターの値を設定します
:current.assigned_to == gs.getUserID()
current.state == 16 && current.assigned_to == gs.getUserID()タスクを自己アサインするための別の構成例を次に示します。
デスクトップアプリケーションの [自分にアサイン ] 機能には、次の UI アクション条件があります。
(new SMTask()).canAssignToSelf(current)SMTask.canAssignToSelf(task) スクリプトインクルードメソッドは、次の条件のシステムチェックを実行します。- タスクのステータス
- 予定開始時間の値
- タスクが自己アサインされている場合
- ユーザーが SM 設定レコードで定義されている基本ロールとエージェントロールを持っている場合
- ユーザーがタスクディスパッチグループによって処理されるグループに属しているかどうか
モバイルアプリケーションでは、次の UI スクリプト条件が前にリストした最初の 3 つの条件のチェックを実行します。
current.assigned_to != gs.getUserID() && !(current.expected_start.nil()) && (current.state == 10 || current.state == 16) 4 番目の条件では、[ ロール ] フィールドに特定のロールを追加できます。5 番目の条件については、
wot_assign_to_me 書き戻しアクションアイテムで次の検証を実行します。if (smTask.canAssignToSelf(wotGR))
smTask.assignToMe(gs.getUserID(), input.sys_id);
else
gs.addErrorMessage(gs.getMessage("Not a valid task assignment."));