操作バー (ベータ)
定義と用法
操作バーコンポーネントは、ユーザーが使用できる一連の操作を表示するウィジェットです。これらの操作は、一列に並んだボタンと、付随のリストボックスに表示されます。コンポーネントのコンフィギュレーションとユーザーの画面のサイズによって、ボタンとして表示される操作の数が決まります。ボタンとして表示されていない操作は、リストボックスに表示されます。
操作バーコンポーネントのサンプルイメージを以下に示します。
次の方法で、操作バーコンポーネントを設定できます。
操作バーに含める操作を定義する
ボタンとして表示する操作の最大数を設定する
その可用性に応じて、操作の表示オプションを設定する
操作の順序を定義する
操作に入力が必要かどうかを定義する
操作バーに必要なスタイルを選択する
操作は、サービスまたはポップアップのいずれかを起動するように設計されています。サービスまたはポップアップマッシュアップは、ThingWorx で個別に設定する必要があります。トーストメッセージなどの追加機能は、ThingWorx の適切なサービスまたはマッシュアップで設定する必要があります。
操作バーは、アイテムリストコンポーネントとアイテム ID コンポーネントの内部に含めることができます。
操作バーコンポーネントには、定義済みコンフィギュレーションがありません。
バインドプロパティ 
入力
プロパティ名
説明
プロパティタイプ
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 に設定するとボタンが有効になります。
なし
オプション
activityType
この操作によって、サービスを実行するか、ポップアップマッシュアップを表示するかを決定します。オプション: popupservice。ポップアップおよびサービスに必要なサブプロパティについては、以下のテーブルを参照してください。
なし
必須
fireEventOnFinish
このフィールドが true に設定されている場合、サービスの実行が完了するとイベント EventTriggered がトリガーされ、ポップアップが閉じるとイベント PopupClosed がトリガーされます。
なし
オプション
inputConstraints
操作の入力制約を決定します。オプション: InputRequiredSingleInputOnly、および NoInputRequired
InputRequired: この操作を実行するには、入力が必要です。入力が空でアイテムが含まれていない場合、この操作のボタンは無効になります。
SingleInputOnly: この操作を実行するには、単一の入力が必要です。入力が空であるか、2 つ以上のアイテムが含まれている場合、この操作のボタンは無効になります。
NoInputRequired: 入力の有無にかかわらず、この操作を実行できます。
なし
オプション
iconWhenEnabled
このフィールドが指定されている場合、操作ボタンが有効になっているときに、操作のボタンのラベルの左側にアイコンが表示されます。
entityName
アイコンとして使用するメディアエンティティの名前。
iconWhenDisabled
このフィールドが指定されている場合、操作ボタンが無効になっているときに、操作のボタンのラベルの左側にアイコンが表示されます。
entityName
アイコンとして使用するメディアエンティティの名前。
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 に設定されている場合にのみ使用されます。
なし
オプション
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"
}
}
]
}
}
}
これは役に立ちましたか?