Mẫu dữ liệu cho quy trình ghi nhận đến báo cáo, chốt kỳ và đối soát
Mẫu dữ liệu cho quy trình ghi nhận đến báo cáo, chốt kỳ và đối soát
- Các thuộc tính nên thu thập
- Hoạt động chính cần theo dõi khi phân tích quy trình
- Hướng dẫn trích xuất dữ liệu từng bước
Thuộc tính của quy trình ghi nhận đến báo cáo, chốt 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, chẳng hạn '2023-12' cho tháng 12 năm 2023, được dùng làm trường hợp trong quy trình khóa sổ cuối kỳ. | ||
| Mô tả Kỳ tài chính là mã định danh trường hợp cốt lõi, dùng để nhóm mọi hoạt động liên quan đến việc khóa sổ trong một khoảng thời gian cụ thể, thường là một tháng dương lịch hoặc kỳ tài chính. Mỗi kỳ tài chính tương ứng với một lần chạy hoàn chỉnh của quy trình cuối kỳ. Trong phân tích process mining, thuộc tính này giúp theo dõi toàn bộ vòng đời khóa sổ, từ lúc bắt đầu đến khi hoàn tất báo cáo. Bạn có thể dùng thuộc tính này để so sánh thời gian chu kỳ giữa các kỳ, xác định những luồng quy trình phổ biến và phân tích khác biệt giữa quy trình khóa sổ tháng, quý và năm. Khi xem mỗi kỳ là một trường hợp, chuyên viên phân tích có thể đo lường hiệu quả theo thời gian và xác định điểm nghẽn mang tính hệ thống. Vì sao điều này quan trọng Đây là mã định danh trường hợp thiết yếu để xác định phạm vi phân tích, so sánh hiệu quả khóa sổ giữa các kỳ và nhận diện xu hướng hoặc vấn đề lặp lại. Lấy dữ liệu ở đâu Được tạo bằng cách kết hợp các trường Năm tài chính (GJAHR) và Kỳ ghi sổ (MONAT) từ tiêu đề chứng từ tài chính, thường lấy từ các bảng như BKPF. Ví dụ 2023-122024-03Quý 1 năm 2024 | |||
| Hoạt động ActivityName | Tên của một bước nghiệp vụ hoặc tác vụ cụ thể trong quy trình khóa sổ kỳ, chẳng hạn như 'Đã ghi sổ bút toán điều chỉnh' hoặc 'Đóng kỳ ghi sổ'. | ||
| Mô tả Thuộc tính này thể hiện một sự kiện hoặc tác vụ trong toàn bộ quy trình khóa sổ và đối chiếu. Các hoạt động là những bước cấu thành sơ đồ quy trình, cho thấy trình tự công việc đã thực hiện. Chúng thường được xác định từ tổ hợp mã giao dịch, loại chứng từ hoặc thay đổi trạng thái trong SAP S/4HANA. Phân tích hoạt động là nền tảng của process mining. Việc này giúp trực quan hóa luồng quy trình, phát hiện sai lệch so với quy trình chuẩn, tìm điểm nghẽn khiến hoạt động kéo dài và hiểu tần suất cũng như thứ tự các tác vụ. Đây là thông tin quan trọng cho các bảng điều khiển như Phân tích biến thể khóa sổ kỳ và Trạng thái khóa sổ kỳ hiện tại. Vì sao điều này quan trọng Xác định các bước trong quy trình, làm cơ sở cho sơ đồ quy trình và hỗ trợ phân tích luồng công việc, sai lệch và điểm nghẽn. Lấy dữ liệu ở đâu Được xác định từ nhiều nguồn như Mã giao dịch (TCODE), Loại chứng từ (BLART) hoặc trường trạng thái trong các bảng liên quan đến tác vụ khóa sổ tài chính (ví dụ: từ SAP Financial Closing Cockpit). Ví dụ Mở kỳ cho phép ghi sổBắt đầu đối chiếu tài khoảnĐã tạo báo cáo tài chínhBắt đầu đối chiếu nội bộ tập đoàn | |||
| Thời gian bắt đầu EventTime | Dấu thời gian cho biết thời điểm một hoạt động cụ thể bắt đầu hoặc được ghi nhận trong hệ thống. | ||
| Mô tả Thời gian sự kiện ghi lại chính xác ngày và giờ một hoạt động diễn ra. Với bút toán tài chính, đây thường là thời điểm tạo (CPUTM) hoặc ngày ghi sổ (BUDAT) của chứng từ. Với thay đổi trạng thái hoặc tác vụ, đây là dấu thời gian hệ thống ghi nhận thay đổi. Thuộc tính này rất quan trọng để sắp xếp hoạt động theo trình tự thời gian và là cơ sở cho mọi phân tích theo thời gian. Thuộc tính được dùng để tính thời gian giữa các hoạt động, thời lượng của từng tác vụ và tổng thời gian từ đầu đến cuối quy trình. Đây cũng là cơ sở cho các KPI như Thời gian chu kỳ khóa sổ kỳ trung bình và Thời gian phê duyệt đối chiếu trung bình. Vì sao điều này quan trọng Dấu thời gian bắt buộc này giúp sắp xếp sự kiện theo trình tự thời gian và làm cơ sở cho mọi phép tính thời lượng và hiệu quả. Lấy dữ liệu ở đâu Lấy từ các trường dấu thời gian như Ngày tạo (CPUDT) và Giờ tạo (CPUTM) trong các bảng như BKPF, hoặc từ trường ngày thay đổi trong nhiều bảng trạng thái (ví dụ: CDHDR, CDPOS). Ví dụ 2023-12-28T09:15:30Z2024-01-02T14:00:12Z2024-01-05T11:21:00Z | |||
| Mã công ty CompanyCode | Mã định danh duy nhất của một pháp nhân hoặc công ty trong tổ chức SAP. | ||
| Mô tả Company Code là đơn vị kế toán độc lập trong doanh nghiệp, có thể lập một bộ tài khoản hoàn chỉnh và riêng biệt. Mọi hoạt động khóa sổ cuối kỳ đều được thực hiện ở cấp Company Code. Đây là chiều tổ chức cơ bản để phân tích tài chính. Với process mining, bạn có thể so sánh quy trình khóa sổ giữa các pháp nhân khác nhau. Bảng điều khiển 'Period Close Variant Analysis' dùng Company Code để phát hiện điểm không nhất quán và thúc đẩy chuẩn hóa quy trình khóa sổ. Vì sao điều này quan trọng Cung cấp bối cảnh tổ chức quan trọng, giúp so sánh quy trình giữa các pháp nhân để nhận diện khác biệt và cách làm hiệu quả. Lấy dữ liệu ở đâu Có trong hầu hết các bảng tài chính của SAP, đặc biệt là bảng tiêu đề BKPF (trường BUKRS). Ví dụ 10001710US01DE01 | |||
| Ngày hoàn thành mục tiêu TargetCompletionDate | Ngày dự kiến hoặc hạn chót để hoàn tất một hoạt động quan trọng, chẳng hạn như lập báo cáo tài chính. | ||
| Mô tả Ngày hoàn thành mục tiêu là hạn chót nội bộ hoặc bên ngoài cho một mốc cụ thể trong quy trình khóa sổ. Đây là ngày dự kiến hoàn tất tác vụ. Thuộc tính này cần thiết để đo mức độ tuân thủ lịch trình và hiệu quả so với hạn chót. Đây là cơ sở cho bảng điều khiển 'Reporting Deadline Adherence' và KPI 'Financial Statement On-Time Rate', dùng để so sánh ngày mục tiêu với Vì sao điều này quan trọng Cho phép phân tích hiệu quả so với hạn chót, giúp đo lường và cải thiện tỷ lệ hoàn thành đúng hạn của các hoạt động khóa sổ quan trọng. Lấy dữ liệu ở đâu Dữ liệu này thường nằm trong hệ thống quản lý tác vụ hoặc lập lịch, chẳng hạn như SAP Financial Closing cockpit, nơi danh sách tác vụ khóa sổ được thiết lập kèm ngày kết thúc dự kiến. Ví dụ 2024-01-05T23:59:59Z2024-04-04T23:59:59Z2024-07-05T23:59:59Z | |||
| Người dùng phụ trách ResponsibleUser | Mã người dùng của người thực hiện hoạt động hoặc phụ trách tác vụ. | ||
| Mô tả Thuộc tính này xác định nhân viên thực hiện một tác vụ, chẳng hạn như ghi sổ bút toán nhật ký hoặc phê duyệt đối chiếu. Thông tin thường được ghi dưới dạng mã người dùng trong nhật ký hệ thống và tiêu đề chứng từ. Phân tích quy trình 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, hiệu quả cá nhân và nhu cầu đào tạo. Bảng điều khiển Hiệu quả phân bổ tài nguyên dùng trực tiếp thuộc tính này để trực quan hóa thời gian xử lý hoạt động theo người dùng. Thuộc tính cũng giúp xác định tác vụ có thể tự động hóa bằng cách chỉ ra những việc lặp lại nhiều mà nhiều người dùng cùng thực hiện. Vì sao điều này quan trọng Liên kết hoạt động trong quy trình với người thực hiện, hỗ trợ phân tích khối lượng công việc, tối ưu hóa tài nguyên và quản lý hiệu quả. Lấy dữ liệu ở đâu Thường có trong các bảng tiêu đề chứng từ như BKPF (trường USNAM - Tên người dùng) hoặc bảng chứng từ thay đổi như CDHDR (trường USERNAME). Ví dụ ABROWNCSMITHDJOHNSON | |||
| Số chứng từ DocumentNumber | Mã định danh duy nhất của một chứng từ tài chính, chẳng hạn như bút toán. | ||
| Mô tả SAP gán một khóa duy nhất cho mỗi lần ghi sổ tài chính, gọi là Số chứng từ. Khóa này là thông tin tham chiếu chính để theo dõi và kiểm tra từng giao dịch trong quy trình khóa sổ. Dù không phải Case ID, Số chứng từ vẫn liên kết trực tiếp về hệ thống nguồn. Nhà phân tích có thể dùng số này để đi sâu xuống một cấp, từ chế độ xem process mining đến chi tiết giao dịch tương ứng trong SAP S/4HANA nhằm tìm nguyên nhân gốc rễ. Thuộc tính này đặc biệt hữu ích khi kiểm tra các bút toán điều chỉnh hoặc bút toán đối chiếu cụ thể. Vì sao điều này quan trọng Cung cấp tham chiếu trực tiếp đến giao dịch gốc trong SAP, giúp dễ dàng xem chi tiết và kiểm tra từ mô hình quy trình. Lấy dữ liệu ở đâu Có trong bảng tiêu đề chứng từ tài chính BKPF (trường BELNR) và các bảng chi tiết dòng như BSEG hoặc ACDOCA. Ví dụ 100000045190000001300000023 | |||
| Số tài khoản GL GlAccountNumber | Mã định danh của một tài khoản cụ thể trong sổ cái. | ||
| Mô tả Số tài khoản sổ cái (GL) xác định từng tài khoản dùng để ghi nhận giao dịch tài chính, chẳng hạn như tiền mặt, khoản phải trả hoặc doanh thu. Nhiều hoạt động cuối kỳ, như đối chiếu và ghi bút toán điều chỉnh, gắn trực tiếp với các tài khoản GL cụ thể. Thuộc tính này cần thiết để phân tích chi tiết quy trình tài chính. Bảng điều khiển 'Adjusting Journal Entry Analysis' dùng thuộc tính này để hiển thị số lượng bút toán điều chỉnh theo tài khoản, giúp xác định khu vực có vấn đề. KPI 'Avg GL Account Reconciliation Time' cũng dựa vào thuộc tính này để tìm các chậm trễ liên quan đến từng tài khoản. Vì sao điều này quan trọng Liên kết hoạt động trong quy trình với các tài khoản tài chính cụ thể, giúp phân tích chi tiết việc đối chiếu và ghi bút toán để tìm nguyên nhân gốc rễ của vấn đề. Lấy dữ liệu ở đâu Có trong các bảng chi tiết dòng của chứng từ tài chính, chủ yếu là BSEG (trường HKONT) hoặc bảng sổ cái hợp nhất ACDOCA của S/4HANA. Ví dụ 113100004000000073000000 | |||
| Thời gian kết thúc EndTime | Dấu thời gian cho biết thời điểm một hoạt động hoàn tất. | ||
| Mô tả Thời gian kết thúc đánh dấu lúc một tác vụ hoàn tất. Với sự kiện diễn ra tức thời và được ghi nhận trong hệ thống, thời gian này có thể trùng với Thời gian bắt đầu. Với hoạt động có thời lượng đo được, đây là dấu thời gian hoàn tất. Kết hợp với Thời gian bắt đầu, thuộc tính này rất cần thiết để tính Vì sao điều này quan trọng Cho phép tính thời lượng hoạt động (Thời gian xử lý), yếu tố quan trọng để xác định điểm nghẽn về hiệu quả và phân tích năng suất. Lấy dữ liệu ở đâu Tương tự Thời gian bắt đầu, thuộc tính này có thể lấy từ nhiều trường dấu thời gian. Với một số hoạt động, thời gian này có thể trùng với Thời gian bắt đầu. Với hoạt động khác, đây có thể là trường ngày 'hoàn tất vào' hoặc 'thay đổi vào' riêng trong bảng ứng dụng hoặc nhật ký thay đổi (CDHDR, CDPOS). Ví dụ 2023-12-28T09:16:10Z2024-01-02T17:30:00Z2024-01-05T11:21:00Z | |||
| Trạng thái đối chiếu ReconciliationStatus | Trạng thái của một hoạt động đối chiếu tài khoản, chẳng hạn như 'Chưa xử lý', 'Đang thực hiện' hoặc 'Đã phê duyệt'. | ||
| Mô tả Thuộc tính này theo dõi trạng thái đối chiếu của một tài khoản hoặc tác vụ. Thuộc tính cho biết việc đối chiếu đã bắt đầu, được gửi để xem xét, được phê duyệt hay bị từ chối. Các lần đổi trạng thái là những sự kiện quan trọng trong quy trình. Thuộc tính này là nền tảng cho bảng điều khiển 'Reconciliation Rework Analysis'. Phân tích chuỗi trạng thái giúp phát hiện trường hợp trạng thái 'Đã phê duyệt' nhưng sau đó vẫn có điều chỉnh, cho thấy công việc phải làm lại. Thuộc tính này cũng hỗ trợ KPI 'First-Pass Reconciliation Rate' bằng cách cho biết những lần đối chiếu được phê duyệt mà không bị từ chối hoặc mở lại trước đó. Vì sao điều này quan trọng Theo dõi tiến độ và kết quả của các tác vụ đối chiếu, giúp phát hiện việc làm lại, đo tỷ lệ phê duyệt và phân tích điểm nghẽn. Lấy dữ liệu ở đâu Thông tin này thường được lưu trong các bảng của công cụ đối chiếu đang dùng, chẳng hạn như SAP Financial Closing cockpit hoặc SAP Account Substantiation and Automation của BlackLine. Ví dụ Chưa bắt đầuĐang chuẩn bịĐã phê duyệtBị từ chối | |||
| Có phải làm lại đối chiếu IsReconciliationRework | Cờ Boolean có giá trị đúng nếu hoạt động đối chiếu tiếp theo là bị từ chối hoặc có thêm điều chỉnh. | ||
| Mô tả Thuộc tính được tính toán này xác định các trường hợp phải làm lại trong quy trình con đối chiếu. Quy tắc đánh dấu hoạt động hoặc trường hợp có kết quả đối chiếu bị từ chối, được mở lại sau khi gửi đi, hoặc có bút toán điều chỉnh được ghi sau khi việc đối chiếu cho một tài khoản GL được cho là đã hoàn tất. Cờ này được thiết kế để hỗ trợ bảng điều khiển 'Reconciliation Rework Analysis' và KPI 'Reconciliation Rework Rate'. Cờ chuyển các chuỗi quy trình phức tạp thành thuộc tính đơn giản, có thể đo lường mức độ phải làm lại, giúp đội ngũ tập trung nâng cao chất lượng ngay từ lần đầu. Vì sao điều này quan trọng Đo trực tiếp việc phải làm lại, một dạng kém hiệu quả quan trọng của quy trình, giúp phân tích và cải thiện có trọng tâm chất lượng đối chiếu. Lấy dữ liệu ở đâu Tính dựa trên chuỗi hoạt động. Ví dụ, cờ được đặt thành đúng nếu hoạt động 'Reconciliation Approved' tiếp theo là 'Adjusting Journal Entry Posted' cho cùng tài khoản GL trong cùng kỳ. Ví dụ truefalse | |||
| Có tự động hóa IsAutomated | Cờ Boolean cho biết hoạt động do người dùng hệ thống hay quy trình tự động thực hiện. | ||
| Mô tả Cờ này phân biệt tác vụ do người dùng thực hiện với tác vụ hệ thống tự chạy, chẳng hạn như công việc xử lý theo lô được lên lịch để định giá tiền tệ hoặc chạy bù trừ tự động. Giá trị thường được suy ra từ mã Thuộc tính này giúp xác định mức độ tự động hóa trong quy trình khóa sổ. Thuộc tính làm nổi bật các tác vụ thủ công có khối lượng lớn để tìm cơ hội tự động hóa thêm. Khi phân tích nguyên nhân gốc rễ, thuộc tính này cũng cho biết điểm nghẽn nằm ở bước thủ công hay tự động. Vì sao điều này quan trọng Phân biệt hoạt động do người dùng thực hiện với hoạt động của hệ thống, giúp tìm cơ hội tự động hóa và phân tích hiệu quả của cả hai. Lấy dữ liệu ở đâu Đây là thuộc tính được suy ra, thường dựa trên quy tắc áp dụng cho trường 'ResponsibleUser' (ví dụ: kiểm tra mã người dùng hệ thống hoặc người dùng xử lý theo lô như 'BATCHUSER') hoặc Mã giao dịch. Ví dụ truefalse | |||
| Đơn vị tiền tệ của chứng từ DocumentCurrency | Mã tiền tệ áp dụng cho các khoản tiền trong chứng từ tài chính. | ||
| Mô tả Thuộc tính này cho biết giao dịch được ghi nhận bằng đơn vị tiền tệ nào, chẳng hạn như USD, EUR hoặc JPY. Đây là thông tin cần thiết để hiểu thuộc tính Với doanh nghiệp đa quốc gia, phân tích theo tiền tệ có thể rất quan trọng. Thuộc tính này giúp diễn giải chính xác giá trị tiền tệ và cần thiết khi quy đổi sang một đơn vị tiền tệ báo cáo chung để phân tích tổng hợp. Nếu thiếu thông tin này, bạn không thể so sánh hoặc cộng các giá trị Vì sao điều này quan trọng Cung cấp thông tin cần thiết để diễn giải chính xác các giá trị tiền tệ, đặc biệt trong môi trường sử dụng nhiều loại tiền tệ. Lấy dữ liệu ở đâu Có trong bảng tiêu đề chứng từ tài chính BKPF (trường WAERS). Ví dụ USDEURJPY | |||
| Đúng hạn IsOnTime | Cờ Boolean có giá trị đúng nếu một mốc được hoàn thành vào hoặc trước ngày mục tiêu. | ||
| Mô tả Thuộc tính này cho biết kết quả tuân thủ lịch trình dưới dạng đơn giản, đúng hoặc sai. Thuộc tính được tính bằng cách so sánh Đây là phép tính cốt lõi của KPI 'Financial Statement On-Time Rate'. Thuộc tính giúp theo dõi hiệu quả dễ dàng hơn bằng cách chuyển phép so sánh ngày thành trạng thái rõ ràng: 'đúng hạn' hoặc 'trễ hạn'. Trạng thái này cũng dễ hiển thị trên bảng điều khiển và báo cáo. Thuộc tính giúp đo hiệu quả của các sáng kiến rút ngắn thời gian khóa sổ. Vì sao điều này quan trọng Giúp phân tích việc tuân thủ hạn chót bằng kết quả rõ ràng, đạt hoặc không đạt, để dễ theo dõi và báo cáo hiệu quả đúng hạn. Lấy dữ liệu ở đâu Trường được tính toán: Ví dụ truefalse | |||
| Hệ thống nguồn SourceSystemId | Mã định danh của phiên bản hoặc máy khách SAP S/4HANA cụ thể nơi dữ liệu được trích xuất. | ||
| Mô tả Thuộc tính này cho biết hệ thống nguồn của dữ liệu. Trong môi trường có nhiều phiên bản SAP (ví dụ: cho các khu vực hoặc đơn vị kinh doanh khác nhau), trường này rất quan trọng để phân biệt nguồn dữ liệu. Thuộc tính chủ yếu phục vụ quản trị dữ liệu, kiểm toán và bảo đảm tính toàn vẹn của dữ liệu. Khi phân tích, bạn có thể dùng thuộc tính này làm bộ lọc để so sánh quy trình giữa các hệ thống nguồn nếu dữ liệu được gộp vào cùng một mô hình process mining. Vì sao điều này quan trọng Cung cấp thông tin cần thiết về nguồn gốc và bối cảnh dữ liệu, đặc biệt hữu ích khi có nhiều hệ thống. Lấy dữ liệu ở đâu Đây thường là siêu dữ liệu được thêm trong quá trình trích xuất, lấy từ mã hệ thống (SY-SYSID) hoặc máy khách (SY-MANDT) trong SAP. Ví dụ S4H_PROD_100S4H_QAS_200ECC_LEGACY_001 | |||
| 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 ghi lại ngày và giờ của lần trích xuất dữ liệu gần nhất. Nhờ đó, bạn biết dữ liệu đang phân tích trong công cụ process mining mới đến mức nào. Thuộc tính chủ yếu phục vụ quản trị dữ liệu và giúp người dùng nắm rõ tình trạng dữ liệu. Người xem bảng điều khiển có thể biết dữ liệu phân tích được cập nhật đến thời điểm nào. Điều này đặc biệt quan trọng với bảng điều khiển theo dõi gần thời gian thực như 'Trạng thái khóa sổ kỳ hiện tại'. Thuộc tính giúp người dùng biết dữ liệu là của hôm nay, hôm qua hay tuần trước. 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, để họ hiểu mức độ mới của thông tin về quy trình. Lấy dữ liệu ở đâu Đây là siêu dữ liệu do công cụ trích xuất dữ liệu hoặc ETL tạo và gắn vào tập dữ liệu khi chạy. Ví dụ 2024-06-10T08:00:00Z2024-06-09T08:00:00Z | |||
| Loại bút toán JournalEntryType | Loại chứng từ tài chính được ghi sổ, dùng để phân biệt bút toán thông thường, khoản trích trước và bút toán điều chỉnh. | ||
| Mô tả Loại bút toán, còn gọi là Loại chứng từ theo thuật ngữ SAP, là khóa phân loại chứng từ kế toán. Khóa này kiểm soát loại tài khoản có thể ghi nhận chứng từ và giúp phân biệt các giao dịch kinh doanh, chẳng hạn như hóa đơn nhà cung cấp (KR), bút toán sổ cái (SA) hoặc khoản thanh toán của khách hàng (DZ). Trong quy trình khóa sổ, thuộc tính này rất quan trọng để lọc riêng từng loại hoạt động. Chẳng hạn, nhà phân tích có thể tập trung vào bút toán điều chỉnh để hỗ trợ bảng điều khiển 'Adjusting Journal Entry Analysis' và KPI 'Adjusting Journal Entries Count'. Thuộc tính này cũng giúp tính 'Manual Postings Ratio'. Vì sao điều này quan trọng Phân loại giao dịch tài chính, giúp tập trung phân tích vào từng loại ghi sổ cụ thể, chẳng hạn như điều chỉnh thủ công, vốn rất quan trọng để khóa sổ đúng tiến độ. Lấy dữ liệu ở đâu Đây là trường tiêu chuẩn trong bảng tiêu đề chứng từ tài chính BKPF (trường BLART). Ví dụ SAKRAB | |||
| Mã giao dịch TransactionCode | Mã giao dịch SAP (T-code) dùng để thực hiện hoạt động. | ||
| Mô tả Mã giao dịch là lối tắt để mở một chức năng hoặc chương trình cụ thể trong SAP. Ví dụ, FB01 dùng để ghi sổ chứng từ, còn FAGLB03 dùng để xem số dư tài khoản GL. T-code thường cho biết rõ về mặt kỹ thuật hoạt động nào đã được thực hiện. Thuộc tính này giúp xác định các hoạt động trong mô hình quy trình. Đây là cách đáng tin cậy để phân biệt hoạt động tự động với hoạt động thủ công và hiểu chính xác tác vụ được thực hiện trong hệ thống như thế nào. Phân tích T-code có thể phát hiện các cách làm không theo chuẩn hoặc kém hiệu quả. Vì sao điều này quan trọng Cho biết hoạt động được thực hiện như thế nào ở cấp hệ thống, hữu ích để nhận diện bước thủ công và tự động cũng như các quy trình không theo chuẩn. Lấy dữ liệu ở đâu Có trong bảng tiêu đề chứng từ tài chính BKPF (trường TCODE) hoặc nhật ký thay đổi chứng từ. Ví dụ FB01FAGL_FCVF.13 | |||
| Ngày hoàn thành thực tế ActualCompletionDate | Ngày thực tế hoàn tất một hoạt động quan trọng hoặc toàn bộ quy trình khóa sổ. | ||
| Mô tả Thuộc tính này ghi nhận ngày hoàn tất thực tế của một mốc quan trọng. Đây là thời điểm báo cáo tài chính được phê duyệt lần cuối hoặc kỳ ghi sổ được khóa. Thuộc tính này đối chiếu với Vì sao điều này quan trọng Cung cấp thời điểm thực tế của các mốc, cần thiết để đo hiệu quả so với hạn chót dự kiến và phân tích chậm trễ. Lấy dữ liệu ở đâu Lấy từ EventTime của hoạt động cuối cùng trong chuỗi, chẳng hạn như 'Financial Statements Approved' hoặc 'Period Closed For Posting'. Ví dụ 2024-01-06T10:00:00Z2024-04-05T17:00:00Z2024-07-04T11:00:00Z | |||
| Số tiền chứng từ DocumentAmount | Tổng giá trị của bút toán tài chính theo đơn vị tiền tệ của chứng từ. | ||
| Mô tả Thuộc tính này thể hiện giá trị tiền tệ gắn với một chứng từ tài chính. Với các điều chỉnh cuối kỳ, đây có thể là số tiền trích trước hoặc khoản điều chỉnh được ghi sổ. Phân tích số tiền giúp đánh giá mức độ trọng yếu. Nhà phân tích có thể ưu tiên kiểm tra các bút toán điều chỉnh giá trị lớn, vốn có thể gây rủi ro tài chính cao hơn. Bạn cũng có thể lọc sơ đồ quy trình để chỉ xem các giao dịch vượt một ngưỡng nhất định, tập trung vào những hoạt động quan trọng nhất. Vì sao điều này quan trọng Bổ sung góc nhìn tài chính cho phân tích, giúp ưu tiên xử lý vấn đề dựa trên tác động tiền tệ và mức độ trọng yếu. Lấy dữ liệu ở đâu Giá trị này thường cần được tổng hợp từ các bảng chi tiết dòng như BSEG hoặc ACDOCA (trường WRBTR, số tiền theo đơn vị tiền tệ của chứng từ). Ví dụ 15000.00250.75-500.00 | |||
| Thời gian chu kỳ khóa sổ PeriodCloseCycleTime | Tổng thời gian xử lý một kỳ tài chính, từ hoạt động đầu tiên đến hoạt động cuối cùng. | ||
| Mô tả Chỉ số này thể hiện tổng thời gian từ đầu đến cuối của quy trình khóa sổ cho một trường hợp (Kỳ tài chính). Chỉ số được tính bằng chênh lệch giữa dấu thời gian của hoạt động cuối cùng và hoạt động đầu tiên trong kỳ đó. Đây là KPI hiệu quả chính, hỗ trợ trực tiếp cho bảng điều khiển 'Period Close Cycle Time Overview' và KPI 'Average Period Close Cycle Time'. Chỉ số cung cấp thước đo tổng quan về hiệu quả và tốc độ khóa sổ, giúp so sánh theo thời gian và đối chiếu giữa các Company Code. Vì sao điều này quan trọng Là KPI chính để đo tổng thời gian xử lý, giúp theo dõi ở mức tổng quan những cải thiện về hiệu quả theo thời gian. Lấy dữ liệu ở đâu Tính ở cấp trường hợp: Ví dụ P5D10H30MP7D2HP6D | |||
Hoạt động trong quy trình ghi nhận đến báo cáo, chốt kỳ và đối soát
| Hoạt động | Mô tả | ||
|---|---|---|---|
| Bắt đầu đối chiếu nội bộ tập đoàn | Hoạt động này đánh dấu thời điểm bắt đầu đối chiếu giao dịch giữa các mã công ty trong cùng một tập đoàn. Quy trình thường bắt đầu khi chạy job đối chiếu hoặc tạo hồ sơ đối chiếu mới trong công cụ ICMR của SAP. | ||
| Vì sao điều này quan trọng Đối chiếu nội bộ tập đoàn thường phức tạp và tốn thời gian. Phân tích thời lượng và luồng công việc rất quan trọng để tinh gọn quy trình khóa sổ tập đoàn và bảo đảm báo cáo tài chính hợp nhất chính xác. Lấy dữ liệu ở đâu Sự kiện được suy ra từ các thay đổi trạng thái trong phân hệ SAP Intercompany Matching and Reconciliation (ICMR), hoặc từ việc tạo chứng từ đối chiếu đầu tiên trong kỳ. Thu thập Theo dõi ngày tạo hoặc dấu thời gian thay đổi trạng thái của các đơn vị đối chiếu trong công cụ ICMR cho kỳ tương ứng. Loại sự kiện inferred | |||
| Bắt đầu đối chiếu tài khoản | Đánh dấu thời điểm bắt đầu quy trình thủ công hoặc bán tự động để xác minh số dư tài khoản GL. Sự kiện này được suy ra khi trạng thái đối chiếu chuyển từ 'Mới' sang 'Đang xử lý' hoặc khi hệ thống ghi nhận thao tác đầu tiên của người chuẩn bị. | ||
| Vì sao điều này quan trọng Đây là mốc quan trọng để hiểu thời gian và công sức cần thiết nhằm xác minh số dư bảng cân đối kế toán. Hoạt động này giúp xác định tài khoản hoặc phòng ban nào bắt đầu đối chiếu muộn. Lấy dữ liệu ở đâu Sự kiện này thường được ghi nhận từ công cụ đối chiếu chuyên dụng như SAP Account Substantiation and Automation by BlackLine hoặc hệ thống bên thứ ba khác. Sự kiện được suy ra từ dấu thời gian thay đổi trạng thái. Thu thập Theo dõi dấu thời gian của lần đầu trạng thái chuyển khỏi 'Chưa bắt đầu' đối với một hồ sơ đối chiếu tài khoản GL. Loại sự kiện inferred | |||
| Đã ghi sổ bút toán điều chỉnh | Đây là bút toán nhật ký điều chỉnh được thực hiện sau khi hoàn tất đối chiếu ban đầu, thường để sửa sai lệch phát hiện trong quá trình rà soát. Bút toán được ghi sổ trực tiếp vào Sổ cái. | ||
| Vì sao điều này quan trọng Tần suất bút toán điều chỉnh cao cho thấy chất lượng ngay từ lần đầu của quy trình đầu vào hoặc khâu đối chiếu còn thấp. Phân tích các bút toán này giúp tìm nguyên nhân gốc rễ của sai sót và giảm việc phải làm lại. Lấy dữ liệu ở đâu Các bút toán được ghi nhận dưới dạng chứng từ trong bảng ACDOCA và BKPF. Có thể nhận diện chúng qua loại chứng từ cụ thể, ngày ghi sổ vào giai đoạn cuối của chu kỳ khóa sổ hoặc nội dung mô tả riêng. Thu thập Lọc bút toán nhật ký trong BKPF dựa trên kết hợp loại chứng từ và ngày ghi sổ so với thời điểm thực hiện các hoạt động đối chiếu. Loại sự kiện explicit | |||
| Đã phê duyệt đối chiếu tài khoản | Hoạt động này đánh dấu việc phê duyệt cuối cùng cho hồ sơ đối chiếu tài khoản GL, xác nhận số dư đã được xác minh và mọi vấn đề đã được xử lý. Sự kiện được suy ra từ trạng thái chuyển thành 'Đã phê duyệt' trong công cụ đối chiếu. | ||
| Vì sao điều này quan trọng Mốc này đánh dấu hoàn tất một hoạt động kiểm soát quan trọng. Theo dõi thời gian phê duyệt giúp phát hiện điểm nghẽn trong khâu rà soát và đo lường việc làm lại cũng như tỷ lệ hoàn thành ngay lần đầu. Lấy dữ liệu ở đâu Sự kiện được ghi nhận từ hệ thống quản lý đối chiếu, chẳng hạn như SAP Account Substantiation and Automation, bằng cách theo dõi dấu thời gian của trạng thái phê duyệt cuối cùng. Thu thập Xác định thời điểm trường trạng thái của hồ sơ đối chiếu được cập nhật thành trạng thái cuối cùng 'Đã phê duyệt'. Loại sự kiện inferred | |||
| Đã tạo báo cáo tài chính | Hoạt động này đánh dấu việc lập báo cáo tài chính chính thức, chẳng hạn như Bảng cân đối kế toán và Báo cáo kết quả kinh doanh. Đây là bước hoàn tất quy trình kế toán và hợp nhất cuối kỳ. | ||
| Vì sao điều này quan trọng Đây là một mốc quan trọng trong chu kỳ Record to Report. Thời điểm hoàn tất có ý nghĩa quyết định để đáp ứng hạn báo cáo và cung cấp thông tin kịp thời cho các bên liên quan. Lấy dữ liệu ở đâu Tốt nhất nên ghi nhận sự kiện này bằng công cụ quản lý khóa sổ tài chính như SAP Financial Closing Cockpit, nơi sự kiện được thể hiện thành một tác vụ cụ thể. Nếu không, cần suy ra sự kiện từ nhật ký tạo báo cáo hoặc dấu thời gian tạo tệp. Thu thập Theo dõi trạng thái hoàn tất của tác vụ 'Generate Financial Statements' trong công cụ khóa sổ hoặc phân tích nhật ký chạy báo cáo. Loại sự kiện inferred | |||
| Đóng kỳ ghi sổ | Đây là hoạt động cuối cùng trong chu kỳ, khi kỳ ghi sổ được chính thức đóng để ngăn phát sinh thêm giao dịch. Việc này bảo đảm tính toàn vẹn của dữ liệu trong báo cáo tài chính đã hoàn tất. | ||
| Vì sao điều này quan trọng Hoạt động này là sự kiện kết thúc chính thức của quy trình. Đây là mốc cần thiết để tính tổng thời gian khóa sổ kỳ và phân tích xu hướng hoàn tất quy trình. Lấy dữ liệu ở đâu Tương tự sự kiện mở kỳ, sự kiện này được ghi nhận trong chứng từ thay đổi (bảng CDHDR và CDPOS), lưu lại các cập nhật đối với bảng kiểm soát kỳ ghi sổ T001B qua giao dịch OB52. Thu thập Lọc nhật ký thay đổi của bảng T001B để xác định thời điểm đóng năm tài chính và kỳ liên quan. Loại sự kiện explicit | |||
| Mở kỳ cho phép ghi sổ | Đây là thời điểm bắt đầu kỳ tài chính, khi kỳ ghi sổ được mở để ghi nhận giao dịch. Quản trị viên tài chính thực hiện thay đổi cấu hình này trong SAP và hệ thống ghi lại thay đổi, cho phép nhập bút toán nhật ký cho kỳ mới. | ||
| Vì sao điều này quan trọng Hoạt động này là sự kiện bắt đầu chính của quy trình khóa sổ cuối kỳ. Nhờ đó, bạn có thể đo chính xác tổng thời gian chu kỳ và xác định rõ điểm bắt đầu để phân tích quy trình. Lấy dữ liệu ở đâu Sự kiện này được ghi nhận trong chứng từ thay đổi (bảng CDHDR và CDPOS), lưu lại các chỉnh sửa đối với bảng kiểm soát kỳ ghi sổ T001B, thường được thực hiện qua giao dịch OB52. Thu thập Lọc nhật ký thay đổi của bảng T001B theo năm tài chính và kỳ cụ thể. Loại sự kiện explicit | |||
| Chạy định giá ngoại tệ | Đây là bước chuẩn vào cuối tháng nhằm định giá lại các khoản mục chưa tất toán và số dư bằng ngoại tệ theo tỷ giá cuối kỳ. Chương trình sẽ ghi sổ phần chênh lệch định giá. | ||
| Vì sao điều này quan trọng Hoạt động này giúp tuân thủ chuẩn mực kế toán và phản ánh chính xác tình hình tài chính. Theo dõi hoạt động này giúp bảo đảm việc định giá ngoại tệ được thực hiện đúng hạn. Lấy dữ liệu ở đâu Sự kiện được ghi nhận từ nhật ký chạy chương trình định giá ngoại tệ (ví dụ: FAGL_FCV). Thông tin chi tiết về job được lưu trong các bảng TBTCO và TBTCP. Thu thập Theo dõi nhật ký chạy các job liên quan đến giao dịch FAGL_FCV hoặc chương trình nền tương ứng. Loại sự kiện explicit | |||
| Đã chạy xong đối trừ tự động | Đây là thời điểm chạy các chương trình đối trừ tự động trong SAP, chẳng hạn như chạy đối trừ GR/IR (Nhận hàng/Nhận hóa đơn). Các job này khớp và đối trừ các khoản mục chưa tất toán trên những tài khoản GL cụ thể, giảm công việc đối chiếu thủ công. | ||
| Vì sao điều này quan trọng Hoạt động này cho thấy mức độ tự động hóa trong quy trình đối chiếu. Lỗi hoặc ngoại lệ khi chạy job có thể dẫn đến nhiều công việc thủ công và chậm trễ. Lấy dữ liệu ở đâu Sự kiện được ghi nhận từ nhật ký chạy các batch job cụ thể, chẳng hạn như F.13 hoặc F.13E để đối trừ tự động. Bảng nhật ký job TBTCO và TBTCP lưu thông tin chi tiết về lần chạy. Thu thập Theo dõi dấu thời gian bắt đầu và kết thúc của các job liên quan đến giao dịch như F.13 trong nhật ký job của SAP. Loại sự kiện explicit | |||
| Đã ghi sổ khoản trích trước và dự phòng | Sự kiện này ghi nhận việc tạo bút toán nhật ký thủ công cho các khoản trích trước, phân bổ và dự phòng cần thiết để lập báo cáo tài chính chính xác theo cơ sở dồn tích. Đây là các giao dịch được ghi sổ trực tiếp vào Sổ cái. | ||
| Vì sao điều này quan trọng Theo dõi các bút toán này giúp phân tích số lượng và thời điểm thực hiện điều chỉnh thủ công. Số lượng lớn có thể cho thấy cơ hội tự động hóa hoặc cải thiện các quy trình đầu vào. Lấy dữ liệu ở đâu Các bút toán được ghi nhận trực tiếp trong bảng nhật ký chung ACDOCA và bảng tiêu đề BKPF. Có thể nhận diện chúng qua các loại chứng từ được cấu hình riêng cho khoản trích trước. Thu thập Lọc chứng từ trong bảng BKPF theo loại chứng từ (ví dụ: 'SA' hoặc loại tùy chỉnh) và ngày ghi sổ trong kỳ. Loại sự kiện explicit | |||
| Đã lập bảng cân đối thử | Cho biết bảng cân đối thử đã được tạo và lưu để rà soát, đây là mốc kiểm tra quan trọng trước khi lập báo cáo tài chính cuối cùng. Sự kiện này thường được ghi nhận khi đầu ra báo cáo được lưu theo quy trình. | ||
| Vì sao điều này quan trọng Lập bảng cân đối thử là một bước kiểm soát chất lượng quan trọng. Phân tích thời điểm thực hiện giúp đánh giá mức độ sẵn sàng cho báo cáo cuối cùng và phát hiện chậm trễ ở các hoạt động trước đó. Lấy dữ liệu ở đâu Sự kiện này thường không được ghi nhận trực tiếp. Có thể suy ra sự kiện từ việc chạy một giao dịch báo cáo cụ thể nếu biến thể được lưu kèm người dùng và dấu thời gian, hoặc nếu quy trình được quản lý bằng công cụ như SAP Financial Closing Cockpit. Thu thập Cần phân tích hệ thống để xác định có cơ chế ghi nhật ký đáng tin cậy hay không, chẳng hạn như nhật ký chạy báo cáo hoặc danh sách tác vụ trong closing cockpit. Loại sự kiện inferred | |||
| Đã phê duyệt báo cáo tài chính | Đây là bước phê duyệt cuối cùng của ban quản lý có thẩm quyền trước khi công bố báo cáo tài chính. Việc này thường diễn ra ngoài hệ thống, nhưng có thể ghi nhận nếu có bước phê duyệt số chính thức. | ||
| Vì sao điều này quan trọng Đây là bước kiểm soát và kiểm tra chất lượng cuối cùng. Theo dõi thời điểm thực hiện rất quan trọng để biết quy trình có đáp ứng hạn báo cáo hay không và đánh giá hiệu quả tổng thể của chu kỳ rà soát quản lý. Lấy dữ liệu ở đâu Có thể ghi nhận sự kiện này nếu có workflow hoặc trường trạng thái cho việc phê duyệt báo cáo, chẳng hạn trong SAP Financial Closing Cockpit hoặc hệ thống quản lý tài liệu. Thu thập Xác định trường dữ liệu và dấu thời gian cho biết gói báo cáo tài chính đã được phê duyệt cuối cùng. Loại sự kiện inferred | |||
| Đã thực hiện các tác vụ hợp nhất | Đây là thời điểm thực hiện các hoạt động hợp nhất trong SAP Group Reporting, chẳng hạn như chuyển đổi tiền tệ, phân loại lại và loại trừ lợi nhuận nội bộ tập đoàn. Các tác vụ này thường được quản lý và ghi nhật ký trong màn hình theo dõi hợp nhất. | ||
| Vì sao điều này quan trọng Với tổ chức có nhiều pháp nhân, hợp nhất là một công đoạn trọng yếu. Theo dõi các tác vụ này giúp tinh gọn quy trình khóa sổ tập đoàn và bảo đảm báo cáo hợp nhất được lập đúng hạn. Lấy dữ liệu ở đâu Sự kiện được ghi nhận từ nhật ký trạng thái trong Data Monitor hoặc Consolidation Monitor của SAP S/4HANA for Group Reporting. Mỗi tác vụ thường có thông tin người dùng, dấu thời gian và trạng thái. Thu thập Trích xuất nhật ký thực hiện tác vụ từ các bảng nền của màn hình theo dõi hợp nhất Group Reporting. Loại sự kiện explicit | |||
| Hoàn tất chuyển dữ liệu từ sổ phụ | Đây là thời điểm hoàn tất các batch job chuyển dữ liệu tổng hợp từ sổ phụ như Phải thu, Phải trả và Kế toán tài sản sang Sổ cái. Nhờ đó, mọi giao dịch vận hành liên quan đều được ghi nhận trong GL trước khi bắt đầu các bước khóa sổ. | ||
| Vì sao điều này quan trọng Việc khóa sổ phụ chậm có thể trở thành điểm nghẽn lớn của toàn quy trình. Theo dõi hoạt động này giúp phát hiện điểm kém hiệu quả trong khâu thu thập và tích hợp dữ liệu từ các hệ thống nguồn. Lấy dữ liệu ở đâu Sự kiện được suy ra từ trạng thái hoàn tất thành công của các batch job cụ thể phụ trách kết chuyển sổ cái và chuyển dữ liệu. Có thể tìm nhật ký job trong các bảng TBTCO và TBTCP. Thu thập Xác định và theo dõi dấu thời gian hoàn tất của các batch job liên quan trong màn hình tổng quan job của SAP (giao dịch SM37). Loại sự kiện explicit | |||
Hướng dẫn trích xuất
Các bước
- Tìm và xác minh CDS View: Đăng nhập hệ thống SAP S/4HANA bằng SAP HANA Studio hoặc Eclipse có ADT. Dùng ABAP Development Tools để tìm và xác minh các CDS view tiêu chuẩn được nêu trong truy vấn, chẳng hạn I_JournalEntryItem, I_BatchJob và I_ConsolidationTaskLog. Với các quy trình như Account Reconciliation, bạn có thể cần tạo CDS view tùy chỉnh, ví dụ Z_I_ACCOUNTRECONCILIATION, để ghi nhận thay đổi trạng thái.
- Cung cấp CDS View qua OData: Trong hệ thống SAP backend, dùng giao dịch
SEGW(Gateway Service Builder) để tạo dự án mới. Nhấp chuột phải vào thư mục Data Model rồi chọn 'Reference -> Data Source'. Thêm các CDS view cần thiết. Tạo các đối tượng runtime để tạo dịch vụ OData, cho phép hệ thống bên ngoài truy cập các view này. - Kích hoạt dịch vụ OData: Mở giao dịch
/IWFND/MAINT_SERVICEtrên SAP Gateway hub. Nhấp 'Add Service', tìm dịch vụ đã tạo ở bước trước rồi thêm dịch vụ đó. Dịch vụ sẽ được kích hoạt và sẵn sàng để truy vấn. - Kết nối dữ liệu: Dùng công cụ trích xuất dữ liệu bạn chọn, chẳng hạn Python, Power BI hoặc nền tảng ETL chuyên dụng, để kết nối với dịch vụ OData vừa tạo. Bạn cần URL dịch vụ và thông tin xác thực có quyền truy cập các CDS view.
- Điều chỉnh và chạy truy vấn: Sao chép truy vấn SQL được cung cấp. Thay các giá trị giữ chỗ cho khoảng ngày, mã công ty và tên CDS view tùy chỉnh hoặc batch job để khớp với môi trường SAP của bạn. Chạy truy vấn trên điểm cuối dịch vụ OData. Lưu ý, OData dùng cú pháp khác (
$filter,$select), vì vậy bạn có thể cần chuyển logic của truy vấn UNION ALL thành nhiều lần gọi API riêng, mỗi lần cho một hoạt động. - Tổng hợp dữ liệu hoạt động: OData thường không hỗ trợ chạy trực tiếp truy vấn UNION ALL phức tạp trong một lần gọi. Vì vậy, hãy gửi một yêu cầu riêng cho từng khối hoạt động trong truy vấn. Tổng hợp kết quả từ các yêu cầu vào một tập dữ liệu hoặc bảng duy nhất trong công cụ bạn dùng.
- Chuyển đổi và làm sạch dữ liệu: Kiểm tra dữ liệu đã tổng hợp. Đảm bảo các cột
EventTimevàEndTimedùng định dạng dấu thời gian nhất quán. Xác minhFinancialPeriodcó định dạng 'YYYY-MM'. Xử lý các giá trị NULL trong những cột nhưResponsibleUserhoặcDocumentNumberkhi cần. - Xuất nhật ký sự kiện: Xuất tập dữ liệu đã tổng hợp ra tệp CSV. Đảm bảo tiêu đề cột khớp với các thuộc tính cần thiết:
FinancialPeriod,ActivityName,EventTime,EndTime,ResponsibleUser, v.v. Tệp này đã sẵn sàng để tải lên ProcessMind.
Cấu hình
- CDS View: Truy vấn kết hợp các CDS view tiêu chuẩn và tùy chỉnh. Các view tiêu chuẩn như
I_JournalEntryItem(cho bút toán) vàI_BatchJob(cho các lần chạy tự động) là thiết yếu. Thường cần các view tùy chỉnh nhưZ_I_ACCOUNTRECONCILIATIONđể ghi nhận trạng thái của những quy trình nội bộ mà view tiêu chuẩn không bao quát. - Khoảng ngày: Xác định khoảng ngày trích xuất cụ thể để kiểm soát dung lượng dữ liệu. Truy vấn dùng các giá trị giữ chỗ
[Start Date]và[End Date]. Thông thường, khoảng này nên bao gồm 3 đến 6 kỳ tài chính đầy đủ để có dữ liệu phân tích hữu ích. - Bộ lọc chính: Lọc dữ liệu là yếu tố quan trọng để đảm bảo hiệu suất và tính phù hợp. Luôn lọc theo
CompanyCode. Các bộ lọc quan trọng khác gồmLedger(ví dụ '0L' cho sổ cái chính),FiscalYearvà các giá trịDocumentTypecụ thể để phân biệt bút toán thông thường, khoản trích trước và điều chỉnh. - Điều kiện tiên quyết: Người chạy trích xuất cần có quyền trong SAP để truy cập các CDS view đã chỉ định và chạy dịch vụ OData (ví dụ, các đối tượng quyền
S_SERVICE,S_RFC). Dịch vụ SAP Gateway phải được cấu hình và kích hoạt. - Hiệu suất: Truy vấn
I_JournalEntryItemcó thể tốn nhiều tài nguyên. Luôn áp dụng bộ lọc phù hợp, nhất là theo ngày, mã công ty và sổ cái. Cân nhắc chạy trích xuất ngoài giờ cao điểm hoặc dùng phương thức tải tăng dần để theo dõi liên tục.
Truy vấn mẫu sql
SELECT
CONCAT(CAST(PostingDate AS DATE FORMAT 'YYYY'), '-', CAST(PostingDate AS DATE FORMAT 'MM')) AS FinancialPeriod,
'Period Opened For Posting' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
CAST(CreationDateTime AS TIMESTAMP) AS EndTime,
CreatedByUser AS ResponsibleUser,
CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_FinPostingPeriodControl -- This is a proxy; this activity is a configuration change often found in change logs (CDHDR/CDPOS for table T001B)
WHERE PostingPeriodVariant = '[Your Variant]' AND FiscalYear = '[Your Fiscal Year]' AND FromPostingPeriod = 1 AND AuthorizationGroup IS NOT NULL -- Logic to detect the opening event
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod, -- Infer period from Job Name if patterned, otherwise use job start date
'Subledger Data Transfer Completed' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE '[Subledger Job Prefix]%' AND JobStatus = 'F' -- 'F' for Finished
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(CAST(CreationDate AS DATE FORMAT 'YYYY'), '-', CAST(CreationDate AS DATE FORMAT 'MM')) AS FinancialPeriod,
'Intercompany Reconciliation Started' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
NULL AS EndTime,
CreatedByUser AS ResponsibleUser,
LeadingCompanyCode AS CompanyCode,
NULL AS GlAccountNumber,
ReconciliationCase AS DocumentNumber,
ReconciliationCaseStatus AS ReconciliationStatus,
NULL AS TargetCompletionDate,
NULL AS ProcessingTime
FROM I_ICRcnCase -- Part of SAP S/4HANA for group reporting
WHERE CreationDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Accruals And Provisions Posted' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
CAST(CreationDateTime AS TIMESTAMP) AS EndTime,
CreatedByUser AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
AccountingDocument AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_JournalEntryItem
WHERE DocumentType IN ('[Accrual Doc Type 1]', '[Accrual Doc Type 2]') -- e.g., 'SA', 'AC'
AND PostingDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Automated Clearing Run Executed' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE 'SAPF124%' AND JobStatus = 'F'
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Foreign Currency Valuation Run' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE 'FAGL_FCV%' AND JobStatus = 'F'
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
-- This activity often requires a custom view on a custom table or an add-on like SAP Account Substantiation and Automation.
-- The following is a placeholder for such a custom view.
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Account Reconciliation Started' AS ActivityName,
CAST(ChangedAt AS TIMESTAMP) AS EventTime,
NULL AS EndTime,
ChangedBy AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
ReconciliationID AS DocumentNumber,
'In Progress' AS ReconciliationStatus,
PlannedCompletionDate AS TargetCompletionDate,
NULL AS ProcessingTime
FROM Z_I_ACCOUNTRECONCILIATION -- Placeholder for your custom reconciliation status view
WHERE Status = 'IN_PROGRESS' AND OldStatus = 'NEW'
AND ChangeDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Adjusting Journal Entry Posted' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
CAST(CreationDateTime AS TIMESTAMP) AS EndTime,
CreatedByUser AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
AccountingDocument AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_JournalEntryItem
WHERE DocumentType IN ('[Adjustment Doc Type 1]', '[Adjustment Doc Type 2]') -- e.g., 'AJ'
AND PostingDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
-- This activity often requires a custom view on a custom table or an add-on product.
-- The following is a placeholder for such a custom view.
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Account Reconciliation Approved' AS ActivityName,
CAST(ChangedAt AS TIMESTAMP) AS EventTime,
CAST(ChangedAt AS TIMESTAMP) AS EndTime,
ApprovedBy AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
ReconciliationID AS DocumentNumber,
'Approved' AS ReconciliationStatus,
PlannedCompletionDate AS TargetCompletionDate,
NULL AS ProcessingTime
FROM Z_I_ACCOUNTRECONCILIATION -- Placeholder for your custom reconciliation status view
WHERE Status = 'APPROVED'
AND ChangeDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Consolidation Tasks Executed' AS ActivityName,
CAST(TaskExecutionUTCTimestamp AS TIMESTAMP) AS EventTime,
CAST(TaskCompletionUTCTimestamp AS TIMESTAMP) AS EndTime,
ExecutedByUser AS ResponsibleUser,
ConsolidationUnitCompanyCode AS CompanyCode, -- Assuming mapping exists
NULL AS GlAccountNumber,
DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(TaskExecutionUTCTimestamp AS TIMESTAMP), CAST(TaskCompletionUTCTimestamp AS TIMESTAMP)) AS ProcessingTime
FROM I_ConsolidationTaskLog
WHERE ConsolidationTaskStatus = 'S' -- Successful
AND TaskExecutionUTCDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Trial Balance Prepared' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE '[Trial Balance Job Prefix]%' AND JobStatus = 'F' -- Example: FAGL_TRIAL_BALANCE_RUN
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Financial Statements Generated' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE '[Fin Statement Job Prefix]%' AND JobStatus = 'F'
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
-- Approval is often a manual step. This requires a custom solution to capture.
-- The following is a placeholder for such a custom view.
SELECT
CONCAT(ApprovalYear, '-', LPAD(ApprovalPeriod, 2, '0')) AS FinancialPeriod,
'Financial Statements Approved' AS ActivityName,
CAST(ApprovalTimestamp AS TIMESTAMP) AS EventTime,
CAST(ApprovalTimestamp AS TIMESTAMP) AS EndTime,
ApproverUser AS ResponsibleUser,
CompanyCode,
NULL AS GlAccountNumber,
FinancialStatementVersion AS DocumentNumber,
'Approved' AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM Z_I_FINSTATEMENTAPPROVAL -- Placeholder for custom approval tracking view
WHERE ApprovalDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(CAST(LastChangeDate AS DATE FORMAT 'YYYY'), '-', CAST(LastChangeDate AS DATE FORMAT 'MM')) AS FinancialPeriod,
'Period Closed For Posting' AS ActivityName,
CAST(LastChangeDateTime AS TIMESTAMP) AS EventTime,
CAST(LastChangeDateTime AS TIMESTAMP) AS EndTime,
LastChangedByUser AS ResponsibleUser,
CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_FinPostingPeriodControl -- Proxy, see note on 'Period Opened'
WHERE PostingPeriodStatus = 'C' -- 'C' for Closed
AND LastChangeDate BETWEEN '[Start Date]' AND '[End Date]'; Các bước
- Xác nhận bạn có quyền đọc trực tiếp lược đồ SAP HANA chứa các bảng ứng dụng cần thiết, đồng thời xác định chủ sở hữu lược đồ của ACDOCA, TBTCO, CDHDR và CDPOS. Thay giá trị giữ chỗ cho lược đồ trong truy vấn bằng tên lược đồ đã được phê duyệt.
- Xác nhận năm tài chính, kỳ tài chính, phạm vi mã công ty và khoảng ngày trích xuất. Chọn khoảng ngày bao trùm toàn bộ chu kỳ chốt sổ, thường là từ ba đến sáu tháng, rồi thay các tham số ngày bằng giá trị phù hợp với hệ thống của bạn.
- Xác thực ánh xạ trường tại hệ thống của bạn cho các thay đổi cấu hình kỳ ghi sổ, hoàn tất batch job, thay đổi trạng thái đối chiếu, chạy hợp nhất, tạo báo cáo và hồ sơ phê duyệt. Truy vấn dùng các giá trị giữ chỗ mang tính mô tả cho những đối tượng nguồn không chắc có trong mọi hệ thống SAP S/4HANA. Trước khi chạy, hãy thay các giá trị này bằng view hoặc bảng đã được phê duyệt trong hệ thống của bạn.
- Chạy truy vấn bằng thông tin xác thực cơ sở dữ liệu chỉ có quyền đọc. Truy vấn tạo rõ ràng một dòng sự kiện cho mỗi hoạt động cần thiết và không suy diễn thêm sự kiện dựa trên thứ tự sự kiện.
- Kiểm tra các cột trả về. FinancialPeriod là mã trường hợp, ActivityName là hoạt động, còn EventTime là dấu thời gian bắt buộc của sự kiện. Các cột EndTime, ResponsibleUser, CompanyCode, GlAccountNumber, DocumentNumber, ReconciliationStatus và TargetCompletionDate được đưa vào nếu bản ghi nguồn có dữ liệu tương ứng.
- Xác minh kết quả có đủ mọi hoạt động cần thiết, kể cả những hoạt động có thể không có bản ghi nguồn trong một kỳ cụ thể. Nếu thiếu loại hoạt động, truy vấn trả về một dòng xác thực có ActivityName là Activity Coverage Validation. Nếu định dạng nhập của ProcessMind chỉ chấp nhận sự kiện nghiệp vụ, hãy xóa dòng này hoặc xử lý riêng trước khi tải lên.
- Đối chiếu một số sự kiện mẫu với bản ghi ứng dụng và nhật ký công việc trong SAP. Xác nhận sự kiện bút toán khớp với bản ghi ACDOCA, sự kiện công việc khớp với bản ghi TBTCO, còn sự kiện thay đổi khớp với bản ghi CDHDR và CDPOS hoặc nguồn đối chiếu, phê duyệt đã cấu hình.
- Xuất kết quả thành CSV mã hóa UTF-8 hoặc định dạng bảng khác được ProcessMind hỗ trợ. Giữ nguyên chính xác tên cột FinancialPeriod, ActivityName và EventTime. Sắp xếp theo FinancialPeriod và EventTime, đồng thời giữ một dòng cho mỗi sự kiện được trích xuất rõ ràng.
- Tải nhật ký sự kiện lên ProcessMind và cấu hình FinancialPeriod làm mã trường hợp, ActivityName làm hoạt động, EventTime làm dấu thời gian bắt đầu. Khi có EndTime, hãy ánh xạ cột này làm dấu thời gian kết thúc. Ánh xạ các cột còn lại thành thuộc tính sự kiện hoặc trường hợp.
Lưu ý quan trọng về ánh xạ nguồn: SAP S/4HANA không có một cấu trúc bảng chung cho mọi công cụ đối chiếu, màn hình theo dõi hợp nhất, kho lưu trữ báo cáo, quy trình phê duyệt hoặc cấu hình kỳ ghi sổ. Thay từng giá trị giữ chỗ [Your table name] và [Your column name] trong truy vấn bằng đối tượng và cột đã được xác minh trong hệ thống của bạn. Không chạy truy vấn SQL khi vẫn còn giá trị giữ chỗ.
Cấu hình
- Quyền truy cập cơ sở dữ liệu: Dùng tài khoản SAP HANA chỉ có quyền đọc, với quyền SELECT trên ACDOCA, TBTCO, CDHDR, CDPOS và các đối tượng nguồn đã cấu hình cho kiểm soát kỳ hạch toán, đối soát, hợp nhất, báo cáo và phê duyệt.
- Cấu hình lược đồ: Thay [Your SAP schema] bằng lược đồ thực tế chứa các đối tượng ứng dụng. Xác nhận các đối tượng là bảng, calculation view hay view báo cáo đã được phê duyệt.
- Khoảng ngày: Trích xuất toàn bộ chu kỳ chốt sổ, thường là từ ba đến sáu tháng. Bao gồm các hoạt động mở kỳ và đóng kỳ, bút toán muộn, đảo bút toán, phê duyệt và điều chỉnh sau khi chốt.
- Kỳ tài chính: Lọc theo năm tài chính và kỳ tài chính áp dụng cho mã công ty. Không mặc định kỳ tài chính trùng với năm dương lịch nếu biến thể năm tài chính khác.
- Mã công ty: Lọc theo mã công ty nếu quy trình chỉ áp dụng cho một số pháp nhân được chọn. Dùng [Configure based on your system] nếu phạm vi được quản lý trong một bảng ánh xạ tổ chức riêng.
- Loại chứng từ: Giới hạn dữ liệu bút toán ở các loại chứng từ dùng cho khoản trích trước, dự phòng, điều chỉnh, định giá, bù trừ và các bút toán chốt sổ khác. Xác nhận cấu hình loại chứng từ tại hệ thống trước khi bật các bộ lọc này.
- Trạng thái công việc: Chỉ đưa vào các công việc đã hoàn tất hoặc chạy thành công cho hoạt động hoàn tất. Kiểm tra các giá trị trạng thái tại TBTCO trước khi áp dụng điều kiện lọc trạng thái.
- Chứng từ thay đổi: Lọc CDHDR và CDPOS theo lớp đối tượng và chỉ báo thay đổi liên quan sau khi xác nhận cấu hình tại hệ thống. Chỉ dùng chứng từ thay đổi có thể không đủ để xác định mọi hoạt động nghiệp vụ.
- Nguồn đối soát và phê duyệt: Cấu hình các đối tượng nguồn đã xác minh cho thay đổi trạng thái đối soát, thao tác của người lập, phê duyệt, ngày mục tiêu và xác nhận điện tử. Các nguồn này khác nhau tùy thành phần SAP và phần mở rộng được triển khai.
- Hiệu năng: Giới hạn điều kiện lọc theo năm tài chính, kỳ tài chính, mã công ty, ngày hạch toán và dấu thời gian sự kiện. Đưa bộ lọc vào từng nhánh UNION ALL, tránh quét toàn bộ ACDOCA và chạy trong khung giờ báo cáo đã được phê duyệt.
- Kiểu dữ liệu: Chuẩn hóa dấu thời gian về cùng múi giờ và kiểu dữ liệu. Chuyển chuỗi rỗng thành NULL và giữ nguyên các số 0 ở đầu mã công ty, số tài khoản và số chứng từ.
- Điều kiện tiên quyết: Xác nhận các thành phần SAP cần thiết, công cụ đối soát, chức năng hợp nhất, nhật ký công việc, ghi nhận chứng từ thay đổi và nhật ký kiểm tra báo cáo hoặc quy trình làm việc đã được bật và có dữ liệu.
- Bảo mật và tuân thủ: Áp dụng quyền truy cập tối thiểu cần thiết, bảo vệ dữ liệu tài chính và dữ liệu người dùng, ghi lại mục đích trích xuất và tuân thủ yêu cầu kiểm toán SAP cũng như cơ sở dữ liệu của tổ chức.
Truy vấn mẫu sql
WITH
params AS (
SELECT
TO_DATE('[Start date YYYY-MM-DD]') AS start_date,
TO_DATE('[End date YYYY-MM-DD]') AS end_date,
'[Fiscal year]' AS fiscal_year_filter,
'[Fiscal period]' AS fiscal_period_filter,
'[Company code filter]' AS company_code_filter
FROM DUMMY
),
base_events AS (
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0') AS FinancialPeriod,
'Accruals And Provisions Posted' AS ActivityName,
CAST(a.BUDAT AS TIMESTAMP) AS EventTime,
CAST(NULL AS TIMESTAMP) AS EndTime,
CAST(a.USNAM AS NVARCHAR(80)) AS ResponsibleUser,
CAST(a.RBUKRS AS NVARCHAR(20)) AS CompanyCode,
CAST(a.RACCT AS NVARCHAR(40)) AS GlAccountNumber,
CAST(a.BELNR AS NVARCHAR(40)) AS DocumentNumber,
CAST(NULL AS NVARCHAR(40)) AS ReconciliationStatus,
CAST(NULL AS DATE) AS TargetCompletionDate
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Accrual document type]', '[Provision document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Adjusting Journal Entry Posted',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Adjusting journal entry document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Foreign Currency Valuation Run',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Foreign currency valuation document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Automated Clearing Run Executed',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Automated clearing document type]')
UNION ALL
SELECT
CAST(j.[Financial period column] AS NVARCHAR(20)),
'Subledger Data Transfer Completed',
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job user column] AS NVARCHAR(80)),
CAST(j.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(j.[Job name column] AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].TBTCO j
CROSS JOIN params p
WHERE j.[Job end timestamp column] >= p.start_date
AND j.[Job end timestamp column] < ADD_DAYS(p.end_date, 1)
AND j.[Job status column] = '[Successful job status]'
AND j.[Job name column] IN ('[AR transfer job]', '[AP transfer job]', '[Asset Accounting transfer job]')
UNION ALL
SELECT
CAST(j.[Financial period column] AS NVARCHAR(20)),
'Intercompany Reconciliation Started',
CAST(j.[Job start timestamp column] AS TIMESTAMP),
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job user column] AS NVARCHAR(80)),
CAST(j.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(j.[Job name column] AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].TBTCO j
CROSS JOIN params p
WHERE j.[Job start timestamp column] >= p.start_date
AND j.[Job start timestamp column] < ADD_DAYS(p.end_date, 1)
AND j.[Job name column] IN ('[Intercompany reconciliation job]')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Intercompany Reconciliation Started',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Responsible user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for intercompany reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] IN ('Started', 'In Progress')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Account Reconciliation Started',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Responsible user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(r.[GL account column] AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for account reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] IN ('In Progress')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Account Reconciliation Approved',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Approver user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(r.[GL account column] AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for account reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] = 'Approved'
UNION ALL
SELECT
CAST(c.[Financial period column] AS NVARCHAR(20)),
'Consolidation Tasks Executed',
CAST(c.[Execution start timestamp column] AS TIMESTAMP),
CAST(c.[Execution end timestamp column] AS TIMESTAMP),
CAST(c.[Responsible user column] AS NVARCHAR(80)),
CAST(c.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(c.[Task identifier column] AS NVARCHAR(40)),
CAST(c.[Status column] AS NVARCHAR(40)),
CAST(c.[Target completion date column] AS DATE)
FROM [Your table name for consolidation execution] c
CROSS JOIN params p
WHERE c.[Execution start timestamp column] >= p.start_date
AND c.[Execution start timestamp column] < ADD_DAYS(p.end_date, 1)
AND c.[Status column] IN ('Completed', 'Successful')
UNION ALL
SELECT
CAST(t.[Financial period column] AS NVARCHAR(20)),
'Trial Balance Prepared',
CAST(t.[Report saved timestamp column] AS TIMESTAMP),
CAST(t.[Report saved timestamp column] AS TIMESTAMP),
CAST(t.[Responsible user column] AS NVARCHAR(80)),
CAST(t.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(t.[Report identifier column] AS NVARCHAR(40)),
CAST(t.[Status column] AS NVARCHAR(40)),
CAST(t.[Target completion date column] AS DATE)
FROM [Your table name for trial balance output] t
CROSS JOIN params p
WHERE t.[Report saved timestamp column] >= p.start_date
AND t.[Report saved timestamp column] < ADD_DAYS(p.end_date, 1)
AND t.[Status column] IN ('Saved', 'Completed')
UNION ALL
SELECT
CAST(f.[Financial period column] AS NVARCHAR(20)),
'Financial Statements Generated',
CAST(f.[Generation timestamp column] AS TIMESTAMP),
CAST(f.[Generation timestamp column] AS TIMESTAMP),
CAST(f.[Responsible user column] AS NVARCHAR(80)),
CAST(f.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(f.[Report identifier column] AS NVARCHAR(40)),
CAST(f.[Status column] AS NVARCHAR(40)),
CAST(f.[Target completion date column] AS DATE)
FROM [Your table name for financial statement output] f
CROSS JOIN params p
WHERE f.[Generation timestamp column] >= p.start_date
AND f.[Generation timestamp column] < ADD_DAYS(p.end_date, 1)
AND f.[Status column] IN ('Generated', 'Saved', 'Completed')
UNION ALL
SELECT
CAST(f.[Financial period column] AS NVARCHAR(20)),
'Financial Statements Approved',
CAST(f.[Approval timestamp column] AS TIMESTAMP),
CAST(f.[Approval timestamp column] AS TIMESTAMP),
CAST(f.[Approver user column] AS NVARCHAR(80)),
CAST(f.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(f.[Report identifier column] AS NVARCHAR(40)),
CAST(f.[Status column] AS NVARCHAR(40)),
CAST(f.[Target completion date column] AS DATE)
FROM [Your table name for financial statement approval] f
CROSS JOIN params p
WHERE f.[Approval timestamp column] >= p.start_date
AND f.[Approval timestamp column] < ADD_DAYS(p.end_date, 1)
AND f.[Status column] = 'Approved'
UNION ALL
SELECT
CAST(x.[Financial period column] AS NVARCHAR(20)),
'Period Opened For Posting',
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Changed by column] AS NVARCHAR(80)),
CAST(x.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(x.[Change document number column] AS NVARCHAR(40)),
CAST(x.[New status column] AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your table name for posting period changes] x
CROSS JOIN params p
WHERE x.[Change timestamp column] >= p.start_date
AND x.[Change timestamp column] < ADD_DAYS(p.end_date, 1)
AND x.[New status column] = 'Open'
UNION ALL
SELECT
CAST(x.[Financial period column] AS NVARCHAR(20)),
'Period Closed For Posting',
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Changed by column] AS NVARCHAR(80)),
CAST(x.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(x.[Change document number column] AS NVARCHAR(40)),
CAST(x.[New status column] AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your table name for posting period changes] x
CROSS JOIN params p
WHERE x.[Change timestamp column] >= p.start_date
AND x.[Change timestamp column] < ADD_DAYS(p.end_date, 1)
AND x.[New status column] = 'Closed'
),
activity_list AS (
SELECT 'Period Opened For Posting' AS ActivityName FROM DUMMY
UNION ALL SELECT 'Subledger Data Transfer Completed' FROM DUMMY
UNION ALL SELECT 'Intercompany Reconciliation Started' FROM DUMMY
UNION ALL SELECT 'Accruals And Provisions Posted' FROM DUMMY
UNION ALL SELECT 'Automated Clearing Run Executed' FROM DUMMY
UNION ALL SELECT 'Foreign Currency Valuation Run' FROM DUMMY
UNION ALL SELECT 'Account Reconciliation Started' FROM DUMMY
UNION ALL SELECT 'Adjusting Journal Entry Posted' FROM DUMMY
UNION ALL SELECT 'Account Reconciliation Approved' FROM DUMMY
UNION ALL SELECT 'Consolidation Tasks Executed' FROM DUMMY
UNION ALL SELECT 'Trial Balance Prepared' FROM DUMMY
UNION ALL SELECT 'Financial Statements Generated' FROM DUMMY
UNION ALL SELECT 'Financial Statements Approved' FROM DUMMY
UNION ALL SELECT 'Period Closed For Posting' FROM DUMMY
),
missing_activities AS (
SELECT
CAST(NULL AS NVARCHAR(20)) AS FinancialPeriod,
'Activity Coverage Validation' AS ActivityName,
CAST(NULL AS TIMESTAMP) AS EventTime,
CAST(NULL AS TIMESTAMP) AS EndTime,
CAST(NULL AS NVARCHAR(80)) AS ResponsibleUser,
CAST(NULL AS NVARCHAR(20)) AS CompanyCode,
CAST(NULL AS NVARCHAR(40)) AS GlAccountNumber,
CAST(NULL AS NVARCHAR(40)) AS DocumentNumber,
CAST('Missing activity: ' || al.ActivityName AS NVARCHAR(40)) AS ReconciliationStatus,
CAST(NULL AS DATE) AS TargetCompletionDate
FROM activity_list al
LEFT JOIN base_events b ON b.ActivityName = al.ActivityName
WHERE b.ActivityName IS NULL
)
SELECT
FinancialPeriod,
ActivityName,
EventTime,
EndTime,
ResponsibleUser,
CompanyCode,
GlAccountNumber,
DocumentNumber,
ReconciliationStatus,
TargetCompletionDate
FROM base_events
UNION ALL
SELECT
FinancialPeriod,
ActivityName,
EventTime,
EndTime,
ResponsibleUser,
CompanyCode,
GlAccountNumber,
DocumentNumber,
ReconciliationStatus,
TargetCompletionDate
FROM missing_activities
ORDER BY FinancialPeriod, EventTime, ActivityName Sẵn sàng bắt đầu?
Dùng mẫu dữ liệu này để giúp tổ chức nâng cao hiệu quả và tuân thủ. Bắt đầu cải thiện quy trình ghi nhận đến báo cáo ngay hôm nay.
Tối ưu quy trình ghi nhận đến báo cáo, chốt kỳ và đối soát ngay hôm nay
Tìm ra điểm kém hiệu quả và rút ngắn chu kỳ chốt sổ đến 30%.
Không cần thẻ tín dụng. Bắt đầu chỉ trong vài phút.