Creación de componentes personalizados
Tal como se describe en el tema Arquitectura del componente, cada uno de los componentes de ThingWorx Navigate consta de dos subcomponentes, el subcomponente de la interfaz de usuario y el subcomponente de la lógica empresarial. El subcomponente de la lógica empresarial también está formado por dos elementos, la lógica empresarial base y la implementación de lógica empresarial, a los que se hará referencia en este tema como el componente base y la implementación, respectivamente.
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.
Creación de una implementación personalizada extendiendo un componente base 
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 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 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.
Consulte el tema Asignación de versiones y migración para obtener más información sobre la llamada al servicio Migrate.
* 
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 . En el menú desplegable Tipo de configuración, seleccione la configuración que pertenezca a su implementación personalizada.
Creación de una implementación personalizada extendiendo una implementación 
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 para sustituir GetBaseMigrationVersion con su versión de ThingWorx Navigate, por ejemplo 9.0.0 o 9.1.0.
Pulse en 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 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.
Consulte el tema Asignación de versiones y migración para obtener más información sobre la llamada al servicio Migrate.
* 
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 . En el menú desplegable Tipo de configuración, seleccione la configuración que pertenezca a su implementación personalizada.
Ejemplo: creación de una implementación de lista de artículos 
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 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 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 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 . 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": ""
}
}
]
}
]
}
]
}
Tutorial de vídeo: creación de una implementación de lista de artículos
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.
¿Fue esto útil?