Crear widgets personalizados
Puede utilizar la página Analytics de IBM Process Mining para crear widgets personalizados y analizar los datos en función de sus necesidades. También puede utilizar estos widgets personalizados para personalizar la forma en que se procesan y muestran sus datos.
Comprender los scripts para crear widgets personalizados
Puede utilizar los siguientes archivos para crear con éxito un widget personalizado:
frontend.js- Indica el archivo JavaScript que se ejecuta en su navegador para procesar y mostrar sus datos. Para obtener más información sobre el contenido del archivo
frontend.js, consulte Comprender el archivo frontend.js. view.html- Indica el archivo HTML que incluye el contenido de tu widget. Para obtener más información sobre el contenido del archivo
view.html, consulte Comprender el archivo view.html. style.css- Indica el archivo CSS que puedes utilizar para dar estilo a tu widget. Para obtener más información sobre el contenido del archivo
style.css, consulte Comprender el archivo style.css. schema- Indica la tabla de parámetros que puedes utilizar para añadir parámetros configurables en tu widget personalizado. Para más información sobre
schema, consulte Comprender el esquema.
backend.js, consulte las versiones anteriores de la documentación.Descripción del archivo frontend.js
Utilizando las funciones siguientes, puede configurar el archivo frontend.js para que devuelva un objeto:
init(context)- Esta función se ejecuta al inicializar un widget. El parámetro
contextincluye dos propiedades:elementyscope. La propiedadelementindica el objeto jQuery que contiene el nodo DOM de su widget. La propiedadscopeindica el contexto angular de tu widget. También puedes cambiar el elemento DOM de tu widget con jQuery o cambiar el ámbito con AngularJS. update(data, context)- Esta función se ejecuta cada vez que se recarga el cuadro de mandos. El objeto
datacontiene los datos que pueden vincularse al ámbito para su visualización. El objetocontextes similar al parámetro utilizado en la funcióninit. Ejemplo:
También puede utilizar jQuery o Underscore.js para modificar sus datos como se indica en el siguiente ejemplo. Ejemplo:javascript update: function(data, context) { // set your data in scope so you can use it where you need context.scope.data = data;}javascript update: function(data, context) { // set your data in scope after transforming it so you can use it where you need context.scope.data = _.map(data, function(element) { return { name: element.id, text: element.value }; });} resize(size, context)- Esta función se ejecuta cada vez que se cambia el tamaño del widget. El objeto
sizedebe incluir las direccioneswidthyheightdel widget. El objetocontextes similar al parámetro utilizado en la funcióninit.
return {
init: function (context) {
var org = context.scope.utils.organizationKey;
//context.scope.utils.organizationKey makes it possible to retrieve the organization of the current dashboard.
var pId = context.scope.utils.projectName;
//context.scope.utils.projectName makes it possible to retrieve the project name of the current dashboard.
var dSlug = 'beautiful-dashboard';
var wId = 'simpletable';
//wId is the widget's name.
var callback = function(data){
console.info('Data: ',data);
//Here you can process the data get by the API.
return data;
}
context.scope.utils.loadWidgetData('dataFromWidget', dSlug, wId,pId, org, callback);
//dataFromWidget is the name of the attribute from which the data of the widget view can be retrieved.
},
update: function (data, context) {},
resize: function (size, context) {}
};
También puede utilizar un código compactado sin argumentos opcionales:
init: function (context) {
var dSlug = 'beautiful-dashboard';
var wId = 'simpletable';
context.scope.utils.loadWidgetData('dataFromWidget', dSlug, wId);
},
//In the compacted code, organization and processId are retrieved from the currently chosen dashboard.
El slug del cuadro de mandos puede recuperarse del modelo de información del cuadro de mandos: 
Descripción del archivo view.html
El archivo view.html contiene el contenido del widget.
Puedes utilizar los siguientes helpers de angular para mostrar tus datos y cambiar elementos HTML basados en el contenido sin modificar el DOM con JavaScript:
Puede utilizar el siguiente código para configurar su widget en el archivo
view.html:
<div>
<p>widgetId: {{ widgetId }}</p>
<p>utils.organizationKey: {{ utils.organizationKey }}</p>
<p>utils.projectName: {{ utils.projectName }}</p>
<table class="table table-striped table-condensed">
<tr ng-repeat=" row in dataFromWidget " >
<td>{{ row['attr-process']}}</td>
<td>{{ row['attr-activity']}}</td>
<td>{{ row['NOW']}}</td>
</tr>
</table>
</div>
Ejemplo El ejemplo siguiente describe el contenido de un archivo view.html basado en un archivo frontend.js .
Supongamos que el archivo frontend.js del widget personalizado incluye el script siguiente:
javascript
init: function(context) {
context.scope.myVariable = 'Plugin widget test';
context.scope.myIntVariable = 8;
}
Puede utilizar los scripts siguientes para crear un archivo view.html correspondiente:
<p>{{myVariable}}</p>
<p ng-if="myIntVariable > 5">{{myIntVariable | number}}</p>
Para obtener más información sobre la secuencia de comandos del archivo view.html , consulte la documentación de Angular.
Filtros avanzados
Además de los filtros angulares, puede utilizar el siguiente filtro personalizado en función de sus requisitos.
formatMeasure:parám
La tabla siguiente describe los diversos parámetros que puede utilizar con el filtro personalizado:
| Parámetro | Finalidad |
|---|---|
auto |
Formateador automático |
date |
Formateador de fecha con soporte de localización |
datetime |
Formateador de fecha y hora con soporte de localización |
duration |
Formateador de duración |
number |
Formateador de números con soporte de localización |
text |
Formateador de texto |
percentage |
Formateador de porcentaje |
El ejemplo siguiente describe cómo utilizar los filtros personalizados en el archivo view.html .
<p>{{myDateVariable | formatMeasure:'datetime'}}</p>
Descripción del archivo style.css
El archivo style.css contiene la hoja de estilo para el widget. Por ejemplo, el archivo style.css incluye el contenido:
p {
font-size: 14px;
color: red;
}
style.css .Descripción del esquema
La tabla schema contiene parámetros opcionales que puede establecer en las opciones de widget.
Puede utilizar cualquiera de los tipos siguientes para definir parámetros en schema:
stringdimension
Referencia adicional
Para obtener más información sobre funciones, objetos y parámetros, consulte los enlaces siguientes:
Creación de un widget personalizado de ejemplo
Para crear un widget personalizado, siga estos pasos:
En la página Proyectos, abra el proceso deseado.
Abra la página Analytics y abra el panel en el que desea crear el widget personalizado.
En el panel de control, haga clic en Editar.
En el panel de widgets, haga clic en el icono Personalizar y, a continuación, en Nuevo.
Nota: Puede elegir cualquiera de los widgets del menú o crear un widget personalizado utilizando los scripts que se mencionan en el apartado Comprender los scripts para crear widgets personalizados.En el recuadro de mensaje Los cambios pendientes se perderán , pulse Sí.
En el recuadro Nombre de la pestaña Información , escriba un nombre para el widget personalizado.
Importante: No incluya espacios ni caracteres especiales en el nombre de los widgets personalizados.En el panel izquierdo, haga clic en Esquema y, a continuación, en Añadir nueva propiedad para gestionar las entradas de los usuarios. Por ejemplo, puede pedir a los usuarios que introduzcan su nombre en el widget definiendo un parámetro Nombre como se indica en la siguiente figura. Tenga en cuenta que esta es una característica opcional que puede establecer para el widget.

En el panel izquierdo, pulse frontend.jsy, a continuación, utilice las funciones que se mencionan en Comprender el archivo frontend.js para definir el script.

En el panel izquierdo, pulse view.htmly, a continuación, utilice las funciones que se mencionan en Comprender el archivo view.html para definir el script.

Pulse Guardar.
El nuevo widget aparece en la lista de widgets personalizados.