Personalización avanzada > Uso de componentes reutilizables > Componentes reutilizables disponibles > Barra de acciones
  
Barra de acciones
Definición y uso
El componente reutilizable Barra de acciones es un widget en el que se muestra un rango de acciones disponibles para el usuario. Las acciones aparecen como una fila de botones y en el menú desplegable que la acompaña. La configuración del componente y el tamaño de la pantalla del usuario determinan el número de acciones que aparecen como botones. Las acciones que no aparecen como botones están visibles en el menú desplegable. El componente reutilizable Barra de acciones se puede configurar de las siguientes maneras:
Definir las acciones que se incluyen en la Barra de acciones
Definir el número máximo de acciones que se deben mostrar como botones
Definir las opciones de visibilidad de las acciones en función de su disponibilidad
Definir el orden de las acciones
Definir si se requieren entradas para una acción
Seleccionar el estilo deseado para la Barra de acciones
Las acciones están diseñadas para activar un servicio o un elemento emergente. El servicio o el mashup emergente se debe configurar por separado en ThingWorx. Las funciones adicionales, como los mensajes de notificación del sistema, deben configurarse en el servicio o mashup adecuado en ThingWorx.
Se incluye una Barra de acciones dentro de los componentes reutilizables Lista de elementos e Identidad de elementos.
A continuación, se presenta una imagen de ejemplo en la que se muestra el componente reutilizable de la barra de acciones:
No hay ninguna configuración predefinida disponible para el componente reutilizable Barra de acciones.
Propiedades de enlace
Hay ocho propiedades para el componente Barra de acciones que están disponibles para el enlace:
Disabled: operador booleano que desactiva el widget en el mashup.
EventTriggered: evento que se activa cuando un servicio termina de ejecutarse o se muestra un elemento emergente, si la acción está configurada con fireEventOnFinish definido en verdadero.
Input: JSON que es el ID de entrada para el que se deben extraer los datos desde el sistema back-end. Esta información se proporciona en un formato CCO (objeto de comunicación común).
PopupClosed: evento que se activa cuando se cierra un elemento emergente que se había abierto.
ServiceActionId: cadena que se actualiza con el ID de una acción de servicio cuando se pulsa en la acción.
ServiceActionIdChanged: evento que se activa cuando se cambia el valor de ServiceActionId, lo que significa que un servicio invocado por la barra de acciones ha terminado de ejecutarse.
SubComponentConfiguration: JSON que se puede enlazar al JSON de configuración si este cambia en tiempo de ejecución. Si la configuración no cambia en tiempo de ejecución, utilice los campos de configuración que se describen en la siguiente sección.
Campos de la configuración
En las siguientes tablas se muestran los campos JSON que se pueden utilizar para configurar este componente.
Nombre de la propiedad
Descripción
Tipo
Valor por defecto
Obligatorio u opcional
maxItemsToShow
El número máximo de botones de acción que se muestran. Si hay más botones de acción que el valor especificado, las acciones adicionales se rellenarán en el menú desplegable.
Entero
2
Obligatorio
modelThingName
El nombre de una cosa que contiene un servicio con la siguiente firma:
public JSONObject GetActions(@ThingworxServiceParameter(name = "ccoJson", baseType = "JSON") JSONObject ccoJson)
Este servicio toma la entrada en formato CCO que contiene un único elemento. A continuación, devuelve un elemento JSONObject en el que se incluye una matriz que asigna el ID de una acción disponible a su rótulo, tal como se recibe del back-end. Consulte el ejemplo de la siguiente configuración JSON de muestra.
Cadena
"PTC.ActionBar Model.Thing"
Obligatorio
actions
Acciones disponibles en la Barra de acciones. Consulte la subpropiedad:
Cadena
N/D
Obligatorio
id
El ID de la acción, tal como se recibe del sistema back-end. Consulte la siguiente tabla para ver subpropiedades.
Cadena
N/D
Obligatorio
objectType
Tipo de objeto para el que se deben obtener las acciones.
Cadena
N/D
Obligatorio
adapter
Configuración de origen para el sistema back-end. Consulte las subpropiedades:
Cadena
N/D
Obligatorio
instanceName
Instancia de conector; es decir, qué conector se debe utilizar para la conexión al sistema back-end.
Cadena
"windchill"
Obligatorio
thingName
Nombre del sistema back-end o adaptador del que se recuperan los datos.
Cadena
"PTC.WCAdapter"
Obligatorio
Campos de configuración en id
Nombre de la propiedad
Descripción
Tipo
Valor por defecto
Obligatorio u opcional
overrideLabel
El valor definido aquí se muestra como rótulo del botón de acción, sustituyendo el valor que procede del sistema back-end. Para localizar, coloque corchetes dobles alrededor del valor.
Cadena
N/D
Opcional
actionButtonVisibility
Permite determinar en qué condiciones se muestran los botones de acción y en qué estado. Opciones: AlwaysShown, DisableUnavailable, HideUnavailable. Para AlwaysShown, el botón está siempre visible y activado. Para DisableUnavailable, el botón está siempre visible, pero se desactiva cuando la acción no está disponible para la selección determinada. Para HideUnavailable, el botón solo está visible cuando la acción está disponible para la selección determinada.
Nota: Hay otras configuraciones que afectan a si se activa o desactiva un botón.
Cadena
N/D
Obligatorio
buttonStyle
Permite determinar el estilo visual del botón. Opciones: primary, secondary, tertiary, danger, transparent.
Cadena
N/D
Obligatorio
overrideSetDisabled
Si se define este campo, su valor es el único factor a la hora de determinar si un botón debe activarse o desactivarse. Opciones: true, false. Verdadero garantiza que el botón está desactivado y false garantiza que el botón está activado.
Booleano
N/D
Opcional
activityType
Permite determinar si esta acción ejecuta un servicio o muestra un mashup emergente. Opciones: popup, service. Consulte las siguientes tablas para ver las subpropiedades necesarias para el mashup emergente y para el servicio.
Cadena
N/D
Obligatorio
fireEventOnFinish
Si este campo se define en verdadero, cuando un servicio termina de ejecutarse, se activa el evento EventTriggered y, cuando se cierra un elemento emergente, se activa el evento PopupClosed.
Booleano
N/D
Opcional
inputConstraints
Permite determinar la restricción de entrada para la acción. Opciones: InputRequired, SingleInputOnly y NoInputRequired.
InputRequired: esta acción debe recibir entrada para funcionar. Si la entrada está vacía y no contiene ningún elemento, el botón de esta acción está desactivado.
SingleInputOnly: esta acción debe recibir una única entrada para poder funcionar. Si la entrada está vacía o contiene más de un elemento, el botón de esta acción está desactivado.
NoInputRequired: esta acción puede funcionar sin ninguna entrada o con entrada.
Cadena
N/D
Opcional
ordinal
El orden en el que aparecen los botones de acción. La acción con el ordinal más bajo se muestra en la posición inicial situada en el extremo izquierdo. Se permiten valores negativos.
Entero
N/D
Obligatorio
iconWhenEnabled
Si se especifica este campo, en el botón de la acción se incluye un icono a la izquierda del rótulo cuando se activa el botón de acción.
Cadena
N/D
Opcional
entityName
El nombre de la entidad multimedia que se debe utilizar como icono.
Cadena
N/D
Opcional
iconWhenDisabled
Si se especifica este campo, en el botón de la acción se incluye un icono a la izquierda del rótulo cuando se desactiva el botón de acción.
Cadena
N/D
Opcional
entityName
El nombre de la entidad multimedia que se debe utilizar como icono.
Cadena
N/D
Opcional
Subpropiedades para activityType de popup
Nombre de la propiedad
Descripción
Tipo
Valor por defecto
Obligatorio u opcional
mashupName
El nombre del mashup que aparece como elemento emergente.
Cadena
N/D
Obligatorio
redirectAfterPopupSuccess
Permite la redirección a otro mashup cuando se cierra el elemento emergente después de una operación correcta.
Para informar a la barra de acciones de si la operación realizada por el elemento emergente se ha completado correctamente o no, se debe definir el parámetro de sesión denominado PTC.ActionBar.popupCloseParameters para indicar el éxito o el fallo. Por ejemplo, en el mashup emergente, puede haber una expresión que se ejecute después de que termine la operación realizada por el elemento emergente y, en esa expresión, se define el parámetro de sesión. En el siguiente ejemplo, el atributo JSON operationSuccessful se define en verdadero porque la operación se ha realizado correctamente:
sessionStorage.setItem("PTC.ActionBar.popupCloseParameters", JSON.stringify( { operationSuccessful: true } ));
Cadena
N/D
Opcional
popupWidth
Permite especificar el ancho del elemento emergente que aparece. Si este campo se deja en blanco, el elemento emergente tendrá el ancho por defecto de 1024.
Entero
N/D
Opcional
popupHeight
Permite especificar el ancho del elemento emergente que aparece. Si este campo se deja en blanco, el elemento emergente tendrá el ancho por defecto de 640.
Entero
N/D
Opcional
Subpropiedades para activityType de service
Nombre de la propiedad
Descripción
Tipo
Valor por defecto
Obligatorio u opcional
thingWithService
El nombre de la cosa en el que se incluye el servicio que se ejecutará.
Cadena
N/D
Obligatorio
serviceName
El nombre del servicio que se debe ejecutar.
Cadena
N/D
Obligatorio
parameters
Este campo opcional permite pasar parámetros codificados de forma rígida al servicio. Los parámetros se definen en un JSONObject, pero deben formatearse como una cadena de un objeto JSON, con comillas de escape. Los parámetros deben introducirse en el fichero de configuración en la forma "{\"myParamName\": \"hardcodedValue\"}" . Consulte la información adicional a continuación.
StringRepresentationOfJSONObject
N/D
Opcional
Uso de parameters para configurar una acción de servicio
Supongamos que hay un servicio denominado MyService con esta firma:
@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)
Este es el aspecto de los valores de parámetro para MyService:
{
\"exampleInt\": 123,
\"exampleString\": \"Hello\",
\"exampleBoolean\": true
}
* 
Hay dos parámetros que el servicio recibe automáticamente, si se define la firma de servicio para recibirlos: serviceParam_InputCco y serviceParam_ActionId. El parámetro serviceParam_InputCco es un JSONObject y es la entrada que se ha proporcionado a la barra de acciones. El parámetro serviceParam_ActionId es una cadena que contiene el ID de la acción en la que se ha pulsado. Si el servicio no incluye estos parámetros en su firma, no se pueden utilizar. Si desea utilizarlos, defina la firma de servicio para utilizar cualquiera de ellos o ambos, mediante lo siguiente:
@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)
Configuración de ejemplo
{
"maxItemsToShow": {
"value": 3
},
"modelThingName": {
"entityName": "PTC.ActionBarModel.Thing"
},
"actions": {
"selectedValues": {
"data": [{
"itemListsData": [{
"items": [{
"id": "Approve",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": ""
},
"actionButtonVisibility": {
"selectedKey": "HideUnavailable"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.RoutingOptionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "SingleInputOnly"
}
}
},
"ordinal": 1
}, {
"id": "Reject",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": ""
},
"actionButtonVisibility": {
"selectedKey": "HideUnavailable"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.RoutingOptionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "SingleInputOnly"
}
}
},
"ordinal": 2
}, {
"id": "Analyze",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": ""
},
"actionButtonVisibility": {
"selectedKey": "HideUnavailable"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.RoutingOptionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "SingleInputOnly"
}
}
},
"ordinal": 3
}, {
"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": 4
}
],
"objectType": "WT.WorkItem.Actions"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
}
}