oracle erp 如何在Form中启用弹性域

合集下载

Oracle弹性域

Oracle弹性域
5
弹性域的组成
5.1ห้องสมุดไป่ตู้
段是弹性域内的单个子字段。可以在自定义弹性域时定义单个段的外观和含义。段在数据库中以单个表列表示。
对于关键弹性域来说,段通常说明了由弹性域标识的实体的特性。对于描述弹性域弹出式窗口中的字段也应视为段,即使它们无需像关键弹性域内的段那样要组成有意义的代码,但是,它们确实说明了在使用的表单的其它部分所标识的实体特性。
5)在无需编程的情况下自定义数据字段,以满足业务需要。
6)查询智能字段以获得特定信息。
弹性域是提供多种应用功能的一种机制。关键弹性域为产品应用提供了一种灵活的方式,使其可以表示如会计代码、物资编码、职务说明等对象。例如,会计弹性域就是使用关键弹性域来表示会计代码的一项功能。描述弹性域同样也提供了一种灵活的方式,即在表单内提供可自定义的“扩展空间”;它还提供了另外一种方式,即应用产品仅在需要时才显示上下文相关字段。这两种弹性域都能够在不编程的情况下自定义应用的功能。
1
弹性域是ORACLE ERP平台的一项技术。弹性域是指由子字段或段组成的。字段每个段都有一个名称和一个有效值集。弹性域有两种类型:关键弹性域(Key Flexfield)和描述弹性域(Descriptive Flexfield)
关键弹性域和描述弹性域的表现方式
2
关键弹性域是用于合并具体业务中有意义的代码段,并确定每段的含义、每段可包含的值以及段值的含义。在使用过程中,在使用过程中可以根据具体应用定义一些规则,以指定哪些段值可以组成有效的完整代码。此外,还可以定义段与段之间的关系,而不必在实施项目时根据企业需要来更改代码或进行二次开发。
可以将值集视为值的“容器”,选择可放入值集中的值的类型:值的长度、格式等等。
段通常会得到验证,而且指定弹性域中的每个段通常会使用不同的值集。可以将单个值集分配给多个段,甚至可以在不同的弹性域之间共用一个值集。对于大部分值集来说,在弹性域段中输入值时,只能输入分配给段的值集中已存在的值。

Oracle ERP FNDLOAD使用说明

Oracle ERP FNDLOAD使用说明

FNDLOAD命令可以用来移植系统中的各种东西,例如并发程序、请求组、Lookup、配置文件、弹性域、附件、消息和安全信息等,常用的用法如下:1、并发程序的Download和Upload:例子:FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afcpprog.lct CUX_HR138.ldt PROGRAM CONCURRENT_PROGRAM_NAME="CUX_HR138"FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afcpprog.lct CUX_HR138.ldt说明:其中CUX_HR138.ldt 为你想建立的ldt文件的名字,可以自己任意指定,"CUX_HR138"为想要Download的并发程序的简称;使用时在已经创建了该并发程序的环境下执行第一句命令,查看日志是否成功,成功地话将生成的ldt文件上传到需要创建该并发程序的环境下,并在相同的目录下执行第二条语句,查看日志是否创建成功。

2、Lookup的Download和Upload:例子:FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/aflvmlu.lct fndload_test.ldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME="PER"LOOKUP_TYPE="FNDLOAD TEST"FNDLOAD apps/apps O Y UPLOAD $FND_TOP/patch/115/import/aflvmlu.lct fndload_test.ldt说明:其中fndload_test.ldt为你想建立的ldt文件的名字,可以自己任意指定,"PER"为Lookup所属的应用缩写,"FNDLOAD TEST" 为Lookup Type;使用方法同1中所述。

Oracle erp 开发教程Define Flexfields 培训

Oracle erp 开发教程Define Flexfields 培训

介绍Flexfields
定义Key Flexfields (键弹性域)
在实施之前必须定义规划好键弹性域的结 构,段的多少与长度,各段的验证规则。
在使用弹性域之前,您必须冻结并编译弹 性域定义。如果有一个以上的弹性域结构, 则您必须分别冻结、保存和编译每个结构。 如果可以验证现有数据,请不要修改已冻 结的弹性域定义。一旦具有弹性域数据,对 弹性域结构作出更改可能导致严重的数据不 一致 。
定义值和值集

无 在允许用户输入任意值时,只要该值符合值集格式化规 则,您就可以使用“无”类型值集。也就是说,此值不能超 过您定义值集的最大长度,以及其必须符合该值集的任意格 式要求。例如,如果值集禁止字母字符,则用户无法输入值 ABC,但是可以输入值 456(用于最大长度为三的集),否 则,将不会验证使用此值集的段值,并且也不会添加段值说 明。 由于不会验证“无”值集,因此使用此值集的段不提 供用户的值列表。使用此值集的段(即,非验证段 )不能 使用弹性域安从属 从属值集类似于独立值集,只是列表中的可用 值和给定值含义依附于在弹性域结构的前段中选定 的独立值。您可以将从属值集视为一些值集的集合, 而相应独立值集中每个独立值只有一个值集。 在 定义依附独立值集的从属值集之前,您必须定义独 立值集。您可以在“段值”窗口中定义从属值,并 将值存储在 Oracle 应用对象程序库表中
定义值和值集

特殊和对值集 特殊和对值集提供允许“在弹性域之内的弹性 域”机构。这些值集主要用于“标准请求提交”参 数。对于正常的弹性域段,通常不使用这些值集。
定义值和值集
定义值和值集
定义值和值集
定义值和值集
定义值和值集
谢谢您!
定义Key Flexfields (键弹性域)

EBS应用开发规则

EBS应用开发规则

ORACLE ERP应用开发规则编码标准本节讲述在开发中应遵循的编码标准。

l CODING原则l标准开发环境l命名标准CODING原则进行开发,首先必须遵循以下原则:l代码要保持良好的可读性和可维护性l代码要保证在繁忙网络条件下仍然拥有良好的性能l代码要有良好的可重用性l代码要有良好的跨操作平台能力l尽量使用FORM、PL/SQL等工具完成所有的编码代码要保持良好的可读性和可维护性在FORM的开发过程中,对TABLE、ITEM等对象尽量地使用HANDLE进行操作。

使用HANDLER可以避免代码分散在大大小小的TRIGGER中,对代码进行集中管理。

代码要保证在繁忙网络条件下仍然拥有良好的性能在网络条件下要保证程序的良好性能,其关键在于减少网络流量。

–代码尽可能地在服务器端完成–尽可能地在本地取得所需变量代码要有良好的可重用性–将可重用的代码以库的形式保存在数据库中–FORM中,可重用的代码应尽量写成单独的PROCEDURE代码要有良好的跨操作平台能力–避免直接对操作平台中的对象进行操作–使用APP_STANDARD.PLATFORM函数包校验是否存在依赖操作系统平台的代码标准开发环境必要的环境设置以下设置是开发的必须要求,请务必检查。

NLS_LANG该环境变量在操作系统中设置,建议其值为:AMERICAN_AMERICA.ZHS16CGB231280FORMS45_PATH该环境变量在操作系统中设置,用于指定引用对象的存放路径,请确认其值包含:<$AU_TOP>/forms/US<$AU_TOP>/resource共享对象共享对象有:APPSTAND Form其中提供了属性类,标准工具条,日历,查询窗口等TEMPLATE FormFNDMENU标准库FNDSQF提供对消息字典、弹性域、预置文件等进行控制的函数APPCORE提供对工具条、菜单等进行控制的函数APPDAYPK提供对日历进行控制的函数APPFLDR提供对文件夹进行控制的函数命名标准良好的命名方法能够使得程序保持良好的易读性,便于后期的维护工作。

在ORACLE ERP FORM提交请求的方法

在ORACLE ERP FORM提交请求的方法

Form. 中调用并发请求生成报表并输出PDF的方法。

要完成这个目的,首先要在ebs中注册报表,并注册模板。

然后再方法里先调用FND_REQUEST.ADD_LAYOUT添加模板,然后调用FND_REQUEST.SUBMIT_REQUEST提交并发请求,再调用FND_CONCURRENT.WAIT_FOR_REQUEST等待请求完成并返回分析,状态和完成信息。

procedure print_report(order_number in NUMBER,date_from in date,date_to in date) is L_REQUEST_ID NUMBER;L_BL_RESULT BOOLEAN;v_layout BOOLEAN;X_PHASE VARCHAR2(100);X_STATUS VARCHAR2(100);X_DEV_PHASE VARCHAR2(100);X_DEV_STATUS VARCHAR2(100);X_MESSAGE VARCHAR2(100);BEGIN/*---- Name-- add_layout-- Purpose-- Called before submission to add layout options for request output.---- Arguments-- Template_APPL_Name - Template Application Short name.-- Template_code - Template code-- Template_Language - Template File language (iso value)-- Template_Territory - Template File Territory (iso value)-- Output Format - Output Format--添加输出模板,FND_REQUEST.add_layout (template_appl_name in varchar2,template_code in varchar2,template_language in varchar2,template_territory in varchar2,output_format in varchar2) return boolean*/v_layout:=FND_REQUEST.ADD_LAYOUT('PO','TRNORDER094',Null,Null,'PDF');/*---- Name-- submit_request-- Purpose-- Submits concurrent request to be processed by a concurrent manager---- Arguments-- application - Short name of application under which the program-- - is registered-- program - concurrent program name for which the request has-- - to be submitted-- description - Optional. Will be displayed along with user-- - concurrent program name-- start_time - Optional. Time at which the request has to start-- - running-- sub_request - Optional. Set to TRUE if the request is submitted-- - from another running request and has to be treated-- - as a sub request. Default is FALSE-- argument1..100 - Optional. Arguments for the concurrent request-- 提交并发请求--FND_REQUEST.SUBMIT_REQUEST(application IN varchar2 default NULL, program IN varchar2 default NULL,description IN varchar2 default NULL,start_time IN varchar2 default NULL,sub_request IN boolean default FALSEargument1,argument2, ..., argument99,argument100) return number;*/L_REQUEST_ID := FND_REQUEST.SUBMIT_REQUEST('PO','TRNORDER094','','',FALSE,order_number,date_from,date_to,CHR(0),'','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','');COMMIT;IF L_REQUEST_ID IS NULL OR L_REQUEST_ID = 0 THENRETURN;END IF;/*---- Name-- WAIT_FOR_REQUEST-- Purpose-- Waits for the request completion, returns phase/status and-- completion text to the caller. Calls sleep between db checks.-- Arguments (input)-- request_id - Request ID to wait on-- interval - time b/w checks. Number of seconds to sleep-- - (default 60 seconds)-- max_wait - Max amount of time to wait (in seconds)-- - for request's completion-- Arguments (output)-- User version of phase and status-- Developer version of phase and status-- Completion text if any-- phase - Request phase ( from meaning in fnd_lookups )-- status - Request status( for display purposes )-- dev_phase - Request phase as a constant string so that it-- - can be used for comparisons )-- dev_status - Request status as a constatnt string-- message - Completion message if request has completed----等待并发请求完成,并返回分析/状态和完成信息,FND_CONCURRENT.WAIT_FOR_REQUEST(request_id IN number default NULL,interval IN number default 60,max_wait IN number default 0,phase OUT varchar2,status OUT varchar2,dev_phase OUT varchar2,dev_status OUT varchar2,message OUT varchar2) return boolean;*/L_BL_RESULT := FND_CONCURRENT.WAIT_FOR_REQUEST(L_REQUEST_ID,1,0,X_PHASE,X_STATUS,X_DEV_PHASE,X_DEV_STATUS,X_MESSAGE);IF X_DEV_PHASE = 'COMPLETE' AND X_DEV_STATUS = 'NORMAL' THENeditor_pkg.report(L_REQUEST_ID,'Y'); --使输出的报表pdf文件在浏览器中显示。

Oracle ERP FORM开发学习操作手册

Oracle ERP FORM开发学习操作手册

安装1.1JDeveloper 10g的安装1.1.1 解压JDeveloper 10g有两个光盘如下图示:图1分别解压后成B24499-01和B24500-01图21.1.2开始安装B24499-01为第一个光盘容应首先安装,B24500-01为第二个光盘内容在第一个光盘安装完后再装。

双击B24499-01中的setup.exe图31.1.3设置安装路径图41.1.4选择安装类型图5图61.1.5邮箱为空图71.1.6安装过程中切换第二张光盘图81.1.7选择目录图91.1.8安装完成后开始菜单图101.1.9服务配置图11图121.1.10修改注册表<1>、NLS_LANGHKEY_LOCAL_MACHINE\SOFTWARE\ORACLE搜索NLS_LANG,出现NLS_LANG=ZHS16GBK或者NLS_LANG=ZHS16CGB231280的地方请全部修改成NLS_LANG=AMERICAN_AMERICA.UTF8<2>、FORMS60_PATH变量在后面加上TEMPLATE/APSTAND.FMB所在的路径(F:\WORK\FORM)和PLL文件所在的路径(F:\WORK\PLL)。

1.2WORK FLOW的安装1.2.1解压图131.2.2安装进入\workflow_2.6.3_r12\wfclient2635双击setup.exe图141.2.3选择安装目录图151.2.4开始安装图16图17图181.2.5安装完后查看开始菜单图191.2.6服务配置图20图211.3XML_DESKTOP的安装1.3.1JDK和JRE的安装运行jre-6u21-windows-i586.exe 和 jdk-6u21-windows-i586.exe 可以完成JRE和JDK的安装,在安装JDK的同时,会装JRE也装上图221.3.2环境变量的配置图231.3.3开始安装运行 XML DESKTOP\SETUP.EXE进行安装。

oracleebsform触发器学习大全

oracleebsform触发器学习大全

Oracle EBS Form Trig‎g er学习大全打开,关闭,创建,更新记‎录的trigger次序PRE-……在‎进入一个form,或是导航到一个新的bl‎o ck时触发,PRE-……系列的触发器一‎般是在WHEN-NEW-……-INSTA‎N CE系列之前,它们如果失败了的话,就不‎能成功导航到下一个对象了,只能留在当前的‎位置。

在这些触发器里可以设置一些判断条件‎来限制是否可以导航到新的位置。

WHEN‎-NEW-……-INSTANCE这一类‎的trigger都是当鼠标光标每次落到一‎个新的block,record,item‎上时触发的,而且就算失败了,也不会发生什‎么错误。

但是when-new-form-‎i nstance,只有当form 启动时,‎光标导航到第一个导航块的第一个导航ite‎m时触发,如果一个应用有多个form,当‎光标在各个form之间转换时,并不会触发‎它。

POST-TEXT-ITEM和W‎H EN-VALIDATE-ITEMPo‎s t-text-item的触发点:当输入‎的光标从一个Text-Item 转到其它‎i tem,可以用它来改变item的值,而‎w hen-Validate-item虽然‎也是在离开前触发,但是作用不同,Post‎-Text-Item本身是没有验证的,w‎h en-Validate-item可以用‎来补充一些验证(除了form本身的验证)‎,但是当form验证成功以后,会把ite‎m标志为…valid‟,而不会再去验证了‎,如果这时我们再去修改它的值,那么就有可‎能会把无效的值导入到数据库。

在创建和更新‎一条记录时,先触发when-Valida‎t e-item,再触发Post-Text‎-Item,然后是when-Valida‎t e-record。

POST-……系列‎的都是离开当前的block,record‎,item时触发的WHEN-WINDO‎W-ACTIVATED做原材料属性修改‎平台时,第一次使用这个触发器,用来从另一‎个window返回时,刷新当前windo‎w,代码写在了这个触发器里。

Oracle_Form_描述性弹性域

Oracle_Form_描述性弹性域

在Form中使用描述性弹性域-- jun 2011-03弹性域包括键弹性域和描述性弹性域,其开发方法和用途均不一样,在此主要介绍描述性弹性域在Form中的开发方法。

描述性弹性域的开发步骤主要包括:1、创建表,表中包括弹性域结构列和弹性域列2、创建视图,视图中包括弹性域相关列(非必需)3、使用AD_DD工具包注册表和表列(注册表从而得到了表对应的表应用)4、在Oracle EBS系统中注册描述性弹性域5、启用描述性弹性域6、按照一般Form开发的步骤,创建相关对象1)、在块中创建一个DF非数据库项,并设置属性2)、给DF项和数据块添加必要的触发器和标准代码3)、在PRE-FORM触发器中初始化第四步中注册的弹性域7、登录Oracle EBS系统验证弹性域一、创建表创建的表中必须包括描述性弹性域列:ATTRIBUTE_CATEGORY结构列ATTRIBUTE1…N弹性域列的数据库段可以参考附件脚本注意:在创建标的时候一定要创建同义词,使得所有用户都有访问权,否则无法在EBS中注册。

二、创建视图略三、注册表和列使用AD_DD包来注册表和列注册表AD_DD.REGISTER_TABLE(p_appl_short_name in varchar2, --应用名简称/所有者p_tab_name in varchar2, --表名p_tab_type in varchar2, --T自动扩展/S非自动扩展/Fp_next_extent in number, --下一区p_pct_free in number,p_pct_used in number)注册列AD_DD.REGISTER_COLUMN(p_appl_short_name in varchar2,p_tab_name in varchar2, --应用名简称/所有者p_col_name in varchar2, --列名p_col_seq in number, --序号,唯一p_col_type in varchar2, --类型p_nullable in varchar2, --是否为空p_translate in varchar2, --是否可以转换p_precision in number default null,p_scale in number default null)四、在EBS中注册描述性弹性域路径Application Developer → Flexfield → Descriptive → RegisterApplication: 弹性域注册的应用名称Title: 弹性域的标题,在今后的应用中,此说描述性弹性域将会在窗口标题上显示在此定义的标题内容Description: 说明Table Application: 在(第三步)注册表和列时所指定的应用名称Table Name: 注册时的表名称Structure Column: 结构列,一般为ATTRIBUTE_CATEGORY,必须是存在于注册过的列。

OracleERP界面开发(form)-图文

OracleERP界面开发(form)-图文

OracleERP界面开发(form)-图文安裝acleForm6i及補丁以後,你自己開發的Form與OracleEBIS其它的Form不一樣,如:1.沒有工具欄;2.不能用通用的快捷鍵Fll、Ctrl+Fll和F6等等這種毛病在第一次開發人員的通病。

後來才知道,沒有做好Form前期準備工作,不多說了,開始做事吧第一:FTP到OracleEBIS服務器的devappl/au/11.5.0(也就是$AU_TOP)目錄下,下載二個文件夾:Form和Reource,將它們保存在目錄D:/0ralce/0racleForm目錄。

第二:修改注冊表2.1開始-->單擊”運行“-->輸入regedit--回車2.2找到HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE數值名稱:NLS_LANG,修改數值數據為AMERICAN_AMERICA.UTF82.3找到HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE數值名稱:FORMS60_PATH,修改數值數據為D:/Oracle/OracleForm/reource;D:/Oracle/OracleForm/FORMS 呵呵。

準備工作做完成。

開發OracleEBISForm需要套用標準模板TEMPLATE.fmb即可,若自己開發類似的功能的Form,那真是NB人也,此文件在D:/Oracle/OracleForm/Form目錄中。

了解一下Form中的常用的對像:l.DataBlock(數據塊):相當於數據源,指定數據來源於哪個表、哪個視圖或過程等等。

2.1tem(項目)是Form最小單元,也是DataBlock最小單元,相當也表或視圖也過程的遊標某一段。

3.Canvae(畫布)用於布局數據垮的界面。

畫布與數據塊沒有直接的對應關系,而是直接與Item對應,一個Canvae上的Item可以來源不同的DataBlock。

4.L0V(L0V):相當於下拉列表也列表5.Parameter(參數)相當於Form的全局變量,用於傳遞參數。

ORACLE ERP开发之OracleForms基础

ORACLE ERP开发之OracleForms基础

ORACLE ERP开发之OracleForms基础(一)—— Forms设置部分责任编辑:晓熊作者:IT168 JarWang2009-04-28【内容导航】∙第1页:Forms基本对象概念∙第2页:深入了解Forms的事务触发机制文本Tag:Oracle ERP【IT168 技术文档】ORACLEERP开发基础之前言/a2009/0427/274/000000274048.shtml Forms基本对象概念明白了上面的基本概念,就可以开工了。

设置ITEM为必填项Setup:Effect:此效果与是set_item_property('test.l_test',required,property_true)一样的。

设置ITEM的初始值为当前日期实现按“ENTER”自动跳至下一条记录设置BLOCK属性:导航器风格:改变记录。

使用堆叠画布Effect:1. 先将数据块、画布布局好(用向导的方式就可以了,具体操作就不用讲了吧)。

2. 在画布中创建一个堆叠画布。

3. 将项的画出属性更为堆叠画布(这一步最关键了)。

4.调整后得到下面这效果了。

深入了解Forms的事务触发机制编写一个健壮的FORMS应用程序,免不了要做各种数据的检验动作。

所以必须了解FORMS事务触发器的工作原理。

其他类型的触发器相对来说比较好理解,就不详说了。

① FORMS处理事务分成发送(POST)和提交(COMMIT)两个阶段。

这个跟JAVA 中的事务操作类似,也就是Statement和Commit两个阶段。

但FORMS一些规则比较死,也就是说规定好POST之前会触发PRE触发器之类等等。

②事务触发器分成三类,PRE-XXX、ON-XXX、POST-XXX,它们的执行顺序可以直接从其英文缩写得出。

例:执行INSERT操作,会按以下顺序进行。

1.1从数据项复制数据。

1.2触发PER-INSERT触发器。

1.3检查记录的惟一性。

ORACLEERP开发基础之EBS开发基础

ORACLEERP开发基础之EBS开发基础

ORACLEERP开发基础之EBS开发基础第一篇:ORACLE ERP开发基础之EBS开发基础ORACLE ERP开发基础之EBS开发基础Oracle ERPORACLEERP开发基础之前言ORACLE ERP开发之OracleForms基础(一)Forms设置部分ORACLEERP开发基础之OracleForms基础(二)FORMS代码部份ORACLE ERP开发基础之Oracle Report基础ORACLEERP开发基础之Oracle数据库基础开发工具安装Oracle EBS11i 开发工具是developer6i的东西,非常古老。

因为是转手过来的机器,开发工具都是安装好了,所以也没去在意这工具的安装。

今天系统重装了,才知道这工具安装起来也是特烦人的。

先安装FORMS6i与REPORT6i,安装完后一定要打补丁。

否则会出现一大堆莫名的错误。

接着安装discoverer。

安装discoverer时先将注册表备份出来,因为discoverer不能和Forms安装在同一目录。

然后再安装 discoverer的补丁,接着再将注册表恢复回来。

大致这样可以了。

注意顺序一定要不能错了,否则又会出现一堆无聊的错误。

唉!developer6i是98年的工具。

盼着EBS R12应该是用DEVELOPER10g吧。

EBS二次开发包注册2.1 从 Server 中下载 ERP Library(.pll), 存放于本机Server Path : /u01/au/11.5.0/resourceForm文件与Library文件要存放在固定目录例如: Form存放在 d:ErpFormFormLibrary 存放在d:ErpFormLibrary;2.2 在Regedit > HKEY_LOCAL_MACHINE > SOFTWARE > ORACLE > FORMS60_PATH加入client 端存放 Form 及 Library的路径(如图)例如:d:ErpFormLibrary;d:ErpFormForm(建议要加在最前面) 利用TEMPLATE.fmb 模板来开发FormOracle 已经为我们提供了一个Form 的开发模板,(/data/deve/devappl/au/11.5.0/forms/ZHS/TEMPLATE.fmb) 我们的开发实际要基于这个模板,这个模板里面已经存在了我们将会用到的Oracle 标准的对象,我们需要做的,就是这这个模板的基础上面,添加我们自己的对象。

Form说明性弹性域设置

Form说明性弹性域设置

Form说明性弹性域设置说明一些form上可以设置说明性弹性域,用于记录一些附加信息。

下面将描述如何激活此弹性域并为使用此弹性域。

以wip工单类型为例。

下图中红色框区域为弹性域1.如何找到此弹性域的信息这里要找到两个信息:a.首先要找到弹性域的名称,以便在设置说明性弹性域时对正确的弹性域进行设置。

b.其次要找到要根据何种条件显示弹性域。

比如:要求在不同的组织(ORGANIZATION_ID)下此弹性域显示不同的段和值。

此时就需要找到此form上对应的ORGANIZATION_ID的值。

点击帮助-诊断-检查输入口令apps在检查字段和变量值窗口,选择说明性弹性域块,此处可以找到和当前form相关的数据和信息。

找到WIP_ACCOUNTING_CLASSES的值,即表示此form下对应的弹性域的名称。

如下图所示:此form上只有一个弹性域,其名称为:工单类型(在制品管理系统)。

其次找到要参考的上下文字段。

找到块WIP_ACCOUNTING_CLASSES,字段ORGANIZATION_ID的值为103.这个字段就是我们需要参考的上下文字段和对应的值。

2.设置说明性弹性域根据标题查找弹性域,设定上下文字段的提示和参考字段。

上下文字段值为参考字段对应的取值,可对参考字段取的不同的值设置相应的段。

比如:在不同的组织(ORGANIZATION_ID)下此弹性域显示不同的段。

显示勾上时,表示弹开弹性域时显示上下文值,如不显示,则一定于参考字段同步。

与参考字段同步时,用户不能自己选择上下文值。

在对应的上下文字段值上设置段。

如下图:为段设置编号、名称和列等信息,对于定义了值集的,需要选择对应的值集。

定义好段摘要后,保存。

3.设置好后冻结弹性域定义并编译。

编译的请求成功运行完毕后,表示此弹性域已经设置成功。

4. 查看结果此时进入wip工单类型窗口,可以为设置好的弹性域赋值。

描述性弹性域

描述性弹性域

描述性弹性域目录1 文档概述 (3)2 定义描述性弹性域 (4)2.1在Oracle Applicatoin中注册数据表 (4)2.2注册描述性弹性域 (5)2.3注册描述性弹性域段 (5)3在FORM中使用描述性弹性域 (7)3.1定义隐藏域 (7)3.2定义显示域 (7)3.3定义弹性域 (7)3.4定义其他事件 (7)1 文档概述本文档主要描述了如何定义描述性弹性域,以及在form中使用弹性域。

2 定义描述性弹性域2.1在Oracle Applicatoin中注册数据表在定义描述性弹性域之前,需要先将包含弹性域的数据表(TABLE),注册到Oracle Application 中去。

方法是调用Table Registration API(程序包AD_DD)中的以下函数对Oracle Applicaton中数据表进行操作:建立数据表drop table chenmingcreate table cc_desflexfields_test (des_ID NUMBER(10) not null,des_Code VARCHAR2(20) not null,des_Name VARCHAR2(50) not null Unique,Attribute_category VARCHAR2(150),Attribute1 VARCHAR2(150),Attribute2 VARCHAR2(150),Attribute3 VARCHAR2(150),Attribute4 VARCHAR2(150),Attribute5 VARCHAR2(150),Last_update_date DATE,Last_updated_by NUMBER(15),Creation_date DATE,Created_by NUMBER(15),Last_update_login NUMBER(15),constraint des_PK primary key (des_ID));详细脚本请查看TableScript.sql注册数据表BEGINad_dd.register_table('CCMIS','cc_desflexfields_test','T',8,10,90);END;注册数据表列BEGINad_dd.register_column('CCMIS','cc_desflexfields_test','des_id',1,'NUMBER',10,'N','N');ad_dd.register_column('CCMIS','cc_desflexfields_test','des_Code',2,'VARCHAR2',20,'N','N'); ad_dd.register_column('CCMIS','cc_desflexfields_test','des_Name',3,'VARCHAR2',50,'N','N');ad_dd.register_column('CCMIS','cc_desflexfields_test','Attribute_category',4,'VARCHAR2',150,'N','N');ad_dd.register_column('CCMIS','cc_desflexfields_test','Attribute1',5,'VARCHAR2',150,'N','N'); ad_dd.register_column('CCMIS','cc_desflexfields_test','Attribute2',6,'VARCHAR2',150,'N','N'); ad_dd.register_column('CCMIS','cc_desflexfields_test','Attribute3',7,'VARCHAR2',150,'N','N'); ad_dd.register_column('CCMIS','cc_desflexfields_test','Attribute4',8,'VARCHAR2',150,'N','N'); ad_dd.register_column('CCMIS','cc_desflexfields_test','Attribute5',9,'VARCHAR2',150,'N','N');END;详细脚本请查看Regist.sql2.2注册描述性弹性域界面如下:“表名”填写上面定义的表,例如:cc_desflexfields_test。

Oracle弹性域

Oracle弹性域
可以将值集视为值的“容器”,选择可放入值集中的值的类型:值的长度、格式等等。
段通常会得到验证,而且指定弹性域中的每个段通常会使用不同的值集。可以将单个值集分配给多个段,甚至可以在不同的弹性域之间共用一个值集。对于大部分值集来说,在弹性域段中输入值时,只能输入分配给段的值集中已存在的值。
5.3
弹性域结构是段的一种特定配置。如果在弹性域中添加或删除段,或者将其中的段重新排序,就会得到一个不同的结构。
例如,多数企业使用“代码”来识别总帐帐户、物资编码以及其它业务实体。这些“代码”由有意义的段(智能关键字)组成。代码的每个段都可以表示实体的一个特性。例如,应用企业可能使用物资编码 PAD-NR-YEL-8 1/2"x14" 来表示一个大小为 81/2"x14" 的窄方格黄色记事本,而另一个企业则可能使用部件号 "PD-8x14-Y-NR" 来识别同样的记事本,这两个物资号均为代码,代码所包含的段说明了物资的特性。虽然这些代码表示相同的物资,但是每个代码都有不同的段结构,这些段结构只对使用这些代码的企业有意义。
5)在无需编程的情况下自定义数据字段,以满足业务需要。
6)查询智能字段以获得特定信息。
弹性域是提供多种应用功能的一种机制。关键弹性域为产品应用提供了一种灵活的方式,使其可以表示如会计代码、物资编码、职务说明等对象。例如,会计弹性域就是使用关键弹性域来表示会计代码的一项功能。描述弹性域同样也提供了一种灵活的方式,即在表单内提供可自定义的“扩展空间”;它还提供了另外一种方式,即应用产品仅在需要时才显示上下文相关字段。这两种弹性域都能够在不编程的情况下自定义应用的功能。
增加的表单包含可以自定义的描述弹性域,用于获取只与企业需要有关的资产信息,而不是尝试包含有关资产信息的所有可能字段。弹性域的结构取决于“资产类别”字段的值,并且仅显示那些适用于特定资产类型的字段(段)。例如,如果资产类别为“桌子、木材”,则描述弹性域会提示样式、大小和木材类型;如果资产类别为“计算机、硬件”,则弹性域会提示CPU、芯片和内存大小。甚至可以在以后获得新的资产类别时,将其添加至描述弹性域。

[系统基础]Oracle EBS 查找说明性弹性域Title的方法(1)

[系统基础]Oracle EBS 查找说明性弹性域Title的方法(1)

[系统基础]Oracle EBS 查找说明性弹性域Title的方法日常我们维护说明性弹性域时都比较无奈,就是不知道弹性域的Title是什么,Oracle说明性弹性域有三千多个,从下拉列表一个一个找,犹如大海捞针,这里介绍一些我常用的2种方法。

1.在Form中已经起用了说明性弹性域的表,可以得到弹性域对话框的Title例如:我们查看日记帐头的弹性域Title路径:GL/Journals/…/点说明性弹性域栏位我们可以看到该说明性弹性域的Title是: Enter Journals: Journals,我们就可以去维护该弹性域了2.从来没有起用过说明性弹性域的表,这种情况我们点击说明性弹性域也跳不出弹性域对话框例如:我们查看搬运单(Mover Orders)行的弹性域路径:INV/Mover Orders/Mover Orders原理:其实只要我们客制化开发过Form,一些我们客制化的Table我们可能会在系统里注册弹性域,所以我们完全可以根据对应的Table去找弹性域的Title。

路径:定位到行/Help/Record History(在查询出记录的情况下,并且5个标准字段有值才能查找)我们可以找到对应的对象:MTL_TXN_REQUEST_LINES_V那么我们可以知道对应的Table一般就是:MTL_TXN_REQUEST_LINESPath:Application Developer/Flexfield/Descriptive/Register通过手电筒,输入Table Name进行查找点击Find按钮我们可以看到Title:Transfer Order Lines就是对应搬运单的行弹性域了.有的表对应定义有多个说明性弹性域,我们可以上下翻看看。

找到了对应的说明性弹性域,我们就可以启用该弹性域了3.查找网页界面的弹性域例如:我们查看Suppliers->Company Profile->Organization下的弹性域Action:点右下脚的About this Page我们可以看到对应的弹性域名为:JG_PO_VENDORS和PO_VENDORS通过Path:Application Developer/Flexfield/Descriptive/Register通过手电筒,输入Name进行查找从而得到弹性域的Title为Vendors。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本节介绍如何在Form中启用弹性域。

1注册表列
在应用弹性域之前必须先定义弹性域,定义之前必须先注册表列。

注册的方法在第2章已有详细的介绍,再此不再赘述。

2 定义Flexfield
进入应用开发员--弹性域--(说明性/键)--注册可新定义一个弹性域
如图10.1所示,只有在步骤1中已注册的Table,Colummn在定义弹性域时才能被选到。

对于同种类型的弹性域,每一个基表应只定义一个,但是一个弹性域可对应多个Structure,在FORM中启用弹性域时,可利用代码指定此弹性域使用的Structure,在FORM中启用弹性域时,可利用代码指定此弹性域使用的
Structure
3在Form中启用弹性域
(1) 添加对应的弹性域字段
一般在基表对应的BLOCK下面新建对应的弹性域字段,相关的外观设置可参考Oracle 标准系统。

Discriptive Flexfields Column
Property Value
property class TEXT_ITEM_DESC_FLEX
List of Values ENABLE_LIST_LAMP
Database Item No
Key Flexfield Column
Property Value
List of Values ENABLE_LIST_LAMP
Database Item No
(2) 添加必要的触发器
BLOCK LEVEL
Trigger Code
PRE-QUERY FND_FLEX.EVENT(‘PRE-QUERY’);
POST-QUERY FND_FLEX.EVENT(‘POST-QUERY’);
PRE-INSERT FND_FLEX.EV ENT(‘PRE-INSERT’);
PRE-UPDATE FND_FLEX.EVENT(‘PRE-UPDATE’);
WHEN-VALIDATE-RECORD FND_FLEX.EVENT(‘WHEN-VALIDATE-RECORD’);
WHEN-NEW-ITEMINSTANCE FND_FLEX.EVENT(‘WHEN-NEW-ITEMINSTANCE’);
WHEN-VALIDATE-ITEM FND_FLE X.EVENT(‘WHEN-VALIDATE-ITEM’);
ITEM LEVEL
Trigger Code
WHEN-NEW-ITEMINSTANCE FND_FLEX.EVENT(‘WHEN-NEW-ITEMINSTANCE’);
WHEN-VALIDATE-ITEM FND_FLEX.EVENT(‘WHEN-VALIDATE-ITEM’);
(3) 代码定义弹性域字段
在Form-level的when-new-form-instance Trigger中调用Flexfield的API函数初始化弹性域栏位。

FND_DESCR_FLEX.DEFINE for descriptive flexfields
FND_KEY_FLEX.DEFINE for key flexfields
FND_RANGE_FLEX.DEFINE for range flexfields
FND_DESCR_FLEX.DEFINE和FND_KEY_FLEX.DEFINE参数有所不同。

Eg:
定义总账会计科目关键性弹性域
FND_KEY_FLEX.DEFINE(
BLOCK=>’LINES’,
FIELD=>’ACCTG_FLEX_VALUES’,
ID=>’GL_ACCOUNT_CC_ID’,
APPL_SHORT_NAME=>’SQLGL’,
CODE=>’GL#’,
NUM=>’101’);
定义物料类别关键性弹性域
FND_KEY_FLEX.DEFINE(
BLOCK=>'CONTROL',
FIELD=>'SKU_CODE',
ID=>'SKU_ID',
DESCRIPTION=>'DESCRIPTION',
--COLUMN=>'description DESCRIPTION(15)', APPL_SHORT_NAME=>'INV',
CODE=>'MSTK',
DATA_SET=>'101',
REQUIRED=>'N',
--UPDATEABLE=>NULL,
VALIDATE=>'FULL',
--DINSERT=> 'Y',
USEDBFLDS=> 'N' );
定义订单描述性弹性域
FND_DESCR_FLEX.DEFINE(
BLOCK=>’ORDERS’,
FIELD=>’DESC_FLEX’,
APPL_SHORT_NAME=>’DEM’,
DESC_FLEX_NAME=>’DEM_ORDERS’);。

相关文档
最新文档