操作バー (ベータ)
定義と用法
操作バーコンポーネントは、ユーザーが使用できる一連の操作を表示するウィジェットです。これらの操作は、一列に並んだボタンと、付随のリストボックスに表示されます。コンポーネントのコンフィギュレーションとユーザーの画面のサイズによって、ボタンとして表示される操作の数が決まります。ボタンとして表示されない操作は、省略記号をクリックした後に表示されるリストボックスに表示されます。
操作バーコンポーネントのサンプルイメージを以下に示します。
次の方法で、操作バーコンポーネントを設定できます。
操作バーに含める操作を定義する
ボタンとして表示する操作の最大数を設定する
その可用性に応じて、操作の表示オプションを設定する
操作の順序を定義する
操作に入力が必要かどうかを定義する
操作バーに必要なスタイルを選択する
操作バーのメニューボタンを設定する
操作は、サービスまたはポップアップのいずれかを起動するように設計されています。サービスまたはポップアップマッシュアップは、ThingWorx で個別に設定する必要があります。トーストメッセージなどの追加機能は、ThingWorx の適切なサービスまたはマッシュアップで設定する必要があります。操作バーから URL を開く操作も設定できます。たとえば、「Windchill で表示」ボタンの設定などです。
操作バーは、アイテムリストコンポーネントとアイテム ID コンポーネントの内部に含めることができます。「部品リストを表示」、「部品構造を表示」、および「ドキュメント構造を表示」のタスクのプレビュー枠内に含めることもできます。各タスクの右上隅にある、選択したドキュメント/部品の枠が、プレビュー枠に置き換えられます。
操作バー、部品操作バー、およびドキュメント操作バーは、操作バーコンポーネントで使用可能なコンフィギュレーションタイプです。次のテーブルに、これらの各コンフィギュレーションで使用可能な操作を示します。
コンフィギュレーションタイプ
デフォルト操作
操作バー
承認、却下、解析、再割当
部品操作バー
問題を報告、Windchill で表示
ドキュメント操作バー
ドキュメントを開く、問題を報告、Windchill で表示
バインドプロパティ 
入力
プロパティ名
説明
プロパティタイプ
Disabled
マッシュアップ内のウィジェットを無効にします。
Boolean
Input
バックエンドシステムからフェッチするデータの識別に使用します。
CCOフォーマットの JSON
ServiceActionId
操作をクリックすると、この文字列がサービス操作の操作 ID によって更新されます。
String
SubComponentConfiguration
コンフィギュレーションがランタイムで変更される場合、コンフィギュレーションをこのプロパティにバインドします。
JSON
出力
プロパティ名
説明
プロパティタイプ
EventTriggered
操作でコンフィギュレーションプロパティ fireEventOnFinish が true に設定されている場合に、サービスが実行を終了するかポップアップが表示されるとトリガーされるイベント。
イベント
ServiceActionIdChanged
ServiceActionId の値が変更されると、つまり操作バーによって呼び出されたサービスの実行が終了すると、トリガーされるイベント。
イベント
PopupClosed
開いていたポップアップを閉じるとトリガーされるイベント。
イベント
コンフィギュレーションプロパティ 
次のテーブルは、このコンポーネントの設定に使用される JSON プロパティを示しています。
コンフィギュレーションの構造の詳細については、コンポーネントのコンフィギュレーション構造を参照してください。
サブプロパティの詳細については、サブプロパティとコンテナキーを参照してください。
プロパティ名
説明
プロパティタイプ
デフォルト値
必須またはオプション
maxItemsToShow
表示される操作ボタンの最大数。指定した値よりも多くの操作ボタンがある場合、リストボックスにその他の操作が表示されます。
2
必須
modelThingName
次の署名を持つサービスを含む Thing の名前。
public JSONObject GetActions(@ThingworxServiceParameter(name = "ccoJson", baseType = "JSON") JSONObject ccoJson)
このサービスは、1 つのアイテムを含むCCOフォーマットで入力を行います。その後、使用可能な操作の ID を、バックエンドから受信したラベルにマッピングする配列を含む JSONObject を返します。以下のサンプル JSON コンフィギュレーションの例を参照してください。
PTC.ActionBar Model.Thing
必須
actions
バックエンドシステムからデータをフェッチする必要がある操作のリスト。コンテナキーは actionConfiguration です。以下のサブプロパティを参照してください。
なし
必須
overrideLabel
ここで設定した値は操作ボタンのラベルとして表示され、バックエンドシステムから取得された値をオーバーライドします。ローカライズするには、値を二重括弧で囲みます。
なし
オプション
actionButtonVisibility
操作ボタンを表示する条件と状態を決定します。オプション: AlwaysShownDisableUnavailableHideUnavailableAlwaysShown では、ボタンは常に表示され、有効になっています。DisableUnavailable では、ボタンは常に表示されますが、指定した選択に対して操作を使用できない場合は無効になります。HideUnavailable では、指定した選択に対して操作が使用可能な場合にのみ、ボタンが表示されます。
注記: ボタンを有効にするか無効にするかに影響するその他のコンフィギュレーションがあります。
なし
必須
buttonStyle
ボタンの表示スタイルを指定します。オプション: primarysecondarytertiarydangertransparent
なし
必須
overrideSetDisabled
このフィールドが設定されている場合、ボタンを有効にするか無効にするかを決定する際、その値が唯一の要因になります。オプション: truefalse。true に設定するとボタンが無効になり、false に設定するとボタンが有効になります。
なし
オプション
fireEventOnFinish
このフィールドが true に設定されている場合、サービスの実行が完了するとイベント EventTriggered がトリガーされ、ポップアップが閉じるとイベント PopupClosed がトリガーされます。
なし
オプション
inputConstraints
操作の入力制約を決定します。オプション: InputRequiredSingleInputOnly、および NoInputRequired
InputRequired: この操作を実行するには、入力が必要です。入力が空でアイテムが含まれていない場合、この操作のボタンは無効になります。
SingleInputOnly: この操作を実行するには、単一の入力が必要です。入力が空であるか、2 つ以上のアイテムが含まれている場合、この操作のボタンは無効になります。
NoInputRequired: 入力の有無にかかわらず、この操作を実行できます。
なし
オプション
iconWhenEnabled
このフィールドが指定されている場合、操作ボタンが有効になっているときに、操作のボタンのラベルの左側にアイコンが表示されます。
entityName
アイコンとして使用するメディアエンティティの名前。
iconWhenDisabled
このフィールドが指定されている場合、操作ボタンが無効になっているときに、操作のボタンのラベルの左側にアイコンが表示されます。
entityName
アイコンとして使用するメディアエンティティの名前。
activityType
この操作によって、サービスを実行するか、ポップアップマッシュアップを表示するかを決定します。オプション: openUrl (ThingWorx Navigate 9.3.4 以降のバージョンで使用可能)、popupservice、および parent (ThingWorx Navigate 9.4.0 以降のバージョンで使用可能)。popup、service、および parent に必要なサブプロパティについては、以下のテーブルを参照してください。
なし
必須
mashupName
ポップアップとして表示されるマッシュアップの名前。
このプロパティは、activityTypepopup に設定されている場合にのみ使用されます。
なし
必須
redirectAfterPopupSuccess
操作が正常に終了した後、ポップアップが閉じるときに別のマッシュアップにリダイレクトします。
ポップアップによって実行された操作が正常に完了したかどうかを操作バーに通知するには、成功または失敗を示す PTC.ActionBar.popupCloseParameters という名前のセッションパラメータを設定します。たとえば、ポップアップマッシュアップには、ポップアップによって実行された操作が終了した後に実行する定義式を設定できるため、その定義式でセッションパラメータを設定します。次の例では、操作が正常に終了したため、JSON 属性 operationSuccessful が true に設定されます。
sessionStorage.setItem("PTC.ActionBar.popupCloseParameters", JSON.stringify( { operationSuccessful: true } ));
このプロパティは、activityTypepopup に設定されている場合にのみ使用されます。
なし
オプション
popupWidth
表示されるポップアップの幅を指定します。
このプロパティは、activityTypepopup に設定されている場合にのみ使用されます。
1024
オプション
popupHeight
表示されるポップアップの幅を指定します。
このプロパティは、activityTypepopup に設定されている場合にのみ使用されます。
640
オプション
thingWithService
実行するサービスが含まれている Thing の名前。
このプロパティは、activityTypeservice に設定されている場合にのみ使用されます。
なし
必須
serviceName
実行するサービスの名前。
このプロパティは、activityTypeservice に設定されている場合にのみ使用されます。
なし
必須
parameters
このオプションのフィールドでは、ハードコードされたパラメータをサービスまたはポップアップマッシュアップに渡すことができます。パラメータは JSONObject で定義され、引用符でエスケープされた JSON オブジェクトの文字列としてフォーマットする必要があります。パラメータは、コンフィギュレーションファイルに "{\"myParamName\": \"hardcodedValue\"}" のフォーマットで入力する必要があります。以下の追加情報を参照してください。
このプロパティは、activityTypeservice または popup に設定されている場合にのみ使用されます。
なし
オプション
openUrl
操作ボタンで URL を設定できます。有効な値に設定した場合、操作ボタンを選択すると、設定した URL が新しいウィンドウまたはタブで開きます。
このプロパティは、activityTypeopenUrl に設定されている場合にのみ使用されます。
なし
オプション
parentId
このオプションのフィールドでは、親操作の ID を設定できます。有効な値に設定されている場合、その ID を持つ親操作が存在することを表しており、その操作が親メニューボタンの下のオプションとして設定されます。parentId で設定されているものと同じ ID を持つ操作がない場合、この操作は無視され、表示されません。
このプロパティは、activityTypeparentId に設定されている場合にのみ使用されます。
親の ID
オプション
parameters を使用したサービス操作の設定:
これは、MyService という名前のサービス例の署名です。
@ThingworxServiceDefinition(name = "MyService", category = "MyCategory")
public void MyService(
@ThingworxServiceParameter(name = "exampleInt", baseType = "INTEGER") Integer exampleInt,
@ThingworxServiceParameter(name = "ExampleString", baseType = "STRING") String exampleString,
@ThingworxServiceParameter(name = "ExampleBoolean", baseType = "BOOLEAN") Boolean exampleBoolean)
MyService では、次のようなパラメータ値が表示されます。
{
\"exampleInt\": 123,
\"exampleString\": \"Hello\",
\"exampleBoolean\": true
}
* 
serviceParam_InputCcoserviceParam_ActionId の 2 つのパラメータは、受信するようにサービス署名を定義するとサービスによって自動的に取得されます。パラメータ serviceParam_InputCco は JSONObject で、操作バーに渡された入力です。パラメータ serviceParam_ActionId は、クリックされた操作の ID を含む文字列です。サービスでこれらのパラメータが署名に記載されていない場合、これらのパラメータを使用することはできません。これらのパラメータを使用する場合は、以下を使用して、いずれかのパラメータまたは両方のパラメータに関してサービス署名を定義します。
@ThingworxServiceDefinition(name = "MyService", category = "MyCategory")
public void MyService(
@ThingworxServiceParameter(name = "serviceParam_InputCco", baseType = "JSON")
JSONObject serviceParam_InputCco,
@ThingworxServiceParameter(name = "serviceParam_ActionId", baseType = "STRING")
String serviceParam_ActionId)
サンプルコンフィギュレーション 
標準ボタンを使用したサンプルコンフィギュレーション
{
"maxItemsToShow": {
"value": 3
},
"modelThingName": {
"entityName": "PTC.ActionBarModel.Thing"
},
"actions": {
"selectedValues": {
"data": [{
"itemListsData": [{
"items": [{
"id": "Approve",
"additionalData": {
"actionConfiguration": {
"actionButtonVisibility": {
"selectedKey": "HideUnavailable"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.RoutingOptionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "SingleInputOnly"
}
}
},
"ordinal": 10
}, {
"id": "Reassign",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": "Reassign"
},
"actionButtonVisibility": {
"selectedKey": "AlwaysShown"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.ReassignActionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "InputRequired"
}
}
},
"ordinal": 20
}, {
"id": "OpenDocument",
"additionalData": {
"actionConfiguration": {
"openUrl": {
"value": "https://www.ptc.com"
},
"overrideLabel": {
"selectedKey": "[[PTC.AccessApp.OpenDocument]]"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "openUrl"
},
"actionButtonVisibility": {
"selectedKey": "AlwaysShown"
}
},
"ordinal": 30
}
}, {
"id": "ProblemReport",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": "[[PTC.Nav.CreateProblemReport.AppTitle]]"
},
"popupHeight": {
"value": 640
},
"popupWidth": {
"value": 800
},
"actionButtonVisibility": {
"selectedKey": "AlwaysShown"
},
"buttonStyle": {
"selectedKey": "primary"
},
"mashupName": {
"mashupName": "PTC.Nav.CreateProblemReportAppMashup"
},
"activityType": {
"selectedKey": "popup"
},
"parameters": {
"value": "{\"affectedItemsCCO\":{\"timeStamp\":\"2021-11-24 22:45:54.528\",\"data\":[{\"itemListsData\":[{\"items\":[{\"id\":{\"value\":\"OR:wt.part.WTPart:100447\"}}],\"objectType\":\"PTC.ProdMgmt.Part\"}],\"adapter\":{\"instanceName\":\"windchill\",\"thingName\":\"PTC.WCAdapter\"}}],\"version\":\"1.0.0\",\"statusMessage\":\"OK\",\"status\":\"200\"},\"isPopup\":true}"
}
}
},
"ordinal": 40
}
],
"objectType": "WT.WorkItem.Actions"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
}
}
}
メニューボタンを使用したサンプルコンフィギュレーション
{
"maxItemsToShow": {
"value": 3
},
"modelThingName": {
"entityName": "PTC.ActionBarModel.Thing"
},
"actions": {
"selectedValues": {
"data": [{
"itemListsData": [{
"items": [{
"id": "Approve",
"additionalData": {
"actionConfiguration": {
"actionButtonVisibility": {
"selectedKey": "HideUnavailable"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.RoutingOptionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "SingleInputOnly"
}
}
},
"ordinal": 10
}, {
"id": "Reassign",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": "Reassign"
},
"actionButtonVisibility": {
"selectedKey": "AlwaysShown"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.ReassignActionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "InputRequired"
}
}
},
"ordinal": 20
}, {
"id": "OpenDocument",
"additionalData": {
"actionConfiguration": {
"openUrl": {
"value": "https://www.ptc.com"
},
"overrideLabel": {
"selectedKey": "[[PTC.AccessApp.OpenDocument]]"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "openUrl"
},
"actionButtonVisibility": {
"selectedKey": "AlwaysShown"
}
},
"ordinal": 30
}
}, {
"id": "ProblemReport",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": "[[PTC.Nav.CreateProblemReport.AppTitle]]"
},
"popupHeight": {
"value": 640
},
"popupWidth": {
"value": 800
},
"actionButtonVisibility": {
"selectedKey": "AlwaysShown"
},
"buttonStyle": {
"selectedKey": "primary"
},
"mashupName": {
"mashupName": "PTC.Nav.CreateProblemReportAppMashup"
},
"activityType": {
"selectedKey": "popup"
},
"parameters": {
"value": "{\"affectedItemsCCO\":{\"timeStamp\":\"2021-11-24 22:45:54.528\",\"data\":[{\"itemListsData\":[{\"items\":[{\"id\":{\"value\":\"OR:wt.part.WTPart:100447\"}}],\"objectType\":\"PTC.ProdMgmt.Part\"}],\"adapter\":{\"instanceName\":\"windchill\",\"thingName\":\"PTC.WCAdapter\"}}],\"version\":\"1.0.0\",\"statusMessage\":\"OK\",\"status\":\"200\"},\"isPopup\":true}"
}
}
},
"ordinal": 40
}
],
"objectType": "WT.WorkItem.Actions"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
}
}
}
これは役に立ちましたか?