This RMB will show you what the dynamic procedure will look like when you start
the migration job. To be able to perform procedures with different parameter-layouts
dynamically, we have made a standard encapsulation for them.
Procedures will be compiled when the job starts and will be removed depending on
Rule definitions.
The name of stored procedures will follow this naming-convention : IC_<Job-ID>_ExecuteSequence
.
The procedures have following parameters :
info_ IN OUT VARCHAR2, objid_ IN OUT VARCHAR2, objversion_ IN OUT VARCHAR2, attr_ IN OUT VARCHAR2, arg_attr_ IN VARCHAR2, in_action_ IN VARCHAR2
All of the procedures parameters ( except for those who match the standard parameters above) are declared as local variables.
This attribute-string will contain all IN-parameters for the procedure in question. This attribute-string will be unpacked and values stored in the local variables before executing the procedure itself.
After the procedure has been executed, all OUT-variables are packed into the standard attribute-string and returned to MethodList for storage
CREATE OR REPLACE PROCEDURE IC_MODINV_8 ( info_ IN OUT VARCHAR2, objid_ IN OUT VARCHAR2, objversion_ IN OUT VARCHAR2, attr_ IN OUT VARCHAR2, arg_attr_ IN VARCHAR2, in_action_ IN VARCHAR2) IS ptr_ NUMBER; name_ VARCHAR2(30); value_ VARCHAR2(2000); action_ VARCHAR2(2000) := in_action_; -- contract_ VARCHAR2(32000); part_no_ VARCHAR2(32000); purch_leadtime_ NUMBER; BEGIN WHILE (Client_SYS.Get_Next_From_Attr(arg_attr_, ptr_, name_, value_)) LOOP IF ( name_ = 'CONTRACT_' ) THEN contract_:= Client_SYS.Get_Item_Value('CONTRACT_',arg_attr_); ELSIF ( name_ = 'PART_NO_' ) THEN part_no_:= Client_SYS.Get_Item_Value('PART_NO_',arg_attr_); ELSIF ( name_ = 'PURCH_LEADTIME_' ) THEN purch_leadtime_:= Client_SYS.Attr_Value_To_Number( Client_SYS.Get_Item_Value('PURCH_LEADTIME_',arg_attr_)); END IF; END LOOP; -- INVENTORY_PART_API.MODIFY_PURCH_LEADTIME( contract_, part_no_, purch_leadtime_); -- END IC_MODINV_8;