Documentación de Velneo
30
30
  • Introducción
  • Velneo
    • Requerimientos de Velneo
    • Notas de la versión
    • Funcionalidades comunes a los componentes de Velneo
      • Instalación
      • Conexión con Velneo vServer
      • Cambiar el estilo de visualización
      • Ver u ocultar barras de herramientas
      • Mensajería interna entre usuarios
      • Soporte de alta resolución (HighDPI)
      • Carpetas de trabajo de los componentes de Velneo
      • Numeración de versiones de Velneo
      • Certificado de firma digital para componentes de Windows
    • Tipos de archivo generados por Velneo
    • Velneo Web
      • Plataformas y navegadores compatibles
      • Acceso a recursos del sistema
      • Siempre https
      • Funcionamiento de vatp por websocket
      • CORS para llamadas xmlhttprequest
  • Velneo vDevelop
    • ¿Qué es Velneo vDevelop?
    • Identificación de usuario
    • Interfaz de Velneo vDevelop
      • Menú Soluciones
      • Menú Proyectos
      • Menú Objetos
      • Menú Scripts
      • Menú Edición
      • Menú Ver
      • Menú Componentes
      • Menú Ayuda
    • Lista de teclas aceleradoras de Velneo vDevelop
    • Soluciones y proyectos
    • Control y edición de proyectos
    • Herencia
    • Inspectores
    • Proyectos objetos y editores
      • Proyecto de datos
      • Proyecto de aplicación
        • Crear CSS para aplicar a objetos en edición
      • Objeto
        • Refactorización automátca
      • Objetos de proyecto de datos
        • Indice complejo
        • Tabla
          • Actualización
          • Campo
          • Enlace
          • Indice
          • Plural
          • Traspaso de campo
          • Trigger
        • Tabla estática
        • Variable
      • Objetos de proyecto de aplicación
        • Acción
        • Alternador de lista
        • Arbol visor de tablas
        • Bloc de formularios
        • Casillero
        • Cesta
        • ComboView
        • Control SVG
        • Dispositivo serie
        • Formulario
          • Controles de visualización
            • Texto estático
            • Nombre de campo
            • Visor HTML
            • Dibujo
            • Imagen SVG
            • Caja de grupo
            • Menú arbolado
            • Barra de progreso
            • Reloj
            • Manómetro
            • Termómetro
          • Controles de edición
            • Caja de texto
            • Caja de texto enriquecido
            • Data catcher edit
            • Edición alfabética
            • Edición fecha
            • Edición fecha/hora
            • Edición fórmula
            • Edición hora
            • Edición numérica
            • Edición senda fichero
            • Edición senda directorio
            • Objeto dibujo
          • Controles de entrada
            • Botón
            • Botón de check
            • Botón de radio
            • Calendario
            • ComboBox
            • Deslizador
            • Dial
            • ListBox
            • Rueda
          • Contenedores
            • Área de scroll
            • Caja de formularios
            • Pila de formularios
            • Separador de formularios
            • Splitter
            • Vista de datos
          • Layout
          • Tree widget
          • Controles SVG
          • Extensión de ficha
        • Formulario QML
        • Gráfico
        • Imagen SVG
        • Impresora lógica
        • Informe
          • Editor de informes
          • Agrupamiento
          • Sección
          • Cálculo
        • Informe personalizable
          • Diseñando un informe personalizable básico
          • Diseño avanzado
          • Diseñando un informe personalizable
          • Añadiendo orígenes de datos
          • Añadiendo elementos al informe
          • Características avanzadas
          • Etiquetas
          • Asistente de scripts
          • Impresión de gráficos
          • Opciones html
        • ListView
        • Lista QML
        • Localizador
        • Marco
        • Menú
        • Multivista
        • Protocolo TCP-IP
        • Reemplazo
        • Rejilla
          • Propiedades de columna de rejilla
        • Rejilla avanzada
          • Propiedades de columna de rejilla avanzada
        • Toolbar
        • ViewFlow
        • Sub-objetos de vistas de datos
          • Conexión de evento
          • Drop
          • Inserción
          • Manejador de evento
      • Objetos comunes a proyecto de datos y de aplicación
        • Búsqueda
        • Cola
        • Constante
        • Dibujo
        • Esquema de tablas
        • Fichero adjunto
        • Función
        • Librería externa
        • Lupa
        • Proceso
          • Indice de comandos de instrucción de proceso
          • Comandos de base de datos
            • API
            • Bases de datos externas
            • Búsquedas
            • Campos (grupo de comandos)
            • Cestas
            • Fichas
            • Fichas seleccionadas
            • Listas
            • Tablas
            • Tubos
          • Básicos
            • Controles de flujo
            • Debug
            • Ejecución
            • Salida/retornos
            • Scripts (grupo de comandos)
            • Transacciones (comandos)
            • Variables
          • Comunicación
            • GPS
            • Internet
            • Protocolo TCP
            • Puerto serie
            • SDV
          • Interfaz
            • Acciones (comandos)
            • Control
              • Ejemplo de CSS
            • Diálogos
            • Formularios - comandos
            • Localizadores
            • Objeto - grupo de comandos
            • Ventana principal
            • Vista de datos - comandos
          • Sistema
            • Comandos de Sistema
            • Configuración
            • Directorios
            • Ficheros
        • Tubo de ficha
        • Tubo de lista
        • Variable local
      • Editores
        • Asistente de fórmulas
          • Operadores
          • Funciones estándar
            • Funciones API
            • Funciones básicas
            • Funciones de cadenas
              • Expresiones regulares
            • Funciones científicas
            • Funciones de Cliente-servidor
            • Funciones de color
            • Funciones de códigos
            • Funciones de directorios
            • Funciones de fechas
            • Funciones de ficha en curso
            • Funciones de horas
            • Funciones JSON
            • Funciones de Internet
            • Funciones de juegos de caracteres
              • Codecs
            • Funciones numéricas
            • Funciones de sistema
            • Funciones de tiempo
            • Funciones trigonométricas
          • Funciones de dll
          • Funciones de proceso
          • Funciones de campo
          • Campos
          • Constantes
          • Variables globales
          • Variables locales
          • Variables del sistema
          • Verificador de fórmulas
          • Conversión automática de datos
          • Introducción de datos literales
          • Secuencias de escape en cadenas de caracteres
          • Composición de sendas en fórmulas
          • Operar con datos de tipo fecha, hora y tiempo
        • Editor de imágenes
        • Selector de fuentes
    • Scripts
      • Lenguajes
        • JavaScript
          • Procesos JavaScript
          • Fórmulas JavaScript
          • Clases
            • Funciones globales
            • Objetos
            • VAbstractBrowser
            • VAbstractDataView
            • VAbstractListDataView
            • VAdvandedGridListDataView
            • VAlternatorListDataView
            • VApp
              • VApp: enumeraciones
              • VApp: ejemplos
            • VBoundFieldComboBox
            • VBoundFieldEdit
            • VBoundFieldEditBrowser
            • VBoundFieldListBox
            • VByteArray
            • VCheckBox
            • VClipboard
            • VClockWidget
            • VComboBox
            • VComboListDataView
            • VCoverFlowListDataView
            • VCWebView
            • VDataCatcherEdit
            • VDataCatcherEditBrowser
            • VDataView
            • VDataViewDialog
            • VDateEdit
            • VDateEditBrowser
            • VDateTimeEdit
            • VDateTimeEditBrowser
            • VDial
            • VDir
              • VDir: enumeraciones
            • VExtension
              • VExtension: enumeraciones
            • VFile
              • VFile: enumeraciones
            • VFileInfo
            • VFilePathEditBrowser
            • VFinder
            • VFont
              • VFont: enumeraciones
            • VFormBlockListDataView
            • VFormDataView
            • VFormulaEditBrowser
            • VGaugeWidget
            • VGPS
            • VGridListDataView
            • VGroupBox
            • VImage
            • VImageEdit
            • VImageWidget
            • VInstancesList
            • VInstance
            • VInstances
            • VItemRegisterPattern
            • VLabel
            • VLineEdit
            • VLineEditBrowser
            • VListBox
            • VListDataView
            • VLogin
            • VMainWindow
              • VMainWindow: enumeraciones
            • VMdiView
            • VMimeData
            • VMultiDataView
            • VNumberSpinBox
            • VNumberSpinBoxBrowser
            • VObjectInfo
              • VObjectInfo: enumeraciones
            • VObjectInstance
            • VProcess
            • VProgressBar
            • VProjectInfo
            • VPushButton
            • VQmlFormDataView
            • VQmlListDataView
            • VQmlListModel
            • VQuery
            • VRadioButton
            • VRegister
            • VRegisterList
            • VReportListDataView
            • VRequest
            • VResponse
            • VRoot
            • VScreen
            • VScrollArea
            • VServerAdmin
            • VSettings
            • VSlider
            • VSlotListDataView
            • VSolutionInfo
            • VSplitter
            • VSqlDatabase
            • VSSLCertificate
            • VSSLInfo
            • VSSLSessionCipher
            • VStackedWidget
            • VSvgButton
            • VSvgSlideSwitch
            • VSvgToggleSwitch
            • VSvgWidget
            • VSysInfo
              • VSysInfo: enumeraciones
            • VTableInfo
              • VTableInfo: enumeraciones
            • VTabWidget
            • VTextEdit
            • VTextFile
            • VThermometerWidget
            • VThumbWheel
            • VTimeEdit
            • VTimeEditBrowser
            • VToolBox
            • VTreeItem
            • VTreeItemRegister
            • VTreeListDataView
            • VTreeMenu
            • VTreeMultiTableListDataView
            • VTreeWidget
            • VUser
            • VUserGroup
            • VUserGroupList
            • VUserList
            • VXmlReader
            • VXmlWriter
            • Widget
            • XMLHttpRequest
        • QML
          • Tipos QML
          • Funciones específicas de QML
    • Depuración
      • Depuración de procesos de Velneo
      • Depuración de procesos JavaScript
      • Monitor de vClient
    • Extensiones de Velneo vDevelop
    • Acceso directo a una solución desde vDevelop
    • Buenas prácticas
      • Buenas prácticas de organización
        • Proyectos
        • Organización de carpetas
        • Proyecto de datos
        • Proyecto de aplicación
      • Buenas prácticas de codificación
        • Identificadores
        • Teclas aceleradoras
        • Documenta
        • Diseña los formularios como si no existiesen los layouts
      • Buenas prácticas de rendimiento
        • Arquitectura
          • Listas de registros
          • Lista de resultados de una búsqueda
          • Las cestas
          • Las variables globales
          • La caché de fichas
          • Programa en cloud
        • Formularios
          • Condiciones de visible y activo
          • Carga de subformularios en pestaña, caja o pila
        • Base de datos
          • Campos
          • Indices
          • Actualizaciones
          • Eventos de tabla o triggers
          • Variables globales y constantes
          • Tablas en memoria vs tablas en disco
          • Optimizar migraciones de datos
          • Búsquedas en el servidor ¿Cuándo y Cómo?
          • Campos fórmula vs campos en disco
          • Indices condicionados vs búsquedas complejas
          • ¿Cuándo usar tablas de extensión?
          • Indices de trozos y palabras
          • ¿Cuándo usar cada tipo de campo alfa?
        • Procesos y funciones y eventos
          • 1º, 2º, 3º y 4º plano ¿Cuándo usar cada uno?
          • Bloqueo blando vs bloqueo duro
          • Pasar información del cliente al servidor
          • ¿Cómo optimizar transacciones grandes?
          • ¿Cómo gestionar las transacciones?
          • Grabaciones optimizadas para el usuario
        • Carga de registros en objetos de lista
          • Rejillas
            • Campos punteros a singular
            • Totales
            • Condiciones de activo, visible y color en columna
            • Campos de tipo objeto
        • Conoce los límites
      • Imágenes
      • Buenas prácticas para el desarrollo en equipo
      • Modo mantenimiento
    • Análisis de bases de datos para aplicaciones de Velneo
      • Un centro de enseñanza
      • Facturas de un cliente
      • Repartos de obras de teatro
      • Galería de arte
      • Gestión de un colegio
      • Instalación de lunas para vehículos
      • Libros y autores
      • Tienda de discos
      • Últimos pedidos de un proveedor
      • Existencias por almacén y precios por cliente
      • Generación de tickets para un quiosco
      • Navegación por facturas
  • Velneo vDevelop Web
  • Velneo vAdmin
    • ¿Qué es Velneo vAdmin?
    • Gestión de usuarios
    • Gestión de aplicaciones
      • Soluciones
      • Instancias
      • Disco
    • Monitorización
      • Lista de comandos
    • Tareas
    • Acceso directo
    • Velneo vAdmin Web
  • Velneo vClient
    • ¿Qué es Velneo vClient?
    • Movilidad
    • Funcionalidades de Velneo vClient
      • Accesos directos y VRL
      • Cambiar idioma
      • Panel de procesos en 2º plano
      • Manejo de rejillas
        • Submenú de filtros
      • Uso de la rejilla avanzada
      • Manejo de cestas
      • Refrescos
      • Caché local
      • Edición de campos enlazados a maestro
      • Edición de campos de tipo fecha
      • Capturar imagen desde una cámara
      • Asignar impresoras lógicas
      • Actualización automática
      • Personalización de la ventana de conexión de Velneo vClient
      • Instalador personalizado de Velneo vClient
      • Ordenación de listas
  • Velneo vServer
    • ¿Qué es Velneo vServer?
    • Instalación y configuración
      • Activación de la licencia
      • Línea de comandos de Velneo vServer
      • Parámetros configurables de Velneo vServer
      • Estructura de directorios
    • Iniciar y detener Velneo vServer
    • Funcionalidades
      • Protocolo VATP
      • Protocolo VATPS
      • Multi-hilo
      • Integridad referencial
      • Refrescos terciarios
      • Sistema transaccional
      • Sistema de bloqueos
      • Tecnología bigkey
      • Hilo de control
    • Mensajes de log de sistema
    • vPacker
  • Velneo vInstallBuilder
    • ¿Qué es Velneo vInstallBuilder?
    • Configurar una instalación
    • Probar una instalación
    • Crear el instalable
    • Accesos directos
  • Velneo vModApache
    • ¿Qué es Velneo vModApache?
    • Instalación y configuración
    • Nomenclatura de objetos en urls
    • Uso de ficheros adjuntos
    • Caché local de Velneo vModApache
  • Velneo vDataClient
    • ¿Qué es Velneo vDataClient?
    • Iniciar Velneo vDataClient
    • Interfaz de Velneo vDataClient
    • Procesos
    • Utilidades
    • Acceso directo a una instancia de datos
    • Velneo vDataClient Web
  • Velneo vTranslator
    • ¿Qué es Velneo vTranslator?
    • Importación y exportación basada en XLIFF
    • Acceso directo a una solución
  • Velneo ODBC Driver
    • ¿Qué es velneo ODBC Driver?
    • Referencia de comandos SQL
  • Velneo vVersion
    • ¿Qué es Velneo vVersion?
  • Velneo vERP
    • ¿Qué es Velneo vERP?
    • Manual del programador
    • Documentación de la ApiRest
    • Novedades de la versión
  • Velneo vTutor
    • ¿Qué es vTutor?
    • Tutores de objetos básicos
      • Tutor de árboles visores de tablas arboladas
      • Tutor de búsquedas
      • Tutor de cestas
      • Tutor de formularios
      • Tutor de informes
      • Tutor de localizador básico
      • Tutor de marcos
      • Tutor de rejillas
      • Tutor de rejillas avanzadas
    • Tutores de objetos avanzados
      • Tutor de alternadores de lista
      • Tutor de comboview
      • Tutor de drag and drop
      • Tutor de eventos
      • Tutor de tablas de extensión y extensiones de ficha
      • Tutor de tubos de ficha y de lista
      • Tutor de grabación de fichas
      • Tutor de gráficos
      • Tutor de impresión de informes
      • Tutor de lupas
      • Tutor de protocolo TCP/IP
      • Tutor de reemplazo
    • Tutores de controles
      • Tutor de botones de menú
      • Tutor de controles SVG
      • Tutor de edición numérica
      • Tutor de visor html dinámico
      • Tutor de vistas de datos de lista
    • Tutores de procesos y manejadores de evento avanzados
      • Tutor de cambio de marco
      • Tutor de comandos de interfaz y acciones
      • Tutor de importación y exportación de ficheros ASCII
      • Tutor de portapapeles
      • Tutor de procesos
      • Tutor de SDV
    • Tutores de scripts
      • QML: hola mundo
      • QML: tutor básico
      • QML: tutor de vistas
      • Tutor de XMLHttpRequest (webServices)
  • Velneo cloud
    • ¿Qué es Velneo Cloud?
    • Panel de control vServer cloud
      • URC
      • vServer
      • Apache
      • SFTP
      • Usuarios
    • Copias de seguridad
    • Velneo cloud API
      • Uso de Velneo cloud API
    • Explorador de archivos cloud sFTP
    • TCP en Velneo cloud
    • Dominios de empresa y certificados
    • Velneo vModApache en cloud
    • SLA
    • Hora de los servidores en el cloud de Velneo
    • ¿Qué puedo hacer si tengo una incidencia en mi servidor cloud?
Con tecnología de GitBook
En esta página
  • Editor de procesos de lenguaje Velneo
  • Editor de procesos JavaScript
  • Planos de ejecución de procesos
  • 1º plano
  • 2º plano
  • 3º plano
  • 4º plano
  • Notas adicionales sobre planos de ejecución de procesos
  • Proceso: ON_INIT_CLIENT
  • Proceso: ON_INIT_SERVER
  • Proceso ON_CLOSE_SERVER
  • Comandos

¿Te fue útil?

  1. Velneo vDevelop
  2. Proyectos objetos y editores
  3. Objetos comunes a proyecto de datos y de aplicación

Proceso

Última actualización hace 4 años

¿Te fue útil?

Es un objeto contenedor de instrucciones definible por el programador. Las instrucciones se ejecutarán de forma secuencial y harán uso, o bien de que pueden acceder a otros objetos de los proyectos incluyendo otros procesos, o bien de código .

El proceso tiene una entrada y una salida, es decir, un origen ficha, lista o ninguno y una tabla asociada, y un destino ficha, lista o ninguno y una tabla asociada. Esto permite trabajar con uno o varios registros de entrada y que el proceso devuelva uno o varios registros como salida. Cada una de las instrucciones tiene un origen y un destino condicionados por el origen y el comando anterior, el primero de ellos determinado por la entrada del proceso. De esta forma el flujo de datos es gestionado por el proceso, permitiendo una salida programada en función de la entrada.

Los procesos se pueden ejecutar en distintos , lo que permite que sean ejecutados en local o el servidor, en multi-tarea en local, y esperando respuesta o no por parte del proceso llamado. Para crear un objeto de este tipo seleccionar la opción nuevo objeto/proceso del menú objetos de Velneo vDevelop o a través de la galería de objetos.

El sistema nos pedirá, en primer lugar, el lenguaje en el cual programaremos el proceso: o .

Los procesos serán creados directamente en el editor de procesos que se abre al crear/editar un objeto de este tipo.

Los procesos Javascript requieren de la creación de un fichero de script, que será asignado al proceso en la propiedad fichero script. Consultar los siguientes capítulos para ampliar información al respecto: y .

Las propiedades de un proceso son:

Identificador

Etiqueta alfanumérica que identifica al objeto. Este identificador será el que se usa para referenciarlo en los y en las propiedades de otros objetos.

Nombre

Etiqueta alfanumérica que servirá como descriptor del objeto. Es el texto que se presentará al usuario final de la aplicación para referenciar al objeto. Podemos definir una etiqueta por cada idioma presente en el proyecto.

Estilos

Podemos definir los estilos:

Privado

Limita el acceso del usuario final al objeto desde puntos donde no se haya programado el acceso al mismo. Por ejemplo, si marcamos un proceso de un proyecto de datos como privado, dicho proceso no estará accesible al ejecutar la instancia de dicho proyecto con Velneo vDataClient.

Accesible web

Debug: punto de interrupción

Comentarios

Esta propiedad nos permite documentar el uso del proceso.

Tabla asociada

Origen

Esta propiedad aparecerá solamente en el caso de que en la propiedad tabla asociada hayamos seleccionado una tabla. Los valores posibles son:

Ficha

El origen del proceso será una ficha (registro) de la tabla seleccionada en la propiedad tabla asociada.

Lista

El origen del proceso será una lista de registros de la tabla seleccionada en la propiedad tabla asociada.

Tabla destino

Esta propiedad nos permite establecer la salida del proceso. Podremos, o bien seleccionar una tabla de un proyecto de datos heredado, o bien seleccionar el valor ninguna en el caso de que el proceso no tenga salida.

Destino

Esta propiedad aparecerá solamente en el caso de que en la propiedad tabla destino hayamos seleccionado una tabla. Los valores posibles son:

Ficha

La salida del proceso será una ficha (registro) de la tabla seleccionada en la propiedad tabla destino.

Lista

La salida del proceso será una lista de registros de la tabla seleccionada en la propiedad tabla destino.

Una vez establecidas las propiedades podremos pasar a crear las instrucciones que lo conformarán, para ello disponemos de un editor. Para abrirlo bastará con pulsar intro o hacer doble clic sobre el identificador del proceso que acabamos de crear en el panel de objetos de Velneo vDevelop.

Editor de procesos de lenguaje Velneo

En la barra de herramientas tenemos los siguientes comandos:

Así mismo, se incluyen dos comandos específicos para la depuración de procesos:

El editor de procesos dispone de un asistente para la creación de cada línea:

En la parte superior de dicho asistente se informa sobre el origen de la línea del proceso seleccionada, que podrá ser:

  • Ninguno.

  • Ficha de una tabla concreta.

  • Lista de registros de una tabla concreta.

Los comandos disponibles en una línea dependerá del origen de la misma, que en primer lugar viene determinado por el origen del proceso y que podemos ir variando dependiendo de los comandos que empleemos. Algunos comandos generarán subramas cuyo origen vendrá determinado por el comando y se ejecutarán las instrucciones que cuelguen de la subrama en función de éste.

Para localizar un comando podremos hacerlo, o bien navegando a través de las carpetas y subcarpetas de la ventana de selección, o bien usando la opción Filtro. Al escribir una cadena en el filtro el sistema presentará todos los comandos que la contengan:

Estando el foco en el filtro, podremos hacer uso de las teclas de cursor arriba/abajo para navegar entre los comandos encontrados.

Una vez seleccionado el comando deseado pulsar el botón “Aceptar”. El comando será incluido en la línea del proceso donde estábamos posicionados.

Si modificamos el tamaño o cambiamos la ubicación de esta ventana de selección de comandos el sistema lo recordará en futuras sesiones de Velneo vDevelop.

Los comandos que no puedan ser usados en la línea debido a su origen serán mostrados en un color gris:

Si el comando seleccionado requiere parámetros, éstos serán mostrados a continuación.

Qué registros componen la salida del proceso vienen determinados por las instrucciones Añadir ficha a la salida y Añadir lista a la salida. La primera podemos usarla para generar la salida ficha de un proceso y la segunda para generar como salida una lista de registros, y ambas son válidas para generar la salida de un proceso.

En ambos casos, los comandos generan la salida a partir de la ficha o lista en cuyo origen esté situado el comando, que tiene que corresponder con el seleccionado en el proceso. En el caso de la lista, además de permitir generar la lista a partir de una ficha, permite hacerlo a partir de varias fichas y listas.

Editor de procesos JavaScript

Planos de ejecución de procesos

Los procesos se dividen en cuatro planos de ejecución según el lugar y el modo en que se ejecutan:

  • 1º Plano: local.

  • 2º Plano: local multitarea (no espera retorno).

  • 3º plano: servidor.

  • 4º plano: servidor (no espera retorno).

1º plano

Los procesos en 1º plano se ejecutan de forma local, bien sea en el cliente, bien sea en el servidor, y devuelven un retorno por el que espera el proceso llamador, hasta que finaliza el proceso llamado, o la acción que ha lanzado el proceso. Por tanto, son bloqueantes del proceso llamador o de la actividad del usuario que no puede seguir interaccionando con el interfaz de la aplicación hasta que éste haya finalizado.

Un proceso en primer plano se puede ejecutar de las formas siguientes:

2º plano

Los procesos en 2º plano se ejecutan de forma local en el cliente, pero el proceso llamador no espera retorno, por lo que pueden ejecutarse en paralelo con otros procesos multitarea. Estos procesos, por tanto, no bloquean el proceso llamador o la actividad del usuario que sí puede seguir interaccionando con el interfaz de la aplicación.

Un proceso en 2º plano se puede ejecutar de las formas siguientes:

La información relativa a los registros manejados en los procesos en 1º y 2º plano viaja entre el cliente y el servidor, por lo que debemos tener en cuenta este dato cuando trabajemos con rangos amplios de registros.

Cuando trabajemos con listas y no con registros concretos, la información que viaja entre ambos no se trata del registro entero si no de la necesaria para apuntar al registro, por lo que el efecto en el tráfico es moderado.

3º plano

Los procesos en 3º plano se ejecutan en el servidor, devolviendo un retorno por el que espera el proceso llamador. Por tanto bloquean la actividad del proceso llamador, que esperará el retorno para seguir con las operaciones programadas. Esto no implica en ningún momento un bloqueo en la actividad del usuario o del servidor. Todos los procesos ejecutados en el servidor son multitarea, y en el cliente tenemos la opción de lanzar el proceso desde otro proceso multitarea.

Los procesos en el servidor, 3º plano, frente a los procesos en 1º ó 2º plano, optimizan el tráfico de información entre cliente y servidor. Esto es porque no viaja entre uno y otro información alguna sobre los registros manejados en el proceso, ni siquiera de las listas manejadas, sino que únicamente se retorna el resultado del proceso. Sin embargo, debemos tener en cuenta que esto hace que sea el servidor el que tenga que atender todas las operaciones que se realice el proceso, por lo que debemos tener en cuenta el balance de la carga.

Un proceso en tercer plano se puede ejecutar de las formas siguientes:

Debemos tener en cuenta que, si en un proceso ejecutado en tercer plano, una instrucción del mismo dura más de 2 minutos, hará que el proceso no pueda reportar al llamador que continúa ejecutándose, por lo que de desenganchará y se deshará.

4º plano

Los procesos en 4º plano se ejecutan en el servidor, pero el proceso llamador no espera retorno. Los procesos entrarán en una cola de 4º plano y serán ejecutados de forma secuencial según el orden de llegada. Cuando paramos el servidor, los procesos que estuviesen en cola pendiente de ser ejecutados son eliminados.

Notas adicionales sobre planos de ejecución de procesos

Solamente será posible usar comandos de instrucción de proceso que generen interfaz en aquellos procesos que ejecutamos en primer plano; en otros planos no pueden ser usados. Si se trata de procesos de Velneo, el sistema simplemente no los ejecutará, pero si se trata de procesos JavaScript, debemos evitarlo, ya que el sistema no lo controlará. Existe una excepción y es la del comando de instrucción Mensaje. Usado en procesos en 2º plano mostrará el mensaje en la barra de estado de Velneo vClient. Usado en tercer plano mostrará el mensaje directamente en el panel de Mensajes del sistema de Velneo vAdmin.

Sobre la configuración regional del sistema y los procesos ejecutados en tercer y cuarto plano debemos tener en cuenta lo siguiente:

  • Los cambios que hacemos en la configuración regional del sistema operativo del servidor solamente afectan al usuario en cuya sesión se hace el cambio.

  • Si el servicio VATP está asociado a la cuenta local del sistema, no se tendrá en cuenta la configuración establecida en una sesión de usuario. Tendremos dos opciones:

    1) Cambiar la configuración regional de la cuenta local (que sería la opción aconsejada). En algunos sistemas operativos, por ejemplo, se incluye una opción que permite aplicar la configuración establecida en una sesión de un usuario a la cuenta del sistema. 2) Asociar el servicio a la cuenta del usuario en cuya sesión se modifica la configuración regional.

Proceso: ON_INIT_CLIENT

Proceso: ON_INIT_SERVER

Dicho proceso será ejecutado en el servidor Velneo vServer.

El proceso deberá cumplir los siguientes requisitos:

Para que el sistema reconozca un proceso como tal ha de tener el identificador ON_INIT_SERVER.

El proceso no podrá tener ni origen ni destino.

El proceso no deberá incluir ningún comando de instrucción que requiera la intervención de un usuario (Pedir formulario, por ejemplo) o que genere interfaz ya que, tal y como hemos dicho anteriormente, el proceso es ejecutando en el servidor.

Posibles ejemplos de uso de este tipo de proceso: inicializar variables globales de un proyecto, iniciar un servicio TCP/IP, etc.

Debemos tener en cuenta que el proceso será ejecutado solamente cuando se instancie o se reinicie la instancia que lo contiene. Supongamos que tenemos un proyecto de aplicación que hereda uno de datos y que ambos proyectos contienen un proceso ON_INIT_SERVER. Dado que la instanciación de un proyecto implica la instanciación de todos los proyectos heredados por el mismo, la primera vez que instanciemos el proyecto de aplicación se creará también la instancia del proyecto de datos heredado, por lo que se ejecutará el proceso ON_INIT_SERVER de ambos. Si con posterioridad reiniciamos el proyecto de aplicación, se ejecutará el proceso ON_INIT_SERVER del mismo, pero no el del proyecto de datos heredado.

No se debe usar este proceso para escribir en la base de datos, ya que en el momento de su ejecución no se ha iniciado el control de transacciones. Solamente recomendamos su uso para operaciones que no generen transacción.

Proceso ON_CLOSE_SERVER

Es posible crear un proceso para que sea ejecutado cada vez que se detenga o se reinicie una de un proyecto. Se lanza siempre que sea detenida la ejecución de la instancia en el servidor bien porque se reinicie la instancia o porque se detenga el servidor.

El proceso será ejecutado solamente cuando se detenga o se reinicie la instancia que lo contiene. Supongamos que tenemos un proyecto de aplicación que hereda uno de datos y el de datos contiene un proceso ON_CLOSE_SERVER.

Si detenemos la instancia del proyecto de aplicación, no se ejecutará el proceso. Solamente se ejecutará si detenemos la instancia del proyecto de datos.

Dicho proceso será ejecutado en el servidor Velneo vServer.

El proceso deberá cumplir los siguientes requisitos:

Para que el sistema reconozca un proceso como tal ha de tener el identificador ON_CLOSE_SERVER.

El proceso no podrá tener ni origen ni destino.

El proceso no deberá incluir ningún comando que tenga interacción con la interfaz, ni tampoco transacciones en la base de datos, ya que el servidor ya está detenido para esa instancia.

Si tenemos varias instancias con proyectos ON_CLOSE_SERVER tanto en proyectos de datos como de aplicación, primero se lanzarán todos los de los proyectos de datos y luego todos los de los proyectos de aplicación.

Comandos

Los comandos son las instrucciones con las que se construyen los procesos, eventos, funciones, demonios, etc. Pueden tener uno o varios parámetros dependiendo de cada comando. Los comandos pueden ser de lista, de ficha o de ambas. Al seleccionar una línea, aparece en la parte inferior la ventana Instrucción donde nos informa del origen del subproceso actual y de los comandos disponibles, los cuales dependen de que el origen sea ficha o lista.

Comandos propios de lista

Como su nombre indica son comandos aplicables a las listas. En la descripción de los parámetros se indica si los mismos son obligatorios u opcionales.

Comandos propios de ficha

Como su nombre indica son comandos aplicables a las fichas. En la descripción de los parámetros se indica si los mismos son obligatorios u opcionales.

Comandos sin origen

Como su nombre indica son los comandos que no están asociados a un origen fijo, pueden tener su origen tanto en una ficha, en una lista como “Ninguno”. En la descripción de los parámetros se indica si los mismos son obligatorios u opcionales.

En capítulos siguientes se explican los comandos agrupados por tipo.

En los capítulos siguientes explicaremos los comandos de instrucción de proceso que contempla Velneo.

Un proceso que tenga activado este estilo podrá ser ejecutado vía web. Ver el capítulo dedicado a para ampliar información al respecto.

Este estilo solamente estará disponible para los y lo que permitirá es que pueda depurarse el proceso cuando ejecutemos la solución en modo de

Esta propiedad nos permite establecer el origen del proceso. Podremos, o bien seleccionar una de un o bien seleccionar el valor ninguna en el caso de que el origen del proceso no tenga origen.

El editor de procesos es el objeto que nos permite definir el conjunto de instrucciones que formarán parte del mismo. Las instrucciones de un proceso serán subobjetos del mismo y obtendrán su origen del propio proceso, pero, más importante aún, las del proceso también son subobjetos del mismo. Se crearán automáticamente cuando las usemos en las instrucciones, pero podremos acudir al proceso, haciendo doble clic, para poder cambiar su configuración.

Añadir línea (Teclas Control + Enter o Control + N): añade una línea al mismo nivel que la línea en la que estamos situados.

Insertar línea (Tecla Insert o Shift + Enter): inserta una línea al mismo nivel que la línea en la que estamos situados.

Borrar línea (Tecla Supr): borra la línea seleccionada.

Activar/desactivar línea (tecla Shift + F6): permite activar o desactivar la línea o líneas seleccionadas . Una línea desactivada no se ejecutará.

Por otro lado, podremos manejar las ramas del árbol de instrucciones , además un comando para seleccionar todas las instrucciones

Imprimir: envía el impresora el proceso.

Imprimir a fichero pdf: exporta el proceso en un archivo en disco en formato pdf.

Copiar código al portapapeles en modo texto: copia el código del proceso en el portapapeles en modo texto plano, respetando las tabulaciones de las líneas, para que podamos pegarlo posteriormente en un documento, en un ticket del centro de soporte, etc.

Conmutar punto de interrupción (F9): añade/quita un punto de interrupción en la línea donde estemos posicionados. Un punto de interrupción hace que, cuando ejecutemos el proceso en modo de su ejecución se pare en ese punto de interrupción que hemos marcado.

Quitar todos los puntos de interrupción: quita todos los puntos de interrupción del proceso.

El comando será especificado en el primer control. Para seleccionarlo podremos, o bien escribiéndolo directamente, o bien desplegando dicho control y seleccionándolo, o bien pulsando el botón o pulsar la combinación de las teclas Shift + F4 para abrir la ventana de selección de comandos de instrucción que contiene la lista de comandos de proceso agrupados por tipo:

La especificación de los parámetros de un comando será asistida. En unos casos el parámetro desplegará una lista con los valores posibles que pueden ser seleccionados y en otros casos se presentará el Tal y como hemos dicho al comienzo del artículo, en aquellos parámetros cuyo contenido sea una variable local podremos, o bien, seleccionar una declarada previamente en el proceso, o bien crearla nueva.

Si pulsamos el botón que se muestra junto al comando seleccionado, se abrirá una ventana con la ayuda en línea del mismo. Esta opción, por lo tanto, requiere de conexión a Internet. La ayuda, además de la información sobre los comandos de instrucción, también mostrará ejemplos de uso de los mismos. Esta ayuda de comandos podremos invocarla también con la combinación de las teclas Ctrl + F1.

Ver el capítulo .

Desde una con el comando .

Desde otro proceso con el comando de instrucción de proceso .

Desde otro proceso con el comando de instrucción de proceso .

Los se ejecutan en primer plano.

Para conocer el estado de estos procesos que se están ejecutando en segundo plano existe el que nos muestra todos los procesos en segundo plano que se están ejecutando, indicando la a la que han sido asignados y que se encarga de gestionar el cliente. A este panel se puede acceder mediante el comando de archivo: procesos en 2º plano.

En la información sobre los procesos se especifica el título de la transacción y el porcentaje del proceso realizado, datos que podemos definir en el proceso con los comandos de instrucción de proceso y .

Desde una con el comando .

Desde otro proceso con el comando de instrucción de proceso .

En las no hay multi-tarea. Esto quiere decir que si desde un disparamos un proceso en 2º plano, éste será ejecutado en primer plano.

No hay segundo plano en procesos ejecutados en el servidor (, procesos ejecutados en tercer plano, desde en modo server, ni desde programadas. En el caso de querer ejecutar un proceso asíncrono en ese contexto lo lanzaremos en 4º plano.

No hay segundo plano en .

Desde otro proceso con el comando de instrucción de proceso .

Desde otro proceso con el comando de instrucción de proceso .

Los son ejecutados en tercer plano.

Desde otro proceso con el comando de instrucción de proceso .

Desde otro proceso con el comando de instrucción de proceso .

Desde un con el comando de instrucción de proceso .

Desde un con el comando de instrucción de proceso .

No hay segundo plano en los . Estos se ejecutarán siempre en primer plano.

Es posible crear un proceso para que sea ejecutado cuando ejecutemos la aplicación con . El proceso será ejecutado antes de crear el . Si en el proyecto hemos definido más de un marco y queremos establecer uno distinto al AUTOEXEC, lo haremos en este proceso con el comando de instrucción de proceso .

Es posible crear un proceso para que sea ejecutado cada vez que se declare o se reinicie una de un proyecto. Es decir, cada vez que creemos o reiniciemos una instancia de un proyecto (tanto de datos como de aplicación , dicho proceso será ejecutado.

Velneo vModApache
procesos javascript
depuración de procesos JavaScript.
tabla
proyecto de datos
variables locales
asistente para edición de fórmulas.
manejadores de evento
Panel de procesos en 2º plano
cola
acción
vistas de datos
manejador de evento
triggers
Veneo vModapache
tareas
procesos JavaScript
triggers
procesos JavaScript
instancia
comandos de instrucción de proceso
JavaScript
Velneo
Javascript
scripts
inspectores
planos
depuración,
acción
acción
trigger
trigger
Velneo vClient
marco
disparar objetos
ejecutar proceso 2º plano
disparar objeto
disparar objeto
disparar objeto
disparar objeto
ejecutar proceso
ejecutar proceso
ejecutar proceso
ejecutar proceso
ejecutar proceso
establecer marco
editor de scripts
cambiar título de la transacción
cambiar porcentaje realizado del proceso
inspector de scripts