martes, 29 de mayo de 2012

My Oracle Support

En caso de trabajar para una compañia que trabaje con el ERP de Oracle, se puede hacer uso del soporte de Oracle en My Oracle Support. Y abrir desde aqui cualquier incidencia o duda con respecto al ERP.

Para ellos será necesario ENTRAR a esta WEB. Una vez que conseguimos el acceso a la ventana principal de My Oracle Support será necesario dar el "Support Identifier", identificador de soporte. Una vez que este aceptado este identificador de soporte, se podrán abrir service request en My Oracle Support. Hasta entonces no será posible abrir ninguna incidencia.

Lo que si que puede ser posible que pertenezcan a una consultora que trabaja con Oracle, por tanto la consultora donde trabajes tenga un identificador de soporte, pero sin posibilidad de abrir incidencias. A modo de tener acceso al apartado de conocimiento "knowledge".

En My Oracle Support permiten que crear cualquier tipo de duda, como dudas de desarrolladores, dudas que pudiera tener un consultor funcional ...

Se aconseja buscar en el apartado de conocimiento sobre nuestra duda, antes de crear una incidencia o SR (Service request) con oracle.

Si te ha gustado este artículo, por favor pincha en todos los botones de Twitter, Facebook y Google, para difundirlo y premiar el esfuerzo que ponemos en cada uno de ellos. Es la forma que tienes de ayudarnos a seguir creciendo.

domingo, 13 de mayo de 2012

Problemas Webadi, Run-time error '1004'; Method 'VBProject' of object


Si al crear el webadi (en el ERP de Oracle, Oracle e-business suite), tras pulsar en el botón de crear documento, el excel arroja un mensaje de que no están activados los projectos VBA, será necesario seguir los siguientes pasos para activar en el excel los objetos de visual basic. El error que visualizarás debe de ser el siguiente:

'Run-time error '1004'; Method 'VBProject' of object'_Workbook' failed

Para activar los projectos de VBA, deberemos de seguir los siguientes pasos:

1.- Abrimos el excel, y en clickamos en archivo - opciones



2.- En la entrada de Centro de confianza, pulsamos en "Configuración de Centro de Confianza"



3.- Dejaremos activos los dos checkbox:
3.1.- "Habilitar todas las macros (no recomendado, puede ejecutarse codigo posiblemente peligroso)"
3.2.- "Confiar en el acceso al modelo de objetos de proyectos de VBA"
















También pueden seguir en el siguiente enlace de metalink con respecto al mismo error 1004 al abrir el Webadi:

Note: 376013.1 - Run-time error '1004' Opening WebADI Spreadsheet to Import Dimension Members
https://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=376013.1

En próximo comentarios, indicaremos como crear el excel para poder subir asientos a Oracle, con algunas imagenes para que resulte más sencillo.

Si te ha gustado este artículo, por favor pincha en todos los botones de Twitter, Facebook y Google, para difundirlo y premiar el esfuerzo que ponemos en cada uno de ellos. Es la forma que tienes de ayudarnos a seguir creciendo.

sábado, 12 de mayo de 2012

Launch SRS Form, llamar a un informe desde un botón de Oracle ebs

Mediante una personalización en Oracle Ebs, es posible lanzar un informe (concurrente) sin la necesidad de navegar en el menú principal a Informes.

Para ellos haremos dos pasos, primero creamos un botón (en la parte superior, al lado de herramientas (Tools)) en una pantalla en concreto (en nuestro caso la pantalla de asientos).

1.- Primeramente creamos el botón debajo del menú “Acciones”: 

10. Descripción: “Incluir Botón en Pantalla”
    Evento disparador: WHEN-NEW-FORM-INSTANCE
    Objeto disparador: "blanco"
    Condición: ${ps.org_id.value} = xxxx  (de tal forma que si tenemos muchas compañias creadas en   Oracle, queremos que solo una compañía tenga accesible esta opción de imprimir desde la misma pantalla de creación de asientos)
    Modo de procesamiento: No en Modo Introducir consulta.
    Acciones:
        Acción 1: Crear botón debajo del menú “Acciones”:
        Tipo Acción: Menu
        Idioma: All
        Opciones de Menú: SPECIAL 45:
        Label de Menú: Imprimir Asiento

        Presentar Linea antes de Menú: clickado


20. Descripción: “Lanzar el informe en concreto”
    Evento disparador: SPECIAL45
    Objeto disparador: "blanco"
    Condición: "blanco"
    Modo de procesamiento: No en Modo Introducir consulta.
    Acciones:
            Acción 1: Se lanzará el informe que queremos imprimir
            Tipo de acción: Built-in
            Idioma: All
            Tipo Integrado: Lanzar Pantalla SRS (Launch SRS Form)
            Nombre de Programa: "Nombre del concurrente al que queremos llamar"

domingo, 6 de mayo de 2012

Artículos creados en Oracle EBS


Se puede utilizar la siguiente sql para buscar los artículos creados en Oracle con la siguiente SQL.

Si se quiere buscar algún articulo en concreto, habría que completar la parte where que quisiéramos. De tal forma que si queremos buscar por descripción de artículo (pieza 1, por ejemplo) , deberíamos de descomentar (quitar los -- de adelante) y poner , %pieza%1% tras la parte like.

Es decir, la linea
--and upper(a.description) like '%part of article description%'
habría que modificar por:
and upper(a.description) like '%pieza%1%'

select a.description, a.item_type as Tipo, a.primary_uom_code as UOM,
a.inventory_item_status_code, p.organization_code as Organization
from inv.mtl_system_items_b a, inv.mtl_parameters p
where a.organization_id = p.organization_id
--and p.organization_code = '%Org Code%'
--and a.inventory_item_status_code = 'Active'
--and a.invoiceable_item_flag ='Y'
--and upper(a.description) like '%part of article description%'
--and a.item_type like 'TERMINADO'

domingo, 8 de abril de 2012

DISTINCT en SQL


En una tabla pueden existir duplicados en los datos de una columna , y solo nos interesa sacar los diferentes valores de la tabla (no queremos sacar aquellas duplicadas).

Vamos a decir que es similar al eliminar duplicados que es posible utilizar en el excel. 

Solo nos va a devolver valores no duplicados. Es decir tras ejecutar la sentencia es imposible que existan duplicados en la columna.

Sintaxis:

SELECT DISTINCT 'columna'
FROM 'tabla'

Ejemplo:

Mostraremos solamente las diferentes edades de las personas de nuestra tabla 'Personas'.

Teniendo en cuenta que nuestra Tabla: 'Personas' esta compuesta por la siguiente información:

nombre apellido edad
Pepe Cuenca 18
Angel Gomez 18
Pedro Rodriguez 32
Maria Lopez 23

Si ejecutamos la siguiente sentencia, solamente obtendremos las edades (no duplicadas que existan en la base de datos en la tabla Personas)

SELECT DISTINCT edad FROM Personas

edad
18
32
23

UPDATE en SQL


Con el Update podremos actualizar una linea anteriormente grabada en la base de datos.

Siguiendo con el mismo ejemplo actualizaremos el apellido del ejemplo anterior (ya que por error no introducimos apellido). Ejemplo anterior con el INSERT

Importante: Deberemos utilizar el where ya que sino todos los registros de la tabla se verán afectados. La idea es escoger un registro de toda la tabla y actualizar solamente una propiedad/columna de ese registro/linea.
Sintaxis:
UPDATE 'tabla' SET columna1=valor1, columna2=valor2,...
WHERE 'columna'='valor'

Con el where "nos enfocamos" en aquellos registros/lineas que queremos actualizar de la 'tabla', y actualizaremos la columna1 y columna2 con unos valores determinados.

Ejemplo:
Actualizaremos solamente el apellido de Marta.

Tabla: 'Personas'
nombre apellido edad
Pepe Cuenca 18
Angel Gomez 58
Pedro Rodriguez 32
Maria
23


UPDATE 'Personas' SET apellido='Lopez'
WHERE 'nombre'='Marta'

Nota: En el ejemplo dado, por simplificarlo, no estamos usando columnas clave como pudieran ser ID (Identificador) de 'Personas'. Un numero unico de la tabla que permite identificar un solo registro sin equívocos. Ya que con el ejemplo de abajo si somos estrictos se actualizarían todos los apellidos de las personas que se llamen 'Marta'

Tras  ejecutar la siguiente sentencia la Tabla 'Personas' se nos quedará de la siguiente forma:

Tabla: 'Personas'
nombre apellido edad
Pepe Cuenca 18
Angel Gomez 58
Pedro Rodriguez 32
Maria Lopez 23

INSERT en SQL


Esta sentencia se utiliza para introducir un nuevo registro en la base de datos, vamos a decir una nueva linea.

Más adelanta mostraremos como existe la opción de eliminar una linea al igual que en este caso añadimos una nueva linea en la tabla.


Sintaxis:

Tendremos dos formas de introducir los datos en la base de datos:

1.- Indicando expresamente los valores en ciertas columnas
INSERT INTO 'tabla' (columna1, columna2, columna3,....)
VALUES (valor1, valor2, valor3,...)

2.- No indicando las columnas, por tanto se considera que como parametro le pasaremos los valores de todas las columnas
INSERT INTO 'tabla'
VALUES (valor1, valor2, valor3,...)

Ejemplo:

Supongamos que tenemos los siguientes datos en nuestra tabla y queremos añadir una nueva linea para añadir a Maria de 23 años.

Tabla: 'Personas'
nombre apellido edad
Pepe Cuenca 18
Angel Gomez 58
Pedro Rodriguez 32


Con un ejemplo del punto 1 de la parte de sistaxis, la introdución de datos de nombre y edad sería algo así:
INSERT INTO Personas (nombre, edad)
VALUES ('Maria', 23)

Quedando la tabla compuesta como:
Tabla: 'Personas'
nombre apellido edad
Pepe Cuenca 18
Angel Gomez 58
Pedro Rodriguez 32
Maria
23

Con un ejemplo del punto 2 de la parte de sistaxis, el insert sería algo así:
INSERT INTO Personas VALUES ('Maria','Lopez', 23)


Quedando la tabla compuesta como:
Tabla: 'Personas'
nombre apellido edad
Pepe Cuenca 18
Angel Gomez 58
Pedro Rodriguez 32
Maria Lopez 23

sábado, 7 de abril de 2012

AS en SQL

Volvamos a usar el ejemplo del post anterior.
Select * from Personas tb where tb.nombre in ('Pepe', 'Pedro')

Sin haber avisado hemos usado un alias en una de sus formas.

Con un alias podemos renombrar una columna o una tabla para crear sql más simples. Normalmente se utilizan para reducir el texto de la columna o tabla de tal forma que es más sencillo leer la sentencia completa.

Los alias suelen ser normalmente textos muy cortos, por ejemplo si la columna se llama Personas_Juridicas, se le podría llamar al alias "pj" y evitar tener que escribir todo el texto de: Personas_Juridicas
Sintaxis:
SELECT 'nombre_columna'(s) FROM 'tabla' AS 'alias'  -- Con esta sentencia añadiriamos un alias a una tablas
SELECT
'nombre_columna' AS 'alias' FROM 'tabla' -- Con esta sentencia añadiriamos un alias a una columna

En SQL Oracle al menos, no es totalmente necesario utilizar el "AS". Se puede evitar escribirlo y igualmente se nos ejecutaría la SQL. 
Select * from Personas tb where tb.nombre in ('Pepe', 'Pedro')

Ejemplo:
La tabla lo llamaremos "Personas"

nombre apellido edad
Pepe Cuenca 18
Angel Gomez 58
Pedro Rodriguez 32

Buscaremos todas las columnas, de aquellas personas que se llamen Pepe y tengan menos de 20 años, usando alias en columnas y tablas
Select tb.nombre as Col1, tb.apellido Col2, tb.edad Col3 from Personas tb where tb.nombre in ('Pepe') and tb.edad < 20

El resultado de ejecutar la sql anterior es:
Col1 Col2 Col3
Pepe Cuenca 18

Sin los aliases no podriamos dar nombre a las columnas del resultado. Y deberiamos de haber usar el nombre completo de la tabla en la parte de condiciones (where)

IN en SQL


Sigamos con el ejemplo del post anterior: Select * from 'tabla' tb where tb.nombre = 'Pepe'

Añademosles una condición tras el where, en este caso la condición "IN".

Select * from 'tabla' tb where tb.nombre in ('Pepe', 'Pedro')

Con esto conseguimos buscar toda aquella información de aquellos que tienen nombre Pepe o Pedro. En el post anterior solamente buscábamos la información de Pepe.


El equivalente a esta condición sería Select * from 'tabla' tb where tb.nombre ='Pepe' or tb.nombre= 'Pedro'
 
Sintaxis:
SELECT 'nombre_columnas(s)'
FROM 'tabla'
WHERE 'nombre_columna' IN (valor1,valor2,...)

Ejemplo:
La tabla lo llamaremos "Personas"

nombre apellido edad
Pepe Cuenca 18
Angel Gomez 58
Pedro Rodriguez 32

Buscaremos todas las columnas de aquellas personas que se llamen Pepe y Pedro.
Select * from Personas tb where tb.nombre in ('Pepe', 'Pedro')

El resultado de ejecutar la sql anterior es:
nombre apellido edad
Pepe Cuenca 18
Pedro Rodriguez 32

Sql para buscar datos de una base de datos


SQL puede servirnos para obtener los datos de una base de datos, sin por ejemplo no tener que buscar usando la aplicación como puede ser oracle e-business suite.

Esta opción es más a nivel de programador, técnico etc. No es una opción que pueda usarse por cualquiera de los usuarios de la herramienta Oracle E-Business Suite.

En el siguiente apartado nos centraremos en la estructura que tiene que tener una sql sin adentrarnos aún en los casos específicos.

Antes de comenzar a ejecutar una sentencia sql, es necesario saber su estructura base, como la siguiente:

Select * from 'tabla' tb where tb.nombre = 'Pepe'
Queremos sacar todos los datos de la 'tabla', pero siempre y cuando el nombre sea 'Pepe'

1.- La parte de Select * -- Se usa para decirle que columna de la tabla queremos visualizar. Si se pone un * (asterisco), la sentencia nos mostrará todas las columnas de la tabla.

2.- from 'tabla' -- La posterior búsqueda y la obtención de las columnas a visualizar del punto 1, saldrán de esta tabla de base de datos (donde se encuentran los datos que nos interesan). from 'tabla' tb -- El tb que he puesto detrás de la tabla es el alias, en este caso con una sola tabla no es necesario pero mas adelante cuando enlacemos varias tablas verán su significado.


3.- where -- es donde ponemos la condición (tb.nombre = 'Pepe' ). La sentencia pudiera estar sin condición (where) , en tal caso nos sacaría la información de la 'tabla' en su totalidad.

En los siguientes post nos adentraremos más en condiciones más complicadas.