当前位置:文档之家› ORACLE单据序列的概念及应用 V1[1].1

ORACLE单据序列的概念及应用 V1[1].1

单据序列的概念及应用目录文档控制 ................................................................................................. 错误!未定义书签。

概述 . (3)单据序列概念 (3)单据序列(客户化应用) (6)AR 中的单据序列 (10)AR 中的单据序列试验 (13)单据序列的实用意义分析 (22)已解决问题和未解决问题 ..................................................................... 错误!未定义书签。

未解决问题 ...................................................................................... 错误!未定义书签。

已解决问题 ...................................................................................... 错误!未定义书签。

概述本文对 Oracle ERP系统中“单据序列”的概念进行了初步的探索和实验。

目的在于进一步理解“单据序列”的概念和作用单据序列概念序列的概念Oracle 对于序列概念的描述如下:单据序列可对 Oracle Applications 产品所生成的单据进行唯一编号。

利用 OracleApplications,您可以通过在表单中输入数据并生成单据(如发票),起动一项事务处理。

单据序列会生成跟踪线索,用以标识创建了该事务处理的应用产品(如 OracleReceivables),以及所生成的原始单据(如发票编号 1234)。

单据序列可以提供完整性的证明。

例如,单据序列可用于反映每项事务处理,甚至是失败的事务处理。

单据序列还可以提供跟踪线索。

例如,单据序列可以提供一条从总帐到子分类帐,再到最初影响帐户余额的单据的跟踪线索。

由于单据序列会生成跟踪数据,因此即使单据被删除,它们的跟踪记录也会保留下来。

序列的定义Nav : System Administrator->Application->Document->Define上图我们看到的是一个序列:AP发票号,可以看出来该序列采用自动编号。

初始值为1 ,其内部的Doc_sequence_id = 5oracle 对每一个序列的使用都有跟踪记录,并且序列的跟踪记录存储在应用产品的跟踪表中,其标题为 Application Short Name _DOC_SEQUENCE_AUDIT。

例如,属于 Oracle Payables 的序列的跟踪表为 AP_DOC_SEQUENCE_AUDIT。

在这张表中,我们检索AP发票所有使用过的编号,这些编号被使用在哪种单据类型上。

如下图所示上图中,DOC_SEQUENCE_ID是单据序列的内部ID , 5表示AP 发票;而DOC_SEQUENCE_ASSIGNMENT_ID是单据分配的内部ID,它表示该单据序列被分配在哪种单据类别上(下文会有描述);而DOC_SEQUENCE_VALUE表示该单据序列被分配在某种单据类别上,曾经在什么时候被使用过,其值是多少。

序列的分配Nav : System Administrator->Application->Document->Define上图中,我们看到单据序列:AP发票号被分配给单据类别:借项通知单。

其DOC_SEQUENCE_ASSIGNMENT_ID=8 。

单据类别的定义Nav : System Administrator->Application->Document->Category单据类别标识了存储单据(由用户输入的事务处理产生)的数据库表。

使用类别可对单据进行更精确地分类。

例如,您可以将应收帐款发票分成以下几个不同的类别:拖欠款项定金保证金借项通知单贷项通知单销售发票客户服务发票同样,您也可以将应付帐款或采购发票分成以下几个不同的类别:标准费用报表预付款利息贷项通知单借项通知单单据序列(客户化应用)我们知道,定义单据类别的时候只是指定了表的名字,而在定义单据序列,以及把单据序列分配给单据类别的时候也没有指定任何子段,那么oracle 是如何利用单据序列来给特定的字段自动生成编号的呢?我们来看个客户化程序中使用单据序列的实验例子。

客户化的程序中如何使用单据序列?1、在 HWCUST Schema 中创建一个测试表create table cux_seq_test(test_num number null,test_name varchar2(255) null)2、在APPS中创建同义词,并注册表和子段。

CREATE SYNONYM cux_seq_test for hwcust.cux_seq_test;EXECUTE ad_dd.register_table('HW', 'cux_seq_test', 'T', 8, 10, 90);EXECUTE ad_dd.register_column('HW', 'CUX_SEQ_TEST', 'TEST_NUM', 1,'NUMBER', 30, 'Y', 'N' );EXECUTE ad_dd.register_column('HW', 'CUX_SEQ_TEST', 'TEST_NAME', 2,'VARCHAR2', 255, 'Y', 'N' );3、Nav : System Administrator->Application->Document->Category定义单据类别4、定义单据序列Nav : System Administrator->Application->Document->Define5、序列分配:Nav : System Administrator->Application->Document->Define6、在Form 中使用出口函数:用Form 测试:上图中,当我们点击 [GetSeq] 按钮时,我们就调用Get_seq_num ,然后把值从参数:PARAMETER.INTEREST_INV_DOC_SEQ 中取出来放入Test Num ,就出现如上结果。

每点击一次,就会取到一个序列。

那么,如果我们又不想序号自动生成了该怎么办?我们只需要把单据序列分配失效就可以了。

我们在Form测试的时候,发现还是会自动生成。

这说明,序列分配没有立即失效。

但是过了一段时间再作Form测试时,发现序号不会自动生成了。

也就是我们失效序列分配的动作起作用了。

7、查看首先,我们查找我们刚定义的单据序列的doc_sequence_id =343 , 一般来说自己定义的单据序列的跟踪表是:FND_DOC_SEQUENCE_AUDIT。

select * from FND_DOC_SEQUENCE_AUDIT where doc_sequence_id = 343AR 中的单据序列我们通过一个实验来看看 AR中的单据序列应用。

下面的步骤是Oracle 文档中描述的,为某种“事务处理类型”启用单据序列所需要的步骤。

步骤 1 启用“连续编号”配置文件选项 (Sequential Numbering)要实施单据序列,首先必须启用“连续编号”配置文件选项。

您可以在地点层和(或)应用层设置此选项。

要查看此选项的当前设置,请定位至“个人配置文件值”窗口,然后查询“连续编号”配置文件选项。

注:您可以在“个人配置文件值”窗口中查看此配置文件选项,但是不能对其进行更新。

您可以通过浏览器访问此窗口。

有效的配置文件选项值为:不使用您可以始终输入事务处理。

在输入事务处理时,光标将跳过“单据编号”字段。

如果将此配置文件选项设置为此值,则不能使用“自动收款”功能。

始终使用如果事务处理没有序列,则不能输入事务处理。

此值要求您在输入事务处理时输入单据编号。

部分使用即使事务处理没有序列,您也可以输入事务处理。

但是,系统会向您发出警告。

例如,如果要将连续编号用于自动收款而不作其它用途,则请使用此值。

注意:应收款管理系统的自动收款功能会在创建收款时使用单据序列。

因此,如果要使用此功能,您必须将此配置文件选项设置为“部分使用”或“始终使用”。

在下面的实验中,我们设置成“部分使用”步骤 2 定义“生成单据编号”配置文件选项(AR: Document Number Generation Level)配置文件选项“AR:生成单据编号层”,使您可以确定应收款管理系统何时生成事务处理的单据编号。

您可以选择在提交事务处理或完成事务处理时生成单据编号。

默认值为“提交事务处理时”。

也就是说这个“配置文件”可以不设置,因为如果程序取不到这个“配置文件”的值,则系统会在“提交事务处理”时生成单据编号。

在下面的实验中,我们不设置这个配置文件选项,也就是说,我们使用默认值。

步骤 3 选择单据编号是否与事务处理编号相同在创建或导入事务处理时,事务处理批来源会确定是应收款管理系统自动生成批和事务处理编号,还是需要人工输入这些编号。

事务处理批来源还会确定应收款管理系统对于单据和事务处理编号是否使用同一编号。

注:如果您的应用产品使用无间隙的单据排序,则此选项可确保事务处理编号也是无间隙的编号。

要确保事务处理批来源的单据编号和事务处理编号相同,请执行以下操作:1. 定位至“事务处理来源”窗口。

2. 输入或查询事务处理来源。

请参阅:事务处理批来源3. 选定“将单据编号复制至事务处理编号”复选框。

4. 保存您所做的工作。

注意:如果“将单据编号复制至事务处理编号”选项设置为“是”,则应收款管理系统中可能有多个事务处理具有相同的事务处理编号和批来源。

但是,对于同一种事务处理类型,单据编号和事务处理编号始终唯一。

在下面的实验中,我们会定义若干种事务处理来源批。

分别两种情况A: 选定“将单据编号复制至事务处理编号”复选框。

B: 不选定“将单据编号复制至事务处理编号”复选框。

参见下一章:《AR 中的单据序列试验》步骤 4 定义序列使用“单据序列”窗口来定义序列的名称、类型和初始值。

您可以使用系统管理员责任来访问此窗口。

您无需为输入的每项事务处理定义不同的序列。

相关主题