ERP tích hợp các ứng dụng riêng lẻ với nhau trên một cơ sở dữ liệu thống nhất thành một hệ thống, giúp các bộ phân trong một tổ chức dễ dàng chia sẻ thông tin, tương tác với nhau, và hỗ
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 3Lời cảm ơn
Trước tiên, tôi xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới Thạc sỹ Nguyễn Thu Trang, người đã tận tình chỉ bảo và hướng dẫn tôi trong suốt quá trình thực hiện khoá luận tốt nghiệp
Tôi chân thành cảm ơn các thầy, cô đã 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 trường Đại Học Công Nghệ
Cuối cùng, tôi muốn gửi lời cảm 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
Trang 4Tóm tắt
Với sự phát triển không ngừng của công nghệ thông tin, việc ứng dụng công nghệ thông tin trong các ngành kinh tế xã hội ngày càng được quan tâm và triển khai hiệu quả như trong giáo dục, y tế và đặc biệt là các sản phẩm hỗ trợ doanh nghiệp Việc xây dựng một chương trình phần mềm duy nhất đáp ứng các nhu cầu quản lý khác nhau trong một doanh nghiệp khó khả thi, mà các sản phẩm chủ yếu là ứng dụng riêng lẻ đáp ứng nhu cầu
xử lý công việc của từng bộ phận trong tổ chức, doanh nghiệp
Sự ra đời của ERP (Enterprise Resource Planning: Hoạch định tài nguyên doanh nghiệp) đã tạo ra một bước phát triển mới ERP tích hợp các ứng dụng riêng lẻ với nhau trên một cơ sở dữ liệu thống nhất thành một hệ thống, giúp các bộ phân trong một tổ chức
dễ dàng chia sẻ thông tin, tương tác với nhau, và hỗ trợ quản lý hiệu quả nguồn tài nguyên doanh nghiệp
Đáp ứng nhu cầu thực tế, và nhận thấy các ưu điểm của hệ thống ERP, công ty cổ phần công nghệ Viettel đã triển khai ứng dụng giải pháp ERP dựa trên hệ mã mở Adempiere Khóa luận với đề tài “Ứng dụng ERP Adempiere trong quản lý hợp đồng”giới thiệu, phân tích hệ ERP mã mở Adempiere và triển khai phân hệ quản lý hợp đồng cho Công ty Viettel dựa trên nền đó
Trang 5Mục lục
Mở đầu 1
Chương 1: Giới thiệu về ERP 2
1.1 Khái niệm ERP 2
1.2 Các thành phần chính của ERP 3
1.3 Các đặc điểm của ERP 4
Chương 2: Phân hệ quản lý hợp đồng trong ERP và các yêu của bài toán quản lý hợp đồng ở Viettel Technology 7
2.1 Nhu cầu và ý nghĩa của việc quản lý hợp đồng 7
2.2 Yêu cầu bài toán về quản lý hợp đồng ở Công ty Viettel Technology 7
2.2.1 Yêu cầu chức năng quản lý hợp đồng mua 8
2.2.2 Yêu cầu chức năng quản lý hợp đồng bán 11
Chương 3: Kiến trúc hệ thống phần mềm nguồn mở ERP Adempiere 13
3.1 Tổng quan về adempiere 13
3.2 Kiến trúc cơ bản của một ứng dụng trên Adempiere 14
3.2.1 Lớp PO 14
3.2.2 DocAction 16
3.2.3 Window 17
3.2.4 Process 21
3.2.5 WorkFlow 21
3.3 Đánh giá về hệ thống Adempiere 21
Chương 4: Phân tích và triển khai phân hệ quản lý hợp đồng trên Adempiere ở Viettel Technology 23
4.1 Phân tích và triển khai bài toán quản lý hợp đồng mua trên Adempiere 23
4.1.1 Quy trình xử lý 23
Trang 64.1.1.1 Quy trình xử lý 23
4.1.1.2 Mô tả các bước trong quy trình 23
4.1.2 Mô tả Use Case mức cao 24
4.1.3 Biểu đồ phân rã chức năng 25
4.1.4 Mô hình ER 26
4.1.5 Triển khai trên Adempiere 27
4.1.5.1 Xây dựng window cho quản lý hợp đồng mua 27
4.1.5.2 Gắn vào menu 32
4.1.5.3 Tạo workflow cho chức năng quản lý hợp đồng mua 33
4.1.5.4 Gắn workflow với Process 44
4.2 Phân tích và triển khai bài toán quản lý hợp đồng bán trên Adempiere 46
4.2.1 Mô tả quy trình xử lý 46
4.2.1.1 Quy trình xử lý 46
4.2.1.2 Mô tả các bước trong quy trình 47
4.2.2 Mô tả Use Case mức cao 47
4.2.3 Biểu đồ phân rã chức năng 49
4.1.4 Mô hình ER 50
4.2.5 Triển khai trên Adempiere 51
4.3 Đánh giá hiệu quả làm việc của hệ thống 51
Kết Luận 52
Phụ lục 01: Các trạng thái và hành động cho một document 53
Phụ lục 02: Định nghĩa các cột bắt buộc có trong một table của hệ thống Adempiere 55
Tài liệu tham khảo
Trang 7Danh sách các hình
Hình 1 Tổng quan hệ thống ERP và các thành phần chính 3
Hình 2 Mô hình kiến trúc hệ thống Adempiere [8] 13
Hình 3 “Window, Tab & Field” của Adempiere 18
Hình 4 “Table & Column” của Adempiere 19
Hình 5 Tạo Menu của Adempiere 20
Hình 6 Mô tả quy trình quản lý hợp đồng mua [4] 23
Hình 7 Mô hình Use Case mức cao-Quản lý hợp đồng mua [4] 24
Hình 8 Biểu đồ phân rã chức năng-Quản lý hợp đồng mua 25
Hình 9 Mô hình ER-Quản lý hợp đồng mua 26
Hình 10 Tạo bảng VTT_BuyingContract 28
Hình 11 Tạo cửa sổ “VTT Buying Contract” 29
Hình 12 Tạo tab VTT Buying Contract 30
Hình 13 Tạo tab Payment Progress 31
Hình 14 Tạo tab Supplying Product 32
Hình 15 Tạo Menu “VTT Buying Contract” 33
Hình 16 Tạo mới các role xử lý workflow 34
Hình 17 Tạo workflow “Buying Contract” 35
Hình 18 Tạo node Start workflow “VTT Buying Contract” 36
Hình 19 Tạo node Prepare workflow “VTT Buying Contract” 37
Hình 20 Tạo node Approved workflow “VTT Buying Contract” 38
Hình 21 Tạo node Doc Complete workflow “VTT Buying Contract” 39
Hình 22 Tạo node Doc Auto workflow “VTT Buying Contract” 40
Hình 23 Tạo node Send Request workflow “VTT Buying Contract” 41
Hình 24 Tạo node Update Payment Progress 42
Trang 8Hình 25 Tạo node Update Performance Progress 43
workflow “VTT Buying Contract” 43
Hình 26 Hiển thị workflow “VTT Buying Contract” 44
Hình 27 Tạo Process cho workflow “VTT Buying Contract” 45
Hình 28 Gắn process “Buying Contract Process” vào trường Doc Action 46
Hình 29 Mô tả quy trình quản lý hợp đồng bán [4] 47
Hình 30 Mô hình Use Case mức cao-Quản lý hợp đồng bán [4] 48
Hình 31 Biểu đồ phân rã chức năng-Quản lý hợp đồng bán 49
Hình 32 Mô hình ER-Quản lý hợp đồng bán 50
Trang 9Bảng ký hiệu và chữ viết tắt
2 CNTT Công nghệ thông tin
3 ERP Enterprise Resource Planning
4 ER Entity Relationship
5 VTT Viettel Technology
Trang 11Mở đầu
Trong vài năm trở lại đây, cùng với sự phát triển của CNTT, ERP đã nhanh chóng trở thành giải pháp được nhiều công ty đầu tư thích đáng do những lợi ích to lớn mà nó mang lại ERP là một trong ba mũi nhọn có tính chất đột phá cho hướng đi của công nghệ phần mềm Việt Nam Với dự đoán về sự bùng nổ áp dụng ERP trong vòng hai tới ba năm tới, đây sẽ là một thị trường lớn cho các doanh nghiệp phần mềm Việt Nam có sản phẩm ERP
Dựa vào nhu cầu về ứng dụng quản lý hợp đồng của công ty cổ phần công nghệ Viettel (Viettel Technology), nội dung của khóa luận được hình thành và được tập trung giải quyết
Cấu trúc khóa luận gồm bốn chương:
Chương 1: Giới thiệu về ERP
Chương 2: Phân hệ quản lý hợp đồng trong ERP và các yêu cầu của bài toán
quản lý hợp đồng ở Viettel Technology
Chương 3: Kiến trúc hệ thống phần mềm nguồn mở ERP Adempiere
Chương 4: Phân tích và triển khai phân hệ quản lý hợp đồng trên Adempiere ở
Viettel Technology
Phần Kết Luận tổng kết và tóm lược nội dung của khóa luận
Trang 12Chương 1: Giới thiệu về ERP
1.1 Khái niệm ERP
ERP là viết tắt của cụm từ “Enterprise Resource Planning” có thể dịch là “Hoạch định tài nguyên doanh nghiệp”.Theo [1] ERP được định nghĩa là một hệ thống ứng dụng
đa phân hệ” (Multi Module Software Application) giúp tổ chức, doanh nghiệp quản lý các nguồn lực và điều hành tác nghiệp Bản chất ERP là một hệ thống tích hợp các phần mềm ứng dụng đa phân hệ nhằm giúp tổ chức, doanh nghiệp quản lý các nguồn lực và tác nghiệp Giải pháp ERP cung cấp cho các nhà quản lý doanh nghiệp khả năng quản lý và điều hành tài chính – kế toán, quản lý vật tư, quản lý sản xuất, quản lý kinh doanh và phân phối sản phẩm, quản lý dự án, quản lý dịch vụ, quản lý khách hàng, quản lý nhân sự, các công cụ dự báo và lập kế hoạch, báo cáo, v.v Thêm vào đó, như một đặc điểm rất quan trọng mà các giải pháp ERP cung cấp cho các doanh nghiệp, là một hệ thống quản lý với quy trình hiện đại theo chuẩn quốc tế, nhằm nâng cao khả năng quản lý điều hành doanh nghiệp cho lãnh đạo cũng như tác nghiệp của các nhân viên
Trang 131.2 Các thành phần chính của ERP
Một hệ thống ERP gồm năm thành phần chính được thể hiện trong hình 1
Hình 1 Tổng quan hệ thống ERP và các thành phần chính
a Quản lý nguồn lực tài chính (FRM-Finance Resource Management)
Là chức năng giúp doanh nghiệp theo dõi, quản lý được các nguồn lực tài chính, từ
đó đưa ra được các kế hoạch sản xuất kinh doanh phù hợp với tình hình tài chính của doanh nghiệp
b Lập kế hoạch sản xuất (MRP-Manufacturing Resource Planning)
Đây là chức năng giúp nhà quản lý có thể lập kế hoạch sản xuất kinh doanh trước cho doanh nghiệp dựa trên các nguồn lực tài chính, nhân lực…có sẵn nhằm tối ưu hóa các nguồn lực này
c Quản lý quan hệ khách hàng (CRM-Customer Relationship Management)
Là chức năng giúp doanh nghiệp theo dõi, quản lý được thông tin về các đối tác, khách hàng từ đó đưa ra những đối sách phù hợp với các đối tác, khách hàng này
Hệ thống ERP
Quản lý nguồn lực tài chính
Quản lý chuỗi cung ứng
Quản lý nhân sự
Lập kế hoạch sản xuất
Quản lý quan hệ khách hàng
Trang 14d Quản lý chuỗi cung ứng (SCM-Supply Chain Management)
Là chức năng giúp doanh nghiệp tham gia vào quá trình mua bán
e Quản lý nhân sự (HRM-Human Resource Management)
Đây là một chức năng rất quan trọng, đảm bảo sử dụng nguồn nhân lực một cách hiệu quả
Trong mô hình ta thấy cả năm thành phần được tích hợp trong một hệ thống chung
là ERP System Hệ thống ERP có tác dụng điều phối các hoạt động của cả năm thành phần, mỗi thành phần có thể tương tác trực tiếp với ERP System hoặc có thể tương tác gián tiếp với nhau thông qua một kênh chung là ERP System
1.3 Các đặc điểm của ERP
Trong bài giới thiệu ERP của FAST [2] đã nêu năm đặc điểm của một hệ ERP do Marcelino Tito Torres đưa ra:
- ERP là một hệ thống tích hợp quản trị sản xuất kinh doanh (Integrated Business Operating System) Tích hợp-có nghĩa là mọi công đoạn, mọi người, mọi phòng ban chức năng đều được liên kết, cộng tác với nhau trong một quá trình hoạt động sản xuất kinh doanh thống nhất
- ERP là một hệ thống do con người làm chủ với sự hỗ trợ của máy tính (People System Supported by the Computer) Những cán bộ chức năng, nghiệp vụ mới là chính, còn phần mềm và máy tính chỉ là hỗ trợ Người sử dụng phải được đào tạo cẩn thận, tính tích cực của từng nhân viên là các yếu tố quyết định
- ERP là một hệ thống hoạt động theo quy tắc (Formal System), nghĩa là các hoạt động phải tuân theo các quy tắc và các kế hoạch rõ ràng Kế hoạch sản xuất kinh doanh phải được lập ra theo năm, tháng, tuần; hệ thống sẽ không hoạt động khi không có kế hoạch; các quy tắc, quy trình xử lý phải được quy định trước
- ERP là hệ thống với các tránh nhiệm được xác định rõ (Defined Responsibilities)
Ai làm việc gì, trách nhiệm ra sao phải được xác định rõ trước
- ERP là hệ thống liên kết giữa các phòng ban trong công ty (Communication among Departments) Các phòng ban làm việc, trao đổi, cộng tác với nhau chứ không phải mỗi phòng ban là một cát cứ
Trang 15ERP giúp loại bỏ các hệ thống phần mềm riêng lẻ ở các bộ phận trong một doanh nghiệp: Tài chính, Nhân sự, Kinh Doanh, Sản xuất, Kho và thay thế tất cả bằng một chương trình phần mềm hợp nhất phân chia theo các phân hệ phần mềm khác nhau, tạo nên một mối quan hệ thống nhất với nhau Nhờ vậy kế toán có thể nhìn vào kho để xem đơn hàng đã xuất cho khách hàng chưa Phần mềm ERP rất linh động trong việc cài đặt các phân hệ theo yêu cầu của doanh nghiệp Các doanh nghiệp có thể yêu cầu cài đặt một vài phân hệ mà doanh nghiệp cần, các phân hệ còn lại còn lại có thể cài đặt sau mà không ảnh hưởng đến hệ thống ERP còn có chế độ phân quyền người sử dụng linh động ngay trên giao diện sử dụng người quản trị Có chế độ bảo mật an toàn
Những lợi ích của doanh nghiệp có được sau khi triển khai ERP:
- Loại bỏ các sai sót có thể xảy ra khi nhiều người cùng nhập một dữ liệu Điều này
có thể hiểu được bởi khi áp dụng ERP thì cơ sở dữ liệu của tất cả các phòng ban trong doanh nghiệp là chung, thống nhất với nhau Việc hai người nhập cùng một dữ liệu nhưng lại có sai lệch là không thể bởi các ràng buộc về dữ liệu
- Tăng tốc độ dòng công việc Không cần phải nói nhiều, rõ ràng tốc độ của một nhân viên cầm chứng từ giấy chạy từ phòng này sang phòng khác không thể sánh với tốc
độ của chứng từ điện tử chạy trên mạng máy tính ERP còn tăng tốc độ dòng công việc bằng cách giải quyết các “nút cổ chai” Giả sử một doanh nghiệp đã trang bị cục bộ được các hệ thống phần mềm cho bộ phận kế toán và bán hàng, nhưng bộ phận kho chưa được trang bị, thì bộ phận kho lúc này sẽ trở thành một “nút cổ chai” làm chậm lại năng suất làm việc chung và bắt các bộ phận khác phải chờ ERP với tính chất đồng bộ sẽ là công
cụ để giải quyết các “nút cổ chai” này
Ngoài ra, nếu doanh nghiệp cần tính toán với dữ liệu, như từ đơn đặt hàng để tính ra khối lượng nguyên vật liệu cần mua, hoặc đưa ra kế hoạch sản xuất tối ưu cho các đơn đặt hàng, thì sẽ không có cách nào làm tay cho kịp nếu những tính toán này không được tích hợp ngay trong hệ thống quản lý
- Dữ liệu tập trung Lợi ích của việc này rất rõ ràng, thay vì duy trì nhiều CSDL (cơ
sở dữ liệu) cục bộ với dữ liệu nhiều khi không trùng khớp, doanh nghiệp sẽ có một CSDL thống nhất và tập trung Một ví dụ dễ thấy của CSDL tập trung là cho phép thường xuyên đưa ra các báo cáo chính xác và kịp thời cho lãnh đạo, khắc phục tình trạng chung trong các doanh nghiệp, nhất là doanh nghiệp lớn và phức tạp như các công ty sản xuất lớn, các
Trang 16tổng công ty, là chỉ có thể ra được báo cáo tài chính vài lần trong một năm và số liệu thường chậm so với thực tế nhiều tuần hoặc thậm chí nhiều tháng
Dữ liệu tập trung còn là tiền đề đầu tiên cho việc phân tích các dữ liệu theo nhiều góc khác nhau (Data Mining), nhằm đưa ra những báo cáo mang tính trợ giúp quyết định kinh doanh
- Dễ dàng kiểm soát một CSDL và các quy trình nghiệp vụ tập trung sẽ giúp bạn lãnh đạo dễ dàng áp dụng các cơ chế kiểm soát nội bộ Chức năng “tìm vết” (Audit Track) của hệ thống ERP cho phép nhanh chóng tìm ra nguồn gốc những bút toán cần kiểm tra, cũng như những nhân viên liên quan đến đường đi của bút toán đó
Tuy nhiên việc triển khai một hệ thống ERP cũng có những hạn chế nhất định như:
- Chi phí triển khai ban đầu cao do phải đầu tư về phần cứng và hạ tầng, bản quyền phần mềm ERP (với phần mềm ERP nguồn mở thì không cần mất kinh phí cho việc mua bản quyền) và kinh phí dịch vụ triển khai Trong ba cấu phần này thì kinh phí dịch vụ triển khai chiếm nhiều nhất
- Về thời gian triển khai, khá nhiều dự án ERP bị trễ hạn nghiệm thu do doanh nghiệp không tập trung nguồn lực và không lường trước được sự phức tạp khi triển khai
hệ thống
Việc triển khai ban đầu gặp vô vàn khó khăn nhiều khi dẫn đến sự đổ vỡ dự án, đi sâu hơn nữa vào một quy trình nghiệp vụ điển hình của ERP thì nó không cho phép ta sửa trực tiếp một lỗi nhập sai như các phần mềm kế toán thông thường khác mà nó yêu cầu phải nhập vào một phép tính bù trừ so với lỗi sai đó
- Về yếu tố con người, sự khó khăn tiên quyết khi áp dụng sơ khai ERP chính là thái
độ và sự nhìn nhận đúng đắn của lãnh đạo doanh nghiệp, đó là người có ảnh hưởng rất lớn đến hiệu quả của dự án này, kế đến là việc nhận thức chưa đúng mức về ERP của cán bộ nhân viên khác, trình độ tin học của mỗi người là khác nhau, sự chấp nhận thay đổi so với cái cũ của mỗi người là khác nhau
Trang 17Chương 2: Phân hệ quản lý hợp đồng trong ERP và các yêu của bài toán quản lý hợp đồng ở Viettel Technology
Quản lý hợp đồng là một phân hệ nằm trong thành phần quản lý chuỗi cung ứng của
hệ thống ERP Quản lý hợp đồng là một phần quan trọng trong tổng thể của hệ thống ERP, nó có chức năng như là xương sống đảm bảo cho mọi hoạt động sản xuất kinh doanh của một doanh nghiệp
2.1 Nhu cầu và ý nghĩa của việc quản lý hợp đồng
Trong hoạt động sản xuất kinh doanh, mỗi một doanh nghiệp đều thường xuyên phải thực hiện các hoạt động thương mại dưới dạng các hợp đồng mua và bán Các hợp đồng mua/bán thường được thực hiện bởi một đơn vị nhưng lại có liên quan đến rất nhiều phòng ban (tài chính, nhân sự, kế hoạch, kho…), và nhiều khâu quản lý trong doanh nghiệp (sản xuất, bán hàng, quan hệ khách hàng…) Vì vậy, trong khi thực hiện hợp đồng
sẽ có thể nảy sinh các vấn đề như: sự không thống nhất giữa các phòng ban về tiến độ thực hiện, thanh toán hợp đồng…; nảy sinh mâu thuẫn với khách hàng, đối tác trong việc thực thi hợp đồng… Bài toán về quản lý các hợp đồng mua/bán được đặt ra
Về mặt ý nghĩa, quản lý hợp đồng nhằm mục đích đảm bảo quá trình thực hiện hợp đồng được diễn ra thống nhất, đảm bảo hợp đồng được thực hiện đúng như đã ký kết, giảm thiểu các thiệt hại trong trường hợp phát sinh tranh chấp và có cơ sở để buộc các bên thực hiện đúng trách nhiệm của mình trong hợp đồng
Hơn nữa, việc quản lý tốt được các hợp đồng mua/bán, sẽ có tác động tích cực tới các khâu quản lý khác trong doanh nghiệp như hoạt động sản xuất, kinh doanh, tài chính, quan hệ khách hàng…
2.2 Yêu cầu bài toán về quản lý hợp đồng ở Công ty Viettel Technology
- Công ty cổ phần công nghệ Viettel (Viettel Technology) là một công ty con trực
thuộc Tập đoàn viễn thông quân đội Viettel, với các lĩnh vực hoạt động cụ thể là:
+ Cung cấp các giải pháp tích hợp hệ thống ICT (Information and communication technologies) cho Tập đoàn Viettel và các doanh nghiệp bên ngoài theo hướng giải pháp
doanh nghiệp
Trang 18+ Tư vấn thiết kế và giải pháp tự động hoá toà nhà
+ Quản lý dịch vụ thuê (Managed Service)
+ Cung cấp các dịch vụ tư vấn về tối ưu hóa mạng lưới, quy hoạch mạng lưới và công nghệ
+ Phát triển và cung cấp phần mềm
+ Sản xuất và cung cấp thiết bị phần cứng
- Là một đơn vị trực tiếp sản xuất kinh doanh trong lĩnh vực công nghệ, Viettel Technology cũng giống như các doanh nghiệp khác, hoạt động sản xuất kinh doanh luôn gắn liền với các hoạt động mua và bán Vì vậy, bên cạnh việc quản lý các hoạt động sản xuất, kinh doanh, tài chính…công ty cũng thấy được sự cần thiết của việc quản lý hợp
Thông tin chung về hợp đồng
Thông tin về tiến độ thực hiện hợp đồng
Thông tin về tiến độ thanh toán
- Các thông tin quản lý chung về hợp đồng:
Trang 19Ngiệm thu và bàn giao hàng hóa
o Thời gian cung cấp và bàn giao
o Địa điểm bàn giao
Thanh toán L/C (Letter of Credit)
Thanh toán trực tiếp
Tệp tin đính kèm
Ghi chú
- Các thông tin về tiến độ thực hiện hợp đồng:
Biên bản bàn giao và nghiệm thu
o Số biên bản
o Theo hợp đồng số
o Ngày bàn giao và nghiệm thu
o Đại diện bên A
Tên
Trang 20o Theo biên bản nghiệm thu số
o Theo hóa đơn số
Trang 212.2.2 Yêu cầu chức năng quản lý hợp đồng bán
Thông tin chung về hợp đồng
Thông tin về tiến độ thực hiện hợp đồng
Thông tin về tiến độ thanh toán
- Các thông tin quản lý chung về hợp đồng:
Người phụ trách chung (tên, email, điện thoại)
Người phụ trách trực tiếp (tên, email, điện thoại)
- Các thông tin về tiến độ thực hiện hợp đồng:
Biên bản nghiệm thu
o Ngày nghiệm thu
o Khối lượng nghiệm thu
Trang 22o Giá trị nghiệm thu (Giá trị này được cộng dồn (luỹ kế) Giá trị của trường Giá trị thực hiện trong báo cáo)
o Tài khoản ký quỹ
- Các thông tin về tiến độ thanh toán:
Tình hình thanh toán: có hai kiểu thanh toán
o Thanh toán tạm ứng (Ngày thanh toán, Nợ tạm ứng, Giá trị thanh toán)
o Thanh toán theo tiến độ (Ngày thanh toán, Nợ thanh toán theo tiến độ, Giá trị thanh toán, Cho biên bản nghiệm thu nào)
Trang 23Chương 3: Kiến trúc hệ thống phần mềm nguồn mở ERP
Adempiere
Là một công ty chuyên về công nghệ, Viettel Technology đã thấy rõ được tầm quan trọng của việc ứng dụng ERP trong doanh nghiệp, giải pháp ERP phù hợp được công ty lựa chọn là hệ nguồn mở Adempiere
3.1 Tổng quan về adempiere
ADempiere là một phần mềm mã nguồn mở, được phát triển trên nền nguồn mở khác Compiere Kiến trúc của hệ thống ADempiere dựa trên nền tảng Compiere Application Dictionary hay AD Engine, nền tảng này phục vụ mô hình ba lớp Model-View-Logic
Mô hình tổng quan về hệ thống Adempiere được thể hiện như hình 2
Hình 2 Mô hình kiến trúc hệ thống Adempiere [8]
Trang 24Model Layer
Tại lớp Model, AD Engine quản lý tất cả các vấn đề liên quan đến các bảng, các trường (như việc tạo mới, cập nhật, xóa) trong Database, các kiểu dữ liệu cũng như các ràng buộc, xác thực của các trường này Nhiệm vụ của AD Engine là chuẩn bị dữ liệu cho lớp View để hiển thị ra màn hình chương trình
Tất cả các bảng và các trường được xây dựng thông qua cửa sổ AD Table & Column Trong Adempiere, một trường có thể được tự động cập nhật thông tin từ các trường khác thông qua các Callout (việc xây dựng Callout cho các trường được thực hiện bằng cách mở rộng từ lớp CalloutEngine.java)
3.2 Kiến trúc cơ bản của một ứng dụng trên Adempiere
Theo báo cáo của Phạm Anh Tuấn [7] kiến trúc cơ bản của một ứng dụng trên Adempiere gồm các thành phần:
Trang 25Là lớp quan trọng trong hệ thống, được ánh xạ vào tất cả các bảng dữ liệu trong cơ
sở dữ liệu dựa vào hai lớp con M, X và Interface I thông qua bảng AD_Table
Lớp PO: định nghĩa hầu hết các thủ tục cần thiết để thao tác với một bảng dữ liệu trong cơ sở dữ liệu như save(), delete()
Interface I: Khai báo các biến để thao tác với tên cột, các hàm get, set để lấy hoặc thiết đặt giá trị cho một cột Interface I cần được implement bởi lớp X Lớp X: là lớp extends từ lớp PO và implement interface I Trong lớp X sẽ cài đặt cho các phương thức được khai báo trong interface I (interface I và lớp X có thể được sinh ra bằng một công cụ có sẵn của hệ thống Adempiere Không cần phải viết hai lớp này)
Lớp M: là lớp extends lớp X Khi các xử lý của lớp X là chưa đáp ứng được các thao tác yêu cầu cần thiết, ta cần phải tạo thêm lớp M với quy tắc đặt tên nhất định (Quy tắc đặt tên lớp M: Với các bảng có tiền tố là một hoặc hai chữ cái thì
bỏ các chữ cái tiền tố này và ký tự “_” , thay vào đó là chữ M
Ví dụ: bảng AD_Table > MTable Với bảng có tiền tố là ba chữ cái trở lên thi
bỏ các ký tự “_” và thêm M vào phía trước VD: VTT_Abc > MVTTAbc) Khi tạo lớp M, có bốn hàm thông dụng nhất mà thường hay được override (từ lớp PO)
là các hàm:
o BeforeSave() Hàm này sẽ được gọi trước khi thực hiện hàm ghi dữ liệu Save() Sử dụng BeforeSave() cho mục đích thay đổi, kiểm tra thông tin trước khi ghi vào cơ sở dữ liệu Ví dụ: Trong CSDL có ba trường là “Đơn giá”,
“Tổng tiền”, “Số lượng”, nhưng trong cửa sổ chỉ hiển thị hai trường là “Đơn giá”, “Số lượng”, thì trước khi Save() viết BeforeSave() để tính giá trị cho
“Tổng tiền”
o AfterSave() Hàm này thực thi sau khi đã thực hiện Save() Sử dụng AfterSave() nếu dữ liệu khi ghi vào cơ sở dữ liệu tác động đến các thành phần khác của hệ thống Ví dụ như khi lưu dữ liệu ở các dòng chi tiết của một hóa đơn, thì cần cập nhật tổng tiền ở phần tổng hợp
o BeforeDelete() Tương tự BeforeSave(), BeforeDelete() thực thi trước khi thực sự xóa dữ liệu trong cơ sở dữ liệu Có thể dùng hàm này để kiểm tra các ràng buộc, xóa trước các trường trong các bảng khác có ràng buộc cha, con với bảng đang thực hiện xóa
Trang 26o AfterDelete() Hàm này thực thi sau khi xóa dữ liệu trên cơ sở dữ liệu
Ví dụ: Với bảng M_InOut trong DataBase
Bảng này sẽ được ánh xạ với các lớp và Interface sau để thao tác trong hệ thống
(Các lớp này đều có trong gói base/org/compiere/model):
Interface : I_M_InOut
public interface I_M_InOut
Class: X_M_InOut
public class X_M_InOut extends PO implements I_M_InOut
Class: MInOut extends PO
public class MInOut extends X_M_InOut implements DocAction
Trong lớp MInOut override hai hàm: BeforeSave() và AfterSave() để làm các thao tác xử lý trước và sau khi ghi dữ liệu vào cơ sở dữ liệu
Trang 27được lưu chuyển từ phòng ban này sang phòng ban khác như thế nào, trạng thái của một document là như thế nào
Để thao tác với DocAction thì phải implement nó
Ví dụ: Với lớp MInOut:
public class MInOut extends X_M_InOut implements DocAction
Đồng thời bảng trong CSDL cũng phải có các trường sau:
- Posted (Sẽ cần trường này nếu liên quan đến hoạch toán)
DocAction cần được kích hoạt bằng nút nhấn Sau khi kích hoạt sẽ chạy hàm
processIt() trong lớp M tương ứng (Với bảng M_InOut thì là hàm trong lớp MInOut)
Hai hàm được implement đáng chú ý nhất là: prepareIt() và completeIt():
- Hàm prepareIt() thực hiện tất cả các yêu cầu, các tác vụ cần thiết trước khi
document được thực hiện quá trình complete Hàm prepareIt() có thể được gọi nhiều lần cho đến khi hàm completeIt() thực thi
- Hàm completeIt() thực hiện quá trình “complete document” Sau khi thực hiện,
trạng thái của document sẽ chuyển thành “complete” và hành động tiếp theo sẽ là “close”
- Ngoài ra, hàm reActivateIT() là hàm có chức năng làm ngược lại những gì hai hàm
completeIt() và prepareIt() đã làm
Một vấn đề quan trọng khác trong quy trình là liên quan đến hoạch toán Khi người
dùng post dữ liệu để hoạch toán Gói base/src/org/compiere/acct chứa các lớp sẽ xử lý về
vấn đề hoạch toán
3.2.3 Window
Window là khái niệm thuộc tầng View
Trang 28Window là khái niệm phổ biến nhất trong Adempiere Window là nơi người dùng thao tác với dữ liệu, đồng thời cũng là nơi người phát triển hệ thống có thể làm việc để trực tiếp mở rộng hệ thống Tất cả các window đểu có một giao diện đồng nhất, và giao diện này được tạo ra trong quá trình chạy ứng dụng (Runtime) Một window sẽ có giao diện tương tự như sau:
Hình 3 “Window, Tab & Field” của Adempiere
Trang 29- Phía bên phải là chi tiết trong một tab Gồm các bản ghi (mổi bản ghi tương ứng một dòng trong cơ sở dữ liệu)
- Mỗi bản ghi gồm nhiều field
- Mỗi field là một cột dữ liệu trong cơ sở dữ liệu Tuy nhiên trong cơ sở dữ liệu, một bản ghi có thể có nhiều cột, nhưng trên window có thể chỉ được cấu hình để hiển thị một
số cột
- Có thể chuyển từ việc hiển thị nhiều dòng (grid) thành hiển thị chi tiết từng bản ghi bằng cách ấn nút Grid Toggle
Các bước tạo mới một window:
- Dùng window Table&Column để tạo mới một bảng trong cơ sở dữ liệu
Hình 4 “Table & Column” của Adempiere
- Chú ý: Tất cả các bảng (table) được tạo trong cơ sở dữ liệu của hệ thống
Adempiere đều phải có các cột được định nghĩa như phụ lục 02 (Chúng ta có thể click
Trang 30nút “Copy column from Table” rồi chọn table khác để lấy toàn bộ các cột trong table đó
VD table: Temp_temp)
- Sau khi tạo mới bảng, sử dụng window “Window, Tab & Field” để tạo mới window
- Trong tab “Tab”, tạo mới Tab và trỏ Tab này vào Table mới tạo
- Sau đó chọn “Create Field” để tạo các Field từ bảng trong cơ sở dữ liệu và chọn các Field sẽ được hiển thị trên màn hình
- Chú ý: Một bảng có thể có nhiều tab Một tab tương ứng với một bảng trong cơ sở
dữ liệu
- Sau khi tạo Window, sử dụng window “Menu” để tạo menu trỏ tới window mới tạo
Hình 5 Tạo Menu của Adempiere
Các chú ý khi tạo window:
Trang 31- Khi tạo mới Table, tạo trường có thuộc tính “Mandatory” là trường bắt buộc phải nhập
- Trường có kiểu Table, Table Direct, Search là các trường sẽ lấy dữ liệu từ các bảng khác
- Trường có kiểu là ID (identification) thì bắt buộc tên là tên_bảng +”_ID”
- Khi muốn tạo hai tab có quan hệ cha-con thì hai tab đó phải có mức (level) là i và i+1 Table trong tap i+1 phải có cột ID của table tap level i Trong tab i+1 phải khai báo
“link column” là tên của cột ID của table trong tab i
3.2.4 Process
Process là khái niệm thuộc tầng View
Process được khai báo trong window: Report & Process
Process là một lớp java tuân theo một chuẩn nhất định, process được thực thi khi một sự kiện sảy ra trong bản thân chương trình của hệ thống Adempiere (như một nút được nhấn)
Một process luôn phải có hai phương thức là:
- prepare(): làm các thao tác để chuẩn bị cho việc thực thi process
- doIt(): đoạn code thực thi chức năng của process
Thông thường một process được gán với sự kiện một nút được nhấn
3.2.5 WorkFlow
WorkFlow là khái niệm thuộc tầng Logic
WorkFlow là một quy trình nghiệp vụ Khi một lớp implement DocAction thì tức là
đã phải dựa theo một WorkFlow
Có ba loại Workflow trong Adempiere là:
- General workflow: Cung cấp hướng dẫn từng bước để hoàn thành một công việc
- Document process workflow: Bắt đầu khi processing bất kỳ document nào
- Document value workflow
3.3 Đánh giá về hệ thống Adempiere
Hiện nay, bên cạnh Adempiere chúng ta cũng thấy có rất nhiều giải pháp phần mềm ERP khác như:
Trang 32+ Nguồn mở: Openbravo, Compiere, Opentabs…
+ Nguồn đóng: SAP, Oracle, Microsoft Dynamics…
Tuy nhiên Adempiere được Viettel lựa chọn phát triển vì được cộng đồng đánh giá [9] với nhiều ưu điểm sau:
- Adempiere là một phần mềm nguồn mở và hoàn toàn miễn phí
- Hệ thống Adempiere phù hợp với những doanh nghiệp vừa và nhỏ
- Adempiere hỗ trợ sử dụng đa ngôn ngữ (trong đó có tiếng Việt), nhiều loại tiền tệ
và nhiều kiểu đối tượng là doanh nghiệp Vì vậy cho phép doanh nghiệp sử dụng Adempiere có thể cộng tác được với nhiều công ty nằm trong cùng một chuỗi cung ứng hoặc trong cùng một tập đoàn quốc gia hoặc xuyên quốc gia
- Hệ thống Adempiere ổn định, hiệu năng cao, linh hoạt, dễ sử dụng, dễ dàng trong việc bảo trì vả mở rộng các ứng dụng của sản phẩm
- Adempiere có giao diện người dùng thân thiện, trực quan, được tổ chức tốt
- Adempiere là sản phẩm được xây dựng bởi một cộng đồng phát triển nên Adempiere thường xuyên được cải tiến và tích hợp thêm những tính năng mới từ các thành viên tham gia phát triển trên toàn cầu
- Adempiere được hỗ trợ bởi nhiều công cụ để kiểm thử, nâng cấp, chuyển đổi và sửa lỗi hay cải tiến mã nguồn
- Adempiere được ứng dụng các công cụ nguồn mở hiện đại trong việc phát triển Bên cạnh những ưu điểm thì hệ thống cũng có những nhược điểm như:
- Adempiere là một hệ thống có cấu trúc khá phức tạp nên việc cài đặt là tương đối khó
- Hiệu quả của hệ thống sẽ bị ảnh hưởng khi ta thêm chức năng mới vào cấu trúc hiện tại
Trang 33Chương 4: Phân tích và triển khai phân hệ quản lý hợp đồng
trên Adempiere ở Viettel Technology
4.1 Phân tích và triển khai bài toán quản lý hợp đồng mua trên Adempiere
4.1.1 Quy trình xử lý
4.1.1.1 Quy trình xử lý
Quy trình xử lý bài toán quản lý hợp đồng mua được mô tả như dưới đây (Tài liệu đặc tả yêu cầu người dùng dự án ERP-VTT [4]):
Hình 6 Mô tả quy trình quản lý hợp đồng mua [4]
4.1.1.2 Mô tả các bước trong quy trình
Theo tài liệu đặc tả yêu cầu người dùng dự án ERP-VTT [4] quy trình xử lý của bài toán quản lý hợp đồng mua qua các bước:
- Bước 1: Đơn vị, phòng ban có nhu cầu lập hợp đồng
- Bước 2: Phòng Đầu tư kiểm tra hợp đồng Nếu đồng ý thì chuyển qua phòng Tài
chính, nếu không đề nghị sửa