高度なカスタマイズ > 再使用可能なコンポーネントの使用 > 利用できる再使用可能なコンポーネント > 操作バー
  
操作バー
定義と用法
操作バーの再使用可能なコンポーネントは、ユーザーが使用できる一連の操作を表示するウィジェットです。これらの操作は、一列に並んだボタンと、付随のドロップダウンメニューに表示されます。コンポーネントのコンフィギュレーションとユーザーの画面のサイズによって、ボタンとして表示される操作の数が決まります。ボタンとして表示されていない操作は、ドロップダウンメニューに表示されます。次の方法で、操作バーの再使用可能なコンポーネントを設定できます。
操作バーに含める操作を定義する
ボタンとして表示する操作の最大数を設定する
その可用性に応じて、操作の表示オプションを設定する
操作の順序を定義する
操作に入力が必要かどうかを定義する
操作バーに必要なスタイルを選択する
操作は、サービスまたはポップアップのいずれかを起動するように設計されています。サービスまたはポップアップマッシュアップは、ThingWorx で個別に設定する必要があります。トーストメッセージなどの追加機能は、ThingWorx の適切なサービスまたはマッシュアップで設定する必要があります。
操作バーは、アイテムリストとアイテム ID の再使用可能なコンポーネントの内部に含まれます。
以下は操作バーの再使用可能なコンポーネントを示すサンプルイメージです。
操作バーの再使用可能なコンポーネントには、定義済みコンフィギュレーションがありません。
バインドプロパティ
操作バーコンポーネントには 8 つのプロパティがあり、バインドに使用できます。
Disabled - マッシュアップでウィジェットを無効にするブール型。
EventTriggered - 操作で fireEventOnFinish が true に設定されている場合に、サービスが実行を終了するかポップアップが表示されるとトリガーされるイベント。
Input - バックエンドシステムからフェッチする必要があるデータの入力 ID を示す JSON。この情報は CCO (Common Communication Object) フォーマットで指定されます。
PopupClosed - 開いていたポップアップを閉じるとトリガーされるイベント。
ServiceActionId - 操作をクリックしたときに、そのサービス操作の操作 ID で更新される文字列。
ServiceActionIdChanged - ServiceActionId の値が変更されると、つまり操作バーによって呼び出されたサービスの実行が終了すると、トリガーされるイベント。
SubComponentConfiguration - コンフィギュレーション JSON がランタイムに変更される場合にコンフィギュレーション JSON にバインドできる JSON。コンフィギュレーションがランタイムに変更されない場合は、次のセクションで説明するコンフィギュレーションフィールドを使用します。
コンフィギュレーションフィールド
次のテーブルは、このコンポーネントの設定に使用できる JSON フィールドを示しています。
プロパティ名
説明
タイプ
デフォルト値
必須またはオプション
maxItemsToShow
表示される操作ボタンの最大数。指定した値より多くの操作ボタンがある場合は、ドロップダウンメニューにその他の操作が追加されます。
Integer
2
必須
modelThingName
次の署名を持つサービスを含む Thing の名前。
public JSONObject GetActions(@ThingworxServiceParameter(name = "ccoJson", baseType = "JSON") JSONObject ccoJson)
このサービスは、1 つのアイテムを含む CCO フォーマットで入力を行います。その後、使用可能な操作の ID を、バックエンドから受信したラベルにマッピングする配列を含む JSONObject を返します。以下のサンプル JSON コンフィギュレーションの例を参照してください。
String
"PTC.ActionBar Model.Thing"
必須
actions
操作バーで使用できる操作。サブプロパティを参照してください。
String
なし
必須
id
バックエンドシステムから受信した、操作の ID。サブプロパティについては、次のテーブルを参照してください。
String
なし
必須
objectType
操作をフェッチするオブジェクトタイプ。
String
なし
必須
adapter
バックエンドシステムのソースコンフィギュレーション。サブプロパティを参照してください:
String
なし
必須
instanceName
コネクタインスタンス。バックエンドシステムへの接続に使用するコネクタを意味します。
String
"windchill"
必須
thingName
データの取得元となるバックエンドシステムまたはアダプタの名前。
String
"PTC.WCAdapter"
必須
id のコンフィギュレーションフィールド
プロパティ名
説明
タイプ
デフォルト値
必須またはオプション
overrideLabel
ここで設定した値は操作ボタンのラベルとして表示され、バックエンドシステムから取得された値をオーバーライドします。ローカライズするには、値を二重括弧で囲みます。
String
なし
オプション
actionButtonVisibility
操作ボタンを表示する条件と状態を決定します。オプション: AlwaysShownDisableUnavailableHideUnavailableAlwaysShown では、ボタンは常に表示され、有効になっています。DisableUnavailable では、ボタンは常に表示されますが、指定した選択に対して操作を使用できない場合は無効になります。HideUnavailable では、指定した選択に対して操作が使用可能な場合にのみ、ボタンが表示されます。
注記: ボタンを有効にするか無効にするかに影響するその他のコンフィギュレーションがあります。
String
なし
必須
buttonStyle
ボタンの表示スタイルを指定します。オプション: primarysecondarytertiarydangertransparent
String
なし
必須
overrideSetDisabled
このフィールドが設定されている場合、ボタンを有効にするか無効にするかを決定する際、その値が唯一の要因になります。オプション: truefalse。true に設定するとボタンが無効になり、false に設定するとボタンが有効になります。
Boolean
なし
オプション
activityType
この操作によって、サービスを実行するか、ポップアップマッシュアップを表示するかを決定します。オプション: popupservice。ポップアップおよびサービスに必要なサブプロパティについては、以下のテーブルを参照してください。
String
なし
必須
fireEventOnFinish
このフィールドが true に設定されている場合、サービスの実行が完了すると、イベント EventTriggered がトリガーされ、ポップアップが閉じるとイベント PopupClosed がトリガーされます。
Boolean
なし
オプション
inputConstraints
操作の入力制約を決定します。オプション: InputRequiredSingleInputOnly、および NoInputRequired
InputRequired: この操作を実行するには、入力が必要です。入力が空でアイテムが含まれていない場合、この操作のボタンは無効になります。
SingleInputOnly: この操作を実行するには、単一の入力が必要です。入力が空であるか、2 つ以上のアイテムが含まれている場合、この操作のボタンは無効になります。
NoInputRequired: 入力の有無にかかわらず、この操作を実行できます。
String
なし
オプション
ordinal
操作ボタンが表示される順序。最小の序数を持つ操作が最初の左端の位置に表示されます。負の値を使用できます。
Integer
なし
必須
iconWhenEnabled
このフィールドが指定されている場合、操作ボタンが有効になっているときに、操作のボタンのラベルの左側にアイコンが表示されます。
String
なし
オプション
entityName
アイコンとして使用するメディアエンティティの名前。
String
なし
オプション
iconWhenDisabled
このフィールドが指定されている場合、操作ボタンが無効になっているときに、操作のボタンのラベルの左側にアイコンが表示されます。
String
なし
オプション
entityName
アイコンとして使用するメディアエンティティの名前。
String
なし
オプション
popupactivityType に対するサブプロパティ
プロパティ名
説明
タイプ
デフォルト値
必須またはオプション
mashupName
ポップアップとして表示されるマッシュアップの名前。
String
なし
必須
redirectAfterPopupSuccess
操作が正常に終了した後、ポップアップが閉じるときに別のマッシュアップにリダイレクトします。
ポップアップによって実行された操作が正常に完了したかどうかを操作バーに通知するには、PTC.ActionBar.popupCloseParameters という名前のセッションパラメータを設定して成功または失敗を示す必要があります。たとえば、ポップアップマッシュアップには、ポップアップによって実行された操作が終了した後に実行する定義式を設定できるため、その定義式でセッションパラメータを設定します。次の例では、操作が正常に終了したため、JSON 属性 operationSuccessful が true に設定されます。
sessionStorage.setItem("PTC.ActionBar.popupCloseParameters", JSON.stringify( { operationSuccessful: true } ));
String
なし
オプション
popupWidth
表示されるポップアップの幅を指定します。このフィールドを空白のままにすると、ポップアップの幅はデフォルトの 1024 になります。
Integer
なし
オプション
popupHeight
表示されるポップアップの幅を指定します。このフィールドを空白のままにすると、ポップアップの幅はデフォルトの 640 になります。
Integer
なし
オプション
serviceactivityType に対するサブプロパティ
プロパティ名
説明
タイプ
デフォルト値
必須またはオプション
thingWithService
実行するサービスが含まれている Thing の名前。
String
なし
必須
serviceName
実行するサービスの名前。
String
なし
必須
parameters
このオプションのフィールドを使用すると、ハードコードされたパラメータをサービスに渡すことができます。パラメータは JSONObject で定義されますが、引用符でエスケープされた JSON オブジェクトの文字列としてフォーマットする必要があります。パラメータは、コンフィギュレーションファイルに "{\"myParamName\": \"hardcodedValue\"}" のフォーマットで入力する必要があります。以下の追加情報を参照してください。
StringRepresentationOfJSONObject
なし
オプション
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": {
"overrideLabel": {
"value": ""
},
"actionButtonVisibility": {
"selectedKey": "HideUnavailable"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.RoutingOptionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "SingleInputOnly"
}
}
},
"ordinal": 1
}, {
"id": "Reject",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": ""
},
"actionButtonVisibility": {
"selectedKey": "HideUnavailable"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.RoutingOptionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "SingleInputOnly"
}
}
},
"ordinal": 2
}, {
"id": "Analyze",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": ""
},
"actionButtonVisibility": {
"selectedKey": "HideUnavailable"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.RoutingOptionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "SingleInputOnly"
}
}
},
"ordinal": 3
}, {
"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": 4
}
],
"objectType": "WT.WorkItem.Actions"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
}
}