Nesse post irei mostrar como é possível atualizar informações das entregas via API, essa alternativa pode ajudar quando há integrações e o procedimento é feito por um outro sistema sem precisar entrar na tela das distribuições.
DECLARE x_delivery_info WSH_DELIVERIES_PUB.delivery_pub_rec_type; x_return_status VARCHAR2 (10); x_msg_count NUMBER; x_msg_data VARCHAR2 (2000); x_msg_details VARCHAR2 (3000); x_msg_summary VARCHAR2 (3000); x_del_id NUMBER; x_name VARCHAR2 (100); init_msg_list VARCHAR2 (30); fail_api EXCEPTION; BEGIN FND_GLOBAL.apps_initialize (1139, 21623, 660); MO_GLOBAL.set_policy_context ('S', 81); MO_GLOBAL.init ('ONT'); x_delivery_info.gross_weight := 10000; x_delivery_info.net_weight := 9500; x_delivery_info.delivery_id := TO_NUMBER(19051); x_delivery_info.name := '19051'; x_delivery_info.last_update_date := SYSDATE; x_delivery_info.last_updated_by := FND_GLOBAL.user_id; WSH_DELIVERIES_PUB.create_update_delivery( p_api_version_number => 1.0, p_init_msg_list => init_msg_list, x_return_status => x_return_status, x_msg_count => x_msg_count, x_msg_data => x_msg_data, p_action_code => 'UPDATE', p_delivery_info => x_delivery_info, x_delivery_id => x_del_id, x_name => x_name); DBMS_OUTPUT.put_line (x_return_status); DBMS_OUTPUT.put_line (x_msg_count); DBMS_OUTPUT.put_line (x_msg_data); DBMS_OUTPUT.put_line (x_del_id); DBMS_OUTPUT.put_line (x_name); IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN RAISE fail_api; ELSE DBMS_OUTPUT.put_line ('Status: ' || x_return_status); END IF; EXCEPTION WHEN fail_api THEN WSH_UTIL_CORE.get_messages ('Y',x_msg_summary,x_msg_details,x_msg_count); IF x_msg_count > 1 THEN DBMS_OUTPUT.put_line ('Message Data : ' || x_msg_data); ELSE x_msg_data := x_msg_summary; DBMS_OUTPUT.put_line ('Message Data : ' || x_msg_data); END IF; END;
Após executar a API, o campo foi atualizado.
Deixe uma resposta