De forma estándar, cada componente base se entrega con una o varias implementaciones. Cada implementación está diseñada para mostrar información específica en la interfaz de usuario. Para mostrar información diferente, se puede personalizar el componente mediante la creación de una implementación personalizada. Por ejemplo, de forma estándar el componente base Identidad del elemento se entrega con dos implementaciones, Identidad del artículo e Identidad de la tarea. También se puede crear una implementación personalizada del componente base Identidad del elemento, como por ejemplo la identidad del documento.
La creación de una implementación personalizada para un componente implica extender un componente base existente o una implementación existente y, a continuación, reemplazar los servicios necesarios. En las siguientes secciones se incluyen pasos detallados y un ejemplo.
Para crear una implementación personalizada a partir de un componente base existente, realice los pasos siguientes:
1. Elija un componente base existente para utilizarlo como punto de partida para la implementación personalizada. Busque el componente base en la tabla siguiente y anote su plantilla de cosa y proyecto, según su versión de ThingWorx Navigate. Necesitará esta información más tarde.
Componente base | Plantilla de cosa | Proyecto (ThingWorx Navigate 9.0) | Proyecto (ThingWorx Navigate 9.1 y versiones posteriores) |
---|
Atributos | PTC.Nav.AttributesBusinessLogicThingTemplate | PTC.Nav.AttributesProject | PTC.Nav.AttributesBusinessLogicProject |
Identidad del elemento | PTC.Nav.ItemIdentityBusinessLogicThingTemplate | PTC.Nav.ItemIdentityProject | PTC.Nav.ItemIdentityBusinessLogicProject |
Lista de elementos | PTC.Nav.ItemListBusinessLogicThingTemplate | PTC.Nav.ItemListProject | PTC.Nav.ItemListBusinessLogicProject |
Progreso | PTC.Nav.ProgressBusinessLogicThingTemplate | PTC.Nav.ProgressProject | PTC.Nav.ProgressBusinessLogicProject |
Mosaicos | PTC.Nav.TilesBusinessLogicThingTemplate | PTC.Nav.TilesProject | PTC.Nav.TilesBusinessLogicProject |
2. Cree un proyecto para la implementación personalizada. En Dependencias del proyecto, introduzca el proyecto indicado en el paso 1. Guarde el proyecto.
3. Cree una plantilla de cosa para la implementación personalizada. En Proyecto, introduzca el proyecto creado en el paso 2. En Plantilla de cosa base, introduzca la plantilla de cosa indicada en el paso 1.
4. Cree una cosa para la implementación personalizada. En Proyecto, introduzca el proyecto creado en el paso 2. En Plantilla de cosa base, introduzca la plantilla de cosa creada en el paso 3.
5. En la cosa que se ha creado, pulse en la ficha
Servicios. A continuación, pulse en
![](../../../ThingWorx_Navigate/images/pencil_icon.png)
para sustituir el servicio
GetImplementationConfigurationVersion y definir una versión para la implementación. Se puede utilizar cualquier valor para esta versión. Guarde la cosa.
6. Identifique los servicios que se deben sustituir para la implementación personalizada. Para obtener más información sobre los servicios de los componentes de fábrica, busque el tema correspondiente al componente que se está extendiendo en
Componentes disponibles y consulte la tabla Servicios de personalización.
7. En la plantilla de cosa que se ha creado, pulse en la ficha
Servicios. Pulse en
![](../../../ThingWorx_Navigate/images/pencil_icon.png)
para sustituir los servicios necesarios. Se recomienda sustituir el servicio
GetConfigurations antes de sustituir otros servicios.
En el código del servicio GetConfigurations, defina la versión de implementationConfigurationVersion para que coincida con la versión definida de GetImplementationConfigurationVersion en el paso 5. Si se omite este paso, se pueden producir problemas de compatibilidad en las versiones futuras de ThingWorx Navigate.
8. Sustituya los servicios necesarios restantes. Al sustituir un servicio que recibe la configuración como un parámetro, llame primero al servicio Migrate en el código y transfiera las versiones base y de implementación.
◦ Para determinar el valor que se utilizará para targetBaseVersion en el servicio Migrate, ejecute el servicio GetBaseConfigurationVersion en la cosa que se ha creado en el paso 4. No llame al código de servicio GetBaseConfigurationVersion y devuelva su valor.
◦ Al definir targetImplementationVersion en el servicio Migrate, utilice la versión que se ha definido anteriormente en el paso 5.
| Al sustituir servicios, no se deben sustituir servicios con la categoría PTC.Nav.Private. |
9. Guarde la plantilla de cosa. La implementación personalizada ya está lista para utilizarla. Para utilizar la implementación, cree un mashup. Añada el componente base para la implementación al mashup y pulse en
![](../../../ThingWorx_Navigate/images/gear_icon.png)
. En el menú desplegable
Tipo de configuración, seleccione la configuración que pertenezca a su implementación personalizada.
Para crear una implementación personalizada a partir de una implementación existente, realice los pasos siguientes:
1. Elija una implementación existente para utilizarla como punto de partida para la implementación personalizada.
◦ Si se utiliza una implementación de fábrica, se debe buscar en la tabla siguiente e indicar su plantilla de cosa y proyecto, según su versión de ThingWorx Navigate. Necesitará esta información más tarde.
◦ Si se utiliza una implementación personalizada, se debe indicar su plantilla de cosa y proyecto. Necesitará esta información más tarde.
Implementación | Plantilla de cosa | Proyecto (ThingWorx Navigate 9.0) | Proyecto (ThingWorx Navigate 9.1 y versiones posteriores) |
---|
Actividad | PTC.Nav.ActivityBusinessLogicThingTemplate | PTC.Nav.ItemListProject | PTC.Nav.ActivityBusinessLogicProject |
Elementos afectados | PTC.Nav.AffectedItemsBusinessLogicThingTemplate | PTC.Nav.ItemListProject | PTC.Nav.AttachmentsBusinessLogicProject |
Adjuntos | PTC.Nav.AttachmentsBusinessLogicThingTemplate | PTC.Nav.ItemListProject | PTC.Nav.AffectedItemsBusinessLogicProject |
Atributos genéricos | PTC.Nav.AttributesGenericBusinessLogicThingTemplate | PTC.Nav.AttributesProject | PTC.Nav.AttributesGenericBusinessLogicProject |
Identidad del artículo | PTC.Nav.PartIdentityBusinessLogicThingTemplate | PTC.Nav.ItemIdentityProject | PTC.Nav.PartIdentityBusinessLogicProject |
Identidad de la tarea | PTC.Nav.TaskIdentityBusinessLogicThingTemplate | PTC.Nav.ItemIdentityProject | PTC.Nav.TaskIdentityBusinessLogicProject |
Progreso de la tarea | PTC.Nav.TaskProgressBusinessLogicThingTemplate | PTC.Nav.ProgressProject | PTC.Nav.TaskProgressBusinessLogicProject |
Tareas | PTC.Nav.TaskListBusinessLogicThingTemplate | PTC.Nav.ItemListProject | PTC.Nav.TaskListBusinessLogicProject |
Mosaicos genéricos | PTC.Nav.TilesGenericBusinessLogicThingTemplate | PTC.Nav.TilesProject | PTC.Nav.TilesGenericBusinessLogicProject |
2. Cree un proyecto para la implementación personalizada. En Dependencias del proyecto, introduzca el proyecto indicado en el paso 1. Guarde el proyecto.
3. Cree una plantilla de cosa para la implementación personalizada. En Proyecto, introduzca el proyecto creado en el paso 2. En Plantilla de cosa base, introduzca la plantilla de cosa indicada en el paso 1.
4. Cree una cosa para la implementación personalizada. En Proyecto, introduzca el proyecto creado en el paso 2. En Plantilla de cosa base, introduzca la plantilla de cosa creada en el paso 3.
5. En la cosa que se ha creado, pulse en la ficha Servicios.
◦ Pulse en
![](../../../ThingWorx_Navigate/images/pencil_icon.png)
para sustituir
GetBaseMigrationVersion con su versión de
ThingWorx Navigate, por ejemplo 9.0.0 o 9.1.0.
◦ Pulse en
![](../../../ThingWorx_Navigate/images/pencil_icon.png)
para sustituir
GetImplementationConfigurationVersion con su versión de
ThingWorx Navigate, por ejemplo 9.0.0 o 9.1.0.
6. Guarde la cosa.
7. Identifique los servicios que se deben sustituir para la implementación personalizada. Para obtener más información sobre los servicios de los componentes de fábrica, busque el tema correspondiente al componente que se está extendiendo en
Componentes disponibles y consulte la tabla Servicios de personalización.
8. En la plantilla de cosa que se ha creado, pulse en la ficha
Servicios. Pulse en
![](../../../ThingWorx_Navigate/images/pencil_icon.png)
para sustituir los servicios necesarios. Se recomienda sustituir el servicio
GetConfigurations antes de sustituir otros servicios.
| • Al sustituir el servicio GetConfigurations, no se soporta el cambio de la estructura de configuración con respecto a su estructura de fábrica. Solo se deben cambiar valores de las propiedades JSON individuales. Para obtener más información, consulte el tema Ejemplos de cambios en las propiedades de configuración. • En la configuración, asegúrese de definir el valor de la propiedad implementationConfigurationVersion para que sea el mismo que el valor devuelto por el servicio GetImplementationConfigurationVersion. |
9. Sustituya los servicios necesarios restantes. Al sustituir un servicio que recibe la configuración como un parámetro, llame primero al servicio Migrate en el código y transfiera las versiones base y de implementación.
◦ Para determinar la versión base que se debe transferir al servicio Migrate, ejecute el servicio GetBaseConfigurationVersion en la cosa que se ha creado en el paso 4. No llame al servicio GetBaseConfigurationVersion y devuelva su valor.
◦ Para determinar la versión de implementación que se transferirá al servicio Migrate, ejecute el servicio GetImplementationConfigurationVersion en la cosa que se ha creado en el paso 4. No llame al servicio GetImplementationConfigurationVersion y devuelva su valor.
| Al sustituir servicios, no se deben sustituir servicios con la categoría PTC.Nav.Private. |
10. Guarde la plantilla de cosa. La implementación personalizada ya está lista para utilizarla. Para utilizar la implementación, cree un mashup. Añada el componente base para la implementación al mashup y pulse en
![](../../../ThingWorx_Navigate/images/gear_icon.png)
. En el menú desplegable
Tipo de configuración, seleccione la configuración que pertenezca a su implementación personalizada.
En el siguiente ejemplo se muestra cómo crear una implementación personalizada denominada Lista de artículos, que es una implementación del componente base Lista de elementos. Lista de artículos recibe un artículo como entrada y devuelve el primer nivel de artículos que contiene.
| El siguiente ejemplo está diseñado para funcionar en ThingWorx Navigate 9.0 y los valores de versión utilizados en fragmentos de código son correctos para esa versión de ThingWorx Navigate. Para seguir este ejemplo en una versión posterior de ThingWorx Navigate, asegúrese de utilizar los valores de versión correctos en el código. |
1. En ThingWorx Composer, cree un nuevo proyecto denominado Demo.PartsListProject.
◦ En ThingWorx Navigate 9.0, introduzca PTC.Nav.ItemListProject en Dependencias del proyecto.
◦ En ThingWorx Navigate 9.1 y versiones posteriores, introduzca PTC.Nav.ItemListBusinessLogicProject en Dependencias del proyecto.
2. Cree una nueva plantilla de cosa denominada Demo.PartsListBusinessLogicThingTemplate. Defina el Proyecto en Demo.PartsListProject y defina la Plantilla de cosa base en PTC.Nav.ItemListBusinessLogicThingTemplate.
3. Cree una cosa denominada Demo.PartsListBusinessLogicThing. Defina el Proyecto en Demo.PartsListProject y defina la Plantilla de cosa base en Demo.PartsListBusinessLogicThingTemplate.
4. Pulse en la ficha
Servicios y busque el servicio
GetImplementationConfigurationVersion. Pulse en
![](../../../ThingWorx_Navigate/images/pencil_icon.png)
para sustituir el servicio y definir la versión en 1.0.0 con el siguiente código:
result = "1.0.0";
Pulse en Terminado. Luego pulse en Guardar para guardar la cosa.
5. Verifique la tabla Servicios de personalización para la
Lista de elementos e identifique los servicios que se deben sustituir en la plantilla de cosa. Para esta implementación personalizada, es necesario sustituir tres servicios:
◦ GetConfigurations: este servicio devuelve las configuraciones disponibles para la implementación. Se editará para definir la configuración de Lista de artículos.
◦ GetImplementationLabel: este servicio devuelve el nombre de la implementación tal como aparece en el Mashup Builder. Se definirá para que se muestre el nombre Parts List Demo.
◦ GetItems: este servicio recibe la entrada y la configuración como parámetros y devuelve un JSON en formato
CCO con los datos que se muestran en la interfaz de usuario de Lista de elementos. Se definirá para que devuelva las piezas de primer nivel de un artículo determinado, así como los atributos de las piezas de primer nivel.
6. Abra la plantilla de cosa Demo.ItemListBusinessLogicThingTemplate. Pulse en la ficha Servicios.
7. Pulse en
![](../../../ThingWorx_Navigate/images/pencil_icon.png)
para sustituir el servicio
GetConfigurations. Pegue el siguiente código en el servicio. Este código incluye una configuración para Lista de artículos que se rotula como
Parts List en el Mashup Builder y en la interfaz de usuario de
ThingWorx Navigate.
result = {
"partsList": {
"label": "Parts List",
"configuration": {
"selectionType": {
"selectedKey": "single"
},
"waitForInput": {
"value": true
},
"actionBarConfiguration": {
"value": {
"actionBarConfigurationJSON": {
"value": ""
}
}
},
"baseConfigurationVersion": {
"value": "9.0.0"
},
"implementationConfigurationVersion": {
"value": "1.0.0"
},
"defaultSortFields": {
"selectedValues": {
"data": [{
"itemListsData": [{
"items": [{
"additionalData": {
"itemListDefaultSortFieldDefinition": {
"defaultSortDirection": {
"selectedKey": "asc"
}
}
},
"id": "Name"
}
],
"objectType": "PTC.ProdMgmt.Part"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
}
},
"attributes": {
"selectedValues": {
"data": [{
"itemListsData": [{
"items": [{
"id": "Name",
"ordinal": 1
}, {
"id": "State#Display",
"ordinal": 2
}, {
"id": "Version",
"ordinal": 3
}, {
"id": "Number",
"ordinal": 0
}, {
"id": "ID",
"ordinal": 4
}
],
"objectType": "PTC.ProdMgmt.Part"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
},
"inTailoring": false
},
"label": {
"value": "Parts List"
},
"showExportAction": {
"value": true
},
"enableSearch": {
"additionalData": {
"itemListSearchDefinition": {
"searchHintText": {
"value": "Find"
}
}
},
"value": true
},
"maxNumberOfRowsInGrid": {
"inTailoring": false,
"value": 50
}
}
}
};
A continuación se muestra otro código de ejemplo para GetConfigurations que contiene dos configuraciones en lugar de una. La primera configuración es la misma que en el código anterior. La segunda configuración es para una versión mini de la Lista de artículos. Solo muestra tres atributos y un máximo de cinco filas. Se rotula como Parts List mini en el Mashup Builder y Parts List en la interfaz de usuario de ThingWorx Navigate.
result = {
"partsList": {
"label": "Parts List",
"configuration": {
"selectionType": {
"selectedKey": "single"
},
"waitForInput": {
"value": true
},
"actionBarConfiguration": {
"value": {
"actionBarConfigurationJSON": {
"value": ""
}
}
},
"baseConfigurationVersion": {
"value": "9.0.0"
},
"implementationConfigurationVersion": {
"value": "1.0.0"
},
"defaultSortFields": {
"selectedValues": {
"data": [{
"itemListsData": [{
"items": [{
"additionalData": {
"itemListDefaultSortFieldDefinition": {
"defaultSortDirection": {
"selectedKey": "asc"
}
}
},
"id": "Name"
}
],
"objectType": "PTC.ProdMgmt.Part"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
}
},
"attributes": {
"selectedValues": {
"data": [{
"itemListsData": [{
"items": [{
"id": "Name",
"ordinal": 1
}, {
"id": "State#Display",
"ordinal": 2
}, {
"id": "Version",
"ordinal": 3
}, {
"id": "Number",
"ordinal": 0
}, {
"id": "ID",
"ordinal": 4
}
],
"objectType": "PTC.ProdMgmt.Part"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
},
"inTailoring": false
},
"label": {
"value": "Parts List"
},
"showExportAction": {
"value": true
},
"enableSearch": {
"additionalData": {
"itemListSearchDefinition": {
"searchHintText": {
"value": "Find"
}
}
},
"value": true
},
"maxNumberOfRowsInGrid": {
"inTailoring": false,
"value": 50
}
}
},
"partsListMini": {
"label": "Parts List mini",
"configuration": {
"selectionType": {
"selectedKey": "single"
},
"waitForInput": {
"value": true
},
"actionBarConfiguration": {
"value": {
"actionBarConfigurationJSON": {
"value": ""
}
}
},
"baseConfigurationVersion": {
"value": "9.0.0"
},
"implementationConfigurationVersion": {
"value": "1.0.0"
},
"defaultSortFields": {
"selectedValues": {
"data": [{
"itemListsData": [{
"items": [{
"additionalData": {
"itemListDefaultSortFieldDefinition": {
"defaultSortDirection": {
"selectedKey": "asc"
}
}
},
"id": "Name"
}
],
"objectType": "PTC.ProdMgmt.Part"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
}
},
"attributes": {
"selectedValues": {
"data": [{
"itemListsData": [{
"items": [{
"id": "Name",
"ordinal": 1
}, {
"id": "Version",
"ordinal": 2
}, {
"id": "Number",
"ordinal": 0
}
],
"objectType": "PTC.ProdMgmt.Part"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
},
"inTailoring": false
},
"label": {
"value": "Parts List"
},
"showExportAction": {
"value": true
},
"enableSearch": {
"additionalData": {
"itemListSearchDefinition": {
"searchHintText": {
"value": "Find"
}
}
},
"value": true
},
"maxNumberOfRowsInGrid": {
"inTailoring": false,
"value": 5
}
}
}
};
Pulse en Terminado después de añadir el código.
8. Sustituya el servicio GetImplementationLabel. Defina la etiqueta de implementación mediante el siguiente código:
result = "Parts List Demo";
Pulse en Terminado.
9. El servicio GetItems recuperará las piezas de primer nivel de Windchill mediante el proceso siguiente:
a. Convierta la parte de atributos de la configuración a la estructura de
CCO mediante el servicio
ConvertAttributesToCCO que se creará.
b. Pase el JSON resultante en formato
CCO al servicio
GetRelatedItems en
PTC.WCAdapter. Este servicio recupera los datos como objetos
UsageLink.
c. Convierta los objetos UsageLink en objetos Part mediante el servicio ConvertUsageLinkToPart que se creará
Antes de sustituir el servicio GetItems, es necesario crear los servicios ConvertAttributesToCCO y ConvertUsageLinkToPart.
10. Cree un nuevo servicio y asígnele el nombre ConvertAttributesToCCO. En Entradas, añada las siguientes entradas:
◦ configuration, que tiene el Tipo base de JSON
◦ attributesPrefix, que tiene el Tipo base de STRING
◦ replaceObjectType, que tiene el Tipo base de STRING
En Salida, seleccione JSON en el menú desplegable.
11. Pegue el siguiente código en el servicio ConvertAttributesToCCO:
let attributesData = configuration.attributes.selectedValues;
attributesPrefix = attributesPrefix || "";
let objectType = replaceObjectType || attributesData.data[0].itemListsData[0].objectType;
attributesData.data[0].itemListsData[0].objectType = objectType;
let items = attributesData.data[0].itemListsData[0].items;
let newItems = [];
let newObj = {};
let hasID = false;
//convert to CCO
for(var i = 0; i < items.length; i++) {
let item = items[i];
if (item.id === 'ID') {
hasID = true;
}
newObj[attributesPrefix + item.id] = {"value":""};
}
//add ID if needed
if (!hasID) {
newObj[attributesPrefix + 'ID'] = {"value":""};
}
newItems.push (newObj);
attributesData.data[0].itemListsData[0].items = newItems;
//create date
var dateValue = new Date();
var y = dateValue.getFullYear();
var mo = dateValue.getMonth()+1;
if(mo<10) {mo='0'+mo;}
var d = dateValue.getDate();
if(d<10) {d='0'+d;}
//create time
var h = dateValue.getHours();
if(h<10) {h='0'+h;}
var mi = dateValue.getMinutes();
if(mi<10) {mi='0'+mi;}
var s = dateValue.getSeconds();
if(s<10) {s='0'+s;}
var ms = dateValue.getMilliseconds();
if(ms<10) {ms='00'+ms;} else {if(ms>=10 && ms<100) {ms='0'+ms;}}
attributesData.timeStamp = y + "-" + mo + "-" + d + " " + h + ":" + mi + ":" + s + "." + ms;
attributesData.version = "";
attributesData.statusMessage = "OK";
attributesData.status = "200";
result = attributesData;
Pulse en Terminado.
12. Cree un nuevo servicio y asígnele el nombre ConvertUsageLinkToPart. En Entradas, añada las siguientes entradas:
◦ usageLinkCCO, que tiene el Tipo base de JSON
En Salida, seleccione JSON en el menú desplegable.
13. Pegue el siguiente código en el servicio ConvertUsageLinkToPart:
let itemListsData = usageLinkCCO.data[0].itemListsData[0];
let tempMetadata = itemListsData.metadata;
let items = itemListsData.items;
//convert metadata
delete tempMetadata.ID;
let newMetadata = {};
for (var key in tempMetadata) {
let newKey = key.replace(/^(Uses\|)/,"");
newMetadata[newKey] = tempMetadata[key];
}
newMetadata['id'] = newMetadata.ID;
itemListsData['metadata'] = newMetadata;
//convert Items
let newItems = [];
for (var i=0 ; i<items.length ; i++) {
let item = items[i];
let newItem = {};
for (key in item) {
let newKey = key.replace(/^(Uses\|)/,"");
newItem[newKey] = item[key];
}
newItem['id'] = newItem.ID;
newItems.push(newItem);
}
itemListsData['items'] = newItems;
itemListsData['objectType'] = 'PTC.ProdMgmt.Part';
//update CCO
let partsListCCO = usageLinkCCO;
partsListCCO.data[0].itemListsData = [itemListsData];
result = partsListCCO;
Pulse en Terminado.
14. Pulse en
![](../../../ThingWorx_Navigate/images/pencil_icon.png)
para sustituir el servicio
GetItems. Pegue el siguiente código en el servicio
GetItems:
var migratedConfig = me.Migrate({
targetImplementationVersion: "1.0.0" /* STRING */,
data: configuration /* JSON */,
migrationType: "Configuration" /* STRING */,
targetBaseVersion: "9.0.0" /* STRING */
});
var attributesConfigurationCCO = me.ConvertAttributesToCCO({
configuration:migratedConfig /* JSON */,
attributesPrefix: "Uses|" /* STRING */,
replaceObjectType: "PTC.ProdMgmt.PartUse" /* STRING */
});
// result: JSON
var tempResult = Things["PTC.WCAdapter"].GetRelatedItems({
item: input /* JSON */,
relation: {path:"Uses"} /* JSON */,
attributes: attributesConfigurationCCO /* JSON */
});
var convertedResults = me.ConvertUsageLinkToPart({
usageLinkCCO:tempResult /* JSON */
});
var result = convertedResults;
Pulse en Terminado. Luego pulse en Guardar para guardar la plantilla de cosa.
Ahora la implementación personalizada de Lista de artículos y su configuración se crean y están listas para su uso en el Mashup Builder. Para utilizar la implementación, añada el componente base Lista de elementos a un mashup y pulse en
![](../../../ThingWorx_Navigate/images/gear_icon.png)
. En el menú desplegable
Tipo de configuración, seleccione la configuración de Lista de artículos que esté rotulada como
Parts Lists Demo - Parts List.
Si se utiliza la lista de artículos para crear el mashup que se muestra en el siguiente vídeo, este es un código adicional:
• Código utilizado para configurar el componente Atributos:
{
"layout": {
"selectedKey": "horizontal",
"additionalData": {
"dimensionDefinition": {
"maxHeight": {
"value": 200,
"version": "1.0.0"
},
"maxWidth": {
"value": 200,
"version": "1.0.0"
}
}
},
"version": "1.0.0"
},
"attributes": {
"sets": [{
"data": {
"selectedValues": {
"data": [{
"itemListsData": [{
"items": [{
"id": "ModifiedBy",
"ordinal": 0
}, {
"id": "GatheringPart",
"ordinal": 1
}, {
"id": "Latest",
"ordinal": 2
}, {
"id": "FolderName",
"ordinal": 3
}
],
"objectType": "PTC.ProdMgmt.Part"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
}
},
"name": ""
}
],
"inTailoring": true,
"filteredValues": {
"data": [{
"itemListsData": [{
"objectType": ""
}
],
"adapter": {
"instanceName": "",
"thingName": ""
}
}
]
},
"version": "1.0.0"
}
}
• Código utilizado para el parámetro de entrada del mashup. Asegúrese de añadir un ID de artículo válido:
{
"version": "1.0.0",
"data": [{
"adapter": {
"thingName": "PTC.WCAdapter",
"instanceName": "windchill"
},
"itemListsData": [{
"objectType": "PTC.ProdMgmt.Part",
"items": [{
"id": {
"value": ""
}
}
]
}
]
}
]
}
En los dos tutoriales de vídeo siguientes se muestra cómo crear y utilizar la lista de artículos de implementación personalizada. En el primer vídeo se muestra cómo crear la lista de artículos, siguiendo los pasos descritos en el ejemplo anterior. En el segundo vídeo se muestra cómo utilizar la lista de artículos en un mashup. En el ejemplo anterior, se puede encontrar todo el código utilizado en los vídeos.
Para ver un vídeo en una ventana más grande, pulse en el título del reproductor. Se abre el vídeo en YouTube en una nueva ficha.