작업 모음 구성 요소는 사용자가 사용할 수 있는 작업 범위를 표시하는 위젯입니다. 작업은 버튼 행으로 표시되고 해당 목록 상자에 표시됩니다. 구성 요소 구성 및 사용자 화면의 크기에 따라 버튼으로 표시되는 작업 수가 결정됩니다. 버튼으로 나타나지 않는 모든 작업은 줄임표(...) 작업을 클릭한 후 표시되는 목록 상자에 표시됩니다.
다음은 작업 모음 구성 요소를 보여주는 샘플 이미지입니다.
다음과 같은 방법으로 작업 모음 구성 요소를 구성할 수 있습니다.
작업은 서비스 또는 팝업을 활성화하도록 설계되었습니다. 서비스 또는 팝업 매쉬업은 ThingWorx에서 별도로 구성해야 합니다. 알림 메시지와 같은 추가 기능은 ThingWorx의 해당 서비스 또는 매쉬업에서 구성되어야 합니다. 작업 모음에서 URL 열기를 구성할 수도 있습니다. 예를 들어, Windchill에서 보기 버튼을 구성할 수 있습니다.
작업 모음은 항목 목록 및 항목 ID 구성 요소 내에 포함될 수 있습니다. 또한, 작업 모음이 부품 목록 보기, 부품 구조 보기 및 문서 구조 보기 작업의 미리 보기 창에도 포함될 수 있습니다. 미리보기 창은 지정된 작업의 오른쪽 상단에 있는 선택한 문서/부품 창을 대체합니다.
작업 모음, 부품 작업 모음 및 문서 작업 모음은 작업 모음 구성 요소에 사용할 수 있는 구성 유형입니다. 다음 표에는 이러한 각 구성에 사용할 수 있는 작업이 나열되어 있습니다. 또한 표에는 구성의 id 속성 값인 각 작업의 ID가 나열되어 있습니다.
다음 표에는 이 구성 요소를 구성하는 데 사용되는 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이면 버튼이 활성화됩니다. | | 해당 없음 | 선택 사항 |
fireEventOnFinish | 이 필드를 true로 설정하면 서비스가 실행을 마칠 때 이벤트 EventTriggered가 트리거되고 팝업이 닫히면 PopupClosed 이벤트가 트리거됩니다. | | 해당 없음 | 선택 사항 |
inputConstraints | 작업에 대한 입력 제약 조건을 결정합니다. 옵션: InputRequired, SingleInputOnly 및 NoInputRequired. InputRequired: 이 작업은 작동을 위해 입력을 수신해야 합니다. 입력이 비어 있고 아무 항목도 없으면 이 작업의 버튼이 비활성화됩니다. SingleInputOnly: 이 작업은 작동을 위해 단일 입력을 받아야 합니다. 입력이 비어 있거나 단일 항목이 둘 이상 있으면 이 작업의 버튼이 비활성화됩니다. NoInputRequired: 이 작업은 입력 없이 또는 입력을 사용하여 작동할 수 있습니다. | | 해당 없음 | 선택 사항 |
iconWhenEnabled | 이 필드가 지정되면 작업 버튼이 활성화될 때 작업의 버튼에 레이블 왼쪽의 아이콘이 포함됩니다. | | | |
entityName | 아이콘으로 사용할 미디어 엔티티의 이름입니다. | | | |
iconWhenDisabled | 이 필드가 지정되면 작업 버튼이 비활성화될 때 작업의 버튼에 레이블 왼쪽의 아이콘이 포함됩니다. | | | |
entityName | 아이콘으로 사용할 미디어 엔티티의 이름입니다. | | | |
activityType | 이 작업에서 서비스를 실행할지 아니면 팝업 매쉬업을 표시할지를 결정합니다. 옵션: openUrl(Windchill Navigate 9.3.4 이상 버전에서 사용 가능), popup, service 및 parent(Windchill Navigate 9.4.0 이상 버전에서 사용 가능). popup, service 및 parent에 대한 필수 하위 속성은 아래 표를 참조하십시오. | | 해당 없음 | 필수 사항 |
mashupName | 팝업으로 나타나는 매쉬업의 이름입니다. 이 속성은 activityType이 popup로 설정된 경우에만 사용됩니다. | | 해당 없음 | 필수 사항 |
redirectAfterPopupSuccess | 작업이 성공한 후 팝업이 닫히면 다른 매쉬업으로 리디렉션합니다. 팝업에서 수행한 작업의 성공 여부를 작업 모음에 알리려면 PTC.ActionBar.popupCloseParameters라는 세션 매개 변수가 성공 또는 실패를 표시하도록 설정해야 합니다. 예를 들어, 팝업 매쉬업에서 팝업이 수행한 작업이 완료된 후 실행되는 표현식이 있을 수 있으며 이 표현식에서 세션 매개 변수가 설정됩니다. 다음 예에서는 작업이 성공했으므로 JSON 속성 operationSuccessful이 true로 설정됩니다. sessionStorage.setItem("PTC.ActionBar.popupCloseParameters", JSON.stringify( { operationSuccessful: true } )); 이 속성은 activityType이 popup로 설정된 경우에만 사용됩니다. | | 해당 없음 | 선택 사항 |
popupWidth | 표시되는 팝업의 너비를 지정합니다. 이 속성은 activityType이 popup로 설정된 경우에만 사용됩니다. | | 1024 | 선택 사항 |
popupHeight | 표시되는 팝업의 너비를 지정합니다. 이 속성은 activityType이 popup로 설정된 경우에만 사용됩니다. | | 640 | 선택 사항 |
thingWithService | 실행할 서비스를 포함하는 사물의 이름입니다. 이 속성은 activityType이 service로 설정된 경우에만 사용됩니다. | | 해당 없음 | 필수 사항 |
serviceName | 실행할 서비스의 이름입니다. 이 속성은 activityType이 service로 설정된 경우에만 사용됩니다. | | 해당 없음 | 필수 사항 |
parameters | 이 선택적 필드를 사용하면 하드 코드된 매개 변수를 서비스 또는 팝업 매쉬업에 전달할 수 있습니다. 매개 변수는 JSONObject에서 정의되며 이스케이프된 인용구를 사용하여 JSON 객체의 문자열로 형식을 지정해야 합니다. 매개 변수는 구성 파일에 "{\"myParamName\": \"hardcodedValue\"}" 형식으로 입력해야 합니다. 아래 추가 정보를 참조하십시오. 이 속성은 activityType이 service 또는 popup으로 설정된 경우에만 사용됩니다. | | 해당 없음 | 선택 사항 |
openUrl | 작업 버튼에 URL을 설정할 수 있습니다. 유효한 값으로 설정된 경우, 작업 버튼을 선택하면 설정된 URL과 함께 새 창이나 새 탭이 열립니다. 이 속성은 activityType이 openUrl로 설정된 경우에만 사용됩니다. | | 해당 없음 | 선택 사항 |
parentId | 이 선택적 필드를 사용하면 상위 작업의 ID를 설정할 수 있습니다. 유효한 값으로 설정하면 해당 ID를 가진 상위 작업이 있음을 기호화하고 상위 메뉴 버튼 아래의 옵션이 되도록 작업을 설정합니다. parentId에 설정된 것과 동일한 ID를 가진 작업이 없는 경우 작업이 무시되고 표시되지 않습니다. 이 속성은 activityType이 parentId로 설정된 경우에만 사용됩니다. | | 상위 작업의 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_InputCco 및 serviceParam_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": {
"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": "PTC.Nav.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": "PTC.Nav.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"
}
}
]
}
}
}