EBS中各种值集定义总结Word文档格式.docx
《EBS中各种值集定义总结Word文档格式.docx》由会员分享,可在线阅读,更多相关《EBS中各种值集定义总结Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
不分明细"
)结果如图1-4、1-5所示,每一个值都有可以由用户设置启用或失效,对于层次结构、限定词主要在会计的科目中及一些汇总中用到。
图1-4
图1-5
2.普通项中的从属值集的定义(一般用于报表参数)
在这里我们假如有个报表,需要2个参数(为了举例方便,取了这2个参数,可能不符合实际。
)
帐套名称(cux_sob_id)、供应商名称(cux_vendor_id)并且第二个参数依据第一个参数来弹出列表值
(即当选完帐套参数后,供应商值集列表中显示本帐套下的所有未失效的供应商)。
这里我们还是定义2个值集,定义过程和上面例子的一样,只是在这里我们选择验证类型为表。
此时点击右边的编辑按钮进行设置,这里主要是设置用户所需要的显示字段、传值字段、以及定义值集范围即(WHERE条件、排序等)。
第一个参数他不附属与其他值集所以很简单,选择完表名、所需字段后保存即可,如图1-6、1-7所示:
图1-6
图1-7
接下来我创建第二个值集(cux_vendor_id)因为他要附属于第一个参数(cux_sob_id)所以我们在"
出处/排序依据"
处进行添加条件:
set_of_books_id=nvl(:
$FLEX$.cux_sob_id,set_of_books_id)或者
$FLEX$.cux_sob_id:
NULL,set_of_books_id)
这样两个值集就关联起来了。
我们仔细看上面的2个语句,差别在于第二个语句多了一个(:
NULL),他的作用是当用户不选择他的父参数时,可以先选择他自己,反之,如果没有:
NULL则用户必须选择完其父参数(本例为帐套名称)才能选择自己(本例为供应商名称)。
设置结果如图1-8、1-9所示
图1-8
图1-9
运行报表时的效果如图1-10、1-11所示:
图1-10
图1-11
图中商业信息已屏蔽。
二.报表参数中调用键弹性域的定义
1.报表中调用间弹性域的定义
有时候我们的报表可能要调用系统的键弹性域作为值集给用户来选择(如会计科目、资产类别等),这里我们以我在项目上做的一个报表(UC_资产明细)为例,说明在报表参数中运用键弹性域。
我们知道一个键弹性域可以有多个结构,所以在调用一个键弹性域时除了要指明(APPL_SHORT_NAME、CODE)还要明确指出自己所需的那个结构,因此我们在定义并发程序时就应当额外创建一个隐藏的参数(P_CAT_SEG_NUM)来传递这个结构标识.而参数的值集我们在本例中为:
CUX_ASSET_CAT_STRUCT_NUM,他的具体值我们可以从资产的系统控制表(fa_system_controls)中得到。
SQL语句为:
selectcategory_flex_structurefromfa_system_controls
具体设置结果如图2-1、2-2所示
图2-1
图2-2
接下来我们为真正显示在界面的参数(资产类别P_CAT_SEG)定义值集。
定义过程和前面所讲的都基本相同,主要区别在于此值集的验证类型我们设置为特定,然后点右边的编辑按钮进行定义,需要注意的我已经用带色彩的框标记出来了,设置结果如图2-3、2-4所示。
具体语法参数的含义大家可以参考附录。
图2-3
图2-4
三.描述性弹性域上下文的应用(键弹性域与描述性弹性域互动关系定义)
1.描述性弹性域上下文的应用
在系统中描述性弹性域的显示结构是可以根据一个上下文字段来变化的,这样的设计会使应用层很灵活,进而在很多时候不用改动程序的基础上满足客户需求。
我是在资产工作台的新建资产表单上进行的测试,当我们选择完资产类别后,紧随其后的描述性弹性域就根据前面所选择的资产类别而弹出不同的结构。
下面我们来看下具体的定义过程:
(本例我们用键弹性域返回的值作为上下文关系)
我们首先在Form中定义键弹性域,和描述性弹性域。
代码如下:
从代码中可知在资产新增表单中,键弹性域的显示项为:
ATTRIBUTE_CATEGORY_CODE,
所以我们在系统中定义此描述性弹性域时,设置其参考段为ATTRIBUTE_CATEGORY_CODE
如图3-1所示:
图3-1
接下来定义此弹性域的全局数据元(GlobalDataElements),个人认为它就类似于一个键弹性域中的某一组合结构,在这里我们定义他由4个项组合(资产类别、网络属性、工程期别、使用状态)。
顾名思义(全局嘛)它的特点就是不管上下文内容是什么,这4个项都会显示。
在本例中的表现就是,不管用户选择何种资产类别,此描述性弹性域都会显示这4个项。
具体结果如图3-2、3-3
图3-2
图3-3
接下来我们就开始定义具体上下文内容所对应的弹性域结构,本例只列举了2个例子(测试1、测试2)以作说明。
我们想要达到的目的是:
当用户选择的资产类别为“管理用固定资产.电子计算机系统”时,描述性弹性域就增加一个说明项测试1
当用户选择的资产类别为“长期待摊费用.其他”时,描述性弹性域就增加一个说明项测试2
具体定义如图3-4、3-5所示:
图3-4
图3-5
这时我们可以在界面测试下我们所定义的结果了,如图3-6、3-7所示
图3-6
图3-7
注意以上定义都是在定义描述性弹性域表单中未选中上下文显示复选框的情况下。
下面我们看看当选中显示复选框时(如图3-8)的结果和注意事项:
当用户选择了显示复选框后,在引用弹性域的界面中点击弹性域项后,不管上下文段值是什么,他都会显示一个你在上图中定义的提示(附加信息),如果有多个上下文段他会有一个列表让用户选择,如果只有一个上下文段则直接显示在他的下面,结果如图3-8、3-9所示
图3-8
图3-9
这样就相当于强制使用了上下文关系,不管前面的键弹性域的资产类别选择了什么,描述性弹性域都会按客户强制的来存储。
(这也只是一个测试,实际中不会这样用得吧)。
现在来我们看看这样做后台表中怎么来存储的,他和其他正常录入的有什么不同。
蓝色为正常录入的结果,红色为强制的结果。
附录(SpecialValidationValueSets)
SpecialValidationEvents
Yourspecialvalideventsinclude:
Edit
Validate
Load
Insert/Update
Query
Edit/Edit
ListVal
ThelastfoureventsarepresentinOracleApplicationforcompatiblitywithfutureversion,andyoushouldnotusethem.
SpecialvalidationEditEvent:
Befiredwhenyouruser’scursorentersthesegmentinadataentrymode.YouusuallyusePOPIDforyoureditevent.
SpecialValidationLoadEvent:
Befiredafteraquerytopopulateyoursegment.YouusuallyuseLOADIDforyourloadevent.
SpecialValidationValidateEvent:
Befiredaftertheuser’scursorleavesthesegmentorclosethepop-upwindow,orwheneveradefaultvalueiscopiedintosegmentorreportparameter.YouusuallyuseVALIDforyourvalidateevent.
Attention:
YoumusthaveaValidateevent.
SyntaxforSpecialValidation
Syntax:
#FND{POPID|LOADID|VALID}
CODE=“flexfieldcode”
APPL_SHORT_NAME=“application_short_name”
VALIDATE=“{FULL|PARTIAL|NONE|QUERY}”
SEG=“block.concatenatedvaluesfieldname”
[BLOCK=“block_name”]
[FIELD=“field_name”]
[DERIVED=“:
block.field\nSegmentqualifer”]
[READ_ONLY=“{Y|N}”]
[DINSERT=“{Y|N}”]
[WINDOW=“{Y|N}”]
[ID=“block.uniqueIDfield”]
[REQUIRED=“{Y|N}”]
[DISPLAY=“{ALL|flexfieldqualifier|segmentnumber}”]
[UPDATE=“{ALL|flexfieldqualifier|segmentnumber}”]
[INSERT=“{ALL|flexfieldqualifier|segmentnumber}”]
[DATA_FIELD=“concatenatedhiddenIdsfield”]
[DESC=“block.concatenateddescriptionfieldname”]
[TITLE=“windowtitle”]
[VDATE=“date”]
[NAVIGATE=“{Y|N}”]
[AUTOPICK=“{Y|N}”]
[NUM=“:
structuredefiningfield”]
[COPY=“:
block.field\n{ALL|flexfieldqualifier}”]
[VRULE=“flexfieldqualifier\nsegmentqualifier\n
{I[nclude]|E[xclude]}\nAPPL=shortname;
NAME=MessageDictionarymessagename\n
validationvalue1\n…”]
[VALATT=“:
block.field\nflexfieldqualifier\nsegmentqualifier”]
[USEDBFLDS=“{Y|N}”]
[COLUMN=“{column1(n)|column1alias(n)},…”]
[WHERE=“whereclause”]
[SET=“setnumber”]
[ALLOWEDNULL=“{Y|N}”]
[QUERY_SECURITY=“{Y|N}”]
[QBE_IN=“{Y|N}”]
[LONGLIST=“{Y|N}”]
[NO_COMBMSG=“MESG_NAME”]
ParameterForSpecialValidation
CODE:
TheflexfieldcodeyouspecifywhenyousetupthisflexfieldusingtheRegisterKeyFlexfieldform.
APPL_SHORT_NAME:
TheapplicationshortnamewithWhichyourflexfieldisregistered.
VALIDATE:
UseFULLtovalidateallsegmentValuesandgenerateanewcodecombinationandDynamicallyinsertintothetable.
UsePARTIALtovalidateeachsegmentButnocreateanewcombination.UseNONEifyouwishnovalidation.
SEG:
Block.concatenatedvaluesfieldnameisadisplay,non-databaseformfieldthatcontainsyourconcatenatedsegmentvaluesplusdelimiters.
DERIVED:
UseDERIVEDtogetthederivedvalueofsegmentqualifierforacombinationthatsomeonetypesin.
READ_ONLY:
SpecifyYifyouwanttopreventanyupdatingofyourflexfield.
DINSERT:
TheDINSERTparameterturnsdynamicinsertsofforonforthisform.YoumustsettoNinaspecialvalidationvalueset.
WINDOW:
Specifywhetheryouwantyourusertotypeintoavisiblepop-upwindow.
ID:
Specifytheblock.fieldthatcontainstheuniqueIDforthisflexfield.
REQUIRED:
Specifywhetheryourusercanexittheflexfieldwindowwithoutenteringsegmentvalues.
DISPLAY:
Specifywhetheryouallowyourusertodisplaysegmentsthatspecifiedflexfieldqualifiersorspecifiedsegmentnumber.
UPDATEINSERT:
Determinewhetheryourusercanupdateorinsertsegmentsthatrepresentspecifieduniqueflexfieldqualifierorsegmentnumber.
DATA_FIELD:
TheconcatenatedhiddenIdsfieldisanon-displayformfieldthatcontainstheconcatenatedsegmenthiddenID.
DESC:
Isadisplayed,non-database,non-enteredfieldthatcontainsconcatenateddescriptionofyoursegmentvalues.
TITLE:
Thetitlethatappearsatthetopofpop-upwindow.
VDATE:
Dateisthevalidationdateagainstwhichthestartdateorenddateofindividualsegmentvaluesischecked.
NAVIDATE:
SpecifiedYifflexfieldsshouldautomaticallydeterminethenavigationoutoftheflexfieldpop-upwindow.
ATOPICK:
SpecifywhetherflexfieldpopsupaLOVwindowwhenuserentersaninvalidvalue.ThedefaultvalueisY.
NUM:
Thedefinitionnumberofyourflexfieldstructure.Thedefaultvalueis101
COPY:
Copiesanon-nullvaluefrom:
block.fieldintothesegmentrepresentingthespecifiedflexfieldqualifierorsegmentnumberbeforethefieldwindowpopsup.
VRULE:
UseVRULEtoputextrarestrictionsonwhatvaluesausercanenterinaflexfieldsegmentbasedonthevaluesofsegmentquaifer.
VALATT:
VALATTcopiesthesegmentqualifiervaluesofthesegmentrepresentingtheuniqueflexfieldqualifierinto:
block.fieldwhentheflexfieldwindowcloses.
USEDBFLDS:
SpecifyYifyourformisbasedonatablethathasforeignkeyreferencestotwoormoreflexfields.
COLUMN:
Displayothercolumnsfromthecombinationtableinadditiontothecurrentsegmentcolumn.
WHERE:
SpecifyaWHEREclausetocustomizewhichcodecombinationstodisplayinthecombination-levellistofvaluespop-upwindow.
SET:
Specifythe:
block.fieldthatholdsthesetidentifierforyourflexfield.
ALLOWNULLS:
DeterminewhetherNULLsshouldbeallowedintoanysegment.
QBE_IN:
ControlsthetypeofsubqueryOracleapplicationobjectlibraryusestoselectthedesiredrows.
LONGLIST:
SpecifywhetherallowLongListwiththisflexfield.
NO_COMBMSG:
Messagenamethatyouwishtodisplayyourownmessagewhenauserentersaninvalidcombination.
DefiningYourSpecialValidationFunction
Specialvalidationprovidesseveralargumentsyoucanusetopassvaluetofromyouruserexits:
:
!
ID
VALUE
MEANING
DIR
ID:
Youcanuse:
IDtopassdifferentinformationdependinguponthecircumstance.Forflexfieldroutines,:
IDcanpasseitheracombinationIDnumberofanentirecombinationofsegmentvalues,oritcanpassaconcatenatedstringoftheindividualflexfieldsegmentvalues.
VALUE:
Youuse:
VALUEtoaccesstheuser’sinput.:
VALUEreferstothedisplayedvaluesthatappearintheflexfieldwindowandintheconcatenatedvaluesfield.Ifyoudonotspecifyavaluefor:
ID,then:
VALUEispassedtoyourreportorstoredinyoursegmentcolumn.
MEANING:
MEANINGtopasstheconcatenateddescriptionsofyourflexfieldvalues.Thevaluedescriptionappearsasusualnexttotheflexfieldsegmentvalueandintheconcatenateddescriptionfield.Ifyouarewritingyourownfunction,youshouldcodeyouruserexittowritethevaluedescriptioninto:
MEANING.
DIR:
Use!
DIRfortheNAVIGATEargumentofkeyanddescriptiveflexfieldsroutines.!
DIRallowsth