EBS_并发管理器

EBS_并发管理器
EBS_并发管理器

第14章AOL故障解决方法

应用对象库( A O L)包括应用管理工具,管理诸如并发管理器、打印机、报表以及一些更高级的特性,如O r a c l e应用特有的软字段。

本章涵盖的主题包括并发管理器、打印机、报表、软字段、Oracle Alert以及O r a c l e Wo r k f l o w。这部分内容的影响面较宽,是O S S根据接收到的客户咨询电话总结出来的故障解决方法。我们将讨论安装和配置 A O L时应该采取的预防措施以及出现故障时的解决方法。Oracle Alert与A O L的功能也密切相关,并且被认为是O r a c l e应用的核心产品。最近,A O L通过引入Oracle Wo r k f l o w作为自动处理和定制用户商务进程的完整的应用工具扩大了它的基础。

所有的这些产品共同奠定了O r a c l e应用的基础,在此基础上创建了所有其他的产品如Oracle Assets、Oracle Purchasing、Oracle General Ledge等,这些产品与A O L共享应用代码。

另外,本章还涉及到了A O L的关键特性,并提供了最常见的错误及其解决方法、调试技术以及有助于缩短系统故障时间的故障提示等补充内容。

本章还包括一般性保护错误( G P F)的故障解决指导,因为O S S接收到的许多咨询电话都是关于Wi n d o w s系统上G P F的。

14.1 Oracle Alert

Oracle Alert是一个程序,它通过即时提供数据库活动的视图而使用户可以监视自己的商务信息。当发生重要的或特殊的数据库事件,如更新特殊表(事件警告)或用户选择计划上的关键信息通知(定期警告)时,它能使用户保持对这些事件的处理权力。

14.1.1 建立Oracle Alert

本节讨论如何定义和建立Oracle Alert、Oracle Alert动作和Oracle Alert动作集。

1. 确定邮件系统

Oracle Alert通过向用户发送电子信息使用户保持对情况的了解,其电子邮件功能集成于Oracle Off i c e和Oracle InterOff i c e中,Oracle Alert还支持O p e n V M S邮件和UNIX Sendmail(发送邮件)技术。用户可以将Oracle Off i c e/I n t e r O f f i c e安装在Oracle Alert所在的同一数据库中,也可以安装在通过S Q L*N e t访问Oracle Alert数据库的一个数据库中。其他邮政工具可以使用Oracle Off i c e/I n t e r O f f i c e服务器和支持S M T P(简单邮件传输协议)消息传送的网关链接到A l e r t 中。

如果决定使用第三方的邮件系统,以U N I X为例,应确保在安装Oracle Office 或O r a c l e O f fice UNIX Mail Gateway之前,要测试从操作系统到第三方的邮件系统的消息流。除非UNIX Mail在工作,否则其余的建立工作不能进行。消息流应该是:

A l e r t<—> O f f i c e<—> O f fice UNIX Mail Gateway<—>UNIX Mail<—>第三方的UNIX Mail G a t e w a y<—>第三方的电子邮件。

依据所选取的邮件系统类型,用户必须在O r a c l e应用的Define Oracle Alert Options屏内定

义邮件系统。选择Navigate |Definitions|Options,如下所示:

名称命令使能

Oracle Off i c e无是

UNIX Sendmail/ u s r/l i b/s e n d m a i l是

VMS Mail M A I L是

注意确保只有一个邮件系统已被设置为是。

当用户确定了自己的Oracle Alert消息使用的邮件系统后,就要设置环境变量$ A P P L M A I L,它应该与所选择的邮件系统一致。

以下是设置的选项:

? $APPLMAIL=NONE(当使用任何非Oracle Office/Oracle InterOff i c e邮件系统时)。

? $APPLMAIL=ORACLE_OFFICE(当使用Oracle Off i c e时)。

? $APPLMAIL=ORACLE_INTEROFFICE(当使用Oracle InterOff i c e时)。

用户必须在应用的环境文件( A P P L S Y S.e n v)中设置$ A P P L M A I L环境变量后,重新链接Oracle Alert并运行该环境文件(链接到必要的A P I)。例如:

adrelink force=y ranlib=y "alr ALL"

2. 定义用户的A l e r t

接下来是定义用户的警告。用户可以有两种类型的警告:

? 当数据库中的一条记录被更新或插入时(或二者同时发生时,这由用户定义的警告方式决定)激活事件警告。

? 定期警告在需要时(当用户使用Request Periodic Alert Check格式时)或根据用户通过定期警告调度程序(负责运行计划好的定期警告的并行程序)定义的警告计划激活。

(1) 事件警告

定义一个事件警告时,必须确定警告的激活时间。例如:

U p d a t e=Y e s

I n s e r t=Y e s

在第一种情况下,若定义了警告的表中的某记录被修改(更新)时警告被激活。在第二种情况中,当定义了警告的表中被创建(插入)一条记录时警告被激活。

定义一个事件警告就创建了一个数据库触发器来反映用户的警告定义。如果用户指定

U p d a t e=Y e s,那么在数据库指定了警告定义的表中就创建了一个更新触发类型的触发器。例如,如果根据Oracle Payables在A P_I N V O I C E S表上定义了一个警告,那么就创建了一个

A L R_A P_I N V O I C E S_U A R数据库触发器。

如果用户指定I n s e r t=Y e s,那么在数据库指定了警告定义的表中就创建了一个插入触发类型的触发器。例如,如果根据Oracle Payables在A P_I N V O I C E S表上定义了一个警告,那么就创建了一个A L R_A P_I N V O I C E S_I A R数据库触发器。由于A l e r t中的约束,用户对任何表(插入的和更新的)只能定义一种类型的触发器,尽管这是两种不同的警告定义。这种约束是由于Oracle Alert触发器命名设定造成的。

注意用户事件警告的SQL语句中必须包含对警告基于的表的where rowid=:rowid操作

子句,否则Oracle Alert不能确定事务发生的行。

(2) 定期警告

定义一个定期警告时,必须确定警告的激活时间。如果用户在频率字段中指定为O n D e m a n d,那么只有当用户进入Alerts |Check form并选择激活那个特定的警告时,警告才会激活。如果用户指定Every N Calendar Days、Every N Business Days、We e k l y或M o n t h l y,那么用户选择的就是在一天之内警告若干次或在某一天内只警告一次。

注意如果用户定义警告在Every N Business Days激活,那么应确保在M i s c e l l a n e o u s O p t i o n s屏幕(选择N a v i g a t e|D e f i n i t i o n s|O p t i o n s,进入最后面的区域,并选择M i s c e l l a n e o u s O p t i o n s)中已经建立了正确的商务的定义。

如果用户要求警告一天内运行若干次,就要将Check Once Each Day的标志设置为N o,并通过在Start Ti m e、End Time 和Time Between Checks字段中输入适当的值(确保输入的时间值是“小时:分:秒”的格式,例如,3小时则输入0 3:0 0:0 0)来定义它应该运行的次数。

有关定义定期警告和事件警告的更多信息,请参考《Oracle Alert参考手册》。

3. 创建警告动作

用户应该为自己的警告创建一个警告动作,每个警告(事件的或定期的)必须至少有一个动作。警告动作可以是下列之一:

? 消息动作

向某人或别名或预定义分布表中的任何一个人发送一条电子消息,也可以向打印机发送一条警告消息。但这种情况下,用户必须确保与打印机类型相连的打印机风格是P o r t r a i t。

? 并行程序请求

提交一个运行Oracle Applications并发程序的请求(用户输入程序需要的变量)。

? SQL脚本

执行一个S Q L语句脚本(用户输入脚本或Oracle Alert调用一个包含脚本的外部文件)。

? 操作系统脚本

启动一个操作系统脚本(用户输入脚本或Oracle Alert调用一个包含脚本的外部文件)。

在定义一个警告动作时,用户还必须指定如下一种警告级别:

? Detail 警告每次异常返回,警告动作就执行一次。

? Summary 警告全部异常返回,警告动作执行一次。

? No Exception 警告没有异常返回时,警告动作执行一次。

4. 创建一个警告动作集

用户还必须定义一个动作集,指定特定警告激活时要完成的动作,即使用户只有一个警告动作也必须这样做。只有当下面的三步操作全部完成时,警告才能激活所要求的动作。

1) 定义一个警告。

2) 定义一个或多个警告动作。

3) 定义一个包含一条或多条警告动作的动作集。

14.1.2 应答处理

Oracle Alert提供了定义应答处理警告的能力—可以根据用户对警告消息的应答来执行例程事务。定义一个应答警告时,用户可以定义动作完成:当接收到一个用户的有效应答时;当接收到一个用户应答时;当在指定时间内没有接收到应答时。

用户必须要么使用Oracle Office /Oracle InterOffice 作为自己的邮件系统,要么使用O r a c l e O f fice/Oracle InterOff i c e作为到电子邮件系统的“网关”。与A l e r t捆绑在一起的单用户许可证能满足此项要求。

用户必须在Oracle Office/Oracle InterOff i c e内定义两个文件夹记录对Oracle Alert消息应答的处理:

? REVIEWED

? REVIEWED_OK

用户必须在Oracle Alert内定义Response Processing参数。为此,在O r a c l e应用中选取Navigate |Definitions|Options,并进入Oracle Office Options时间带设置参数。

例如:

Oracle Office Options值

Enable Response Processing Yes (是)

(使应答处理有效)

Check for Open Responses Ye s(是)

Before Rending Response

(在读应答之前检查打开的应答)

Response Processor Start Ti m e0 1:0 0(24小时:分钟格式)

(应答处理器开始时间)

Response Processor End Ti m e 2 3:3 0(24小时:分钟格式)

(应答处理器结束时间)

Response Processor Interval 5 (分钟)

(应答处理器时间间隔)

注意如果没有指定应答处理器的开始时间、结束时间和时间间隔,那么Oracle Alert将

在每天午夜提交程序。

如果用户修改了Response Processor的时间间隔,那么必须以Schedule Alert Programs形式重新启动Response Porcessor。为此,用户可以选择Navigate |Schedule,将Response Processor 填到名字字段,并将S c h e d u l e填到动作字段。

14.1.3 阈值组

由于警告可能从数据库中返回大量不同的异常情况,所以定义一个阈值组是会有帮助的。阈值组即警告完成的详细动作,如果异常比概要阀值中设计的少。

在阈值组中可以定义一个概要动作和一个详细的动作。用户也可以定义一个概要阈值,它的意思是如果异常数少于或等于概要阈值量,那么每个异常警告都要完成一个详细的动作。但是如果异常数大于概要阈值量,那么对所有的异常警告只完成一次概要动作。

阈值量包括在警告的动作集定义中。定义一个只有一个概要动作的阈值是可能的。概要阈值量也必须定义,它意味着只有当返回的异常数大于概要阈值量时,概要动作才执行;否则,不执行动作。

注意定义阈值组时,详细动作和概要动作都必须属于同一动作类型(例如消息、并发

程序等)并且与阈值组中设计的类型一样。

14.1.4 升迁组

为了根据同一异常激活警告的频率来完成不同的警告动作,用户必须定义一个升迁组。

详细动作必须属于同一种类型,比如消息动作;而一个动作要根据重复异常返回的连续警告检查数来执行。升迁组必须结合重复检查来建立,它包括指定哪一列应该被用于判定异常是否重复。升迁组包括在警告的动作集定义中。

注意如果用户想使用动作升迁,必须保存警告历史至少比警告频率长一天。如果前面的警告检查历史没有保留,那么Oracle警告就不能检查重复。

14.1.5 警告的故障解决方法

本节我们提供常见问题的解决方法,每条错误消息后都给出了一种解决方法:

1) Alerts will met execute or are not executing as expected

如果警告没有按照预期的情况在执行,那么检查:

? 确实在警告选项中指定了邮件数据库,只能使一个数据库有效。

? 从U N I X提示中给A P P L M A I L环境变量设置了适当的值( N O N E、O R A C L E_O F F I C E或O R A C L E_I N T E R O F F I C E)。请记住,如果修改了A P P L M A I L环境,那么要重新链接所有Oracle Alert的可执行文件。

? 如果所有定期警告失败或不运行,那么应确信警告计划确实在运行中。

? 验证标准的、预先设计的事件和定期警告工作在创建定制警告之前。

? 如果用户企图激活登记在Oracle 应用之外的警告(例如,通过更新由S Q L*P l u s或其他软件连接的R D B M S表),那么应该注意到它不能触发Oracle Alerts。

2) Event Alert does not fire

? 确保Navigate|Alert|Define 屏幕中的Alert ENABLED字段为Y。

? \N A Define中的事件信息表字段必须是警告将从中激活的基本表格式。

? 暗示输入,R O W I D必须包括在SQL select语句的w h e r e从句中;否则,可能返回不正确的行号,警告可能失败。R O W I D是事件警告更新和/或插入的基本表中的行的物理地址(例如,w h e r e:R O W I D=b a s e_t a b l e.r o w i d)。

3) Alert actions not running.

? 警告日志文件显示进程已经结束,虽然它没有提到任何动作都完成了。

? 确信警告的动作是通过选择N a v i g a t e|A c t i o n s|D e f i n e定义的。

? 保证动作是通过选择Navigate|Action Sets与动作集联系起来的。

? 检查Action Set Details zone. MEMBERS必须是已经定义的动作且对警告是有效的。

4) Error with alert SQL statement

警告的S Q L语句定义在菜单Navingate|Alert |Define中。要使警告运行其动作,它定义的条件必须在数据库中能找到。S Q L语句必须只包含S Q L语句,不能使用任何的S Q L*P l u s命令(例如,U N I O N)。这里只能有一条s e l e c t语句。

5) Alert running with multiple sets of books

警告为每个安装的帐册集( s o b)执行SQL select语句,该帐册集与警告在其下登记的产品相关。例如,假设一个用户有两个Oracle Payables的帐册集—A P和A P Z,A l e r t将为每个O r a c l e

ID AP 和A P2执行S Q L语句。

在用户的SQL SELECT语句=‘P 01’中使用暗喻输入—O R A C L E_I D。用户必须确保为所有的帐册集建立授权和/或同义词。对于应答处理:“O R A C L E_I D”必须在S Q L语句的S E L E C T部分或W H E R E从句中(见《Oracle Alert参考手册》)。

6) Periodic Alert Scheduler is not submitted to the Concurrent Manager.

定期警告调度程序实现以下若干种功能:

? 根据其频率提交定期警告( N a v i g a t e|A l e r t|D e f i n e)。

? 根据N a v i g a t e|A l e r t|D e f i n e表格中的‘Keep Number of Days’字段清除警告历史。

? 再次提交警告

当用户通过‘Schedule Alert Program’表格调度定期警告调度程序时,它被提交给Concurrent Manager,在每天午夜调度程序再次提交自身。更多的信息,请看《Oracle Alert 参考手册》。

7) Duplicates are not suppressed.

在建立复制抑制时若干项要注意:

? 当在N a v i g a t e|A c t i o n|D e f i n e表格中定义消息值时,确信有一两个列没有使用,A l e r t将用这两列做复制标记。

? 确信‘Keep Number of Days’字段设置的数值至少比两次检查之间的天数长一天。

? 表格中的字段—Navigate|Action Sets|Suppress Duplicates,必须被设置成Ye s(是),而且用户必须至少有一个输出变量用做复制检查。

? 梗概消息通过对异常情况标记一个星号( *)来抑制复制。

8) Have the Alert executables been relinked with Oracle Office or Oracle InterOff i c e?

为了判定客户是否已经正确地将Oracle Alert可执行文件重新链接到Oracle Off i c e/I n t e r O f f i c e,可在A l e r t的一个主可执行文件的H e a d e r(头部)信息中查找字符串“a l s c v”。

例如,使用U N I X的s t r i n g和g r e p命令:

$ strings $ALR_TOP/bin/ALECDC | grep alscv

如果输出包含a l s c v m,那么可执行文件就已经与O r a c l e*M a i l重新链接了。如果包含a l s v o,那么可执行文件要么重新链接了Oracle Off i c e,要么重新链接了Oracle InterOff i c e。如果没有输出产生,那么既没有链接上Oracle *Mail和Oracle Off i c e,也没有链接上Oracle InterOff i c e。

实用程序和并行程序

下面是几个实用程序名和使用它们的原因。首先介绍用法给出实例,然后对各参数进行详细解释。

1) ALDCTM—连接Mail (Oracle Office 、Oracle InterOff i c e)

A L D C T M试图以参数指定的或Alert Options表格中定义的方式连接邮件帐号。

用法:ALDCTM 用户名/口令0 Y[邮件_用户名邮件_口令邮件_数据库]

例如,下列命令是按照Alert Options表格中指定的方式将用户连接到邮政帐号:

ALDCTM apps/apps 0 Y

下面的例子是将用户连接到由“m y u s e r/m y p a s s w d@m y m a i l s r v”连接字符串标识的邮件帐号中:

ALDCTM apps/apps 0 Y myuser mypasswd mymailsrv

2) FNDMDCMF—消息字典创建消息文件( R10,字符模式)

F N D M D C M F创建一个运行时二进制(和展开的A S CⅡ码)消息文件。

用法:F N D M D C M F用户名/口令0 Y 应用缩写名语言

例如:

FNDMDCMF applsys/fnd 0 Y FND usaeng

它在$ F N D_T O P/m e s g子目录下创建u s a e n g.m s g和u s a e n g.m s b文件。

3) FNDMDGEN—消息字典生成器( R10S C,R 11 )

创建运行时二进制(或展开的A S CⅡ码)文件,也用于从A S CⅡ文件向数据库装载消息。

用法:FNDMDGEN 用户名/口令0 Y语言应用缩写名

模式[文件应用缩写名文件名]

例如:

FNDMDGEN apps/apps 0 Y US ALR DB_TO_SCRIPT

它创建包含Oracle Alert消息的A S CⅡ码消息文件t e x t.m s g。

参数如下:

? 语言指示语言的名称,A L L表示所有的语种。

? 应用缩写名限定生成一种特殊应用的消息,A L L表示所有的应用。如果不指定该变量,则产生所有的应用。

? 模式指示消息的去处和出处,它可以取下列值(缺省是D B_T O _R U N T I M E):

? DB_T O _R U N T I M E:数据库到运行时( .m s b)文件。

? DB_TO _S C R I P T:数据库到脚本( .m s g)文件。

? RUNTIME_TO _D B:运行时文件( .m s b)到数据库。

? SCRIPT_TO _D B:脚本文件( .m s g)到数据库。

? RUNTIME_TO _S C R I P T:运行时文件( .m s b)到脚本文件( .m s g)。

? SCRIPT_TO _R U N T I M E:脚本文件( .m s g)到运行时文件( .m s b)。

? “f i l e_a p p_s h o r t n a m e”只用在转换到脚本文件,或从脚本文件转换来。应用缩写名决定将找到文件名变量中指定的哪个应用的基本路径。如果文件应用缩写名指定为“L O C A L”,那么文件名位于当前目录中。

? 文件名只用在转换到脚本文件或从脚本文件转换过来时,用于指定输入或输出脚本文件的文件名。一个文件中可以包含多种语言和多个应用的信息。该文件名总是以U N I X格式指定,当程序在其他平台上时,则用划线作定界符,划线会自然转换成其他平台对应的字符。例如,假设最后两个变量是“/mesg/file.msg FND”,那么脚本文件是$ F N D_ TO P/m e s g/f i l e.m s g。

14.2 并发管理器

并发管理器是O r a c l e应用的后台处理控制器,其主要功能是根据一组规则来调整、控制进程请求,它是用于在后台同时执行非交互式、独立于数据的程序的一项技术。

O r a c l e应用R 10.7同时提供预定义管理器,包括内部并发管理器(Internal Concurrent M a n a g e r, ICM)、标准管理器( S t a n d ard Manager)、冲突解析管理器(Conflict Resolution Manager,C R M)和事务管理器( T ransaction Managers,T M)。I C M控制所有其他的处理操作系统进程的

并发管理器。在应用内,用户可以创建任意多个并发管理器来处理各种类型的请求或程序,并将它们专用化,以满足自己的商务要求。

14.2.1 概述

本节概述并发管理器及其有关术语。

1. 术语

本节我们定义几个后面要用到的词语,如:并发程序、并发请求,专用准则等。

(1) 并发程序和并发请求

Oracle 应用程序是并发运行的,被称为并发程序。并发程序是一个可执行文件,它与其他并发程序同时运行。当用户向运行某一特定的并发程序提交一个请求时,它就被称为并发请求。并发程序可以从O r a c l e应用、操作系统或其他运行的并发程序中提交。

(2) 不兼容的并发程序

理想中所有的并发程序都应该可以同时运行,但是,有些并发程序是相互关联的,如果同时运行可能会对相同数据的操作产生冲突。那么,有必要指出这些程序是不兼容的。指定一个并发程序与另一个不兼容能确保指定程序运行时,不兼容的程序不能运行。

(3) 逻辑数据库

一个逻辑数据库是存储在一个或多个O r a c l e模式中的相关数据集。逻辑数据库是O r a c l e应用的概念,它在相关数据周围画一条线,用户可以为其定义并发程序的不兼容性准则。

(4) 单独运行的程序

当并发程序由于正在更新等原因而需要单独运行时,就称之为“单独运行”。在执行单独运行的程序时,冲突解析管理器或内部并发管理器能确保没有访问同一逻辑数据库中数据的并发程序被其他的并发管理器启动。

(5) 专用准则

专用准则的定义是为了使并发管理器专用化,只能处理某些请求。依据下列情况配置并行管理器允许或不允许并发请求:

? 帐册的请求集O R A C L E_I D(对多个安装)或组织的O R A C L E_I D(如果使用多个组织)。

? 程序本身或程序的应用。

? 程序的请求类型。

? 提交请求的用户。

? 组合准则,由上面多项组合成的一条准则。

(6) 组合专用准则

对于每一个并发管理器或事务管理器,一次只能定义一条专用准则。如果要对多个并发管理器或事务管理器定义相同的一组专用准则,最好把它们组织在一个集合中来采用。许多专用准则都可以被组合成一个集合,被称为组合专用准则。之后,组合专用准则就可以与并发管理器联系起来了。

(7) 工作班

工作班被定义为指定的时间段,在这段时间中并发管理器或事务管理器应该能处理并发请求。

(8) 目标进程

目标进程是专门运行并发请求的并发管理器或事务管理器的操作系统进程号。并发管理器或事务管理器一次能够处理的并发请求数直接与目标进程数相关。

(9) 程序库

立即并发程序的可执行文件链接在程序库中,每一个并发管理器都与一个程序库相关。若非程序包括在管理员的程序库中,并发管理器并不能运行立即并发程序。并发管理器把立即并发程序当作一个子例程运行,不产生另外的操作系统进程。例如, F N D L I B R就是一个程序库。

2. 并发管理器

在Oracle Applications中提交并发请求所涉及的内容无非是用运行并发请求所需要的信息来更新几个表。并发管理器周期性查看相关表,找出其中所有已经提交的新请求。如果程序已经运行,那么并发管理器将从表中获取相关信息如可执行文件名、程序名以及运行程序的参数等。如果一个程序是并发管理器程序库中的一部分,那么它就运行这个程序,或者产生另一个操作系统进程运行这个请求。

下面是Oracle Applications预定义的并发管理器:

(1) 内部并发管理器

内部并发管理器管理所有其他的管理器,可启动、验证管理器的状态、复位并可关闭每个管理器。内部并发管理器是预定义的,除主节点外,其他定义不能被修改。主节点是内部并发管理器在其上启动的机器。

(2) 标准并发管理器

标准管理器运行任何、所有的请求,并一直处于活动状态。标准管理器没有专用准则,且2 4小时工作班,因此,它一直在运行所有的请求。

注意内部并发管理器和标准管理器都有FNDLIBR作为它们的程序库。

(3) 冲突解析管理器

冲突解析管理器加强了为请求定义的不兼容性准则,并确保有冲突的请求不能同时运行。在R 10.7中,如果配置文件选项C o n c u r r e n t:Use ICM被设置为Ye s,那么内部并发管理器做冲突解析管理器的作业。应该注意到,在处理约束时,冲突解析管理器比内部并发管理器有效得多。该选项应该只有在冲突解析管理器出了毛病、不能运行时才设置。冲突解析管理器在Oracle Applications中预定义。

(4) 库存管理器(Inventory Manager)

库存管理器有一个I N V L I B R作为其程序库,I N V L I B R位于I N V_T O P的b i n目录中。库存管理器有专用准则且2 4小时工作班。

(5) MRP管理器

M R P管理器有一个M R C L I B作为其程序库,M R C L I B位于M R P_T O P的b i n目录中。M R P 管理器有专用准则且2 4小时工作班。

(6) PA流线管理器( P A Streamline Manager)

PA流线管理器有一个PA L I B R作为其程序库,PA L I B R位于PA _T O P的b i n目录中。PA流线管理器有专用准则,且2 4小时工作班。

3. 事务管理器

Oracle Applications中的实时处理是由事务管理器完成的。来自于客户机对话的请求运行

一个程序,使事务管理器立即运行(同步地),然后返回一个状态到客户机程序中。客户机必须等待直到请求完成且发送回一个状态信息。如果客户机找不到某事务管理器来运行请求,那么就会接收到一条超时错误。事务管理器只能运行那些可执行事件链接到程序库的并发程序,而不能产生独立的操作系统进程来运行这些程序。

注意并发管理器提供后台处理,并且不能返回被提交请求的状态到请求者中。请求者

必须通过查阅View Concurreent Request表格来查寻请求的状态。

4. 并发处理使用的配置文件选项

O r a c l e应用为修改并发管理器的性能及设置请求提交的缺省值提供了配置文件选项。影响并发管理器性能的配置文件选项可以设置在4个不同的级别上(站点、应用、负责区和用户)。当轮廓设置在多个级别上时,更详细的级别将覆盖较一般的级别。表 1 4-1描述了并行处理使用的大部分轮廓选项,其中包括举例值。

注意Concurrent:Use ICM配置选项只有当CRM由于某种原因不能启动时才能够使用。

注意Concurrent:Debug Flags配置选项能修改事务管理器的提交性能,只有在动态调

试事务时才使用该项。

表14-1 并发处理的配置选项

配置选项描述举例

C o n c u r r e n t:R e p o r t为提交的并发请求确定打印2

C o p i e s的缺省数

C o n c u r r e n t:Hold Requests提交时掌管所有并发请求N 0

C o n c u r r e n t:

D i r e c t o r y字符模式应用中需要的拷贝/ h o m e/f i n

for Copy操作使用的目录

C o n c u r r e n t:R e q u e s t被提交的并发请求的缺省优 5 0

P r i o r i t y先权

C o n c u r r e n t:Report Access Level决定用户是否能看到自己的U s e r

请求或是否还能看到当前负责

区内任何人提交的请求

C o n c u r r e n t:Request Start Ti m e并发请求提交的缺省请求0 1-J A N-98

开始时间0 0:0 0:0 0

C o n c u r r e n t:Use ICM允许内部并发管理器替代冲Ye s

突解析管理器解决冲突问题

C o n c u r r e n t:Debug Flags用于调试事务管理器T C T M1

C o n c u r r e n t:Multiple Time Zones不管客户机时间带与并行管N o

理器时间带之间的差异,允许

立即调度被提交的请求

C o n c u r r e n t:Wait for Available TM客户机在试图寻找另一个事 6 0

务管理器之前,等待一个事务

管理器的时间(单位秒)

C o n c u r r e n t:Save Output保存并发进程的输出内容Ye s

C o n c u r r e n t:Sequential Requests并发进程的单线程处理N o

5. 日志文件

并发管理器和事务管理器产生记录其动作的日志文件。在调试管理器出现问题时,这些日志文件是最重要的咨询资源。这些日志文件位于由环境变量$ A P P L C S F和$ A P P L L O G,或

在没有设置$ A P P L C S F时由$ F N D_T O P/$A P P L L O G指定的目录中。表1 4-2列出了日志文件的类型及其对应的并发管理器和事务管理器。

表14-2 日志文件类型及其对应的并发管理器和事务管理器

文件类型文件名

内部并发管理器登录s t d.m g r或当s t a r t m g r实用程序运行时为L O G F I L E参数指定的文件名

冲突解析管理器登录 c n n n.m g r

并发管理器登录w n n n.m g r

事务管理器登录t n n n.m g r

注意n n n表示并发管理器或事务管理器相关的并发进程I D号。并发进程I D号从序列中

获取,并保存在FND_CONCURRENT_PROCESSES表中。

14.2.2 并发管理器和事务管理器的维护

并发管理器和事务管理器必须被启动和关闭。当用户启动数据库时管理器不能自动启动;当用户关闭数据库时,它也不能自动关闭。非常重要的一点是,应该在关闭数据库实例之前关闭内部并发管理器。否则,就会引起数据不可靠。当数据库启动时,随后应该启动内部并发管理器。

当使用S m a r t C l i e n t或N C A时,内部并发管理器必须从操作系统中启动,因为这时不可能从Administer Concurrent Manager表格中启动它。之后,内部并发管理器启动其他的并发管理器和事务管理器。并发管理器和事务管理器可以单个地关闭或启动。

1. 启动内部并发管理器

重要的是应注意到内部并发管理器必须由a p p l m g r(它是O r a c l e应用文件的所有者)启动,内部并发管理器继承启动它的用户的权限和环境。本节介绍启动内部并发管理器的方法。

Oracle Applications R10.7同时提供预定义管理器,包括内部并发管理器( I C M)、标准管理器、冲突解析管理器( C R M)和事务管理器( T M)。I C M控制所有其他的并发管理器,它们是处理请求的操作系统进程。在应用中,用户也可以创建任意数量的并发管理器来处理各种类型的请求或程序,并将它们专用化,以满足自己的商务要求。

2. 管理并发管理器的方式

从字符模式的O r a c l e应用格式启动内部并发管理器,需完成以下步骤:

1) 进入Administer Concurrent Manager表格(Navigate|Concurrent Manager|Administer)。

2) 执行一次封闭查寻(用Query Run格式)

3) 进入内部并发管理器的C o n t r o l字段。

4) 调用QuickPick (Field QuickPick)

5) 选择Activate Concurrent Manager。

6) 保存记录(用Screen Save格式)。

注意I C M不能从S m a r t C l i e n t或NCA Administer Concurrent Manager方式启动,必须从

操作系统启动。

3. 操作系统

本节描述如何从U N I X和N T操作系统中启动I C M。

(1) UNIX

从U N I X中启动I C M,需执行下列命令:

除了A P P S口令之外,所有其他参数都是可选的,s t a r t m g r实用程序使用的参数在表1 4-3中列出。

表14-3 startmgr UNIX命令参数

参数缺省描述

s y s m g r A P P S用户名/ A P P S口令 A P P S的用户名和口令

l o g f i l e$ m g r n a m e.m g r I C M日志文件的文件名

p r i n t e r无输出发送到的系统打印机

m a i l t o用户名通常是“A P P L M G R”,以便在I C M终止时接收

到电子邮件

r e s t a r t N =不重新启动如果设置成一个数字,则表示从ICM非正常终止

到试图重新启动之前要等待的分钟数(整数)

d i a g N Y指示所有的管理器都产生诊断输出

s l e e p 6 0秒I C M检查新的查寻控制请求前等待的秒数(整数) p m o n 2 0在检查失败的并发管理器时间段内ICM等待的睡

眠周期数(整数)

q u e s i z1在检查新的或禁止的并发管理器时间段内,ICM

等待的pmon周期数(整数)

(2) NT

在用户启动Windows NT系统中Oracle Application Server的并发管理器之前,必须创建一个与用户产品组的R e g i s t r y子键相对应的并发管理器服务。

警告为了使applmgr退出之后并发管理器仍保持运行状态,所有的Oracle应用服务器产品文件都必须驻留在并发管理器服务被安装的本地系统上。

为了创建一个与产品组的R e g i s t r y子键相对应的并发管理器服务,需重新启动服务器,重新注册a p p l m g r帐号,打开一个新的Windows NT命令提示(确保在安装和/或升级过程中对PA T H所做的任何修改起作用),并键入:

C:\>cmsrvadm add APPL_CONFIG [auto|manual]

其中,A P P L_C O N F I G是用户产品组的子键,而且如果没有指定服务启动标志,自动服务启动是缺省的。如果用户选取自动服务启动,那么在创建及每次系统引导后服务都会自动启动。

用户将被提示输入A P P S模式的用户名和口令。用户还必须提供有关Windows NT applmgr 的帐号信息,比如该帐号是本地的还是一个Windows NT域的帐号。如果用户应该在服务创建后修改其任何信息,就必须删除并重新安装服务。

注意用户可以从对O r a c l e应用产品文件有访问权限的管理员组的任意Windows NT帐号创建一个并发管理器服务。但是一旦创建了服务,那么就只有这一个帐号能访问必要的Registry信息,启动服务。

4. 关闭并发管理器

并发管理器可以使用Administer Concurrent Managers 方式从应用内部关闭,或使用C O N C S U B 程序从操作系统中关闭。必须在关闭数据库之前,首先关闭并发管理器。如果关闭数据库时并发管理器正在运行,那么O r a c l e 应用表可能会出错。

下面是要关闭并发管理器的几条原因:? 所有并发请求处于挂起状态。? 打印机定义已经被修改。? 环境文件已经被修改。

注意当并发管理器启动时,环境变量被读取并进行高速缓存。对环境变量的修改并不影响并发管理器的性能,除非把它们关闭并重新启动。5. 操作系统

C

O N C S U B 用于关闭并发管理器。关闭I C M 的句法是:

参数描述如表1 4-4所示。

表14-4 关闭I C M 时用到的参数及描述

描述

a p p s /a p p s 运行并发程序的ORACLE ID

S Y S A D M I N

应用缩写名(关闭并行管理器由系统管理员负责)System Administrator 指出谁负责运行该程序

S Y S A D M I N A O L 用户的用户名,用于更新用户并发程序修改的任意数据的W h o 列信息,并创建请求的报表输出文件名[ W ait={Y|N|n}] Wa i t =Y 时请求在返回到操作系统之前完成C O N C U R R E N T

C O N C U R R E N T 是一个简化的关键字要求的常量,它告C O N C S U B 下面是并发程序的详细信息F N D

应用的程序缩写名

A B O R T /S H U T D O W N /P R O G R A M

A B O R T 立即异常终止管理器;S H U T D O W N 在“运行”进程完成后,关闭管理器,P R O G R A M 参数用希望操作系统运行的指定程序来替代

14.2.3 定制并发管理器

几乎在所有的O r a c l e 应用实现中都定义了定制的并发管理器。例如,可以定义一个并发管理器在指定时间处理指定的请求组。尽管这些管理器是由O r a c l e 应用的用户定义的,但是对这些管理器的管理与预定义的管理器没有什么不同。

图1 4-1描述了定义定制的并行管理器应采取的动作序列,定义步骤如下:

1) 组合专用准则是并发管理器选择运行的请求时要遵守的一组专用准则集,这些准则在Combined Specialization Rules 表格中定义。如果用户不想使用组合专用准则或者在此之前已经为管理器定义了组合专用准则,那么可以跨过该步。

2) 定义并发管理器在Work Shift 表格中应该活动的时间段。如果用户想使用以前定义的工作名或想使用在应用中预定义的时间段,比如S t a n d a r d ,就可以跨过该步。

3) 指定并发管理器的名称和程序库。将组合专用准则与并发管理器联系起来,或定义一个新的专用准则并联系并行管理器表格中的工作班。

图14-1 并发管理器的定义

4) 定义并发管理器后,可以从Administer Concurrent Managers 表格中引导它。如果用户在G U I 上,则可以从Administer Concurrent Managers 表格中启动或关闭并发管理器(除

I C M 之外)。C R M 是由I C M 控制的,不能从字符模式或G U I 表格中启动或关闭。

5) 如果用户想修改请求提高的性能,可以定义并发管理器配置选项。如果用户不想使用缺省设置,可以跨过该步。

注意有关表格的详细描述,请参考《Oracle 应用R10SC 系统管理员手册》。14.2.4 故障解决方法/常见问题

问:什么是立即并发程序?

答:立即并发程序是指那些并发管理器不需要产生单独的操作系统进程的程序。无需产生单独的可执行文件是因为运行立即并发程序的可执行文件已经链接到程序库中(例如

F N D L I B R )。

问:对于其他的并发管理器,比如库存管理器,程序库是I N V L I B R ,库存管理器能从库存之外的应用中运行作业吗?

答:库存管理器不能从其他的应用中获取作业,因为其专用准则不允许这样做。问:我能从Administer Concurrent Manager 表格中启动I C M 吗?

答:不能,在1 0S C 、1 0.7N C A 或R 11中都不能。在字符模式的表格中,如果a i a p 对话运行在适当的环境中,则可以启动I C M 。

问:我能用c o n s u b .e x e 关闭N T 上的管理器吗?答:是的,可以。

问:当并发管理器为运行一个繁演的程序创建一个进程时,进程的I D 号要存到什么地方吗?

答:在R 10.7中,繁演进程的I D 号不保存在任何表中。问:当我试图启动管理器时,为什么会得到下列错误信息:

继续该过程

开始

定义并行组合专用准则定义并行工作班定义并行管理器

定义并行轮廓选项管理并行管理器

结束

完成

答:数据库中很有可能存在许多无效的对象。确认由S Y S 和S Y S T E M 所属的所有对象以及前缀是“F N D ”的所有对象都是有效的。我们建议用户运行

$ A P P L _ TO P / i n s t a l l 中的

a d p r e p d

b . s q l 脚本。a d p r e p d b . s q l 脚本使A P P S 模式中必须重新编译的代码对象无效。运行a d a d m i n 实用程序编译A P P S 模式中的所有代码对象。从S Y S T E M 用户中执行下列简单的查询语句就可以找出无效的对象。

问:当我试图启动I C M

时,为什么会得到“A P P -00988”ORACLE error 1480 in insert_i c m _r e c o r d 的错误?

答:极有可能是d b _n a m e 太长,数据库的d b _n a m e 参数必须是不多于8个字符的字母数字文本串,且不能包含任何特殊字符。如果违反了这个规则,I C M 就会退出。D b _n a m e 在数据库参数文件中设置,可以用下列命令检查:

问:当启动并发管理器时出现以下错误信息,我该怎么办?

答:用a p p l s y s (F N D 表的所有者)用户执行下列S Q L 语句检查P M O N 方法:

注意尽管PMON 方法是配置文件选项,但在System Profile Option 表格中是不可见的。P M O N 方法应该被置成L O C K 。如果不是,则按下列操作把它设置成L O C K :

P M O N 方法在F N D _P R O F I L E _O P T I O N S 表中被存储为C O N C _P M O N _M E T H O D ,可以取下列三个值:

? OS ICM 判定给进程发送kill -0后进程是否仍然在运行。这样的设置非常少见,只是为了测试一下进程是否还在那里,而且在R 10.7中不再支持这种方法。

? RDBM ICM 查询V $p r o c e s s 搜索对话期I D (启动请求的)和操作系统I D 。之所以要查询两列而不仅查询OS PID 是因为如果并发管理器使用同一个R D B M S 运行两个不同的客户机,那么两个请求可能会具有相同的OS PLD 。

? LOCK ICM 试图得到正在监视的进程的一个锁。锁的名字由序列(单个管理器的I D [例如,s t a n d a r d ])和有问题的程序来决定。如果I C M 能够得到一个特殊的锁,那么它就知道相应的进程不在运行中。

314

第三部分核心应用

下载

问:我用一个并发管理器调用库存管理器,库存管理器有一个S t a n d a r d工作班,它拥有带6 0秒睡眠时间的三个进程。我想提高库存管理器对接收到的请求的应答速度,最好的方法是什么?

答:请求时间太长,有三个可能原因:

? 程序运行时间太长。

? 对该并发管理器有太多的请求,以至于请求正在做备份。

? 睡眠时间使你的请求要等待6 0秒钟以上才能被获取。但是,对于三个进程来说,实际上平均每个请求的延时大约只有1 0~15秒。

假设用户的程序执行得很快,最有可能的情况是对并发管理器的请求太多。假设这是一个并发管理器(不是事务管理器),确定其正在接收许多请求的方法是进入Administer Concurrent M a n a g e r表格并查看并发管理器行。如果一直能看到运行的请求数等于运行进程数,那么这就是你的问题了。增加进程数会解决这个瓶颈问题,但也许会影响其他进程的性能(对于事务管理器来说,在确定这种情况时应该注意到请求失败可能是由于缺少可用的管理器造成的)。

问:如果客户机在处理一个事务过程中崩溃,而该事务又正由事务管理器处理着,该怎么办?

答:对于当前的实现,事务将继续完成。事务完成后,事务管理器可以从其他客户机应答事务请求。

问:如果事务管理器在处理一个事务过程中崩溃,该怎么办?

答:对于当前的实现,客户机将把它锁住,直到事务超时。

问:事务管理器会p i n g表以发现新的作业吗?

答:不,事务管理器不会p i n g表,被请求的、需要运行的程序直接给它发信号。

问:程序如何给事务管理器发信号?

答:事务管理器可以被定义为成一个进程集。例如,库存事务管理器是在其工作班期间运行的I N C T M进程集。

每一个事务管理器都有一个数据库管道,被称为请求管道。一次只有其中一个进程监听此管道。一旦一个进程在此管道上从客户机中接收到一个请求,它就立刻退出对管道的监听,以便队列中的下一个事务管理器进程能开始监听。每个客户机对话都有一个属于自己的管道,以从中获取事务管理器的返回结果。客户机将管道名包括在它的事务请求中。

14.3 软字段

本节概述Oracle Applications中的软字段,包括关键性概念的定义和建立软字段必须的操作步骤要点,然后我们提出一些常见的问题、会遇到的错误以及对这些错误的解决方法。本节所描述的这些信息并未包括所有的内容,更详细的信息用户应参考《Oracle Applications R 10.7软字段指南》。

Oracle Applications不支持任何对Oracle AOL表或模块的定制,即使是由O r a l e顾问进行的定制也不支持。Oracle AOL表名以“F N D_”开头。我们再次强调绝不要用S Q L*P l u s、O r a c l e 数据浏览器、数据库触发器或任何其他的工具修改O r a c l e应用的表,除非O r a c l e建议用手工方式完成。

14.3.1 软字段概念介绍

软字段在表格中以“弹出式”窗口的形式出现,窗口中包含对被称为“段”的“子字段”的提示,每一个段都有一个名字和一个有效值集。软字段被作为一个数据库列集来实现,每个段只有一个列。有两种类型的软字段:

? 键软字段。

? 描述性软字段。

1. 键软字段

键软字段是表格的整数部分。通常在应用安装时定义,且常用于唯一地标识诸如项目号或帐号这样的重要商务事项。在表格中,键软字段一直以普通字段形式出现,直到软字段窗口弹出,显示组成段的连锁值和段描述。

2. 描述性软字段

描述性软字段根据需要来定义。这些软字段提供有关特定表格上的数据的额外信息字段,以一对啤酒杯的把手形式出现,类似开、关的方括号“[ ]”。当光标到达括号处时,描述性软字段弹开。如果描述性软字段无效,光标就跨过该括号。

使用描述性软字段,可满足用户特殊的商务需要。如果表格具有所有需要信息的字段,那么用户不应该使用这些描述性软字段。表1 4-5列出的是一些通常要用到某些描述性软字段特性的情况。

表14-5 软字段的特性及用途

软字段特性用途

描述性软字段捕捉表格捕捉不到的信息

全局段无论表格中出现什么样的其他数据,每次都捕捉同样的信息

上下文敏感段有时捕捉某些信息,有时捕捉其他数据

引用字段根据表格中出现的其他数据捕捉不同的信息

3. 软字段的术语和特性

本节讨论软字段常用的一些基本术语和特性。

(1) 段

段是软字段中的一个子字段,在数据库中一个段用一个表列来代表。

(2) 值集

可以把值集当作一个值的“容器”,用户可以选择符合自己值集的值的类型——长度、格式等等。

段通常是有效的,而且一个给定软字段中的每个段都使用不同的值集。用户可以给多个段赋一个值集,甚至还可以使多个不同的软字段共享值集。所以,修改一个值集的值会影响使用该值集的所有段和报表参数。对于大多数的值集来说,当用户向软字段的段中输入值时,可以只输入那些已存在于某个段的值集中的值。另外,用户不应该修改由O r a c l e应用提供的值集,尤其是标准报表提交( S R S)值集。

如果用户的定制值集与O r a c l e应用预定义的值集同名,那么在升级过程中Oracle 应用值集会覆盖定制的值集。因些,用户取名时应十分小心。例如,在值集名中加上客户或站点的前缀。

警告用户绝对应该修改或删除Oracle应用提供的预定义值集,这种修改可能会对诸如报表这样的用户应用的性能产生不可预料的影响。

(3) 结构/帐目图表

软字段结构是段的指定配置。如果增加或删除段,或重新按排软字段中段的顺序,都会得到不同的结构。用户可以为同一软字段定义多个段结构(如果那个软字段被设计成支持多种结构)。

(4) 组合表

对于键软字段来说,组合表就是用户应用包含的、用于存储段值有效组合的一个数据库表。每一个键软字段都必须有一个组合表,它包含每个软字段的段列及其他列。组合表与用户用作项目的表是同一个表。

(5) 组合表格

对于键软字段来说,组合表格就是其基表(或视图)是组合表的表格。组合表的表格的唯一作用就是维护组合表。大多数键软字段都有一个组合表格,只有少数某些键软字段没有组合表格。没有组合表格的键软字段通过从其他表格中使用动态插入来维护。

(6) 简写软字段项

简写软字段项允许用户使用简写别名代表有效的软字段组合或有效的段值模式来快速输入键软字段的数据。用户指定哪些软字段使用简写软字段项,并定义代表软字段值的简写别名。

(7) 简写别名

用户可以很容易地定义简写别名来代表全部或部分的键软字段的段值组合。用户可以根据需要为每个键软字段定义任意多的简写别名。用户可以定义简写别名代表包含有效段值的六个段中的四个段的部分组合,其余两个段留作空白。当用户在简写窗口提示中输入该别名时,只须手工输入这两个段,其他四个段将由简写字段项替用户自动输入。或者,用户也可以定义一个别名代表一有效的软字段组合,其中所有的六个段都包含有效值且满足帐目软字段通过有效性准则。对这种简写别名,用户无需手工输入任何段值。

(8) 软字段值的安全性

软字段值的安全性为用户提供了限制一个用户在数据项中使用的值集的功能。根据用户的责任和定义的访问准则,软字段值的安全性能限制哪些值可以输入到软字段弹出窗口和报表参数中。软字段值的安全性为用户提供了对O r a c l e应用中受限数据使用的更好的控制手段。

用户可以给每个段或希望对其使用限制数据项的每个报表参数定义安全性准则。在准则内,用户可以指定段值的范围包括或不包括在使用中。一旦定义了用户的安全性准则,就可以给它们赋予责任了。这些准则对责任中的每个用户都是有效的。用户可以将不同的准则赋予不同的责任,也可以使责任共享准则。

(9) 交叉有效

交叉有效(也被称为交叉段有效)在用户输入键软字段的值时控制着用户能够创建的值组合。交叉有效性准则定义一个特殊的段是否能与其他段的指定值组合。交叉有效不同于段有效,段有效控制用户输入的某个段的值。

用户可以使用交叉有效性准则防止绝不应该存在的组合的产生(那些不应该共存在同一个组合中的组合)。例如,假设用户的公司生产计算机设备和汽车,那么他可能要防止生产“卡

车键盘”或“C P U前灯”这样的“混合”部件对象。

交叉有效性准则在用户定义它时不会对已经存在的组合产生任何影响。

(10) 动态插入

通过动态插入,可以让用户根据在外部键表格(除组合表格之外的任何表格)和组合表格本身中输入的组合自动创建新的组合。

( 11) 全局段

描述性软字段中的全局段是那些总是出现在描述性软字段弹出窗口中的段,而不管其上下文是什么(也就是说,表格中的任何其他信息)。

(12) 上下文敏感段

上下文敏感段是描述性软字段中的段,它的显示与不显示取决于用户表格中出现的其他信息。如果用户有上下文敏感段,那么描述性软字段需要通过上下文信息(一个上下文值)来判定显示哪些上下文敏感性软字段。描述性软字段可以从表格中的某个字段或描述性软字段弹出窗口内的某个特殊字段(上下文字段)中获得上下文信息。

(13) 引用字段

引用字段是普通的表格字段,它与软字段没有任何关系,除非用户定义软字段使用它作为一个参数字段。通常,应用开发人员在表格中建立描述性字段的同时指定一个或多个表格字段做为潜在的引用字段,然后在需要时再决定想使用的引用字段。

(14) 上下文字段

显示给终端用户的上下文字段只是另一种字段,它用自己的提示来完成。但是,上下文字段的性能与普通软字段的段是不同的。当用户在上下文字段中输入一个上下文值时,就能从用户输入的上下文值中看到不同的上下文敏感段。

(15) 记帐的键软字段、帐目集、帐目图表和用户是怎样链接的

帐目集由属于一个键软字段的多个帐目图表组成。O r a c l e应用的用户通过帐目集的轮廓选项A p p l S h o r t N a m e与一个帐目集联系起来。例如,Oracle General Ledger为不同帐目集的用户提供不同的记帐软字段(帐目图表)结构。Oracle General Ledger 根据General Ledger帐目集的name user轮廓选项的值来决定使用哪种软字段结构。

4. 定义描述性软字段

图1 4-2描述了建立用户的描述性软字段的关键步骤。有关各种软字段表格的详细信息,请参考《Oracle Applications R10.7软字段指南》。

(1) 定义值集表格(Define Value Sets form

定义值集表格允许用户:

? 定义或修改值集的定义。用户的软字段根据此定义使用户输入到软字段段中的值有效。

? 使软字段值的安全特性对用户的值集有效。

? 使能用户值集的QuickPick |LongList特性。

(2) 定义描述性软字段结构/段表格(Define Descriptive Flexfield Structures/Segments form)

定义描述性软字段结构/段表格允许用户:

? 定义构成用户描述性软字段结构的段,每个值集都必须与一个值集相关联。

? 指定用户描述性软字段显示的弹出窗口,包括窗口大小、段的个数或顺序以及段描述和缺省值。

相关主题
相关文档
最新文档