viernes, 31 de julio de 2015

Como habilitar pestaña de Cuentas Bancarias en Proveedores

Desde la versión de EBS 11.5.10. cuando se otorga la pantalla de Proveedores para alguna responsabilidad nueva, siempre la pestaña Cuentas Bancarias estará desactivada para su uso. Esto se debe a una seguridad interna, ya que esta pantalla es consultada en los modulos de  AP y PO. Dependiendo del usuario puede tener o no acceso a la opción e cuentas bancarias cada vez que se consulta un proveedor.




Para solucionar esto es necesario ir al Menú de aquella responsabilidad donde sucede el problema. dentro del Menú debemos agregar las siguientes funciones para habilitar la pestaña Cuentas Bancarias:

Acceso a Cuenta Bancaria: Proveedor


Acceso a Cuenta Bancaria: Asignaciones de Proveedor


Grabar los cambios para compilar el Menú. Salir del Oracle e ingresar nuevamente a aquella responsabilidad donde se tenía el problema. Al revisar ya podrá tener acceso a la pestaña de Cuentas Bancarias.


jueves, 30 de julio de 2015

Configurar Correo Electrónico para Notificaciones

Cuando configuras el Workflow ,siempre es necesario enviar las notificaciones a las personas encargadas de realizar las aprobaciones o simplemente de informar de los cambios en el negocio. Sin embargo al crear algún usuario nuevo tiene el problema que no se le está notificando vía email.

Si uno revisa todos los ajustes relacionados con el flujo de trabajo, se podrá obtener que todo esta completado y la configuración del perfil de usuario esta correcto. Si el usuario revisa la notificación dentro de la aplicación, se podrá dar cuenta que todo esta conforme.

En ese caso es posible que el usuario no tenga correo asociado, para ello  ir a una Responsabilidad de HRMS >> Personas >> Ingresar y Mantener. Consultar al empleado el cual tiene el problema mencionado. Dar clic en la pestaña Detalles Oficina.


Comprobar si el campo Correo Electrónico tiene la dirección de correo electrónico del empleado. Si no hay, debe introducir una dirección de correo electrónico para recibir las notificaciones del sistema.

lunes, 27 de julio de 2015

API para abortar procesos de Workflow

El API WF_ENGINE.ABORTPROCESS cancela la ejecución de procesos y cancela las notificaciones pendientes. El estado del proceso se considera completa, con un resultado especificado por el argumento resultado. Además de cualquier notificación o subproceso pendiente se establece en un estado de completo. 

Para ello solo es necesario dos parámetros, el Tipo de Elemento y la Clave del Elemento. Básicamente nos sirve para eliminar los flujos de trabajo con el estado OPEN,  si un flujo de trabajo se queda en ese estado no podremos depurar este registro, por eso tenemos que abortar el proceso del flujo de trabajo. 

El siguiente Script sirve para abortar los flujos de trabajo que no serán necesarios:

BEGIN
WF_ENGINE.ABORTPROCESS('&item_type', '&item_key');
END;

Obtener SQL de una Pagina OAF

Cuando queremos obtener información de  la tabla o la vista de algún bloque de algún formulario usamos la opción Registrar Historial. Esta característica puede ser útil para aprender la fuente de datos para un formulario, o ayudar con la construcción de una consulta de base de datos  para investigar problemas de datos. Hay algunas técnicas que se pueden aplicar igualmente en las páginas OAF en R12.

Las páginas OAF organizan los datos que se presentan al usuario a través de View Objects o Visualizar Objetos. La visualización de objetos se puede considerar como la tabla base o la consulta principal de la página. Para poder acceder debe ser a través de un enlace especial en la parte inferior de la página OAF llamada Acerca de esta Pagina.


Para ello el usuario debe tener el Perfil FND: Diagnósticos con el valor Sí. Al hacer clic en este enlace, una nueva página se mostrará que le permite aprender acerca de la definición de la Página. 

La pestaña Página  cuenta con varias áreas de contenido, incluyendo Definición de Página. Dentro de la sección, hay una lista de cada Controlador , Objeto y atributo que esta distribuido en la pagina. Al hacer clic en el enlace de Ampliar Todo, se muestran los diferentes componentes de la página.


Otra sección es el llamado Detalle de Referencias de Componentes de Negocio, donde podemos encontrar la  etiqueta Visualizar objetos, este contendrá enlaces donde al hacer clic podremos encontrar las tablas y vistas que proporcionan los datos de la página. Esto nos llevara a otra página llamada Acerca de Objetos de Visualización.



Podremos ver la consulta con la cual podemos obtener los objetos que necesitamos. Igualmente si queremos encontrar otra consulta de otra región de la página, hay un campo desplegable que contendrá todos los nombres de view objects de la página. Para cargar su contenido debemos dar clic al botón Obtener Detalles y con ello cargaremos sus datos.

jueves, 23 de julio de 2015

Concurrente Depurar Datos Obsoletos de Tiempo de Ejecución de Workflow

El programa Concurrente Depurar Datos Obsoletos de Tiempo de Ejecución de Workflow se utiliza para borrar los datos de flujos de trabajo de las tablas. Este programa es fundamental, ya que al borrar los datos ayudará a mejorar el rendimiento global de los procesos de cada flujo de trabajo. Este programa tiene que funcionar sobre una base programada repetitiva para que los datos de flujo de trabajo no se incrementen a límites indeseables.

Para ejecutar este programa debemos ir a la Responsabilidad Administrador de Workflow, Luego debemos ir a Ver >> Solicitudes y debemos ejecutar una nueva Solicitud Única con el nombre de este programa concurrente. Este programa llama llama al paquete de base de datos WF_PURGE.TOTAL el cual borra los datos tanto por Tipo de Elemento y Actividad.


Los parámetros que encontramos para su ejecución son:

Tipo Artículo: El tipo de elemento a borrar. Dejando este campo en blanco servirá para borras todos los tipos de elementos.
Clave de Articulo: La clave del elemento para borrar.  Dejando este campo en blanco servirá para borrar los datos. Un ejemplo es el Numero de OC
Dar Antiguedad: La antigüedad mínima de los datos para borrar, en días.
Tipo de Persistencia: El tipo de persistencia para ser borrado, ya sea temporario o permanente. El valor predeterminado es temporario.
Solo Workflow Principal: Dar  Y para borrar todos los datos asociados al tipo de elemento, de lo contrario solo borra las actividades mas no el tipo de elemento.  El valor predeterminado es N.
Frecuencia de Validación: Ingresar el número de registros a borrar antes de ejecutar el programaEl valor predeterminado es 500 registros.
Notificaciones Firmadas: Dar N para preservar la evidencia de la notifiación, incluyendo las notificaciones que requieren la firma electrónica y su información de la firma asociada. Dar Y para depurar la información de firma relacionados. El valor predeterminado es N.

Uno de los parámetros importantes es  el tipo de persistencia. Para ayudar a encontrar el tipo de persistencia,debemos ejecutar la siguiente consulta:

select name, persistence_type, persistence_days
  from wf_item_types

 where name = '&Item_Type';

Tablas de Workflow

En Workflow se utiliza las siguientes tablas para almacenar los registros de los Tipos de Elementos que usamos en nuestros flujos de negocio:

WF_ITEM_TYPES
La tabla wf_item_types contiene un registro por cada item_type creado. El nombre de ocho caracteres del item_type representa el Nombre interno del elemento. También funciona como la clave principal de esta tabla. El nombre y la descripción del Workflow se pueden encontrar en la tabla WF_ITEM_TYPES _TLAlgunas columnas de clave son:

NAME: Es un campo obligatorio. Representa el nombre interno del tipo de elemento.
PROTECT_LEVEL: Nivel al que los datos están protegidos.
CUSTOM_LEVEL: Nivel del usuario quien realizo la  última actualización de la fila.
WF_SELECTOR: Almacena el nombre del procedimiento PL / SQL que implementa la función de selección.
PERSISTENCE_TYPE: Indica si el tipo de elemento es temporal o permanente.
PERSISTENCE_DAYS: Número de días hasta que se depure si la persistencia es temporal.

WF_ITEM_ATTRIBUTES
Esta tabla almacena las definiciones de atributos asociados con un proceso. Los registros de esta tabla corresponden a los atributos colocados en el Workflow Builder. Un elemento de Atributo funciona como una variable que puede contener valores específicos. Otras tablas relacionadas son WF_ITEM_ATTRIBUTES_TL y la vista  WF_ITEM_ATTRIBUTES_VL. Algunas columnas de clave son:

ITEM_TYPE: Nombre interno para el tipo de elemento que posee el atributo.
NAME: Nombre interno del atributo.
SEQUENCE:  Secuencial del atributo dentro del mensaje
TYPE: Cada elemento de atributo se le asigna un tipo de datos, como Character, Number o Date.

WF_ACTIVITIES
Esta tabla almacena la definición de una actividad. Las actividades pueden ser procesos, notificaciones, funciones o carpetas. Una actividad de proceso es un proceso del modelo del flujo e trabajo, que puede ser incluido como una actividad en otros procesos para representar sub-procesos. Una actividad de notificación envía un mensaje a un intérprete. Una actividad de función realiza una función por un procedimiento PL/SQL. Una actividad de carpeta no es parte de un proceso, sino que proporciona agrupar las actividades. Algunas columnas de clave son:

ITEM_TYPE: Nombre interno para el Tipo de elemento al que pertenece el mensaje.
NAME: Nombre interno para la actividad.
VERSION : Se utiliza para soportar múltiples versiones del mismo proceso que se ejecuta al mismo tiempo.
TYPE: Este campo es la forma en que los distintos tipos de actividades se pueden distinguir. Hay cinco valores válidos los cuales son: FUNCTION, NOTICE, EVENT, PROCESS, y FOLDER.
RERUN: Determina si se volver a ejecutar la actividad durante el bucle.
EXPAND_ROLE: Determina cuanto roles son requeridos para responder a una actividad de notificación.
FUNCTION: el campo se utiliza para almacenar el nombre del procedimiento PLSQL que el workflow builder utiliza para implementar la función.
RESULT_TYPE: Almacena el tipo de resultado.
ICON_NAME: Nombre del icono de actividad utilizado en la ventana de proceso.
MESSAGE: Para las actividades de notificación, el campo  contendrá el nombre interno del mensaje que la notificación entregará.
ERROR_PROCESS: proceso de flujo de trabajo se ejecute en caso de error.
ERROR_ITEM_TYPE: Nombre del tipo de elemento a ejecutar en caso de error.
RUNNABLE_FLAG: Flag (Sí o No) para indicar si la actividad es ejecutable.
 FUNCTION_TYPE: Indica si el tipo de función es PLSQL o interno.

WF_ACTIVITY_ATTRIBUTES
Esta tabla define los atributos que se comportan como parámetros para la actividad. Los atributos de actividad sólo son utilizados por las actividades de función. Cada fila incluye la actividad asociada, tipo de atributo y el formato utilizado por la actividad. Algunas columnas clave son:

ACTIVITY_ITEM_TYPE: Tipo de Articulo de la actividad al cual está asociada.
ACTIVITY_NAME: Nombre interno de la actividad
ACTIVITY_VERSION: Versión de la actividad
NAME: Nombre interno del atributo
SEQUENCE: Secuencial del atributo dentro del mensaje
TYPE: Este campo se refiere al tipo de datos de los valores que el atributo contiene.
VALUE_TYPE : Define si es por defecto una constante o una referencia a un atributo de elemento.

WF_ACTIVITY_ATTR_VALUES
En esta tabla se utiliza para realizar un seguimiento de los valores de los atributos de la actividad. Esta tabla es idéntica en propósito a WF_ITEM_ATTRIBUTE_VALUES excepto que contiene valores para la actividad de los atributos en lugar de atributos de elementos. Cada fila incluye el id del proceso de actividad y el valor asociado para el atributo. Lo interesante de esta tabla es que utiliza la columna PROCESS_ACTIVITY_ID para identificar la actividad a la que se adjunta el atributo. La misma actividad se puede insertar en un proceso más de una vez, por lo que la única manera de identificar de forma exclusiva es utilizar el PROCESS_ACTIVITY_ID.

WF_MESSAGES
Los mensajes que están asociados con las notificaciones se almacenan en esta tabla. Cada mensaje, que se identifica de forma única por la combinación de ITEM_TYPE y MESSAGE_NAME recibe un único registro de la tabla WF_MESSAGES. El texto real del mensaje se almacena sólo en la tabla WF_MESSAGES_TL.

WF_MESSAGE_ATTRIBUTES
Esta tabla contiene definiciones de atributos de mensaje. Cada mensaje puede tener cero o mas atributos de mensaje. Atributos de mensaje define la información adicional que va a ser enviado a, o recibido desde el usuario. Estos atributos pueden ser utilizados como etiquetas en el asunto o el cuerpo de una plantilla de mensaje para colocar valores de variables en el mensaje en tiempo de ejecución.

WF_PROCESS_ACTIVITIES
Un proceso es una secuencia de actividades realizadas en un orden predeterminado. Al crear una definición de proceso en el Workflow Builder arrastrando diversas notificaciones y funciones dentro de la ventana de proceso, los registros creados por el Builder se almacenan en esta tabla.

WF_ACTIVITY_TRANSITIONS
Es el nodo a nodo del Workflow, como se indica por las flechas de transición no se guarda en la tabla WF_PROCESS_ACTIVITIES. En cambio, esta información se almacena en esta tabla. Una transición está definido por tres piezas discretas de información: el nodo donde empieza la flecha, el nodo hacia donde apunta la flecha, y el resultado que, al ser devuelto por el nodo inicial, hace que la transición continúe. No en vano, son esos tres campos, que son los campos más importantes de este tabla: FROM_PROCESS_ACTIVITY, TO_PROCESS_ACTIVITY y RESULT_CODE.

WF_LOOKUP_TYPES_TL

WF_LOOKUP_TYPES_TL es la tabla que se utiliza para establecer los tipos de resultados que se esperan de las actividades de flujo de trabajo como funciones y notificaciones. Esta tabla no contiene los valores de los resultados reales, que lleva a cabo las agrupaciones de los RESULT_CODES. Tiene relación con la tabla WF_LOOKUPS_TL que es la tabla que almacena los valores de los componentes que conforman un lookup_type.

WF_NOTIFICATIONS
Contiene la información en tiempo de ejecución de una instancia específica de una notifiación enviada. Una nueva fila se crea en la tabla cada vez que se envía un mensaje.

miércoles, 22 de julio de 2015

Habilitar Acerca de Esta pagina en paginas OAF

Al abrir cualquier página web o página de OAF en Oracle, usted no será capaz de ver  la opción Acerca de esta Pagina en la parte inferior izquierda de la pantalla. Esta opción será el que dará detalles de cada página de OAF.




Cuando uno trabaja en paginas OAF, al comienzo no podrá la opción Acerca de esta página en la parte inferior de cada pagina. Para ver esa etiqueta es necesario activa un Perfil desde el Administrador de Sistema llamado FND: Diagnósticos.

Para ello ir a la responsabilidad Administrador del Sistema >> Perfil >> Sistema.  Se recomienda activar el perfil por usuario o responsabilidad y seleccionar el perfil FND: Diagnósticos. Al ubicar,el valor de perfil podrá ser Nulo o No. Cambiar a , guardar y cerrar.



Ahora reingresar al oracle e intente abrir la misma página web o página OAF, en la que estaba consultando.  Se podrá ver la opción Acerca de esta página en el lado inferior izquierdo de la página.



Al dar clic en esta opción. Ahora podrá ver la información a detalle de la Pagina, sus componentes de Negocio, personalizaciones, propiedades , entre otras opciones.

martes, 21 de julio de 2015

Como Agregar Default_Where en un Bloque de Oracle Forms

En Oracle Forms puede crear un Bloque de Datos que la fuente de datos es una tabla o vista de su Base de Datos. Si bien puede colocar un filtro de que datos solo necesita trabajar hay ocasiones en que dependiendo de como se navega en el formulario y en sus bloques solo se requiera ciertos datos y por lo tanto diversos tipos de filtros.



La clausula Default_Where básicamente es agregar un filtro o condición desde el comando Set_Block_Property que le permite seleccionar las columnas de un conjunto de resultados.  Por ejemplo si desea limitar los resultados por un valor de columna específico o un registro en particular, que normalmente se debería añadir en la cláusula WHERE del bloque de datos. 

Sin embargo, desde su bloque solo se basa en una sola cláusula WHERE ,para modificarlo debe utilizar la opción DEFAULT_WHERE. Este puede ser usado en un botón cuando se dispare el trigger WHEN-BUTTON-PRESSED. Para ello puede utilizar el siguiente código:

IF P_REVIEW ='Y'  THEN

SET_BLOCK_PROPERTY('XX_DETAIL',DEFAULT_WHERE, 'REVIEW='''||P_REVIEW||'''');
      
ELSE

SET_BLOCK_PROPERTY('XX_DETAIL',DEFAULT_WHERE,'ID='||:XX_HEAD.HEAD_ID);
     
END IF;
  
EXECUTE_QUERY;

En este caso se ha utilizado de tal forma que tenemos dos bloques XX_HEAD XX_DETAIL. Si del bloque XX_HEAD marcamos la casilla REVIEW este debe filtrar solo la información de revisados en el bloque XX_DETAIL, sino esta marcado significa que debe traer todas las líneas por id del bloque XX_HEAD.

Variables de Sistema en ORACLE FORMS

Una variable de sistema es una variable en  Oracle Forms que sigue la pista de un estado interno del Formulario. Puede hacer referencia al valor de una variable de sistema para controlar el formulario en que una aplicación se comporta.

Oracle Forms mantiene los valores de las variables del sistema en función de cada formulario. Es decir, los valores de todas las variables del sistema corresponden al formulario en uso. 

SYSTEM.BLOCK_STATUS
Representa el estado del bloque donde se encuentra el cursor, o el bloque actual durante el procesamiento gatillo. El valor puede ser una de las tres cadenas de caracteres:

CHANGED: indica que el bloque contiene al menos un registro cambiado.
NEW: Indica que el bloque contiene sólo Nuevos registros.
QUERY: Indica que el bloque contiene sólo los registros válidos que han sido recuperados de la base de datos.

SYSTEM.COORDINATION_OPERATION
Esta variable de sistema funciona con SYSTEM.MASTER_BLOCK para ayudar a un control sobre el Trigger On-Clear-Details  el cual determina qué tipo de operación se ha activado del trigger y en cual  bloque principal esta la relación maestro-detalle.

SYSTEM.CURRENT_BLOCK
El valor que la variable de sistema SYSTEM.CURRENT_BLOCK representa depende de la unidad de navegación donde se ubique:

Si la unidad de navegación actual es el bloque, registro o elemento el valor de SYSTEM.CURRENT_BLOCK es el nombre del bloque donde se encuentra el cursor. Si la unidad de navegación actual es el formulario el valor de SYSTEM.CURRENT_BLOCK es NULL.

SYSTEM.CURRENT_DATETIME
Es una variable que representa la fecha del sistema operativo. El valor es una cadena CHAR en el siguiente formato:

DD-MON-YYYY HH24:MI:SS

SYSTEM.CURRENT_FORM
Representa el nombre del formulario que Oracle Forms está ejecutando. El valor siempre es una cadena de caracteres.

SYSTEM.CURRENT_ITEM
El valor que la variable de sistema SYSTEM.CURRENT_ITEM representa depende de la unidad de navegación donde se ubique:

Si la unidad de navegación actual es en el elemento, el valor de SYSTEM.CURRENT_ITEM es el nombre del elemento que Oracle que el cursor se encuentra. El nombre del elemento devuelto no incluye un prefijo del nombre de bloque. Si la unidad de navegación actual es el registro, bloque o formulario,  el valor de SYSTEM.CURRENT_ITEM es NULL.

SYSTEM.CURRENT_VALUE
Representa el valor del elemento que se registra en SYSTEM.CURRENT_ITEM. El valor siempre es una cadena de caracteres.

SYSTEM.CURSOR_BLOCK
El valor que la variable de sistema SYSTEM.CURSOR_BLOCK representa depende de la unidad de navegación donde se ubique:

Si la unidad de navegación actual es el bloque, registro o elemento, el valor de SYSTEM.CURSOR_BLOCK es el nombre de la cuadra donde se encuentra el cursor. El valor siempre es una cadena de caracteres. Si la unidad de navegación actual es el formulario, el valor de SYSTEM.CURSOR_BLOCK es NULL.

SYSTEM.CURSOR_ITEM
Representa el nombre del bloque y el elemento, block.item, donde se encuentra el cursor. El valor siempre es una cadena de caracteres.


SYSTEM.CURSOR_RECORD
Representa el número del registro donde se encuentra el cursor. Este número representa el orden físico actual del registro en la lista del bloque de registros. El valor siempre es una cadena de caracteres.

SYSTEM.CURSOR_VALUE
Representa el valor del elemento donde se encuentra el cursor. El valor siempre es una cadena de caracteres.

SYSTEM.CUSTOM_ITEM_EVENT
Almacena el nombre del evento disparado por un control VBX.

SYSTEM.CUSTOM_ITEM_EVENT_PARAMETERS
Almacena los argumentos complementarios para un evento disparado por un control VBX.

SYSTEM.DATE_THRESHOLD
Representa la nueva consulta de  fecha de base de datos. Esta variable trabaja en conjunto con las tres variables del sistema $$DBDATE$$, $$DBDATETIME$$, y  $$DBTIME$$. Controla la frecuencia con que Oracle Forms sincroniza la fecha de base de datos con el RDBMS. El valor de esta variable debe especificarse en el siguiente formato: MI: SS.

Debido a las consultas RDBMS frecuentes pueden degradar el rendimiento, lo mejor es mantener este valor razonablemente alto. Sin embargo, tenga en cuenta que si el valor no está sincronizado con la suficiente frecuencia, puede ocurrir un poco de tiempo de discrepancia. Además, si usted está construyendo una aplicación cliente-servidor, las implicaciones de rendimiento de SYSTEM.DATE_THRESHOLD podrían variar dependiendo de la complejidad de la configuración de red.

SYSTEM.EFFECTIVE_DATE
Representa la fecha base de datos efectiva. El valor de la variable siempre debe estar en el siguiente formato:

DD-MON-YYYY HH24:MI:SS

SYSTEM.EVENT_WINDOW
La variable de sistema SYSTEM.EVENT_WINDOW representa el nombre de la última ventana que se vio afectada por una acción que causó un trigger. Los siguientes triggers  para  esta variable se actualiza en :

WHEN-WINDOW-ACTIVATED
WHEN-WINDOW-CLOSED
WHEN-WINDOW-DEACTIVATED
WHEN-WINDOW-RESIZED

Desde dentro de estos trigger, puede asignar el valor de la variable a una  variable global, Parámetro, Variable o elemento.
  
SYSTEM.FORM_STATUS
Representa el estado del formulario actual. El valor puede ser una de las siguientes tres cadenas de caracteres:

CHANGE:- Indica que el formulario contiene al menos un bloque con un registro cambiado.  
NEW: Indica que el formulario contiene sólo Nuevos registros.
QUERY: Indica que una consulta Esta en consulta.

SYSTEM.LAST_FORM
Representa el ID de módulo del formulario anterior, donde múltiples formularios se han invocado usando OPEN_FORM. El valor puede ser una de las dos cadenas de caracteres: o bien el ID de módulo de formulario o NULL.

SYSTEM.LAST_QUERY
Representa la ultima instrucción SELECT que Oracle Forms ha utilizado para rellenar un bloque durante una sesión. El valor siempre es una cadena de caracteres.

SYSTEM.LAST_RECORD
Indica si el registro actual es el último registro en la lista de un bloque de registros. El valor es uno de los siguientes dos valores CHAR:

TRUE: Indica que el registro actual es el último registro en la lista del bloque actual de registros.
FALSE: Indica que el registro actual no es el último registro en la lista del bloque actual de registros.

SYSTEM.MASTER_BLOCK
Esta variable de sistema funciona con SYSTEM.COORDINATION_OPERATION para ayudar a un control sobre el Trigger On-Clear-Details  el cual determina qué tipo de operación se ha activado del trigger y en cual  bloque principal esta la relación maestro-detalle. SYSTEM.MASTER_BLOCK representa el nombre del bloque principal.

SYSTEM.MESSAGE_LEVEL
Representa uno de los siguientes niveles de severidad de mensajes: 0, 5, 10, 15, 20 o 25. El valor es siempre una cadena de caracteres.

Durante una sesión de Oracle Forms suprime todos los mensajes con un nivel de severidad que es igual o inferior (menos grave) que el nivel de severidad indicada.

Asignar un valor a la variable de sistema SYSTEM.MESSAGE_LEVEL con la sintaxis de PL / SQL estándar:

:System.Message_Level := value;

Los valores legales para SYSTEM.MESSAGE_LEVEL son 0, 5, 10, 15, 20 y 25. Oracle Forms no suprime avisos o mensajes de error vitales, no importa qué nivel de severidad seleccione.
  
SYSTEM.MODE
SYSTEM.MODE indica si el formulario está en Normal, Enter Query, o Fetch en modo de procesamiento. El valor siempre es una cadena de caracteres.

NORMAL:  Indica que el formulario está en modo de procesamiento normal.
ENTER-QUERY:  Indica que el formulario se encuentra actualmente en intro de modo de consulta.
QUERY:  Indica que el formulario se encuentra actualmente en consulta a modo de procesamiento, lo que significa que una consulta se está procesando actualmente.

SYSTEM.MOUSE_BUTTON_PRESSED
Indica el número del botón que se hizo clic. El botón del mouse se limita a los botones 1 y 2 (de izquierda o de centro) en un ratón de tres botones. El valor siempre es una cadena de caracteres.

SYSTEM.MOUSE_BUTTON_SHIFT_STATE
Indica la tecla que se pulsa durante el clic, por ejemplo, MAYÚS, ALT, o CONTROL. El valor siempre es una cadena de caracteres.

SYSTEM.MOUSE_CANVAS
Si el ratón está en un lienzo, SYSTEM.MOUSE_CANVAS representa el nombre de aquel lienzo como un valor CHAR. Si el ratón está en un elemento, esta variable representa el nombre del lienzo  que contiene el artículo. SYSTEM.MOUSE_CANVAS es NULL si el mouse no se encuentra en un lienzo

SYSTEM.MOUSE_FORM
Si el mouse está en un módulo de formulario, SYSTEM.MOUSE_FORM representa el nombre de ese módulo de formulario como un valor CHAR. Por ejemplo, si el mouse está en Form_Module1, el valor para SYSTEM.MOUSE_ITEM es FORM_MODULE1.

SYSTEM.MOUSE_ITEM

Si el mouse está en un elemento, SYSTEM.MOUSE_ITEM representa el nombre de ese elemento como un valor CHAR. Por ejemplo, si el ratón está en Item1 en Bloque2, el valor para SYSTEM.MOUSE_ITEM es: BLOCK2.ITEM1. SYSTEM.MOUSE_ITEM es NULL si  el mouse no está en un elemento.

SYSTEM.MOUSE_RECORD
Si el mouse está en un registro, SYSTEM.MOUSE_RECORD representa el número registro de ese registro como un valor CHAR.

SYSTEM.MOUSE_RECORD_OFFSET
Si el mouse está en un registro, SYSTEM.MOUSE_RECORD_OFFSET representa el desplazamiento desde el primer registro visible como un valor CHAR. Por ejemplo, si el mouse está en el segundo de los cinco registros visibles en un bloque, su valor será 2.

SYSTEM.MOUSE_X_POS

SYSTEM.MOUSE_Y_POS
Representa la coordenada Y del mouse en su  valor es relativo a la esquina superior izquierda de la pantalla

SYSTEM.RECORD_STATUS
Representa el estado del registro donde se encuentra el cursor. Puede tener los siguientes valores:

CHANGE: Indica que el estado de la validación de un registro  ha cambiado.
INSERT: Indica que el estado de la validación del registro se ha cambiado y que no existe el registro en la base de datos.
NEW: Indica que el estado de la validación del registro es Nuevo.
QUERY: Indica que el estado de la validación del registro es válido y que fue recuperado de la base de datos.

SYSTEM.TRIGGER_BLOCK
Representa el nombre del bloque en el que se encuentra el cursor cuando el Trigger se ejecuta. El valor es NULL si el Trigger es un PRE o POST Formulario. El valor siempre es una cadena de caracteres.

SYSTEM.TRIGGER_ITEM
Representa el elemento (BLOCK.ITEM) en el ámbito de aplicación para cuando el Trigger se ejecuta. El valor siempre es una cadena de caracteres.

SYSTEM.TRIGGER_RECORD

Representa el número del registro que Oracle Forms está procesando. Este número representa el orden físico actual del registro en la lista del bloque de registros. El valor siempre es una cadena de caracteres.

lunes, 13 de julio de 2015

Alter Session con NLS_NUMERIC_CHARACTERS

Cuando uno trabaja en Pl/sql hay ocasiones que trabaja con importes con separador de decimales. El parámetro NLS_NUMERIC_CHARACTERS especifica los caracteres a utilizar como separador de grupo y carácter decimal. El separador separa grupos enteros (es decir, miles, millones, miles de millones, y así sucesivamente). El decimal separa la parte entera de un número de la parte decimal.

Cada sesión de Base  de Datos ya tiene su propio parámetro configurado, por ejemplo si observamos los valores actuales de la sesión debemos consultar a la  vista nls_session_parameters con el siguiente query.

select * from nls_session_parameters
where parameter='NLS_NUMERIC_CHARACTERS'



En este caso los valores estarán seteados bajo el siguiente formato  5.500,15 

Si desea establecer en una sola sesión el separador decimal, por ejemplo de tal forma que el separador  sea solo punto realizar lo siguiente:

ALTER SESSION SET NLS_NUMERIC_CHARACTERS ='. ';

En este caso el separador decimal es el punto "." y los valores estarán con el siguiente formato 5500.15 . Con ello puede alterar la sesión de acuerdo a sus necesidades.

jueves, 9 de julio de 2015

Query para obtener facturas por proveedor y rango de fechas

El siguiente query devuelve todas las facturas por un rango fechas por un proveedor en especifico.

SELECT PO.VENDOR_ID,
        PO.VENDOR_NAME            PROVEEDOR,
        AIA.INVOICE_ID,
        AIA.INVOICE_NUM           NUMERO_FACTURA,
        AIA.INVOICE_DATE          FECHA_FACTURA,
        AIA.GL_DATE               FECHA_CONTABLE,
        aia.INVOICE_CURRENCY_CODE DIVISA,
        aia.invoice_AMOUNT        IMPORTE
   from apps.Ap_Invoices_All aia, apps.po_vendors po
  where po.vendor_Id = aia.vendor_id
    and po.vendor_Name = '&vendor_name'
    and aia.invoice_date between to_date('&fecha_inicio', 'dd/mm/yyyy'
    and to_date('&fecha_fin', 'dd/mm/yyyy')