个性化的项目应用实例_第1页
个性化的项目应用实例_第2页
个性化的项目应用实例_第3页
个性化的项目应用实例_第4页
个性化的项目应用实例_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 FORM个性化的应用实例文档作者:YangHe创建日期:5/20/2007最近更新:5/24/2007控制编号:FORM个性化V1.0文档版本: 1.0审批:松下富士通汉得拷贝数_文档控制变更记录日期作者版本变更参考5/20/2007YangHe1新创建的文档审阅姓名职位分发拷贝数姓名地点1111(9-Dec-96)目录文档控制2概述4安装环境4安装前准备4阅读说明及约定4FORM个性化5协亨项目ORACLE销售订单录入控制5协亨项目ORACLE子库存转移控制12协亨项目ORACLE杂项事务处理控制16添加菜单项调用系统功能18已解决和未解决的问题36未解决问题36已解决问题36(9-Dec

2、-96)概述FORM个性化是.10新增的功能。通过个性化设置,我们可以不必去修改ORACLE的FORM源码而实现FORM标准功能的修改,因为个性化代码是独立储存在数据库表中的,FORM的升级均对此无影响。所以在项目上要对FORM进行修改时,如果能行,最好还是用FORM个性化来实现这里顺便提下两个预置文件,一个是Hide Diagnostics menu entry,用来控制help菜单下的Diagnostics是否隐藏,默认为不隐藏。一个是 Utilities:Diagnostics用来控制进入诊断模式时是否需要apps密码,默认为需要密码。根据具体需要看是否设置。FORM个性化触发器事件有五

3、个FORM自带的触发器动作:WHEN-NEW-FORM-INSTANCE、WHEN-NEW-BLOCK-INSTANCE、WHEN-NEW-RECORD-INSTANCE、WHEN-NEW-ITEM-INSTANCE、WHEN-VALIDATE-RECORD以及MENU、SPECIAL(点击自定义的菜单动作,最后的例子中我们可以看到)。通过这些触发器事件,我们可以实现改变ITEMSBLOCKSCANVASESWINDOWSREGIONS等的属性及值、执行FORM的内置函数、显示错误警告MESSAGE信息、显示DEBUG信息、自定义一个菜单项来执行应用中的某功能、创建一个全局变量来传递信息等。F

4、ORM个性化操作起来比较简单,ORACLE有一个专门的文档对其进行介绍的,详见METALINK Note:.1。这里简单介绍一下在实际项目中的几个应用。安装环境硬件平台:IBM操作系统及版本:Oracle RDBMS 版本: 9.2.0.6.0Oracle EBS 版本:11.5.10.2安装前准备以上操作,如有疑问,请向系统管理员寻求帮助。阅读说明及约定q 本文中蓝色字体为需要注意的内容。q 本文中红色字体为特别重要的内容。q 本文中黑色粗体10号字为输入的命令。(2-Dec-96) (2-Dec-96)(9-Dec-96)FORM个性化以下介绍的几个FORM个性化应用大部分是基于上海协亨信

5、息科技有限公司ERP项目的实际开发。协亨项目ORACLE销售订单录入控制项目背景及业务需求:协亨手机连锁销售集团是一家主要经营手机销售的连锁零售企业。其在全国有几百家门店,当门店的POS系统上线后,日常销售都是在POS系统中完成的,通过接口传给ORACLE自动生成销售订单,在ORACLE中我们禁止手工录入这个门店的销售订单。具体的控制方法是: 把订单头的销售员设置成必录字段。在离开该字段的时候添加校验: 根据销售员查找门店信息,若找不到,表示这是跟门店无关的销售,不控制。 若找到,则判断该门店是否 已经POS上线,如果已经是POS上线的并且POS控制类型=现实门店,那么就不能通过验证。否则可以

6、通过。销售超级用户职责/订单;退货/销售订单/帮助/诊断/自定义代码/个性化在Oracle 的订单录入界面,禁止录入这个门店的销售订单。在销售订单FORM下进入FORM个性化:FORM个性化界面条件伪代码:销售员id在客户化表XH_SHOP_INFO中有对应的有效门店,且POS上线日期非空,且门店类型为现实门店。序号说明触发器事件触发器对象条件10FORBID SO IMP0RTWHEN-VALIDATE-RECORDORDER:ORDER.SALESREP_ID IN (SELECT SALESREP_ID FROM XH_SHOP_INFO WHERE NVL(END_DATE_ACTIV

7、E,SYSDATE + 1) TRUNC(SYSDATE) AND (SELECT POS_ONLINE_DATE FROM XH_SHOP_INFO WHERE NVL(END_DATE_ACTIVE,SYSDATE + 1) TRUNC(SYSDATE)AND SALESREP_ID = :ORDER.SALESREP_ID) IS NOT NULLAND (SELECT POS_CONTROL_TYPE FROM XH_SHOP_INFO WHERE NVL(END_DATE_ACTIVE,SYSDATE + 1) TRUNC(SYSDATE)AND SALESREP_ID = :ORD

8、ER.SALESREP_ID) = REAL活动符合条件的记录在保存时报以下错误:该销售员对应的门店POS已上线,不允许在ORACLE录入订单序号类型消息类型消息文本10消息错误该销售员对应的门店POS已上线,不允许在ORACLE录入订单同时对订单行也要进行限制序号说明触发器事件触发器对象条件10FORBID SO IMP0RT LINEWHEN-VALIDATE-RECORDLINE:ORDER.SALESREP_ID IN (SELECT SALESREP_ID FROM XH_SHOP_INFO WHERE NVL(END_DATE_ACTIVE,SYSDATE + 1) TRUNC(S

9、YSDATE) AND (SELECT POS_ONLINE_DATE FROM XH_SHOP_INFO WHERE NVL(END_DATE_ACTIVE,SYSDATE + 1) TRUNC(SYSDATE)AND SALESREP_ID = :ORDER.SALESREP_ID) IS NOT NULLAND (SELECT POS_CONTROL_TYPE FROM XH_SHOP_INFO WHERE NVL(END_DATE_ACTIVE,SYSDATE + 1) TRUNC(SYSDATE)AND SALESREP_ID = :ORDER.SALESREP_ID) = REAL

10、活动序号类型消息类型消息文本10消息错误该销售员对应的门店POS已上线,不允许在ORACLE录入订单看实际中的应用情况:录入销售订单,销售人员为 曹杨二店,该店POS_ONLINE_DATE不为空,且POS_CONTROL_TYPE= REAL,即POS上线日期非空,且门店类型为现实门店。新增一条规则,设置销售人员为必需字段序号说明触发器事件触发器对象条件10设置销售人员为必输字段WHEN-NEW-RECORD-INSTANCEORDER活动序号类型对象类型目标对象特性名称值10特性项目ORDER.SALESREP_MIRREQUIRED (APPLICATIONS COVER)真看实际中的应

11、用情况:当我们新建一个销售订单,可以看到,销售人员变成了必输字段。协亨项目ORACLE子库存转移控制业务需求:协亨门店的POS上线前,直接在ORACLE中做子库存转移。POS系统上线后,所有的调拨业务都是在POS中进行的,通过接口传给ORACLE自动做子库存转移,在ORACLE中禁止手工录入该门店对应的子库转移。库存超级用户职责/事务处理/子库存转移/事务处理行/帮助/诊断/自定义代码/个性化在子库存转移界面,在子库存及目标子库存 两个字段上,在离开该字段的时候添加校验:根据子库存的门弹性域查找门店信息,判断该门店是否 已经POS上线,如果已经是POS上线的并且POS控制类型=现实门店,那么就

12、不能通过验证。否则可以通过。即如果在对应门店已上线的子库做子库存转移,在保存时会出现以下错误:序号说明触发器事件触发器对象条件10FORBID SUBINV TRANSFERWHEN-VALIDATE-RECORDMTL_TRX_LINE(SELECT POS_ONLINE_DATE FROM XH_SHOP_INFO XSWHERE NVL(END_DATE_ACTIVE,SYSDATE + 1) TRUNC(SYSDATE)AND XS.SHOP_NUMBER = (SELECT MSI.ATTRIBUTE1 FROM MTL_SECONDARY_INVENTORIES MSIWHERE

13、NVL(MSI.DISABLE_DATE,SYSDATE) TRUNC(SYSDATE)AND MSI.SECONDARY_INVENTORY_NAME = :MTL_TRX_LINE.SUBINVENTORY_CODE) IS NOT NULLAND (SELECT POS_CONTROL_TYPE FROM XH_SHOP_INFO XSWHERE NVL(END_DATE_ACTIVE,SYSDATE + 1) TRUNC(SYSDATE)AND XS.SHOP_NUMBER = (SELECT MSI.ATTRIBUTE1 FROM MTL_SECONDARY_INVENTORIES

14、MSIWHERE NVL(MSI.DISABLE_DATE,SYSDATE) TRUNC(SYSDATE)AND MSI.SECONDARY_INVENTORY_NAME = :MTL_TRX_LINE.SUBINVENTORY_CODE) = REAL活动序号类型消息类型消息文本10消息错误子库存对应的门店POS已上线,不允许在ORACLE中进行子库存转移序号说明触发器事件触发器对象条件10FORBID SUBINV TRANSFER2WHEN-VALIDATE-RECORDMTL_TRX_LINE(SELECT POS_ONLINE_DATE FROM XH_SHOP_INFO XSWHE

15、RE NVL(END_DATE_ACTIVE,SYSDATE + 1) TRUNC(SYSDATE)AND XS.SHOP_NUMBER = (SELECT MSI.ATTRIBUTE1 FROM MTL_SECONDARY_INVENTORIES MSIWHERE NVL(MSI.DISABLE_DATE,SYSDATE) TRUNC(SYSDATE)AND MSI.SECONDARY_INVENTORY_NAME = :MTL_TRX_LINE.TRANSFER_SUBINVENTORY) IS NOT NULLAND (SELECT POS_CONTROL_TYPE FROM XH_SH

16、OP_INFO XSWHERE NVL(END_DATE_ACTIVE,SYSDATE + 1) TRUNC(SYSDATE)AND XS.SHOP_NUMBER = (SELECT MSI.ATTRIBUTE1 FROM MTL_SECONDARY_INVENTORIES MSIWHERE NVL(MSI.DISABLE_DATE,SYSDATE) TRUNC(SYSDATE)AND MSI.SECONDARY_INVENTORY_NAME = :MTL_TRX_LINE.TRANSFER_SUBINVENTORY) = REAL序号类型消息类型消息文本10消息错误目标子库存对应的门店POS

17、已上线,不允许在ORACLE中进行子库存转移协亨项目ORACLE杂项事务处理控制业务需求:协亨门店的POS上线前,可以直接在ORACLE中做杂项事务处理。POS系统上线后,门店的盘点是在POS中做的,通过接口传给ORACLE自动做杂项事务处理。此时在ORACLE中禁止手工录入该门店对应的杂项事务处理。库存超级用户职责/事务处理/杂项事务处理/事务处理行/帮助/诊断/自定义代码/个性化在杂项库存事务处理界面,在子库存字段上,在离开该字段的时候添加校验:根据子库存的门弹性域查找门店信息,判断该门店是否 已经POS上线,如果已经是POS上线的并且POS控制类型=现实门店,那么就不能通过验证。否则可以

18、通过。即如果在对应门店已上线的子库做子库存转移,在保存时会出现以下错误:序号说明触发器事件触发器对象条件10FORBID MISCELL TRANSFERWHEN-VALIDATE-RECORDMTL_TRX_LINE(SELECT POS_ONLINE_DATE FROM XH_SHOP_INFO XSWHERE NVL(END_DATE_ACTIVE,SYSDATE + 1) TRUNC(SYSDATE)AND XS.SHOP_NUMBER = (SELECT MSI.ATTRIBUTE1 FROM MTL_SECONDARY_INVENTORIES MSIWHERE NVL(MSI.DI

19、SABLE_DATE,SYSDATE) TRUNC(SYSDATE)AND MSI.SECONDARY_INVENTORY_NAME = :MTL_TRX_LINE.SUBINVENTORY_CODE) IS NOT NULLAND (SELECT POS_CONTROL_TYPE FROM XH_SHOP_INFO XSWHERE NVL(END_DATE_ACTIVE,SYSDATE + 1) TRUNC(SYSDATE)AND XS.SHOP_NUMBER = (SELECT MSI.ATTRIBUTE1 FROM MTL_SECONDARY_INVENTORIES MSIWHERE N

20、VL(MSI.DISABLE_DATE,SYSDATE) TRUNC(SYSDATE)AND MSI.SECONDARY_INVENTORY_NAME = :MTL_TRX_LINE.SUBINVENTORY_CODE) = REAL活动序号类型消息类型消息文本10消息错误子库存对应的门店POS已上线,不允许在ORACLE中进行杂项事务处理添加菜单项调用系统功能同时对订单行也要进行限制以下是个性化的执行效果。在tools菜单里增加了一个菜单项Executable,点击可以调出该并发程序所对应的可执行界面。调出结果如下:整体逻辑:打开并发程序定义界面,在Tools菜单栏下新加一个菜单项。点击该菜

21、单时,如果并发程序名为空,则报一个错误。如果可执行名非空,增加一个全局变量 ,储存可执行的名称。点击新增的菜单项,可以打开可执行FORM。当打开可执行FORM时,对上述定义的全局变量进行初始化。进入查询模式。将全局变量的值赋予可执行名称项值。进行查询。清除全局变量的值。以下是step_by_step编辑详情1、打开并发程序定义界面,再打开FORM个性化界面,定义一个名为Executable的个性化规则,对应的触发器事件为WHEN-NEW-FORM-INSTANCE2、在Actions里,增加一个Menu类型,其中Menu Entry选择SPECIAL1(SPECIAL1至15是在Tools菜单

22、下,16至30是在Reports菜单下,31至45在Actions菜单下),Menu Label输入Executable(即菜单项标签),Icon Name为CONC_PROG即并发程序FORM对应的BLOCK3、保存,打开可执行界面,可以看到新增的菜单项,点击,没有事件发生。4、在可执行界面下,打开FORM个性化界面,我们增加一个事件为,如果可执行的名称为空,则报一个错误Please Enter Executable Name!新增一个个性化规则Check Executable Name,Trigger Event为SPECIAL1,条件为可执行名称为空。即:CONC_PROG.EXECUT

23、ABLE_NAME IS NULL5、在Actions下,设置一个Meassage 类型,Message Type为Error,Message Text为Please Enter Executable Name!6、保存。打开并发程序定义界面,Executable Name项为空,直接点击Executable。7、出现错误信息:Please Enter Executable Name!8、在并发定义界面下,打开FORM个性化界面。我们先定义一个全局变量,储存可执行的名称,在后面中要用到。新增一个名为Excutable Entered的个性化规则,Trigger Event为SPECIAL1,条

24、件为:CONC_PROG.EXECUTABLE_NAME is not null9、在Actions里加入一个Property类型,Object Type为Global Variable即全局变量,变量名为XX_XH_EXECUTABLE_NAME,为了便于区分,我们FORM个性化的全局变量全部以XX_开头。Property Name为VALUE,Value为=:CONC_PROG.EXECUTABLE_NAME(前面有=号,如果不加等号的话,会被赋值为 :CONC_PROG.EXECUTABLE_NAME)。10、再增加一个Builtin类型,Builtin Type为Lunch a Fun

25、ction即调用一个功能,Function Code为FND_FNDCPMFE即可执行对应的功能,Function Name会被自动调出。11、保存。打开并发程序界面,查找一个并发程序,点击ToolsExecutable,可以看到可执行定义界面被调出,但是没有数据。12、关闭并发请求界面,打开可执行界面,再打开FORM个性化界面。新增加一个FORM个性化规则INIT XX_XH_EXECUTABLE_NAME,触发器事件为WHEN-NEW-FORM-INSTANCE。我们做这个个性化规则的目的是初始化全局变量INIT XX_XH_EXECUTABLE_NAME。13、在Actions下,增加一

26、个Property 类型,Object Type 为Global Variable,变量名为XX_XH_EXECUTABLE_NAME。Property Name为INITIAL VALUE(注意与VALUE的区别,VALUE是直接赋值,而INITIAL VALUE为如果该变量为null或未被创建,会被赋初值,如果有值的话,则不会覆盖),Value为=null。这个个性化的目的是为了直接打开该FORM时,后面定义的用到此全局变量的个性化规则有效。14、新增一条名为Enter Query的个性化规则。触发器的事件为WHEN-NEW-FORM-INSTANCE,条件为:global.XX_XH_EXECUTABLE_NAME is not null 。即上面定义的那个全局变量的值不为空时才会执行。15、在Actions,设置一个Builtin类型,Builtin Type为DO_KEY,就像

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论