Mẫu dữ liệu xử lý bảng lương
Mẫu dữ liệu xử lý bảng lương
- Các trường dữ liệu quan trọng để phân tích bảng lương
- Các mốc chính để khám phá quy trình
- Hướng dẫn trích xuất theo từng hệ thống
Thuộc tính xử lý bảng lương
| Tên | Mô tả | ||
|---|---|---|---|
| Dấu thời gian sự kiện EventTimestamp | Ngày và giờ chính xác khi hoạt động diễn ra. | ||
| Mô tả Thuộc tính này ghi lại chính xác thời điểm sự kiện diễn ra, gồm cả ngày và giờ. Đây là dữ liệu nền tảng để tính các chỉ số thời gian như thời gian chu kỳ, thời gian xử lý và tốc độ hoàn tất giữa các giai đoạn của quy trình. Trong SAP ECP, dữ liệu này lấy từ các trường dấu thời gian như Vì sao điều này quan trọng Thuộc tính này giúp tính khoảng thời gian giữa các sự kiện, cần thiết để phát hiện điểm nghẽn hiệu suất và các trường hợp vi phạm SLA. Lấy dữ liệu ở đâu CDHDR-UDATE/UTIME, SWWLOGHIST-WI_CD/WI_CT hoặc dấu thời gian trong nhật ký kiểm tra cụ thể. Ví dụ 2023-10-25T08:30:00Z2023-10-26T14:15:22Z2023-11-01T09:00:00Z | |||
| Hồ sơ tính lương PayrollRecord | Mã định danh duy nhất kết hợp nhân viên và kỳ trả lương. | ||
| Mô tả Hồ sơ tính lương là mã định danh trung tâm của từng trường hợp trong phân tích process mining. Hồ sơ này đại diện cho một lần xử lý lương của một nhân viên cụ thể trong một kỳ trả lương xác định, liên kết mọi hoạt động từ lúc gửi bảng chấm công đến khi nộp hồ sơ thuế. Trong SAP SuccessFactors Employee Central Payroll, mã này thường được tạo bằng cách ghép Mã số nhân viên (PERNR), Năm tính lương (PABRJ) và Kỳ tính lương (PABRP). Có thể thêm số thứ tự (SEQNR) để phân biệt nhiều lần chạy. Mức chi tiết này giúp phân tích mỗi chu kỳ trả lương như một trường hợp riêng, từ đó đo chính xác thời gian xử lý và theo dõi lỗi. Vì sao điều này quan trọng Mã này đóng vai trò là Case ID, nhóm tất cả sự kiện liên quan để tái hiện toàn bộ quy trình của từng lần trả lương. Lấy dữ liệu ở đâu Được tạo từ SAP Cluster B2 (kết quả đánh giá thời gian) hoặc bảng PC_PAYRESULT (PERNR, PABRJ, PABRP, SEQNR). Ví dụ 10023499-2023-1088291022-2024-01-SEQ01US-10293-2023-52 | |||
| Hoạt động Activity | Tác vụ hoặc sự kiện cụ thể diễn ra trong quy trình tính lương. | ||
| Mô tả Thuộc tính này ghi lại tên bước đang thực hiện trong quy trình, chẳng hạn như 'Đã gửi bảng chấm công', 'Đã chạy mô phỏng tính lương' hoặc 'Đã thực hiện thanh toán'. Đây là cơ sở để lập sơ đồ quy trình và giúp chuyên viên phân tích hình dung trình tự các hoạt động trong chu kỳ tính lương. Dữ liệu được lấy từ nhiều nhật ký, gồm nhật ký Workflow (SWWLOGHIST), nhật ký thay đổi Infotype (CDHDR/CDPOS) và các bảng trạng thái tính lương chuyên biệt. Khi trích xuất, hệ thống áp dụng quy ước đặt tên nhất quán để chuyển mã sự kiện kỹ thuật thành tên hoạt động dễ hiểu với người dùng nghiệp vụ. Vì sao điều này quan trọng Thuộc tính này xác định các nút trong đồ thị quy trình, giúp trực quan hóa luồng, vòng lặp và biến thể của quy trình. Lấy dữ liệu ở đâu Lấy từ SWWLOGHIST (Workflow), CDHDR (chứng từ thay đổi) hoặc các thay đổi trạng thái trong PA03 (bản ghi kiểm soát). Ví dụ Đã gửi bảng chấm côngĐã tính tổng lươngĐã đánh dấu ngoại lệ kiểm toánĐã thực hiện thanh toán | |||
| Hệ thống nguồn SourceSystem | Hệ thống nơi dữ liệu sự kiện được tạo ra. | ||
| Mô tả Thuộc tính này xác định phiên bản SAP SuccessFactors Employee Central Payroll hoặc hệ thống con được kết nối mà dữ liệu được trích xuất từ đó. Trong môi trường phức tạp có nhiều hệ thống tính lương hoặc cấu hình kết hợp, trường này giúp theo dõi nguồn gốc và truy vết dữ liệu. Thuộc tính này đặc biệt hữu ích khi phân tích dữ liệu từ các hệ thống ở nhiều khu vực hoặc so sánh hiệu suất giữa hệ thống cũ và hệ thống đã chuyển đổi. Đây thường là chuỗi tĩnh được thiết lập khi cấu hình trích xuất dữ liệu. Vì sao điều này quan trọng Thuộc tính này giúp phân đoạn dữ liệu trong môi trường nhiều hệ thống và xác định nguồn gốc để xử lý vấn đề về chất lượng dữ liệu. Lấy dữ liệu ở đâu System ID (SID) từ bản cài đặt SAP hoặc cấu hình trích xuất. Ví dụ SAP_ECP_NASAP_ECP_EMEASuccessFactors_Core | |||
| Lần cập nhật dữ liệu gần nhất LastDataUpdate | Dấu thời gian của lần trích xuất dữ liệu gần nhất. | ||
| Mô tả Thuộc tính này cho biết lần gần nhất bản ghi dữ liệu được làm mới trong mô hình dữ liệu process mining. Nhờ đó, chuyên viên phân tích biết dữ liệu còn mới hay không và có thể đảm bảo thông tin chuyên sâu dựa trên dữ liệu hiện tại. Dù không được dùng trực tiếp để phân tích luồng quy trình, thuộc tính này rất quan trọng với quản trị và xác thực dữ liệu. Nó giúp xác minh bảng điều khiển phản ánh trạng thái mới nhất của hệ thống tính lương. Vì sao điều này quan trọng Thuộc tính này giúp người dùng biết độ trễ dữ liệu và xác minh các chỉ số báo cáo có được cập nhật hay không. Lấy dữ liệu ở đâu Được tạo khi chạy tập lệnh ETL / trích xuất. Ví dụ 2023-11-05T00:00:00Z2023-11-05T12:00:00Z | |||
| Chuyên viên tính lương PayrollSpecialist | Mã người dùng hoặc tên người xử lý bản ghi. | ||
| Mô tả Thuộc tính này ghi nhận danh tính của quản trị viên hoặc chuyên viên tính lương chịu trách nhiệm thực hiện các bước thủ công hoặc phê duyệt. Đây là thuộc tính cốt lõi của bảng điều khiển 'Năng suất và khối lượng công việc của chuyên viên', giúp phân tích cách phân bổ công việc và năng suất của từng người. Dữ liệu lấy từ trường Vì sao điều này quan trọng Thuộc tính này cần thiết để cân bằng khối lượng công việc và xác định điểm nghẽn do con người trong quy trình. Lấy dữ liệu ở đâu Các trường hệ thống (SY-UNAME) được ghi trong CDHDR hoặc Workflow Actor ID. Ví dụ JSMITHKMILLERSYSTEM | |||
| Được tự động hóa IsAutomated | Cờ cho biết hoạt động có do người dùng hệ thống thực hiện hay không. | ||
| Mô tả Thuộc tính Boolean này cho biết một bước trong quy trình do tác vụ nền hoặc người dùng hệ thống thực hiện, hay do con người thực hiện. Đây là dữ liệu quan trọng để bảng điều khiển 'Theo dõi tự động hóa chuyển khoản ngân hàng' tính tỷ lệ xử lý không cần thao tác thủ công. Thông thường, thuộc tính được xác định bằng cách đối chiếu Mã người dùng với danh sách tài khoản hệ thống đã biết, chẳng hạn 'BATCH' hoặc 'SAP_WORKFLOW'. Vì sao điều này quan trọng Thuộc tính này giúp đo tỷ lệ tự động hóa và xác định cơ hội giảm công việc thủ công. Lấy dữ liệu ở đâu Được xác định từ Mã người dùng, chẳng hạn nếu User IN ['BATCH', 'SYSTEM'] thì giá trị là true. Ví dụ truefalse | |||
| Khu vực tính lương PayrollArea | Xác định nhóm tính lương của nhân viên. | ||
| Mô tả Khu vực tính lương nhóm những nhân viên được xử lý cùng một lần chạy, thường dựa trên tần suất trả lương (ví dụ: hàng tháng hoặc hai tuần một lần) hoặc cơ cấu tổ chức. Thuộc tính này rất quan trọng để phân đoạn phân tích quy trình và so sánh hiệu suất giữa các nhóm nhân viên. Trong SAP, trường kỹ thuật tương ứng là Vì sao điều này quan trọng Thuộc tính này giúp so sánh hiệu suất chu kỳ tính lương giữa các nhóm khác nhau, chẳng hạn nhân viên hưởng lương theo giờ và nhân viên hưởng lương cố định. Lấy dữ liệu ở đâu Bảng PA0001 (Phân công tổ chức), trường ABKRS. Ví dụ Hoa Kỳ, hai tuần một lầnĐức, hàng thángTính lương cho lãnh đạo cấp cao | |||
| Kỳ trả lương PayPeriod | Số thứ tự của kỳ trong năm tài chính. | ||
| Mô tả Thuộc tính này cho biết số thứ tự của kỳ tính lương, chẳng hạn 01 cho tháng 1 hoặc kỳ hai tuần một lần đầu tiên. Nhờ đó, chuyên viên phân tích có thể theo dõi xu hướng hiệu suất theo thời gian và nhận diện tính mùa vụ trong khối lượng xử lý. Dữ liệu lấy từ Vì sao điều này quan trọng Thuộc tính này hỗ trợ phân tích xu hướng và phát hiện điểm nghẽn theo mùa vào những thời điểm cụ thể trong năm. Lấy dữ liệu ở đâu Bảng PA0001 hoặc cụm kết quả tính lương (RGDIR), trường PABRP. Ví dụ 01122652 | |||
| Loại nhân viên EmployeeType | Phân loại nhân viên, chẳng hạn nhân viên chính thức hoặc nhà thầu. | ||
| Mô tả Thuộc tính này phân loại nhân viên theo quan hệ lao động, chẳng hạn nhân viên đang làm việc, người đã nghỉ hưu hoặc nhà thầu. Mức độ phức tạp khi tính lương thường khác nhau theo loại nhân viên. Một số nhóm cần xử lý thủ công nhiều hơn hoặc phải qua các bước kiểm tra tuân thủ riêng. Về mặt kỹ thuật, dữ liệu lấy từ trường Nhóm nhân viên ( Vì sao điều này quan trọng Thuộc tính này giúp xác định biến thể hoặc chậm trễ của quy trình có chỉ xảy ra ở một số nhóm lao động nhất định hay không. Lấy dữ liệu ở đâu Bảng PA0001, các trường PERSG (Nhóm) và PERSK (Phân nhóm). Ví dụ Nhân viên đang làm việcThực tập sinhNgười hưởng lương hưuNhà thầu hưởng lương theo giờ | |||
| Lương gộp GrossPayAmount | Tổng lương gộp được tính cho bản ghi. | ||
| Mô tả Thuộc tính này thể hiện tổng giá trị lương gộp trước khi khấu trừ. Đây là chỉ số cơ bản để xác thực tài chính và phân tích mối liên hệ giữa các khoản thanh toán giá trị cao với mức độ kiểm tra kiểm toán hoặc thời gian chờ phê duyệt. Dữ liệu được trích xuất từ bảng kết quả tính lương (RT), thường là loại tiền lương cụ thể thể hiện tổng lương gộp (ví dụ: /101). Thuộc tính này cung cấp cơ sở tính toán cho phân tích 'Độ chính xác khi tính phúc lợi và thuế'. Vì sao điều này quan trọng Thuộc tính này giúp phân tích cách quy trình vận hành theo giá trị thanh toán, chẳng hạn khoản thanh toán lớn hơn có mất nhiều thời gian phê duyệt hơn không. Lấy dữ liệu ở đâu Bảng kết quả tính lương (RT), loại tiền lương /101 hoặc tương tự. Ví dụ 5000.002500.5010500.00 | |||
| Tần suất chu kỳ trả lương PayCycleFrequency | Cho biết lần chạy là định kỳ hay ngoài chu kỳ. | ||
| Mô tả Thuộc tính này phân biệt các lần chạy tính lương theo lịch với các lần chạy 'ngoài chu kỳ' phát sinh để điều chỉnh hoặc thanh toán ngay. Số lần chạy ngoài chu kỳ cao là dấu hiệu cho thấy quy trình có thể chưa hiệu quả. Bảng điều khiển 'Phân tích số lượng thanh toán ngoài chu kỳ' theo dõi chỉ số này. Thuộc tính được xác định từ trường Lý do ngoài chu kỳ ( Vì sao điều này quan trọng Thuộc tính này rất quan trọng để đo KPI 'Tỷ lệ thanh toán ngoài chu kỳ' và giảm các trường hợp xử lý không theo lịch chuẩn. Lấy dữ liệu ở đâu Bảng RGDIR (Thư mục cụm), trường OCRSN hoặc PAYTY. Ví dụ Định kỳĐiều chỉnh AThanh toán tiền thưởngChấm dứt hợp đồng | |||
| Trung tâm chi phí CostCenter | Trung tâm chi phí gắn với nhân viên. | ||
| Mô tả Trung tâm chi phí là phòng ban hoặc đơn vị tài chính chịu trách nhiệm phân bổ chi phí của nhân viên. Trong bảng điều khiển 'Điểm nghẽn khi phê duyệt bảng chấm công', thuộc tính này đại diện cho phòng ban và giúp xác định đơn vị nào làm chậm chu kỳ tính lương. Trường này nằm trong Infotype Phân công tổ chức (PA0001), với mã Vì sao điều này quan trọng Thuộc tính này cho phép đi sâu theo cơ cấu tổ chức để xác định phòng ban cụ thể gây chậm trễ hoặc phải làm lại. Lấy dữ liệu ở đâu Bảng PA0001, trường KOSTL. Ví dụ CC-1000 Tài chínhCC-2000 CNTTCC-3000 Kinh doanh | |||
| Cờ ngoại lệ kiểm toán AuditExceptionFlag | Cờ cho biết có xảy ra ngoại lệ kiểm toán hay không. | ||
| Mô tả Thuộc tính này đánh dấu các trường hợp quy tắc xác thực phát hiện ngoại lệ hoặc cảnh báo trong quá trình mô phỏng hoặc tính lương. Đây là dữ liệu đầu vào chính cho KPI 'Tần suất ngoại lệ kiểm toán'. Dữ liệu thường lấy từ nhật ký tính lương hoặc các bảng thông báo lỗi cụ thể (FEHLER). Giá trị true cho biết luồng quy trình có đi qua nhánh xử lý ngoại lệ. Vì sao điều này quan trọng Thuộc tính này làm rõ vấn đề về chất lượng dữ liệu và nhu cầu can thiệp thủ công. Lấy dữ liệu ở đâu Được xác định dựa trên thông báo lỗi trong nhật ký tính lương hoặc các mã trạng thái cụ thể. Ví dụ truefalse | |||
| Hạn xử lý SLA SLAProcessingDeadline | Thời điểm mục tiêu cần hoàn tất lần chạy tính lương. | ||
| Mô tả Thuộc tính này thể hiện hạn chót nội bộ hoặc bên ngoài để hoàn tất tính lương và đảm bảo chi trả đúng hạn. Thuộc tính được dùng để tính KPI 'Tỷ lệ tuân thủ SLA' bằng cách so sánh hạn chót với dấu thời gian thực tế của sự kiện 'Đã thực hiện thanh toán'. Thuộc tính này không phải lúc nào cũng có sẵn trong bảng SAP. Thông thường, hạn chót được lưu trong bảng kiểm soát tùy chỉnh hoặc xác định dựa trên lịch tính lương, chẳng hạn trước Ngày trả lương 2 ngày. Trong mô hình dữ liệu này, hạn chót thường được tính bằng Ngày trả lương trừ đi một khoảng thời gian dự phòng đã đặt. Vì sao điều này quan trọng Thuộc tính này cung cấp mốc chuẩn để đánh giá việc xử lý đúng hạn và tuân thủ SLA. Lấy dữ liệu ở đâu Được tính từ Ngày trả lương (T549S) trừ đi số ngày xử lý đã cấu hình. Ví dụ 2023-10-28T17:00:00Z2023-11-28T17:00:00Z | |||
| Khu vực thuế TaxJurisdiction | Khu vực hoặc cơ quan thuế áp dụng cho nhân viên. | ||
| Mô tả Thuộc tính này xác định cơ quan hoặc khu vực thuế cụ thể (chẳng hạn bang, tỉnh hoặc bang của Thụy Sĩ) áp dụng cho hồ sơ tính lương. Đây là dữ liệu cần thiết để bảng điều khiển 'Ngoại lệ kiểm toán và rủi ro tuân thủ' xác định các điểm tập trung vấn đề tuân thủ theo khu vực. Trong SAP US Payroll, trường tương ứng là Vì sao điều này quan trọng Thuộc tính này giúp phân đoạn rủi ro tuân thủ và ngoại lệ kiểm toán theo khu vực pháp lý. Lấy dữ liệu ở đâu Bảng PA0001 hoặc PA0207/PA0208, trường TXJCD. Ví dụ CANYTXNRW | |||
| Pháp nhân LegalEntity | Mã công ty hoặc pháp nhân của nhân viên. | ||
| Mô tả Thuộc tính này xác định pháp nhân (Mã công ty) gắn với hồ sơ tính lương. Thuộc tính hỗ trợ báo cáo tài chính và phân tích hiệu suất tính lương giữa các công ty con hoặc pháp nhân khác nhau. Dữ liệu lấy từ trường Vì sao điều này quan trọng Thuộc tính này hỗ trợ so sánh hiệu suất giữa các công ty và phân tích phân bổ tài chính. Lấy dữ liệu ở đâu Bảng PA0001, trường BUKRS. Ví dụ US01DE011000 | |||
| Số lần làm lại ReworkCount | Số lần thực hiện điều chỉnh. | ||
| Mô tả Chỉ số được tính bằng cách đếm số lần hoạt động 'Đã sửa dữ liệu' xuất hiện trong lịch sử trường hợp. Đây là thước đo trực tiếp về mức độ kém hiệu quả của quy trình và hỗ trợ bảng điều khiển 'Tỷ lệ điều chỉnh thủ công và làm lại'. Số lần làm lại cao cho thấy vấn đề chất lượng dữ liệu kéo dài hoặc các trường hợp phức tạp không vượt qua bước xác thực ngay lần đầu. Vì sao điều này quan trọng Chỉ số này định lượng công sức bị tiêu tốn cho việc sửa lỗi và giúp chứng minh nhu cầu đầu tư vào chất lượng dữ liệu. Lấy dữ liệu ở đâu Được tính bằng cách đếm số hoạt động 'Đã sửa dữ liệu' cho mỗi CaseId. Ví dụ 013 | |||
Hoạt động xử lý bảng lương
| Hoạt động | Mô tả | ||
|---|---|---|---|
| Đã chạy mô phỏng tiền lương | Chạy thử trình điều khiển tiền lương để tìm lỗi mà không ghi kết quả vào cơ sở dữ liệu. Đây là bước quan trọng trong giai đoạn xác thực của PCC. | ||
| Vì sao điều này quan trọng Cần thiết để tính Tỷ lệ tính toán thành công ngay lần đầu. Mô phỏng lặp lại thường cho thấy vấn đề về chất lượng dữ liệu. Lấy dữ liệu ở đâu Nhật ký phiên bản bước trong Payroll Control Center (PYC_D_STEP_INST), với loại bước tương ứng là Simulation. Thu thập Ghi nhận khi trạng thái bước mô phỏng PCC chuyển thành COMPLETED Loại sự kiện explicit | |||
| Đã gửi bảng chấm công | Sự kiện nhân viên hoặc quản lý gửi dữ liệu chấm công cho kỳ trả lương. Sự kiện này được ghi nhận từ nhật ký yêu cầu quy trình làm việc trong mô-đun Employee Central liên kết với ECP. | ||
| Vì sao điều này quan trọng Đánh dấu thời điểm bắt đầu tích lũy dữ liệu. Chậm trễ ở bước này ảnh hưởng đến các bước sau, khiến thời gian dành cho xử lý tiền lương bị thu hẹp. Lấy dữ liệu ở đâu Các bảng yêu cầu quy trình làm việc Employee Central (WfRequest), lọc theo danh mục Time Sheet hoặc Time Off. Thu thập Ghi nhận khi trạng thái quy trình làm việc chuyển thành SUBMITTED Loại sự kiện explicit | |||
| Đã hoàn tất khai thuế | Tạo tệp báo cáo thuế (ví dụ: PU19 tại Hoa Kỳ) hoặc chuyển dữ liệu cho nhà cung cấp dịch vụ khai thuế bên thứ ba. | ||
| Vì sao điều này quan trọng Bảo đảm tuân thủ quy định. Theo dõi bước tuân thủ cuối cùng trong trình tự. Lấy dữ liệu ở đâu Nhật ký Tax Reporter Log Manager hoặc B2A (Business to Administration) Manager cho biết tệp đã được tạo thành công. Thu thập Ghi nhận khi lần chạy Tax Reporter hoàn tất thành công Loại sự kiện explicit | |||
| Đã khởi tạo quy trình tiền lương | Tạo một phiên bản quy trình tiền lương trong Payroll Control Center (PCC). Đây là thời điểm chính thức bắt đầu chu kỳ tiền lương cho một khu vực tính lương cụ thể. | ||
| Vì sao điều này quan trọng Thiết lập mốc bắt đầu để tính tổng Thời lượng chu kỳ tiền lương từ đầu đến cuối. Mốc này xác định phạm vi nhân viên cần xử lý. Lấy dữ liệu ở đâu Các bảng Payroll Control Center (ví dụ: PYC_D_PY_PROC_INST), theo dõi thời điểm tạo mã quy trình mới. Thu thập Ghi nhận khi tạo phiên bản quy trình PCC Loại sự kiện explicit | |||
| Đã phê duyệt bảng chấm công | Quản lý hoặc quản trị viên chính thức phê duyệt dữ liệu chấm công. Thay đổi trạng thái này xác nhận dữ liệu đã sẵn sàng chuyển sang công cụ tiền lương. | ||
| Vì sao điều này quan trọng Dùng để tính KPI Thời gian phê duyệt bảng chấm công. Điểm nghẽn ở đây thường cho thấy quản lý phê duyệt chậm hoặc hệ thống cấp bậc phê duyệt phức tạp. Lấy dữ liệu ở đâu Các bảng yêu cầu quy trình làm việc Employee Central (WfRequest), lọc theo trạng thái COMPLETED hoặc APPROVED. Thu thập Ghi nhận khi trạng thái quy trình làm việc chuyển thành APPROVED Loại sự kiện explicit | |||
| Đã phê duyệt hồ sơ tiền lương | Phê duyệt chính thức kết quả tiền lương cho một nhân viên hoặc nhóm lương. Bước này diễn ra trong mục 'Monitoring' hoặc 'Sign Off' của PCC. | ||
| Vì sao điều này quan trọng Đánh dấu kết thúc giai đoạn tính toán và xác thực, đồng thời cho phép chuyển sang thanh toán. Đây là mốc quan trọng để phân tích năng suất của chuyên viên. Lấy dữ liệu ở đâu Nhật ký phiên bản bước trong Payroll Control Center (PYC_D_STEP_INST) cho bước Approval hoặc Confirmation. Thu thập Ghi nhận khi trạng thái bước phê duyệt PCC chuyển thành COMPLETED Loại sự kiện explicit | |||
| Đã tạo tệp chuyển khoản ngân hàng | Tạo tệp Preliminary Data Medium Exchange (pre-DME) hoặc tệp DME cuối cùng. Tệp này chứa lệnh thanh toán gửi đến ngân hàng. | ||
| Vì sao điều này quan trọng Theo dõi Trình giám sát tự động hóa chuyển khoản ngân hàng. Tạo tệp thất bại là sự cố nghiêm trọng làm dừng quy trình. Lấy dữ liệu ở đâu Nhật ký thực thi DME / Payment Medium Workbench (PMW), thường được lưu trong TemSe hoặc các bảng chạy thanh toán cụ thể (ReguH/ReguP). Thu thập Ghi nhận khi lần chạy thanh toán (F110/RPCIPE) tạo đầu ra Loại sự kiện explicit | |||
| Đã thực hiện thanh toán | Hoàn tất quy trình thanh toán, thường được ngân hàng xác nhận hoặc ghi nhận khi lần chạy thanh toán F110 kết thúc. | ||
| Vì sao điều này quan trọng Dấu thời gian kết thúc chính để tính Tỷ lệ tuân thủ SLA. Dùng để xác định nhân viên có được trả lương đúng hạn hay không. Lấy dữ liệu ở đâu Ngày và giờ chạy trong các bảng lần chạy thanh toán (REGUH), hoặc suy ra từ Ngày giá trị. Thu thập Ghi nhận khi trạng thái lần chạy thanh toán được đặt thành Posted/Complete Loại sự kiện explicit | |||
| Đã tính tổng lương | Thực thi thành công phép tính theo lược đồ tổng lương. Trong quy trình chuẩn, sự kiện này xảy ra khi trình điều khiển tiền lương ghi dữ liệu vào cụm PCL2. | ||
| Vì sao điều này quan trọng Đây là mốc quan trọng cho biết dữ liệu chấm công và mức lương đã được kết hợp thành công. Chậm trễ ở bước này ảnh hưởng đến Hiệu quả xử lý từ tổng lương đến thực nhận. Lấy dữ liệu ở đâu Cụm PCL2 (Payroll Results), cụ thể là dấu thời gian trong bảng thư mục (RGDIR) cho 'For-Period'. Thu thập Ghi nhận khi ghi số thứ tự mới vào cụm dữ liệu tiền lương Loại sự kiện explicit | |||
| Đã áp dụng khoản khấu trừ phúc lợi | Bước cụ thể trong lược đồ tính toán xử lý logic phúc lợi. Dù thuộc kỳ chạy chính, tách riêng bước này giúp xác định lỗi cấu hình. | ||
| Vì sao điều này quan trọng Hỗ trợ phân tích độ chính xác của phép tính phúc lợi và thuế. Hữu ích khi tìm lỗi chênh lệch trong logic khấu trừ phức tạp. Lấy dữ liệu ở đâu Suy ra từ sự hiện diện của phần tách V0 trong kết quả tiền lương hoặc các mục nhật ký cụ thể nếu bật ghi nhật ký chi tiết, trường hợp hiếm gặp trong môi trường sản xuất. Thu thập Diễn ra cùng lúc với sự kiện Đã tính tổng lương, nhưng được phân biệt về mặt khái niệm để phục vụ phân tích Loại sự kiện inferred | |||
| Đã công bố phiếu lương | Cung cấp phiếu lương cho nhân viên qua Self-Service (ESS). | ||
| Vì sao điều này quan trọng Đo lường mức độ đáp ứng SLA gửi phiếu lương. Chậm trễ ở bước này làm phát sinh yêu cầu hỗ trợ. Lấy dữ liệu ở đâu Suy ra từ 'Print Date' hoặc ngày khả dụng được cấu hình trong nhật ký dịch vụ mashup Pay Slip. Thu thập Tính dựa trên Ngày trả lương + thời gian trễ theo cấu hình hệ thống Loại sự kiện inferred | |||
| Đã đánh dấu ngoại lệ kiểm toán | Payroll Control Center tạo cảnh báo xác thực thông qua các bước kiểm tra chính sách. Cảnh báo này chỉ ra dữ liệu không nhất quán hoặc rủi ro tuân thủ. | ||
| Vì sao điều này quan trọng Cung cấp dữ liệu trực tiếp cho dashboard Tần suất ngoại lệ kiểm toán và Rủi ro tuân thủ. Số lượng lớn thường cho thấy vấn đề về chất lượng dữ liệu ở các bước trước. Lấy dữ liệu ở đâu Các bảng cảnh báo Payroll Control Center (PYC_D_ALERT), liên kết mã lỗi cụ thể với hồ sơ nhân viên. Thu thập Ghi nhận khi tạo mục mới trong bảng cảnh báo PCC Loại sự kiện explicit | |||
| Đã nhập dữ liệu thưởng | Đưa dữ liệu trả lương không theo chuẩn, chẳng hạn tiền thưởng hoặc hoa hồng, vào hệ thống tiền lương. Thường bao gồm việc tải dữ liệu vào Infotype 0015 hoặc 2010. | ||
| Vì sao điều này quan trọng Nhập dữ liệu muộn khiến việc tính tổng lương không chính xác. Phân tích bước này giúp tối ưu Thời gian tích hợp dữ liệu thưởng. Lấy dữ liệu ở đâu Nhật ký kiểm toán (PCL4 hoặc tương đương) cho biết hồ sơ được tạo trong Infotype 0015 (Additional Payments) hoặc 2010 (Employee Remuneration Info). Thu thập So sánh dấu thời gian tạo Infotype với nhật ký tác vụ nhập dữ liệu Loại sự kiện inferred | |||
| Đã sửa dữ liệu | Thay đổi dữ liệu gốc hoặc dữ liệu chấm công để xử lý ngoại lệ kiểm toán. Đây là công việc làm lại cần thiết để xóa cảnh báo tiền lương. | ||
| Vì sao điều này quan trọng Theo dõi tỷ lệ sửa đổi thủ công và làm lại. Đây là hoạt động chính gây giảm hiệu quả quy trình. Lấy dữ liệu ở đâu Suy ra bằng cách nối dấu thời gian cảnh báo PCC với các thay đổi tiếp theo trong Nhật ký kiểm toán (PCL4) của cùng nhân viên, trước khi đóng cảnh báo. Thu thập Xác định các cập nhật dữ liệu gốc diễn ra khi cảnh báo PCC đang mở Loại sự kiện inferred | |||
Hướng dẫn trích xuất
Các bước
- Xác định khu vực bảng lương và thông số kỳ cần trích xuất. Dữ liệu chủ yếu lấy từ các bảng Payroll Control Center (PYC_*) và thư mục cụm bảng lương (HRPY_RGDIR).
- Mở SQL client hoặc SAP HANA Studio đã kết nối với schema backend SAP SuccessFactors Employee Central Payroll (ECP).
- Chạy tập lệnh trích xuất dữ liệu trong phần Query. Tập lệnh này tổng hợp dữ liệu từ các bảng dữ liệu chủ, kết quả tính lương và nhật ký kiểm toán PCC.
- Ánh xạ các hoạt động 'Đã gửi bảng chấm công' và 'Đã phê duyệt bảng chấm công'. Vì ECP thường nhận dữ liệu này từ Employee Central, hãy dùng dấu thời gian tạo và sửa đổi gần nhất trong bảng PA2001 hoặc các bảng giao diện thời gian chuyên biệt như PTREQ_HEADER nếu có.
- Trích xuất 'Đã nhập dữ liệu thưởng' bằng cách truy vấn Infotype 0015 (Khoản thanh toán bổ sung) và 2010 (Thông tin thù lao nhân viên) để lấy các bản ghi được tạo trong kỳ trả lương cần phân tích.
- Lấy các bước quy trình PCC từ bảng PYC_D_PYP (Phiên bản quy trình) và PYC_D_BINST (Phiên bản bước) để ghi nhận 'Đã khởi tạo quy trình tính lương', 'Đã chạy mô phỏng tính lương', 'Đã phê duyệt bản ghi tính lương' và 'Đã phát hành phiếu lương'.
- Truy vấn bảng PYC_D_ALERT để tìm các sự kiện 'Đã ghi nhận ngoại lệ kiểm toán'. Những bản ghi này liên kết nhân viên cụ thể với lỗi xác thực phát hiện trong các bước kiểm tra PCC.
- Tạo sự kiện 'Đã sửa dữ liệu' bằng cách kết hợp bảng tiêu đề tài liệu thay đổi SAP (CDHDR) với các Infotype liên quan đến bảng lương (ví dụ: 0008, 0015, 2001) trong khoảng thời gian tính lương đang áp dụng.
- Dùng bảng HRPY_RGDIR để xác định chính xác thời điểm 'Đã tính tổng lương trước khấu trừ'. Tạo sự kiện 'Đã áp dụng khoản khấu trừ phúc lợi' với cùng dấu thời gian, vì hai việc này diễn ra đồng thời trong lần chạy schema.
- Liên kết dữ liệu tài chính từ các bảng REGUH (Dữ liệu thanh toán) và REGUT (Quản trị DME) để ghi nhận 'Đã tạo tệp chuyển khoản ngân hàng' và 'Đã thực hiện thanh toán'.
- Chuyển đổi cột 'PayrollRecord' theo đúng định dạng [EmployeeID]-[Period]-[Year] để đảm bảo mã trường hợp là duy nhất.
- Xuất tập dữ liệu cuối cùng thành tệp CSV. Đảm bảo tiêu đề cột khớp với các thuộc tính đã định nghĩa trong hợp đồng, sau đó tải tệp lên ProcessMind.
Cấu hình
- Khoảng thời gian: Cấu hình trích xuất để bao gồm 6 đến 12 tháng gần nhất. Quy trình tính lương diễn ra theo chu kỳ, và khoảng thời gian này giúp ghi nhận đủ biến động giữa các lần chạy định kỳ và ngoài chu kỳ.
- Khu vực bảng lương (ABKRS): Lọc theo từng khu vực bảng lương (ví dụ: US Monthly, DE Weekly) để so sánh các chu kỳ tương đồng.
- Ngôn ngữ: Trích xuất mô tả Hoạt động và Bước quy trình bằng ngôn ngữ chính của hệ thống (ví dụ: SPRAS = 'E').
- Mã quy trình PCC: Xác định các mã định nghĩa quy trình (PYP_ID) được dùng trong cấu hình PCC cho 'Giám sát', 'Sản xuất' và 'Ngoài chu kỳ' để lọc các bước liên quan.
- Tiền tệ: Nếu trích xuất dữ liệu vận hành tính lương toàn cầu, hãy quy đổi các khoản tiền (GrossPayAmount) về một loại tiền tệ thống nhất.
- Quyền truy cập: Người dùng cơ sở dữ liệu cần có quyền đọc các bảng Nhân sự (PA/PY), đặc biệt là thư mục cụm (HRPY_RGDIR) và các bảng PCC (PYC_*).
Truy vấn mẫu sql
/* Activity 1: Time Sheet Submitted */
SELECT
CONCAT(T.PERNR, CONCAT('-', T.PABRJ, T.PABRP)) AS PayrollRecord,
'Time Sheet Submitted' AS Activity,
T.BEGDA AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
T.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
T.PABRP AS PayPeriod,
CASE WHEN T.PABRP LIKE '9%' THEN 'Off-Cycle' ELSE 'Regular' END AS PayCycleFrequency,
0.00 AS GrossPayAmount,
T.UNAME AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM PA2001 AS T
LEFT JOIN PA0001 AS O ON T.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE T.AEDTM BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 2: Time Sheet Approved */
SELECT
CONCAT(T.PERNR, CONCAT('-', T.PABRJ, T.PABRP)) AS PayrollRecord,
'Time Sheet Approved' AS Activity,
T.AEDTM AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
T.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
T.PABRP AS PayPeriod,
CASE WHEN T.PABRP LIKE '9%' THEN 'Off-Cycle' ELSE 'Regular' END AS PayCycleFrequency,
0.00 AS GrossPayAmount,
T.UNAME AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'False' AS IsAutomated
FROM PA2001 AS T
LEFT JOIN PA0001 AS O ON T.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE T.AEDTM BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 3: Incentive Data Imported */
SELECT
CONCAT(I.PERNR, CONCAT('-', I.PABRJ, I.PABRP)) AS PayrollRecord,
'Incentive Data Imported' AS Activity,
I.AEDTM AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
I.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
I.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
I.BETRG AS GrossPayAmount,
I.UNAME AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM PA0015 AS I
LEFT JOIN PA0001 AS O ON I.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE I.AEDTM BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 4: Payroll Process Initialized */
SELECT
CONCAT('N/A', CONCAT('-', P.PABRJ, P.PABRP)) AS PayrollRecord,
'Payroll Process Initialized' AS Activity,
P.CREATED_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
'ALL' AS PayrollArea,
NULL AS EmployeeType,
P.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
P.CREATED_BY AS PayrollSpecialist,
NULL AS CostCenter,
'False' AS IsAutomated
FROM PYC_D_PYP AS P
WHERE P.CREATED_TS BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 5: Payroll Simulation Executed */
SELECT
CONCAT('N/A', CONCAT('-', S.PABRJ, S.PABRP)) AS PayrollRecord,
'Payroll Simulation Executed' AS Activity,
S.END_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
'ALL' AS PayrollArea,
NULL AS EmployeeType,
S.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
S.EXEC_USER AS PayrollSpecialist,
NULL AS CostCenter,
'True' AS IsAutomated
FROM PYC_D_BINST AS S
JOIN PYC_D_STEP AS D ON S.STEP_ID = D.ID
WHERE D.NAME LIKE '%Simulate%' AND S.END_TS BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 6: Audit Exception Flagged */
SELECT
CONCAT(A.RO_ID, CONCAT('-', P.PABRJ, P.PABRP)) AS PayrollRecord,
'Audit Exception Flagged' AS Activity,
A.CREATED_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
P.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
P.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
'SYSTEM' AS PayrollSpecialist,
NULL AS CostCenter,
'True' AS IsAutomated
FROM PYC_D_ALERT AS A
JOIN PYC_D_PYP AS P ON A.PYP_ID = P.ID
WHERE A.CREATED_TS BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 7: Data Correction Performed */
SELECT
CONCAT(C.OBJECTID, CONCAT('-', P.PABRJ, P.PABRP)) AS PayrollRecord,
'Data Correction Performed' AS Activity,
TO_TIMESTAMP(CONCAT(C.UDATE, C.UTIME)) AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
P.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
P.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
C.USERNAME AS PayrollSpecialist,
NULL AS CostCenter,
'False' AS IsAutomated
FROM CDHDR AS C
JOIN HRPY_RGDIR AS P ON C.OBJECTID = P.PERNR
WHERE C.TCODE IN ('PA30', 'PA40') AND C.UDATE BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 8: Gross Pay Calculated */
SELECT
CONCAT(R.PERNR, CONCAT('-', R.PABRJ, R.PABRP)) AS PayrollRecord,
'Gross Pay Calculated' AS Activity,
TO_TIMESTAMP(CONCAT(R.RUNDT, R.RUNTM)) AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
R.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
R.PABRP AS PayPeriod,
CASE WHEN R.PABRP LIKE '9%' THEN 'Off-Cycle' ELSE 'Regular' END AS PayCycleFrequency,
0.00 AS GrossPayAmount,
R.UNAME AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM HRPY_RGDIR AS R
LEFT JOIN PA0001 AS O ON R.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE R.RUNDT BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 9: Benefit Deductions Applied */
SELECT
CONCAT(R.PERNR, CONCAT('-', R.PABRJ, R.PABRP)) AS PayrollRecord,
'Benefit Deductions Applied' AS Activity,
ADD_SECONDS(TO_TIMESTAMP(CONCAT(R.RUNDT, R.RUNTM)), 1) AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
R.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
R.PABRP AS PayPeriod,
CASE WHEN R.PABRP LIKE '9%' THEN 'Off-Cycle' ELSE 'Regular' END AS PayCycleFrequency,
0.00 AS GrossPayAmount,
R.UNAME AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM HRPY_RGDIR AS R
LEFT JOIN PA0001 AS O ON R.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE R.RUNDT BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 10: Payroll Record Approved */
SELECT
CONCAT('N/A', CONCAT('-', S.PABRJ, S.PABRP)) AS PayrollRecord,
'Payroll Record Approved' AS Activity,
S.END_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
'ALL' AS PayrollArea,
NULL AS EmployeeType,
S.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
S.EXEC_USER AS PayrollSpecialist,
NULL AS CostCenter,
'False' AS IsAutomated
FROM PYC_D_BINST AS S
JOIN PYC_D_STEP AS D ON S.STEP_ID = D.ID
WHERE D.NAME LIKE '%Check%' AND S.STATUS = 'OK' AND S.END_TS BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 11: Bank Transfer File Generated */
SELECT
CONCAT(P.PERNR, CONCAT('-', P.PABRJ, P.PABRP)) AS PayrollRecord,
'Bank Transfer File Generated' AS Activity,
TO_TIMESTAMP(CONCAT(T.TSDAT, T.TSTIM)) AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
P.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
P.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
T.USRID AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM REGUT AS T
JOIN REGUH AS H ON T.LAUFD = H.LAUFD AND T.LAUFI = H.LAUFI
JOIN HRPY_RGDIR AS P ON H.PERNR = P.PERNR
LEFT JOIN PA0001 AS O ON P.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE T.TSDAT BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 12: Payment Executed */
SELECT
CONCAT(P.PERNR, CONCAT('-', P.PABRJ, P.PABRP)) AS PayrollRecord,
'Payment Executed' AS Activity,
TO_TIMESTAMP(CONCAT(H.LAUFD, '120000')) AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
P.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
P.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
H.RBETR AS GrossPayAmount,
H.ZNME1 AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM REGUH AS H
JOIN HRPY_RGDIR AS P ON H.PERNR = P.PERNR
LEFT JOIN PA0001 AS O ON P.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE H.LAUFD BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 13: Pay Slip Published */
SELECT
CONCAT('N/A', CONCAT('-', S.PABRJ, S.PABRP)) AS PayrollRecord,
'Pay Slip Published' AS Activity,
S.END_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
'ALL' AS PayrollArea,
NULL AS EmployeeType,
S.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
S.EXEC_USER AS PayrollSpecialist,
NULL AS CostCenter,
'True' AS IsAutomated
FROM PYC_D_BINST AS S
JOIN PYC_D_STEP AS D ON S.STEP_ID = D.ID
WHERE D.NAME LIKE '%Remuneration%' AND S.END_TS BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 14: Tax Filing Completed */
SELECT
CONCAT('N/A', CONCAT('-', S.PABRJ, S.PABRP)) AS PayrollRecord,
'Tax Filing Completed' AS Activity,
S.END_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
'ALL' AS PayrollArea,
NULL AS EmployeeType,
S.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
S.EXEC_USER AS PayrollSpecialist,
NULL AS CostCenter,
'True' AS IsAutomated
FROM PYC_D_BINST AS S
JOIN PYC_D_STEP AS D ON S.STEP_ID = D.ID
WHERE D.NAME LIKE '%Tax%' AND S.END_TS BETWEEN '[START_DATE]' AND '[END_DATE]' Các bước
- Mở ABAP Editor: Đăng nhập vào hệ thống SAP SuccessFactors Employee Central Payroll (ECP) qua SAP GUI. Chuyển đến mã giao dịch SE38 (ABAP Editor).
- Tạo chương trình: Nhập tên cho chương trình mới, chẳng hạn
Z_PROCESSMINING_PAYROLL_EXT, rồi nhấp Tạo. Chọn Executable program làm loại chương trình và nhấp Lưu dưới dạng Local Object (Package $TMP) để thử nghiệm. - Thêm mã: Sao chép toàn bộ mã ABAP trong phần Query bên dưới rồi dán vào trình chỉnh sửa, thay thế mọi mã mặc định hiện có.
- Kiểm tra và kích hoạt: Nhấp nút Kiểm tra (Ctrl+F2) để xác thực cú pháp. Khi không còn lỗi, nhấp Kích hoạt (Ctrl+F3).
- Chạy trích xuất: Nhấn Direct Processing (F8) để chạy báo cáo.
- Cấu hình lựa chọn: Trên màn hình lựa chọn, nhập
Payroll Area(ví dụ: US, 99), mộtDate Rangehợp lệ (ví dụ: 3 tháng gần nhất) và có thể lọc theo cácPersonnel Numbers(PERNR) cụ thể để thử nghiệm. - Chạy trích xuất: Chạy báo cáo. Hệ thống sẽ xử lý các bảng HRPY_RGDIR, CATSDB, PA0015 và REGUH để tạo nhật ký sự kiện.
- Xem kết quả: Báo cáo dùng
cl_demo_outputđể hiển thị kết quả dạng lưới ngay trên màn hình, giúp bạn kiểm tra nhanh. - Xuất dữ liệu: Nhấp chuột phải vào lưới kết quả, chọn Spreadsheet rồi lưu tệp ở định dạng CSV hoặc Excel.
- Định dạng cho ProcessMind: Mở tệp đã xuất. Đảm bảo cột
EventTimestampcó định dạngYYYY-MM-DD HH:MM:SS. Kiểm tra để cộtPayrollRecordxác định duy nhất từng hồ sơ lương, thường là PERNR-SEQNR. - Tải lên: Nhập tệp CSV đã làm sạch vào ProcessMind, rồi ánh xạ các cột tương ứng với Mã trường hợp, Hoạt động, Dấu thời gian và Thuộc tính.
Cấu hình
- Khoảng ngày: Nên trích xuất dữ liệu theo từng đợt 3 đến 6 tháng để tránh hết thời gian chờ bộ nhớ trong môi trường chạy ABAP.
- Khu vực bảng lương: Đây là bộ lọc quan trọng (Bảng T549A). Luôn trích xuất từng khu vực bảng lương một (ví dụ: hàng tháng và hai tuần một lần) để đảm bảo các quy trình nhất quán.
- Bảng cấu hình: Tập lệnh dùng
HRPY_RGDIR(Thư mục bảng lương) làm nguồn dữ liệu chính. Đảm bảo người dùng có quyềnS_TABU_DISđối với bảng này. - Nguồn dữ liệu thời gian: Tập lệnh giả định dữ liệu bảng chấm công nằm trong
CATSDB. Nếu bạn dùng hệ thống chấm công bên thứ ba kết nối trực tiếp vớiIT2001hoặcIT2010mà không qua CATS, các hoạt động bảng chấm công có thể không trả về dữ liệu và cần điều chỉnh tập lệnh. - Dữ liệu thanh toán: Tập lệnh liên kết các lần chạy bảng lương với các lần chạy thanh toán qua
REGUH(Dữ liệu thanh toán). Đảm bảo đã chạy thanh toánF110cho kỳ được chọn để xem các sự kiện thanh toán. - Hiệu suất: Với hệ thống có khối lượng lớn (trên 100.000 nhân viên), hãy thay logic
SELECT *bằng cách lấy dữ liệu qua cursor hoặc chạy ở chế độ nền (F9).
Truy vấn mẫu abap
REPORT Z_PROCESSMINING_PAYROLL_EXT.
TABLES: pernr, hrpy_rgdir, catsdb, pa0015, reguh.
TYPES: BEGIN OF ty_event_log,
payroll_record TYPE string,
activity TYPE string,
event_timestamp TYPE string,
source_system TYPE string,
last_data_update TYPE string,
payroll_area TYPE abkrs,
employee_type TYPE persg,
pay_period TYPE pabrj,
pay_cycle_freq TYPE string,
gross_pay_amount TYPE string,
payroll_specialist TYPE usnam,
cost_center TYPE kostl,
is_automated TYPE string,
END OF ty_event_log.
DATA: gt_output TYPE TABLE OF ty_event_log,
gs_output TYPE ty_event_log,
gt_rgdir TYPE TABLE OF hrpy_rgdir,
gs_rgdir TYPE hrpy_rgdir,
gt_cats TYPE TABLE OF catsdb,
gs_cats TYPE catsdb,
gt_p0015 TYPE TABLE OF pa0015,
gs_p0015 TYPE pa0015,
gt_reguh TYPE TABLE OF reguh,
gs_reguh TYPE reguh,
gv_tstamp TYPE timestamp,
gv_date TYPE d,
gv_time TYPE t,
gv_pernr TYPE pernr_d.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_pernr FOR pernr-pernr,
s_date FOR sy-datum OBLIGATORY.
PARAMETERS: p_abkrs TYPE abkrs OBLIGATORY DEFAULT '99'.
SELECTION-SCREEN END OF BLOCK b1.
START-OF-SELECTION.
" 1. Fetch Payroll Directory (The Core Process Driver)
SELECT * FROM hrpy_rgdir INTO TABLE gt_rgdir
WHERE pernr IN s_pernr
AND fpper LIKE '%'
AND cdate IN s_date.
IF gt_rgdir IS INITIAL.
WRITE: / 'No payroll results found for selection.'.
EXIT.
ENDIF.
SORT gt_rgdir BY pernr seqnr.
" Loop through Payroll Directory to build events
LOOP AT gt_rgdir INTO gs_rgdir.
CLEAR gs_output.
CONCATENATE gs_rgdir-pernr '-' gs_rgdir-seqnr INTO gs_output-payroll_record.
gs_output-source_system = 'SAP_ECP'.
gs_output-last_data_update = sy-datum.
gs_output-payroll_area = p_abkrs.
gs_output-pay_period = gs_rgdir-fpper.
gs_output-payroll_specialist = gs_rgdir-uname.
" --- Activity: Payroll Process Initialized ---
" Derived from the run date start
gs_output-activity = 'Payroll Process Initialized'.
CONCATENATE gs_rgdir-cdate gs_rgdir-ctime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Payroll Simulation Executed ---
IF gs_rgdir-srtza = 'S'. " S = Simulation
gs_output-activity = 'Payroll Simulation Executed'.
CONCATENATE gs_rgdir-cdate gs_rgdir-ctime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
ENDIF.
" --- Activity: Audit Exception Flagged ---
IF gs_rgdir-void IS NOT INITIAL. " Void indicator means rejected/exception
gs_output-activity = 'Audit Exception Flagged'.
CONCATENATE gs_rgdir-cdate gs_rgdir-ctime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Data Correction Performed ---
" Inferred: If voided, a correction usually follows immediately
gs_output-activity = 'Data Correction Performed'.
" Add 1 hour to simulate reaction time
DATA: lv_corr_time TYPE t.
lv_corr_time = gs_rgdir-ctime + 3600.
CONCATENATE gs_rgdir-cdate lv_corr_time INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'FALSE'.
APPEND gs_output TO gt_output.
ENDIF.
" --- Activity: Gross Pay Calculated ---
IF gs_rgdir-srtza = 'A'. " A = Actual Result
gs_output-activity = 'Gross Pay Calculated'.
CONCATENATE gs_rgdir-cdate gs_rgdir-ctime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-gross_pay_amount = '1000.00'. " Placeholder: Cluster read required for actual amount
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Benefit Deductions Applied ---
" Logically occurs immediately after gross calc
gs_output-activity = 'Benefit Deductions Applied'.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Payroll Record Approved ---
" Inferred from successful write of 'A' record
gs_output-activity = 'Payroll Record Approved'.
DATA: lv_appr_time TYPE t.
lv_appr_time = gs_rgdir-ctime + 60. " +1 minute
CONCATENATE gs_rgdir-cdate lv_appr_time INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'FALSE'.
APPEND gs_output TO gt_output.
" --- Activity: Pay Slip Published ---
" Available via ESS usually next day
gs_output-activity = 'Pay Slip Published'.
DATA: lv_slip_date TYPE d.
lv_slip_date = gs_rgdir-cdate + 1.
CONCATENATE lv_slip_date '080000' INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Tax Filing Completed ---
" End of period logic
gs_output-activity = 'Tax Filing Completed'.
DATA: lv_tax_date TYPE d.
lv_tax_date = gs_rgdir-paydt.
CONCATENATE lv_tax_date '235959' INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
ENDIF.
ENDLOOP.
" 2. Fetch Time Sheet Data (CATSDB)
" Linking to Payroll Record loosely via Period/Date
SELECT * FROM catsdb INTO TABLE gt_cats
WHERE pernr IN s_pernr
AND workdate IN s_date.
LOOP AT gt_cats INTO gs_cats.
CLEAR gs_output.
CONCATENATE gs_cats-pernr '-00000' INTO gs_output-payroll_record. " Generic mapping
gs_output-payroll_area = p_abkrs.
gs_output-source_system = 'SAP_ECP'.
" --- Activity: Time Sheet Submitted ---
IF gs_cats-status = '20' OR gs_cats-status = '30'.
gs_output-activity = 'Time Sheet Submitted'.
CONCATENATE gs_cats-laudate gs_cats-lautime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'FALSE'.
APPEND gs_output TO gt_output.
ENDIF.
" --- Activity: Time Sheet Approved ---
IF gs_cats-status = '30'. " 30 = Approved
gs_output-activity = 'Time Sheet Approved'.
CONCATENATE gs_cats-apdat gs_cats-aptime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'FALSE'.
APPEND gs_output TO gt_output.
ENDIF.
ENDLOOP.
" 3. Fetch Incentive Data (Infotype 0015)
SELECT * FROM pa0015 INTO TABLE gt_p0015
WHERE pernr IN s_pernr
AND begda IN s_date.
LOOP AT gt_p0015 INTO gs_p0015.
CLEAR gs_output.
CONCATENATE gs_p0015-pernr '-00000' INTO gs_output-payroll_record.
gs_output-source_system = 'SAP_ECP'.
gs_output-payroll_area = p_abkrs.
" --- Activity: Incentive Data Imported ---
gs_output-activity = 'Incentive Data Imported'.
CONCATENATE gs_p0015-aedtm '120000' INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'FALSE'.
APPEND gs_output TO gt_output.
ENDLOOP.
" 4. Fetch Payment Data (REGUH)
SELECT * FROM reguh INTO TABLE gt_reguh
WHERE zaldt IN s_date.
LOOP AT gt_reguh INTO gs_reguh.
" Filter for our PERNRs roughly (REGUH does not always have PERNR directly indexable easily in all views)
" For simulation, we map broadly or require join logic. Here assuming simple extraction.
CLEAR gs_output.
CONCATENATE gs_reguh-pernr '-99999' INTO gs_output-payroll_record.
gs_output-source_system = 'SAP_ECP'.
gs_output-payroll_area = p_abkrs.
" --- Activity: Bank Transfer File Generated ---
gs_output-activity = 'Bank Transfer File Generated'.
CONCATENATE gs_reguh-laufd gs_reguh-cpzut INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Payment Executed ---
gs_output-activity = 'Payment Executed'.
CONCATENATE gs_reguh-zaldt '100000' INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
ENDLOOP.
" Output Display
cl_demo_output=>display( gt_output ). Bắt đầu ngay?
Dùng mẫu này để trích xuất dữ liệu và bắt đầu cải thiện quy trình tính lương. Cách làm có cấu trúc giúp bạn nhanh chóng chuyển dữ liệu thô thành thông tin hữu ích.
Cải thiện hiệu suất xử lý bảng lương ngay hôm nay
Tham gia cùng các công ty đang rút ngắn 30% thời gian chu kỳ tính lương.
Không cần thẻ tín dụng. Thiết lập chỉ trong vài phút.