작업 모음(베타)
정의 및 사용
작업 모음 구성 요소는 사용자가 사용할 수 있는 일련의 작업을 표시하는 위젯입니다. 작업은 버튼 행으로 표시되고 해당 목록 상자에 표시됩니다. 구성 요소 구성 및 사용자 화면의 크기에 따라 버튼으로 표시되는 작업 수가 결정됩니다. 버튼으로 표시되지 않는 작업은 목록 상자에 표시됩니다.
다음은 작업 모음 구성 요소를 보여주는 샘플 이미지입니다.
다음과 같은 방법으로 작업 모음 구성 요소를 구성할 수 있습니다.
작업 모음에 포함되는 작업을 정의합니다.
버튼으로 표시할 최대 작업 수를 설정합니다.
사용 가능 여부에 따라 작업의 표시 유형 옵션을 설정합니다.
작업 순서를 정의합니다.
작업에 입력이 필요한지 여부를 정의합니다.
작업 모음에 대해 원하는 스타일을 선택합니다.
작업은 서비스 또는 팝업을 활성화하도록 설계되었습니다. 서비스 또는 팝업 매쉬업은 ThingWorx에서 별도로 구성해야 합니다. 알림 메시지와 같은 추가 기능은 ThingWorx의 해당 서비스 또는 매쉬업에서 구성되어야 합니다.
작업 모음은 항목 목록 및 항목 ID 구성 요소 내에 포함될 수 있습니다.
작업 모음 구성 요소에 사용할 수 있는 미리 정의된 구성이 없습니다.
바인딩 속성 
입력
속성 이름
설명
속성 유형
Disabled
매쉬업에서 위젯을 비활성화합니다.
부울
Input
백엔드 시스템에서 불러올 데이터를 식별하는 데 사용됩니다.
CCO 형식의 JSON
ServiceActionId
작업을 클릭하면 이 문자열이 서비스 작업의 작업 ID로 업데이트됩니다.
문자열
SubComponentConfiguration
런타임 중 변경되면 구성을 이 속성에 바인딩합니다.
JSON
출력
속성 이름
설명
속성 유형
EventTriggered
작업의 fireEventOnFinish 구성 속성이 true로 구성된 경우 서비스가 실행을 마치거나 팝업이 표시되면 트리거되는 이벤트입니다.
이벤트
ServiceActionIdChanged
ServiceActionId의 값이 변경되어 작업 모음에서 호출한 서비스가 실행을 끝냈음을 나타내면 트리거되는 이벤트입니다.
이벤트
PopupClosed
열린 팝업이 닫히면 트리거되는 이벤트입니다.
이벤트
구성 등록 정보 
다음 표에는 이 구성 요소를 구성하는 데 사용되는 JSON 속성이 나와 있습니다.
구성 구조에 대한 자세한 내용은 구성 요소 구성 구조를 참조하십시오.
하위 속성에 대한 자세한 내용은 하위 속성 및 컨테이너 키를 참조하십시오.
속성 이름
설명
속성 유형
기본값
필수 사항 또는 선택 사항
maxItemsToShow
표시되는 작업 버튼의 최대 수입니다. 지정된 값보다 작업 버튼이 많은 경우에는 목록 상자에 추가 작업이 채워집니다.
2
필수 사항
modelThingName
다음 서명이 있는 서비스를 포함하는 사물의 이름입니다.
public JSONObject GetActions(@ThingworxServiceParameter(name = "ccoJson", baseType = "JSON") JSONObject ccoJson)
이 서비스는 단일 항목을 포함하는 CCO 형식의 입력을 받습니다. 그런 다음 사용 가능한 작업의 ID를 백 엔드에서 받은 해당 레이블에 매핑하는 배열을 포함하는 JSONObject를 반환합니다. 아래의 샘플 JSON 구성에 있는 예를 참조하십시오.
PTC.ActionBar Model.Thing
필수 사항
actions
백엔드 시스템에서 데이터를 불러와야 하는 작업 목록입니다. 컨테이너 키는 actionConfiguration입니다. 아래 하위 특성을 참조하십시오.
해당 없음
필수 사항
overrideLabel
여기에 설정된 값은 작업 버튼의 레이블로 표시되며 백 엔드 시스템에서 가져온 값을 재정의합니다. 로컬리제이션하려면 이중 괄호 안에 값을 넣으십시오.
해당 없음
선택 사항
actionButtonVisibility
작업 버튼이 표시되는 조건 및 상태를 결정합니다. 옵션은 AlwaysShown, DisableUnavailable, HideUnavailable입니다. AlwaysShown의 경우 버튼은 항상 표시되고 활성화됩니다. DisableUnavailable의 경우 버튼은 항상 표시되지만 지정된 선택에 대해 작업을 사용할 수 없을 때 비활성화됩니다. HideUnavailable의 경우 버튼은 지정된 선택에 대해 작업을 사용할 수 있을 때에만 표시됩니다.
참고: 버튼의 활성화 또는 비활성화에 영향을 주는 다른 구성이 있습니다.
해당 없음
필수 사항
buttonStyle
버튼의 표시 스타일을 결정합니다. 옵션은 primary, secondary, tertiary, danger, transparent입니다.
해당 없음
필수 사항
overrideSetDisabled
이 필드를 설정하면 해당 값이 버튼의 활성화/비활성화 여부를 결정하는 유일한 요소가 됩니다. 옵션은 true, false입니다. true이면 버튼이 비활성화되고, false이면 버튼이 활성화됩니다.
해당 없음
선택 사항
activityType
이 작업에서 서비스를 실행할지 아니면 팝업 매쉬업을 표시할지를 결정합니다. 옵션은 popup, service입니다. 팝업 및 서비스에 대한 필수 하위 속성은 아래 표를 참조하십시오.
해당 없음
필수 사항
fireEventOnFinish
이 필드를 true로 설정하면 서비스가 실행을 마칠 때 이벤트 EventTriggered가 트리거되고 팝업이 닫히면 PopupClosed 이벤트가 트리거됩니다.
해당 없음
선택 사항
inputConstraints
작업에 대한 입력 제약 조건을 결정합니다. 옵션은 InputRequired, SingleInputOnlyNoInputRequired입니다.
InputRequired: 이 작업은 작동을 위해 입력을 수신해야 합니다. 입력이 비어 있고 아무 항목도 없으면 이 작업의 버튼이 비활성화됩니다.
SingleInputOnly: 이 작업은 작동을 위해 단일 입력을 받아야 합니다. 입력이 비어 있거나 단일 항목이 둘 이상 있으면 이 작업의 버튼이 비활성화됩니다.
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
실행할 서비스를 포함하는 사물의 이름입니다.
이 속성은 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가 있습니다(해당 매개 변수를 받을 수 있는 서비스 서명을 정의할 경우). 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"
}
}
]
}
}
}
도움이 되셨나요?