You are on page 1of 3

1.

Lỗi SPS chênh lệch thiếu dữ liệu khi chạy job daily
- Nguyên nhân: job daily tổng hợp dữ liệu từ bảng return_dtl_col_ver r
JOIN sapsr3.dfmca_form_vers dfv với điều kiện and dfv.zzreceipt >=
'#P_ETL_DATE#'

Tuy nhiên phân tích dữ liệu thì thấy dfv.zzreceipt là ngày nhận của tờ khai
trên hệ thống nguồn, không phải ngày đồng bộ lên DWH. Ngày đồng bộ tờ
khai lên DWH là trường r.PROCESS_TIME trong bảng return_dtl_col_ver
 Dữ liệu có ngày dfv.zzreceipt < r.PROCESS_TIME không được lấy lên
FCT.
FROM taxdw.return_dtl_col_ver r
INNER JOIN sapsr3.dfmca_return dr
ON dr.case_guid = r.return_id
AND dr.zzuser_status NOT IN ('07', '08', '9H')
JOIN sapsr3.dfmca_form_vers dfv
ON dfv.form_guid = r.form_guid
AND dfv.data_version = r.data_version
WHERE r.form IN ('Z_ISR_FORM_0026_1')
AND r.fbtyp = '0026'
-- and r.src is null
AND r.status NOT IN ('07', '08', '9H')
and dfv.zzreceipt >= '#P_ETL_DATE#'
AND dfv.zzposted = 'X'
- Giải pháp: Sửa job, thay đổi điều kiện dfv.zzreceipt >= '#P_ETL_DATE#' bằng
điều kiện r.PROCESS_TIME >= to_date('#P_ETL_DATE#', 'YYYYMMDD')

2. Báo cáo sổ phát sinh chênh lệch chưa xóa những tờ khai đã lên FCT
sau đó bị hủy
- Nguyên nhân: Do chưa có job daily xử lý tình huống tờ khai hủy sau khi
đã lên FCT
- Giải pháp: Tạo mới job xử lý cho tình huống này.

Cụ thể:
- Bước 1: Tạo 1 job riêng tổng hợp những tờ khai bị hủy có kỳ tính thuế
thuộc phạm vi dữ liệu của báo cáo (TK năm thì kỳ tính thuế >= 21CN, tờ
khai tháng/quý/PS thì kỳ tính thuế >= 2201) và lọc theo loại tờ khai đã
triển khai; từ ODS lên SMY, lưu vào 1 bảng riêng
o Tên job PAR_NZ_DTM_INCURRED_BOOK_SMY_DELETE
o Bảng đích: INCURRED_BOOK_SMY_DELETE
o Câu lệnh nguồn:
SELECT /*+parallel(16)*/
TO_DATE (#P_ETL_DATE#, 'YYYYMMDD') ppn_dt,
dr.case_guid return_id,
dr.zzbukrs taxo,
dr.taxpayer_id tin,
dr.taxpayer partner,
dr.period_key,
TO_DATE (dr.apply_from, 'YYYYMMDD') fd,
TO_DATE (dr.apply_to, 'YYYYMMDD') td,
dr.fbtyp,
dr.zzadditional,
TO_DATE (dr.zzbudat, 'YYYYMMDD') ngay_htoan,
TO_DATE (dr.zzreceipt, 'YYYYMMDD') ngay_nhan,
dr.zzprctr chuong,
dr.zz_ori_fbnum,
dr.zzuser_status
FROM
sapsr3.dfmca_return dr
WHERE 1=1
and dr.mandt = '500'
AND dr.zzuser_status IN ('07', '08', '9H')
and dr.fbtyp in ('0066', '0026', '0156', '0157', '0160', '0161', '0035', '0036', '0054','0094', '0176',
'0199', '0200', '0201')
AND ((substr(dr.period_key,3,2)='CN' and substr(dr.period_key,1,2)>=21)
OR (substr(dr.period_key,3,2)<>'CN' and substr(dr.period_key,1,2)>=22)
)
;
- Bước 2: Tạo bảng đích INCURRED_BOOK_SMY_DELETE như mô tả ở
trên
create table INCURRED_BOOK_SMY_DELETE
as (select PPN_DT, RETURN_ID, TAXO, TIN, PARTNER, PERIOD_KEY, FD, TD,
NGAY_HTOAN, NGAY_NHAN, CHUONG, ZZADDITIONAL, ZZ_ORI_FBNUM, FBTYP, CAST('' AS
VARCHAR(2)) zzuser_status
from INCURRED_BOOK_TT80_01GTGT_SMY
limit 0)
;

- Bước 3: Cập nhập job daily từ SMY lên FCT bổ sung điều kiện vào mục
After SQL để xóa các tờ khai đã lên FCT nhưng tồn tại trong bảng
INCURRED_BOOK_SMY_DELETE
Ví dụ với job 01GTGT
delete from INCURRED_BOOK_01GTGT_FCT a where
a.RETURN_ID in
(select a.RETURNID from INCURRED_BOOK_SMY_DELETE b
Where fbtyp in ('0026', '0156', '0157', '0160', '0161')
);

You might also like