ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 数据库 >> Oracle >> AR模块小结

AR模块小结

来源:网络整理     时间:2015-03-26     关键词:

本篇文章主要介绍了"AR模块小结",主要涉及到方面的内容,对于Oracle感兴趣的同学可以参考一下: 1. AR事务处理1.1. 界面(表结构)AR Transactions 界面展示路径:AR -> Transactions 对应...

1.      AR事务处理

1.1.      界面(表结构)

AR Transactions 界面展示

路径:AR -> Transactions   对应后台表:RA_CUSTOMER_TRX_ALL

1,Source - 定义路径:AR –>Setup -> Transactions -> Sources

   对应后台表:RA_BATCH_SOURCES_ALL

   与AR事务处理后台表关联关系如下:

SELECT

    RCT.TRX_NUMBER

   ,RBS.NAME

   ,RBS.ORG_ID

   ,RBS.STATUS

   ,RBS.END_DATE

   ,RBS.START_DATE

FROM

    ra_customer_trx_all rct

   ,ra_batch_sources_all rbs

WHERE

    rct.batch_source_id = rbs.batch_source_id

AND rct.customer_trx_id = &customer_trx_id;

 

2,Class and Type – 定义路径:AR –>Setup -> Transactions -> Transactions Typs

   对应后台表:RA_CUST_TRX_TYPES_ALL  

    在事务处理界面录入时,选择Class之后,Type字段对应的值集也会随之变化。

与AR事务处理后台表关联关系如下:

SELECT

    RCT.TRX_NUMBER

   ,rctt.name

   ,rctt.description

   ,rctt.type

   ,rctt.set_of_books_id

   ,rctt.start_date

   ,rctt.end_date

FROM

    ra_customer_trx_all rct

   ,ra_cust_trx_types_all rctt

WHERE

    rct.cust_trx_type_id = rctt.cust_trx_type_id

AND rct.customer_trx_id = &customer_trx_id;

 

3,Bill to  – 定义路径:AR –> Customers -> Standard

      Bill to 可以理解为邮寄发票的客户以及客户地址,录入客户时,会自动带出其地

   址,客户编号和付款期限,其中付款期限取自客户Bill to site use层,也可以不使

   用客户带出的,另外重新指定付款期限。

   对应后台表和事务处理的关联关系在第3章“客户”中详细讲述,此处不再解释。

4,Distributions   

      这个界面展示了对应事务处理的收款,收益和税的金额,GL账户。意义是:

     DR  应收款项-销售商品   5638元  表示企业销售商品而产生一笔应收款尚未收到

      CR  税                               418元 

 CR  业务收入-销售商品  5220元 表示企业因为销售商品当期增加了一笔收入

  DR表示: debit record – 借方记录   CR表示: credit record – 贷方记录

     后台表:RA_CUST_TRX_LINE_GL_DIST_ALL

  与AR事务处理后台表关联关系如下:

SELECT ct.trx_number

      ,ctl.description

      ,fnd_flex_ext.get_segs('SQLGL',

                             'GL#',

                             gcc.chart_of_accounts_id,

                             gcc.code_combination_id) account_number

      ,to_number(decode(gd.account_class,

                        'REC',

                        decode(sign(nvl(gd.amount, 0)),

                               -1,

                               NULL,

                               nvl(gd.amount, 0)),

                        decode(sign(nvl(gd.amount, 0)),

                               -1,

                               -nvl(gd.amount, 0),

                               NULL))) entered_dr

      ,to_number(decode(gd.account_class,

                        'REC',

                        decode(sign(nvl(gd.amount, 0)),

                               -1,

                               -nvl(gd.amount, 0),

                               NULL),

                        decode(sign(nvl(gd.amount, 0)),

                               -1,

                               NULL,

                               nvl(gd.amount, 0)))) entered_cr

  FROM ra_customer_trx_all          ct

      ,ra_customer_trx_lines_all    ctl

      ,ra_cust_trx_line_gl_dist_all gd

      ,gl_code_combinations         gcc

 WHERE gd.customer_trx_id = ct.customer_trx_id

   AND gd.customer_trx_line_id = ctl.customer_trx_line_id(+)

   AND gcc.code_combination_id = gd.code_combination_id

   AND ct.customer_trx_id = &customer_trx_id;

 

      如果不需要关联事务处理行信息,也可以将ra_cust_trx_line_gl_dist_all

      直接与ra_customer_trx_all表关联(customer_trx_id),就不需要使用行ID的外

       连接了。

5,Installments   

       此界面展示了付款信息,对应后台表:AR_PAYMENT_SCHEDULES_ALL

SELECT

    aps.due_date             --到期日

   ,aps.amount_due_original  --原始金額

   ,aps.amount_due_remaining --餘額

   ,aps.status               --狀態

   ,aps.cust_trx_type_id     --事務處理類型ID

   ,aps.customer_id          --客戶賬戶ID

   ,aps.customer_site_use_id --客戶Bill to 地點使用層ID

   ,aps.org_id               --OU

FROM

    ra_customer_trx_all      rct

,ar_payment_schedules_all aps

WHERE

    rct.customer_trx_id = aps.customer_trx_id

AND rct.customer_trx_id = &customer_trx_id;

 

       技术上经常使用这张表计算事务处理的余额,可用以下sql:

          值得注意的是以下罗列的几个字段:

amount_due_remaining

当前事务处理的余额

status

“OP”表示这张事务处理还有余额

“CL” 表示这张事务处理已经被核销了,

没有余额获取余额可以使用条件status = 'OP'

customer_id

可以与HZ_CUST_ACCOUNTS表中的主键CUST_ACCOUNT_ID关联起来,获取客户账户层信息

customer_site_use_id

可以与HZ_CUST_SITE_USES_ALL表中的主键SITE_USE_ID关联起来,获取客户地点层信息(更多信息见第3章”客户”)

6,Transactions Lines And Tax

对应后台表:RA_CUSTOMER_TRX_LINES_ALL

存储了对应客户的物料,单位,单价,数量,销售订单以及交货地址等等信息。

在此介绍一些相关的字段:

CUSTOMER_TRX_LINE_ID

事务处理行ID,主键

CUSTOMER_TRX_ID

事务处理ID,用于与RA_CUSTOMER_TRX_ALL关联

INVENTORY_ITEM_ID

物料ID,可与organization_id一起使用,在mtl_system_items_b表中找到一条记录

DESCRIPTION

事务处理行说明

UNIT_SELLING_PRICE

不含税单价

LINE_TYPE

对应于快速编码类型“STD_LINE_TYPE

INTERFACE_LINE_CONTEXT

行接口表的上下文

EXTENDED_AMOUNT

不含税总价

LINK_TO_CUST_TRX_LINE_ID

对于行类型为“TAX”的数据,可以关联到其对应的行类型为“LINE”的数据

SHIP_TO_CUSTOMER_ID

可以与HZ_CUST_ACCOUNTS表中的主键CUST_ACCOUNT_ID关联起来,获取客户账户层信息

SHIP_TO_SITE_USE_ID

可以与HZ_CUST_SITE_USES_ALL表中的主键SITE_USE_ID关联起来,获取客户地点层信息(更多信息见第3章”客户”)

TAX_LINE_ID

可以与ZX_LINES关联获取税信息

INTERFACE_LINE_CONTEXT的值定义:

确定好了上下文,其弹性域也确定下来了(如下图所示),在使用Auto Invoice生成AR事务处理时,要依此向接口表对应字段插值。

7,Sales Person 

设置路径:AR –> Setup -> Transactions -> Salespersons

可以在如下界面看到销售员具体信息:

对应后台表介绍:

销售员= 资源+员工的分配+OU

销售员表:JTF_RS_SALESREPS

资源信息表:JTF_RS_RESOURCE_EXTNS

销售员与AR事务处理的关联可使用以下sql:

SELECT jrs.*

  FROM ra_customer_trx_all rct, jtf_rs_salesreps jrs

 WHERE rct.primary_salesrep_id = jrs.salesrep_id

   AND rct.org_id = jrs.org_id

   AND rct.customer_trx_id = &customer_trx_id;

 

1.2.       接口(AUTO INVOICE)

Auto Invoice是由Oracle EBS提供的用来导入外部系统应收数据的,主要涉及到两张接口表:

RA_INTERFACE_LINES_ALL

存放LINE,TAX,FREIGHT等信息

RA_INTERFACE_DISTRIBUTIONS_ALL

存放REC,REV,FREIGHT,TAX等DISTRIBUTION信息,如果没有,ORACLE将采用AUTO-ACCOUNTING

RA_INTERFACE_SALESCREDITS_ALL

存放SALESCREDITS信息,如果在SYSTEM OPTION 中设置REQUIRE SALESPERSON,那就一定要插这个表

RA_INTERFACE_ERRORS_ALL

错误接口表

步骤1: 向接口表内插入数据

----待续

步骤2: 运行请求集Autoinvoice Master Program

----待续

步骤3: 异常检查

----待续

1.3.       创建定金发票

定金发票属于AR事务处理的一个类,它的特点是没有事务处理行。业务上它表示已经收到钱的预收款发票。

创建定金发票脚本

定金发票的创建有API:ar_deposit_api_pub.create_deposit

2.      AR收款

2.1.       界面(表结构)

AR Transactions 界面展示

路径:AR -> Receipts –> Receipts  对应后台表:AR_CASH_RECEIPTS_ALL

1,Receipt Method

定义路径:AR –>Setup -> Receipts -> Receipt Classes

收款方法定义在收款类别之下,一个收款类别下可以定义多个收款方法,但不同

的收款类别下收款方法的名字不能相同(与其后台表唯一索引有关)。

对应后台表:AR_RECEIPT_CLASSES   AR_RECEIPT_METHODS

而在收款方法下,可以定义若干个银行账户(银行,分行,账户):

对应后台表:AR_RECEIPT_METHOD_ACCOUNTS_ALL

当在收款界面选择收款方法时,会自动带出其对应的主汇款银行,分行和账户名

以上看的比较杂乱,所以画了一张图来展示各表之间的关联关系:

2,State :

    界面上的State存于AR_CASH_RECEIPT_HISTORY_ALL表中的Status字段,这张

       表存储了每张收款各阶段的状态,一条收款AR_CASH_RECEIPT_HISTORY_ALL

表中可能有多条记录,如果要取收款的当前态,则可以添加条件,字段

“CURRENT_RECORD_FLAG”为“Y”。

        状态有以下几种分类:

APPROVED 

This status is valid only for an automatically created receipt and indicates that the receipt was approved for automatic creation.

CONFIRMED 

This status is valid only for an automatically created receipt and indicates that the receipt was confirmed by the customer.

REMITTED 

This status is valid for both automatically and manually created receipts and indicates that the receipt was remitted.

CLEARED 

This status is valid for both automatically and manually created receipts and indicates that the receipt was cleared.

REVERSED 

This status is valid for both automatically and manually created receipts and indicates that the receipt was reversed.

3,Customer - 定义路径:AR –>Customers -> Standard 

        名称:HZ_PARTIES.PARTY_NAME

        番号:HZ_CUST_ACCOUNTS.ACCOUNT_NUMBER

        事业所:HZ_CUST_SITE_USES_ALL.LOCATION

        关联关系如下: 

SELECT cr.receipt_number,

       cr.status,

       hp.party_name,

       hca.account_number,

       hcsua.location,

       hcsua.site_use_code

  FROM ar_cash_receipts_all   cr

      ,hz_cust_site_uses_all  hcsua

      ,hz_cust_acct_sites_all hcas

      ,hz_party_sites         hps

      ,hz_parties             hp

      ,hz_cust_accounts       hca

 WHERE cr.customer_site_use_id = hcsua.site_use_id

   AND hcsua.cust_acct_site_id = hcas.cust_acct_site_id

   AND hcas.party_site_id = hps.party_site_id

   AND hcas.cust_account_id = hca.cust_account_id

   AND hps.party_id = hp.party_id

   AND cr.cash_receipt_id = &cash_receipt_id;

 

4,Remittance Bank - 定义路径:

        关联关系可以参考1中的图片。

2.2.       API脚本Demo

--此处参考My Oracle Support - Doc ID1361075.1

收款对应的API众多,很多都没有使用过,此处挑选比较常见的进行举例介绍。

AR_RECEIPT_API_PUB.CREATE_CASH – 创建收款

使用此API一次只能生成一条收款,创建完成之后,该订单状态为“未核销”状态。

可使用以下脚本,导入收款:

运行如上脚本(不同环境,需要更换对应数值),则可在系统中生成一条收款,截图如下所示:

AR_RECEIPT_API_PUB.APPLY – 核销收款

可以利用这个API来核销一张发票,可以使用以下脚本达到目的:

效果如下截图:

对应事务处理,可查看其余额少了1000元,如下图所示:

AR_RECEIPT_API_PUB.CREATE_AND_APPLY–创建并核销收款

这个API看上去是前两个API的结合,但使用方面不如分别使用前两个来的灵活。一次性创建并核销就结束了,但如果想要多次核销(部分核销)就必须使用前两个API的结合了。

此API对应脚本如下:

效果如下图所示:新建了一张收款,且这张收款已经被核销:

对应的事务处理:

AR_RECEIPT_API_PUB.UNAPPLY –将核销过的收款取消核销

这个API的操作类似于在核销界面将已经核销数据的标识取消并保存

这样原本已经核销的收款就还原回了未核销的状态(ar_receivable_applications_all表会存有记录)。

对应的事务处理未核销金额也会变回核销之前的金额。

对应脚本如下:

运行之后,效果如下:对于之前核销过的收款,又变回了未核销状态:

AR_RECEIPT_API_PUB.APPLY_ON_ACCOUNT–将收款核销到账户

这个API可以将收款核销到账户。前提是收款已经生成,因为API中需要用到cash_receipt_id取寻找需要被核销的收款。

对应脚本如下:

运行之后,效果如下:

在点击生成账户之后,会可以看出其核销到账户的意义,生成账户如下如所示:

创建完成之后,可以查看会计分录:

倒数第三段存储的是对应公司的账户编号(Account Number)。

AR_RECEIPT_API_PUB.UNAPPLY_ON_ACCOUNT– 取消核销到账户的收款

这个API的作用与之前AR_RECEIPT_API_PUB.APPLY_ON_ACCOUNT正好相反,执行如下脚本:

运行此脚本之后,可以取消之前核销的收款,运行效果如下图所示:

此时,查看会计分录:

AR_RECEIPT_API_PUB.REVERSE – 反向收款

将之前的收款做逆向操作,执行脚本如下:

执行脚本之后,对应的收款就会变为不可编辑状态,效果如下图所示:

AR_RECEIPT_API_PUB.ACTIVITY_APPLICATION–核销活动

此API将收款核销到一个活动。其中参数p_applied_payment_schedule_id对应活动列表如下图所示:

-2

Short Term Debt

-3

Receipt Write-off

-4

Claim Investigation

-5

Chargeback

-6

Credit Card Refund

-7

Prepayment

-8

Refund

-9

Credit Card Chargeback

这些活动的业务意义暂缺

对应API脚本如下:

执行脚本之后的效果,如下如所示:

创建会计分录之后查看:

AR_RECEIPT_API_PUB的其他

另外一些API并没有使用过,但基本上脚本需要的参数,都可以通过以上介绍的一些表获取到,所以等用到的时候再做总结。

3.       客户

R12新增了名为TCA(Trading Community Architecture)的架构,用来支持复杂的贸易关系,而客户数据就存于这种架构之中,在此仅从AR引申至各个客户表,做说明介绍。

3.1.       界面(表结构)

客户表介绍:(来源R12+TCA后台表逻辑入门探索 – 作者:Hansen.Wang)

HZ_PARTIES

存放成员的基本信息,该信息可以用于建立两个成员之间的联系,不同的成员可以使用相同的成员名称。该表记录的生成是在建立相应成员的时候,如果两个成员之间有关联关系时,该表还会产生一条成员类型为PARTY_RELATIONSHIP的记录来标示两者的关系

HZ_PARTY_SITES

该表存储的是成员的地点信息,主要功能是连接成员表(HZ_PARTIES)和地址表(HZ_LOCATIONS),一个地点可以被多个成员使用,一个地址也可以为多个地点所使用

HZ_CUST_ACCOUNTS

该表主要存储客户账户(在系统客户也即是客户账户)以及与实施公司有业务来往的组织或人员的信息(银行,分行,联系人),为这些组织或人员创建客户账户后,也可以成为客户。该表存储信息的焦点是在账户的商业关系以及关系上的商业活动(客户银行与分行的业务关系,以及联系人与客户之间的关系)。由于一个成员对应多个账户,该表可能会存在多条记录对应同一个成员表记录

HZ_CUST_ACCT_SITES_ALL

该表主要存放所有OU的客户账户地点,也即是通过该表来对限制当前OU能与哪些客户地点进行业务操作,一个客户账户可以有多个客户账户地点,一个客户的账户地点可以被多个OU使用

HZ_CUST_SITE_USES_ALL

该表存储的是账户地点的使用目的(收单方,收货方)。每个客户账户地点可以有一个或多个使用目的

HZ_LOCATIONS

HZ_LOCATIONS表存放存放地址的详细信息,例如街道地址,邮政编码,城市,省份

AR事务处理和收款均有入口与客户表关联,在文章1,2章都有提及,在此仅从事务处理界面开始介绍:此界面展示的客户信息较多,介绍如下:

必填项是Bill to地址:展示了

客户名(hz_parties.party_name),

客户账号(hz_cust_accounts.account_number)

客户地址(hz_cust_site_uses_all.location)

具体地址详情(hz_locations.address1~3)

关联关系如下sql所示:

SELECT

rct.trx_number AS "Transaction Number"

   ,hp.party_name AS "Bill to Name"

   ,hca.account_number AS "Bill to Number"

   ,hcsua.location AS "Bill to Location"

   ,hl.address1 AS "Bill to Address1"

   ,hl.address2 AS "Bill to Address2"

   ,decode(hcas.cust_acct_site_id,

           NULL,

           NULL,

           arh_addr_pkg.format_last_address_line(hl.address_style,

                                                 hl.address3,

                                                hl.address4,

                                                 hl.city,

                                                 hl.county,

                                                 hl.state,

                                                 hl.province,

                                                 ftt.territory_short_name,

                                                 hl.postal_code)) AS "Bill to Address3"

FROM

ra_customer_trx_all    rct

   ,hz_cust_site_uses_all  hcsua

   ,hz_cust_acct_sites_all hcas

   ,hz_cust_accounts       hca

   ,hz_party_sites         hps

   ,hz_locations           hl

   ,hz_parties             hp

   ,fnd_territories_tl     ftt

WHERE

rct.customer_trx_id = &customer_trx_id

AND rct.bill_to_site_use_id = hcsua.site_use_id

AND hcsua.cust_acct_site_id = hcas.cust_acct_site_id

AND hcas.cust_account_id = hca.cust_account_id

AND hcas.party_site_id = hps.party_site_id

AND hps.location_id = hl.location_id

AND hps.party_id = hp.party_id

AND ftt.language = userenv('LANG')

   AND hl.country = ftt.territory_code;

 

“SHIP TO”客户的信息sql与以上类似,只需要把bill_to_site_use_id用ship_to_site_use_id替代即可。

3.2.       API脚本Demo

hz_cust_account_v2pub.create_cust_account

创建客户账户

hz_location_v2pub.create_location

创建客户地点

hz_party_site_v2pub.create_party_site

创建客户地点

hz_cust_account_site_v2pub.create_cust_acct_site

创建客户账户地点

hz_cust_account_site_v2pub.create_cust_site_use

创建客户账户地点使用

HZ_CUST_ACCOUNT_V2PUB.CREATE_CUST_ACCOUNT

若在参数中指定party_id,则新建的账户会在指定的客户底下。如不指定,则会新建一个客户(需要指定客户编码)。另外客户类型可以分为“组织”和“个人”,脚本中新建的是“组织”类型,若要新建个人类型,参数将会不同。

脚本如下:

运行脚本并提交后,查看界面:

点击Details进入之后,空空如也,是因为我们还没有新建客户账户地点。

HZ_CUST_ACCOUNT_SITE_V2PUB.CREATE_CUST_ACCT_SITE

在创建客户账户地点之前,先要确保客户地点的存在,按之前的操作,此时是没有客户地点的(仅新建了客户),所以还需要使用API(hz_party_site_v2pub.create_party_site)先创建客户地点。但这还没完,请看下面的描述:

DESCRIPTION: This routine is used tocreate a Party Site for a party. Party Site relates an existing party from theHZ_PARTIES table with an address location from the HZ_LOCATIONS table.The APIcreates a record in the HZ_PARTY_SITES table. You can create multiple partysites with multiple locations and mark one of those party sites as identifyingfor that party. The identifying party site address components are denormalizedinto the

HZ_PARTIES table. If orig_system ispassed in, the API also creates a record in the HZ_ORIG_SYS_REFERENCES table tostore the mapping between the source system reference and the TCA primary key.

所以创建一个客户账户地点的流程是:第一,创建客户地址详情;第二,创建客户地址;第三,创建客户账户地点。

对应脚本如下:

HZ_CUST_ACCOUNT_SITE_V2PUB.CREATE_CUST_SITE_USE

以上两步结束后,可以查看客户账户以及它账户的地点,如下图所示:

运行以下脚本,生成客户账户地点使用信息:

点击详细:

4.       子分类账

子分类帐会计就是连接子模块会计和GL凭证之间的桥梁,所有子模块(包括FA)产生的会计分录都是使用SLA产生的,存放在SLA的表中,然后通过过帐程序过帐到GL。

4.1.       界面(表结构)

创建会计分录

事务处理或者收款界面,都可以创建会计分录:

点击创建时,会弹出如下界面,供用户选择需要生成哪种会计分录:

1,Create Final Accounting Post to GL

     创建最终会计分录,并传送至GL

2,Create Final Accounting

     创建最终会计分录

3,Create Draft Accounting

     创建暂定会计分录

这三种创建方式的不同之处在于

1方式:创建日记账分录,传送至总账并过账

2方式:只是创建最终的日记账分录,不传总账。若后续需要上传则需要运行请求:  

3方式:只是创建临时的日记账分录,可多次创建,后一次创建的分录会覆盖之前的记录。

另外还可以运行标准请求,生成会计分录:

在界面使用Create Accounting和提交并发请求两者的区别在于:

1,  提交并发请求,运行结束后可以查看Output中的报表内容。

2,  提交并发请求,可以一次批量处理符合条件的事务处理或收款等,而界面只会为当前记录生成会计分录。

查看会计分录

点击ViewAccounting

其中账户每段的含义需要去查看它对应的Flexfield:

路径:GL -> Setup -> Financials -> Flexfields -> key ->Segments

对应SQL查询

1,AR事务处理

   录入应收发票,可查看其分配信息:

   创建会计分录之后,可以通过XLA表查看子分类账信息

 

   2,AR收款

     收款录入或者核销以后,可以通过sql查到收款的分录信息:

     创建会计分录之后,可以通过XLA表查看子分类账信息

以上就介绍了AR模块小结,包括了方面的内容,希望对Oracle有兴趣的朋友有所帮助。

本文网址链接:http://www.codes51.com/article/detail_122032.html

相关图片

相关文章