jueves, 27 de noviembre de 2014

Cambiar Estado de Transacciones de Completo a Incompleto


Una vez que se ha finalizado una transacción ya sea una  factura , nota de crédito o nota de débito haciendo clic en el botón Finalizado. Todos sus valores estarán bloqueados y listos para la cobranza, Sin embargo  puede volver a regresar a su estado Incompleto. Para ello ubica la transacción y dar clic al botón Incompleto.

Restricciones
Una vez que la transacción esta en estado finalizado no podrá volver a incompleto si cumple con los siguientes condiciones: 

  • La transacción ha sido transferido y contabilizado en  General Ledger.
  • La transacción se ha impreso.
  • La transacción contiene cualquier actividad o aplicación. 

Nota: Desaplicar un recibo  también se considera como una actividad y por lo tanto tampoco se podrá volver a incompletar la transacción.

Cronogramas de Mantenimiento Preventivo

EAM puede generar Pedidos de Trabajo automáticamente basándose en las lecturas de medidor. Un ejemplo de Mantenimiento Preventivo basado en medidores es el cambio de aceite de un auto. La mayoría de los fabricantes de automóviles recomiendan cambiar el aceite del motor cada  seis meses.

Para configurar el escenario anterior, primero definir el Medidor  del auto. A continuación, asociar el medidor  a un activo(el auto),  Tras relacionar el medidor al activo, puede asociar la actividad de mantenimiento (cambio de aceite) que debe ocurrir, en base a los medidores que ha definido. Esto se hace a través de programación de mantenimiento preventivo.

Definir Nombres de Juego
Un cronograma de Mantenimiento Preventivo para una Actividad y un número o Grupo de activos deben pertenecer únicamente a un solo juego. Se pueden crear múltiples cronogramas para un mismos juego o diversos juegos. Sin embargo,sólo un juego  puede ser identificado como por defecto y se utiliza para la generación de pedidos de trabajo. 

Otros cronogramas de otros juegos  pueden ser utilizados sólo con fines de pruebas . Cada juego tiene una fecha de finalización. Cada cronograma  que pertenece a un juego debe tener su fecha efectuva antes de la fecha de finalización del nombre juego. Antes de asignar un nombre de juegop a un cronograma, es necesario definir  dentro de la ventana Nombre Juego. Si no desea crear puede utilizar el nombre juego MAIN el cual ya existe en EAM. Para ello navegar a una responsabilidad de EAM >> Mantenimiento Preventivo >> Definición de Nombres de Juego.




Definir Cronogramas
Una combinación de una Actividad y  Grupo de activos se puede programar de tal forma que trabaje en un rango de fechas o definir cuándo una actividad debe ser programada para un activo. El proceso de Programador de Mantenimiento Preventivo sugiere crear Pedidos  de de trabajo basadas en reglas. Un planificador puede entonces ver estos pedidos de trabajo previstos y generar cuando sea necesario.

Hay dos formas de crear Cronogramas de Mantenimiento Preventivo. Puede crear de forma individual  o simplificar el proceso de creación utilizando una Plantilla de Cronograma. Una Plantilla se define por un grupo de activos,al utilizar esta funcionalidad, un nuevo Cronograma  se crea automáticamente de un número de activo que pertenezca al Grupo de Activos. Todos los atributos de la plantilla se copian al cronograma. Para ello navegar a una responsabilidad de EAM >> Mantenimiento Preventivo >> Definición de Plantillas de Cronograma.


Para crear un cronograma individual navegar a un Responsabilidad de EAM >> Mantenimiento Preventivo >> Definición de Cronograma. Al ingresar le saldrá una pantalla para la búsqueda de algún cronograma ya creado con anterioridad. Para definir un nuevo cronograma, haga clic en el botón Nuevo.



Ingresar un Nombre de Cronograma y asociarlo con un Nombre de Juego. Cada cronograma debe tener  una Actividad y un Número de Activo o Grupo de Activos al cual deben pertenecer. Seleccione un Tipo de Activo. Los valores válidos son  Capital e Inventario Reacondicionable.

Seleccione un Tipo de Cronograma. Los valores válidos son Basado en Regla o Fechas Lista. Si selecciona Basado en Regla las pestañas de Reglas de Intervalo Diario y  Reglas de Tiempo de  Ejecución se habilitan para ingresar información. Si selecciona Fechas Lista, puede definir la información dentro de la pestaña Fechas Lista.



Luego puede escoger las fechas  efectivas, márgenes e tiempo y tolerancia  en días para su cronograma. Seleccione un Estado para sus pedidos de trabajo que mejor se adapte a su proceso de negocio. Opcionalmente, seleccione la casilla Por defecto para indicar que el cronograma va a generar pedidos de trabajo de lo contrario no se crearan los pedidos.

Opcionalmente, seleccione la casilla Reprogramación de Pedido de Trabajo manual. Si selecciona esta casilla los Pedidos de Trabajo manuales no Liberados son considerados durante la programación de cronograma. Si selecciona la casilla Ejecución para Falla, el Programador de Mantenimiento Preventivo no programa automáticamente este número de activos y la actividad asociada, aunque puede crear pedidos de trabajo manual. Por ejemplo, Es común en Mantenimiento que ciertos  activos se desgastan por completo para su pronta sustitución. Se estima que la vida útil de este activo es de 18 meses, y han establecido un calendario para la sustitución de pedidos de trabajo cada 18 meses. Pero se da el caso que se desgasto a cabo de 12 meses, lo que afecta su presupuesto de gastos.

En la región de Opciones de Programación se indicar cómo se calculara las fechas de los Pedidos de Trabajo. El campo Usar Ultimo Servicio trabaja en conjunto con el campo sugerir Servicio Siguiente. El campo de fecha indica la fecha del Última Servicio.

En la región Para Múltiples Reglas, se indican cómo los vencimientos previstos son determinados por múltiples reglas:

Primera: La fecha de vencimiento se establece en la primera fecha de vencimiento de todas las reglas.

Última: La fecha de vencimiento se establece en la última fecha de vencimiento de todas las reglas.


Dentro de la pestaña Reglas Intervalo Diario, opcionalmente ingrese los datos para su regla diaria. Dentro de  Reglas Tiempo Ejecución opcionalmente seleccione un nombre de medidor para indicar que la programación de mantenimiento preventivo se basa en una regla de Medidor. En este tipo de regla los campos de intervalo y UDM trabajan juntos. Por ejemplo, por cada 500 kilometros, un equipo necesita un cambio de aceite. Puede crear un Mantenimiento Preventivo en un intervalo de 500 kilometros.


Finalmente en la pestaña Fecha Lista sirve para  definir la fechas específicas de vencimiento para los pedidos de trabajo.

martes, 25 de noviembre de 2014

Visión General de Purchasing

El flujo del proceso de compra Procure to Pay se centra en las actividades de adquisición de la solicitud de productos y servicios para su eventual recepción.



Durante todo el proceso de compra el modulo tendrá la siguiente capacidad:


El flujo de  documentos de acuerdo a su estructura de aprobación. Límites de autorización de aprobación se definen por cantidad, cuentas, tipos  y ubicaciones. Para los documentos que requieren su aprobación, puede revisar y aprobar las transacciones en línea. También, se puede ver el detalle de la transacción completa y revisar el historial de acciones antes de que se  apruebe un documentos.

Ver estado de aprobación. Purchasing muestra automáticamente el estado de aprobación de cada documento y le informa si esta Aprobado, Cancelado, En proceso, Incompleto, Pre-aprobado, Rechazado o Devuelto.Con ada estado puede ubicar el estado de cada documento de compras.

Generar automáticamente las cuentas de distribuciones. El modulo de Compras utiliza un generador de cuentas para entrar en la distribución de forma automática siempre que sea posible.

Proporciona anexos como Archivos adjuntos  para cada cabecera o linea de cada documento de compras como información adicional o complementaria. 




Este ciclo consiste en seguir los pasos de la creación de una solicitud para transferir los datos a General Ledger. El flujo seria el siguiente:
  1. Crear una Requisición o Solicitud Interna
  2. Aprobar la  Requisición.
  3. Crear un Pedido de Cotización
  4. Registrar la Cotización del Proveedor
  5. Crear la Orden de Compra.
  6. Aprobar la Orden de Compra
  7. Crear Recepción después de recibir las mercancías
  8. Crear una Factura en Payables
  9. Pagar la factura
  10. Transferencia, Importación y Contabilización en  General Ledger.

Crear Calculos en Discoverer Plus

Oracle Discoverer proporciona la creación de cálculos para analizar y obtener resultados  una hoja de trabajo. Podemos calcular el aumento del 25% de ventas en  calcular el promedio de total de ventas tan solo utilizando funciones preestablecidas o creando nuestros propios cálculos.

Crear un cálculo
En Discoverer Plus, abrir una hoja de trabajo que desea agregar una columna basada en un calculo. Navegar a Herramientas >> Cálculos. Nos ubicaremos en la sección de Editar Hoja de Trabajo y en la pestaña Cálculos. 


La pestaña Cálculos contiene cálculos, porcentajes y totales en la hoja de trabajo existente. Todos los Cálculos activos o utilizados en la Hoja de Trabajo están marcados con una marca de verificación en la lista Disponibles y también se muestran en la lista SeleccionadosHaga clic en Nuevo y seleccione Nuevo cálculo de la lista desplegable tal como se muestra en la imagen:



Debemos ingresar un nombre para el cálculo. Este nombre aparece en las listas de cálculos y en las hojas de trabajo. Si deja este cuadro en blanco, Discoverer crea un nombre predeterminado para el calculo. Se recomienda dar un nombre corto para su fácil visualización

Al hacer en Insertar fórmula de plantilla nos muestra una lista de plantillas predefinidas. Puede escoger  una plantilla o bien  puede crear su propia formula para calcular. En este caso sacaremos un Ponderado de acuerdo a un calculo entre un Total multiplicado con una columna del reporte que muestra el stock de cierto articulo de Inventario.


Para ello debemos seleccionar los campos de la lista Mostrar y dando al botón Pegar los vamos colocando en nuestro calculo. Podemos editarlo manualmente por si ya conocemos el nombre de las columnas. Para cualquier calculo podemos usar los operadores matemáticos  como el + ,- ,x, /,%,(,) y ||. Dar Aceptar y guardar el calculo. Ahora nuestro calculo estará listo para añadirlo al reporte. 


lunes, 24 de noviembre de 2014

Creando una jerarquia de Puestos

Crear una Jerarquías de puestos nos permiten la aprobación automáticamente de compras. Digamos que queremos implementar una jerarquía de puestos de 4 niveles tal como se muestra en la imagen:

Para ello navegar a una responsabilidad de Oracle Purchasing >> Configuración >> Personal >> Jerarquía de Puestos. Ingresar un nombre para la jerarquía  y dar check a  primario si sera la jerarquía principal. Al continuar saldrá un mensaje indicando grabar la jerarquía.



Nos ubicaremos en la región Versión donde colocamos el número de versión y la fecha de inicio de la jerarquía. 


Nos ubicaremos en la región Puesto donde debemos consultar el primer puesto de nuestra jerarquía en este caso el Gerente. El campo titular muestra el nombre del empleado que tiene este puesto, en caso hubiera mas de un titular, este campo se muestra con el número de titulares . 


Nos ubicaremos en la región Subordinados donde debemos consultar el segundo puesto de nuestra jerarquía en este caso el Aprobador 2. Al lado derecho se mostrara el nombre del titular o la cantidad de titulares. Ahora para colocar el tercer puesto debemos dar clic al botón Abajo tal como se muestra en la imagen:


Nos pedirá guardar el cambio, Ahora estamos ubicados nuevamente en la región Subordinados donde podemos observar que el nombre en la región Puesto es del segundo Puesto es decir del Aprobador 2. Ahora debemos agregar el tercer puesto que es el aprobador 1. Nuevamente le  damos  clic al botón Abajo tal como se muestra en la imagen:


Nos pedirá guardar el cambio, Ahora estamos ubicados nuevamente en la región Subordinados donde podemos observar que el nombre en la región Puesto es del tercer Puesto es decir del Aprobador 1.  Ahora debemos agregar los puestos del Solicitante y el Analista. Cada vez que agregamos un puesto nuevo nos pedirá guardar. Una vez terminado ya esta creado nuestra jerarquía.


Query de Sucursales de Proveedores

Los siguientes scripts son  para obtener las sucursales activas de cierto proveedor tanto para la versión de EBS 11i y R12.

------------11i----------------------

SELECT haou.name                  organizacion,
       pv.vendor_name             proveedor,
       pv.segment1                num_proveedor,
       pv.vendor_type_lookup_code tipo,
       pvsa.vendor_site_code      sucursal,
       pvsa.invoice_currency_code divisa_factura,
       pvsa.payment_currency_code divisa_pago

  FROM po.po_vendors                pv,
       po.po_vendor_sites_all       pvsa,
       hr.hr_all_organization_units haou
 WHERE pv.vendor_id = pvsa.vendor_id
   AND pvsa.org_id = haou.organization_id
   AND pvsa.inactive_date IS NULL
   AND pv.end_date_active IS NULL
   AND pv.segment1 = '&numero_prov'
 ORDER BY haou.name, pv.vendor_name, pvsa.vendor_site_code;

------------R12----------------------

SELECT haou.name                  organizacion,
       pv.vendor_name             proveedor,
       pv.segment1                num_proveedor,
       pv.vendor_type_lookup_code tipo,
       pvsa.vendor_site_code      sucursal,
       pvsa.invoice_currency_code divisa_factura,
       pvsa.payment_currency_code divisa_pago

  FROM ap.ap_suppliers              pv,
       ap.ap_supplier_sites_all     pvsa,
       hr.hr_all_organization_units haou
 WHERE pv.vendor_id = pvsa.vendor_id
   AND pvsa.org_id = haou.organization_id
   AND pvsa.inactive_date IS NULL
   AND pv.end_date_active IS NULL
   AND pv.segment1 = '&numero_prov'


 ORDER BY haou.name, pv.vendor_name, pvsa.vendor_site_code;

Paquetes en PLSQL

Los paquetes(packages) en PLSQL tienen el objetivo de agrupar procedimientos y funciones de forma lógica. De esta manera, se agrupa en un único objeto, toda la lógica asociada a una determinada tarea. Por ejemplo, si tenemos un conjunto de procedimientos y funciones para realizar cálculos matemáticos complejos, los podemos poner en un paquete.


La ventaja de los paquetes es que la primera vez que se invoca, es cargado en memoria, por lo que las siguientes veces ya no será necesario hacerlo de nuevo. Además, el paquete mantiene una copia en memoria para todos los usuarios. Podemos ocultar ciertos objetos y solo hacer públicos los que se necesiten. Al crear procesos y funciones podemos testear su funcionamiento para validar su lógica. El paquete se divide en especificación y cuerpo.


Especificación
Es obligatorio en la creación de un paquete. Se declaran todos los subprogramas públicos. Lo lógico es declarar en esta sección aquellos procedimientos o funciones que actúan como interfaz. También se declaran las variables o constantes que se quieren tratar como globales y que se puedan cambiar o referenciar fuera del paquete. La sintaxis sería la siguiente:

CREATE OR REPLACE PACKAGE PAQUETE_NOMBRE AS

  VAR_GLOBAL1 VARCHAR2(30);
  VAR_GLOBAL2 NUMBER;

  PROCEDURE Proceso_1(var1      NUMBER,
                      var2      VARCHAR2,
                      var3      DATE,
                      v_message OUT VARCHAR2);

  FUNCTION Funcion_1(var1 NUMBER, var2 VARCHAR2) RETURN BOOLEAN;

END PAQUETE_NOMBRE;

Cuerpo
En el cuerpo es donde se definen los procedimientos y funciones públicos y privados. La sintaxis  sería:

CREATE OR REPLACE PACKAGE PAQUETE_NOMBRE AS

 PROCEDURE  Proceso_1(var1      NUMBER,
                      var2      VARCHAR2,
                      var3      DATE,
                      v_message OUT VARCHAR2) is
   
  BEGIN
 
  if var3<sysdate then
 
  v_message := 'Datos: ' || var1 || ' y ' || var2;

  else   v_message := 'Unico: ' || var1 ;
  end if;
   
  END;
 
 
  FUNCTION Funcion_1(var1 NUMBER, var2 VARCHAR2) is
 
  BEGIN
 
   if var1=var2  then
  
   return false;
 
     else return true;
    
     end if;
 
  END;
  
END PAQUETE_NOMBRE;


Para realizar llamadas a objetos dentro de un paquete, habría que diferenciar si la llamada es desde un subprograma dentro del mismo paquete o si la llamada es externa al paquete:

Llamada interna
Se pone el nombre del subprograma y entre paréntesis los parámetros que se deben pasar.

Por ejemplo para llamar a la función  Funcion_1 (3, 4) desde el proceso proceso_1, se pondría var5:= Funcion_1 (3, 4)

Llamada externa
Hay que preceder el nombre del paquete al nombre del procedimiento o función. Además, el subprograma llamado debe ser público para que pueda ser referenciado.

Por ejemplo para llamar a la función Funcion_1 que se encuentra en el paquete PAQUETE_NOMBRE desde un procedimiento externo al paquete sería  var5:= PAQUETE_NOMBRE. Funcion_1 (3, 4)

Eliminar paquetes
Para eliminar un paquete de la base de datos tanto la especificación como el cuerpo Debe usar la siguiente sintaxis:


DROP PACKAGE PAQUETE_NOMBRE;