Oracle EBS – Algumas consultas muito úteis

Olá!

Hoje vou variar um pouquinho no assunto do post! Como o blog é muuuito variado, não vejo problemas, não é?
Então, bora colocar algo útil para aqueles que trabalham com Oracle EBS.

Atualmente existem muitos blogs muito bons sobre isso, como o http://eduardoschurtz.com/oracle, mas aqui estou apenas colocando de forma mais técnica algumas informações que são muito úteis para mim no dia a dia, já que trabalho todo dia com Oracle EBS. 😀

Buscar parâmetros do programa concorrente

Essa consulta retorna a lista de parâmetros de um programa concorrente cadastrado no EBS. Utilizei muito para montar os Repasses de Tarefas, que são documentos (word mesmo) criados para documentação dos programas que são cadastrados no EBS, como programas concorrentes, forms, executáveis, listas de valores, etc… Eu sei eu também acho meio antiquado, afinal pode-se criar instaladores através do FNDLOAD (Vou fazer um post sobre isso), mas muitos clientes ainda utilizam essa documentação.
Como no repasse de tarefas se fazia necessário colocar explicitamente todos os parâmetros e muitas vezes são muitos e muitos, criei essa consulta que facilita e muito a vida, afinal eu só executava, copiava e colava no documento, estava pronto!

Uma coisa que vi e que ele busca pelo descriptive_flexfield_name, não sei ainda qual e a relação com o programa concorrente mas busco esse cara na tela do EBS mesmo antes de executar essa consulta.

SELECT end_user_column_name parametro
     , (SELECT flex_value_set_name FROM fnd_flex_value_sets  
WHERE flex_value_set_id = a.flex_value_set_id)  conjunto_valores
     , required_flag obrigatorio
     , display_flag exibido
     , display_size tamanho
     , form_left_prompt prompt
     , srw_param indicacao
     , DECODE(default_type
            , 'C', 'Constante'
            , 'S', 'Instrução SQL'
            , 'P', 'Perfil'
            , 'A', 'Segmento') tipo_default
     , default_value valor_default
     , a.*
  FROM fnd_descr_flex_col_usage_vl a
 WHERE (application_id = 706) -- ID da aplicacao
   AND (descriptive_flexfield_name = '$SRS$.WICDOL')
 ORDER BY column_seq_num

Verificar programas concorrentes que estão rodando

Esta consulta retorna a lista dos concorrentes em execução no momento. É possível consultar outras fases.

SELECT f.request_id
      ,u.user_name
      ,u.description
      ,p.user_concurrent_program_name
      ,f. request_date
      ,f.status_code
      ,f.phase_code
      ,f.actual_start_date
      ,f.actual_completion_date
      ,TRUNC((f.actual_completion_date - 
              f.actual_start_date) * 24 * 60, 2) segundos
      ,f.argument_text
      ,f.resubmit_interval
      ,f.resubmit_interval_unit_code
  FROM fnd_concurrent_requests f, 
       fnd_concurrent_programs_tl p, 
       fnd_user u
 WHERE u.user_id = f.requested_by
   AND f.concurrent_program_id = p.concurrent_program_id
   AND p.language = 'PTB'
   AND f.status_code = 'R'
 ORDER BY f.actual_start_date DESC;

Ações com programas concorrentes

Abaixo algumas ações posíveis via SQL para modificar o status dos concorrentes.

Finalizar um concorrente

UPDATE fnd_concurrent_requests 
SET phase_code='C', 
status_code='X' 
WHERE request_id IN (127862155)

Resubmeter um concorrente

UPDATE fnd_concurrent_requests 
SET phase_code='P',
status_code='I' 
WHERE request_id IN (127862031)

Alterar prioridade de um concorrente

UPDATE fnd_concurrent_requests 
SET priority  = 47 
WHERE request_id IN (81496150) 
AND xs34 phase_code = 'P' 
AND status_code = 'I' 
AND requested_by = 1262;

Buscar a descrição do Status da Ordem e da Linha da Ordem de Venda (FLOW_STATUS_CODE)

Já perdi muito tempo procurando isso, para saber quais os possíveis status da Ordem de Venda ou da Linha da Ordem de venda. Tá aí, fácil, fácil. Difícil é entender pra que servem cada um deles, afinal, são muitos!

SELECT *
  FROM oe_lookups a
 WHERE a.lookup_type = 'FLOW_STATUS' -- Header
    OR a.lookup_type = 'LINE_FLOW_STATUS' -- Linha

Buscar Lista de Valores onde a tabela é utilizada

Essa é uma consulta que sempre utilizo quando preciso encontrar uma lista de valores já pronta para algum parâmetro que irei utilizar num programa concorrente ou até mesmo para uma lista em um flexfield. O que a consulta faz é retornar quais as listas de valores que trazem informações de uma determinada tabela.

SELECT b.flex_value_set_name
     , a.application_table_name
     , a.value_column_name
     , a.value_column_type
     , a.value_column_size
     , a.id_column_name
     , a.id_column_type
     , a.id_column_size
     , a.meaning_column_name
     , a.meaning_column_type
     , a.meaning_column_size
     , a.additional_where_clause
 FROM FND_FLEX_VALIDATION_TABLES  a
    , FND_FLEX_VALUE_SETS b
WHERE a.flex_value_set_id = b.flex_value_set_id
  AND UPPER(APPLICATION_TABLE_NAME) LIKE '%GME_BATCH_HEADER%'

Por hoje é s s s s sóóó p p p p pe pee pessoal.

5 thoughts on “Oracle EBS – Algumas consultas muito úteis

  1. Diego Alejandro Reply

    Bom dia.
    Sobre alteração de Status utilizei a API abaixo, com isso evitando update direto na tabela

    Exemplo:
    IF fnd_concurrent.set_completion_status
    ( status => ‘WARNING’
    , message => ‘log’
    ) THEN
    fnd_file.put_line( which => fnd_file.log
    , buff => ‘status to WARNING’);
    END IF;

Leave a Reply

Your email address will not be published. Required fields are marked *