Báo cáo Tìm hiểu và triển khai hệ thống quản trị nhân sự dựa trên nền tảng OFBiz

Tài liệu Báo cáo Tìm hiểu và triển khai hệ thống quản trị nhân sự dựa trên nền tảng OFBiz: TRƯỜNG …………………. KHOA………………………. -----[\ [\----- Báo cáo tốt nghiệp Đề tài: Tìm hiểu và triển khai hệ thống quản trị nhân sự dựa trên nền tảng OFBiz 1 Lời cảm ơn Lời đầu tiên, tôi xin được bày tỏ lòng biết ơn sâu sắc nhất tới thầy giáo - Tiến sĩ Nguyễn Hà Nam và Thạc sĩ Dương Văn Phúc đã tận tình hướng dẫn, đôn đốc tôi trong suốt quá trình làm khóa luận tốt nghiệp. Tôi xin được chân thành cảm ơn các thầy, cô và các cán bộ của trường Đại Học Công Nghệ đã tạo cho tôi những điều kiện thuận lợi để học tập và nghiên cứu. Tôi cũng xin gửi lời cảm ơn tới các bạn trong tập thể lớp K51CB và K51CHTTT đã ủng hộ và khuyến khích tôi trong suốt quá trình học tập tại trường. Cuối cùng, tôi muốn được gửi lời cảm ơn vô hạn tới gia đình và bạn bè, những người thân yêu luôn bên cạnh và động viên tôi trong suốt quá trình thực hiện khóa luận tốt nghiệp. Tôi xin chân thành cảm ơn! Sinh viên Trần Duy Khánh 2 Tóm tắt nội dung Chương 1: Tổng quan về quản trị nhân...

pdf59 trang | Chia sẻ: haohao | Lượt xem: 1402 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Báo cáo Tìm hiểu và triển khai hệ thống quản trị nhân sự dựa trên nền tảng OFBiz, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
TRƯỜNG …………………. KHOA………………………. -----[\ [\----- Báo cáo tốt nghiệp Đề tài: Tìm hiểu và triển khai hệ thống quản trị nhân sự dựa trên nền tảng OFBiz 1 Lời cảm ơn Lời đầu tiên, tôi xin được bày tỏ lòng biết ơn sâu sắc nhất tới thầy giáo - Tiến sĩ Nguyễn Hà Nam và Thạc sĩ Dương Văn Phúc đã tận tình hướng dẫn, đôn đốc tôi trong suốt quá trình làm khóa luận tốt nghiệp. Tôi xin được chân thành cảm ơn các thầy, cô và các cán bộ của trường Đại Học Công Nghệ đã tạo cho tôi những điều kiện thuận lợi để học tập và nghiên cứu. Tôi cũng xin gửi lời cảm ơn tới các bạn trong tập thể lớp K51CB và K51CHTTT đã ủng hộ và khuyến khích tôi trong suốt quá trình học tập tại trường. Cuối cùng, tôi muốn được gửi lời cảm ơn vô hạn tới gia đình và bạn bè, những người thân yêu luôn bên cạnh và động viên tôi trong suốt quá trình thực hiện khóa luận tốt nghiệp. Tôi xin chân thành cảm ơn! Sinh viên Trần Duy Khánh 2 Tóm tắt nội dung Chương 1: Tổng quan về quản trị nhân sự Giới thiệu tổng quan về hệ quản trị doanh nghiệp (ERP) và hệ quản trị nhân sự (1 phần của hệ quản trị doanh nghiệp) và vai trò của hệ quản trị nhân sự trong doanh nghiệp hiện nay. Chương 2: Phân tích một số hệ HR đã có ở Việt Nam Giới thiệu một số hệ thống quản trị nhân sự được phát triển và sử dụng tại Việt Nam hiện nay, đồng thời nêu nhân xét đánh giá về ưu điểm nhược điểm của các hệ quản trị nhân sự trong nước, từ đó rút ra kết luận lợi ích khi sử dụng hệ quản trị nhân sự của OFBiz. Chương 3 : Hệ mã mở OFBiz Giới thiệu tổng quan về hệ mã mở OFBiz, kiến trúc 3 tầng của ứng dụng. Mô hình làm việc, workflow của hệ quản trị nhân sự trong OFBiz, đồng thời giới thiệu cách thức quản lý từng chức năng trong hệ quản trị nhân sự. Chương 4 : Triển khai và thử nghiệm Giới thiệu từng thành phần trong hệ thông OFBiz(vị trí, chứ năng từng thành phần), từng thành phần trong HR(vị trí, chức năng từng thành phần) Các bước triển khai : Việt hóa hệ quản trị nhân sự OFBiz, các bước thêm một module mới Thử nghiệm các ứng dụng và cách thức quản lý trên nền tảng OFBiz. Kết quả đánh giá hệ quản trị nhân sự OFBiz. 3 Mục lục Lời cảm ơn .................................................................................................................................. 1 Tóm tắt nội dung ........................................................................................................................ 2 Tóm tắt nội dung ........................................................................................................................ 2 Chương 1: Tổng quan về quản trị nhân sự ................................................................................. 6 1.1. Tổng quan hoạch định khai thác nguồn tài nguyên doanh nghiệp ............................... 6 1.1.1. Khái niệm Enterprise resource planning (ERP) ................................................... 6 1.1.2. ERP cải thiện tốt hoạt động kinh doanh của công ty ............................................ 6 1.1.3. Lợi ích khi sử dụng ERP ...................................................................................... 7 1.1.3.1. Tích hợp thông tin tài chính ........................................................................ 7 1.1.3.2 Tích hợp thông tin đặt hàng của khách hàng ................................................ 7 1.1.3.3. Tiêu chuẩn hoá và tăng hiệu suất sản xuất .................................................. 8 1.1.3.4. Giảm hàng hoá tồn kho ................................................................................ 8 1.1.3.5. Tiêu chuẩn hoá thông tin nhân sự ................................................................ 8 1.1.4. Lý do ERP thường thất bại ................................................................................... 8 1.2. Quản trị nhân sự là gì ? ............................................................................................... 9 1.3. Vai trò của quản trị nhân sự ....................................................................................... 11 1.3.1. Quản lý chính sách và đề ra chính sách liên quan đến tài nguyên nhân sự doanh nghiệp. 11 1.3.2. Tư vấn cho các bộ phận nhân sự trong doanh nghiệp ........................................ 11 1.3.3. Cung cấp các dịch vụ .......................................................................................... 11 1.3.4. Kiểm tra nhân viên ............................................................................................. 12 1.4. Hệ quản trị nhân sự là gì và lợi ích của hệ quản trị nhân sự. .................................... 12 1.4.1. Hệ quản trị nhân sự là gì ..................................................................................... 12 1.4.2. Lợi ích của hệ quản trị nhân sự .......................................................................... 13 Chương 2: Phân tích một số hệ HR ở Việt Nam ..................................................................... 15 2.1. Giới thiệu về phần mềm HRM tại Việt Nam ............................................................. 15 2.1.1. SaiGon Software Park – HRM ........................................................................... 15 2.1.2. Fast - HRM ......................................................................................................... 15 2.1.3. MISA - HRM ...................................................................................................... 16 2.1.4. 3S – HRM ........................................................................................................... 17 2.2. Ưu điểm của phần mềm HRM Việt Nam .................................................................. 17 2.3. Nhược điểm của phần mềm HRM Việt Nam ............................................................ 17 2.4. Lợi ích khi dùng hệ quản trị nhân sự của Ofbiz......................................................... 17 Chương 3 : Hệ mã mở OFbiz .................................................................................................. 19 3.1. Giới thiệu hệ mã mở OFbiz ....................................................................................... 19 3.2. Kiến trúc 3 tầng và cách thức phát triển ứng dụng với Ofbiz .................................... 21 3.2.1. Kiến trúc 3 tầng của Ofbiz .................................................................................. 21 3.2.2. Phát triển ứng dụng với OfBiz – Overview ........................................................... 22 3.3. Phân hệ HR sẵn có của Ofbiz .................................................................................... 25 3.4. Phân tích cụ thể các chức năng hiện có trong HRM 3.4.1. Employees – Quản lý nhân viên ......................................................................... 28 3.4.2. Employments – Quản lý thời gian làm việc của nhân viên ................................ 28 3.4.3. Employee Position – Chức vụ nhân viên trong công ty ..................................... 29 3.4.4. Performance Review – Kết quả làm việc ........................................................... 31 3.4.5. Skill – Kỹ năng làm việc .................................................................................... 31 3.4.6. Qualification – Trình độ chuyên môn ................................................................ 32 3.4.7. Training – Quá trình đào tạo............................................................................... 33 4 3.4.8. Employment Application – Quản lý tuyển dụng ................................................ 34 3.4.9. Resume – Tiếp tục công việc .............................................................................. 34 3.4.10. Leave – Quản lý thời gian nghỉ việc ................................................................... 35 3.4.11. Global HR Settings – Cài đặt HR ....................................................................... 36 Chương 4 : Triển khai và thử nghiệm ...................................................................................... 37 4.1. Tìm hiểu các thành phần và chạy các ứng dụng sẵn có trên OFBiz .......................... 37 4.1.1. Các thành phần chính của OFBiz ....................................................................... 37 4.1.2. Các thành phần trong Humanres ........................................................................ 38 4.1.3. Chạy các ứng dụng trên OFBiz .......................................................................... 40 4.2. Các bước triển khai .................................................................................................... 41 4.2.1. Việt hóa Humanres ............................................................................................. 41 4.2.2. Thêm module mới .............................................................................................. 43 4.2.2.1. Xác định mô hình dữ liệu ............................................................................ 44 4.2.2.2. Tạo dữ liệu gốc ............................................................................................ 47 4.2.2.3. Tạo Business Logic ..................................................................................... 50 4.2.2.4. Tạo Web Application .................................................................................. 52 4.2.2.5. Duy trì ứng dụng ......................................................................................... 53 4.3. Thử nghiệm ................................................................................................................ 54 4.4. Kết luận ...................................................................................................................... 57 5 Danh mục các từ viết tắt Kí hiệu Diễn giải HRM Customer Relationship Management - Quản Lý Quan Hệ Khách Hàng CSDL Cơ sở dữ liệu ERP Enterprise Resource Planning 6 Chương 1: Tổng quan về quản trị nhân sự 1.1. Tổng quan hoạch định khai thác nguồn tài nguyên doanh nghiệp 1.1.1. Khái niệm Enterprise resource planning (ERP) Hoạch định khai thác nguồn tài nguyên doanh nghiệp bao gồm các khái niệm và phương pháp kỹ thuật để tích hợp toàn bộ hệ thống quản lý kinh doanh từ việc xem xét, quản lý hiệu quả nguồn tài nguyên đến việc cải tiến hiệu quả hoạt động của doanh nghiệp. Hệ thống ERP được tích hợp (bao gồm tất cả các chức năng kinh doanh) trong phần mềm trọn gói hỗ trợ cho các khái niệm ERP nói trên. Khởi đầu thì ERP nhắm tới ngành sản xuất, chủ yếu bao gồm các chức năng hoạch định và quản lý việc kinh doanh nòng cốt như quản lý bán hàng, quản lý sản xuất, kế toán, tài chính,… Tuy nhiên, những năm trở lại đây, sự thích nghi đó không chỉ dành cho ngành sản xuất mà còn cho các ngành nghề kinh doanh khác nhau và mở rộng triển khai và sử dụng ERP tiếp tục phát triển trên phạm vi toàn cầu. Phần mềm ERP thiết kế theo mô hình và tự động hoá các qui trình cơ bản của công ty, từ tài chính đến sản xuất với mục tiêu tích hợp thông tin của tất cả các phòng ban trong công ty và loại bỏ các đường truyền kết nối phức tạp, “đắt đỏ” giữa các hệ thống máy tính riêng lẻ không “khớp” với nhau. 1.1.2. ERP cải thiện tốt hoạt động kinh doanh của công ty ERP thường được xem như phần mềm hỗ trợ vô hình. Ví dụ như qui trình đặt hàng, ERP nhận đơn hàng từ khách hàng, sau đó cung cấp bản đồ chỉ dẫn đường đi của phần mềm để tự động hoá các bước đi khác nhau cho đến khi kết thúc quy trình. Khi nhân viên phòng giao dịch nhập đơn hàng vào hệ thống ERP, khách hàng sẽ có đầy đủ thông tin cần thiết để hoàn thành đơn hàng (sự xem xét hạn mức tín dụng của khách hàng, nguồn gốc đơn hàng từ phân hệ Tài chính, lượng hàng tồn kho của công ty từ phân hệ Kho và lịch trình giao hàng từ phân hệ Cung ứng) Tất cả các nhân viên ở phòng ban khác nhau đều có thể xem chung thông tin và cập nhật chúng. Khi một bộ phận nào đó thực hiện xong đơn hàng thì thông tin đó sẽ tự động nối kết qua ERP rồi truyền tải đến bộ phận khác. Nếu bạn muốn kiểm tra xem thực hiện đơn hàng đến đâu rồi, bạn chỉ cần kết nối vào hệ thống ERP và theo dõi chúng. Với ERP, quá trình đơn hàng di chuyển như tia sét xuyên suốt hệ thống, khách hàng nhận hàng nhanh hơn và ít xảy ra sai sót hơn trước kia. 7 Chúng ta hãy quay lại vấn đề trên một chút. Quá trình hiện tại đó có thể không hiệu quả cao nhưng lại khá đơn giản. Tài chính làm công việc của Tài chính, Kho thì làm nhiệm vụ của mình và nếu có gì sai sót xảy không nằm trong phạm vi của các bộ phận đó thì lại là lỗi của người khác. Với ERP, các nhân viên giao dịch sẽ thôi không còn là nhân viên đánh máy, chỉ biết nhập tên khách hàng vào máy tính. Màn hình ERP sẽ khiến họ vận hành công việc như những nhà doanh nghiệp. ERP sẽ hiển thị những thông tin về hạn mức tín dụng của khách hàng từ bộ phận Tài chính và mức tồn kho hàng hóa từ Kho. Liệu khách hàng có thanh toán đúng hẹn không? Chúng ta có thể xuất hàng đúng kỳ hạn không? Đó là những vấn đề mà bộ phận giao dịch chưa bao giờ phải quyết định trước kia và các câu trả lời có ảnh hưởng rất lớn đến khách hàng và các phòng ban trong công ty. Mọi người thì không thích thay đổi, và ERP lại yêu cầu họ thay đổi cách làm việc của mình. Phần mềm ít quan trọng hơn việc công ty thay đổi cách thức làm việc. Nếu bạn sử dụng phần mềm ERP để cải tiến phương thức nhận đơn hàng, sản xuất hàng hoá, xuất hàng và thanh toán, bạn sẽ thấy giá trị thật sự của phần mềm. Nếu bạn đơn giản cài đặt phần mềm mà không thay đổi cách thức làm việc của nhân viên bạn, bạn có thể sẽ không thấy được chút giá trị nào của nó. Và thậm chí, phần mềm mới còn làm chậm công việc lại vì họ đã quen với phần mềm cũ và không có ai làm việc trên phần mềm mới. 1.1.3. Lợi ích khi sử dụng ERP Năm nguyên do chính để các công ty thực hiện dự án ERP, đó là: 1.1.3.1. Tích hợp thông tin tài chính Do Tổng Giám đốc (CEO) cố nắm bắt toàn bộ hoạt động của công ty, ông ta có thể tìm thấy nhiều kiểu sự thật khác nhau. Tài chính có cách thiết lập doanh thu hàng năm riêng, Kinh doanh có kiểu riêng của họ và những đơn vị kinh doanh khác có thể có cách thiết lập riêng tổng thu nhập hằng năm cho công ty. Với ERP, chỉ có một kiểu sự thật; không thắc mắc, không nghi ngờ. Vì sao? vì tất cả phòng ban, nhân viên đều sử dụng chung một hệ thống. 1.1.3.2 Tích hợp thông tin đặt hàng của khách hàng Với hệ thống ERP, đơn hàng của khách hàng đi theo một lộ trình tự động hoá từ khoảng thời gian nhân viên giao dịch nhận đơn hàng cho đến khi xuất hàng ra cảng và bộ phận Tài chính xuất hoá đơn. Chẳng thà bạn lấy thông tin từ chung một hệ thống còn hơn nhận thông tin rải rác từ các hệ thống khác nhau của từng phòng ban. Hệ 8 thống phần mềm ERP giúp công ty bạn theo dõi đơn hàng một cách dễ dàng, giúp phối hợp với bộ phận Sản xuất, Kho và giao hàng ở các địa điểm khác nhau trong cùng một thời điểm. 1.1.3.3. Tiêu chuẩn hoá và tăng hiệu suất sản xuất Các công ty sản xuất, đặc biệt là những công ty muốn liên doanh với nhau thường nhận thấy rằng nhiều đơn vị kinh doanh của cùng một công ty đều sử dụng các phương pháp và hệ thống máy tính khác nhau. Hệ thống ERP đem đến những phương pháp tiêu chuẩn để tự động hoá các bước đi của quy trình sản xuất. Việc tiêu chuẩn hoá các quá trình trên và sử dụng cùng một hệ thống máy tính tích hợp riêng biệt có thể tiết kiệm thời gian, tăng hiệu suất sản xuất và giảm việc. 1.1.3.4. Giảm hàng hoá tồn kho ERP giúp tiến trình sản xuất diễn ra trôi chảy và phát huy tầm nhìn của quá trình thực hiện đơn hàng trong công ty. Điều đó có thể dẫn tới việc giảm lượng nguyên vật liệu tồn kho (bán thành phẩm tồn kho) và giúp người sử dụng hoạch định tốt hơn kế hoạch giao hàng cho khách, giảm thành phẩm tồn kho tại Kho và bến tàu. Để thật sự cải tiến lượng cung cấp hàng hoá, bạn cần cài đặt phần mềm dây chuyền cung cấp hàng và ERP có thể giúp bạn làm được điều đó. 1.1.3.5. Tiêu chuẩn hoá thông tin nhân sự Đặc biệt ở các công ty có nhiều đơn vị kinh doanh khác nhau, bộ phận Hành chánh nhân sự có thể không có phương pháp chung và đơn giản để theo dõi giờ giấc của nhân công và hướng dẫn họ về các nghĩa vụ và quyền lợi. ERP có thể giúp bạn đảm đương việc đó. 1.1.4. Lý do ERP thường thất bại Nói một cách đơn giản nhất thì ERP là một bộ thực tiễn tốt nhất thực hiện các nhiệm vụ khác nhau trong công ty bạn, bao gồm Tài chính, Sản xuất, Kho. Để thu được kết quả cao nhất từ phần mềm này, bạn phải làm sao để khiến các nhân viên trong công ty tuân thủ đường lối làm việc đã được phác hoạ, vạch sẳn trong phần mềm. Nếu các nhân viên không đồng ý sử dụng quy trình làm việc mới của phần mềm vì họ cho rằng nó không hiệu quả như cái họ đang sử dụng thì họ sẽ từ chối sử dụng phần mềm hay thậm chí yêu cầu bộ phận IT thay đổi phần mềm để phù hợp với cách làm việc cũ của họ. Điểm này là điểm mấu chốt mà dự án ERP thường bị rối loạn. Những cuộc tranh cãi cứ liên tiếp diễn ra, nào là sẽ cài đặt phần mềm như thế nào hay thậm chí là có nên cài đặt nó hay không. Vấn đề sữa chữa theo ý muốn của mọi người 9 sẽ tiếp diễn như một điệp khúc dài. Đừng quên rằng việc sữa chữa sẽ khiến phần mềm không vững chắc và khó bảo trì hơn khi nó thật sự đi vào quy trình. Nhưng IT có thể giải quyết vấn đề trên nhanh chóng trong hầu hết mọi trường hợp. Ngoài ra một vài công ty lớn có thể tránh vấp phải vấn đề sữa chữa thay đổi ERP theo các kiểu khác nhau – mỗi ngành nghề kinh doanh đều khác nhau và phạm vi của các phương thức làm việc đều quy rằng nhà cung cấp ERP không thể giải thích khi nào mới phát triển phần mềm của nó. Một lỗi lầm chung thường gặp phải là các công ty cứ nghĩ rằng thay đổi thói quen của mọi người sẽ dễ dàng hơn thay đổi phần mềm như mong muốn. Hoàn toàn không phải như vậy!. Việc khiến mọi người trong công ty bạn sử dụng phần mềm mới để cải tiến đường lối làm việc của họ vẫn còn là một thử thách lớn. Nếu công ty bạn do dự trong việc thay đổi thì dự án ERP có khả năng thất bại nhiều hơn. 1.2. Quản trị nhân sự là gì ? Kể từ khi hình thành xã hội loài người, con người biết hợp quần thành tổ chức thì vấn đề quản trị bắt đầu xuất hiện. Mỗi hình thái kinh tế xã hội đều gắn liền với một phương thức sản xuất nhất định, xu hướng của quản trị ngày càng phức tạp cùng với sự phát triển ngày càng cao của nền kinh tế xã hội. Nhưng dù ở bất cứ xã hội nào vấn đề mấu chốt của quản trị vẫn là quản trị nhân sự. Một doanh nghiệp dù có nguồn tài chính dồi dào, nguồn tài nguyên vật tư phong phú , hệ thống máy móc thiết bị hiện đại đi chăng nữa cũng sẽ trở nên vô ích, nếu không biết hoặc quản trị kém nguồn tài nguyên nhân sự. Chính cung cách quản trị tài nguyên nhân sự này tạo ra bộ mặt văn hóa của tổ chức, tạo ra bầu không khí có sự đoàn kết giúp đỡ lẫn nhau hay lúc nào cũng cso căng thẳng bất ổn định Nghiên cứu môn quản trị căn bản cho chúng ta nắm được các chức năng cơ bản của quản trị bao gồm : - Chức năng hoạch định - Chức năng tổ chức - Chức năng lãnh đạo - Chức năng kiểm tra Hoạch định bao hàm một việc thiết lập các mục tiêu và đối tượng đối với tổ chức và phát triển các biểu đồ công việc cho thấy những mục tiêu và đối tượng đó được hoàn thành như thế nào. Khi kế hoạch đã được hình thành thì việc tổ chức trở 10 nên quan trọng. Chức năng này bao hàm việc kết hợp các nguồn lực với nhau là con người, vốn và thiết bị một cách hiệu quả nhất để hoành thành mục tiêu. Do vậy tổ chức bao hàm nhiều việc kết hợp các nguồn lực. Vì vậy. quản trị nhân sự chính là việc thực hiện chức năng tổ chức của quản trị căn bản. Chức năng của tổ chức chính là quản trị tài nguyên nhân sự, bao gồm các nội dung cơ bản sau đây: - Phân tích công việc - Tuyển dụng nhân viên - Đào tạo và nâng cao năng lực chuyên môn cho nhân viên - Nâng cao hiệu quả sử dụng lao động thông qua việc sử dụng hệ thống kích thích vật chất và tinh thần đối với nhân viên. Như vậy quản trị nhân sự gắn liền với việc tổ chức, bất kỳ doanh nghiệp nào hình thành và hoạt động thì đều phải có bộ phận tổ chức. Vì vậy, việc quản trị nhân sự là quản trị tài nguyên nhân sự cùng với việc phân tích công việc, tuyển dụng nhân viên, đào tạo và nâng cao năng lực chuyên môn nhằm nâng cao hiệu quả sử dụng lao động một cách tốt nhất để thực hiện mục tiêu của tổ chức (Xem hình 1) Hình 1 : Quan hệ giữa chức năng tổ chức và quản trị nhân sự Sơ đồ trên mô tả nội dung của quản trị nhân sự chính là thực hiện chức năng tổ chức. Đối với mọi loại hình của doanh nghiệp đều phải quản trị tài nguyên nhân sự, nhưng mức độ phức tạp của các nội dung phụ thuộc vào tính chất và qui mô của từng loại hình kinh doanh. 11 1.3. Vai trò của quản trị nhân sự 1.3.1. Quản lý chính sách và đề ra chính sách liên quan đến tài nguyên nhân sự doanh nghiệp. Bộ phận quản trị nhân sự đóng vai trò chủ yếu trong việc quản lý chính sách, nhằm đảm bảo rằng chính sách do Nhà nước quy định được thực hiện đúng và đầy đủ trong doanh nghiệp. Bộ phận quản trị nhân sự còn đề ra và giải quyết các chính sách trong phạm vi của doanh nghiệp nhằm thực hiện mục tiêu của tổ chức. Chính sách nhân sự được thực hiện thông qua việc cố vấn cho người đứng đầu tổ chức trong việc đề ra và giải quyết những ván đề liên quan đến con người trong doanh nghiệp. 1.3.2. Tư vấn cho các bộ phận nhân sự trong doanh nghiệp Một bộ phận nào đó trong doanh nghiệp có thể có vấn đề chông nhân bỏ việc, bộ phận có tỷ lệ công nhân vắng mặt cao, bộ phận khác có vấn đề thắc mắc về chế độ phụ cấp… Trong tất cả các vấn đề trên, người phụ trách về nhân sự và nhân viên bộ phận nhân sự nắm vững chính sách nhân sự của Nhà nước và doanh nghiệp đảm nhận việc giải quyết các vấn đề khó khăn cụ thể và tư vấn cho người đứng đầu doanh nghiệp giải quyết những vấn đề phức tạp. Như vậy bộ phận quản trị nhân sự đóng vai trò tư vấn cho các nhà quản trị. 1.3.3. Cung cấp các dịch vụ Vai trò cung cấp các dịch vụ tuyển dụng, đào tạo và phúc lợi cho cá bộ phận khác của quản trị nhân sự. Chẳng hạn như quản trị nhân sự giúp đỡ các bộ phận khác trong việc tuyển mộ trức nghiệm và tuyển chọn nhân viên. Do tính chất chuyên môn hóa, nên quản trị nhân sự thực hiện hay tư vấn phần lớn công việc nhân sự sẽ có hiệu quả hơn các bộ phận khác đảm nhiệm. Thường không mấy khi các bộ phận khác đứng ra trực tiếp làm các chức năng của quản trị nhận sự, các bộ phận khác cũng nhờ bộ phận quản trị nhân sự cung cấp các dịch vụ liên quan đến việc quản trị nhân viên. Quyết định việc tuyển chọn nhân viên trong điều kiện cơ chế thị trường là do các bộ phận chuyên môn quyết định, nhưng để có đầy đủ các thông tin cho việc quyết định là do bộ phận dịch vụ quản trị nhân sự cung cấp. Ngoài ra, các chương trình đào tạo đều được bộ phận nhân viên sắp đặt kế hoạch và tổ chức và thường được các bộ phận khác tham khảo ý kiến. Bộ phận quản trị nhân sự cũng quản lý các chương trình lương hưu, lương bổng, an toàn lao động. Lưu trữ và bảo quản các hồ sơ nhân viên có hiệu quả , giúp cho các bộ phận khác đánh giá chính xác việc hoàn thành công việc của nhân viên. 12 1.3.4. Kiểm tra nhân viên Bộ phận quản trị nhân sự đảm bảo chức năng kiểm tra quan trọng bằng cách giám sát , các bộ phận khác đảm bảo việc thực hiện các chính sách, các chương trình thuộc về nhân sự đề ra hay không. Kiểm tra các thủ tục, kiểm tra cá bộ phận khác đánh giá thành tích nhân viên có đúng không, hay có bỏ sót một phần thành tích nào đó hay không. Kiểm tra thông qua việc đo lường, đánh giá, phân tích, các đơn khiếu nại, các tai nạn lao động, các kỳ hạn chấm dứt hợp đồng, lý do vắng mặt của nhân viên, các biện pháp kỷ luật, thúc đẩy các bộ phận khác quản trị tài nguyên nhân sự có hiệu quả hơn. Các cuộc kiểm tra các bộ phận quản trị nhân sự phải được thực hiện bằng văn bản thông báo cho các bộ phận được kiểm tra và báo cáo lên nhà quản trị cấp trên của doanh nghiệp. 1.4. Hệ quản trị nhân sự là gì và lợi ích của hệ quản trị nhân sự. 1.4.1. Hệ quản trị nhân sự là gì Hệ quản trị nhân sự là một phần mềm được tạo ra bởi mối quan hệ giữa quản trị nhân sự và công nghệ thông tin. Hệ quản trị nhân sự cho phép các doanh nghiệp tự động điều chỉnh quản lý theo đúng mục đích doanh nghiệp của mình, với lợi ích kép là giảm khối lượng công việc của phòng quản lý nhân sự cũng như tăng hiệu quả của bộ phận quản lý. Các lĩnh vực về nguồn nhân lực thường bị bỏ qua trong quản lý doanh nghiệp. Tình trạng này là thực tế . Tuy nhiên thực tế thì không phải vậy. Quản trị nhân sự đóng vai trò rất quan trọng trong việc vân hành công việc của 1 doanh nghiệp – quan trọng nhất là đã theo dõi và phân tích thời gian làm việc và hiệu suất của người lao động, từ đó cho người quản lý những thông tin tốt hơn phục vụ cho việc hình thành chiến lược cho doanh nghiệp. Tầm quan trọng của quản trị nhân sự đã không được chú ý bởi ngành công nghệ phần mềm. Hiện nay, một loạt các ứng dụng có sẵn để hỗ trợ phòng nhân sự công việc của mình, làm tốt việc tự động hóa các công việc nhất định và hỗ trợ trong việc tổ chức nhiều công việc khác. 13 Hệ thống phần mềm quản trị nhân sự (Từ nhà cung cấp như Oracle và Ascentis ) được định nghĩa rộng bởi 4 trách nhiệm cơ bản của phòng nhân sự, và do đó thường chứa những module riêng biệt để giải quyết từng công việc : Module tính lương : Module tính lương làm giảm khối lượng công việc của phòng nhân sự bằng cách tự động hóa quá trình tính lương, cho phép nhân sự đảm bảo chức năng tính lương được hoành thành đúng thời gian và không có lỗi. Ở cấp độ cơ bản của module tính lương được hỗ trợ bằng cách nhập tay của việc chấm công và dữ liệu số người có mặt từ bảng chấm công trên giấy được gửi bởi những người lao động. Ngoài ra còn thêm các hệ thống tiên tiến theo dõi chấm công nhân viên thông qua hệ thống tự động,kết nối với 1 hệ thống “clocking in” hoặc máy theo dõi kết nối với máy tính của nhân viện. Mỗi khi dữ liệu về số người có mặt được đưa vào hệ thống, module tính lương sẽ tự động tính số tiền thanh toán và các khoản trích nộp như thuế thu nhập trước khi tính ra tiền lương và báo cáo lại cho nhân viên. Module quản lý thời gian và lao động : Module quản lý thời gian và lao động được thiết kế để đối chiếu và phân tích với thông tin chấm công nhân viên phục vụ cho công tác tính toán chi phí. Bằng nguồn dữ liệu trực tiếp từ thiết bị chấm công và phương pháp được sử dụng module tính lương có thể cung cấp quản lý với các dữ liệu có giá trị liên quan đến việc sử dụng các nguồn lực lao động trong doanh nghiệp. Module lợi ích quản lý : Module lợi ích quản lý cung cấp cho nhân viên nhân sự có khả năng theo dõi và quản lý sự tham gia của nhân viên trong 1 loạt chương trình. Các chương trình này có thể từ các chương trình liên quan đến an sinh của lực lượng lao động (chẳng hạn như bảo hiểm y tế và đề án trợ cấp) để thực hiện các chương trình lợi nhuận (như kế hoạch lựa chọn cổ phiếu và chia sẻ lợi nhuận). Module Quản lý nhân sự : Các module quản lý nhân sự cung cấp một loạt các giải pháp nhân sự khác nhau, từ phân tích dữ liệu ứng dụng thông qua các dữ liệu nhân khẩu học cơ bản của nhân viên. 1.4.2. Lợi ích của hệ quản trị nhân sự Trong khi những module cung cấp lợi ích cho chính bộ phận nhân sự đó, các ứng dụng cũng hỗ trợ các doanh nghiệp nói chung. 14 Hệ thống HRM chuyển đổi nguồn nhân lực thông tin vào một định dạng kỹ thuật số, cho phép thông tin mới được cho vào các hệ thống quản lý kiến thức của doanh nghiệp. Kết quả của việc này là các dữ liệu nhân sự có thể được tích hợp vào hệ thống lớn hơn (ERP) của doanh nghiệp. 15 Chương 2: Phân tích một số hệ HR ở Việt Nam 2.1. Giới thiệu về phần mềm HRM tại Việt Nam 2.1.1. SaiGon Software Park – HRM - Phân hệ Quản lý cơ cấu tổ chức nhân sự: Sắp xếp vị trí từng nhân viên trong cơ cấu tổ chức. - Phân hệ Quản lý hồ sơ nhân viên: Bao gồm quản lý các mục chính như : Sơ yếu lý lịch, Quá trình công tác, ngày nghỉ có phép, không phép. Hợp đồng lao động, khen thưởng và kỉ luật. - Phân hệ Đánh giá nhân viên: Quản lý các thang điểm , tiêu chí đánh giá nhân viên. - Phân hệ Chấm công: Dựa trên số buổi nghỉ, vắng mặt, ra/ vào muộn để chấm công theo giờ, ngày hoặc tháng. - Phân hệ Tính lương: Có chức năng tính lương cho từng bộ phận, do yêu cầu của mỗi bộ phận là khác nhau. - Phân hệ Quản lý tuyển dụng – đào tạo: Lên kế hoạch tuyển dụng, xác định cần bao nhiêu nhân viên và yêu cầu cụ thể vào từng công việc. - Phân hệ Quản lý chế độ chính sách: Lập các biểu mẫu báo cáo bảo hiểm xã hội, bảo hiểm y tế, quá trình khám chữa bệnh, tai nạn giao thông. - Hệ thống Báo biểu, phân tích thống kê: Phân tích công việc và quá trình công tác của từng nhân viên để phục vụ cho quá trình đánh giá và quản lý. - Tiện ích hệ thống: Phân quyền rõ ràng cho từng cá nhân trong công ty, bảo mật quyền quản lý cho người dùng. 2.1.2. Fast - HRM - Quản lý tuyển dụng , quảng cáo các thông tin công việc cần thiết để tuyển nhân viên. - Thay đổi thông tin người xin việc thành thông tin nhân viên (nếu nhân viên trúng tuyển) - Hiển thị sơ đồ và cấu trúc doanh nghiệp theo dạng đồ thị. - Lưu các số liệ cần thiết để quản lý nhân viên như : Thời gian thử việc, Thời gian nghỉ việc, Thời gian kí hợp đồng, Thời gian hết hạn hợp đồng. 16 - Tra cứu và lập báo cáo thuận tiện cho việc phân tích và lên kế hoạch. - Kết nối chặt chẽ với bảng lương để dễ dàng cập nhật. 2.1.3. MISA - HRM MISA HRM.NET 2010 là phần mềm Quản trị nguồn nhân lực trên nền tảng web. Quản lý nhân viên - Quản lý thông tin dựa vào thông tin cá nhân, quá trình đào tạo, công tác. - Tự lập hợp đồng lao động - Tìm kiếm hồ sơ nhân viên - Tự động thông báo các sự kiện cần lưu ý. Nhân viên tự cập nhật thông tin - Nhân viên tự tìm được tông tin, kiểm tra thông tin về phúc lợi, đệ trình đơn nghỉ phép, hoàn thiện việc đánh giá nhân viên trực tuyến. - Đem lại hiểu quả công việc đối với doanh nghiệp có nhiều chi nhánh. Quản lý tuyển dụng - Có thể nộp hồ sơ xin việc trực tuyến - Quản lý , phân tích dễ dàng các khâu trong quá trình tuyển dụng, lập hồ sơ kỹ năng, lập kế hoạc tuyển dụng, theo dõi thông tin chi tiết ứng viên. - Chuyển hồ sơ ứng viên đạt yêu cầu thành hồ sơ nhân viên Quản lý đào tạo - Theo dõi chi tiết quá trình đào tạo bao gồm danh sách nhân viên cần đào tạo, các nhà cung cấp dịch vụ đào tạo, các kỹ năng được đề cập, các thiết bị yêu cầu, chi phí, địa điểm đính kèm, kết quả đánh giá…. - Nhân viên tự cập nhật được các bản đánh giá về khoá học, chứng chỉ đạt được. Đánh giá nhân viên - Quản lý các kỳ đánh giá, người đánh giá, các tiêu chí đánh giá, các biểu mẫu đánh giá, kết quả đánh giá…giúp người dùng dễ dàng tổ chức, quản lý việc đánh giá thành tích, năng lực cũng như các yếu tố khác của nhân viên. - Tạo các bản đánh giá theo từng đợt đánh giá khác nhau. 17 2.1.4. 3S – HRM Quản lý hồ sơ nhân viên - Quản lý trực tiếp hoặc gián tiếp các thông tin sau : Mã số nhân viên, Họ tên, Ngày sinh, Điện thoai, Nguyên quán, Nơi thường trú, Đơn vị/Phòng ban, Nơi sinh, CMND, Ngày bắt đầu công việc, Giới tính, Ngày nghỉ việc, Dân tộc, Trình độ ngoại ngữ… - Cung cấp tất cả các thông tin hồ sơ liên quan đến nhân viên,thuận tiện cho việc tìm kiếm nhân viên. Thực hiện các chức năng tìm kiếm thông tin dựa trên thông tin chính xác hoặc gần đúng, ghi nhận thông tin về quá trình làm việc và năng lực của nhân viên 2.2. Ưu điểm của phần mềm HRM Việt Nam - Đầy đủ các chức năng cho một chương trình quản lý nhân sự. - Thích hợp với môi trường làm việc tại các công ty Việt Nam. - Dễ dàng thay đổi chức năng phù hợp với từng yêu cầu của mỗi công ty. - Dễ sử dụng do dùng ngôn ngữ mặc định là Tiếng việt, giao diện gần gũi với người dùng. 2.3. Nhược điểm của phần mềm HRM Việt Nam - Thừa 1 số chức năng không cần thiết trong quá trình quản lý do đó gây rắc rối cho nhà quản lý. - Không nên có chức năng tự đọng thay đổi thông tin nhân viên, do nhân viên có thể đưa thông tin không chính xác lên hệ thống. - Một số hệ thống quản trị nhân sự có chi phí quá cao so với khả năng kinh tế của 1 công ty vừa và nhỏ. - Người quản trị không có quyền thêm module mới thích hợp với nhu cầu từng giai đoạn phát triển của công ty. Việc thay đổi phải phụ thuộc vào nhà cung cấp gói sản phẩm quản lý nhân sự. 2.4. Lợi ích khi dùng hệ quản trị nhân sự của Ofbiz - Đẩy đủ chức năng cho hệ quản trị nhân sự nói chung, có thể viết thêm 1 số chức năng phù hợp với từng công ty Việt Nam. 18 - Chi phí đầu tư cho hệ thống rẻ hơn nhìue phần mềm quản trị nhân sự tại Việt nam do OFBiz là hệ quản trị nhân sự sử dụng Open Source. - Có tính hệ thống : Do hệ thống quản trị nhân sự (HR) chỉ là 1 phần trong hệ thống quản trị doanh nghiệp của Ofbiz. Điều đó khiến cho công ty thuận lợi hơn khi muốn mở rộng việc quản lý về sau mà không sợ gây xung đột trong hệ thống (Quản lý khách hàng, Quản lý lương, phần mềm kế toán.) - Liên tục được cập nhật theo xu hướng công nghệ mới trên thế giới. 19 Chương 3 : Hệ mã mở OFbiz 3.1. Giới thiệu hệ mã mở OFbiz OFbiz là một mã nguồn mở cung cấp framework cho việc phát triển một ứng dụng web trên nền Java. OFbiz cung cấp sẵn các thành phần cần thiết cho ứng dụng. Phát triển ứng dụng dựa trên OFbiz đơn giản chỉ là việc viết mã sử dụng các thành phần có sẵn để phối hợp chúng hoạt động thành một ứng dụng hoàn chỉnh. Công việc xây dựng một ứng dụng web trên OFbiz cũng tương tự xây một ngôi nhà mà ở đây người thợ chỉ làm những công việc hết sức đơn giản. Ngôi nhà đã có sẵn nền móng và các thành phần khác như tường, cửa, v.v… Công việc của người thợ chỉ đơn giản là kết hợp các bức tường theo một cách nào đó và đặt các ô cửa ở các vị trí thích hợp. Kiến trúc OFbiz gồm 04 lớp: Công nghệ cơ sở (Basic technology), Công cụ chung (common tool), ứng dụng chung (Common application) và ứng dụng (Application) (Hình 2). Hình 2 . Kiến trúc OFbiz Lớp công nghệ cơ sở cung cấp các công nghệ mới nhất để phát triển phần mềm trên J2EE, OFbiz hỗ trợ JavaBean, CORBA, Web Service, các cơ sở dữ liệu quan hệ, các công cụ để phát triển và quản trị hệ thống. Lớp thứ nhất của OFbiz là chức năng tương tự như một Application Server phục vụ các chức năng cơ bản của máy chủ dữ liệu. 20 Lớp công cụ chung cung cấp các dịch vụ hỗ trợ cho việc phát triển phần mềm. Entity Engine cung cấp một cách thức dễ dàng, uyển chuyển để truy xuất vào cơ sở dữ liệu, lập trình viên không cần phải viết các câu lệnh SQL mà chỉ cần dùng các phương thức của Entity Engine để truy xuất và thao tác dữ liệu. Entity Engine thay thế cho việc dùng JDBC và các lệnh SQL chuẩn. Service Engine cung cấp cho lập trình viên thao tác lập trình trên mô hình VMC được dễ dàng và thuận lợi. Workflow engine dựa trên đặc tả WFMC và OMG. Nó là một phần của Services framework và được tích hợp chặt chẽ với Entity Engine, OFbiz Workflow Engine sử dụng XPDL làm ngôn ngữ định nghĩa tiến trình (process definition language). OFbiz Rule Engine dựa trên kỹ thuật lập trình logic đã tồn tại hàng thập kỉ. Ngôn ngữ lập trình logic được nhiều người biết đến là Prolog, mặc dù có nhiều ngôn ngữ khác nữa, ý tưởng chính ở đây là thay vì đưa ra một tập các chỉ thị thực thi theo một trình tự cố định như các ngôn ngữ truyền thống, chúng ta chỉ cần định nghĩa các sự kiện (fact) và các luật (rule). Lớp ứng dụng chung là các ứng dụng cơ bản nhất đối một doanh nghiệp, OFbiz đã xây dựng các ứng dụng này thành các thành phần cơ bản, khi phát triển ứng dụng các nhà phát triển phần mềm chỉ khảo sát thực tế, tích hợp các thành phần ứng dụng này lại theo đúng yêu cầu khảo sát là có thể sử dụng được. Việc này giúp cho việc phát triển phần mềm trở nên nhanh chóng và dễ nâng cấp, bảo trì. Lớp ứng dụng trên cùng là các ứng dụng chuẩn của doanh nghiệp, các doanh nghiệp chỉ cần chỉnh lại cấu hình để đáp ứng đúng thực tế của doanh nghiệp. Các ứng dụng này hầu như đã đáp ứng được hết các yêu cầu của doanh nghiệp. Như đã phân tích ở trên, kiến trúc OFbiz là một flatform, một framework để cho việc phát triển một ứng dụng trên web được nhanh chóng và dễ dàng. Tùy theo yêu cầu cụ thể của doanh nghiệp, nếu sát với lớp trên cùng thì sử dụng ngay lớp đó, nếu không thì phải hiệu chỉnh lại lớp ứng dụng, nếu vẫn không sát thực tế thì phải phát triển ứng dụng trên lớp công cụ chung, nếu vẫn còn chưa được thì nhà phát triển phần mềm phải sử dụng lớp công nghệ cơ sở để phát triển ứng dụng. Càng về lớp trên thời gian phát triển càng nhanh nhưng độ linh hoạt càng thấp, lớp dưới cùng thì thời gian phát triển ứng dụng lâu hơn nhưng giải quyết được nhiều việc hơn. Các thành phần trong Ofbiz bao gồm :  Accounting (Agreements, Invoicing, Vendor Management, General Ledger ) : Phần mềm kế toán cho công ty  Asset Maintenance : Bảo vệ tài sản cho nhân viên trong công ty 21  Catalogue and Product Management : Quản lý sản phẩm và calatogue  Facility and Warehouse Management : Quản lý kho và cơ sở vật chất  Manufacturing : Quản lý sản xuất của công ty  Order Processing : Xử lý thông tin đặt hàng của khách hàng  Inventory Management, automated stock replenishment etc : Kiểm toán, tự động bổ sung cổ phiếu  Content management system (CMS) : Quản lý nội dung hệ thống  Human resources (HR) : Quản trị nhân sự trong công ty  People and Group Management : Quản lý cá nhân và nhóm người lao động  Project Management : Quản lý dự án  Sales Force Automation : Bán hàng tự động  Work Effort Management : Quản lý kết quả làm việc  Electronic point of sale (ePOS) : Quản lý chi nhánh báng hàng điện tử  Electronic commerce (eCommerce) : Thương mại điện tử 3.2. Kiến trúc 3 tầng và cách thức phát triển ứng dụng với Ofbiz 3.2.1. Kiến trúc 3 tầng của Ofbiz Framework Ofbiz sử dụng mô hình 3 tầng chung cho tất cả các ứng dụng của nó. Đó là tầng Data Layer, Business Logic Layer và Presentation Layer. Các tầng Data Layer và Service Layer có những cách thức riêng chịu trách nhiệm tương tác với từng tầng. Data Model Layer : Tầng này đại diện cho Cơ sở dữ liệu. Nó bao gồm 1 thực thể chức năng (Entity Engine) có trách nhiệm kết nối cơ sở dữ liệu, phục hồi cơ sở dữ liệu và lưu trữ… Nó sử dụng lớp Java Generic Delegator để kết nối với cơ sở dữ liệu và nó sử dụng Java Generic Value đại diện cho những thực thể được chèn vào cơ sở dữ liệu. Business Logic Layer : Tầng này đại diện cho logic, hoặc các dịch vụ cung cấp cho người dùng và thực hiện trên Cơ sở dữ liệu của tầng Data layer. Có thể có nhiều loại dịch vụ như java, SOAP, simple, workflow… và mỗi lại dịch vụ có cách thức riêng của mình. Có một Service Engine có trách nhiệm phân chia và gọi các dịch vụ..v.v.. 22 Presentation Layer : Ofbiz đã chuyển sang sử dung “Screens” để đại diện cho từng trang của Ofbiz. Do đó mỗi trang nên được biểu diễn bình thường như một screen. Một trang Ofbiz bao gồm nhiều thành phần như hearders, Footers,appheader… do đó khi dựng hình các trang, đây là sự kết hợp có trình tự đã được sắp đặt, hoặc bao gồm, trong một screen. 3.2.2. Phát triển ứng dụng với OfBiz – Overview Trước khi bắt đầu phát triển OFBiz, nó có thể trở lên hữu ích thông qua các nguyên tắc chung của việc phát triển ứng dụng trong Ofbiz và so sánh với các Frameworks khác mà các bạn đã từng biết . Tôi sẽ cố gắng so sánh việc phát triển bằng Ofbiz với các ứng dụng truyền thống : Java , PHP/Perl . Java Hình 3 Nói chung, quá trình phát triển Java làm nổi bật sự tách biệt rõ ràng hoặc các tầng của code, thích hợp cho những nhóm phát triển lớn với chức năng riêng biệt của từng đội. Có các tầng riêng biệt cho việc xử lí như tầng business logic, managing databases và hiển thị kết quả cho người dùng. Dữ liệu là những mô hình – giống như những đối tượng, với thành phần cho các trường và nhận được, thiết lập những mô hình cho việc truy cập vào các trường. Những đối tượng vẫn “Tiếp tục tồn tại”, hoặc được lưu trữ vào 1 cơ sở dữ liệu quan hệ, bằng cách sử dụng 1 framework persistence (dai dẳng, bền bỉ). 23 Điển hình ứng dụng Java bao gồm nhiều thư viện, classes, property files, các files định nghĩa, và các files triển khai. Chính code của nó đã thành lập các class riêng biệt, trong mỗi class đó là những tập tin riêng của chính nó, và các files class được nhóm thành các gói trong thư mục riêng biệt. PHP and Perl Hình 4 PHP và Perl, thì ngược lại, nổi bật là sự phát triển nhanh và kết quả ngay lập tức, có thể do 1 nhóm nhỏ các nhà phát triển. Hầu hết code của Perl và PHP là đơn tầng. Ví dụ, 1 trang đơn hoặc mã script có cấu trúc từ input, tác động qua lại với cơ sở dữ liệu, và hoàn lại output. Mặc dù cả PHP và Perl là ngôn ngữ hướng đối tượng, dữ liệu thường được sử dụng với danh sách và bản đồ ( list and maps ), chứ ko phải đối tượng công khai. Cơ sở dữ liệu truy cập được xử lý bằng câu lệnh SQL trong trang và Scripts. PHP và Perl là ngôn ngữ script – cái mà được biên dịch trong thời gian chạy, do đó gia tăng thử nghiệm và phát triển. OFBiz 24 Hình 5 Ofbiz kết hợp giữa tốc độ của PHP/Perl với cấu trúc của Java. Mục đích quan trọng nhất của Ofbiz là giảm số lượng mã yêu cầu.Điều này đạt được bằng cách cho phép các nhà phát triển tạo ra những định nghĩa cao cấp của data model, business logic, presentation và sau đó cung cấp với 1 bộ API chung có nhiệm vụ làm công việc định nghĩa. Ví dụ, nhiệm vụ chung của ứng dụng kinh doanh là tạo ra các bảng để lưu trữ dữ liệu và viết các forms để update các bảng ấy.Điều này thường yêu cầu mã HTML với nhiều lần lặp đi lặp lại của các bảng cơ sử dữ liệu. Với OFBiz, thực thể và form widget cho phép form đó được tạo 1 cách tự động dựa trên các định nghĩa meta. Giống như Java, OFBiz là tầng cao và mang tính hệ thống. Nhưng phần của Framework Ofbiz và ứng dụng Ofbiz nằm trong thành phần riệng biệt, và Ofbiz cho phép các ứng dụng bên ngoài hoặc các ứng dụng tùy chỉnh được thêm vào 1 cách dễ dàng. Mỗi ứng dụng được chia thành view(presentation), business logic và tầng data model. Tầng view của Ofbiz được xây dựng quanh mô hình Framework MVC và được trang trí bên ngoài. Trong PHP hoặc CGI Perl, người truy cập trang web yêu cầu cụ thể từng trang hoặc scripts, cái mà tập hợp dữ liệu và tạo ra toàn bộ trang và trả lại cho người truy cập. Trong Ofbiz, ngược lại, điều khiển phân tích cú pháp là yêu cầu đầu tiên, sau đó mới xác định những việc cần làm.(Hence,MVC.) 25 Tầng view là sự tách xa hơn trong presentation( ví dụ HTML hoặc XSL:FO) và view logic( ví dụ thu thập dữ liệu để tạo thành 1 form.) Tài liệu được trình bầy là tự được tách thành từng phần, giống như header, footer, leftbar, rightbar và ứng dụng header,cái được tạo ra cùng nhau trong “trang trí” thời trang. Sự thuận lợi của MVC và các mẫu trang trí trở lên rõ ràng cho các ứng dụng rộng hơn, nơi những hành động tượng tự và các yếu tố được lặp lại nhiều lần. OFBiz cho phép sự tái sử dụng các các yếu tố thiết kế , view logic và form action, giảm bớt sự cần thiết cho việc tạo và, thậm chí tệ hơn, duy trì code lặp đi lặp lại. Tầng business logic của ứng dụng OFBiz không ràng buộc với những trang cụ thể (giống như trong PHP), các đối tượng cụ thể (giống như trong Java), hoặc các server yêu cầu cụ thể (giống như trong CGI Perl hoặc Java servlets.) Thay vào đó chúng thường được tạo ra như những “dịch vụ” nhỏ,những phần code nhỏ có thể dùng lại là những phần có thể viết trong những trạng thái khác nhau của ngôn ngữ, bao gồm Java, Jython,beanshell, hoặc Ofbiz minalang. Dịch vụ sau đó có thể gọi trực tiếp từ web ứng dụng , với những form phân tích tự động, từ trong các dịch vụ khác, từ các workflows công khai hoặc các mức rất nhỏ như SOAP hoặc RMI. Tầng data access, được xử lý với các thực thể trong OFBiz, cái mà cho phép dữ liệu được mô phỏng trong tập tin XML và truy cập với đối tượng duy nhất GenericDelegator. Trường hợp các mục dữ liệu được xử lý như GenericEntity và đối tượng GenericValue chứ không phải là đối tượng của riêng mình. Như vậy, không cần phải viết (hoặc tạo) cài đặt và thiết lập mã persistence riêng. Thay vào đó, làm việc với dữ liệu trong OFBiz tương đối giống làm việc với danh sách và bản đồ trong Perl hoặc PHP. Thậm chí lưu trữ dữ liệu còn đơn giản hơn. Không cần viết thêm câu lệnh SQL INSERT hoặc UPDATE , chỉ cần sử dụng 1 phương thức lưu trữ(). Bởi vì hầu hết lớp view và nhiều (mặc dù không phải tất cả) của tầng business logic được viết ra bởi ngôn ngữ scripting giống như beanshell hoặc minilang, Framework OFBiz cho phép gia tăng thử nghiệm và phát triển 1 style giống như Perl hoặc PHP. Cuối cùng, do OFBiz trình bày một ngăn xếp tích hợp từ tầng data tới tầng business logic tới lớp layer, nó có thể được nhận biết qua lại, Ví dụ, thay đổi tầng data có thể tự động thay đổi dịch vụ (business logic) và forms(UI) đang làm việc với dữ liệu. Điều này có thể làm giảm đáng kể số tiền bảo dưỡng cho ứng dụng. 3.3. Phân hệ HR sẵn có của Ofbiz 26 Human Resources Management Quản lý quá trình làm việc Quản lý cán bộ Global HR Setting Kquả làm việc Skills Trình độ chuyên môn Quá trình đào tạo Resume Chức vụ Leave 27 Workflow : Quản trị nhân sự Nhu cầu tuyển dụng Tiến hành tuyển dụng Tiếp nhận hồ sơ Lên kế hoạch tuyển dụng Phỏng vấn kiểm tra tay nghề Làm thủ tục thử việc Thử việc Làm thủ tục tiếp nhận chính thức Ký hợp đồng lao động Loại Quản lý hồ sơ Quản lý cán bộ Đào tạo Quyết định nghỉ việc Lưu hồ sơ 28 3.4. Phân tích cụ thể các chức năng hiện có trong HRM 3.4.1. Employees – Quản lý nhân viên Phần Contact Information có 4 lựa chọn : None , Postal , Telecom và Other - None : Tìm kiếm nhân viên dựa trên ID của từng nhân viên , User Login , Last Name và First Name nhân viên khai báo . - Postal : Tìm kiếm nhân viên dựa trên ID của từng nhân viên , User Login , Last Name và First Name nhân viên khai báo , ngoài ra còn phải bổ xung thêm Address 1, Address 2, City, State /Province và Postal Code . - Telecom : Tìm kiếm nhân viên dựa trên ID của từng nhân viên , User Login , Last Name và First Name nhân viên khai báo , ngoài ra còn bổ xung thêm các thông tin Country Code , Area Code và Contact Number - Other : Tìm kiếm nhân viên dựa trên ID của từng nhân viên , User Login , Last Name và First Name nhân viên khai báo , ngoài ra còn bổ xung thêm Contact Information . 3.4.2. Employments – Quản lý thời gian làm việc của nhân viên 29 Quản lý dựa trên ID của từng nhân viên , ngày bắt đầu làm việc , và ngày kết thúc công việc - Internal Organization : Tên công ty (áp dụng hệ thống quản lý 2 hoặc nhiều công ty khác nhau). - Employee Party ID : ID của nhân viên trong công ty . - First Name , Last Name : Tên của nhân viên - có thể lựa chọn Ignore case để bỏ qua phần này. - From Date : Ngày bắt đầu công việc (Có nhiều hơn 1 lựa chọn do có thể ko chính xác ngày bắt đầu làm việc ) - Thru Date : Ngày kết thúc công việc (Có nhiều hơn 1 lựa chọn do có thể ko chính xác ngày kết thúc làm việc) - Termination Reason ID : ID nguyên nhân kết thúc công việc (hoàn thành , ko thể hoàn thành …) - Termination Type ID : Loại ID kết thúc Fired , Resignation , Retirement 3.4.3. Employee Position – Chức vụ nhân viên trong công ty 30 - Empl Position ID : ID chức vụ của nhân viên trong công ty - Status ID : Tình trạng ID của nhân viên - Party ID : Party ID của nhân viên trong công ty - Budget ID : ID tài khoản (ngân sách) của nhân viên - Budget Item Seq ID : - Empl Position Type Id : Loại ID chức vụ của nhân viên Những mục trên đều có thể lựa chọn Ignore Case để bỏ nhập .Ngoài ra mỗi trường đều có những lựa chọn để giúp dễ dàng search thông tin hơn (Equals ,Begin with , Contains , Is Empty , Not Equal) - Estimated From Date : Ước lượng ngày bắt đầu làm việc - Estimated Thru Date : Ước lượng ngày kết thúc công việc - Slary Flag : Chọn Yes nếu muốn kết quả cho ra giá trị bảng lương của nhân viên , chọn No nếu không muốn . 31 - Exempt Flag : Chọn Yes nếu muốn kết quả cho ra giá trị bảng miễn thuế của nhân viên , chọn No nếu không muốn . - Fulltime Flag : Chọn Yes nếu nhân viên làm Fullime , No nếu ngược lại . - Temporary Flag : Chọn Yes nếu nhân viên làm parttime , no nếu ngược lại . - Actual From Date : Ngày thực sự bắt đầu công việc .( Có các lựa chọn Equals , Same Day , Greater Than From Day Start và Greater Than ) - Actual Thru Date : Ngày thực sự kết thúc công việc . ( Có các lựa chọn Equals , Same Day , Greater Than From Day Start và Greater Than ) 3.4.4. Performance Review – Kết quả làm việc - Employee Party ID : Party ID của nhân viên - Perf Review ID : Xem lại kết quả làm việc - Manager Party ID : Quản lý Party ID của nhân viên - Payment Id : ID số tiền trả - From Date : Ngày bắt đầu làm việc - Thru Date : Ngày kết thúc làm việc - Comment : Tìm theo comment (có các lựa chọn Begins with ,Equals , Contains , Is Empty , Not Equal ) 3.4.5. Skill – Kỹ năng làm việc 32 - Party Id : ID của nhân viên trong công ty - Skill Type ID : ID loại kỹ năng làm việc - Year Exprerience : Kinh nghiệm làm việc - Rating : Đánh giá về kĩ năng của nhân viên - Skill level : cấp bậc của kỹ năng 3 trường trên có thể ignore case để ko phải điền thông tin , ngoài ra ta có thể search bằng cách chọn 1 trong các từ khóa : Begins with , Equals , Contains , Is Empty , Not Equal . - Start Using Date : Ngày bắt đầu có kĩ năng làm việc (có bằng cấp ,chứng chỉ đào tạo) 3.4.6. Qualification – Trình độ chuyên môn 33 - Party ID : ID của nhân viên trong công ty - Party Qual Type ID : Loại ID trình độ chuyên môn . - Qualification Desc : Miêu tả trình độ chuyên môn (Có thể search tối ưu bằng cách sử dụng 1 trong các lựa chọn sau : Equals , Begins With, Contains ,Is Empty , Not Equal) - Title : Tên của trình độ chuyên môn - Status ID : Chọn 1 trong những lựa chọn sau 1. Invitation Accepted 2. Invitation Cancelled 3. Invitation Declined 4. Invitation Pending 5. Invitation Sent - Verif Status ID : Xác nhận trạng thái của ID : Not verified hoặc verified - From Date : Ngày bắt đầu trình độ chuyên môn có giá trị - Thru Date : Ngày kết thúc trình độ chuyên môn (chứng chỉ hết hạn… )(Nếu có ) 3.4.7. Training – Quá trình đào tạo - Party ID : ID của nhân viên 34 - Training Class Type ID : Loại ID của đối tượng đào tạo . Có những loại sau : Advance training (Đào tạo nâng cao) ,Basic training (Đào tạo cơ bản) ,Improvement Training (Đào tạo cải thiện) , on Job Training (Đào tạo trong nghề). - From Date : Ngày bắt đầu đào tạo - Thru Date : Ngày kết thúc đào tạo Ngoài ra có thể sử dụng các lựa chọn Equals, Same Day , Less Than …. Để tôi ưu hóa việc tìm kiếm . 3.4.8. Employment Application – Quản lý tuyển dụng - Application ID : ID tuyển dụng . - Empl Position ID : ID vị trí tuyển dụng - Status ID : Trạng thái của ID , lựa chọn 1 trong những cái sau đây Activi/Open , Inactive/Closed, Planned For . - Employment App Source Type ID : Nguồn tuyển dụng .Chọn 1 trong những lựa chọn sau : Advertisement , Internet , NewsPaper , PersonalReferal . - Applying Party ID : Phòng tuyển dụng - Referred By Party ID : ID người chỉ dẫn - Application Date : Ngày tuyển dụng (Có thể tối ưu tìm kiếm bằng cách chọn 1 trong những lựa chọn sau : Equals, Same Day , Less Than …) 3.4.9. Resume – Tiếp tục công việc 35 - Rusume ID : ID của loại công việc tiếp tục - Party ID : ID của nhân viên - Content ID : ID Nội dung của - Resume Date : Ngày tiếp tục công việc (Có thể tối ưu tìm kiếm bằng cách chọn 1 trong những lựa chọn sau : Equals, Same Day , Less Than …) - Resume Text : Đoạn text miêu tả lí do tiếp tục (Có thể tối ưu tìm kiếm bằng cách chọn 1 trong những lựa chọn sau : Begins with, Equals , Not Equal…) 3.4.10. Leave – Quản lý thời gian nghỉ việc - Party ID : ID của nhân viên - Leave Type ID : Loại ID lí do nghỉ việc ,Lựa chọn 1 trong những lí do sau : Medical (Do vấn đề y học – bệnh tật , sinh con…) hoặc Casual (Không chủ định) - Frome Date : Ngày bắt đầu nghỉ việc - Thru Date : Ngày kết thúc đợt nghỉ 36 - Description : Miêu tả lí do nghỉ việc (Có thể tối ưu tìm kiếm bằng cách chọn 1 trong những lựa chọn sau : Begins with ,Equals , Not Equal …) 3.4.11. Global HR Settings – Cài đặt HR - Có các lựa chọn sau 1. Skill Type : Bao gồm chỉ số về ID của lọa kĩ năng và miêu ta về kĩ năng đó . 2. Responsibility Type : Bao gồm chỉ số về ID Loại trách nhiệm và miêu tả về loại trách nhiệm đó . 3. Termination Reasons : Bao gồm chỉ số về ID lý do hoàn thành công việc và miêu tả về công việc 4. Termination Type : Bao gồm chỉ số về ID hoàn thành công việc và mieu tả về công việc 5. Position Types : Bao gồm chỉ số về ID chức vụ của nhân viên trong công ty , nguồn gốc (quêquán) của nhân viên , và miêu tả về chức vụ . 6. Employee Leave Type : Bao gồm chỉ số về ID của loại nghỉ việc và miêu tả về lí do nghỉ việc 7. Pay Grade : Sắp xếp thứ bậc , bao gồm Loại Id sắp xếp thứ bậc , Tên của sắp xếp và comment . 37 Chương 4 : Triển khai và thử nghiệm 4.1. Tìm hiểu các thành phần và chạy các ứng dụng sẵn có trên OFBiz 4.1.1. Các thành phần chính của OFBiz Download Ofbiz tại đây : Sau khi download và giải nén chúng ta sẽ có một folder OFBiz. Trước tiên chúng ta xem các thành phần trong thư mục này. Trong đó nội dung từng thành phần như sau : .svn folder : Bao gồm các thông tin update hàng tuần của framework OFBiz và các ứng dụng . application folder : Bao gồm các ứng dụng có trong OFBiz, khi chúng ta tự tạo một ứng dụng riêng, chúng ta nên đặt nó trong thư mục application hoặc đặt trong thư mục hot-deploy. bin folder : Bao gồm java classes, xml file và xml schema file. 38 framework folder : Bao gồm các thành phần của framework OFBiz, giống như Entity Engine, Service Engine, thư mục chứa các file chung cho tất cả mọi ứng dụng. hot-deploy folder : Trong thư mục này có thể có một số folder, nơi các thành phần của ứng dụng được tải tự động mà không cần tải chúng một cách rõ ràng như chúng ta vẫn thấy ở một số ứng dụng khác đặt trong Application folder. specialpurpose folder : Bao gồm một số ứng dụng bổ sung như “ecommerce” và “workflow”, tuy nhiên chúng không phải một phần của OFBiz core. themes folder : Bao gồm các file có chức năng thay đổi giao diện người dùng khi chạy OFBiz. startobfiz.bat : File này được dùng khi chạy OFBiz. 4.1.2. Các thành phần trong Humanres Tiếp theo chúng ta sẽ quan tâm đến một ứng dụng cụ thể. Trong trường hợp này chúng ta nghiên cứu tới ứng dụng Humanres. Nhưng trước đó chúng ta cần chú ý đến file component-load.xml trong thư mục Application do file này có ý nghĩa rất quan trọng. Bởi vì khi không có nó thì OFBiz không thể load được bất cứ ứng dụng nào, trừ khi ứng dụng đó được đặt trong thư mục hot-deploy. Do đó khi tạo một ứng dụng mới chúng ta phải add thư 39 mục bên trong để báo cho OFBiz biết, việc này được làm với file component- load.xml – định nghĩa vị trí các ứng dụng. ofbiz- component.xml : Định nghĩa ứng dụng bằng cách xác định vị trí của nó - Data model : - Business logic : - Web application : build.xml : Giống như tên của nó, file dùng để cho chương trình ant cách built ứng dụng OFBiz. .svn folder : Chứa các lần update hàng tuần của ứng dụng. build folder : Chứa code biên dịch Java “.class” file và các thư viện cho ứng dụng humanres. config folder : Thường được sử dụng cho data configuaration,ví dụ nó được dùng để hỗ trợ các giao diện ngôn ngữ, bên trong nó chúng ta sẽ tìm được một số file cho các ngôn ngữ khác nhau, và dựa trên ngôn ngữ giao diện người dùng, một trong số các file này sẽ được sử dụng. data folder : Chứa đựng dữ liệu load về khi OFBiz được khởi động và dữ liệu demo. Cuối cùng là 2 thành phần entitydef và servicedef đều có 2 thành phần : definition và implementation <component-loader xmlns:xsi="" xsi:noNamespaceSchemaLocation=" loader.xsd"> <!-- common component used by most other components --> 40 entitydef folder : chứa việc thực thi lớp dữ liệu, ví dụ bản quan hệ CSDL và các mối quan hệ. Bên trong thư mục này có 2 file chính, 1 cho việc định nghĩa và 1 cho việc thực thi : entitygroup.xml và entitymodel.xml servicedef folder : Định nghĩa các service được dùng trong lớp business logic, nó chứa các file service.xml – định nghĩa services, service_view.xml – dùng cho view. ( Chú ý: Khi add 1 file service, cần phải được định nghĩa thêm trong ofbiz component.xml ) script folder : Chứa đựng việc thực thi cho các service sử dụng OFBiz mini- language và nó chứa đựng một số script. Bên trong thư mục này còn chứa việc thực thi các service cho các ứng dụng khác nhau src folder : Chứa các file source cho các service – các file được thực thi với Java. widget folder : Là lớp trình diễn OFBiz gần nhất,các trang được định nghĩa như “screen”. thư mục widgets cho giao diện màn hình người dùng. OFBiz cho phép thiết kế giao diện người dùng để tạo như “generic screens” có thể được sử dụng cho những nền khác. Nội dung thư mục widget phản ánh những thứ trên webapp. Do đó mỗi ứng dụng sẽ có màn hình riêng của nó. Screen được chia làm 2 phần : action và widget. Action chịu trách nhiệm cho việc lấy dữ liệu về trong khi widget chịu trách nhiệm hiển thị dữ liệu. webapp folder : Chứa các form và ứng dụng web. Với OFBiz các trang được chia thành các thành phần nhỏ hơn, những cái được kết hợp để tạo lên sản phẩm mới. Do đó nhiều trang có thể chia sẻ các thành phần chung như header, sidebar, và navigation bars. 4.1.3. Chạy các ứng dụng trên OFBiz Phần này tưởng rằng như dễ dàng như việc cài đặt và chạy một ứng dụng mà ta thường down trên Internet. Tuy nhiên, khi bắt tay vào việc thì ta mới gặp rất nhiều khó khăn như MyEclipse không đặt đúng địa chỉ của một số file, khi cho dịch Ofbiz từ cửa sổ Ant (build) thì báo lỗi file build.xml. Nếu mở file build.xml thì ta cũng không biết sửa chỗ nào vì nó báo lỗi ở một dòng thì thực ra lỗi lại xảy ra ở dòng khác. 41 Ví dụ 1: chương trình dịch báo lỗi ở dòng Thì thực ra là lỗi ở dòng Ta sửa lại bằng cách thêm vào từ framework như sau: Ví dụ 2: Ofbiz báo thiếu file khi Ofbiz không tìm thấy file trong thư mục ofbiz, mà nó chỉ mặc định trên ổ đĩa C:\Ofbiz\.... nhưng do ta đặt thư mục Ofbiz trong D:\workPlace\Ofbiz\... thì ta phải vào file .classpath để sửa lại các đường dẫn sai cho nó. 4.2. Các bước triển khai 4.2.1. Việt hóa Humanres Như đã thấy ở trên, ngôn ngữ mặc định cho người dùng OFBiz là Tiếng anh, điều đó một phần gây khó khăn cho những nhà quản trị nhân sự. Bước tiếp theo chúng ta sẽ nghiên cứu việc Việt hóa hệ quản trị nhân sự Humanres trong OFBiz. Vì OFBiz là hệ mã nguồn mở nên hỗ trợ rất nhiều ngôn ngữ, tiêu biểu trong đó là tiếng Anh, Pháp, Italy, Nga, Trung quốc .. Mỗi ngôn ngữ sẽ có một mã riêng tương ứng như hình vẽ dưới đây. Mã cho Tiếng Việt là [vi]. 42 Để có thể Việt hóa hệ quản trị Humanres của OFBiz ta cần phải hiểu vị trí đặt các file ngôn ngữ trong OFBiz. Trong trường hợp này, ngôn ngữ được khai báo trong các file XML UILabels đặt trong thư mục config của framework và các ứng dụng. Với các file UILabels đặt trong {ofbiz}/humanres/config sẽ quy định ngôn ngữ cho riêng hệ quản trị Humanres và các file XML UILabels đặt trong {ofbiz}/…/config quy định ngôn ngữ chung của toàn hệ quản trị OFBiz. Như cấu trúc bên dưới đây chúng ta có thể thấy một ví dụ về việc khai báo các trường và ngôn ngữ được dùng cho trường đó. - : Dùng để khai báo trường trong OFBiz - : Dùng để khai báo ngôn ngữ . 43 Để Việt hóa chúng ta thêm giá trị vào khai báo của mỗi trường. Làm tương tự với từng thành phần trong file xml HumanUILables ta sẽ Việt hóa được HR trong OFBiz. Sau khi hoàn thành, chúng ta chạy lại OFBiz để hệ thống load lại dữ liệu được cập nhật. Tiếp theo tìm đến phần lựa chọn ngôn ngữ và đổi sang sử dụng Tiếng Việt, chúng ta có thể có được giao diện sử dụng như hình vẽ : 4.2.2. Thêm module mới Anwendungsteilnehmer ID Applying Party Id Réf. d'acteur en demande Soggetto Applicato รหสักลุ่มผูใ้ช 应聘申请人 ID phòng tuyển dụng// Việt hóa Bank Name Nom de la banque Nome Banca ช่ือธนาคาร 银行名称 Tên Ngân Hàng// Việt hóa 44 Hiện tại ứng dụng HR trong OFBiz có đầy đủ chức năng cần thiết để quản trị nhân sự trong một công ty nên không cần thiết phải thêm bất kì module mới nào. Dưới đây em sẽ trình bày cách thức viết một module mẫu trong OFBiz. 4.2.2.1. Xác định mô hình dữ liệu Bước đầu tiên là xác định mô hình dữ liệu. Chúng ta muốn theo dõi từng cá nhân, sở thích của họ và tra cứu tất cả các sở thích của từng cá nhân ( hoặc tất cả mọi người có cùng 1 sở thích ). Do đó, mô hình dữ liệu ứng dụng với mỗi cá nhân, sở thích và liên kết giữa mỗi cá nhân và sở thích. Với một cơ sở dữ liệu quan hệ, chúng ta sẽ định nghĩa hai bảng, một cho người và một cho một sở thích và liên kết chúng với nhau qua một bảng thứ ba. Bảng thứ ba sẽ cho phép bạn kết hợp bấy nhiêu sở thích mà bạn mong muốn với một người và ngược lại. Bạn sẽ định nghĩa khóa ngoài(foreign key) để ràng buộc bảng thứ ba chỉ dung để chỉ người và sở thích đang có. OFBiz cũng hoạt động tương tự. Chúng ta sẽ xác định hai thực thể, trong đó chúng ta sẽ gọi là HelloPerson và HelloHobby, và xây dựng một liên kết HelloPersonHobby, sau đó thiết lập mối quan hệ giữa chúng. Mối quan hệ này được sử dụng như một ràng buộc khóa ngoài nhưng cũng cho phép chúng ta đi từ một thực thể đến một thực thể khác mà không phải tự mình nhớ từng khóa của chúng là gì (hoặc thay đổi code khi khóa thay đổi). <entity entity-name="HelloPerson" package-name="org.ofbiz.hello3" title="Entity for storing data about persons"> <entity entity-name="HelloHobby" package-name="org.ofbiz.hello3" title="Hobbies avaiable"> <entity entity-name="HelloPersonHobby" package-name="org.ofbiz.hello3" title="Entity and atribute Entity"> <relation type="one" fk-name="HPRSN_PRSN" rel-entity- name="HelloPerson"> <relation type="one" fk-name="HPRSN_HBBY" rel-entity- name="HelloHobby"> 45 Chú ý : Ở đây, chúng ta đang tạo ra một ứng dụng với mô hình dữ liệu hoàn toàn khép kín để minh họa. Nếu chúng ta xây dựng một ứng dụng thực tế, việc thực hành tốt nhất nếu chúng ta dùng lại được nhiều thực thể trong OFBiz nhất có thể, nên thay vì tạo ra HelloPerson riêng, chúng ta sẽ sử dụng các thực thể Party/ Person / PartGroup tồn tại của OFBiz. Để xác định mô hình dữ liệu, tạo ra một thư mục bên trong Aplication ( trong trường hợp này là hello3 ) và tạo ra một file entitymodel.xml và entitygroup.xmld trong thư mục entitydef. HelloPerson và HelloHobby là 2 khóa chính, và HelloPersonHobby có 2 khóa chính, trong đó nó sử dụng liên kết HelloPerson và HelloHobby. Nó được xem là sự áp dụng tốt để cung cấp một tên khóa ngoài cho các quan hệ, để giúp việc gỡ lỗi dễ dàng hơn và tránh trùng tên giữa các khóa ngoài do bạn tạo ra trong OFBiz. Điều đó cũng rất quan trọng ( nhưng rất dễ quên ) để xác định các thực thể đó trong một file khác, entitygroup.xml, trong thư mục, do đó OFBiz sẽ biết được đâu là khóa đại diện và như vậy cơ sở dữ liệu sẽ được sử dụng. Nếu không, các thực thể sẽ vẫn tồn tại trong OFBiz nhưng khi chúng ta thực sự cố gắng sử dụng chúng , chúng ta sẽ nhận được lỗi như sau : org.ofbiz.entity.GenericEntityException: Helper name not found for entity HelloPerson Cuối cùng, chúng ta phải thêm dòng dưới đây vào ofbiz-component.xml để OFBiz có thể biết sử dụng thực thể này như một phần ứng dụng của mình, phía trước Bây giờ chúng ta sẽ khởi động OFBiz, chúng ta sẽ thấy những thông báo trong consolo.log (Linux) hoặc giao diện điều khiển (Windows) , thông báo với bạn rằng thực thể của bạn đã được nạp : <entity-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel.xml"/> <entity-resource type="group" reader-name="main" loader="main" location="entitydef/entitygroup.xml"/> 5336 (main) [ UtilXml.java:242:DEBUG] XML Read 0.0070s: /home/sichen/eclipse/workspace/ofbiz/hot- deploy/hello3/entitydef/entitymodel.xml 5693 (main) [ UtilXml.java:242:DEBUG] XML Read 0.0050s: /home/sichen/eclipse/workspace/ofbiz/hot- deploy/hello3/entitydef/entitygroup.xml 46 Khi đó bạn vào webtools, bạn có thể thấy những thực thể : Click vào “All” bên phải HelloPerson bạn sẽ thấy tất cả những trường của mình : 47 Chú ý rằng bên cạnh mỗi trường là kiểu Java và kiểu SQL cho từng trường. Loại SQL được quy định trong framework/entity/filedtype/ thư mục và thay đổi tùy theo cơ sở dữ liệu bạn đang sử dụng (đang dùng trên là Derby). Nếu có bất kỳ già trị nào cho thực thể này, nó sẽ được hiển thị bên dưới các trường. 4.2.2.2. Tạo dữ liệu gốc Tiếp theo chúng ta sẽ tạo ra một số dữ liệu gốc cho sở thích của chúng ta. Trong hầu hết các ứng dụng của OFBiz, chúng ta sẽ tạo ra thư mục data trong ứng dụng và tạo file XML cho dữ liệu gốc. Chúng ta đặt tên file đó là HobbiesData.xml: File này được gọi là file phương tiện thực thể (entity engine)dạng file XML, là một định dạng tiêu chuẩn của OFBiz dùng cho việc nhập và xuất dữ liệu. Nó thực sự rất đơn giản. Sử dụng tên của thực thể ( “HelloHobby” trong trường hợp của chúng ta ) cho thẻ tên, và sử dụng tên các trường hoặc thuộc tính như bên trong các thẻ (Xem giá trị cuối cùng cho “WINE”. Các giá trị cho các trường của chúng ta có thẻ là giá trị của các thuộc tính hoặc bên trong các thẻ nội bộ(inner tags), cũng như nơi chúng có thể ở bên trong CDATA, trong trường hợp bạn có giá trị rất dài. Ngoài ra các khóa cho từng trường không cần phải là chữ hoa hoặc cách nhau bởi dấu _ , nhưng đó là quy tắc tiêu chuẩn của ứng dụng OFBiz). Bây giờ, chúng ta đã sẵn sàng để nạp dữ liệu gốc. Chuyển tới màn hình chính của ứng dụng Webtools, và chúng ta sẽ thấy liên kết “XML Import”. Nhấn Wine 48 vào nút “XML Import” và trên màn hình kế tiếp sẽ yêu cầu điền tên của tập tin của chúng ta, liên quan đến thư mục OFBiz. Tôi thường không bấm vào bất kỳ hộp kiểm tra tùy chọn nào và chỉ cần nhập “Import”. Nếu chúng ta thành công, sẽ có một màn hình tương tự trở lại và hiển thị ở dưới báo cho bạn biết có bao nhiêu giá trị được thêm vào : Nếu quá trình import dữ liệu bị hỏng, chúng ta nên đọc các thông báo lỗi từ console.log cẩn thận. Thường là do những lý do sau đây : 1. Sử dụng giá trị quá dài cho primary key. Các ID trong OFBiz thường là biến kiểu String trong Java, nhưng đối với SQL nó là kiểu 20-char VARCHAR. 2. Thiếu một khóa chính cần thiết. 3. Cố gắng nhập một trường vi phạm tính toàn vẹn của khóa ngoài. 49 Nếu chúng ta đọc cẩn thận file .log, chúng ta có thể xác định được giá trị OFBiz nào đã được tạo ra và phản ứng về dữ liệu lỗi từ hệ thống là gì. Nó cũng có thể đưa cho chúng ta một cái tên khóa ngoài hơi khó hiểu để tìm ra sự vi phạm điều kiện của khóa ngoài. Chúng ta cũng có thể nhận thấy một đường dẫn thông báo “XML Export” trên trang Webtools. Các liên kết này có thể tạo ra các thực thể XML file. Tiếp theo, chúng ta xem phần “Entity Maintenance”. Từ trang “Main”, click vào “All” bên cạnh HelloHobby, chúng ta sẽ thấy những sở thích đã được chèn vào : Ngoài các trường và giá trị của chúng ta, OFBiz cũng tự động tạo timestamps khi các giá trị đó được tạo ra và cập nhât, đồng bộ hóa dữ liệu trên nhiều trường hợp của OFBiz. Cuối cùng, OFBiz có thể tự động cài đặt các dữ liệu 50 gốc trong quá trình cài đặt, nếu chúng ta thêm dòng sau vào file ofbiz- component.xml : <entity-resource type="data" reader-name="seed" loader="main" location="data/HobbiesData.xml"/> OFBiz thực sự cho phép xác định liệu dữ liệu của bạn có phải là “gốc” hay không, có nghĩa là chúng được yêu cầu để ứng dụng của bạn chạy một cách chắc chắn , và “demo” , có nghĩa là chúng mới chỉ để dùng cho mô phỏng giới thiệu trước. 4.2.2.3. Tạo Business Logic Bây giờ chúng ta đã có mô hình dữ liệu xác định, chúng ta sẽ học cách viết một ứng dụng đơn giản với một delegator để truy cập trực tiếp vào các thực thể. Tuy nhiên, mẫu chuẩn cho các ứng dụng OFBiz, dùng để tạo ra một lớp riêng cho tầng business logic và để tạo, cập nhật và gỡ bỏ các thực thể. Delegator thường được dùng để tra cứu các giá trị một cách trực tiếp, mặc dù sự tìm kiếm phức tạp hơn được code như một service. Tạo dịch vụ là một quá trình gồm hai bước. Trước tiên, nhìn chung bạn xác định các dịch vụ chung trong một file XML, cái mà thông báo với máy dịch vụ (OFBiz service engine) rằng tham số nào dịch vụ của bạn cần lấy và có thể lấy chúng ở ( clsss và phương pháp hoặc vị trí của script). Sau đó, bạn thi hành dịch vụ trong java, OFBiz minilang hoặc các ngông ngữ scripting khác. Định nghĩa của Service thông thường ở bên trong thư mục servicedef trong ứng dụng của chúng ta và bao gồm một hoặc nhiều file services.xml. Đây là file services.xml của ví dụ: Hello 3 Services <service name ="createHelloPerson" engine="java" location="org.ofbiz.hello3.Hello3Services" invoke="createHelloPerson"> Create a HelloPerson <auto-attributes mode="IN" entity-name="HelloPerson" include="nompk" optional="true"/> <attribute name="helloPersonId" mode="OUT" type="String" optional="false"/> <service name="createHelloPersonHobby" engine="simple" location="org/ofbiz/hello3/Hello3Services.xml" invoke="createHelloPersonHobby"> Create a HelloPersonHobby which links a person and a hobby <auto-attributes mode="IN" entity-name="HelloPersonHobby" include="pk" optional="false"/> 51 Chú ý làm thế nào file services.xml chiếu đến thực thể, làm việc trực tiếp với thẻ thay vì xác định chúng hoàn toàn. Điều này giúp chúng ta tiết kiệm thời gian và ứng dụng dễ dàng duy trì hơn. Chúng ta cũng cần tham khảo các tài nguyên service trong ofbiz- component.xml. Ngoài ra, chúng ta phải tạo để chỉ rõ đường dẫn nơi để tải của ứng dụng. Đây là file ofbiz-component trong ví dụ, sau khi thêm classpaths, định nghĩa các thực thể, định nghĩa các dịch vụ và dữ liệu gốc . Bây giờ ta sẽ tạo các dịch vụ services. Một java service bên trong thư mục src/ trong ứng dụng của bạn và được ghi với kiểu mẫu sau: Một lớp public với phương thức public static lấy 2 tham số, một DispatchContext để lấy các đối tượng giống như delegator, dispatcher , vị trí và bảo mật, và một Map gọi một phạm vi : tham số dự liệu input của bạn và trả lại một bản kết quả: Java services cũng cần được biên dịch, với kiến thức của classpaths thích hợp cho những ứng dụng của OFBiz khác. Điều này liên quan đến việc xử dụng và xây ant dựng file build.xml, cái mà bạn có thể copy từ một ứng dụng khác. Nó là một tập tin tiểu chuẩn trong tất cả các ứng dụng của OFBiz. Việc xây dựng quy trình cơ bản là lấy tất cả các file trong thư mục src, biên dịch chúng và đặt chúng vào thư mục build/lib. Minilang đơn giản hơn nhiều bằng cách so sánh. Các minilang service đơn giản ở bên trong thư mục script và là một file xml với các hướng dẫn. Bởi vì chúng được thiết kế đặc biệt cho các nhiệm vụ ứng dụng phổ biến của OFBiz, chẳng hạn như tra cứu dữ liệu, lưu trữ dữ liệu, kiểm tra sự cho phép, và làm việc với các thực thể tồn tại và các services, nó có thể tạo ra các nhiệm vụ rất dễ dàng : Cuối cùng, để kiểm tra nó, chúng ta khởi động lai OFBiz để load lại tất cả các định nghĩa mới trong ofbiz-component.xml và services.xml. Sau đó mở cửa <simple-method method-name="createHelloPersonHobby" short-description="Create a Hobby-Person relationship" login-required="false"> 52 sổ beanshell và thử nghiệm các service ( Lưu ý : trước hết bạn cần tải file bshcontainer.bsh và đặt nó trong thư mục ofbiz ). Ở đây, beanshell được gọi là service dispatchet để chạy các service, và chúng đã chạy thành công, do đó, các giá trị đúng được tạo ra. Chúng ta đã tạo xong data model và service cho ứng dụng. Bước tiếp theo chúng ta sẽ đưa chúng vào web application. 4.2.2.4. Tạo Web Application Application web sẽ hiện thị danh sách những khách đã truy cập trang web và cho phép chúng ta thêm tên của mình vào danh sách này. Chúng ta cũng có thể click vào một người bất kì và thêm sở thích cho người đó từ một danh sách đã có sẵn. Chúng ta sẽ xây dựng các ứng dụng với OFBiz screen-widgets và form- widgets, từ đó chỉ ra làm thế nào những công cụ này có thể xây dựng các web application trực tiếp từ các trường của thực thể mô hình dữ liệu data model và business logic services, mà không có mã HTML lặp đi lặp lại hoặc code Java. Trước tiên, chúng ta sẽ tạo ra hai màn hình mới trong screen-widget cho trang cá nhân và sở thích. Trong mỗi trang, có hai form, một trong những form hiển thị danh sách cá nhân hoặc hiển thị sở thích, cái còn lại để thêm thực thể khác. Lưu ý ở đây rằng chúng ta không sử dung mẫu Freemaker (.ftl) nhưng thay vào đó gọi một form trực tiếp. Ngoài ra, thay vì sử dụng một script .bsh để tìm dữ liệu từ các thực thể, chúng ta đang sử dụng chỉ thị như và <entity- one> trong một phần của screen. Cả hai công cụ được thiết kế để đơn import java.util.*; import org.ofbiz.entity.GenericDelegator; import org.ofbiz.service.GenericDispatcher; import org.ofbiz.base.util.*; import org.ofbiz.entity.util.*; import org.ofbiz.security.*; import org.opentaps.common.util.*; ofbSecurity = new OFBizSecurity(); delegator = GenericDelegator.getGenericDelegator("default"); dispatcher = GenericDispatcher.getLocalDispatcher("ecommerce", delegator); admin = delegator.findByPrimaryKey("UserLogin", UtilMisc.toMap("userLoginId", "admin")); 53 giản và hiệu quả quá trình tạo ra các hình thức tiêu chuẩn bằng cách giảm sự cần thiết code hiển thị ( như FTL/HTML ) hoặc các script để tìm dữ liệu hoặc gọi dịch vụ. Bước tiếp theo là xác định các yếu tố đầu vào bằng cách sử dung form- widget OFBiz. Form-widget cho phép chúng ta xác định các form dựa trên các trường của thực thể hoặc các thông số của service, và chúng ta có thể định nghĩa các form, trong đó hiển thị một thực thể duy nhất hoặc hiện thị một danh sách dữ liệu hoặc kiểm tra một hoặc nhiều giá trị để điều khiển. Chúng ta có thể chỉ định các menu kéo xuống và tìm kiếm các thực thể liên quan, ẩn các trường, hyperlinks, các button và các widget khác. Cuối cùng, các form có thể tự động điều chỉnh khi thực thể liên quan hoặc service thay đổi. Bây giờ ứng dụng của chúng ta đã hoàn thành. Đây là trang guestbok page : 4.2.2.5. Duy trì ứng dụng 54 Cuối cùng, chúng ta quan tam đến vấn đề bảo trì. Sau khi code của bạn được viết, bạn thực sự chỉ mới bắt đầu. Nghiên cứu cho rằng nhiều hơn 50% chi phí cho ứng dụng dành cho bảo trì dài hạn, chẳng hạn như xứ lý yêu cầu người dùng thay đổi hoặc thêm tính năng mới. Với OFBiz, bởi vì các tool giao diện người dùng từ lớp business logic, data model làm việc cùng nhau, do đó việc thay đổi chúng hết sức dễ dàng. 4.3. Thử nghiệm Bước đầu ta tạo nhân viên mới trong cơ sở dữ liệu bằng cách vào tab Nhân viên, chọn Nhân viên mới. Hệ thống sẽ tự động chuyển đến trang yêu cầu nhập thông tin nhân viên bao gồm nhiều thông tin cần thiết cho mỗi cá nhân : First Name, Middle Name, Last Name, Internal Organization, Address, City…. Sau khi nhập đầy đủ thông tin nhân viên ta nhấn Save để hoàn thành quá trình nhập mới một nhân viên. 55 Tiếp theo ta vào phần Cài đặt HR để cài đặt một số yêu cầu quản lý nhân sự cho từng công ty. Trong phần này ta có thể cài đặt các thành phần : Loại kĩ năng của mỗi nhân viên trong công ty, Loại trách nhiệm, Lý do nhân viên kết thúc công việc, Chức vụ nhân viên, Lý do nghỉ việc và cấp bậc lương cho từng loại chức vụ. Tất cả những cài đặt trên đều được xác định qua ID và Description do đó rất rõ ràng và thuận tiện cho nhà quản lý. Như trên hình chúng ta thử cài đặt bậc lương cho từng thành phần nhân viên trong công ty. Gồm có từng ID bậc lương ứng với mỗi chức vụ nhân viên trong công ty như : ID = 1 ứng với nhân viên, ID = 2 ứng với trưởng phòng, ID = 3 ứng với phó giám đốc, ID= 4 ứng với giám đốc. Lương của mỗi nhân viên sẽ được tính theo hệ số tương ứng với từng ID, ngoài ra còn có chức năng quản lý Lương ưu tiên nhằm tăng lương cho một số cá nhân làm tốt công việc. 56 Ngoài ra chúng ta có thể quản lý nhân viên dựa trên các kết quả làm việc, chức vụ nhân viên, kỹ năng làm việc của từng nhân viên, thời gian xin nghỉ và tiếp tục công việc. 57 Một phần quan trọng không thể thiếu trong hệ quản trị nhân sự là quản lý tuyển dụng. Ứng viên được quản lý qua ID, chức vụ ứng tuyển, nguồn thông tin tuyển dụng, phòng ứng tuyển … 4.4. Kết luận - Hệ quản trị nhân sự của OFBiz quản lý tốt mọi mặt của một nhân viên trong công ty. Cung cấp cho nhà quản lý mọi thông tin cần thiết. - Giảm bớt chi phí cho việc quản lý, thời gian cho nhà quản lý. - Có thể thêm module mới bất cứ lúc nào và phục vụ cho bất cứ nhu cầu của công ty trong quá trình làm việc 58 Tài liệu tham khảo 1. Jonathon Wong & Rupert Howell – Apache OFBiz Development. 2. Basil Argasosy – OFBiz An Insider View 3. Sichen – Developing Application with OFBiz 4. Ts. Nguyễn Thanh Hội – Quản trị nguồn nhân lực 5. 6. 7.

Các file đính kèm theo tài liệu này:

  • pdfLuận văn- Tìm hiểu và triển khai hệ thống quản trị nhân sự dựa trên nền tảng OFBiz.pdf