Objeto - grupo de comandos
Se trata de un conjunto de comandos que nos permiten manipular objetos de interfaz, tanto de ficha como de lista, de un proyecto de aplicación, etc.
Comando de instrucción que añade la ficha en curso a un objeto instanciado previamente en el mismo proceso.
Origen de la instrucción: ficha de la tabla en curso.
Destino del subproceso: ninguno.
Identificador o manejador dado al objeto previamente en el proceso por medio del comando de instrucción Crear manejador de objeto.​
Permite añadir un registro.
El objeto tendrá que ser uno que maneje registros, como por ejemplo, un formulario.
El objeto tendrá que haber sido instanciado con anterioridad dentro del mismo proceso y el registro tendrá que ser de la misma tabla asociada al objeto.
Este comando lee el contenido que tiene la ficha en disco y sustituye lo que se tenga en memoria en el objeto al que se añada la ficha.
Por lo tanto, si queremos añadir una ficha creada en el mismo proceso, habrÃa que guardarla en disco previamente antes de añadirla al objeto.
Editamos el artÃculo con ID = 1 habiendo añadido previamente la ficha al manejador de objetos.
Crear manejador de objeto ( manejador_formulario, Formulario [email protected] )
Cargar lista ( [email protected], ID, 1, , , )
Seleccionar ficha por posición ( 1 )
Leer ficha seleccionada
Añadir ficha al objeto ( manejador_formulario )
Disparar objeto ( manejador_formulario, No aplicable, )
Libre
Comando de instrucción que añade la lista de registros en curso a un objeto instanciado previamente en el mismo proceso.
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: ninguno.
Identificador o manejador dado al objeto previamente en el proceso por medio del comando de instrucción Crear manejador de objeto.
Permite añadir una lista de registros registro.
El objeto tendrá que ser uno que maneje registros, como por ejemplo, una rejilla.
El objeto tendrá que haber sido instanciado con anterioridad dentro del mismo proceso y la lista de registros tendrá que ser de la misma tabla asociada al objeto.
Cargamos la lista de clientes añadiendo los registros a un manejador de objetos de tipo informe que es disparado..
Crear manejador de objeto ( informe_clientes, Informe [email protected] )
Cargar lista ( [email protected], ID, , , , )
Añadir lista al objeto ( informe_clientes )
Rem ( Disparamos el informe de clientes )
Disparar objeto ( informe_clientes, No aplicable, )
Libre
Comando de instrucción que genera un manejador del objeto que seleccionemos en sus parámetros. El resto de los comandos de objeto han de usar este manejador como referencia para la acción que realizan.
Origen de la instrucción: cualquiera.
Destino del subproceso: ninguno.
Etiqueta alfanumérica que servirá para referenciar el objeto en el resto de los comandos de objeto que vayan a hacer uso del mismo.
Objeto que se desea manipular. Se desplegará una lista de todos los objetos disponibles, agrupados por tipo. Seleccionaremos el deseado.
Propiedad especÃfica para objetos de interfaz de ficha o de lista (formulario, rejilla, etc.) que nos permite configurar el modo en el que se visualizará el objeto. Los valores posibles son:
- Diálogo: el objeto será abierto como cuadro de diálogo.
- Vista: el objeto será abierto en modo vista.
A tener en cuenta:
Si se trata de un formulario en modo vista y éste tiene activado el estilo vista única, respeta su comportamiento.
En modo diálogo, para la interfaz y el proceso queda a la espera de que el usuario cierre el objeto para continuar.
En modo vista no para la interfaz y el proceso continúa su ejecución, no espera a que el objeto sea cerrado.
En modo vista soporta el comando set variable local del objeto pero no el comando get variables local de objeto. Esto es debido a que en modo vista el proceso abre el objeto y continúa su ejecución, no espera a que sea cerrado.
Propiedad especÃfica para objetos de interfaz de ficha o de lista (formulario, rejilla, etc.) que nos permite especificar un tÃtulo a la ventana que contendrá el objeto.
Genera un manejador del objeto que seleccionemos en sus parámetro para su posterior manipulación dentro del proceso. El resto de los comandos de objeto han de usar este manejador como referencia para la acción que realizan.
Es posible instanciar un mismo objeto varias veces en un mismo proceso, o manejar distintos objetos al mismo tiempo.
El objeto no tendrá referencia alguna a registros, hasta que se los asignemos con el comando adecuado.
Cuando creamos un objeto de ficha con este comando de instrucción se crea una ficha nueva y se rellenan sus contenidos iniciales, por lo que cuando usamos el comando Disparar objeto, la ficha está ya creada previamente por el otro comando y ya dispone de los valores inicializados en los contenidos iniciales.
En un mismo proceso, no debemos crear varios objetos con el mismo manejador, ya que precisamente el manejador o handler es el que identifica al objeto por lo que, si tenemos manejadores duplicados, el sistema no podrá saber a cuál de los objetos ha de hacer referencia.
Creamos un manejador de objetos del objeto Búsqueda ARTICULOS.
Crear manejador de objeto ( busqueda_articulos, Búsqueda [email protected] )
Comando de instrucción que permite hacer uso de un objeto instanciado previamente en el mismo proceso.
Origen de la instrucción: cualquiera.
Destino del subproceso: ficha/Lista de la tabla asociada al objeto o Ninguno, depende de si el objeto tiene o no salida.
Identificador o manejador dado al objeto previamente en el proceso por medio del comando de instrucción Crear manejador de objeto.
En este parámetros especificaremos dónde y de qué modo va a ser disparado el objeto. Los valores posibles son:
- 1º plano: local: el objeto es disparado de forma local, bien sea en el cliente, bien sea en el servidor, y devuelve un retorno por el que espera el proceso. Por tanto, este parámetro es bloqueante del proceso llamador hasta que éste haya finalizado.
- 3º plano: servidor: el objeto es disparado en el servidor y devuelve un retorno por el que espera el proceso. Por tanto, este parámetro es bloqueante del proceso llamador hasta que la ejecución del objeto haya finalizado. Dado que el objeto será disparado en el servidor no podremos disparar objetos de interfaz en los que deba intervenir el usuario, como por ejemplo, formularios, pues éstos serÃan presentados en el servidor, no en el cliente. Solamente podremos disparar en tercer plano objetos de tipo proceso y búsqueda.
- 4º plano: servidor (no espera retorno): solamente válido para ejecutar procesos. El subproceso será ejecutando en una cola el servidor y su ejecución será paralela a la del proceso principal pues éste no esperará a que el subproceso finalice. Los procesos disparados en 4º plano son ejecutados en una cola de forma secuencial.
Permite hacer uso de un objeto instanciado previamente en el mismo proceso por medio del comando de instrucción Crear manejador de objeto y atrapar su retorno. Pudiendo disparar el objeto tanto en local como en el servidor.
Este comando genera un subproceso cuyo origen será la salida del objeto disparado. Dicho subproceso solamente será ejecutado si el objeto disparado tiene salida.
Este comando no admite la ejecución de procesos en segundo plano (multitarea), ya que se trata de un comando de interfaz. Sà permite disparar los procesos en tercer o cuarto plano.
Si el objeto a disparar es un objeto de lista como, por ejemplo, una rejilla, al hacer sobre ella doble clic o intro se mostrará el formulario de modificación del Ãtem seleccionado y se cerrará la rejilla.
Cuando se utilizan los manejadores de objetos, si no tienen transacción a heredar, crean una transacción nueva independiente, sin embargo, si tienen una transacción a heredar incluyen sus operaciones en dicha transacción.
Por lo tanto, Si queremos forzar que diferentes procesos lanzados a través del manejador de objetos queden agrupadas en una sola transacción tan sólo hay que ejecutar el comando “Forzar transacción†antes de ejecutar los comandos “Disparar objetoâ€.
Debemos tener en cuenta que, si disparamos un proceso en tercer plano y una instrucción del mismo dura más de 10 minutos, hará que el proceso no pueda reportar al llamador que continúa ejecutándose, por lo que de desenganchará y se deshará.
Creamos un manejador de objetos del objeto Búsqueda ARTICULOS, disparando el objeto y llevando los registros que nos devuelve la búsqueda a la salida.
Crear manejador de objeto ( busqueda_articulos, Búsqueda [email protected] )
Disparar objeto ( busqueda_articulos, No aplicable, )
Añadir lista a la salida
Comando de instrucción que permite obtener el valor de un Ãtem de una variable local de tipo array declarada en un objeto instanciado previamente en el mismo proceso.
Origen de la instrucción: cualquiera.
Destino del subproceso: ninguno.
Identificador o manejador dado al objeto previamente en el proceso por medio del comando de instrucción Crear manejador de objeto.
En este parámetro se desplegará una lista que contendrá todas las variables locales del objeto que sean de tipo array; seleccionaremos la deseada.
Posición del array donde está el item. En este parámetro podrá especificar tanto una constante como una expresión fórmula. La primera posición es la número 0.
En este parámetro se declara una variable que retornará el valor del Ãtem leÃdo del array.
Esta instrucción permite leer el valor de una posición variable local.
El objeto tendrá que haber sido instanciado con anterioridad a la lectura de sus variables, dentro del mismo proceso.
Ejecutamos un proceso obtenido de él el valor de la posición 1 del array MAT_CONFIG guardando su valor en la variable local CONFIGURACION par mostrarla con un mensaje.
Crear manejador de objeto ( proceso_configuracion, Proceso [email protected] )
Disparar objeto ( proceso_configuracion, 1º plano: local (sÃncrono), )
Libre
Get Ãtem de variable local array de objeto ( proceso_configuracion, MAT_CONFIG, 1, CONFIGURACION )
Mensaje ( "Valor de la variable de configuración: " + CONFIGURACION, Información, , )
Comando de instrucción que permite obtener el valor de una variable local declarada en un objeto instanciado previamente en el mismo proceso.
Origen de la instrucción: cualquiera.
Destino del subproceso: ninguno.
Identificador o manejador dado al objeto previamente en el proceso por medio del comando de instrucción Crear manejador de objeto.
En este parámetro se desplegará una lista que contendrá todas las variables locales del objeto; seleccionaremos aquella cuyo valor queramos obtener.
En este parámetro se seleccionará o se creará la variable local del proceso donde se retornará el dato leÃdo.
Este comando de instrucción permite leer el valor de una variable local.
El objeto tendrá que haber sido instanciado con anterioridad a la lectura de sus variables, dentro del mismo proceso.
Si disparamos un proceso en tercer plano y en dicho proceso se usa el comando set retorno proceso = NO, no se retornará el valor de ninguna variable (en primer plano sÃ). En el caso de la ejecución en tercer plano, lo que podemos hacer es sustituir el set retorno proceso = NO por otra variable local, a la que asignaremos un 1 o un 0 y en el proceso llamador leer el valor de dicha variable.
Ejecutamos un proceso en tercer plano que nos devolverá en la variable ESTA_FACTURADO el resultado de la ejecución del proceso de facturación.
Crear manejador de objeto ( proceso_facturacion, Proceso [email protected] )
Disparar objeto ( proceso_facturacion, 3º plano: Servidor (sÃncrono), )
Libre
Get variable local de objeto ( proceso_facturacion, FACTURADO, ESTA_FACTURADO )
If ( ESTA_FACTURADO = 0 )
Mensaje ( "El proceso de facturación no se ha realizado correctamente", Información, , )
Comando de instrucción que permite asignar un valor a un Ãtem de una variable local de tipo array declarada en un objeto instanciado previamente en el mismo proceso.
Origen de la instrucción: cualquiera.
Destino del subproceso: ninguno.
Identificador o manejador dado al objeto previamente en el proceso por medio del comando de instrucción Crear manejador de objeto.
En este parámetro se desplegará una lista que contendrá todas las variables locales del objeto que sean de tipo array; seleccionaremos la deseada.
Posición del array donde está el item. En este parámetro podrá especificar tanto una constante como una expresión fórmula. La primera posición es la número 0.
Valor a establecer al item indicado en el parámetro anterior. En este parámetro podrá especificar tanto una constante como una expresión fórmula.
Esta instrucción permite asignar valor a un item de una variable local.
El objeto tendrá que haber sido instanciado con anterioridad a la lectura de sus variables, dentro del mismo proceso.
Disparamos el proceso creado en el manejador de objeto proceso_facturación asignando un valor al Ãtem 1 al array declarado.
Crear manejador de objeto ( proceso_configuracion, Proceso [email protected] )
Set Ãtem de variable local array de objeto ( proceso_configuracion, MAT_CONFIG, 1, "VALOR=EJECUTAR" )
Disparar objeto ( proceso_configuracion, 1º plano: servidor (sÃncrono), OK )
Libre
Comando de instrucción que permite obtener el valor de una una variable local declarada en un objeto instanciado previamente en el mismo proceso.
Origen de la instrucción: cualquiera.
Destino del subproceso: ninguno.
Identificador o manejador dado al objeto previamente en el proceso por medio del comando de instrucción Crear manejador de objeto.
En este parámetro se desplegará una lista que contendrá todas las variables locales del objeto; seleccionaremos aquella cuyo valor queramos modificar.
En este parámetro se establecerá, por medio de una fórmula, el valor de la variable. Para facilitar su escritura podemos hacer uso del asistente para la edición de fórmulas.
Este comando de instrucción permite asignar un valor a una variable local.
El objeto tendrá que haber sido instanciado con anterioridad a la modificación de sus variables, dentro del mismo proceso.
En procesos ejecutados en 3er planoDocumentar como funciona en ambos casos.
Si disparamos un proceso en tercer plano y en éste se ejecuta el comando set retorno proceso NO.
En caso de proceso en tercer o cuarto plano, cuando hay un set retorno no, la información no viaja.
Entre otras cosas además el cliente no espera información ya que puede ser simplemente que el proceso no se ha podido ejecutar.
La opción es no retornar no y retornar una variable indicando el error.
Creamos un manejador de objeto de un objeto búsqueda para que nos retorne los registros encontrados llevando el resultado a la salida. En el objeto búsqueda hay un Ãndice que nos devolverá los registros dependiendo del valor de la variable TXT_BUS.
Crear manejador de objeto ( bus, Búsqueda [email protected] )
Set variable local de objeto ( bus, TXT_BUS, TXT_BUS )
Disparar objeto ( bus, No aplicable, )
Añadir lista a la salida
Última actualización 1mo ago