May 19 2013

Un poco de historia

Category: Fusion,GL General Ledgerxhuertax @ 1:27 pm

larryHoy sabemos que el CEO de Oracle Larry Ellison es aficionado a los barcos, a las islas y últimamente a las aerolíneas (Ellison tiene el título de piloto). Sin embargo, como muchos en Silicon Valley, el hoy un poco excéntrico jefe de Oracle empezó prácticamente de cero.

En 1970 un trabajador de IBM Edgar Codd publicó un artículo titulado ”A Relational Model of Data for Large Shared Data Banks” [PDF] donde descubre un novedoso sistema para almacenar y trabajar con grandes bases de datos. Era el inicio de las bases de datos relacionales.

En 1974 IBM inició un proyecto de investigación para desarrollar ‘System R’ un prototipo de Sistemas de Gestión de Bases de Datos Relacionales.

En 1977  Larry Ellison, Bob Miner y Ed Oates fundan euna empresa de consultoría llamada Software Development Laboratories (SDL) firman un contrato con la CIA para diseñar un sistema especial de bases de datos con código clave “Oracle”, según la información disponible al parecer el proyecto tenía 3 años de duración, sin embargo Larry y sus socios lo terminan en 2 y utilizan el último año para sacar una versión comercial de su base de datos ‘Oracle’. Siendo esta la primera que sale al mercado con esta tecnología.

En 1982 la empresa de Larry cambia el nombre al definitivo ‘Oracle Corporation’

En 1987 y después de varios años de crecimiento de dos dígitos, Oracle lanza su división de aplicaciones, en un inicio con siete empleados. Es en este año cuando se lanza, lo que hoy conocemos como el módulo GL de eBS, Oracle General Ledger se convierte en el primer módulo que lanza la compañía y que posteriormente se verá incrementado con Oracle Fixed Assets, Oracle Accounts Payable y Oracle Purchasing.

En 1992 Oracle lanza la versión 9 de Oracle Applications que contenía ‘Accounting’, ‘Manufacturing’ y ‘Human Resources’ nacía un completo ERP para gestionar todas las áreas de la empresa.

En 1993 aparece la versión 10 de Oracle Applications que puede ejecutarse en modelo cliente/servidor.

En 1998 debuta la vesión 11 de Oracle Applicationes, versión que durará bastantes años.

En 2007 aparece la versión R12 de Oracle eBS (anteriormente Oracle Aplicaciones) con los cambios que aquí hemos venido analizando, básicamente el sistema se adapta a compañías globales que operan en diversos países.

En 2011 se introduce la nueva suite de aplicaciones ‘Oracle Fusion’.

 


May 11 2013

R12 Como unir GL con AP

Category: GL General Ledgerxhuertax @ 2:26 pm

En la versión 11i de la eBS era bastante fácil llegar al detalle de AP partiendo de GL por los campos reference que se guardaban en las líneas de asientos. Ahora es un poco mas complicado porque entran nuevas tablas en juego, os adjunto como hacer el link y una query de ejemplo que he construido para una incidencia que tenía. Espero que os sirva. Saludos.

gl_je_lines (je_header_id, je_line_num)                -> gl_import_references (je_header_id, je_line_num)

gl_import_references (gl_sl_link_table, gl_sl_link_id) -> xla_ae_lines (gl_sl_link_table, gl_sl_link_id)

xla_ae_lines (applicaiton_id, ae_header_id)            -> xla_ae_headers (application_id, ae_header_id)

xla_ae_headers (application_id, event_id)              -> xla_events (application_id, event_id)

xla_events (application_id, entity_id)                 -> xla.xla_transaction_entities (application_id, entity_id)

Este es el ejemplo que he construido partiendo de la cuenta de GL que para nosotros el segmento4

Select

glc.segment4 Cuenta_GL,    – La cuenta de GL en este ejemplo esta en el segmento4
gjh.date_created Fecha_Creacion_Asiento, — Queremos mostrar cuando se creo el asiento
gjh.je_source Origen, — El origen de los asientos
gjh.name Nombre_Lote_GL, — Nombre del Lote en GL
gjl.Effective_Date Fecha_GL, — Fecha de contabilizacion en GL
gjl.je_line_num Linea_Asiento, — Numero de línea del asiento viene bien para consultar en la aplicacion
gjl.entered_dr Debe,
gjl.entered_cr Haber,
gli.reference_9 Importe_Detallado,
inv.invoice_amount Importe_Total_Factura,
ven.vendor_name Empleado,
ten.transaction_number Num_Factura_AP,
inv.description — descripcion de la factura

 

From

apps.gl_je_headers gjh,
apps.gl_je_lines gjl,
apps.gl_code_combinations glc,
apps.Gl_Import_References gli,
apps.xla_ae_lines ael,
apps.xla_ae_headers aeh,
apps.xla_events eve,
xla.xla_transaction_entities ten,
apps.ap_invoices_all inv,
apps.po_vendors ven

where gjl.je_header_id = gjh.je_header_id
AND glc.code_combination_id = gjl.code_combination_Id
AND ael.gl_sl_link_id = gli.gl_sl_link_id
AND gjl.je_line_num = gli.je_line_num
AND gjl.je_header_id = gli.je_header_id
AND aeh.ae_header_id = ael.ae_header_id
AND aeh.event_id = eve.event_id
AND eve.entity_id = ten.entity_id
AND inv.invoice_num = ten.transaction_number
AND inv.vendor_id = ven.vendor_id
AND Glc.Segment1 in (‘XXXX’, ’XXXX’) – Aquí incluimos los segmentos de balance que queremos que salgan
AND ten.ledger_id=’XXXX’ – Juego de libros de la compañía 
AND inv.set_of_books_id=’XXXX’ — Juego de libros de la compañía 
AND ael.accounting_class_code = ‘ITEM EXPENSE’     — Con esto sacamos solo la cuenta de gastos
AND gjl.Effective_Date between to_date (’01/01/13′, ‘DD/MM/YY’) and to_date (’31/01/13′, ‘DD/MM/YY’) — Rango de Fechas que queremos mostrar
AND glc.segment4 in ( ’XXXXXX’, ‘XXXXXX’)  – Aquí incluimos las cuentas que deseamos que aparezcan

 


Apr 24 2013

Pagar un proveedor en nombre de otro

Category: AP Payablesxhuertax @ 12:09 am

Una funcionalidad muy útil que tenemos en el módulo de AP en la versión R12 que no teníamos en la 11i es pagar a un proveedor en nombre de otro, para ello tenemos que realizar el siguiente setup:

En el maestro de proveedores hay un nuevo apartado que se llama ‘relationship’

 

foto1

Seleccionamos añadir y establecemos a que proveedor y dirección vamos a pagar cuando recibamos una factura para el proveedor que estamos modificando, quedaría tal que así

foto2

Después tenemos que hacer un par de cambios en el setup de AP

AP > Payables Option > Invoices TAB

Hay que activar la opción ‘Override Remit to Supplier’

foto3

foto4


Mar 06 2013

Personalizaciones en Oracle eBS

Category: System Administratorxhuertax @ 4:00 pm

En el día de hoy os traigo una presentación realizada por Susan Behn que es responsable de la práctica de Oracle en la empresa Infosemantics, Inc.

Se trata de una presentación muy práctica sobre las personalizaciones en Oracle eBS. En eBS tenemos dos tipos de personalizaciones para Forms y para OA Framework.

Las personalizaciones pueden llegar a ser muy útiles porque pueden evitar tener que hacer un desarrollo para adaptarnos a los requerimientos del cliente. Algunas de las posibilidades son:

  • Ocular campos
  • Hacedlos obligatorios
  • Incluir mensajes o notas de aviso
  • Restringir la inserción de datos
  • Cambiar el promp de campos para hacerlos mas ‘familiares’
  • Cambiar listas de valores
  • y mas…

Os dejo la presentación completa donde se explica detalladamente.

 


 


Feb 28 2013

Presentamos el nuevo grupo de consultores y usuarios de Oracle: ESOUG

Category: Usuarios de Oraclexhuertax @ 12:08 am

Un grupo de colegas y amigos nos hemos puesto de acuerdo para constituir una nueva asociación. Se trata de un nuevo grupo de consultores y usuarios de Oracle: ESOUG.

El objetivo de este grupo es formalizar y organizar lo que ya hacemos de una manera informal, compartir conocimiento, colaborar, ayudarnos a encontrar oportunidades laborales, compartir las mejores prácticas y en definitiva networking.

El grupo tiene una junta directiva de la que formo parte y está presente en las redes sociales, tanto en twitter @es_oug como en linkedin. El ESOUG es miembro del IOUG y por tanto todos los socios del ESOUG se convierten automáticamente en miembros del IOUG.

Os invito personalmente a que forméis parte del grupo y participéis activamente, todos saldremos beneficiamos.

Un abrazo.


Feb 18 2013

Modelo 347 y 415 – Oracle eBS

Category: EBTAXxhuertax @ 10:14 am

Antes de finalizar este mes, todas las compañías tendrán que presentar el modelo 347 y el 415 correspondiente a operaciones con terceros, sin entrar en detalles hay que declarar el importe total con proveedores y clientes que durante el 2012 hayan superado 3.005,06 €. El año pasado hubo una modificación del modelo que supone que hay que presentar los importes también por trimestres.

Si durante el 2012 se ha producido un upgrade a la R12 o una migración quizás el modelo estándar no te sirva o necesites consolidarlo. Dejo aquí un par de queries que serán muy útiles para hacer comprobaciones:

=============================================================
– –
– MODELO 347 y 415 CLIENTES–
– –
=============================================================

Select

ca.cust_account_id XX_Customer_ID_XX,
pt.PARTY_NAME CLIENTE,
pt.jgzz_fiscal_code NIF,
DECODE(ra.country, ‘ES’, SUBSTR(ra.postal_code, 1, 2), ’99′) COD_PROVINCIA,
SUM (Gld.acctd_amount) importe_anual,
SUM(CASE
WHEN TO_NUMBER(TO_CHAR(gld.gl_date, ‘MM’)) <= 3 THEN
ROUND(NVL(gld.acctd_amount, 0), 2)
ELSE
0
END) importe_Q1,
SUM(CASE
WHEN TO_NUMBER(TO_CHAR(gld.gl_date, ‘MM’)) BETWEEN 4 AND 6 THEN
ROUND(NVL(gld.acctd_amount, 0), 2)
ELSE
0
END) importe_Q2,
SUM(CASE
WHEN TO_NUMBER(TO_CHAR(gld.gl_date, ‘MM’)) BETWEEN 7 AND 9 THEN
ROUND(NVL(gld.acctd_amount, 0), 2)
ELSE
0
END) importe_Q3,
SUM(CASE
WHEN TO_NUMBER(TO_CHAR(gld.gl_date, ‘MM’)) >= 10 THEN
ROUND(NVL(gld.acctd_amount, 0), 2)
ELSE
0
END) importe_Q4

From apps.HZ_PARTIES pt, — los parties los unimos por el party_id
apps.hz_cust_acct_sites_all casa,
apps.HZ_CUST_ACCOUNTS ca,
apps.Ra_Customer_Trx_All fa,
apps.HZ_CUST_SITE_USES_ALL Rsu, — la unimos por el site_use_id
apps.Ra_Customer_Trx_Lines_All Rtl,
Apps.Ra_Cust_Trx_Line_Gl_Dist_All Gld,
Apps.Ra_Cust_Trx_Types_All Rtt,
Apps.HZ_PARTY_SITES pts,
Apps.HZ_LOCATIONS ra

Where pt.party_id=ca.party_id
and fa.bill_to_customer_id=ca.cust_account_id
and casa.cust_acct_site_id=rsu.cust_acct_site_id
and pts.party_site_id=casa.party_site_id
and Rsu.site_use_id=fa.bill_to_site_use_id
and rtl.customer_trx_id = fa.customer_trx_id
and gld.customer_trx_line_id = rtl.customer_trx_line_id
and rtt.cust_trx_type_id = fa.cust_trx_type_id
and pt.party_id=pts.party_id
and pts.location_id=ra.location_id

AND rtt.type <> ‘DM’
AND fa.complete_flag = ‘Y’
AND SUBSTR(ra.postal_code, 1, 2) NOT IN (’35′,’38′)  /* PARA EL MOD 415 HAY QUE CAMBIAR NOT IN POR IN*/
AND gld.gl_date BETWEEN TO_DATE(:p_period_from,’DD-MM-YYYY’) AND TO_DATE(:p_period_to,’DD-MM-YYYY’)
AND fa.org_id = :p_org_id
AND (gld.gl_posted_date IS NOT NULL OR rtt.post_to_gl = ‘N’)

GROUP BY ca.cust_account_id, pt.PARTY_NAME, pt.jgzz_fiscal_code, DECODE(ra.country, ‘ES’, SUBSTR(ra.postal_code, 1, 2), ’99′)
ORDER BY 2, 1

=============================================================
– –
– MODELO 347 PROVEEDORES –
– –
=============================================================

 

SELECT NVL(pap.national_identifier, pv.num_1099) nif,
NVL(pv.tax_reporting_name, pv.vendor_name) nombre,
DECODE(pvs.country, ‘ES’, SUBSTR(pvs.zip, 1, 2), ’99′) codigo_provincia,

SUM(ROUND(DECODE(aid.base_amount,
0,
aid.amount,
NULL,
aid.amount,
aid.base_amount),
2)) importe_anual,
SUM(CASE
WHEN TO_NUMBER(TO_CHAR(aid.accounting_date, ‘MM’)) <= 3 THEN
ROUND(DECODE(aid.base_amount,
0,
aid.amount,
NULL,
aid.amount,
aid.base_amount),
2)
ELSE
0
END) importe_Q1,
SUM(CASE
WHEN TO_NUMBER(TO_CHAR(aid.accounting_date, ‘MM’)) BETWEEN 4 AND 6 THEN
ROUND(DECODE(aid.base_amount,
0,
aid.amount,
NULL,
aid.amount,
aid.base_amount),
2)
ELSE
0
END) importe_Q2,
SUM(CASE
WHEN TO_NUMBER(TO_CHAR(aid.accounting_date, ‘MM’)) BETWEEN 7 AND 9 THEN
ROUND(DECODE(aid.base_amount,
0,
aid.amount,
NULL,
aid.amount,
aid.base_amount),
2)
ELSE
0
END) importe_Q3,
SUM(CASE
WHEN TO_NUMBER(TO_CHAR(aid.accounting_date, ‘MM’)) >= 10 THEN
ROUND(DECODE(aid.base_amount,
0,
aid.amount,
NULL,
aid.amount,
aid.base_amount),
2)
ELSE
0
END) importe_Q4
FROM apps.ap_invoices_all ai,
apps.ap_invoice_distributions_all aid,
apps.po_vendors pv,
apps.po_vendor_sites_all pvs,
(SELECT distinct papf.person_id, papf.national_identifier
FROM apps.per_all_people_f papf
WHERE trunc(sysdate) BETWEEN papf.effective_start_date AND
papf.effective_end_date) pap
WHERE 1 = 1
AND ai.org_id = :p_org_id
AND aid.accounting_date BETWEEN TO_DATE(:p_period_from,’DD-MM-YYYY’) AND TO_DATE(:p_period_to,’DD-MM-YYYY’)
AND ai.invoice_type_lookup_code <> ‘DEBIT’
AND ai.invoice_type_lookup_code <> ‘PREPAYMENT’

AND aid.invoice_id = ai.invoice_id
AND aid.posted_flag IN (‘P’, ‘Y’)
AND aid.line_type_lookup_code <> ‘AWT’
AND pv.vendor_id = ai.vendor_id
AND NVL(pv.vendor_type_lookup_code, ‘XXX’) <> ‘EMPLOYEE’
AND pvs.vendor_id = ai.vendor_id
AND pvs.org_id = ai.org_id
and SUBSTR(pvs.zip, 1, 2) not in (’35′,’38′) /* PARA EL MOD 415 CAMBIAR NOT IN POR IN*/
AND pvs.tax_reporting_site_flag = ‘Y’
AND pap.person_id(+) = NVL(pv.employee_id, -99)
GROUP BY NVL(pap.national_identifier, pv.num_1099), NVL(pv.tax_reporting_name, pv.vendor_name), DECODE(pvs.country, ‘ES’, SUBSTR(pvs.zip, 1, 2), ’99′)
ORDER BY 2, 1″

 


Feb 15 2013

Nuevas tablas clientes ebs-R12

Category: AR Receivablesxhuertax @ 5:56 pm

Con la migración de la estructura de clientes de AR a la Trading Community Architecture (HZ) ha complicado la actualización de los paquetes, porque no hay un mapeo 1 a 1 de muchas tablas. Un mapeo sencillo de las principales tablas de clientes que ya no están disponibles en la R12 sería este:

11i R12
RA_CUSTOMERS HZ_PARTIES and HZ_CUST_ACCOUNTS
RA_ADDRESSES_ALL HZ_PARTY_SITES, HZ_LOC_ASSIGNMENTS,
HZ_LOCATIONS and HZ_CUST_ACCT_SITES_ALL
RA_SITE_USES_ALL HZ_CUST_SITE_USES_ALL

Si consultas la información de Oracle eTRM verás que tampoco aclara mucho. Un gráfico que a mí me ha ayudado bastante es este:

 


Feb 09 2013

Cliente y Proveedor con mismo NIF/Vat number (TaxpayerId)

Category: AP Payables,AR Receivablesxhuertax @ 5:57 pm

En la versión de Oracle eBS R12 los proveedores se han integrado en la estructura TCA (Trading Community Architecture. Eso quiere decir que cuando creamos un proveedor se crea un Party. Lo mismo pasa cuando creamos un cliente, aunque eso ya estaba en la versión 11i.

Por tanto para no tener problemas siempre hay que crear primero el Proveedor y luego el Cliente es to es fundamental.

Una vez que el proveedor está creado vamos a la pantalla de clientes y buscamos por NIF, para que nos devuelva el Party que hemos creado en la pantalla de proveedores, tenemos que tener esta opción de perfil:

AR: Show Parties Without Accounts In DQM =  ’Yes’ a nivel de responsabilidad.

Hasta aquí es el proceso standard.

¿Qué pasa si damos de alta primero el Cliente? Cuando vayamos a dar de alta el proveedor no nos va a dejar. El workaround sería el siguiente:

  1. Identificar el cliente que tiene el mismo NIF que el cliente que queremos dar de alta.
  2. Consultar el cliente y borrar el numero de NIF y de IVA de la ficha.
  3. Realizar los siguientes pasos:
    1. Consultar el ‘TAX ‘ para el país de ese cliente/proveedor
    2. Activar el  flag ”Allow Duplicate Tax Registration Numbers” under Tax -> Show Controls and Defaults
    3. Desde la responsabilidad: Tax Managers
      • Navigation: Parties -> Party Tax Profile
      • Consultar el cliente / proveedor
      • Click en el icono Update
      • Navegar a la pestaña ‘Registrations’ 
      • Ahora se puedo utilizar el NIF/VAT duplicado

=====================

¿Qué tablas se utilizan?

Cuando se crea un proveedor ahora la información se almacena también en:

HZ_PARTIES

La tabla  HZ_PARTY_USG_ASSIGNMENTS guarda el PARTY_USAGE_CODE, y también contiene el PARTY_ID para el proveedor.  Podemos lanzar una consulta SQL en esta tablar para ver si un Party es PROVEEDOR O CLIENTE.


Feb 03 2013

Pay Alone (pagar documentos individualmente)

Category: AP Payablesxhuertax @ 6:48 pm

Durante esta temporada me he propuesto escribir sobre cuestiones que salen en mi vida diaria (siempre que no sean confidenciales) porque probablemente le sucederán a otros usuarios.

En AP hay una funcionalidad para pagar cada factura o documento de manera individual, es decir cada pago es un documento, esto puede ser necesario para una empresa para facilitar la conciliación bancaria.

La opción en la versión 11i se llamaba “Pay Alone” is es una opción que está en las opciones de sistema de AP y que se transfiere al Site del Proveedor.

En la versión R12 esta opción se denomina ”Pay Each Document Alone” y sigue estando en las opciones del sistema y en la dirección del proveedor. Si está activada cada pago contendrá un documento (factura generalmente).

AP -> Suppliers Site -> Payment Details page

Para saber que proveedores tienen la opción activada podemos utilizar esta sentencia:

SELECT IEP.ext_payee_id PAYID, NVL(IEP.exclusive_payment_flag, ‘*’) PAYFLAG, 
APS.vendor_name VENNAME, APSS.vendor_id VENID, 
APSS.vendor_site_code SITENAME, APSS.vendor_site_id SITEID, 
NVL(APSS.exclusive_payment_flag, ‘*’) 
FROM iby_external_payees_all IEP, 
ap_supplier_sites_all APSS, 
ap_suppliers APS 
WHERE APSS.vendor_site_id = IEP.supplier_site_id 
AND APSS.vendor_id = APS.vendor_id 
AND IEP.exclusive_payment_flag IS NULL ; 


Jan 27 2013

Oracle Cloud

Category: Oracle EBS,Usuarios de Oraclexhuertax @ 2:52 pm

El 6 de junio de 2012 Larry Ellison presentaba la línea de servicios Oracle Cloud, como ya comentamos en este blog se trataba de una presentación generalista, que no detallaba nada, simplemente anunciaba que se podrían contratar los servicios de Oracle en la nube y pagar por su uso.

Durante el OracleOpenWorld 2012 volvió mas o menos a repetir lo mismo, en este caso introdujo el concepto SaaS en la presentación y detalló que los servicios ERP (lo que a este blog le interesa) se podrían utilizar alojándose en un servidor in-house, en un servidor propiedad del cliente administrado por Oracle (Oracle OnDemand)  y por último,esta es la novedad, olvidarnos de todo lo relativo al hosting y pagar por el uso de las aplicaciones, esto último es Oracle Cloud.

Todavía siguen faltando los detalles, como se contratará, que parte podrá customizar el cliente, cual será el coste, etc… pero a mi me parece muy buena noticia para:

  1. Nuevos clientes de Oracle. Hasta ahora la implantación del ERP de Oracle estaba destinado solo a compañías con un cierto tamaño, al coste de las licencias hay que sumarle el coste de la máquina, de su administración y el la empresa integradora que implanta el ERP. Con este nuevo concepto no hace falta desembolsar una inversión tan fuerte al principio y esta se reparte durante la vida que usemos el servicio.
  2. El siguiente beneficiado es obviamente Oracle Corporación, se sitúa como líder en este tipo de servicios y se acerca a una base de clientes a los que hasta ahora no accedía.
  3. Otro beneficiado, a la espera de los detalles, seríamos los consultores independientes, pequeñas empresas tecnológicas especializadas en Oracle, que podrán ofrecer sus servicios a clientes para configurar los servicios en la nube.

Oracle va a realizar una ronda de eventos para, así lo entiendo, presentar los detalles de Oracle Cloud que todavía nos siguen faltando.  Aquí tenéis el calendario con la ronda de jornadas completas. En Latinoamérica solo hay una sesión en México, en España tampoco tendremos esa suerte, así que los que queramos asistir tendremos que elegir entre Fráncfort o Londres, en mi caso acudiré a esta última y escribiré aquí lo que allí se cuente.

Buena semana a tod@s.


Next Page »