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;
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.
Obrigado…
Dúvidas e sugestões, podemos conversar pelo skype: alexpagliarini53.
Deixe uma resposta