Existen dos formas de acceder al editor de subprocesos: desde el menú principal del personalizador, o pulsando sobre el icono del subproceso que se puede encontrar en el apartado Componentes del proceso del editor de procesos.






Dependiendo de la acción seleccionada se abrirá la ventana de editor de subprocesos en blanco, o con los datos precargados del subproceso pulsado desde el editor de procesos. 


Esta ventana se divide en dos secciones principales además de la cabecera y la botonera ubicada en el pie.


1- Cabecera

2- Sección superior con el identificador y el selector de subproceso.

3 - Sección Configuración 

- Sección Datos

- Botonera Eliminar y guardar



Sección superior 


El campo Id es un campo de solo lectura. Como en el resto del personalizador, está compuesto por el prefijo AHOR cuando se trata de un subproceso estándar, y por el prefijo PERS cuando se trata de un subproceso personalizado. 


En la parte superior derecha de la ventana de edición encontramos el componente selector de subprocesos que permite tanto buscar un subproceso concreto para cargar sus datos y poder editarlos, como eliminar la carga actual borrando los datos para crear uno nuevo.


Configuración


Tal y como se explicó en el editor de procesos, los subprocesos están categorizados en una serie de Tipos que delimitan su funcionalidad y comportamiento en la TPV. Estos tipos, además, modifican la visualización y edición de los datos asociados al propio subproceso, ocultando unos campos y mostrando otros en función de la coherencia y aplicabilidad con el tipo del subproceso. 


Obviamente, una vez creado el subproceso el campo Tipo se bloquea para no permitir su edición.



 


Los tipos disponibles son:

  • Proceso: son subprocesos que ejecutan un procedimiento almacenado. Por ejemplo, el subproceso "Crear Ticket" tiene como principal función ejecutar el procedimiento almacenado pTPV_Crear_Ticket.
  • Vista estándar: las ventanas que todavía no son personalizables pero sí cargan datos de la base de datos tienen asociado un proceso de tipo vista estándar. Por ejemplo, "Generar Anticipo" es un proceso que abre una ventana con una plantilla HTML y sus datos asociados. Esta ventana, a pesar de no ser editable, requiere la asignación de un subproceso para ser mostrada por la TPV. Este tipo de subproceso, por tanto, sólo son usados por fábrica y deben evitarse en la medida de lo posible puesto que tenderán a desaparecer en futuros hotfixes.
  • Ventana de sistema: son los componentes estándar que ejecuta la TPV y contemplan prácticamente toda su funcionalidad. Cualquier elemento estándar que se muestra en la TPV es de tipo ventana sistema. Es decir, estos subprocesos están para poder ser reutilizados en personalizaciones nuevas, pero no se recomienda su personalización.
  • Guardado de formularios: son subprocesos que lanzan procedimientos de guardado, normalmente asociados a los botones Guardar de las ventanas de edición. Por ejemplo, clientes y contactos.
  • Vista personalizador: son la evolución de la vista estándar, es decir, los subprocesos que lanzan los modelos (pantallas) generados desde el editor de modelos. Por ejemplo, "Nuevo Cliente".
  • Grid personalizador: son los subprocesos que lanzan las tablas de la TPV, generadas y modificadas desde el editor de grids. Cuando a un subproceso de tipo Grid personalizador se le asocia un Grid, ese subproceso abrirá un buscador mostrando la tabla especificada.


El campo Descripción es el texto que saldrá en la lista de subprocesos y permitirá su identificación y selección en combos y filtros.


El check Salta Siguiente permite activar la opción para que el subproceso, en caso de no ejecutarse debido a alguna condición, no pare la ejecución de todos los subprocesos asociados al proceso y siga con el siguiente en el orden establecido. En caso de no estar activo, si el subproceso falla o no cumple determinada condición, abortará la ejecución completa. Por ejemplo, si quisiéramos concatenar la visualización de tres pantallas de edición de artículos, y elegir que salga una u otra por una condición determinada del artículo, para asegurar que se lleguen a validar todos los subprocesos y no se corte la ejecución en el primero que no se cumpla, habría que definirlos todos como Salta Siguiente


El botón Condiciones abre la ventana de condiciones aplicables a la ejecución del subproceso. El funcionamiento de las condiciones se explica en en el siguiente documento TPV - Condiciones 


El check Activado indica si el subproceso está activado o no. Un subproceso AHOR (estándar) no se podrá desactivar utilizando el botón, lo hará automáticamente al activar un subproceso PERS asociado al estándar. Siempre tiene que haber un único subproceso activo, estándar o personalizado, por ello, si se activa un subproceso se desactivará el otro subproceso de la misma familia que estuviera activo. Si se desactiva un subproceso personalizado, se activará, automáticamente el estándar. 


El campo Descripción Extendida muestra información adicional al subproceso. Se puede utilizar para documentar el subproceso de cara a que otros usuarios que utilicen el personalizador sepan cuál es su función. 


Datos


En la parte inferior, se encuentra la sección de Datos. Esta sección hace referencia a los datos del proceso que se va a ejecutar y contiene campos dependientes del tipo de proceso que se está configurando.


La sección se muestra contraída, para expandirla basta con pulsar sobre la flecha que se resalta en un recuadro naranja y se expandirá la sección.



  • Parámetros de entrada: parámetros que va a recibir el subproceso. Opcional e informativo. Hace referencia a los datos que necesita obtener del subproceso que se ejecute antes de él. Si es el primer subproceso, no tendrá datos aquí.
  • Parámetros de salida: parámetros que va a devolver el subproceso. Opcional e informativo. Hace referencia a los datos que tendrá disponibles el subproceso que se ejecute después de este.
  • Función pre ejecución: función que se ejecutará antes del proceso. Es una función interna de TPV que realiza acciones concretas antes de la ejecución del subproceso, por ejemplo, una ventana de confirmación de acciones. Estas funciones se seleccionarán de la lista de la derecha.
  • Función post ejecución: función que se ejecutará inmediatamente tras el proceso. Es una función interna de TPV que realiza acciones concretas después de la ejecución del subproceso, por ejemplo, la impresión de algún documento. Estas funciones se seleccionarán de la lista de la derecha.
  • Dependiente del Tipo
    • Proceso - Nombre Procedure: si el tipo es Proceso, se establece el nombre del procedimiento almacenado que se va a ejecutar. El procedimiento debe de existir en la base de datos, el personalizador no valida la existencia del mismo ni los permisos que pueda tener el usuario para su ejecución.
    • Grid Personalizador - Buscador: personalizador: si el tipo es Grid personalizador, establece el nombre del buscador que se lanzará al ejecutarse el subproceso. Un buscador es una tabla creada desde el editor de grids.
    • Ventana de sistema - Nombre de componente:  si el tipo es Ventana de sistema, define el componente web interno de TPV que ejecutará, por ejemplo, la ventana de inserción de línea, cobro, cierre de caja. 
    • Guardado de formulario - Nombre Procedure: si el tipo es Guardado de formulario, es el nombre del procedimiento almacenado que se ejecutará al guardar el formulario de creación o dedición de los datos.
    • Vista personalizador - Modelo: si el tipo es Vista personalizador, se establece el nombre de la pantalla creada desde el editor de modelos. El subproceso lanzará dicha pantalla para su visualización en la TPV.
  • Parámetros: lista de parámetros que necesita obtener el subproceso para su correcta ejecución ya sean datos estáticos o datos obtenidos de los objetos globales de TPV (los parámetros que se obtienen de los parámetros de entrada por medio de un subproceso anterior son datos de acarreo y no es necesario solicitarlos en este apartado). Si se solicitan aquí, sustituye a los del acarreo. 


Edición de datos


Se pueden incluir, editar y eliminar los parámetros de entrada y salida necesarios para el subproceso. En el apartado correspondiente de Datos se visualizarán todos separados por líneas.



Función pre ejecución y Función post ejecución


Se establece las funciones que se ejecutarán antes o después de que se ejecute el subproceso. La selección de las mismas es a través de un desplegable que muestra las funciones disponibles. Estas funciones son fragmentos de código programados en la TPV que facilitan acciones que de otra forma no serían posibles ejecutar. 



A continuación, se detallan las posibles funciones que se muestran al usar el icono de filtro del selector.

  • _confirmar: muestra un mensaje de confirmación con el texto indicado.
    • Texto: mensaje que se mostrará en la ventana de confirmación.
    • Tipo: tipo de mensaje que saldrá
      • 1: Respuestas: Sí/No
      • 2: Respuestas: Aceptar/Cancelar
      • 3: Respuesta: Aceptar
      • 4 y siguientes: Sin respuestas, solo se puede cerrar utilizando el aspa de la ventana.
    • Acción:
  • opencashTPV: rutina que abre el cajón físico portamonedas conectado a la impresora de tickets.
  • modeloCerrar: función que cierra la ventana del modelo y para la ejecución de una cadena de subproceso dentro de un proceso. Se usará para asociarlo a botones de tipo "cancelar" siempre que no se quiera ejecutar nada más posteriormente. 
    • Proceso: información del subproceso. No editable.
  • modelosContinuar: función que continúa con la ejecución de los subprocesos sin cerrar la ventana lanzada. Contiene parámetros no editables.
    • Proceso: información del subproceso. No editable. 
    • Params: especifica los parámetros que se le pasan a la función. No editable.
  • modelosCerrarContinuar: función que cierra la ventana actual y sigue con la ejecución de los subprocesos. Usada, por ejemplo, en la concatenación de ventanas. Una primera ventana muestra información y al cerrarse queremos mostrar otra ventana con otro tipo de información.
    • Proceso: información del subproceso. No editable. 
    • Params: especifica los parámetros que se le pasan a la función. No editable.
  • TPV_Imprimir: imprime el resultado del subproceso si es un documento para imprimir
    • Data: información del subproceso. No editable.
    • Proceso: información del subproceso. No editable.
    • Copias: número de copias que se mandarán a la impresora. Por defecto se obtiene los parámetros de la TPV, sin embargo se puede modificar para que siempre mande el número de copias deseadas.
  • setCurrentTicket: si cualquier subproceso de la cadena de ejecución de un proceso, devuelve un parámetro IdTicket dentro de sus parámetros (objeto params), al establecer esta función se pondrá ese IdTicket como Ticket establecido por defecto. Es decir, si tenemos Ticket 1, 2 y 3 en una TPV, y en un proceso se devuelve IdTicket = 2 en un parámetro, la TPV pondrá el Ticket 2 como ticket activo.
  • accionNuevoTicket: esta función se incluye en la versión 4.4.2400.100. Hasta este hotfix, la carga del ticket se realizaba con un algoritmo complejo que tenía en cuenta el estado del mismo, así como el tipo. A partir de la versión 4.4.2400.100 el ticket no se cambia a menos que en un subproceso se establezca esta función, en cuyo caso se establecerá el último ticket como Ticket activo. Si se tiene cualquier personalización que cree un ticket, será necesario establecer esta función para que la TPV lo precargue como Ticket por defecto. 
  • esperaOperacionImacash: función utilizada en los subprocesos de conexión con los cajones de cobro automático. No es susceptible de ser usada en personalizaciones normales.
  • actualizaIdentificadores: función utilizada en los subprocesos de conexión con los cajones de cobro automático. No es susceptible de ser usada en personalizaciones normales. 

Origen de datos

Dependiendo del tipo de subproceso seleccionado, en la sección de edición de  datos, aparecerán distintas opciones, como es el caso del Origen de datos que se muestra cuando el Subproceso es de tipo proceso.


Se puede elegir un origen de datos ya creado pulsando la flecha y desplegando así el listado de los existentes, se puede configurar un origen de datos seleccionado pulsando sobre el icono naranja con forma de pieza de puzzle o se puede añadir uno nuevo pulsando sobre el botón azul que tiene el símbolo +.



Por ejemplo, en el subproceso AHOR24 (deshacer cierre de caja), tiene seleccionado el origen de datos Deshace Último Cierr. Si pulsamos configurar se abre una ventana donde se incluirán los datos para el propio origen de datos y los parámetros para la ejecución.

El parámetro definido es IdCaja que es, precisamente, el parámetro de entrada que requiere el procedimiento pTPV_Cierre_Deshacer para poder llevar a cabo la acción.



Por defecto se pasa todos los parámetros utilizables de la TPV a los subprocesos, de forma que los parámetros de devuelve la ejecución de los subprocesos sustituirán a los originales. Ejemplo:


  1. Estamos trabajando con un ticket activo IdTicket = 1 y llamamos a un subprocesos
  2. Este subproceso se va a base de datos y crea un Ticket 2 a partir del Ticket 1, devolviendo el nuevo IdTicket.
  3. Cualquier subproceso posterior recibirá como parámetro de entrada IdTicket = 2 puesto que se ha sobrescrito en la ejecución de un subproceso, devolviendo el nuevo valor como parámetro de salida.


Es importante tener en cuenta esta forma de trabajar que, si bien da mucha libertad para cambiar los valores iniciales de la TPV, puede inducir a errores si no se trabaja con conocimiento de lo que se está haciendo y lo que se pretende conseguir.


Para saber mas acerca de los orígenes de datos consulta el siguiente artículo.



Parámetros


Los parámetros que requiere el subproceso también se establecen desde la zona de edición situada en la parte derecha de la ventana. Los parámetros que se informen aquí van a sustituir a los que se han añadido en el subproceso.

 

En este caso se despliega un listado de tuplas Propiedad/valor que permite definir todo lo que el subproceso va a requerir de la TPV y cómo lo va a obtener.



< TPV - Editor de procesos