Стандартные блоки для конфигурации компонента
Конфигурация для каждого компонента записывается в формате JSON и состоит из нескольких свойств конфигурации. Существует много различных типов свойств конфигурации: свойство может определять что-то простое, например строку, целое число или логическое значение, или что-то более сложное, например список элементов, возвращаемых из серверной системы. Каждый тип свойства имеет отличную от других внутреннюю структуру JSON. Понимание типов свойств и их структур поможет эффективно конфигурировать компоненты.
Для некоторых свойств имеется несколько опций конфигурации, и при выборе одной из опций для свойства становится доступным подсвойство, которое можно использовать для дальнейшего конфигурирования компонента. Заметьте, что эти подсвойства не отображаются в структурах или в приведенных ниже примерах, поскольку они разные. Дополнительные сведения см. в разделе Подсвойства и ключи контейнера.
* 
Каждое из приведенных ниже типов свойств может содержать ключ inTailoring с логическим значением. Этот ключ может использоваться только в тех случаях, когда имеется выделенная страница настройки для пользовательского задания.
Текстовое поле 
Наименование: PTC.Nav.DynamicForm.Textbox
Описание: текстовая строка. Используется в основном для меток.
Структура:
{
"value": "content of label"
}
Пример текстового поля для ключа progressBarMessage компонента "Ход выполнения задания":
{
"value":"[[PTC.Nav.TaskProgress.ProgressBarMessage]]"
}
Кнопка переключения 
Наименование: PTC.Nav.DynamicForm.Toggle
Описание: значение - это одна из двух опций. Доступны следующие варианты: true и false.
Структура:
{
"value": true
}
Пример переключения для ключа showImage компонента "Реквизиты элемента":
{
"value":false
}
Число 
Наименование: PTC.Nav.DynamicForm.Number
Описание: число.
Структура:
{
"value": 500
}
Пример числа для ключа maxTileCount компонента "Плитка":
{
"":{
"value":"5"
}
}
Селектор мэшапа 
Наименование: PTC.Nav.DynamicForm.MashupSelector
Описание: наименование мэшапа. Используется для создания ссылок на конкретный мэшап.
Структура:
{
"mashupName": "name of mashup",
}
Пример селектора мэшапа для ключа linkToMashup компонента "Задания":
{
"mashupName":"PTC.CRDetailedReviewAppMashup"
}
Переключатель 
Наименование: PTC.Nav.DynamicForm.RadioButton
Описание: значение - это одно из значений, указанных в определении компонента.
Структура:
{
"selectedKey" : "option1",
}
Пример переключателя для ключа selectionType компонента "Вложения":
{
"selectedKey":"multi"
}
В приведенном выше примере доступны следующие опции для selectedKey: none, single и multi.
Массив флажков 
Наименование: PTC.Nav.DynamicForm.CheckBoxArray
Описание: значение представляет собой один или несколько ключей, указанных в определении компонента.
Структура:
{
"selected":[
{
"key":"option1"
},
{
"key":"option3"
}
{
"key":"option6"
}
]
}
Пример массива флажков для ключа exportType в структуре детали:
{
"selected":[
{
"key":"exportToCsv"
"label": "[[PTC.Nav.ItemList.ExportCSVActionLabel]]",
},
{
"key":"exportToExcel"
"label": "[[PTC.Nav.ItemList.ExportCSVAsExcelActionLabel]]"
}
]
}
Выпадающий список 
Наименование: PTC.Nav.DynamicForm.Dropdown
Описание: значение представляет собой один или несколько ключей, указанных в определении компонента. В определении компонента указывается, будет ли раскрывающийся список принимать только один или несколько ключей.
Структура:
{
"selected":[
{
"key":"key1",
"data":{"…"}
},
{
"key":"key2",
"data":{"…"}
}
]
}
Пример раскрывающегося списка для ключа defaultExpansionLevel в структуре детали:
{
"defaultExpansionLevel":{
"selected":[
"3"
]
}
}
Список 
Наименование: PTC.Nav.DynamicForm.List
Описание: значение представляет собой один или несколько ключей, указанных в определении компонента. Также поддерживается упорядочение элементов списка с использованием ключа ordinal.
Структура:
{
"selected":[
{
"key":"key1"
},
{
"key":"key2"
}
]
}
Пример списка из ключа showImplementationActions компонента "Файлы конструкции":
{
"selected":[
{
"key":"downloadZip",
"ordinal":0
}
]
}
Селектор сущностей (BETA) 
Наименование: PTC.Nav.DynamicForm.EntitySelector
Описание: наименование сущности Windchill Navigate, например "Профиль вещи", "Шаблон вещи", "Вещь", "Мэшап", "Пользователь" или "Группа".
Структура:
{
"entityName": "name of entity"
}
Пример селектора сущности для ключа modelThingName компонента "Панель действий":
{
"entityName":"PTC.ActionBarModel.Thing"
}
Фильтр поля 
Наименование: PTC.Nav.DynamicForm.FieldFilter
Описание: объект filters параметра запроса в ThingWorx, где ключ fieldName - пустая строка.
Структура:
{
"filters" : 'filters' object of a TWX Query
}
Пример фильтра поля для ключа defaultSelectedFilterValues компонента "Задания":
{
"filters":{
"filters":[
{
"fieldName":"",
"type":"EQ",
"value":"POTENTIAL"
},
{
"fieldName":"",
"type":"EQ",
"value":"ACCEPTED"
}
],
"type":"Or"
}
}
Группа определений 
Наименование: PTC.Nav.DynamicForm.DefinitionGroup
Описание: местозаполнитель, который можно использовать для вставки дополнительных свойств конфигурации в конфигурацию компонента.
Структура:
{
"value": {JSON representation of additional data},
}
Пример группы определений для ключа implementationConfiguration компонента "Задания":
{
"value":{
"taskTypeFilter":{
"value":"[{\"activityName\": \"Conduct Online CRB Review\",\"workItemProcessTemplate\": \"Change Request Workflow\"}]"
}
}
}
Селектор атрибутов 
Наименование: PTC.Nav.DynamicForm.AttributesSelector
Описание: используется для выбора одного или нескольких атрибутов в серверной системе. Дополнительные сведения см. ниже в разделе Структура для выбора атрибутов.
Структура:
{
"selectedValues": {
"data": [{
"adapter": {
"thingName": "WindchillAdapterThing",
"instanceName": "JapanWindchill"
},
"itemListsData": [{
"objectType": "WT.PART.WTPart",
"items": [{
"id": "name of property",
"additionalData": {
"ContainerKey1":{additional properties},
"ContainerKey"2:{additional properties},
},
"ordinal": 2
},
{
"id": "name of property",
"additionalData": {
"ContainerKey1":{additional properties},
"ContainerKey2":{additional properties},
},
"ordinal": 1
}]
}
},
{
"adapter": {
"thingName": "WindchillAdapterThing",
"instanceName": "UKWindchill"
},
"itemListsData": [{
"objectType": "WT.PART.WTPart",
"items": [{
"id": "name of property",
"additionalData": {
"ContainerKey1":{additional properties},
"ContainerKey2":{additional properties},
},
"ordinal": 0
},
{
"id": "name of property",
"additionalData": {
"ContainerKey1":{additional properties},
"ContainerKey2":{additional properties},
},
"ordinal": 3
}]
}]
}]
},
}
Пример селектора атрибутов для ключа attributes компонента "Задания":
{
"selectedValues":{
"data":[
{
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
},
"itemListsData":[
{
"items":[
{
"additionalData":{
"implementationAttributesDefinition":{
"linkToMashup":{
"mashupName":"PTC.CRDetailedReviewAppMashup"
}
},
"itemListAttributesDefinition":{
"fieldTitleOverride":{
"value":""
}
}
},
"id":"Activity|Name",
"ordinal":0
},
{
"additionalData":{
"itemListAttributesDefinition":{
"fieldTitleOverride":{
"value":""
}
}
},
"id":"Subject|SubjectName",
"ordinal":1
},
{
"additionalData":{
"itemListAttributesDefinition":{
"fieldTitleOverride":{
"value":""
}
}
},
"id":"Activity|Deadline",
"ordinal":2
},
{
"additionalData":{
"itemListAttributesDefinition":{
"fieldTitleOverride":{
"value":""
}
}
},
"id":"Status#Display",
"ordinal":3
},
{
"additionalData":{
"itemListAttributesDefinition":{
"fieldTitleOverride":{
"value":""
}
}
},
"id":"Activity|Context|Name",
"ordinal":4
}
],
"objectType":"PTC.Workflow.WorkItem"
},
{
"items":[
{
"additionalData":{
"itemListAttributesDefinition":{
"fieldTitleOverride":{
"value":"PTC.Nav.TaskList.TaskProgress"
}
}
},
"id":"TaskProgress",
"ordinal":5
}
],
"objectType":"PTC.Workflow.WorkItem.Custom.Implementation"
}
]
}
]
}
}
Селектор наборов атрибутов 
Наименование: PTC.Nav.DynamicForm.AttributesSetsSelector
Описание: используется для получения атрибутов из серверной системы и разделения их на различные группы. Значение name - строка, представляющая собой имя набора атрибутов. Ключ data содержит ту же самую структуру, что и тип свойства "Селектор атрибутов". Дополнительные сведения см. ниже в разделе Структура для выбора атрибутов.
Структура:
{
"sets": [
{
"name": "Set Name 1",
"data": {Structure for Selecting Attributes}
},
{
"name": "Set Name 2",
"data": {Structure for Selecting Attributes}
}
],
}
Пример селектора наборов атрибутов для ключа attributes компонента "Задания":
{
"sets":[
{
"data":{
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"id":""
}
],
"objectType":""
}
],
"adapter":{
"instanceName":"PTC.WCAdapter",
"thingName":"windchill"
}
}
]
}
},
"name":""
}
]
}
Селектор массивов 
Наименование: PTC.Nav.DynamicForm.PatternSelector
Описание: используется для создания строки или массива, содержащего один или несколько атрибутов из серверной системы. Структура для этого типа свойства очень похожа на структуру для выбора атрибутов с добавлением ключа numericIdentifier для каждого атрибута и ключа pattern в конце. В ключе pattern символ % вместе с обозначением представляет атрибут, имеющий то же самое обозначение, что и значение его параметра numericIdentifier. В интерфейсе пользователя имя атрибута отображается в строке pattern.
Структура:
{
"selectedValues": {
"data": [{
"adapter": {
"thingName": "WindchillAdapterThing",
"instanceName": "JapanWindchill"
},
"itemListsData": [{
"objectType": "WT.PART.WTPart",
"items": [{
"id": "sold",
"numericIdentifier": 0
},
{
"id": "totalStock",
"numericIdentifier": 2
}]
}
},
{
"adapter": {
"thingName": "WindchillAdapterThing",
"instanceName": "UKWindchill"
},
"itemListsData": [{
"objectType": "WT.PART.WTPart",
"items": [{
"id": "totalStock",
"numericIdentifier": 1
}]
}]
}]
},
"pattern": "%0 and %2 out of %1"
Пример селектора массива для ключа primaryTitle компонента "Реквизиты задания":
{
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"numericIdentifier":1,
"id":"Subject|SubjectName"
}
],
"objectType":"PTC.Workflow.WorkItem"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
]
},
"pattern":"%1"
}
Структура для выбора атрибутов
Существует три типа свойств, которые можно использовать для задания поднабора атрибутов из серверной системы, которые должны отображаться в компоненте: селектор атрибутов, селектор наборов атрибутов и селектор массивов. В каждом из них используется аналогичная структура JSON, содержащая обязательные и дополнительные свойства
Обязательные свойства:
thingName - наименование вещи адаптера для серверной системы.
instanceName - наименование экземпляра адаптера серверной системы.
objectType - тип объекта атрибута.
id - ИД атрибута.
Дополнительные свойства:
additionalData - в это свойство включаются все соответствующие подсвойства.
ordinal - это свойство определяет порядок, в котором атрибуты отображаются в интерфейсе пользователя: на первом месте атрибут с порядковым номером 0, на втором - с номером 1 и т. д. Дополнительные сведения см. в разделе Использование свойства конфигурации "Порядковый номер".
hidden - это свойство в настоящее время доступно только для компонента "Список элементов". При значении true для этого свойства заданный атрибут из сетки "Список элементов" будет скрыт в интерфейсе пользователя, а также будет исключен из списка экспортируемых файлов. Если для этого свойства задано значение false или оно не включено в конфигурацию, атрибут не будет скрыт. Даже если атрибут скрыт, он все равно будет передан в свойство привязки selectedItems для выбранного элемента.
Следующий код отображает общую структуру для выбора атрибутов.
* 
В настоящее время Windchill Navigate поддерживает использование только одного адаптера и одного экземпляра в любой конкретной конфигурации компонента.
{
"selectedValues":{
"data":[
{
"adapter":{
"thingName":"WindchillAdapterThing",
"instanceName":"JapanWindchill"
},
"itemListsData":[
{
"objectType":"WT.PART.WTPart",
"items":[
{
"id":"name of property",
"additionalData":{
"ContainerKey1":{
"additional properties"
},
"ContainerKey2":{
"additional properties"
}
},
"ordinal":2,
"hidden": true
},
{
"id":"name of property",
"additionalData":{
"ContainerKey1":{
"additional properties"
},
"ContainerKey2":{
"additional properties"
}
},
"ordinal":1
}
]
},
{
"objectType":"PTC.Workflow.WorkItem",
"items":[
{
"id":"name of property",
"additionalData":{
"ContainerKey1":{
"additional properties"
},
"ContainerKey2":{
"additional properties"
}
},
"ordinal":0
},
{
"id":"name of property",
"additionalData":{
"ContainerKey1":{
"additional properties"
},
"ContainerKey2":{
"additional properties"
}
},
"ordinal":3
"hidden": false
}
]
}
]
}
]
}
}
Было ли это полезно?