EBS并发请求.docx
《EBS并发请求.docx》由会员分享,可在线阅读,更多相关《EBS并发请求.docx(31页珍藏版)》请在冰豆网上搜索。
EBS并发请求
并发请求相关总结
模拟登录
BEGIN
fnd_global.apps_initialize(user_id=>3189,resp_id=>20634,resp_appl_id=>401);
mo_global.set_policy_context('S',81);
END;
1并发请求定义
定义可执行
路径:
应用开发员=>并发=>可执行
定义并发程序
路径:
应用开发员=>并发=>程序
查找可执行与程序定义脚本
SELECTptl.user_concurrent_program_name"程序名",
p.concurrent_program_name"程序简称",
etl.user_executable_name"可执行",
e.executable_name"可执行简称",
e.execution_file_name"执行文件名",
decode(e.execution_method_code,'P','OracleReports','I','PL/SQL存储过程','K','Java并发程序','其他')"执行方法"
FROMapps.fnd_concurrent_programsp,
apps.fnd_concurrent_programs_tlptl,
apps.fnd_executablese,
apps.fnd_executables_tletl
WHEREptl.concurrent_program_id=p.concurrent_program_id
ANDp.application_id=ptl.application_id
ANDptl.language='ZHS'
ANDp.executable_id=e.executable_id
ANDe.application_id=etl.application_id
ANDe.executable_id=etl.executable_id
ANDetl.language='ZHS'
ANDe.executable_nameLIKE'CUXAPEST%'--可执行
--ANDp.concurrent_program_nameLIKE'SZAEAMAST%'--可执行
--ANDptl.user_concurrent_program_nameLIKE'%资产台账%'
ORDERBYe.executable_name;
查找参数定义
定义参数
路径:
应用开发员=>并发=>程序->参数
=>值集:
必输,限定参数可以输入的值的范围。
=>默认类型:
非必输,如果不为空,必须输入默认值,具体见3.2。
=>必须:
如果勾选,那么该参数必须输入,才能提交并发请求。
=>范围:
如果不为空,必须上限和下限成对出现,FROM为下限,TO为上限。
此时TO不能大于FROM,否则不允许提交并发请求,并提示:
请选择低于高值的低值。
=>显示:
默认勾选。
如果不勾选,那么提交请求的用户看不到该参数,这种情况一般会对其赋默认值。
查找并发程序参数
SELECTt.descriptive_flexfield_name"程序名",
b.column_seq_num"序号",
b.end_user_column_name"参数",
t.form_left_prompt"提示",
fvs.flex_value_set_name"值集",
b.default_value"默认值",
fvs.description"说明",
decode(b.default_type,
'S',
'SQL语句',
'A',
'段',
'C',
'常数',
'D',
'当前日期',
'T',
'当前时间',
'P',
'配置文件',
'',
'',
'其他')"默认类型"
FROMapps.fnd_descr_flex_col_usage_tlt,
apps.fnd_descr_flex_column_usagesb,
apps.fnd_flex_value_setsfvs
WHEREb.application_id=t.application_id
ANDb.descriptive_flexfield_name=t.descriptive_flexfield_name
ANDb.descriptive_flex_context_code=t.descriptive_flex_context_code
ANDb.application_column_name=t.application_column_name
ANDfvs.flex_value_set_id=b.flex_value_set_id
ANDt.language='ZHS'
ANDt.descriptive_flexfield_nameLIKE'$SRS$.%'
andt.form_left_promptlike'%部门%'
ORDERBYb.column_seq_num;
并发请求放入请求组
路径:
系统管理员=>安全性=>责任=>请求
查找请求分配信息
SELECTg.request_group_name"请求组",
t.user_concurrent_program_name"报表",
p.concurrent_program_name"可执行",
rt.responsibility_name"职责"
FROMfnd_request_group_unitsu,
fnd_concurrent_programs_tlt,
fnd_concurrent_programsp,
fnd_request_groupsg,
fnd_responsibility_vlr,
apps.fnd_responsibility_tlrt
WHEREu.request_unit_id=t.concurrent_program_id
ANDg.request_group_id=u.request_group_id
ANDt.concurrent_program_id=p.concurrent_program_id
ANDr.request_group_id=u.request_group_id
ANDrt.responsibility_id=r.responsibility_id
ANDt.language='ZHS'--中文环境
ANDrt.language='ZHS'----中文环境
--ANDUPPER(G.REQUEST_GROUP_NAME)=UPPER('STDARUserPrograms')--根据请求组查找
ANDupper(t.user_concurrent_program_name)LIKE'%CUX:
工单在制成本统计表%'--根据报表名查找
--ANDp.concurrent_program_nameLIKE'%ZZGLGDL029C%'--根据程序名查找
--ANDrt.responsibility_nameLIKE'%QD1%'--根据职责查找
;
2并发请求参数
2.1参数的值集类型
值集验证类型:
表
定义
注意验证表信息界面上的值,含义,标识的作用。
提交请求时输入参数如下:
最后传入并发请求的是【标识】
值不可以为空。
如果含义为空,则
(2)为空白
如果标识为空,则默认标识=值。
值集验证类型:
无
例1:
标准日期类型
FND_STANDARD_DATE
这种类型的值集,限定的值直接通过格式类型来确定。
此处值格式类型为标准日期,并不代表传入参数的值是日期类型,事实上,传入的值的类型依然是字符类型。
并发程序参数类型必须为VARCHAR2。
PROCEDUREmain(errbufOUTVARCHAR2,
retcodeOUTNUMBER,
p_inv_org_idINNUMBER,
p_date_toINVARCHAR2,
p_closed_includeINVARCHAR2,
p_job_statusINVARCHAR2,
p_job_class_typeINVARCHAR2,
p_job_classINVARCHAR2,
p_wip_entity_fromINVARCHAR2,
p_wip_entity_toINVARCHAR2,
p_item_id_fromINNUMBER,
p_item_id_toINNUMBER);
并发程序定义
默认值为SQL语句:
selectfnd_date.date_to_displaydate(sysdate)fromsys.dual
提交请求时输入正确日期格式
注意前台输入格式与首选项设置的日期格式一致
不一致则报错。
传入并发请求的格式(后台存储格式)
p_date_to:
=2013/02/1700:
00:
00
并发请求程序中调用该参数时需要做将字符型转换为日期型
l_date_to:
=fnd_conc_date.string_to_date(p_date_to);
例2:
标准日期时间类型
如果有这种需求,即希望起始日期是输入日期的第一秒,终止日期是输入日期的最后一秒,即
p_date_from:
=2011/11/2400:
00:
00
p_date_to:
=2011/11/2423:
59:
59
可以用值集值集类型为无的标准日期时间类型FND_STANDARD_DATETIME
参数默认值为
p_date_from:
SELECTFND_DATE.date_to_displaydt(TRUNC(SYSDATE))FROMDUAL
p_date_to:
SELECTFND_DATE.date_to_displaydt(TRUNC(SYSDATE+1)-(1/(60*60*24)))FROMDUAL
最终传入的日期值
并发请求程序中调用该参数时需要做将字符型转换为日期型
l_date_from:
=fnd_conc_date.string_to_date(p_date_from);
l_date_to:
=fnd_conc_date.string_to_date(p_date_to);
值集验证类型:
对
定义
参数
说明
值集
值集类型
P_PAGEBREAK_SEG_NUM
分页段
GL_SRS_PAGEBREAK_SEGS
表
P_LOW_PB_SEG
分页段下限
GL_SRS_PAGEBREAK_RANGES
对
P_HIGH_PB_SEG
分页段上限
GL_SRS_PAGEBREAK_RANGES
对
GL_SRS_COA_UNVALIDATED
无
值集名称:
GL_SRS_PAGEBREAK_SEGS
值集验证类型:
表
查询语句:
SELECTsegment_name,
s.description,
segment_num
FROMfnd_id_flex_segments_vls,
fnd_segment_attribute_valuesv
WHEREs.id_flex_code='GL#'
ANDv.id_flex_code='GL#'
ANDs.id_flex_num=:
$flex$.gl_srs_coa_unvalidated
ANDv.id_flex_num=:
$flex$.gl_srs_coa_unvalidated
ANDs.enabled_flag='Y'
ANDs.application_column_name=v.application_column_name
ANDs.application_id=101
ANDv.application_id=101
ANDv.segment_attribute_type='GL_ACCOUNT'
ANDv.attribute_value='N'
ORDERBYsegment_num
值集名称:
GL_SRS_PAGEBREAK_RANGES
值集类型:
对
FNDPOPIDR
APPL_SHORT_NAME="SQLGL"
CODE="GL#"
DISPLAY=:
$FLEX$.GL_SRS_PAGEBREAK_SEGS
NUM=:
$FLEX$.GL_SRS_COA_UNVALIDATED
REQUIRED="Y"
VALIDATE="NONE"
SEG=":
!
VALUE"
DESC=":
!
MEANING"
NAVIGATE="!
DIR"
FNDVALIDR
APPL_SHORT_NAME="SQLGL"
CODE="GL#"
DISPLAY=:
$FLEX$.GL_SRS_PAGEBREAK_SEGS
NUM=:
$FLEX$.GL_SRS_COA_UNVALIDATED
VALIDATE="NONE"
REQUIRED="Y"
DESC=":
!
MEANING"
SEG=":
!
VALUE"
值集名称:
GL_SRS_COA_UNVALIDATED
效果
2.2并发请求参数默认值
我们在为并发程序定义参数的时候,有时候需要为其定义默认值,默认值的类型有
P,配置文件
S,SQL语句
C,常数
D,当前日期
T,当前时间
A,段
留空
不管是那一种默认类型,我们在输入默认值时取值逻辑时(比如一个SQL语句或者一个常数),获得的值,必然是包含于所选值集对应的【值】中,而不是【标识】中。
默认类型为SQL语句
参数为p_organization_id
值集为PO_SRS_ORGANIZATIONS
默认类型为SQL语句
默认值为SQL语句
SELECTOOD.ORGANIZATION_CODEFROMMTL_PARAMETERSOODWHEREOOD.ORGANIZATION_ID=:
$PROFILES$.MFG_ORGANIZATION_ID
我们可以看到,并发程序参数需要被赋予的值是organization_id,但是默认值我们获得的是ORGANIZATION_CODE,我们去看下值集PO_SRS_ORGANIZATIONS的定义,
因此默认值时取得的值,必然是包含于所选值集对应的【值】中,而不是【标识】中。
默认类型为常数
默认类型为配置文件
配置文件定义(PO:
MFG组织标识)
默认类型为段
作用:
当输入【期间自】参数后,自动带出【期间至】参数。
默认类型为当前日期
默认类型为当前时间
参数间的依赖关系
SELECTT.CUST_TRX_TYPE_ID,
T.NAME,
T.DESCRIPTION
FROMRA_CUST_TRX_TYPES_ALLT
WHEREORG_ID=:
$FLEX$.CUX_AR_CURRENT_OU
ANDSET_OF_BOOKS_ID=:
$FLEX$.CUX_AR_BOOKSET2;
常用参数的标准值集及其默认值
1)通用
日期时间相关
Parameter
ValueSet
DefaultType/Value
Prompt
Comment
P_TRANSACTION_DATE_FROM
FND_STANDARD_DATETIME
SELECTFND_DATE.date_to_displaydt(TRUNC(SYSDATE))FROMDUAL
XX日期自
P_TRANSACTION_DATE_TO
FND_STANDARD_DATETIME
SELECTFND_DATE.date_to_displaydt(TRUNC(SYSDATE+1)-(1/(60*60*24)))FROMDUAL
XX日期至
p_start_date
FND_STANDARD_DATE
selectfnd_date.date_to_displaydate(sysdate)fromsys.dual
起始日期
selectfnd_date.date_to_displaydate(effective_date)fromfnd_sessionswheresession_id=userenv('sessionid')
--Convertthevarchar2dateinputtoadatedatatype
l_start_date:
=
fnd_conc_date.string_to_date(p_start_date);
l_end_date:
=
fnd_conc_date.string_to_date(p_end_date);
数字相关
Parameter
ValueSet
DefaultType/Value
Prompt
Comment
P_QTY_PRECISION
INV_SRS_PRECISION
REPORT_QUANTITY_PRECISION
数量精确度选项
帐套p_set_of_book_id
默认值配置文件GL_SET_OF_BKS_ID
2)库存模块
Parameter
ValueSet
DefaultType/Value
Prompt
Comment
P_ORGANIZATION_ID
INV_SRS_ORG_ACCESS
SELECTorganization_codeFROMmtl_parametersWHEREorganization_id=fnd_profile.value('MFG_ORGANIZATION_ID')
库存组织ID
999其他相关
-1-查看请求的XML输出
-2-设置并发程序不兼容
效果,当程序A正在运行时,与其不兼容的程序B只能等待A完成后才能运行
-3-请求提交后-查找请求信息
SELECTt.request_id"请求ID",
pletion_text完成状态,
t.actual_start_date请求开始日期,
t.actual_completion_date请求完成日期,
frtl.responsibility_name"职责",
pro.user_concurrent_program_name"报表名",
pros.concurrent_program_name"可执行名",
t.request_date"请求时间",
t.outfile_name"输出文件路径",
fu.user_name"请求提交人",
t.oracle_session_id--v$session
FROMapps.fnd_concurrent_requestst,
apps.fnd_responsibility_tlfrtl,
apps.fnd_concurrent_programs_tlpro,
apps.fnd_concurrent_programspros,
apps.fnd_userfu
WHEREt.responsibility_id=frtl.responsibility_id
ANDt.concurrent_program_id=pro.concurrent_program_id
ANDpro.concurrent_program_id=pros.concurrent_program_id
ANDfu.user_id=t.requested_by
ANDpro.language='ZHS'
ANDfrtl.language='ZHS'
--ANDt.request_id=1983022--请求编号
ANDpro.user_concurrent_program_nameLIKE'%CUX:
工单在制成本统计表%'--请求名称
--ANDpros.concurrent_program_name='ZZAPGML010C'--可执行名称
;
-4-提交请求后-查找请求参数信息
--找参数值
SELECTt.request_id,
t.argument1,
t.argument2,
t.argument3,
t.argument4,
t.argument5,
t.argument6,
t.argument7,
t.argument8,
t.argument9,
t.argument10,
t.argument11,
t.argument12,
t.argument13,
t.argument14,
t.argument15,
t.argument16,
t.argument17,
t.argument18,
t.argument19,
t.argument20,
t.argument21,
t.argument22,
t.argument23,
t.argument24,
t.argument25
FROMfnd_concurrent_requestst,
fnd_concurrent_programsp,
fnd_responsibility_tlr
WHEREt.concurrent_program_id=p.concurrent_program_id
ANDt.responsibility_id=r.responsibility_id
ANDr.language='ZHS'
--ANDP.CONCURRENT_PROGRAM_NAMELIKE'%ZZARRZZ104C%'
--ANDT.ARGUMENT13='YES'
--ANDR.RESPONSIBILITY_NAMELIKE'%WX1%'
--ANDt.request_date>SYSDATE-1
ANDt.request_id=20538818;
-5-批量取消并发请求
fnd_concurr