API : INV_CONVERT.CREATE_UOM_CONVERSION
NOTES : This API is available from the release R12.1.3 Oracle Applications
Creates the Item Specific conversion between two uom’s using uom_rate
TO_UOM_CODE = UOM_RATE * FROM_UOM_CODE
Return_status values :
S : Successful conversion creation
W : Conversion exists prior
E : Error in creation conversion
U : Unexpected error occurred
DECLARE
p_from_uom_code VARCHAR2(200);
p_to_uom_code VARCHAR2(200);
p_item_id NUMBER;
p_uom_rate NUMBER;
x_return_status VARCHAR2(200);
l_msg_data VARCHAR2(2000);
v_context VARCHAR2(100);
l_user_id NUMBER := 0; --User ID, Sysadmin here
BEGIN
fnd_global.apps_initialize(user_id => l_user_id,
resp_id => 51686,
resp_appl_id => 401); --Inventory
p_from_uom_code := 'PCS'; --Should be a Base unit
p_to_uom_code := 'CS'; --分类内的单位转换率换成分类内的单位就可以了,例:SLV(quantity)
p_item_id := '80601'; --select * from mtl_system_items_b where segment1='BKL1300A0000T'
p_uom_rate := '128';
INV_CONVERT.CREATE_UOM_CONVERSION(
P_FROM_UOM_CODE => p_from_uom_code,
P_TO_UOM_CODE => p_to_uom_code,
P_ITEM_ID => p_item_id,
P_UOM_RATE => p_uom_rate,
X_RETURN_STATUS => x_return_status
);
IF x_return_status = 'S' Then
dbms_output.put_line(' Conversion Got Created Sucessfully ');
ELSIF x_return_status = 'W' Then
dbms_output.put_line(' Conversion Already Exists ');
ELSIF x_return_status = 'U' Then
dbms_output.put_line(' Unexpected Error Occured ');
ELSIF x_return_status = 'E' Then
LOOP
l_msg_data := FND_MSG_PUB.Get(FND_MSG_PUB.G_NEXT,FND_API.G_FALSE);
IF l_msg_data is NULL Then
EXIT;
END IF;
DBMS_OUTPUT.PUT_LINE('Message' || l_msg_data);
END LOOP;
END IF;
END;