Importar/Atualizar Ordens de Produção Discretas

Dentro das possíveis funcionalidades e setups que podem ser feitos no módulo Work In Process (WIP), pode-se também trabalhar com interfaces caso tenha que fazer importações ou atualizações de sistemas satélites. Abaixo segue alguns scripts que podem ser usados para esse tipo de trabalho.

Criar/Atualizar Ordem Produção

INSERT INTO wip_job_schedule_interface(last_update_date,
 last_updated_by,
 creation_date,
 created_by,
 process_phase,
 process_status,
 wip_entity_id,
 load_type,
 organization_id,
 group_id,
 header_id)
 VALUES(SYSDATE,
 fnd_global.user_id,
 SYSDATE,
 fnd_global.user_id,
 2, --2 Validation 3 Explosion 4 Complete 5 Creation
 1 --Create Standard Discrete Job
 2 --Create Pending Repetitive Schedule
 3 --Update Standard or Non-Standard Discrete Job
 4 --Create Non-Standard Discrete Job ,
 d.wip_entity_id,
 3,
 d.organization_id,
 100,
 d.wip_entity_id);

INSERT INTO wip_job_dtls_interface( last_update_date,
 last_updated_by,
 creation_date,
 created_by,
 group_id,
 wip_entity_id,
 organization_id,
 inventory_item_id_old,
 quantity_per_assembly,
 operation_seq_num,
 department_id,
 load_type,
 process_phase,
 process_status,
 substitution_type,
 parent_header_id)
 VALUES(SYSDATE,
 fnd_global.user_id,
 SYSDATE,
 fnd_global.user_id,
 100,
 d.wip_entity_id,
 d.organization_id,
 d.inventory_item_id,
 ROUND(v_quantidade_montagem,10),
 d.operation_seq_num,
 d.department_id,
 2,
 2,
 1,
 3,
 d.wip_entity_id)

Ao usar essas duas interfaces, é possível fazer modificações de componentes, departamentos, recursos, etc…, facilitando assim qualquer integração com outros sistemas.

Após a inserção dos registros nessas duas tabelas, é preciso rodar o concorrente para importar para o EBS, o script abaixo faz a chamada do concorrente WIP Mass Load

DECLARE
v_phase VARCHAR2(400); 
v_status VARCHAR2(400);
v_dev_phase VARCHAR2(400);
v_dev_status VARCHAR2(400);
v_message VARCHAR2(400);
lv_request_id NUMBER; 
 
 BEGIN 
 
 lv_request_id := fnd_request.submit_request('WIP',
 'WICMLP',
 NULL,
 NULL,
 NULL,
 14,
 0,
 1,
 CHR(0));
 
 COMMIT; 
 
 IF NOT (fnd_concurrent.wait_for_request (lv_request_id,
 2,
 0,
 v_phase,
 v_status,
 v_dev_phase,
 v_dev_status,
 v_message ) ) THEN
 
 IF v_dev_status = 'ERROR' THEN
 RAISE_APPLICATION_ERROR(-20001,SQLERRM);
 END IF;
 END IF;
 COMMIT;
 
 END;

Sem título

Caso dê algum problema ou erro no concorrente, basta ir a tela de interface onde irá mostrar os erros, assim os mesmos podem ser corrigidos em importados novamente.

Sem título

Obrigado…

Dúvidas e sugestões, podemos conversar pelo skype: alexpagliarini53.

Deixe uma resposta

Powered by WordPress.com. Tema: Baskerville 2 por Anders Noren

Acima ↑

%d blogueiros gostam disto: