Mẫu dữ liệu cho quy trình từ ghi nhận đến báo cáo: khóa sổ kỳ và đối soát
Mẫu dữ liệu cho quy trình từ ghi nhận đến báo cáo: khóa sổ kỳ và đối soát
- Các thuộc tính nên thu thập
- Các hoạt động chính cần theo dõi
- Hướng dẫn trích xuất
Các thuộc tính của quy trình từ ghi nhận đến báo cáo: khóa sổ kỳ và đối soát
| Tên | Mô tả | ||
|---|---|---|---|
| Kỳ tài chính FinancialPeriod | Mã định danh duy nhất cho chu kỳ báo cáo tài chính, thường gồm năm tài chính và kỳ ghi sổ. | ||
| Mô tả Kỳ tài chính là mã định danh chính của từng trường hợp, dùng để nhóm mọi hoạt động khóa sổ và đối chiếu tài khoản trong chu kỳ báo cáo đó, chẳng hạn '2023-12' cho tháng 12 năm 2023. Nhờ vậy, bạn có thể phân tích toàn bộ quy trình khóa sổ từ đầu đến cuối cho từng kỳ riêng biệt. Trong phân tích, mã này giúp theo dõi thời gian chu kỳ từ đầu đến cuối của mỗi lần khóa sổ, so sánh hiệu suất giữa các kỳ và tìm xu hướng hoặc điểm bất thường. Khi mỗi kỳ tài chính được xác định là một trường hợp riêng, bạn có thể trực quan hóa và đo lường hiệu quả, điểm nghẽn cũng như những khác biệt trong quy trình khóa sổ theo thời gian. Vì sao điều này quan trọng Đây là mã định danh thiết yếu để xác định phạm vi phân tích, giúp so sánh thời gian chu kỳ khóa sổ, khối lượng công việc và mức độ tuân thủ quy trình giữa các kỳ. Lấy dữ liệu ở đâu Thuộc tính này thường được tạo bằng cách ghép Năm tài chính (GJAHR) với Kỳ ghi sổ (MONAT) từ tiêu đề chứng từ tài chính, chẳng hạn trong bảng BKPF. Ví dụ 2023-122024-03Quý 4 năm 2023 | |||
| Hệ thống nguồn SourceSystem | Mã định danh hệ thống nguồn nơi trích xuất dữ liệu. | ||
| Mô tả Thuộc tính này cho biết nguồn gốc của dữ liệu sự kiện, chẳng hạn tên hoặc mã của phiên bản SAP ECC cụ thể. Trong tổ chức dùng nhiều ERP hoặc hệ thống tài chính, trường này rất quan trọng để phân biệt dữ liệu từ các nguồn khác nhau. Ngay cả khi chỉ dùng một hệ thống, đây vẫn là siêu dữ liệu quan trọng cho quản trị dữ liệu, kiểm toán và xử lý sự cố. Thuộc tính xác nhận nguồn gốc dữ liệu, giúp bạn tin cậy kết quả phân tích và theo dõi rõ luồng dữ liệu. Vì sao điều này quan trọng Cung cấp thông tin cần thiết để theo dõi nguồn gốc dữ liệu và phục vụ quản trị. Thuộc tính này rất quan trọng trong môi trường nhiều hệ thống để phân biệt các quy trình. Lấy dữ liệu ở đâu Đây thường là giá trị tĩnh được thêm trong quá trình trích xuất dữ liệu, dùng để xác định SAP client và mã hệ thống cụ thể (ví dụ: từ bảng T000). Ví dụ ECC_PROD_100SAP_E74_200ECC_FINANCE | |||
| Hoạt động ActivityName | Tên sự kiện kinh doanh hoặc tác vụ cụ thể được thực hiện trong quy trình khóa sổ kỳ. | ||
| Mô tả Thuộc tính này ghi nhận các bước riêng biệt trong chu kỳ Record to Report, chẳng hạn 'Đã ghi sổ bút toán điều chỉnh' hoặc 'Đã tạo báo cáo tài chính'. Đây là nền tảng của sơ đồ quy trình, thể hiện trình tự các sự kiện tạo nên quy trình khóa sổ kỳ. Phân tích hoạt động là bước cốt lõi trong process mining. Việc này giúp trực quan hóa luồng quy trình, xác định trình tự tác vụ, phát hiện các biến thể và đo tần suất cũng như thời lượng của từng bước. Nhờ đó, bạn có thể tìm ra điểm nghẽn, các luồng quy trình không theo chuẩn và cơ hội chuẩn hóa hoặc tự động hóa. Vì sao điều này quan trọng Đây là thuộc tính bắt buộc để tạo sơ đồ quy trình, trực quan hóa và phân tích trình tự tác vụ trong quy trình khóa sổ kỳ. Lấy dữ liệu ở đâu Thuộc tính này được xác định từ tổ hợp mã giao dịch SAP (TCODE), loại chứng từ (BLART) hoặc lần chạy chương trình cụ thể (ví dụ: FAGL_FCV để định giá ngoại tệ). Ví dụ Đã ghi sổ bút toán điều chỉnhĐã bắt đầu đối chiếu tài khoảnĐã khóa kỳ ghi sổ | |||
| Lần cập nhật dữ liệu gần nhất LastDataUpdate | Dấu thời gian cho biết lần gần nhất dữ liệu được làm mới hoặc trích xuất từ hệ thống nguồn. | ||
| Mô tả Thuộc tính này cho biết dữ liệu đang phân tích có mới hay không. Nó hiển thị ngày giờ lần gần nhất luồng dữ liệu chạy, giúp bạn biết các thông tin về quy trình được cập nhật đến thời điểm nào. Với bảng điều khiển, nhất là bảng theo dõi tiến độ theo thời gian thực, dấu thời gian này giúp người dùng biết họ đang xem thông tin mới nhất hay dữ liệu từ ngày trước. Nhờ đó, người dùng hiểu rõ dữ liệu đang xem và diễn giải kết quả phân tích chính xác hơn. Vì sao điều này quan trọng Cho người dùng biết dữ liệu được cập nhật đến thời điểm nào, giúp đảm bảo các phân tích và bảng điều khiển luôn kịp thời, phù hợp. Lấy dữ liệu ở đâu Công cụ trích xuất dữ liệu hoặc ETL tạo và thêm dấu thời gian này sau mỗi lần tải dữ liệu. Ví dụ 2024-05-21T04:00:00Z2024-05-20T04:00:00Z2024-05-19T04:00:00Z | |||
| Thời điểm sự kiện EventTime | Dấu thời gian cho biết thời điểm một hoạt động hoặc sự kiện diễn ra. | ||
| Mô tả Thời điểm sự kiện cung cấp ngày giờ chính xác của từng hoạt động trong quy trình, làm cơ sở thời gian cho việc phân tích. Thuộc tính này thường kết hợp ngày và giờ tạo chứng từ. Dấu thời gian này rất cần thiết để sắp xếp sự kiện đúng thứ tự và dựng lại luồng quy trình. Dữ liệu này được dùng để tính mọi chỉ số thời lượng, gồm thời gian chu kỳ giữa các hoạt động, thời gian chờ và tổng thời gian khóa sổ kỳ. Phân tích dấu thời gian giúp phát hiện chậm trễ và hiểu cách công việc phân bổ theo thời gian. Vì sao điều này quan trọng Đây là thuộc tính bắt buộc, cung cấp thứ tự thời gian của các sự kiện để tính thời gian chu kỳ và tìm điểm nghẽn trong quy trình. Lấy dữ liệu ở đâu Thông tin này thường lấy từ ngày nhập chứng từ (CPUDT) và giờ nhập (CPUTM) trong bảng BKPF đối với chứng từ tài chính. Ví dụ 2023-12-28T14:30:15Z2024-01-02T09:05:00Z2024-01-05T17:21:45Z | |||
| Loại bút toán JournalEntryType | Phân loại bút toán, chẳng hạn 'Tiêu chuẩn', 'Điều chỉnh', 'Trích trước' hoặc 'Đảo'. | ||
| Mô tả Đây là thuộc tính được suy ra để phân loại chứng từ tài chính theo mục đích nghiệp vụ trong quy trình khóa sổ. Thuộc tính này thường được xác định dựa trên tổ hợp Loại chứng từ (BLART), Lý do đảo (STGRD) hoặc các tài khoản GL cụ thể được sử dụng. Phân loại này là cơ sở cho bảng điều khiển 'Phân tích khối lượng bút toán điều chỉnh' và các KPI liên quan. Khi xác định rõ bút toán điều chỉnh hoặc trích trước, chuyên viên phân tích có thể đo số lượng và giá trị, theo dõi xu hướng theo thời gian và tìm nguyên nhân gốc rễ khiến các bút toán này cần thiết. Việc này giúp phân biệt bút toán vận hành thường lệ với bút toán điều chỉnh cuối kỳ. Vì sao điều này quan trọng Phân loại bút toán để phân tích có trọng tâm, theo dõi và đo lường các loại bút toán quan trọng như điều chỉnh và trích trước, vốn là dấu hiệu cho thấy tình trạng quy trình. Lấy dữ liệu ở đâu Đây là trường được suy ra. Cần xác định logic dựa trên quy tắc nghiệp vụ, thường dùng các trường như Loại chứng từ (BLART) trong BKPF. Ví dụ Điều chỉnhTrích trướcĐảoTiêu chuẩn | |||
| Loại chứng từ BLART | Mã phân loại các loại chứng từ kế toán. | ||
| Mô tả Trong SAP, loại chứng từ dùng để phân biệt các giao dịch kinh doanh, chẳng hạn hóa đơn nhà cung cấp (KR), khoản thanh toán của khách hàng (DZ) và bút toán sổ cái tổng hợp (SA). Loại chứng từ cũng kiểm soát các thuộc tính như dải số chứng từ. Khi phân tích khóa sổ cuối kỳ, loại chứng từ là bộ lọc hữu ích. Bạn có thể dùng thuộc tính này để tách riêng các hoạt động như trích trước, dự phòng hoặc bút toán đảo. Nhờ đó, bạn có thể phân tích số lượng và tác động tài chính của từng loại giao dịch liên quan đến khóa sổ, đồng thời xác định các hoạt động cụ thể trong mô hình quy trình. Vì sao điều này quan trọng Giúp phân loại và lọc giao dịch để tách riêng, phân tích các hoạt động cụ thể như trích trước, bút toán đảo hoặc bút toán liên công ty. Lấy dữ liệu ở đâu Nằm trong bảng tiêu đề chứng từ BKPF (BLART). Ví dụ SAABKR | |||
| Mã công ty BUKRS | Đơn vị tổ chức đại diện cho một pháp nhân lập báo cáo tài chính. | ||
| Mô tả Mã công ty là đơn vị tổ chức cơ bản trong SAP Financials. Mã này đại diện cho một công ty độc lập với hệ thống sổ sách cân đối riêng. Mọi giao dịch tài chính đều được ghi sổ ở cấp mã công ty. Trong process mining, lọc theo mã công ty là cách thiết yếu để so sánh quy trình khóa sổ kỳ giữa các pháp nhân trong một tập đoàn. Nhờ đó, bạn có thể tìm ra cách làm hiệu quả ở các đơn vị có kết quả tốt và xác định đơn vị thường bị chậm trễ, có nhiều bút toán điều chỉnh hoặc sai lệch quy trình. Đây là chiều phân tích quan trọng để phân nhóm dữ liệu. Vì sao điều này quan trọng Giúp so sánh hiệu suất khóa sổ kỳ và mức độ tuân thủ giữa các pháp nhân, rất cần thiết cho phân tích tài chính cấp tập đoàn. Lấy dữ liệu ở đâu Trường này có trong hầu hết các bảng chứng từ tài chính của SAP, chủ yếu là BKPF (tiêu đề) và BSEG (khoản mục). Ví dụ 10002000US01DE01 | |||
| Người dùng phụ trách USNAM | Mã người dùng SAP của người tạo hoặc thực hiện giao dịch. | ||
| Mô tả Trường này ghi nhận người dùng đã ghi sổ chứng từ, chạy báo cáo hoặc thực hiện chương trình liên quan đến khóa sổ. Trường này xác định người phụ trách từng hoạt động. Phân tích theo người dùng rất quan trọng để hiểu cách phân bổ khối lượng công việc, xác định nhu cầu đào tạo và điều tra sai lệch quy trình. Bảng điều khiển hiển thị hoạt động theo người dùng có thể giúp phát hiện thành viên quá tải hoặc người chưa làm theo quy trình chuẩn. Thông tin này cũng hỗ trợ đánh giá hiệu suất và phân bổ tài nguyên trong nhóm tài chính. Vì sao điều này quan trọng Giúp phân tích cách phân bổ khối lượng công việc, hiệu suất nhóm và sai lệch quy trình gắn với từng cá nhân. Lấy dữ liệu ở đâu Có trong bảng BKPF (USNAM) đối với việc tạo chứng từ. Với công việc theo lô, trường này nằm trong TBTCO (SDLUNAME). Ví dụ JSMITHRDOEFIN_ADMIN | |||
| Số chứng từ BELNR | Mã định danh duy nhất của chứng từ kế toán trong một năm tài chính và mã công ty. | ||
| Mô tả Số chứng từ kế toán là khóa chính của các bút toán tài chính trong SAP. Mỗi bút toán, hóa đơn hoặc chứng từ thanh toán đều có một số riêng. Số chứng từ thường không dùng cho phân tích quy trình ở cấp tổng quan, nhưng rất hữu ích khi cần xem chi tiết. Từ bảng điều khiển process mining, chuyên viên phân tích có thể dùng số này để mở đúng giao dịch trong SAP và điều tra kỹ các điểm bất thường, chẳng hạn bút toán điều chỉnh lớn hoặc khoản mục đối chiếu bị chậm. Nhờ đó, bạn có thể truy ngược trực tiếp từ thông tin phân tích về giao dịch nguồn. Vì sao điều này quan trọng Cung cấp liên kết trực tiếp đến giao dịch nguồn trong SAP, giúp phân tích chi tiết từ góc nhìn quy trình đến từng bút toán kế toán. Lấy dữ liệu ở đâu Nằm trong bảng BKPF (BELNR) dưới dạng khóa chính. Ví dụ 100000456719000001233000008901 | |||
| Số tiền theo nội tệ DMBTR | Giá trị tài chính của một khoản mục giao dịch, tính theo nội tệ của mã công ty. | ||
| Mô tả Thuộc tính này thể hiện giá trị tiền tệ của một bút toán tài chính. Đây là thước đo định lượng cốt lõi về tác động của giao dịch lên sổ cái tổng hợp. Phân tích số tiền rất quan trọng để ưu tiên xử lý vấn đề và hiểu rủi ro tài chính. Chẳng hạn, bảng điều khiển 'Phân tích khối lượng bút toán điều chỉnh' sẽ hữu ích hơn nhiều khi phân biệt được số lượng lớn bút toán điều chỉnh giá trị thấp với số lượng ít bút toán giá trị cao. Nhờ đó, bạn có thể tập trung vào các giao dịch có ảnh hưởng tài chính trọng yếu. Vì sao điều này quan trọng Định lượng tác động tài chính của giao dịch, cho phép phân tích theo mức độ trọng yếu, chẳng hạn xác định các bút toán điều chỉnh giá trị cao. Lấy dữ liệu ở đâu Có trong bảng khoản mục chứng từ BSEG (DMBTR). Ví dụ 1500.75-25000.00123456.00 | |||
| Tài khoản GL HKONT | Số tài khoản sổ cái tổng hợp dùng để ghi sổ một khoản mục. | ||
| Mô tả Tài khoản sổ cái tổng hợp (GL) là dữ liệu chủ cốt lõi trong lĩnh vực tài chính, dùng để phân loại giao dịch. Mỗi bút toán tài chính được ghi vào một hoặc nhiều tài khoản GL. Khi khóa sổ kỳ, phân tích hoạt động theo tài khoản GL rất cần thiết cho các bảng điều khiển 'Điểm nghẽn trong đối chiếu tài khoản' và 'Phân tích khối lượng bút toán điều chỉnh'. Việc này giúp xác định tài khoản nào khó đối chiếu nhất, tài khoản nào cần điều chỉnh nhiều nhất và nơi có nguy cơ sai lệch trọng yếu cao nhất. Nhờ đó, nhóm có thể ưu tiên xử lý các tài khoản có vấn đề. Vì sao điều này quan trọng Cho phép phân tích có trọng tâm các hoạt động đối chiếu và bút toán điều chỉnh, giúp xác định tài khoản có vấn đề gây chậm trễ hoặc cần sửa thường xuyên. Lấy dữ liệu ở đâu Có trong bảng khoản mục chứng từ tài chính BSEG (HKONT). Ví dụ 113100400500750000 | |||
| Có được tự động hóa không IsAutomated | Cờ cho biết hoạt động do người dùng thực hiện hay do hệ thống tự động thực hiện. | ||
| Mô tả Thuộc tính dạng boolean này phân biệt công việc thủ công với công việc do hệ thống tự động thực hiện, chẳng hạn như tác vụ hàng loạt được lên lịch để định giá ngoại tệ hoặc bot ghi sổ các bút toán định kỳ. Thông tin này thường được xác định bằng cách phân tích tên người dùng gắn với giao dịch (ví dụ: “BATCHUSER”). Nắm được mức độ tự động hóa là điều quan trọng để tìm cơ hội nâng cao hiệu quả. Phân tích thuộc tính này giúp bạn thấy phần nào của quy trình đang làm thủ công và có thể tự động hóa. Thuộc tính này cũng giúp đánh giá chính xác khối lượng công việc của nhân viên bằng cách loại trừ các hoạt động do hệ thống tạo ra. Vì sao điều này quan trọng Phân biệt hoạt động thủ công với hoạt động do hệ thống thực hiện. Đây là thông tin quan trọng để tìm cơ hội tự động hóa và đo lường chính xác khối lượng công việc thủ công. Lấy dữ liệu ở đâu Đây là thuộc tính suy ra. Logic thường dựa trên Tên người dùng (USNAM): nếu tên nằm trong danh sách ID người dùng hệ thống hoặc người dùng chạy tác vụ hàng loạt đã biết, hoạt động được xem là tự động. Ví dụ truefalse | |||
| Có phải làm lại không IsRework | Cờ được tính toán để xác định các hoạt động phải làm lại, chẳng hạn như đảo bút toán hoặc đối soát bị từ chối. | ||
| Mô tả Thuộc tính dạng boolean này đánh dấu các sự kiện hoặc chuỗi sự kiện cho thấy quy trình lặp lại kém hiệu quả hoặc cần chỉnh sửa. Ví dụ: hoạt động “Đã rà soát đối soát” rồi đến một hoạt động “Đã ghi sổ bút toán điều chỉnh” khác trên cùng tài khoản có thể được đánh dấu là làm lại. Thuộc tính này cần thiết để định lượng lãng phí trong quy trình, đồng thời hỗ trợ dashboard “Các trường hợp phải làm lại khi đối soát” và KPI “Tỷ lệ phải làm lại khi đối soát”. Khi tách riêng các trường hợp phải làm lại, nhóm có thể tìm nguyên nhân gốc rễ, đo ảnh hưởng đến thời gian xử lý và theo dõi hiệu quả của các sáng kiến cải tiến quy trình nhằm hoàn thành đúng ngay từ đầu. Vì sao điều này quan trọng Định lượng sự kém hiệu quả của quy trình bằng cách đánh dấu các hoạt động cần sửa hoặc lặp lại, giúp đo lường và giảm công sức lãng phí. Lấy dữ liệu ở đâu Đây là thuộc tính được tính toán. Logic được xác định trong công cụ process mining dựa trên chuỗi hoạt động cụ thể (ví dụ: vòng lặp) hoặc thuộc tính (ví dụ: ReversalReason không rỗng). Ví dụ truefalse | |||
| Có quá hạn không IsOverdue | Cờ được tính toán để cho biết hoạt động có hoàn thành sau ngày mục tiêu đã định hay không. | ||
| Mô tả Thuộc tính dạng boolean này so sánh thời điểm hoàn thành thực tế của hoạt động (EventTime) với thời hạn dự kiến (TargetCompletionDate). Nếu thời điểm sự kiện muộn hơn ngày mục tiêu, cờ được đặt thành true. Thuộc tính này hỗ trợ trực tiếp dashboard “Tuân thủ khóa sổ và công việc quá hạn” cùng KPI “Tỷ lệ khóa sổ kỳ đúng hạn”. Thuộc tính cho biết rõ và nhanh các sai lệch so với lịch trình, giúp người quản lý xác định công việc trễ, hiểu ảnh hưởng đến tiến độ chung và yêu cầu các nhóm đáp ứng thời hạn. Vì sao điều này quan trọng Cho biết rõ việc không tuân thủ lịch trình, giúp nhanh chóng xác định công việc trễ và đo lường hiệu suất đúng hạn. Lấy dữ liệu ở đâu Đây là thuộc tính được tính toán trong công cụ process mining bằng cách so sánh EventTime với TargetCompletionDate. Ví dụ truefalse | |||
| Đối tác giao dịch VBUND | Mã định danh công ty liên kết tham gia giao dịch liên công ty. | ||
| Mô tả Mã đối tác giao dịch dùng để xác định mã công ty còn lại tham gia giao dịch liên công ty. Đây là thông tin thiết yếu để đối chiếu tài khoản giữa các pháp nhân có liên quan. Thuộc tính này hỗ trợ trực tiếp cho bảng điều khiển 'Luồng đối chiếu liên công ty' và KPI 'Thời gian chu kỳ đối chiếu liên công ty'. Khi lọc các giao dịch có đối tác giao dịch, bạn có thể tập trung phân tích hiệu quả và thời gian xử lý của quy trình đối chiếu liên công ty, vốn thường là khâu gây nhiều khó khăn khi khóa sổ kỳ. Vì sao điều này quan trọng Xác định cụ thể các giao dịch liên công ty, giúp tập trung phân tích quy trình đối chiếu liên công ty vốn thường phức tạp và tốn thời gian. Lấy dữ liệu ở đâu Có trong bảng khoản mục chứng từ BSEG (VBUND). Ví dụ 1000US013000 | |||
| Lý do đảo ReversalReason | Mã cho biết lý do đảo một chứng từ tài chính. | ||
| Mô tả Khi đảo chứng từ trong SAP, bạn có thể gán mã lý do để giải thích mục đích, chẳng hạn 'Đảo trong kỳ hiện tại' hoặc 'Nhập sai'. Thuộc tính này cung cấp thông tin quan trọng về nguyên nhân phải làm lại. Phân tích lý do đảo giúp xác định các lỗi thường gặp, chẳng hạn nhập sai dữ liệu hoặc sai ngày. Bạn có thể dùng thông tin này để áp dụng biện pháp phòng ngừa, cải thiện đào tạo hoặc tăng cường kiểm soát hệ thống, từ đó giảm lỗi và các lần đảo tiếp theo, giúp khóa sổ hiệu quả hơn. Vì sao điều này quan trọng Cho biết trực tiếp nguyên nhân gốc rễ của lỗi và việc phải làm lại, giúp xác định cơ hội cải tiến quy trình và ngăn ngừa sai sót. Lấy dữ liệu ở đâu Nằm trong bảng tiêu đề chứng từ BKPF (STGRD). Ví dụ 010205 | |||
| Năm tài chính GJAHR | Năm tài chính ghi nhận giao dịch. | ||
| Mô tả Năm tài chính là yếu tố nền tảng để sắp xếp dữ liệu tài chính. Đây cũng là thành phần chính của ID trường hợp Kỳ tài chính và cung cấp bối cảnh cần thiết cho mọi giao dịch. Năm tài chính thường đã nằm trong ID trường hợp, nhưng lưu riêng thành một thuộc tính sẽ hữu ích khi phân tích xu hướng dài hạn. Bạn có thể so sánh thời gian khóa sổ, số lượng điều chỉnh và các KPI khác giữa các năm để xác định hiệu suất được cải thiện hay giảm sút. Vì sao điều này quan trọng Cung cấp bối cảnh thời gian cần thiết và cho phép so sánh hiệu suất của quy trình khóa sổ qua từng năm. Lấy dữ liệu ở đâu Có trong bảng tiêu đề chứng từ BKPF (GJAHR). Ví dụ 202320242022 | |||
| Ngày hoàn tất mục tiêu TargetCompletionDate | Thời hạn dự kiến cho một hoạt động hoặc toàn bộ quy trình khóa sổ kỳ. | ||
| Mô tả Ngày hoàn tất mục tiêu là mốc thời gian dùng để đo lường quy trình khóa sổ kỳ. Đây là hạn chót để hoàn thành các mốc quan trọng hoặc khóa sổ cuối kỳ. Thuộc tính này cần thiết cho mọi phân tích về hiệu suất hoặc tuân thủ. Thuộc tính được dùng để tính KPI “Tỷ lệ khóa sổ kỳ đúng hạn” và cung cấp dữ liệu cho dashboard “Tuân thủ khóa sổ và công việc quá hạn”. Bằng cách so sánh thời điểm sự kiện thực tế với ngày mục tiêu, hệ thống xác định công việc đang đúng tiến độ, bị trễ hay có nguy cơ trễ. Nhờ đó, bạn có thể chủ động quản lý quy trình khóa sổ. Vì sao điều này quan trọng Giúp theo dõi tuân thủ và hiệu suất bằng cách cung cấp mốc chuẩn để đo lường việc hoàn thành đúng hạn các hoạt động khóa sổ, đồng thời hỗ trợ các KPI giao đúng hạn. Lấy dữ liệu ở đâu Đây thường là dữ liệu chủ được quản lý trong lịch riêng, công cụ hỗ trợ khóa sổ (như SAP Financial Closing cockpit) hoặc bảng tính. Dữ liệu này không thuộc dữ liệu giao dịch. Ví dụ 2023-12-29T23:59:59Z2024-01-03T17:00:00Z2024-01-02T12:00:00Z | |||
| Phòng ban Department | Phòng ban chức năng hoặc trung tâm chi phí phụ trách hoạt động hay giao dịch. | ||
| Mô tả Thuộc tính này xác định phòng ban liên quan đến giao dịch, chẳng hạn 'Tài chính', 'Bán hàng' hoặc 'Hậu cần'. Thông tin này thường được suy ra từ dữ liệu chủ Trung tâm chi phí liên kết với bút toán hoặc dữ liệu chủ của người dùng. Phân tích theo phòng ban hỗ trợ bảng điều khiển 'Phân bổ khối lượng công việc của nhóm khóa sổ'. Việc này giúp bạn hiểu các bộ phận kinh doanh khác nhau đóng góp thế nào vào khối lượng công việc cuối kỳ, đặc biệt là khi khởi tạo giao dịch có thể cần điều chỉnh hoặc đối chiếu sau đó. Phân tích cũng có thể cho thấy các bộ phận ngoài nhóm tài chính chính đang ảnh hưởng đến quy trình khóa sổ. Vì sao điều này quan trọng Giúp phân tích khối lượng công việc và mức độ tuân thủ quy trình giữa các bộ phận, cho thấy từng phòng ban ảnh hưởng thế nào đến hiệu quả khóa sổ tài chính. Lấy dữ liệu ở đâu Thường được suy ra từ Trung tâm chi phí (KOSTL) trong BSEG hoặc dữ liệu chủ nhân sự của người dùng phụ trách. Có thể cần kết hợp nhiều bảng. Ví dụ Tài chính doanh nghiệpKế toán phải trảFP&A | |||
| Trạng thái đối chiếu ReconciliationStatus | Trạng thái hiện tại của việc đối chiếu tài khoản, chẳng hạn 'Đang mở', 'Đang rà soát' hoặc 'Đã phê duyệt'. | ||
| Mô tả Thuộc tính này theo dõi trạng thái đối chiếu tài khoản khi quy trình làm việc tiến triển. Thuộc tính cho biết việc đối chiếu đã bắt đầu, được gửi để rà soát, được phê duyệt hay bị từ chối. Đây là thuộc tính quan trọng để theo dõi tiến độ đối chiếu theo thời gian thực. Thuộc tính giúp xác định việc đối chiếu nào đang bị đình trệ và kéo dài bao lâu, hỗ trợ các KPI như 'Thời gian chu kỳ đối chiếu tài khoản'. Thuộc tính cũng cho thấy tiến độ phê duyệt và rất cần thiết cho các bảng điều khiển theo dõi điểm nghẽn đối chiếu và khối lượng công việc của nhóm. Vì sao điều này quan trọng Cho thấy tiến độ quy trình làm việc đối chiếu, giúp theo dõi tiến độ, xác định điểm nghẽn và đo thời gian rà soát, phê duyệt. Lấy dữ liệu ở đâu Thông tin này thường nằm trong một công cụ đối soát riêng (ví dụ: SAP Account Substantiation and Automation của BlackLine) hoặc trong trường trạng thái tùy chỉnh. Thông tin này thường không có sẵn dưới dạng trường tiêu chuẩn trong BKPF/BSEG. Ví dụ Chưa bắt đầuĐang thực hiệnĐã phê duyệtBị từ chối | |||
Các hoạt động trong quy trình từ ghi nhận đến báo cáo: khóa sổ kỳ và đối soát
| Hoạt động | Mô tả | ||
|---|---|---|---|
| Đã bắt đầu đối chiếu tài khoản | Đây là thời điểm bắt đầu đối chiếu một nhóm tài khoản GL trong kỳ. Trong SAP ECC tiêu chuẩn, đây không phải sự kiện riêng biệt và thường được suy ra từ các hoạt động liên quan, chẳng hạn lần đầu chạy một báo cáo quan trọng. | ||
| Vì sao điều này quan trọng Hoạt động này tạo ra một mốc quan trọng để đo thời lượng của toàn bộ giai đoạn đối chiếu. Biết thời điểm bắt đầu đối chiếu là điều cần thiết để tính KPI Thời gian chu kỳ đối chiếu tài khoản. Lấy dữ liệu ở đâu Sự kiện này không được ghi nhật ký rõ ràng. Cần suy ra từ các nguồn dữ liệu khác, chẳng hạn nhật ký kiểm tra hệ thống (giao dịch STAD) ghi nhận lần đầu chạy báo cáo xem số dư như FAGLB03 hoặc FS10N. Thu thập Suy ra từ lần chạy đầu tiên các giao dịch báo cáo liên quan (ví dụ: FAGLB03) trong nhật ký hệ thống. Loại sự kiện inferred | |||
| Đã chạy định giá ngoại tệ | Đây là việc chạy chương trình định giá lại các khoản mục chưa thanh toán và số dư bằng ngoại tệ theo tỷ giá cuối kỳ. Chương trình thường chạy theo lô trong các bước khóa sổ cuối kỳ. | ||
| Vì sao điều này quan trọng Đây là bước quan trọng để đảm bảo báo cáo tài chính chính xác tại các tổ chức đa quốc gia. Phân tích thời điểm và thời lượng chạy giúp xác định cơ hội tự động hóa và tối ưu hiệu suất. Lấy dữ liệu ở đâu Ghi nhận từ nhật ký chạy chương trình định giá ngoại tệ, chẳng hạn FAGL_FCV hoặc F.05. Thông tin chi tiết về công việc theo lô trong các bảng như TBTCO và TBTCP cung cấp dấu thời gian thực thi. Thu thập Từ nhật ký công việc theo lô (bảng TBTCO) của chương trình FAGL_FC_VALUATION hoặc SAPF100. Loại sự kiện explicit | |||
| Đã ghi sổ bút toán điều chỉnh | Bút toán điều chỉnh được ghi sổ để sửa số dư tài khoản sau khi hoàn tất xử lý giao dịch ban đầu trong kỳ. SAP ghi nhận sự kiện này như một lần ghi sổ chứng từ tài chính tiêu chuẩn. | ||
| Vì sao điều này quan trọng Thông tin này rất cần thiết cho phân tích khối lượng bút toán điều chỉnh. Số lượng điều chỉnh lớn cho thấy các quy trình đầu vào có thể chưa chính xác và là mục tiêu quan trọng để cải tiến quy trình. Lấy dữ liệu ở đâu Có trong các bảng BKPF và BSEG. Thường xác định các bút toán này theo loại chứng từ riêng dành cho điều chỉnh (BKPF-BLART) hoặc theo kỳ khóa sổ đặc biệt, chẳng hạn từ 13 đến 16. Thu thập Lọc BKPF để tìm chứng từ được ghi sổ trong kỳ đặc biệt hoặc có loại chứng từ điều chỉnh. Loại sự kiện explicit | |||
| Đã khóa kỳ ghi sổ | Đây là việc chính thức đóng kỳ ghi sổ, ngăn không cho ghi thêm bút toán vận hành. Việc này bảo toàn tính toàn vẹn của dữ liệu tài chính trong kỳ đã đóng và được ghi nhận bằng một thay đổi cấu hình cụ thể. | ||
| Vì sao điều này quan trọng Đây là sự kiện kết thúc chính thức của quy trình khóa sổ kỳ. Sự kiện này rất cần thiết để tính chính xác tổng thời gian chu kỳ khóa sổ và đo lường hiệu suất đúng hạn. Lấy dữ liệu ở đâu Việc đóng kỳ qua giao dịch OB52 được ghi lại. Có thể tìm các thay đổi này bằng cách phân tích chứng từ thay đổi (bảng CDHDR và CDPOS) của bảng cấu hình T001B. Thu thập Trích xuất từ chứng từ thay đổi (CDHDR/CDPOS) của bảng T001B. Loại sự kiện explicit | |||
| Đã mở kỳ để ghi sổ | Đây là thời điểm chính thức bắt đầu kỳ tài chính, cho phép ghi nhận giao dịch vào sổ cái tổng hợp. Người dùng được phân quyền thực hiện thay đổi cấu hình này để mở một kỳ cụ thể cho phép ghi sổ ở một hoặc nhiều mã công ty. | ||
| Vì sao điều này quan trọng Hoạt động này đánh dấu sự kiện bắt đầu chính thức của một trường hợp trong quy trình khóa sổ kỳ. Phân tích khoảng thời gian từ mốc này giúp bạn hiểu toàn bộ vòng đời của kỳ tài chính. Lấy dữ liệu ở đâu Các thay đổi kỳ ghi sổ qua giao dịch OB52 được ghi lại. Có thể trích xuất những thay đổi này bằng cách phân tích chứng từ thay đổi của bảng cấu hình T001B, thường dùng các bảng CDHDR và CDPOS. Thu thập Trích xuất từ chứng từ thay đổi (CDHDR/CDPOS) của bảng T001B. Loại sự kiện explicit | |||
| Đã tạo báo cáo tài chính | Đây là thời điểm tạo các báo cáo tài chính chính thức, chẳng hạn báo cáo lãi lỗ và bảng cân đối kế toán. Hoạt động này thường được ghi nhận bằng cách theo dõi lần chạy một chương trình báo cáo cụ thể. | ||
| Vì sao điều này quan trọng Đây là mốc quan trọng, đánh dấu kết thúc xử lý dữ liệu và bắt đầu giai đoạn rà soát, phê duyệt cuối cùng. Thời gian từ sự kiện này đến khi được phê duyệt là một KPI quan trọng. Lấy dữ liệu ở đâu Suy ra từ nhật ký kiểm tra hệ thống như STAD, ghi nhận việc chạy chương trình tạo báo cáo tài chính, thường là giao dịch F.01. Thu thập Từ nhật ký hệ thống (STAD) theo dõi việc chạy giao dịch lập báo cáo tài chính F.01. Loại sự kiện inferred | |||
| Đã chạy tất toán GR/IR | Đây là việc chạy chương trình tất toán tự động cho tài khoản Nhận hàng/Hóa đơn nhận hàng. Chương trình đối chiếu các phiếu nhận hàng với hóa đơn tương ứng rồi tất toán các khoản mục với nhau. | ||
| Vì sao điều này quan trọng Tài khoản GR/IR thường phát sinh vấn đề đối chiếu. Theo dõi hoạt động này giúp đảm bảo bước tự động chạy đúng và xác định số lượng ngoại lệ cần xử lý thủ công. Lấy dữ liệu ở đâu Ghi nhận lần chạy trong nhật ký công việc theo lô (giao dịch SM37). Chương trình thường dùng là SAPF124, chạy qua giao dịch F.13. Các bảng nhật ký công việc như TBTCO cung cấp dấu thời gian cần thiết. Thu thập Từ nhật ký công việc theo lô (bảng TBTCO) của chương trình tất toán SAPF124. Loại sự kiện explicit | |||
| Đã ghi nhận chi phí trích trước hoặc khoản dự phòng | Đây là việc ghi nhận bút toán cho khoản trích trước, phân bổ hoặc dự phòng, thường được thực hiện vào cuối kỳ. SAP không ghi nhận đây là một loại sự kiện riêng. Có thể suy ra sự kiện này bằng cách xác định các bút toán cụ thể dựa trên đặc điểm của chúng. | ||
| Vì sao điều này quan trọng Tách riêng các bút toán này giúp phân tích quy trình con quản lý các khoản ước tính. Số lượng khoản trích trước lớn hoặc thường xuyên điều chỉnh có thể cho thấy những khâu cần cải tiến quy trình. Lấy dữ liệu ở đâu Có thể suy ra từ các bảng chứng từ tài chính BKPF và BSEG. Xác định bút toán bằng cách lọc theo loại chứng từ cụ thể (BKPF-BLART), tài khoản GL riêng (BSEG-HKONT) hoặc từ khóa trong nội dung tiêu đề (BKPF-BKTXT). Thu thập Lọc bảng BKPF/BSEG theo loại chứng từ, tài khoản GL cụ thể hoặc trường văn bản. Loại sự kiện inferred | |||
| Đã ghi sổ bút toán đảo | Hoạt động này ghi nhận việc ghi sổ chứng từ đảo một bút toán đã ghi sổ trước đó, thường để sửa lỗi. SAP tạo liên kết rõ ràng giữa chứng từ đảo và chứng từ gốc. | ||
| Vì sao điều này quan trọng Số lượng bút toán đảo lớn có thể cho thấy vấn đề về độ chính xác khi nhập dữ liệu hoặc kiểm soát quy trình. Theo dõi các sự kiện này giúp đo tỷ lệ đúng ngay lần đầu và xác định những khâu cần cải thiện. Lấy dữ liệu ở đâu Có thể tìm chứng từ đảo trong bảng BKPF. Chúng thường được tạo bằng giao dịch FB08 và có số chứng từ bị đảo trong trường BKPF-STBLG. Thu thập Xác định chứng từ có trường BKPF-STBLG được điền hoặc được tạo bằng mã giao dịch đảo. Loại sự kiện explicit | |||
| Đã rà soát đối chiếu | Cho biết việc đối chiếu một tài khoản hoặc nhóm tài khoản cụ thể đã được rà soát và xác nhận. Trong SAP ECC tiêu chuẩn, sự kiện này không được ghi nhận rõ ràng và thường được quản lý bằng các biện pháp kiểm soát ngoài hệ thống hoặc giải pháp tùy chỉnh. | ||
| Vì sao điều này quan trọng Theo dõi thời điểm rà soát giúp bạn hiểu rõ các điểm nghẽn trong khâu kiểm soát và giám sát khi khóa sổ. Việc này có thể làm lộ ra chậm trễ do người quản lý chưa sẵn sàng hoặc do phải làm lại. Lấy dữ liệu ở đâu Thông tin này không có trong các bảng ECC tiêu chuẩn. Cần có giải pháp tùy chỉnh, chẳng hạn trường trạng thái trong bảng Z tùy chỉnh, workflow đơn giản hoặc tích hợp với công cụ đối chiếu chuyên dụng của bên thứ ba. Thu thập Ghi nhận thay đổi trạng thái từ workflow tùy chỉnh hoặc bảng Z nếu đã triển khai. Loại sự kiện inferred | |||
| Đã tạo báo cáo bảng cân đối thử | Đánh dấu thời điểm chạy báo cáo bảng cân đối thử. Đây là bước quan trọng để xác nhận tổng phát sinh Nợ bằng tổng phát sinh Có trước khi lập báo cáo tài chính chính thức. | ||
| Vì sao điều này quan trọng Đây là bước kiểm tra chất lượng quan trọng trước khi lập báo cáo cuối cùng. Nếu chạy báo cáo nhiều lần, có thể dữ liệu nguồn đang có vấn đề cần phát hiện và sửa, gây chậm trễ. Lấy dữ liệu ở đâu Suy ra từ nhật ký kiểm tra hệ thống như giao dịch STAD, nơi có thể ghi nhận việc chạy các giao dịch báo cáo bảng cân đối thử như S_ALR_87012277 hoặc F.01. Thu thập Từ nhật ký hệ thống (STAD) theo dõi việc chạy các mã giao dịch báo cáo. Loại sự kiện inferred | |||
| Đã tất toán chứng từ liên công ty | Hoạt động này đánh dấu việc tất toán một khoản mục chưa thanh toán giữa hai mã công ty khác nhau, cho biết giao dịch liên công ty đã được thanh toán hoặc đối chiếu. SAP ghi nhận việc này bằng một bút toán tài chính cụ thể, thường là chứng từ tất toán. | ||
| Vì sao điều này quan trọng Chậm tất toán các khoản mục liên công ty là điểm nghẽn thường gặp khi khóa sổ. Theo dõi hoạt động này rất quan trọng để đo lường và cải thiện thời gian chu kỳ đối chiếu liên công ty. Lấy dữ liệu ở đâu Xác định từ chứng từ tài chính trong BKPF và BSEG. Chứng từ tất toán liên kết và đóng các khoản mục chưa thanh toán. Ngày tất toán (BSEG-AUGDT) được dùng làm dấu thời gian sự kiện. Có thể nhận diện giao dịch liên công ty qua các trường đối tác giao dịch. Thu thập Xác định chứng từ tất toán trong BKPF/BSEG có các khoản mục liên quan đến đối tác giao dịch. Loại sự kiện explicit | |||
Hướng dẫn trích xuất
Các bước
- Mở công cụ SAP Query: Đăng nhập vào hệ thống SAP ECC. Mở mã giao dịch
SQVI(QuickViewer). 2. Tạo truy vấn mới: Nhập tên truy vấn, ví dụZ_R2R_PERIOD_CLOSE, rồi nhấp “Create”. Trong cửa sổ bật lên, nhập tiêu đề mô tả như “Trích xuất dữ liệu khóa sổ kỳ từ ghi nhận đến báo cáo”. Ở mục “Data source”, chọn “Table join”. 3. Thiết lập kết nối bảng: Thêm bảng chínhBKPF(tiêu đề chứng từ kế toán), sau đó thêm bảngBSEG(phân đoạn chứng từ kế toán). SAP sẽ tự đề xuất điều kiện kết nối (MANDT, BUKRS, BELNR, GJAHR). Hãy kiểm tra rồi chấp nhận các điều kiện này. Để lấy hoạt động mở và khóa kỳ, bạn cần một truy vấn riêng kết nốiCDHDRvàCDPOS. 4. Chọn trường đầu ra (trường danh sách): Mở thẻ “List fld. select.”. Chọn các trường cần cho nhật ký sự kiện từ những bảng hiện có. Các trường này gồmBKPF-BUKRS,BKPF-BELNR,BKPF-GJAHR,BKPF-MONAT,BKPF-CPUDT,BKPF-CPUTM,BKPF-USNAM,BKPF-BLART,BSEG-HKONT,BSEG-DMBTRvà các trường khác nếu cần. 5. Thiết lập tham số đầu vào (trường chọn lọc): Mở thẻ “Selection fields”. Chọn các trường dùng để lọc dữ liệu khi chạy truy vấn. Các trường quan trọng nhất làBKPF-BUKRS(Mã công ty) vàBKPF-GJAHR(Năm tài chính). Bạn cũng có thể thêmBKPF-MONAT(Kỳ ghi sổ) vàBKPF-BLART(Loại chứng từ). 6. Tạo biến thể cho từng hoạt động: Vì SQVI không thể kết hợp các lựa chọn dữ liệu khác nhau (như SQL UNION), bạn phải chạy truy vấn nhiều lần. Với mỗi hoạt động (ví dụ: “Đã ghi sổ khoản trích trước hoặc dự phòng”), chạy truy vấn và nhập các giá trị lọc cụ thể trên màn hình chọn, chẳng hạn danh sách loại chứng từ liên quan đến khoản trích trước. Lưu bộ tiêu chí chọn này thành một biến thể. Lặp lại cho từng hoạt động có thể trích xuất. 7. Chạy truy vấn và trích xuất dữ liệu: Chạy truy vấn cho từng biến thể đã tạo. Truy vấn sẽ áp dụng bộ lọc cụ thể của hoạt động đó. 8. Xuất kết quả: Trên màn hình kết quả, xuất dữ liệu ra tệp cục bộ. Định dạng thường dùng nhất là “Spreadsheet”. Lặp lại thao tác xuất cho từng biến thể. 9. Gộp và chuyển đổi dữ liệu: Mở các tệp đã xuất bằng chương trình bảng tính hoặc công cụ lập trình. Gộp dữ liệu từ tất cả các tệp vào một tệp chính. 10. Thêm cột cố định và cột tính toán: Trong tệp đã gộp, thêm các cột không được trích xuất trực tiếp từ bảng SAP. Các cột này gồmActivityName(nhập thủ công dựa trên biến thể đã tạo ra dữ liệu),FinancialPeriod(ghép Năm tài chính và Kỳ),EventTime(ghép trường ngày và giờ),SourceSystemvàLastDataUpdate. 11. Định dạng để tải lên: Lưu tệp cuối cùng ở định dạng CSV hoặc Excel với tiêu đề cột chính xác theo yêu cầu của công cụ process mining. Kiểm tra kiểu dữ liệu và định dạng trước khi tải lên.
Cấu hình
- Nguồn dữ liệu: Kết nối bảng trong SAP Query (SQVI). Các bảng chính gồm BKPF, BSEG, CDHDR và CDPOS. * Khoảng ngày: Nên trích xuất dữ liệu trong ít nhất 3 đến 6 kỳ tài chính đầy đủ để nhận diện xu hướng. Đặt bộ lọc cho
BKPF-GJAHR(Năm tài chính) vàBKPF-MONAT(Kỳ). * Lọc theo mã công ty: Luôn lọc theoBKPF-BUKRS(Mã công ty) để giới hạn lượng dữ liệu và tập trung phân tích vào các pháp nhân cụ thể. Không nên trích xuất cùng lúc tất cả mã công ty. * Lọc theo loại chứng từ: Dùng bộ lọcBKPF-BLART(Loại chứng từ) để tách riêng các hoạt động như khoản trích trước, điều chỉnh hoặc đảo bút toán. Bạn cần xác định loại chứng từ phù hợp với tổ chức của mình. * Điều kiện tiên quyết: Người dùng chạy trích xuất cần được cấp quyền sử dụng giao dịchSQVIvà quyền xem các bảng tài chính liên quan (ví dụ: đối tượng phân quyền S_TABU_DIS). * Lưu ý về hiệu suất: Kết nối BKPF và BSEG có thể tiêu tốn nhiều tài nguyên. Hãy chạy trích xuất ngoài giờ cao điểm. Tránh dùng khoảng ngày quá rộng hoặc bỏ trống bộ lọc Mã công ty, vì có thể gây thiếu bộ nhớ hoặc hết thời gian chờ.
Truy vấn mẫu sql
/*
LOGICAL REPRESENTATION FOR SAP QUERY (SQVI)
This is not a single executable script. Due to limitations in SQVI, you must create a base query joining BKPF and BSEG, then run it multiple times using different selection screen variants to extract each activity below. The results must be combined manually.
A separate query joining CDHDR and CDPOS is needed for period open/close activities.
*/
-- Activity 1: Period Opened For Posting
-- Required Query: Join CDHDR and CDPOS in SQVI.
SELECT
CONCAT(T001B.VONJ1, T001B.POPER) AS FinancialPeriod,
'Period Opened For Posting' AS ActivityName,
TO_TIMESTAMP(CONCAT(CDHDR.UDATE, CDHDR.UTIME), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
T001B.BUKRS AS BUKRS,
NULL AS BELNR,
CDHDR.USERNAME AS USNAM,
NULL AS HKONT,
NULL AS BLART,
NULL AS DMBTR,
NULL AS JournalEntryType
FROM CDHDR
JOIN CDPOS ON CDHDR.CHANGENR = CDPOS.CHANGENR
JOIN T001B ON SUBSTRING(CDPOS.TABKEY, 4, 4) = T001B.BUKRS
WHERE CDHDR.OBJECTCLAS = 'DEBI_BUKRS' AND CDPOS.TABNAME = 'T001B' AND CDPOS.FNAME = 'OFPER' AND CDPOS.VALUE_NEW > CDPOS.VALUE_OLD;
UNION ALL
-- Activity 2: Accrual Or Provision Posted
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Accrual Or Provision Posted' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Accrual' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.BLART IN ('SA', '[Your Accrual Doc Type]'); -- Filter by document types used for accruals
UNION ALL
-- Activity 3: Intercompany Document Cleared
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Intercompany Document Cleared' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.AUGBL AS BELNR, -- The clearing document number
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Clearing' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BSEG.AUGBL IS NOT NULL AND BSEG.VBUND IS NOT NULL; -- Identify cleared items with an intercompany trading partner
UNION ALL
-- Activity 4: Foreign Currency Valuation Run
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Foreign Currency Valuation Run' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Valuation' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.TCODE IN ('FAGL_FCV', 'FBB1'); -- Filter by FCV transaction code
UNION ALL
-- Activity 5: GR/IR Clearing Run Executed
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'GR/IR Clearing Run Executed' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Clearing' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.TCODE IN ('F.13', 'F13E'); -- Filter by automated clearing transaction codes
UNION ALL
-- Activity 6: Account Reconciliation Started (Proxy)
-- This is a proxy. It takes the earliest adjusting journal entry timestamp for the period.
SELECT
A.FinancialPeriod,
'Account Reconciliation Started' AS ActivityName,
MIN(A.EventTime) AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
A.BUKRS,
NULL AS BELNR,
NULL AS USNAM,
NULL AS HKONT,
NULL AS BLART,
NULL AS DMBTR,
NULL AS JournalEntryType
FROM (
SELECT CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
BKPF.BUKRS
FROM BKPF
WHERE BKPF.BLART IN ('AB', '[Your Adjusting Doc Type]')
) AS A
GROUP BY A.FinancialPeriod, A.BUKRS;
UNION ALL
-- Activity 7: Adjusting Journal Entry Posted
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Adjusting Journal Entry Posted' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Adjusting' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.BLART IN ('AB', '[Your Adjusting Doc Type]'); -- Filter by document types for adjustments
UNION ALL
-- Activity 8: Reversal Entry Posted
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Reversal Entry Posted' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Reversal' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.STBLG IS NOT NULL; -- STBLG (Reversed Document Number) is populated for reversals
UNION ALL
-- Activity 9: Period Closed For Posting
-- Required Query: Join CDHDR and CDPOS in SQVI.
SELECT
CONCAT(T001B.VONJ1, T001B.POPER) AS FinancialPeriod,
'Period Closed For Posting' AS ActivityName,
TO_TIMESTAMP(CONCAT(CDHDR.UDATE, CDHDR.UTIME), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
T001B.BUKRS AS BUKRS,
NULL AS BELNR,
CDHDR.USERNAME AS USNAM,
NULL AS HKONT,
NULL AS BLART,
NULL AS DMBTR,
NULL AS JournalEntryType
FROM CDHDR
JOIN CDPOS ON CDHDR.CHANGENR = CDPOS.CHANGENR
JOIN T001B ON SUBSTRING(CDPOS.TABKEY, 4, 4) = T001B.BUKRS
WHERE CDHDR.OBJECTCLAS = 'DEBI_BUKRS' AND CDPOS.TABNAME = 'T001B' AND CDPOS.FNAME = 'OFPER' AND CDPOS.VALUE_NEW < CDPOS.VALUE_OLD;
/*
-- Activities Not Extractable via this Method
-- The following activities are not data postings and cannot be reliably extracted by querying finance tables BKPF/BSEG.
-- Extraction would require analyzing application logs (SLG1), system logs (STAT), or custom-built logging solutions.
-- Activity: Trial Balance Report Generated
-- Activity: Financial Statements Generated
-- Activity: Reconciliation Reviewed
*/ Các bước
- Xác định phạm vi và thiết kế chương trình: Xác định logic cụ thể để nhận diện từng hoạt động trong số 12 hoạt động cần thiết. Trao đổi với chủ sở hữu quy trình nghiệp vụ và chuyên viên phân tích chức năng SAP để xác nhận loại chứng từ, tài khoản sổ cái và tên chương trình liên quan đến hoạt động khóa sổ cuối kỳ trong môi trường SAP ECC của bạn.
- Tạo chương trình ABAP: Dùng giao dịch
SE38(ABAP Editor) để tạo chương trình thực thi mới, ví dụZ_PM_R2R_EXTRACTION. Nhập tiêu đề mô tả và đặt loại chương trình là “Executable Program”. - Tạo màn hình chọn: Trong chương trình, định nghĩa màn hình chọn bằng
PARAMETERSvàSELECT-OPTIONS. Màn hình này cho phép người dùng xác định phạm vi trích xuất, gồm Mã công ty (BUKRS), Năm tài chính (GJAHR) và Kỳ ghi sổ (MONAT). Đây là bước quan trọng để kiểm soát lượng dữ liệu. - Khai báo cấu trúc dữ liệu: Định nghĩa cấu trúc bảng nội bộ để lưu nhật ký sự kiện cuối cùng. Cấu trúc này phải có tất cả thuộc tính bắt buộc và nên có:
FinancialPeriod,ActivityName,EventTime,SourceSystem,LastDataUpdate,BUKRS,BELNR,USNAM,HKONT,BLART,DMBTRvàJournalEntryType. - Viết logic trích xuất dữ liệu: Viết logic ABAP chính để chọn dữ liệu cho từng hoạt động trong số 12 hoạt động. Với mỗi hoạt động, truy vấn các bảng SAP liên quan (ví dụ: BKPF, BSEG, TBTCO, CDHDR) và điền dữ liệu vào bảng nội bộ trung gian. Dùng logic trong phần truy vấn ABAP đi kèm làm mẫu.
- Xác định hoạt động suy ra: Với các hoạt động không được ghi lại rõ ràng trong SAP tiêu chuẩn, chẳng hạn “Bắt đầu đối soát tài khoản” hoặc “Đã rà soát đối soát”, hãy triển khai logic suy luận đã thống nhất. Có thể cần kiểm tra lần chạy đầu tiên của một báo cáo cụ thể hoặc truy vấn các “bảng Z” tùy chỉnh nếu có.
- Hợp nhất dữ liệu sự kiện: Sau khi trích xuất dữ liệu cho từng hoạt động, nối các bản ghi từ mỗi bảng trung gian vào bảng nội bộ hợp nhất cuối cùng. Đảm bảo trường
EventTimeđược điền chính xác từ trường nguồn phù hợp, chẳng hạn ngày/giờ ghi sổ chứng từ hoặc ngày/giờ bắt đầu tác vụ. - Chuẩn hóa và định dạng dữ liệu: Trước khi xuất, chuẩn hóa các trường chính. Ghép năm tài chính và kỳ thành mã
FinancialPeriod. Đặt giá trị cố định choSourceSystemvàLastDataUpdate. Đảm bảo dấu thời gian có định dạng thống nhất. - Phát triển chức năng xuất dữ liệu: Thêm chức năng xuất bảng nội bộ cuối cùng vào chương trình. Cách thường dùng nhất là ghi dữ liệu vào tệp CSV hoặc tệp phân tách bằng tab trên SAP Application Server (dùng
OPEN DATASET), hoặc cho phép người dùng tải tệp trực tiếp về máy (dùng function moduleGUI_DOWNLOAD). - Kiểm thử và xác thực: Kiểm thử kỹ chương trình với bộ dữ liệu đại diện gồm nhiều mã công ty và kỳ. Làm theo các bước xác thực để đảm bảo dữ liệu chính xác và đầy đủ. Dựa trên phản hồi của chuyên gia chức năng để điều chỉnh logic chọn dữ liệu.
- Lên lịch chạy (không bắt buộc): Sau khi xác thực, bạn có thể lên lịch chạy chương trình dưới dạng tác vụ nền qua giao dịch
SM36. Nhờ đó, nhật ký sự kiện được trích xuất định kỳ tự động mà không cần thao tác thủ công.
Cấu hình
- Tiêu chí chọn dữ liệu: Chương trình cần có màn hình chọn để lọc dữ liệu. Các bộ lọc chính gồm:
Company Code (BUKRS): Bắt buộc để giới hạn phạm vi ở các pháp nhân liên quan.Fiscal Year (GJAHR): Bắt buộc để xác định năm chính cần trích xuất.Posting Period (MONAT): Bắt buộc để chọn các kỳ tài chính cụ thể.
- Cấu hình theo hoạt động: Nhiều lựa chọn phụ thuộc vào cấu hình SAP cụ thể của bạn. Hãy thiết lập chúng dưới dạng tham số hoặc hằng số trong chương trình:
Accrual/Provision Document Types: Danh sách loại chứng từ (BLART) dùng để nhận diện khoản trích trước và dự phòng.Adjusting Entry Document Types: Danh sách loại chứng từ dùng để nhận diện bút toán điều chỉnh.Background Job/Program Names: Tên kỹ thuật của các chương trình dùng cho định giá ngoại tệ (ví dụ:FAGL_FCV), bù trừ GR/IR (ví dụ:SAPF124), báo cáo bảng cân đối thử và lập báo cáo tài chính (ví dụ:RFBILA00).
- Khoảng ngày: Dù lựa chọn chính dựa trên năm tài chính và kỳ, logic bên dưới cần xét đầy đủ ngày giờ của sự kiện. Để phân tích ban đầu, nên trích xuất dữ liệu của 3 đến 6 kỳ tài chính đã hoàn tất gần nhất.
- Hiệu suất: Hiệu suất chương trình rất quan trọng trong môi trường SAP lớn. Đảm bảo các truy vấn cơ sở dữ liệu dùng trường chỉ mục, nhất là trong các bảng như
BKPFvàBSEG. Tránh chọn tất cả trường (SELECT *) và nếu cần, hãy xử lý dữ liệu theo từng gói có kích thước phù hợp. - Phân quyền: Người dùng hoặc tài khoản dịch vụ chạy chương trình cần có quyền truy cập tất cả bảng được truy vấn (
BKPF,BSEG,TBTCO,TBTCP,CDHDR,CDPOS) và quyền chạy các giao dịch nhưSE38(để phát triển) vàSM37/SM36(để lên lịch và theo dõi).
Truy vấn mẫu abap
REPORT Z_PM_R2R_EXTRACTION.
" ====================================================================
" DATA DECLARATIONS
" ====================================================================
TYPES: BEGIN OF ty_event_log,
FinancialPeriod TYPE string,
ActivityName TYPE string,
EventTime TYPE timestamp,
SourceSystem TYPE string,
LastDataUpdate TYPE timestamp,
BUKRS TYPE bukrs,
BELNR TYPE belnr_d,
USNAM TYPE usnam,
HKONT TYPE hkont,
BLART TYPE blart,
DMBTR TYPE dmbtr,
JournalEntryType TYPE string,
END OF ty_event_log.
DATA: lt_final_log TYPE STANDARD TABLE OF ty_event_log,
ls_log_entry LIKE LINE OF lt_final_log.
DATA: lv_source_system TYPE string VALUE 'SAP ECC'.
GET TIME STAMP FIELD ls_log_entry-LastDataUpdate.
" ====================================================================
" SELECTION SCREEN
" ====================================================================
SELECT-OPTIONS: s_bukrs FOR ls_log_entry-bukrs OBLIGATORY,
s_gjahr FOR bkpf-gjahr OBLIGATORY,
s_monat FOR bkpf-monat OBLIGATORY.
PARAMETERS: p_accrl TYPE blart DEFAULT 'SA', " Example Doc Type for Accruals
p_adjst TYPE blart DEFAULT 'AJ', " Example Doc Type for Adjustments
p_fcv TYPE btcjob DEFAULT 'FAGL_FCV*', " Program for FC Valuation
p_grir TYPE btcjob DEFAULT 'SAPF124*', " Program for GR/IR Clearing
p_fs TYPE btcjob DEFAULT 'RFBILA00'. " Program for Fin. Statements
" ====================================================================
" MAIN LOGIC
" ====================================================================
START-OF-SELECTION.
" --- 1. Period Opened For Posting ---
" Note: This is complex. This example queries change documents for posting period config (T001B).
SELECT h~objectid, h~udate, h~utime, h~username
INTO TABLE @DATA(lt_period_open)
FROM cdhdr AS h
WHERE h~objectclas = 'V_T001B' AND h~change_ind = 'U'.
LOOP AT lt_period_open INTO DATA(ls_period_open).
" Further logic needed to parse OBJECTID and check CDPOS for opening a period.
" This is a simplified placeholder for a complex logic.
ls_log_entry-ActivityName = 'Period Opened For Posting'.
" Populate other fields... append to lt_final_log
ENDLOOP.
" --- 2. Accrual Or Provision Posted ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_accrual)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat AND h~blart = @p_accrl.
LOOP AT lt_accrual INTO DATA(ls_accrual).
CLEAR ls_log_entry.
CONVERT DATE ls_accrual-cpudt TIME ls_accrual-cputm INTO TIME STAMP ls_log_entry-EventTime TIME ZONE sy-zonlo.
CONCATENATE ls_accrual-gjahr ls_accrual-monat INTO ls_log_entry-FinancialPeriod.
ls_log_entry-ActivityName = 'Accrual Or Provision Posted'.
ls_log_entry-BUKRS = ls_accrual-bukrs.
ls_log_entry-BELNR = ls_accrual-belnr.
ls_log_entry-USNAM = ls_accrual-usnam.
ls_log_entry-HKONT = ls_accrual-hkont.
ls_log_entry-BLART = ls_accrual-blart.
ls_log_entry-DMBTR = ls_accrual-dmbtr.
ls_log_entry-JournalEntryType = 'Accrual'.
GET TIME STAMP FIELD ls_log_entry-LastDataUpdate.
ls_log_entry-SourceSystem = lv_source_system.
APPEND ls_log_entry TO lt_final_log.
ENDLOOP.
" --- 3. Intercompany Document Cleared ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_ic_clear)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat
AND h~blart = 'AB' AND i~vbund <> space.
LOOP AT lt_ic_clear INTO DATA(ls_ic_clear).
" Populate ls_log_entry and append to lt_final_log, setting ActivityName = 'Intercompany Document Cleared'
ENDLOOP.
" --- 4. Foreign Currency Valuation Run ---
SELECT j~jobname, j~sdlstrtda, j~sdlstrttm, j~sdluname
INTO TABLE @DATA(lt_fcv_jobs)
FROM tbtco AS j
WHERE j~jobname LIKE @p_fcv AND j~status = 'F'. " F = Finished
LOOP AT lt_fcv_jobs INTO DATA(ls_fcv_job).
" Populate ls_log_entry, deriving FinancialPeriod from date, setting ActivityName = 'Foreign Currency Valuation Run'
ENDLOOP.
" --- 5. GR/IR Clearing Run Executed ---
SELECT j~jobname, j~sdlstrtda, j~sdlstrttm, j~sdluname
INTO TABLE @DATA(lt_grir_jobs)
FROM tbtco AS j
WHERE j~jobname LIKE @p_grir AND j~status = 'F'.
LOOP AT lt_grir_jobs INTO DATA(ls_grir_job).
" Populate ls_log_entry, deriving FinancialPeriod from date, setting ActivityName = 'GR/IR Clearing Run Executed'
ENDLOOP.
" --- 6. Account Reconciliation Started (Inferred) ---
" Note: Inferring this by first run of a report, e.g., FAGLB03. Requires custom logging or complex logic.
" Placeholder: Query a custom log table if available.
" SELECT ... FROM zreco_log ...
" --- 7. Adjusting Journal Entry Posted ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_adjust)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat AND h~blart = @p_adjst.
LOOP AT lt_adjust INTO DATA(ls_adjust).
" Populate ls_log_entry and append, setting ActivityName = 'Adjusting Journal Entry Posted', JournalEntryType = 'Adjusting'
ENDLOOP.
" --- 8. Reversal Entry Posted ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_reversal)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat AND h~stblg <> space.
LOOP AT lt_reversal INTO DATA(ls_reversal).
" Populate ls_log_entry and append, setting ActivityName = 'Reversal Entry Posted', JournalEntryType = 'Reversal'
ENDLOOP.
" --- 9. Trial Balance Report Generated (Inferred from Job) ---
" Similar to other jobs, query TBTCO for Trial Balance report programs.
" SELECT ... FROM tbtco ... WHERE jobname LIKE '[Your Trial Balance Program]'.
" --- 10. Financial Statements Generated ---
SELECT j~jobname, j~sdlstrtda, j~sdlstrttm, j~sdluname
INTO TABLE @DATA(lt_fs_jobs)
FROM tbtco AS j
WHERE j~jobname LIKE @p_fs AND j~status = 'F'.
LOOP AT lt_fs_jobs INTO DATA(ls_fs_job).
" Populate ls_log_entry, deriving FinancialPeriod from date, setting ActivityName = 'Financial Statements Generated'
ENDLOOP.
" --- 11. Reconciliation Reviewed (Inferred) ---
" Note: This activity is almost always managed outside of SAP or in a custom solution.
" Placeholder: Query a custom approval/log table if available.
" SELECT ... FROM zreco_approval ...
" --- 12. Period Closed For Posting ---
" Note: Similar to 'Period Opened', this is very complex. Query change documents for T001B.
SELECT h~objectid, h~udate, h~utime, h~username
INTO TABLE @DATA(lt_period_close)
FROM cdhdr AS h
WHERE h~objectclas = 'V_T001B' AND h~change_ind = 'U'.
LOOP AT lt_period_close INTO DATA(ls_period_close).
" Further logic needed to parse OBJECTID and check CDPOS for closing a period.
ls_log_entry-ActivityName = 'Period Closed For Posting'.
" Populate other fields... append to lt_final_log
ENDLOOP.
" ... Code to display or download the lt_final_log internal table ...
ENDFORMS. Các bước
- Chuẩn bị điều kiện cần thiết: Xin thông tin đăng nhập chỉ có quyền đọc vào cơ sở dữ liệu SAP ECC bên dưới. Xác định đúng lược đồ cơ sở dữ liệu, thường là
SAPSR3hoặc tên tương tự do quản trị viên cơ sở dữ liệu cung cấp. - Xác định cấu hình hệ thống: Trao đổi với nhóm SAP Finance để xác định
Company Codes(BUKRS) và các kỳ tài chính cần phân tích. Quan trọng nhất, hãy xác địnhDocument Types(BLART) cụ thể được dùng cho các giao dịch “Đã ghi sổ khoản trích trước hoặc dự phòng”, “Đã ghi sổ bút toán điều chỉnh” và “Giao dịch nội bộ tập đoàn” trong hệ thống của bạn. - Xác minh tên chương trình và tác vụ: Xác nhận tên chương trình cho các tác vụ hàng loạt chính như định giá ngoại tệ (ví dụ:
FAGL_FCV), bù trừ GR/IR (ví dụ:SAPF124), báo cáo bảng cân đối thử (ví dụ:RFBILA00) và lập báo cáo tài chính (ví dụ:RFBILA00). Bạn có thể tìm các tên này bằng cách kiểm tra tác vụ đã lên lịch trong giao dịchSM37. - Tùy chỉnh truy vấn SQL: Sao chép truy vấn SQL được cung cấp vào trình soạn thảo văn bản hoặc ứng dụng SQL. Thay các biến giữ chỗ
{{start_date}},{{end_date}}và{{company_codes}}bằng giá trị thực tế cho phân tích. Cập nhật danh sách loại chứng từ và tên chương trình dựa trên thông tin thu thập ở các bước trước. - Kết nối cơ sở dữ liệu: Dùng ứng dụng SQL tiêu chuẩn như DBeaver, SQL Server Management Studio hoặc Oracle SQL Developer để kết nối với cơ sở dữ liệu SAP bằng thông tin đăng nhập đã nhận.
- Chạy truy vấn: Chạy truy vấn SQL đã tùy chỉnh trên cơ sở dữ liệu. Tùy vào khoảng ngày và kích thước các bảng tài chính, truy vấn có thể mất nhiều thời gian.
- Kiểm tra kết quả ban đầu: Khi truy vấn chạy xong, kiểm tra nhanh kết quả. Xem số dòng có hợp lý không, các cột có đầy đủ không và kết quả có bao gồm nhiều giá trị
ActivityNamekhác nhau không. - Xuất dữ liệu: Xuất toàn bộ kết quả từ ứng dụng SQL sang tệp CSV. Lưu tệp với mã hóa UTF-8 để tránh lỗi ký tự.
- Chuẩn bị tải lên: Trước khi tải lên công cụ process mining, hãy xác nhận tiêu đề cột trong tệp CSV khớp chính xác với tên thuộc tính bắt buộc (
FinancialPeriod,ActivityName,EventTime, v.v.). Đồng thời, kiểm tra cộtEventTimedùng định dạng dấu thời gian nhất quán, chẳng hạnYYYY-MM-DD HH:MI:SS.
Cấu hình
- Thông tin đăng nhập cơ sở dữ liệu: Cần có người dùng cơ sở dữ liệu chỉ có quyền đọc và được phép truy cập các bảng tài chính và bảng hệ thống cốt lõi của SAP. Các bảng này gồm
BKPF,BSEG,TBTCO,CDHDRvàCDPOS. - Khoảng ngày: Nên trích xuất dữ liệu của ít nhất 3 đến 6 kỳ tài chính đầy đủ để ghi nhận những khác biệt đáng kể trong quy trình. Lưu ý, khoảng ngày càng dài thì thời gian chạy truy vấn càng tăng đáng kể.
- Mã công ty (
BUKRS): Luôn lọc theo danh sách mã công ty cụ thể. Không thể chạy truy vấn cho tất cả mã công ty trên một hệ thống lớn mà không gặp vấn đề về hiệu suất. - Loại chứng từ (
BLART): Việc xác định loại bút toán, chẳng hạn khoản trích trước và điều chỉnh, hoàn toàn phụ thuộc vào cấu hình SAP của tổ chức bạn. Để phân loại hoạt động chính xác, bạn phải điền đúng mã loại chứng từ vào các mệnh đềWHEREcủa truy vấn. - Tên chương trình và tác vụ: Truy vấn dùng tên chương trình phổ biến cho các bước khóa sổ tự động. Hệ thống của bạn có thể dùng chương trình bao tùy chỉnh hoặc tên tác vụ khác. Hãy xác minh trong giao dịch
SM37và cập nhật truy vấn cho phù hợp. - Lưu ý về hiệu suất: Truy vấn này truy cập các bảng rất lớn, đặc biệt là
BSEGvàCDPOS. Bạn nên chạy trích xuất ngoài giờ làm việc để tránh ảnh hưởng đến hiệu suất hệ thống. Cách hiệu quả nhất để kiểm soát thời gian chạy là dùng bộ lọc hẹp cho ngày và mã công ty.
Truy vấn mẫu sql
SELECT
CONCAT(CAST(b.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', b.MONAT), 2)) AS FinancialPeriod,
'Period Opened For Posting' AS ActivityName,
c.UDATE + c.UTIME AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
p.TABKEY AS CompanyCode,
NULL AS DocumentNumber,
c.USERNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM CDHDR c
JOIN CDPOS p ON c.OBJECTCLAS = p.OBJECTCLAS AND c.OBJECTID = p.OBJECTID AND c.CHANGENR = p.CHANGENR
WHERE c.OBJECTCLAS = 'V_T001B'
AND p.TABNAME = 'T001B'
AND p.FNAME = 'FRPE1'
AND c.UDATE BETWEEN '{{start_date}}' AND '{{end_date}}'
UNION ALL
SELECT
CONCAT(CAST(b.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', b.MONAT), 2)) AS FinancialPeriod,
'Period Closed For Posting' AS ActivityName,
c.UDATE + c.UTIME AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
p.TABKEY AS CompanyCode,
NULL AS DocumentNumber,
c.USERNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM CDHDR c
JOIN CDPOS p ON c.OBJECTCLAS = p.OBJECTCLAS AND c.OBJECTID = p.OBJECTID AND c.CHANGENR = p.CHANGENR
WHERE c.OBJECTCLAS = 'V_T001B'
AND p.TABNAME = 'T001B'
AND p.FNAME = 'TOPE1'
AND c.UDATE BETWEEN '{{start_date}}' AND '{{end_date}}'
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Accrual Or Provision Posted' AS ActivityName,
h.CPUDT + h.CPUTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Accrual' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.BUDAT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.BLART IN ('SA', '[Your Accrual Doc Type]')
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Intercompany Document Cleared' AS ActivityName,
h.AUGDT AS EventTime, -- Clearing Date
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Clearing' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.AUGDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.BLART IN ('[Your Intercompany Doc Type]')
AND h.AUGBL IS NOT NULL
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Foreign Currency Valuation Run' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME = 'FAGL_FCV' OR p.PROGNAME = 'SAPF100'
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F' -- Finished
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'GR/IR Clearing Run Executed' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME = 'SAPF124' -- Program for F.13
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Account Reconciliation Started' AS ActivityName, -- Proxy event
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME IN ('FAGLL03', 'FBL3N') -- Common reconciliation reports
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Adjusting Journal Entry Posted' AS ActivityName,
h.CPUDT + h.CPUTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Adjusting' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.BUDAT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.BLART IN ('[Your Adjusting Doc Type]')
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Reversal Entry Posted' AS ActivityName,
h.CPUDT + h.CPUTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Reversal' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.BUDAT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.STBLG IS NOT NULL -- STBLG links to the reversed document
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Trial Balance Report Generated' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME IN ('RFSSLD00', 'S_ALR_87012310')
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Financial Statements Generated' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME = 'RFBILA00' -- Program for F.01
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
-- UNION ALL
-- Note: 'Reconciliation Reviewed' is typically not a standard, logged event in SAP ECC.
-- This activity often happens offline or in a custom tool.
-- The following is a placeholder to be adapted if a custom (Z-table) log exists.
-- SELECT
-- CONCAT(CAST(YEAR(z.REVIEW_DATE) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(z.REVIEW_DATE)), 2)) AS FinancialPeriod,
-- 'Reconciliation Reviewed' AS ActivityName,
-- z.REVIEW_DATE AS EventTime,
-- 'SAP_ECC' AS SourceSystem,
-- CURRENT_TIMESTAMP AS LastDataUpdate,
-- z.BUKRS AS CompanyCode,
-- z.HKONT AS DocumentNumber, -- Using GL Account as a proxy identifier
-- z.REVIEWER_USER AS ResponsibleUser,
-- z.HKONT AS GLAccount,
-- NULL AS DocumentType,
-- NULL AS AmountInLocalCurrency,
-- NULL AS JournalEntryType
-- FROM ZRECON_LOG z -- Replace with your custom table for reconciliation status
-- WHERE z.REVIEW_DATE BETWEEN '{{start_date}}' AND '{{end_date}}'
-- AND z.STATUS = 'Reviewed'
; Sẵn sàng bắt đầu chưa?
Dùng mẫu dữ liệu này để bắt đầu hành trình process mining và hiểu rõ hơn về hoạt động khóa sổ tài chính. Bắt đầu tối ưu quy trình từ ghi nhận đến báo cáo ngay hôm nay!
Tối ưu quy trình khóa sổ từ ghi nhận đến báo cáo, rút ngắn thời gian xử lý ngay
Loại bỏ điểm nghẽn và rút ngắn 30% thời gian khóa sổ từ ghi nhận đến báo cáo.
Không cần thẻ tín dụng. Bắt đầu dùng thử miễn phí trong 14 ngày.