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 fábrica el componente base Lista de elementos incluye seis implementaciones: Actividad, Elementos afectados, Adjuntos, Planos, Estructura de artículo y Tareas. También se puede crear una implementación personalizada del componente base Lista de elementos, como por ejemplo la Lista de artículos.
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 observe la plantilla de cosa y el proyecto. Necesitará esta información más tarde.
Componente base | Plantilla de cosa | Proyecto |
---|
Atributos | PTC.Nav.AttributesBusinessLogicThingTemplate | PTC.Nav.AttributesBusinessLogicProject |
Identidad del elemento | PTC.Nav.ItemIdentityBusinessLogicThingTemplate | PTC.Nav.ItemIdentityBusinessLogicProject |
Lista de elementos | PTC.Nav.ItemListBusinessLogicThingTemplate | PTC.Nav.ItemListBusinessLogicProject |
Progreso | PTC.Nav.ProgressBusinessLogicThingTemplate | PTC.Nav.ProgressBusinessLogicProject |
Mosaicos | PTC.Nav.TilesBusinessLogicThingTemplate | 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 el
![icono de lápiz icono de lápiz](../../../ThingWorx_Navigate/images/pencil_icon.png)
para sustituir el servicio
GetImplementationConfigurationVersion y definir una versión para la implementación. Para el valor de la versión, utilice
user.version como esquema, donde
version puede tener varios niveles delimitados por puntos y
user no puede ser
nav. 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. A continuación, pulse en el
![icono de lápiz icono de lápiz](../../../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 debe llamar ni sustituir los servicios con la categoría PTC.Nav.Private o los servicios marcados como obsoletos. |
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 el
![icono de engranaje icono de engranaje](../../../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 |
---|
Actividad | PTC.Nav.ActivityBusinessLogicThingTemplate | PTC.Nav.ActivityBusinessLogicProject |
Elementos afectados | PTC.Nav.AffectedItemsBusinessLogicThingTemplate | PTC.Nav.AffectedItemsBusinessLogicProject |
Adjuntos | PTC.Nav.AttachmentsBusinessLogicThingTemplate | PTC.Nav.AttachmentsBusinessLogicProject |
Atributos genéricos | PTC.Nav.AttributesGenericBusinessLogicThingTemplate | PTC.Nav.AttributesGenericBusinessLogicProject |
Ficheros de diseño | PTC.Nav.DesignFilesBusinessLogicThingTemplate | PTC.Nav.DesignFilesBusinessLogicProject |
Identidad del documento | PTC.Nav.DocumentIdentityBusinessLogicThingTemplate | PTC.Nav.DocumentIdentityBusinessLogicProject |
Planos | PTC.Nav.DrawingsListBusinessLogicThingTemplate | PTC.Nav.DrawingsListBusinessLogicProject |
Identidad del artículo | PTC.Nav.PartIdentityBusinessLogicThingTemplate | PTC.Nav.PartIdentityBusinessLogicProject |
Estructura de artículo | PTC.Nav.PartStructureBusinessLogicThingTemplate | PTC.Nav.PartStructureBusinessLogicProject |
Identidad de la tarea | PTC.Nav.TaskIdentityBusinessLogicThingTemplate | PTC.Nav.TaskIdentityBusinessLogicProject |
Progreso de la tarea | PTC.Nav.TaskProgressBusinessLogicThingTemplate | PTC.Nav.TaskProgressBusinessLogicProject |
Tareas | PTC.Nav.TaskListBusinessLogicThingTemplate | PTC.Nav.TaskListBusinessLogicProject |
Mosaicos genéricos | PTC.Nav.TilesGenericBusinessLogicThingTemplate | 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 el
![icono de lápiz icono de lápiz](../../../ThingWorx_Navigate/images/pencil_icon.png)
para sustituir
GetBaseMigrationVersion con la convención de versión para la configuración. No utilice el esquema
'nav.<version number>'.
◦ Pulse en el
![icono de lápiz icono de lápiz](../../../ThingWorx_Navigate/images/pencil_icon.png)
para sustituir
GetImplementationConfigurationVersion con la convención de versión para la configuración. Para el valor de la versión, utilice
user.version como esquema, donde
version puede tener varios niveles delimitados por puntos y
user no puede ser
nav.
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. A continuación, pulse en el
![icono de lápiz icono de lápiz](../../../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 debe llamar ni sustituir los servicios con la categoría PTC.Nav.Private o los servicios marcados como obsoletos. |
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 el
![icono de engranaje icono de engranaje](../../../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.
| La versión de este ejemplo es correcta para ThingWorx Navigate. Si está trabajando con una versión anterior de Navigate, asegúrese de definir los valores de la versión según los pasos de las secciones anteriores. |
1. En ThingWorx Composer, cree un nuevo proyecto denominado Demo.PartsListProject. 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. Utilice el esquema
user.version, por ejemplo, defina el valor en 1.0.0 de la siguiente manera:
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": "nav.1"
},
"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": "nav.1"
},
"implementationConfigurationVersion": {
"value": "nav.1"
},
"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": "nav.1"
},
"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: "nav.1" /* STRING */,
data: configuration /* JSON */,
migrationType: "Configuration" /* STRING */,
targetBaseVersion: "nav.1" /* 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 el
![icono de engranaje icono de engranaje](../../../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.