進階自訂 > 使用可重複使用的元件 > 可用可重複使用的元件 > 動作列
  
動作列
定義與用法
動作列可重複使用的元件是顯示使用者可使用之動作範圍的小器具。動作會顯示為一列按鈕,並顯示在伴隨的下拉選單中。元件組態與使用者螢幕的大小決定顯示為按鈕的動作數。不會顯示為按鈕的任何動作都會顯示在下拉選單中。您可以透過下列方式配置動作列可重複使用的元件:
定義動作列中包括的動作
設定要顯示為按鈕的最大動作數目
根據動作的可用性設定可見度選項
定義動作的順序
定義動作是否需要輸入
為動作列選取所需樣式
動作的設計目的是為了啟動服務或快顯。服務或快顯混搭必須在 ThingWorx 中單獨配置。您必須在 ThingWorx 的適當服務或混搭中配置其他任何功能,例如快顯訊息。
動作列會包括在項目清單與項目標識可重複使用的元件內。
以下是顯示動作列可重複使用元件的範例圖像:
動作列可重複使用的元件沒有預先定義的組態。
繫結內容
可用於繫結的動作列元件有八個內容:
Disabled - 在混搭中禁用小器具的布林值。
EventTriggered - 如果將動作的 fireEventOnFinish 配置為 true,會在服務完成執行時觸發的事件或顯示快顯視窗。
Input - 是需要從後端系統獲取數據之輸入 ID 的 JSON。此資訊以 CCO (通用通訊物件) 格式提供。
PopupClosed - 關閉開啟的快顯時觸發的事件。
ServiceActionId - 按一下動作時,以服務動作的動作 ID 更新的字串。
ServiceActionIdChanged - ServiceActionId 當中的值變更時觸發的事件,這表示由動作列呼叫的服務已完成執行。
SubComponentConfiguration - 如果在執行時間內進行了組態 JSON 變更,則可繫結至組態 JSON 的 JSON。如果組態在執行時間不變更,請使用下一節所述的組態欄位。
組態欄位
下表顯示可用於配置此元件的 JSON 欄位。
屬性名稱
描述
類型
預設值
必要或選用
maxItemsToShow
顯示的動作按鈕最大數目。如果動作按鈕比指定的值多,將會在下拉選單中填入其他動作。
Integer
2
必要
modelThingName
包含具有下列簽名之服務的物件名稱:
public JSONObject GetActions(@ThingworxServiceParameter(name = "ccoJson", baseType = "JSON") JSONObject ccoJson)
此服務會以包含單一項目的 CCO 格式採用輸入。然後,它會傳回包含陣列的 JSONObject,該陣列將可用動作的 ID 對應至其從後端接收的標籤。請參閱下面範例 JSON 組態中的範例。
String
"PTC.ActionBar Model.Thing"
必要
actions
動作列中的可用動作。請參閱子内容:
String
N/A
必要
id
動作的 ID,如從後端系統接收的。請參閱下表中的子内容。
String
N/A
必要
objectType
要擷取其動作的物件類型。
String
N/A
必要
adapter
後端系統的來源組態。請參閱子内容:
String
N/A
必要
instanceName
連接器實例,表示用來連結後端系統的連接器。
String
"windchill"
必要
thingName
從中擷取資料的後端系統或轉接器的名稱。
String
"PTC.WCAdapter"
必要
id 下的組態欄位
屬性名稱
描述
類型
預設值
必要或選用
overrideLabel
此處設定的值會顯示為動作按鈕的標籤,以取代來自後端系統的值。欲本地化,請在值兩邊加上雙括弧。
String
N/A
選用
actionButtonVisibility
決定動作按鈕在何種條件下顯示,以及處於何種狀態。選項:AlwaysShownDisableUnavailableHideUnavailable。對於 AlwaysShown,按鈕始終可見且處於已啟用狀態。對於 DisableUnavailable,按鈕始終可見,但當動作無法用於所提供的選取項時,會禁用。對於 HideUnavailable,只有在動作適用于所提供的選取項時,按鈕才可見。
注意:有其他的組態會影響是否啟用或禁用按鈕。
String
N/A
必要
buttonStyle
決定按鈕的視覺樣式。選項:primarysecondarytertiarydangertransparent
String
N/A
必要
overrideSetDisabled
如果設定此欄位,則其值是決定是否應啟用或禁用按鈕的唯一係數。選項:truefalse。true 可確保按鈕已禁用,而 false 可確保按鈕已啟用。
Boolean
N/A
選用
activityType
決定此動作執行服務還是顯示快顯混搭。選項:popupservice。請參閱下表以取得快顯與服務的必要子内容。
String
N/A
必要
fireEventOnFinish
如果此欄位設定為 true,當服務完成執行時,會觸發 EventTriggered 事件,儅關閉快顯時,會觸發 PopupClosed 事件。
Boolean
N/A
選用
inputConstraints
決定動作的輸入條件約束。選項:InputRequiredSingleInputOnlyNoInputRequired
InputRequired:此動作必須接收輸入才能運作。如果輸入為空且不包含任何項目,則會禁用此動作的按鈕。
SingleInputOnly:此動作必須接收單一輸入才能運作。如果輸入為空或包含多個項目,則會禁用此動作的按鈕。
NoInputRequired:此動作可在沒有任何輸入或有輸入的情況下運作。
String
N/A
選用
ordinal
動作按鈕出現的順序。具有最低序數的動作會顯示在初始最左邊的位置。允許使用負值。
Integer
N/A
必要
iconWhenEnabled
如果指定此欄位,當啟用動作按鈕時,動作的按鈕會包含圖示,位於標籤左側。
String
N/A
選用
entityName
要作為圖示使用之媒體實體的名稱。
String
N/A
選用
iconWhenDisabled
如果指定此欄位,當禁用動作按鈕時,動作的按鈕會包含圖示,位於標籤左側。
String
N/A
選用
entityName
要作為圖示使用之媒體實體的名稱。
String
N/A
選用
popupactivityType 的子内容
屬性名稱
描述
類型
預設值
必要或選用
mashupName
顯示為快顯的混搭名稱。
String
N/A
必要
redirectAfterPopupSuccess
在成功操作後關閉快顯時,會重新導向至另一個混搭。
欲通知動作欄快顯所執行的操作成功完成或未成功完成,您需要設定名為 PTC.ActionBar.popupCloseParameters 的工作階段參數,以指示成功或失敗。例如,在快顯混搭中,可以有一個運算式,該運算式會在快顯執行的操作完成之後執行,且該運算式會設定工作階段參數。在下列範例中,因為操作成功,JSON 屬性 operationSuccessful 設定為 true:
sessionStorage.setItem("PTC.ActionBar.popupCloseParameters", JSON.stringify( { operationSuccessful: true } ));
String
N/A
選用
popupWidth
指定顯示的快顯寬度。如果將此欄位保留空白,則快顯的預設寬度將為 1024。
Integer
N/A
選用
popupHeight
指定顯示的快顯寬度。如果將此欄位保留空白,則快顯的預設寬度將為 640。
Integer
N/A
選用
serviceactivityType 的子内容
屬性名稱
描述
類型
預設值
必要或選用
thingWithService
包含要執行之服務的物件名稱。
String
N/A
必要
serviceName
要執行的服務名稱。
String
N/A
必要
parameters
此選用欄位可讓我們將硬式編碼參數傳遞至服務。參數在 JSONObject 中定義,但必須將其格式化為 JSON 物件的字串,並附帶轉義引號。參數應以 "{\"myParamName\": \"hardcodedValue\"}" 形式輸入到組態檔案中。請參閱下面的其他資訊。
StringRepresentationOfJSONObject
N/A
選用
使用 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。參數 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"
}
}
]
}
}