Auto Generate Item Number
2013-10-25 15:21
78 查看
自动生成物料编码的客户化代码,觉得代码写的挺好的,留着备用吧
source:https://forums.oracle.com/thread/411343
代码需加入到CUSTOM.pll
source:https://forums.oracle.com/thread/411343
代码需加入到CUSTOM.pll
------------------------------------------------------------------------------------------------------------------------------------ /*********************************************************************/ /* Begin Master Item Form */ /* 1. Make sure the Item Field on the Master Item Form */ /* is NOT editable by the END USER */ /* 2. Set the Item Field to be the next Item Number */ /* in a 7 digit sequence. */ /* HELPFUL INFO: */ /* MTL_SYSTEM_ITEMS.INVENTORY_ITEM_MIR */ /* - Item Field on the main Master Item Form */ /* MTL_SYSTEM_ITEMS.INVENTORY_ITEM */ /* - Item Field on the folder tab of the Master Item Form */ BEGIN -- Item Master Form IF FORM_NAME = 'INVIDITM' THEN -- MTL_SYSTEM_ITEMS Block IF BLOCK_NAME = 'MTL_SYSTEM_ITEMS' THEN -- WHEN-NEW-ITEM-INSTANCE Event IF EVENT_NAME = 'WHEN-NEW-ITEM-INSTANCE' THEN -- We don't want to mess with the Item if we're in a Query Mode IF NAME_IN('SYSTEM.MODE') != 'ENTER-QUERY' THEN -- The value of the INVENTORY_ITEM_MIR will be blank when we're creating a new Item Master Record -- and therefore that is when we want to DISABLE that item. If it's filled in, then we're -- dealing with an existing Item Master Record, in which case we still want the END USER to be able to -- highlight or select the item number that was generated by the system. IF NAME_IN('SYSTEM.CURRENT_ITEM') = 'INVENTORY_ITEM_MIR' AND NAME_IN('MTL_SYSTEM_ITEMS.INVENTORY_ITEM_MIR') IS NULL THEN NEXT_ITEM; -- Move to the next item so the SYSTEM.CURRENT_ITEM isn't the Item Field Anymore(t SET_ITEM_PROPERTY('MTL_SYSTEM_ITEMS.INVENTORY_ITEM_MIR', REQUIRED, PROPERTY_FALSE); SET_ITEM_PROPERTY('MTL_SYSTEM_ITEMS.INVENTORY_ITEM_MIR', INSERT_ALLOWED, PROPERTY_FALSE); SET_ITEM_PROPERTY('MTL_SYSTEM_ITEMS.INVENTORY_ITEM_MIR', UPDATEABLE, PROPERTY_FALSE); SET_ITEM_PROPERTY('MTL_SYSTEM_ITEMS.INVENTORY_ITEM', REQUIRED, PROPERTY_FALSE); SET_ITEM_PROPERTY('MTL_SYSTEM_ITEMS.INVENTORY_ITEM', INSERT_ALLOWED, PROPERTY_FALSE); SET_ITEM_PROPERTY('MTL_SYSTEM_ITEMS.INVENTORY_ITEM', UPDATEABLE, PROPERTY_FALSE); ELSIF NAME_IN('SYSTEM.CURRENT_ITEM') = 'INVENTORY_ITEM' AND NAME_IN('MTL_SYSTEM_ITEMS.INVENTORY_ITEM') IS NULL THEN NEXT_ITEM; -- Move to the next item so the SYSTEM.CURRENT_ITEM isn't the Item Field Anymore(t SET_ITEM_PROPERTY('MTL_SYSTEM_ITEMS.INVENTORY_ITEM_MIR', REQUIRED, PROPERTY_FALSE); SET_ITEM_PROPERTY('MTL_SYSTEM_ITEMS.INVENTORY_ITEM_MIR', INSERT_ALLOWED, PROPERTY_FALSE); SET_ITEM_PROPERTY('MTL_SYSTEM_ITEMS.INVENTORY_ITEM_MIR', UPDATEABLE, PROPERTY_FALSE); SET_ITEM_PROPERTY('MTL_SYSTEM_ITEMS.INVENTORY_ITEM', REQUIRED, PROPERTY_FALSE); SET_ITEM_PROPERTY('MTL_SYSTEM_ITEMS.INVENTORY_ITEM', INSERT_ALLOWED, PROPERTY_FALSE); SET_ITEM_PROPERTY('MTL_SYSTEM_ITEMS.INVENTORY_ITEM', UPDATEABLE, PROPERTY_FALSE); END IF; -- NAME_IN - INVENTORY_ITEM_MIR - INVENTORY_ITEM END IF; -- SYSTEM.MODE END IF; -- WHEN-NEW-ITEM-INSTANCE -- WHEN-VALIDATE-RECORD Event IF EVENT_NAME = 'WHEN-VALIDATE-RECORD' THEN IF NAME_IN('MTL_SYSTEM_ITEMS.INVENTORY_ITEM_MIR') IS NULL THEN DECLARE NEXTITEMNUMBER VARCHAR2(10); BEGIN --FND_MESSAGE.SET_STRING('Setting the value of INVENTORY_ITEM to the next Item_Number'); --FND_MESSAGE.SHOW; -- Call our custom plsql to get the next item number from a sequence NEXTITEMNUMBER := XXSSI.XXSSI_ITEM_MAST_NUM_GEN.GET_NEXT_ITEM_NUMBER; COPY(NEXTITEMNUMBER, 'MTL_SYSTEM_ITEMS.INVENTORY_ITEM_MIR'); COPY(NEXTITEMNUMBER, 'MTL_SYSTEM_ITEMS.SEGMENT1'); END; END IF; -- NAME_IN - INVENTORY_ITEM_MIR END IF; -- WHEN-VALIDATE-RECORD END IF; -- BLOCK 'MTL_SYSTEM_ITEMS' END IF; -- FORM 'Master Item' END; /* End Master Item Form */ /*********************************************************************/
相关文章推荐
- automake autoconfig generate make configure自动生成
- autoindex itemindex 区别
- generate alphanumeric serial number
- LeetCode-Generate Parentheses & Letter Combinations of a Phone Number
- System.Web.HttpException (0x80004005): 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。
- generate alphanumeric serial number
- item 2:理解auto类型的推导
- Auto-generate LotusScript setter and getter properties for class variables
- Auto-Layout 的各种坑Unable to create description in descriptionForLayoutAttribute_layoutItem_coefficient. Something is nil'
- DataGrid Item auto-generate serial number
- Item2 Understand auto type deduction
- <Effective Mordern C++>笔记:Item 2:Understand auto type deduction.
- Automatically generate serial number in abap
- item 2: 理解auto类型的推导
- AutoGenerateColumns的使用属性介绍
- generate the random number between a to b
- Auto-Layout 的各种坑Unable to create description in descriptionForLayoutAttribute_layoutItem_coefficient
- Item 5: 比起显式的类型声明,更偏爱auto
- 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。
- More Effective C++ Item 附2:一个auto_ptr的实现实例