EBS に付属するエージング テーブル構成情報を最大限に活用して、後からエージング構成を変更するときに、ビジネス コードを変更せずに、フロントエンド エージング テーブル構成のみを変更するだけで済みます。
全体的な考え方は、まず現在の日付からビジネス文書の日付 (総勘定元帳の日付または営業日) を引いて値を取得することです。past_days の場合、ここでは負の値を考慮する必要があります。たとえば、期間は 6.30 ですが、ビジネス文書の日付は 7.4 、past_days は -4 です。この負の数は 0 とみなされます。
次に、Payable モジュールのエージング テーブルのサンプル コードなど、エージング テーブルの構成に基づいてサイクルが実行されます。
--AP 账龄表sql提取配置示例
SELECT /*lines.days_start*/
decode(lines.days_start, 0, -999999, lines.days_start) days_start, --将0改为-999999 来避免因发票日期晚于gl日期导致负数出现
lines.days_to,
lines.period_sequence_num,
report_heading1,
report_heading2
FROM ap_aging_period_lines lines,
ap_aging_periods periods
WHERE lines.aging_period_id = periods.aging_period_id
AND periods.aging_period_id = 10000
AND periods.status = 'A'
ORDER BY lines.period_sequence_num
表示効果は以下の通りです
--应付模块账龄表流程
begin
for ap_age in (SELECT /*lines.days_start*/
decode(lines.days_start, 0, -999999, lines.days_start) days_start, --将0改为-999999 来避免因发票日期晚于gl日期导致负数出现
lines.days_to,
lines.period_sequence_num,
report_heading1,
report_heading2
FROM ap_aging_period_lines lines,
ap_aging_periods periods
WHERE lines.aging_period_id = periods.aging_period_id
AND periods.aging_period_id = 10000
AND periods.status = 'A'
ORDER BY lines.period_sequence_num)
loop
SELECT SUM(t.balance)
INTO v_aging_balance
FROM cux_ap_pre_aging_temp t --业务单据汇总临时表
WHERE t.past_days BETWEEN ap_age.days_start AND ap_age.days_to;
print_f('<td class=xl8218914>' || to_char(v_aging_balance) || '</td>');
end loop;
end;
受信可能モジュールも同様で、受信可能モジュールは次のようなエージング テーブル設定 SQL を受け取ります。
select h.bucket_name,
h.description,
l.DAYS_START,
l.DAYS_TO,
l.REPORT_HEADING1
from ar_aging_buckets h, ar_aging_bucket_lines l
where h.aging_bucket_id = l.AGING_BUCKET_ID
and h.bucket_name = '十四时段帐龄'
order by l.BUCKET_SEQUENCE_NUM