Document TitleHow to troubleshoot Funds Check Hold Issues on Payables Invoices

最近发票验证的时候 总是被系统自动加上HOLD :资金检查无法进行[@more@]

Document TitleHow to troubleshoot Funds Check Hold Issues on Payables Invoices (Doc ID 1055606.1)
topright.png
leftside.png
Modified Date LabelModifiedt.gifModified Date08-NOV-2010t.gifDocument Type LabelTypet.gifDocument TypeTROUBLESHOOTINGt.gifStatust.gifPUBLISHED(EXTERNAL)t.gifPriorityt.gif3t.gifquicklink_smlarrowdown_enabled.gift.gifTo Bottom

In this Document
Purpose
Last Review Date
Instructions for the Reader
Troubleshooting Details
1. Apply Latest Rollup Patch
2. Cleanup the Data
3. Revalidate/Cancel the invoice
4. Debug
4.a) FND Debug log
4.b) Diagnostics
5. Analyze
References


Applies to:

Oracle Payables - Version: 12.0.0 to 12.1.2 - Release: 12.0 to 12.0
Information in this document applies to any platform.

Purpose

This document will step through the actions user should take to resolve Cant Funds Check hold or Funds Check issues on a Payables Invoice.

Background
----------------
When a payables invoice is validated in an Encumbrance enabled environment, funds reservation is done during the validation and encumbrance accounting is generated.

If there is any failure during this funds reserve process, the invoice cannot be fully validated and goes on hold. Usually, the hold is Cant Funds Check.

Events Information
--------------------
The validation process creates two events in XLA_EVENTS for the entity (the invoice) in a bugdetary control enabled environment.

One of the events is an Encumbrance event. This event had budgetary_control_flag = 'Y'. The event_id on this event is stamped in the AP_INVOICE_DISTRIBUTIONS_ALL.bc_event_id
The second event is the actual event. This event has budgetary_control_flag = 'N'. The event_id on this event is stamped in the AP_INVOICE_DISTRIBUTIONS_ALL.accounting_event_id.

Process Information
-----------------------
The encumbrance event that is generated during validation is also processed at the same time.
Validation calls the funds reserve process that reserves funds against the accounts on the invoice from the budget. If this is successful, a header record in XLA_AE_HEADERS and encumbrance accounting (Debit to Expense and Credit to RFE) is created in XLA_AE_LINES.

The actual event generated during the validation is processed only during Create Accounting.
The Create Accounting process generates two headers in XLA_AE_HEADERS. One header is an encumbrance header with actual_flag = 'E' and another is for actual accounting with actual_flag = 'A'.

The lines generated under the Actual header is the proprietary accounting (Debit to Expense and Credit to Liability). The lines generated under the Encumbrance header is the reversal of invoice encumbrance which is Cr to Item Expense and Dr to RFE.

Hence its expected that when an invoice is fully accounted, net encumbrance on the invoice should be 0.

The encumbrance generated during validation should be relieved during accounting.

Last Review Date

January 28, 2010

Instructions for the Reader

A Troubleshooting Guide is provided to assist in debugging a specific issue. When possible, diagnostic tools are included in the document to assist in troubleshooting.

Troubleshooting Details


If the invoice is on 'CANT FUNDS CHECK' hold or any budgetary event prevents the AP period close, use the following steps to troubleshoot the issue.

1. Apply Latest Rollup Patch

Apply PSA Rollup Patch 9100984:R12.PSA.A for 12.0
and Patch 9100984:R12.PSA.B for 12.1
This patch has the latest fixes related to budgetary control for Payables. These patches are required to prevent known code issues. It also delivers an enhanced version of the concurrent request "Budgetary Control Optimizer Program".

2. Cleanup the Data

Run Budgetary Control Optimizer Program. with Shortname = BCOPT
This request keeps the BC Data optimized as well as to cleanup the orphan processed/unprocessed BC Events. Any orphan events that prevented period close should be fixed now.

If this program is not showing up under the required responsibility,
a) Go to System Administrator responsibility.
b) Navigate to Security->Responsibility->Request
This will open Request Groups form.
c) Choose the Request Group and Application (Example:Group = All Reports, Application=Payables)
d) Add the request
Type = Program
Name = Budgetary Control Optimizer Program
Application = 'Public Sector Financials'
Save.

Now this concurrent request will be available for submission in the responsibility that has the above Request Group assigned. Submit the request Budgetary Control Optimizer Program.

3. Revalidate/Cancel the invoice

If still unsuccessful in validating or canceling the invoice, click on Tools>View Results from
Invoice workbench to view detailed error message for the specific invoice.

4. Debug

If the error message does not help identify the cause and the fix, further troubleshooting can be done using FND Debug log and Diagnostics.

4.a) FND Debug log

4.a.1 - Enable FND Debug log

Set the following profiles at user level
FND: Debug Log Enabled 'Yes'
FND: Debug Log Level 'Statement'
FND: Debug Log Module '%'

4.a.2 Generate FND Debug log

Query the invoice in the Invoice Workbench.
Go to Help->About Oracle Applications. Identify the AUDSID for the session
Run the sql: select max(log_sequence) from fnd_log_messages; -> note down the value: Val1
Revalidate or re-cancel the invoice
Run the sql: select max(log_sequence) from fnd_log_messages; --&gt note down the value: Val2

4.a.3 Gather FND Debug log

select log_sequence, module, message_text
from fnd_log_messages
where log_sequence between &Val1 and &Val2
and audsid = &audsid
order by log_sequence;

4.a.4 To Gather FND Debug log for Concurrent Request use
SELECT log_sequence, log.module, log.message_text message
FROM fnd_log_messages log,
fnd_log_transaction_context con
WHERE con.transaction_id = &conc_request_id
AND con.transaction_type = 'REQUEST'
AND con.transaction_context_id = log.transaction_context_id
ORDER BY log.log_Sequence;

4.b) Diagnostics

4.b.1 - Only after collecting the FND Debug log, Run the "Budgetary Control Information for Payables Invoice" diagnostics. See Note:979855.1 for details on how to submit this diagnostic.

4.b.2 - Please also run the following sql statements to check for invalid ledger setup for Payables or Purchasing. These queries are planned to be added to the diagnostics script at a future date.

Verify SLAM and Ledger setup for Payables
--------------------------------------------------------------

Select ledger_id,
short_name,
description,
ledger_category_code,
l.sla_accounting_method_code,
sla_accounting_method_type,
l.enable_budgetary_control_flag
from gl_ledgers l
where l.enable_budgetary_control_flag = 'Y'
and not exists (select 1
from xla_acctg_methods_fvl m,
xla_acctg_method_rules_fvl r,
xla_product_rules_fvl a,
xla_prod_acct_headers_fvl e,
xla_aad_line_defn_assgns_f_v s,
xla_line_definitions_f_v j
where m.accounting_method_code = l.sla_accounting_method_code
and m.accounting_method_type_code = l.sla_accounting_method_type
and m.accounting_method_code = r.accounting_method_code
and m.accounting_method_type_code = r.accounting_method_type_code
and sysdate between r.start_date_active and NVL(r.end_date_active,
sysdate)
and r.application_id=200
and a.application_id = r.application_id
and r.amb_context_code = a.amb_context_code
and r.product_rule_code = a.product_rule_code
and r.product_rule_type_code = a.product_rule_type_code
and a.enabled_flag = 'Y'
and e.amb_context_code = a.amb_context_code
and e.product_rule_code = a.product_rule_code
and e.product_rule_type_code = a.product_rule_type_code
and s.amb_context_code = e.amb_context_code
and s.product_rule_code = e.product_rule_code
and s.product_rule_type_code = e.product_rule_type_code
and s.event_class_code = e.event_class_code
and s.event_type_code = e.event_type_code
and j.amb_context_code = s.amb_context_code
and j.event_class_code = s.event_class_code
and j.event_type_code = s.event_type_code
and j.line_definition_code = s.line_definition_code
and j.line_definition_owner_code = s.line_definition_owner_code
and j.enabled_flag = 'Y'
and j.budgetary_control_flag = 'Y');

Please upload results in XLS format.


Verify SLAM and Ledger setup for Purchasing
-------------------------------------------------------------

Select ledger_id,
short_name,
description,
ledger_category_code,
l.sla_accounting_method_code,
sla_accounting_method_type,
l.enable_budgetary_control_flag
from gl_ledgers l
where l.enable_budgetary_control_flag = 'Y'
and not exists (select 1
from xla_acctg_methods_fvl m,
xla_acctg_method_rules_fvl r,
xla_product_rules_fvl a,
xla_prod_acct_headers_fvl e,
xla_aad_line_defn_assgns_f_v s,
xla_line_definitions_f_v j
where m.accounting_method_code = l.sla_accounting_method_code
and m.accounting_method_type_code = l.sla_accounting_method_type
and m.accounting_method_code = r.accounting_method_code
and m.accounting_method_type_code = r.accounting_method_type_code
and sysdate between r.start_date_active and NVL(r.end_date_active,
sysdate)
and r.application_id=200
and a.application_id = r.application_id
and r.amb_context_code = a.amb_context_code
and r.product_rule_code = a.product_rule_code
and r.product_rule_type_code = a.product_rule_type_code
and a.enabled_flag = 'Y'
and e.amb_context_code = a.amb_context_code
and e.product_rule_code = a.product_rule_code
and e.product_rule_type_code = a.product_rule_type_code
and s.amb_context_code = e.amb_context_code
and s.product_rule_code = e.product_rule_code
and s.product_rule_type_code = e.product_rule_type_code
and s.event_class_code = e.event_class_code
and s.event_type_code = e.event_type_code
and j.amb_context_code = s.amb_context_code
and j.event_class_code = s.event_class_code
and j.event_type_code = s.event_type_code
and j.line_definition_code = s.line_definition_code
and j.line_definition_owner_code = s.line_definition_owner_code
and j.enabled_flag = 'Y'
and j.budgetary_control_flag = 'Y');

Please upload results in XLS format.

4.b.3 - Insufficient Funds Hold

If an invoice goes on "Insufficient funds" hold, please run the following query to help troubleshoot the cause. Enter the invoice_id when prompted.


Select g.packet_id
g.application_id,
g.ledger_id,
g.status_code,
g.funds_check_level_code,
g.code_combination_id,
g.accounted_dr,
g.accounted_cr,
NVL(g.budget_posted_balance, 0)+NVL(g.budget_approved_balance, 0)+
NVL(g.budget_pending_balance, 0) budget_balance,
NVL(g.encumbrance_posted_balance,0)+NVL(g.encumbrance_approved_balance,0)+
NVL(g.encumbrance_pending_balance, 0) encumbrance_balance,
NVL(g.actual_posted_balance, 0)+NVL(g.actual_approved_balance, 0)+
NVL(g.actual_pending_balance, 0) actual_balance,
(NVL(g.budget_posted_balance, 0) +
NVL(g.budget_approved_balance,0) +
NVL(g.budget_pending_balance, 0)) -
(NVL(g.encumbrance_posted_balance, 0) +
NVL(g.encumbrance_approved_balance,0) +
NVL(g.encumbrance_pending_balance,0)) -
(NVL(g.actual_posted_balance, 0) +
NVL(g.actual_approved_balance,0) +
NVL(g.actual_pending_balance, 0)) funds_available
from gl_bc_packets g
where application_id = 200
and effect_on_funds_code = 'D'
and status_code in ('R')
and g.funds_check_level_code not in ('N')
and (NVL(g.budget_posted_balance, 0)+NVL(g.budget_approved_balance, 0)+
NVL(g.budget_pending_balance, 0) -
NVL(g.encumbrance_posted_balance, 0)+
NVL(g.encumbrance_approved_balance,0)+
NVL(g.encumbrance_pending_balance, 0) -
NVL(g.actual_posted_balance, 0)+NVL(g.actual_approved_balance, 0)+
NVL(g.actual_pending_balance, 0)- g.accounted_dr) < 0
and exists (select 1
from ap_invoice_distributions_all d
where d.invoice_id = &INVOICE_ID
and d.bc_event_id = g.event_id);

Please upload results in XLS format.


5. Analyze

Follow the steps in Note:1053172.1 to try to resolve the issue.
If this does not help, then log a SR with Oracle Support.
In the SR, upload the FND Debug log generated above and the Diagnostics output for the invoice.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/226700/viewspace-1041997/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/226700/viewspace-1041997/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值