14 de diciembre de 2012

Oracle eBs: Código para esperar a que termine una solicitud (concurrent) - Oracle eBS apps


Algunas cando realizamos desarrollos Oracle en e-Business Suite veces en nuestros programas necesitamos lanzar alguna solicitud pero es necesario esperar para ver como termina.

Aquí os adjuntamos un código para solucionarlo.

BEGIN
   fnd_file.put_line (fnd_file.output,
                      '*** Call The XXXX Import Program  ***');
   fnd_global.apps_initialize (
      user_id             => fnd_profile.VALUE ('USER_ID'),
      resp_id             => fnd_profile.VALUE ('RESP_ID'),
      resp_appl_id        => fnd_profile.VALUE ('RESP_APPL_ID'),
      security_group_id   => 0);
   fnd_file.put_line (fnd_file.LOG, 'Batch ID:' || ln_group_id);
   ln_req_id :=
      fnd_request.submit_request ('--',              -- Sustituir por el codigo de la aplicacion
                                  '----',---Sustituir por SHORT CODE de nuestro programa
                                  NULL,
                                  SYSDATE,
                                  FALSE,
                                  'BATCH',
                                  ln_group_id);
   COMMIT;

   IF ln_req_id = 0
   THEN
      fnd_file.put_line (
         fnd_file.LOG,
         'Error al ejecutar "' || fnd_message.get || '".');
   ELSE
      fnd_file.put_line (
         fnd_file.LOG,
         'El programa se generó correctamente. Solicitud id :' || ln_req_id);
   END IF;

   IF ln_req_id > 0
   THEN
      LOOP
         lv_req_return_status :=
            fnd_concurrent.wait_for_request (ln_req_id,
                                             60,
                                             0,
                                             lv_req_phase,
                                             lv_req_status,
                                             lv_req_dev_phase,
                                             lv_req_dev_status,
                                             lv_req_message);
         EXIT WHEN UPPER (lv_req_phase) = 'COMPLETED'
                   OR UPPER (lv_req_status) IN
                         ('CANCELLED', 'ERROR', 'TERMINATED');
      END LOOP;

      IF UPPER (lv_req_phase) = 'COMPLETED'
         AND UPPER (lv_req_status) = 'ERROR'
      THEN
         fnd_file.put_line (
            fnd_file.LOG,
            'El programa termino con error. Ver el log para el request_id');
         fnd_file.put_line (fnd_file.LOG, SQLERRM);
      ELSIF UPPER (lv_req_phase) = 'COMPLETED'
            AND UPPER (lv_req_status) = 'NORMAL'
      THEN
         Fnd_File.PUT_LINE (
            Fnd_File.LOG,
            'El programa terminó correctamente. Id de la solicitud: '
            || ln_req_id);
      ELSE
         Fnd_File.PUT_LINE (
            Fnd_File.LOG,
            'Error en el programa ');
         Fnd_File.PUT_LINE (Fnd_File.LOG, SQLERRM);
      END IF;
   END IF;
EXCEPTION
   WHEN OTHERS
   THEN
      fnd_file.put_line (
         fnd_file.LOG,
         'WHEN OTHERS ERROR: '
         || SQLERRM);
END;


13 de diciembre de 2012

Conector QlikView - Oracle e-Business Suite apps

Como saben los desarrolladores de QlikView, el proceso de extracción de datos es uno de los que lleva más tiempo a la hora de crear nuestros cuadros de mando en QlikView.

El modelo de datos de la eBS requiere de conocimiento para la extraccion ya que es un modelo complejo.

Cualquier necesidad de ayuda en la ETL de datos para QlikView puede ser solucionado rápidamente por el equipo de insiemeIT que tienen una amplía experiencia en desarrollos tanto con QlikView como con Oracle e-Business Suite en sus versiones 11.5.9, 11,5,10, 12.x.

Para más información:  www.insiemeit.es


Tablas de personalizaciones de forms - Forms personalizations

Estas son algunas tablas que contienen los datos de nuestras personalizaciones de Oracle apps.
En esta primera es donde nos muestra la función asociada a la personalizacion
FND_FORM_CUSTOM_RULES

Esto es válido cuando nuestro proyecto tiene demasiadas pantallas personalizadas y es difícil de controlar pases a producción,....


FND_FORM_CUSTOM_SCOPES
FND_FORM_CUSTOM_ACTIONS
FND_FORM_CUSTOM_PARAMS
FND_FORM_CUSTOM_PROP_VALUES
FND_FORM_CUSTOM_PROP_LIST

Aquí disponéis de una select para poder obtener el nombre de la pantalla y el nombre de usuario.



SELECT DISTINCT FNDF.FUNCTION_NAME , FNDF.USER_FUNCTION_NAME , FNDR.CONDITION
 FROM FND_FORM_FUNCTIONS_VL FNDF ,
      FND_FORM_CUSTOM_RULES FNDR    
WHERE FNDF.FUNCTION_NAME = FNDR.FUNCTION_NAME
ORDER BY 1 ASC

www.insiemeit.es

25 de febrero de 2012

Consultores Oracle e-Business Suite


insiemeIT está buscando consultores Oracle e-Business Suite tanto freelance como para formar parte de la plantilla.

Esta consultora está muy especializada en qlikview y oracle e-business suite.

Con una mentalidad bastante moderna dentro del mundo de la consultoría, os animo a que forméis parte del proyecto insiemeIT.




QlikView y Oracle e-Business SUite

Últimamente estamos trabajando con QlikView para segmentar la información obtenida de Oracle e-Business Suite r12.
 La integración está resultando increiblemente rápida y la velocidad con la que la herramienta maneja los millones de registros es espectacular.

En cuestión de días tenemos casi un 80% de la integración. En estos momentos estamos integrando los siguientes módulos:

  • AR 
  • PO 
  • AP 
  • GL 
  • INV 
  • FA 
  • eAM 
Con el nuevo modelo de datos HZ esta integración nos servirá para las futuras versiones de Oracle Fussion Applications en la que todos los sistemas que Oracle está integrando van a llevar el mismo modelo de datos. 

Si alguien se encuentra con la misma situación, podemos ayudaros con esta integración.

Más información en www.insiemeit.es