Treinamentos Oracle - Nerv Informática

chamar API via Forms



Perguntas relacionadas a questões técnicas do EBS. Criação de Concorrentes, Value Sets, Alerts, Forms Personalizations, Configurações, etc
  

Mensagempor marlonpasquali em Qui, 22 Abr 2010 9:56 am

bom dia Pessoal,
desenvolvi um Forms customizado para o EBS e estou tentando fazer uma chamada a uma APi de ajuste de estoques.

Quando faço a chamada através de um programa concorrente, funciona normalmente.

Mas quando faço a chamada via Forms, ocorre o erro: User-Defined Exception na Embalagem GMIGAPI Procedimento G_Inventory_Post

Tem algum segredinho ai para chamar via Forms ???

Coloquei uma triger no botão do forms para chamar a procedure assim:

PCN_PROCESSA_INVENTARIO(:REGISTRO);

O cabeçalho da procedure é assim:
PROCEDURE PCN_PROCESSA_INVENTARIO (p_registro IN number)
.......



obrigado,
Marlon
marlonpasquali
Localização: ERECHIM - RS

Mensagempor paulochagas em Qui, 22 Abr 2010 2:36 pm

E ai cara beleza?

Pode postar o erro completo?
me parece que a API que você tentar chamar é a GMIGAPI.Inventory_Posting(). Mas não está muito claro.

Esse forms é executado a partir do EBS, com o usuario APPS?
paulochagas
Localização: São Paulo - SP

Paulo Chagas Filho
__________________

Analista Funcional / Desenvolvedor Oracle EBS
MSN - paulochagas@hotmail.com
Gtalk - pachafi@gmail.com
Skype - paulochagas

Mensagempor marlonpasquali em Qui, 22 Abr 2010 2:43 pm

Tenho um Forms que roda fora do Applications. Estou conectando este form com o usuario do APPS.
Está ocorrendo o erro: User-Defined Exception na Embalagem GMIGAPI Procedimento G_Inventory_Post
Coloquei uma triger no botão do forms para chamar a procedure assim:

PCN_PROCESSA_INVENTARIO(:REGISTRO);


O cabeçalho da procedure é assim:


PROCEDURE PCN_PROCESSA_INVENTARIO (p_registro IN number)

-- executa api MOVIMENTAÇAO IMEDIATA

l_qty_rec.trans_type := 2; --- tipo 2 ajuste

l_qty_rec.item_no :=reg.produto;

l_qty_rec.from_whse_code :=reg.deposito;

l_qty_rec.to_whse_code :=reg.deposito;

l_qty_rec.item_um :=reg.unidade;

l_qty_rec.item_um2 :=reg.unidade;

l_qty_rec.lot_no :=v_lot_no; ----reg.lote;

l_qty_rec.from_location :=reg.endereco;

l_qty_rec.to_location :=reg.endereco;

l_qty_rec.trans_qty := (V_ALOCAR * -1);

l_qty_rec.co_code :='PCN';

l_qty_rec.orgn_code :='ERE';

l_qty_rec.trans_date := sysdate;

l_qty_rec.reason_code :='POST';

-- l_qty_rec.move_entire_quantity :='Y';

l_qty_rec.lot_status :=reg.status_lote;

l_qty_rec.attribute1 :='11'; --- motivo 11 (Diferença no estoque - Contagem) para registro no flexfield

l_qty_rec.attribute2 :='Ajuste Ref. Contagem de Inventario nr: '|| reg.registro; --- para registro no flexfield2 (Detalhamento do Ajuste)

l_qty_rec.user_name :='FAUSTO.CITOLIN';



GMIPAPI.Inventory_Posting ( p_api_version => 3.0, --apps.GMIGUTL.API_VERSION,

p_init_msg_list => FND_API.G_TRUE,

p_commit => FND_API.G_TRUE,

p_validation_level => FND_API.G_VALID_LEVEL_FULL,

p_qty_rec => l_qty_rec,

x_ic_jrnl_mst_row => L_ic_jrnl_mst_row,

x_ic_adjs_jnl_row1 => L_ic_adjs_jnl_row1,

x_ic_adjs_jnl_row2 => L_ic_adjs_jnl_row2,

x_return_status => pr_return_status,

x_msg_count => pr_message_count,

x_msg_data => pr_message_data);
marlonpasquali
Localização: ERECHIM - RS

Mensagempor paulochagas em Qui, 22 Abr 2010 3:04 pm

Acho que entendi o problema
você tem que rodar a inicialização de contexto
Coloca isso logo após o begin da tua procedure:

Código: Selecionar todos
APPS.FND_GLOBAL.APPS_INITIALIZE(v_user_id  -- USER_ID
                               ,v_RESP_id -- RESP_ID
                               ,v_RESP_APPL_id); -- RESP_APPL_ID



Onde:
v_user_id = ID do usuario do APPS que você usa para disparar o concurrent.
v_RESP_id = ID da responsabilidade usada para disparar o concurrent.
v_RESP_APPL_id = ID da aplicação associada a responsabilidade.
paulochagas
Localização: São Paulo - SP

Paulo Chagas Filho
__________________

Analista Funcional / Desenvolvedor Oracle EBS
MSN - paulochagas@hotmail.com
Gtalk - pachafi@gmail.com
Skype - paulochagas

Mensagempor marlonpasquali em Qui, 22 Abr 2010 4:20 pm

beleza Paulo,
Era isso mesmo.
Muito obrigado pela ajuda.

Marlon
marlonpasquali
Localização: ERECHIM - RS


Voltar para Oracle EBS Técnico

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitantes