oracle计划付款拆分请求,创建AP计划付款API

ap_create_pay_scheds_pkg.Create_Payment_Schedules --创建计划付款

业务需要后台程序拆分发票计划付款行,可以使用上面的API。但是上述API存在如下问题

1.该API只能生成一条计划付款行,如果已经存在计划付款行,则会报错。

原因:因为每次调用该API都会生成  PAYMENT_NUM = 1 的记录。如果已经存在记录则报违反唯一性约束错误。

2.该API不能插入暂挂,暂挂原因,银行等字段

所以这个地方需要客户化cux_ap_create_pay_scheds_pkg,使其每次进入该API时生成MAX(PAYMENT_NUM)+1 的记录,

其次参数中添加 暂挂,暂挂原因,银行等字段

测试后证明:

使用上述方法可以对一张发票生成多行计划付款,而且能够实现暂挂。

但是当我们验证发票的时候,会发现验证程序会将我们插入的多行记录都删除,然后生成一行数量与发票数量相等的

计划付款,相当于将其初始化了。

验证的时候会调用AP_APPROVAL_PKG.Approve

其中有如下代码:

IF (l_recalc_pay_schedule_flag = 'Y') THEN

SELECT DECODE(NVL((MAX(aps.last_update_date)- MIN(aps.creation_date)),0),

0,'N','Y')

INTO l_diff_flag

FROM ap_payment_schedules aps

WHERE aps.invoice_id = l_invoice_id;

IF (l_diff_flag = 'N') THEN

AP_PPA_PKG.Due_Date_Sweeper(

l_invoice_id,

l_matched,

l_system_user,

l_receipt_acc_days,

l_curr_calling_sequence);

END IF;

END IF;其中: l_recalc_pay_schedule_flag在OU下设置,这个地方如果 l_diff_flag = 'N'则会进入AP_PPA_PKG.Due_Date_Sweeper。所以我们要使l_diff_flag = 'Y'

AP_PPA_PKG.Due_Date_Sweeper中会根据付款条件行与当前计划付款行条数进行对比,如果计划付款行数多于付款条件行数。

则该API会删除当前计划付款记录。然后插入新的自动生成的记录。

所以只需要在插入计划付款(cux_ap_create_pay_scheds_pkg.Create_Payment_Schedules)的时候使 aps.last_update_date 比 aps.creation_date 大个1s即可。

但是这样是否会有其他问题,还需验证。

调用 cux_ap_create_pay_scheds_pkg.Create_Payment_Schedules

BEGIN

SELECT aia.terms_id,

aia.terms_date,

aia.batch_id,

aia.invoice_amount,

aia.payment_cross_rate,

cfrh.payment_method_code, --aia.payment_method_lookup_code,

aia.invoice_currency_code,

aia.payment_currency_code,

aia.amount_applicable_to_discount,

aia.last_updated_by,

aia.created_by,

'Y',

NULL

INTO l_terms_id,

l_terms_date,

l_batch_id,

l_invoice_amount,

l_payment_cross_rate,

l_payment_method_lookup_code,

l_invoice_currency_code,

l_payment_currency_code,

l_amount_app_to_discount,

l_last_update_by,

l_created_by,

l_hold_flag,

l_iby_hold_reason

FROM ap_invoices_all aia,

cux_fin_recpay_headers_all cfrh,

cux_finreq_headers_all cfh

WHERE aia.invoice_id = p_invoice_id

AND aia.attribute1 = cfh.req_number

AND cfh.req_header_id = cfrh.req_header_id

AND rownum = 1;

cux_ap_create_pay_scheds_pkg.create_payment_schedules(p_invoice_id => p_invoice_id,

p_terms_id => l_terms_id,

p_last_updated_by => l_last_update_by,

p_created_by => l_created_by,

p_payment_priority => 99,

p_batch_id => l_batch_id,

p_terms_date => l_terms_date,

p_invoice_amount => l_invoice_amount,

p_pay_curr_invoice_amount => l_pay_curr_invoice_amount,--需要输入的金额

p_payment_cross_rate => l_payment_cross_rate,

p_amount_for_discount => l_amount_app_to_discount,

p_payment_method => l_payment_method_lookup_code,

p_invoice_currency => l_invoice_currency_code,

p_payment_currency => l_payment_currency_code,

p_calling_sequence => 'Import_invoices l_hold_flag,

p_iby_hold_reason => l_iby_hold_reason);

END;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle EBS AP (Accounts Payable) 付款创建会计科目接口是用于将付款信息传递给会计系统以创建相应的会计科目。该接口提供了一种方便快捷的方法,可以自动将付款数据同步到会计系统中,从而确保会计科目的正确性和一致性。 在使用该接口之前,需要进行一些准备工作。首先,需要在Oracle EBS AP系统中设置会计科目接口参数,包括定义会计代码、会计科目、科目类型等。接着,需要将付款信息通过接口传递给会计系统,这通常是通过采用标准数据格式(如XML或CSV)将数据导出,并使用适当的方法将其导入到会计系统中。 通过使用该接口,可以实现以下几个方面的功能。首先,将付款数据同步到会计系统中,可以确保会计科目的准确性和一致性。其次,可以自动创建会计科目,减少了手工操作的工作量和出错的可能性。同时,该接口还可以提供事务的追溯性,方便审计和查找问题时的定位。 需要注意的是,使用该接口可能需要进行一些配置和定制化工作,以适应不同的业务需求和会计系统的要求。例如,可能需要根据不同的付款类型、公司和账户设置不同的会计科目映射规则。此外,在使用该接口时,还需要确保数据传输的安全性和机密性,采用适当的加密和身份验证机制。 综上所述,Oracle EBS AP付款创建会计科目接口提供了一种方便快捷的方法,可以将付款数据同步到会计系统中,实现会计科目的自动创建和准确性。通过使用该接口,可以提高工作效率,减少人为错误,并提供追溯性和可审计性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值