M416 AUTOMATED STEP Paso Automatizado
Last updated Nov 09, 2017

Creación de Pasos automáticos propios para ser utilizados en la Definición de Procesos de Negocio

Cuando se requiere automatizar los Pasos de Processamiento, tales como "Obtener un número de caracteres y valor Hash" , necesita escribir Scripts utilizando [Tarea Script]. Si necesita utilizar la misma [Tarea Script] en lugares distintos, debe considerar empacar el Script como un [Addon XML]. (Tarea de Servicio Addon)

M416-1-en


a. Aspectos de Habilidades de TI (Comparadas con Tareas Script)
Un Diseñador de Flujo que no tenga conocimientos de Script debe ser capaz de promover la automatización del procesamiento también.
b. Aspectos de Costo de Modelado (Comparados con Tareas Script)
No hay necesidad de escribir el mismo Script una y otra vez
  • Puede ser considerado como la Frontera de responsabilidad entre el Departamento de TI y el Dueño del Proceso
  • En M415 encontrará más información acerca de cómo importar un [Addon XML] previamente creado
  • En M416 (Parte inferior de esta página) o “Descargas” en M415 para Ejemplos de código
a. Aspectos de la Salida del Paso automático
Por ejemplo: Contenidos de Datos a ser almacenados, Contenidos de Operaciones automáticas de sistemas externos, etc.
b. Aspectos de entradas en Pasos automáticos
Por ejemplo: Datos del Negocio a ser examinados, Nombre de Datos en sistemas externos a ser extraídos, etc.
  • Nombres de Pasos automáticos (Tareas de Servicio) están definidas en elementos <label> (64 characters max.)
  • Ejemplo de a: <label>Generador de Número aleatorio</label>
  • Ejemplo de b: <label>Getter de Información del Clima</label>
  • You can define an overview in <summary> element (250 characters max.)
  • You can define URL of help page in <help-page-url> element (250 characters max.)
a. Los Elementos de Datos de Negocio a los que debe referirse en el Paso (SELECT)
Por ejemplo: Escribir un Dato A, Leer un Dato B, etc.
b. Un valor fijo utilizado en el Paso (TEXTFIELD, TEXTAREA)
Por ejemplo: Valor máximo: “100”, Estado: Este Borrador está en estado “pendiente de aprobación”, etc.
  • Enumerar los Elementos de Configuración con <config> el cual es Elemento Hijo de <configs>
  • You can enumerate up to 20 configuration items <config>

R4160 Atributos Addon-XML de elemento config

1. Escribir un Script del lado del Servidor
Escribir en código ECMA code disponible en el Paso Script (M230)
  • Conocimiento de ECMAScript (JavaScript) es requerido
  • Partes de Clases Java class también están disponibles
  • Usar métodos especiales de configs.get("♦configName♦") para obtener config
  • configs.get("♦configName♦"): instanceof java.lang.String
  • Usar métodos especiales de data.get( ♦dataId♦ ) para obtener Datos del Negocio (M230)
  • Usar métodos especiales de retVal.put( ♦dataId♦, ♦value♦ ) para la actualización de Datos del Negocio (M230)
<script><![CDATA[
var dataItemId = configs.get("conf_updateDataItem"); 
retVal.put( dataItemId, "Hello World" );
]]></script>
R2300 Funciones disponibles en Script
1. Preparar un archivo de imagen
Preparar un archivo de imagen de menos de 64px (JPEG, GIF, PNG only)
2. Cifrar a Base64
Mediante Software de Conversión o Servicio Web
  • Definir por dato de ícono <icon>
  • El Logo será desplegado cuando se coloque mediante Arrastrar&Soltar
1. Agregar un elemento de etiqueta con atributo local
Agregar <label> tantos como sean el número de idiomas utilizados por sus Diseñadores de Flujo
  • Por ejemplo: Configure <label locale="es">Generador de Numeros aleatorios</label> para Diseñadores de habla hispana
  • en(default), ja, de, es, fr, ko, pt, zh_CN

M416-2-en

M416-3-en



Ejemplos A1

<?xml version="1.0" encoding="UTF-8"?><service-task-definition>

<label>Random Number Generator</label>

<summary>A random number that does not exceed the config "A" (e.g.: 0 to 99) will be stored in the Data item selected in the config "B"
</summary>


<help-page-url>https://www.questetra.com/tour/m4/m415/addon-random-number/</help-page-url>

 

<configs>
<config name="conf_MaxNum" required="true" form-type="TEXTFIELD">
<label>A: Set Max Number (100 returns 0 - 99)</label>
</config>
<config name="conf_DataIdB" required="true" form-type="SELECT" select-data-type="DECIMAL">
<label>B: Select NUMERIC DATA for Random Number (update)</label>
</config>
</configs>

 

<script><![CDATA[
// Random Number Generator (ver. 20181018)
// (c) 2017, Questetra, Inc. (the MIT License)

//// == Config Retrieving ==
var maxNum = configs.get( "conf_MaxNum" ) - 0;
// convet 'java.lang.String' to 'javascript number'
var dataIdB = configs.get( "conf_DataIdB" ) + "";
// convet 'java.lang.String' to 'javascript string'

//// == Data Retrieving ==
// (none)

//// == Calculating ==
var randNum = Math.floor( Math.random() * maxNum );
// Math.random(): 0.00 to 0.99

//// == Data Updating ==
engine.setDataByNumber( dataIdB, java.math.BigDecimal( randNum ) );
]]></script>

 

<icon>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAEFUlEQVRYR8VXQVIbORT9X2bVXgRO
EDjBhBPE2YFEVcgJEk4w5ASBE4w5QewT4FQhwS7mBIETBE4wnkU3G7p/6mkkl1rT7ZhJqugqqgC1
paf333v/m+mZH37m8+mXAezt7W0z80tc5OHh4XY+ny+ecqn/DUBr/YmIPjDzdnqgiNwR0biqquk6
YJ4MQGv9iojO84PzW4vITdM0766urgCo93kSANA9GAy+EdEmdhSRM6XU7OLiYo6/sa6U+kBEx8z8
gojm1to3vw2A1vobM78SkX+IaOScuxmNRh5MSvfBwcFIRL4GkLt4rw/E2gxorVHvz+mmOLwoCoDa
rOt6N6XbGCN4l5nfRIa6QDwFwPdQ96m1FjRTBmrmnHuH/6cM1HW9s0oHawGA8JgZtad0w1iSeDMI
j5lhw1Fg6otz7vCXNaC1PmFm2O7WWgsXEOgfDod/h4Oumfl1ZsfrqqoOf2bFlQzEkGHmcRDfmXPu
OKe/LMutoiiQB/62YOLy8nK2TiD1AtBaf2ZmX+v4pIIyxkyI6H2y/NFaO17n0NaeXR8Ifv+er1lr
l4Dz+od3fR4Q0cRaO8UvxhiARNlg33nTNNNUlJ0MGGNA818icu+ca0VtDioVaKYBeH+zKzFF5Ng5
d+Zt2sWA1nrGzG+RL03TnIS63kfkaQNCmfCDVCSiRThwWRqEFjPPQo/Au75xEZEvWR8AiO7P7EbL
RNNa5+ut+kcG4Zq6rr0wlVJIzknUDgA553Y6AYSEAwveWriFc85HLp6O+o+bprlOlW+MucHhYC28
v22t3drf3z9USp1jH2hqpQ0TtK1AiTGbl09ETp1zvmS4BDIgyRBc5A6xDW2IyLVzbrQSgNY6xu+S
4vQGHfpZlGW5E8Mn757x/bSZ9QJIrSgiq+rfwiEiR6h1sKDPCrgphBT0AHGDiRmsmvoaovMxy8zw
81aXFRNWugzkZ4SYlomd76qq2i2K4isSNWHilIPgWguZ+pcbpl2u63RQW1XVdlYCH2giAlEfBvrR
tCDwBaeWAvogkqWP0+5njMGQ4TtdDwAvwijA4JiWZSE+ERlHJwDAf4SGPo/BEqNVUk+fjhk7pygb
QiumZhjLzp1zu9ENw+FwLCIAjnREZ8Ve0MYXjpbCANnXwdLBA+FCRH9EH4cDsbEf0RKWOptTNsQc
gQEfu2ihSqmPcXwK2ngd0Ebap3VdnwwGg9io5nVdHyFsgmswsi1LJCKTpmlO47pS6j0zx2j/NwfC
mD0PU2xfeVvqzhjp+sySpZ4Nb8uyHEGs3oYBBMTSmmrCh6fMPMkHSwRSGFRicwHIe4zleBcJmIzn
fqvgAHxpGUentIIING5sbPj2+/j4ePezLxURvFJqs2maRdf4jcthHe92TcdrDaW9dfkNC88O4AcI
zqgZxW8imAAAAABJRU5ErkJggg==
</icon>

</service-task-definition>
Ejemplos A2

<?xml version="1.0" encoding="UTF-8"?><service-task-definition>

<label>Random Number Generator (dynamic)</label>

<summary>A random number that does not exceed the number in the Data item selected config "A" (e.g.: 0 to 99) will be stored in the Data item selected in the config "B"
</summary>


<help-page-url>https://www.questetra.com/tour/m4/m415/addon-random-number-2/</help-page-url>

 

<configs>
<config name="conf_DataIdA" required="true" form-type="SELECT" select-data-type="DECIMAL">
<label>A: Select NUMERIC DATA for Max Number (100 returns 0 - 99)</label>
</config>
<config name="conf_DataIdB" required="true" form-type="SELECT" select-data-type="DECIMAL">
<label>B: Select NUMERIC DATA for Random Number (update)</label>
</config>
</configs>

 

<script><![CDATA[
// Random Number Generator - Dynamic (ver. 20181020)
// (c) 2017, Questetra, Inc. (the MIT License)

//// == Config Retrieving ==
var dataIdA = configs.get( "conf_DataIdA" ) + "";
var dataIdB = configs.get( "conf_DataIdB" ) + "";
// convet 'java.lang.String' to 'javascript string'

//// == Data Retrieving ==
var maxNum = engine.findDataByNumber( dataIdA ) - 0;
// convet 'java.math.BigDecimal' to 'javascript number'

//// == Calculating ==
var randNum = Math.floor( Math.random() * maxNum );
// Math.random(): 0.00 to 0.99

//// == Data Updating ==
engine.setDataByNumber( dataIdB, java.math.BigDecimal( randNum ) );
]]></script>

 

<icon>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAEFUlEQVRYR8VXQVIbORT9X2bVXgRO
EDjBhBPE2YFEVcgJEk4w5ASBE4w5QewT4FQhwS7mBIETBE4wnkU3G7p/6mkkl1rT7ZhJqugqqgC1
paf333v/m+mZH37m8+mXAezt7W0z80tc5OHh4XY+ny+ecqn/DUBr/YmIPjDzdnqgiNwR0biqquk6
YJ4MQGv9iojO84PzW4vITdM0766urgCo93kSANA9GAy+EdEmdhSRM6XU7OLiYo6/sa6U+kBEx8z8
gojm1to3vw2A1vobM78SkX+IaOScuxmNRh5MSvfBwcFIRL4GkLt4rw/E2gxorVHvz+mmOLwoCoDa
rOt6N6XbGCN4l5nfRIa6QDwFwPdQ96m1FjRTBmrmnHuH/6cM1HW9s0oHawGA8JgZtad0w1iSeDMI
j5lhw1Fg6otz7vCXNaC1PmFm2O7WWgsXEOgfDod/h4Oumfl1ZsfrqqoOf2bFlQzEkGHmcRDfmXPu
OKe/LMutoiiQB/62YOLy8nK2TiD1AtBaf2ZmX+v4pIIyxkyI6H2y/NFaO17n0NaeXR8Ifv+er1lr
l4Dz+od3fR4Q0cRaO8UvxhiARNlg33nTNNNUlJ0MGGNA818icu+ca0VtDioVaKYBeH+zKzFF5Ng5
d+Zt2sWA1nrGzG+RL03TnIS63kfkaQNCmfCDVCSiRThwWRqEFjPPQo/Au75xEZEvWR8AiO7P7EbL
RNNa5+ut+kcG4Zq6rr0wlVJIzknUDgA553Y6AYSEAwveWriFc85HLp6O+o+bprlOlW+MucHhYC28
v22t3drf3z9USp1jH2hqpQ0TtK1AiTGbl09ETp1zvmS4BDIgyRBc5A6xDW2IyLVzbrQSgNY6xu+S
4vQGHfpZlGW5E8Mn757x/bSZ9QJIrSgiq+rfwiEiR6h1sKDPCrgphBT0AHGDiRmsmvoaovMxy8zw
81aXFRNWugzkZ4SYlomd76qq2i2K4isSNWHilIPgWguZ+pcbpl2u63RQW1XVdlYCH2giAlEfBvrR
tCDwBaeWAvogkqWP0+5njMGQ4TtdDwAvwijA4JiWZSE+ERlHJwDAf4SGPo/BEqNVUk+fjhk7pygb
QiumZhjLzp1zu9ENw+FwLCIAjnREZ8Ve0MYXjpbCANnXwdLBA+FCRH9EH4cDsbEf0RKWOptTNsQc
gQEfu2ihSqmPcXwK2ngd0Ebap3VdnwwGg9io5nVdHyFsgmswsi1LJCKTpmlO47pS6j0zx2j/NwfC
mD0PU2xfeVvqzhjp+sySpZ4Nb8uyHEGs3oYBBMTSmmrCh6fMPMkHSwRSGFRicwHIe4zleBcJmIzn
fqvgAHxpGUentIIING5sbPj2+/j4ePezLxURvFJqs2maRdf4jcthHe92TcdrDaW9dfkNC88O4AcI
zqgZxW8imAAAAABJRU5ErkJggg==
</icon>

</service-task-definition>

Por el momento disponible únicamente en Inglés