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

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

单据序列的概念及应用

目录

文档控制 ................................................................................................. 错误!未定义书签。概述 . (3)

单据序列概念 (3)

单据序列(客户化应用) (6)

AR 中的单据序列 (10)

AR 中的单据序列试验 (13)

单据序列的实用意义分析 (22)

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

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

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

概述

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

进一步理解“单据序列”的概念和作用

单据序列概念

序列的概念

Oracle 对于序列概念的描述如下:

单据序列可对 Oracle Applications 产品所生成的单据进行唯一编号。利用 Oracle

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

理。单据序列会生成跟踪线索,用以标识创建了该事务处理的应用产品(如 Oracle

Receivables),以及所生成的原始单据(如发票编号 1234)。

单据序列可以提供完整性的证明。例如,单据序列可用于反映每项事务处理,甚至是失败的事务处理。

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

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

序列的定义

Nav : System Administrator->Application->Document->Define

上图我们看到的是一个序列:AP发票号,可以看出来该序列采用自动编号。初始值为1 ,其内部的Doc_sequence_id = 5

oracle 对每一个序列的使用都有跟踪记录,并且序列的跟踪记录存储在应用产品的跟踪表中,其标题为 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

定义单据类别

相关文档
最新文档