Hình 15. Tạo Menu “VTT Buying Contract” 4.1.5.3 Tạo workflow cho chức năng quản lý hợp đồng mua
Đăng nhập vào Adempiere với tài khoản là SuperUser và Role là VTT admin.
Tạo mới các role để xử lý workflow bằng việc sử dụng chức năng Role để tạo mới các role sau: VTT Investment Dept Staff, VTT Financial Dept Staff, VTT Investment Dept Chief, VTT Financial Dept Chief .
Hình 16. Tạo mới các role xử lý workflow
Sử dụng chức năng Workflow để tạo mới workflow cho chức năng quản lý hợp đồng mua
Hình 17. Tạo workflow “Buying Contract”
Tạo mới các node cho workflow: + Node Start
Hình 18. Tạo node Start workflow “VTT Buying Contract”
Node Start sẽ khởi đầu cho một workflow + Node Prepare
Hình 19. Tạo node Prepare workflow “VTT Buying Contract”
Node Prepare sẽ chuẩn bị thiết lập các thông tin cho document.
+ Node Approved (node này được gán cho role là trưởng phòng đầu tư- Investment Dept Chief)
Hình 20. Tạo node Approved workflow “VTT Buying Contract”
Hình 21. Tạo node Doc Complete workflow “VTT Buying Contract”
Node Doc Complete đánh dấu việc một document đã được điền đầy đủ thông tin. + Node Doc Auto
Hình 22. Tạo node Doc Auto workflow “VTT Buying Contract”
Hình 23. Tạo node Send Request workflow “VTT Buying Contract”
Node Send Request sẽ là node gửi các yêu cầu về việc cập nhật tiến độ thực hiện hay tiến độ thanh toán.
+ Node Update Payment Progress (node này được gán cho role phòng tài chính- Financial Dept Staff).
Hình 24. Tạo node Update Payment Progress
Node này có chức năng cập nhật thông tin về tiến độ thanh toán.
+ Node Update Performance Progress (node này được gán cho role Phòng đầu tư- Investment Dept Staff).
Hình 25. Tạo node Update Performance Progress workflow “VTT Buying Contract”
Node này có chức năng cập nhật tiến độ thực hiện.
Hình 26. Hiển thị workflow “VTT Buying Contract” 4.1.5.4 Gắn workflow với Process
- Sử dụng chức năng quản lý Report&Process để tạo ra một process cho workflow
Buying Contract và gắn workflow vào.
o Name: Buying Contract Process
o Data Access level: chọn all.
o Report type: Standard.
o Workflow: Chọn Buying Contract
Hình 27. Tạo Process cho workflow “VTT Buying Contract”
- Sử dụng chức năng Quản lý Table, Column and Field để gắn process vào trường DocAction
o Reference: Button.
o Process: Chọn Buying Contract Process
o Reference Key: _DocumentAction
o Default Logic: CO
o Updateable: Tích chọn
Hình 28. Gắn process “Buying Contract Process” vào trường Doc Action
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 4.2.1 Mô tả quy trình xử lý 4.2.1 Mô tả quy trình xử lý
4.2.1.1 Quy trình xử lý
Quy trình xử lý bài toán quản lý hợp đồng bán đượ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 29. Mô tả quy trình quản lý hợp đồng bán [4] 4.2.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 bán 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.
- Bước 3: Phòng Tài chính kiểm tra hợp đồng. Nếu đồng ý thì chuyển lên Ban giám đốc, nếu không đề nghị sửa.
- 4: Sau khi được Ban giám đốc phê duyệt, phòng Đầu tư cập nhật tiến độ thực hiện hợp đồng, đơn vị phòng ban và Phòng đầu tư thực hiện việc xuất kho.
- 5: Phòng tài chính theo dõi và cập nhật tiến độ thanh toán của hợp đồng.
4.2.2 Mô tả Use Case mức cao
Mô hình Use Case mức cao của quy trình quản lý hợp đồng bán được mô trong tài liệu đặc tả yêu cầu người dùng của dự án ERP-VTT [4] như hình 30.
Hình 30. Mô hình Use Case mức cao-Quản lý hợp đồng bán [4]
Mô hình Use Case của Quản lý hợp đồng bán có ba tác nhân (actor) là: Đơn vị sử dụng, Phòng Đầu tư, Phòng Tài chính.
- Khi một Đơn vị sử dụng có nhu cầu, hệ thống sẽ lập một hợp đồng bán theo các yêu cầu mà Đơn vị sử dụng đưa ra.
- Khi phòng Đầu tư muốn cập nhật thông tin của hợp đồng bán, hệ thống sẽ phải hiển thị các thông tin về tiến độ thực hiện của hợp đồng, thông tin của việc xuất kho và cho phép phòng Đầu tư có thể thực hiện việc cập nhật.
- Khi phòng Tài chính muốn cập nhật thông tin của hợp đồng bán, hệ thống sẽ phải hiển thị các thông tin về tiến độ thanh toán của hợp đồng và cho phép phòng Tài chính có thể thực hiện việc cập nhật.
- Trong quá trình thực hiện hợp đồng, Đơn vị sử dụng cũng thường xuyên thực hiện việc xuất kho, hệ thống phải theo dõi và cập nhật được thông tin này để cung cấp cho phòng Đầu tư và Đơn vị sử dụng khi cần.
4.2.3 Biểu đồ phân rã chức năng
Hình 31. Biểu đồ phân rã chức năng-Quản lý hợp đồng bán
Phân hệ quản lý hợp đồng bán gồm có ba chức năng chính là: - Quản lý thông tin chung về hợp đồng
- Quản lý thông tin về tiến độ thực hiện hợp đồng
- Quản lý thông tin về tiến độ thanh toán
Mỗi chức năng sẽ được gán cho một role riêng:
- Chức năng quản lý thông tin chung về hợp đồng được gán cho Đơn vị sử dụng.
- Chức năng quản lý thông tin về tiến độ thực hiện hợp đồng được gán cho phòng Đầu tư.
- Chức năng quản lý thông tin về tiến độ thanh toán được gán cho phòng Tài chính.
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
4.1.4 Mô hình ER
Hình 32. Mô hình ER-Quản lý hợp đồng bán
Các thực thể cùng các thuộc tính trong mô hình:
- Hợp đồng: CONTRACT_ID, DEPARTMENT_ID, BPARTNER_ID, DATE, CREATBY, TOTALAMOUNT, CURRENCY.
- Đơn vị sử dụng: DEPARTMENT_ID, EMPLOYEE_ID. Ban giám đốc Hợp đồng Phòng tài chính Phòng đầu tư Đơn vị sử dụng Kho Kiểm tra Phê duyệt Y/C xuất Y/C xuất Cập nhật thực hiện Khởi tạo Cập nhật thanh toán Kiểm tra (1,1) (1,1) (1,1) (1,1) (1,n) (1,1) (1,1) (1,1) (1,1) (1,n) (1,1) (1,n) (1,n) (1,1) (1,1) (1,n) DEPARTMENT_ID EMPLOYEE_ID DEPARTMENT_ID EMPLOYEE_ID DEPARTMENT_ID EMPLOYEE_ID DEPARTMENT_ID EMPLOYEE_ID DEPARTMENT_ID EMPLOYEE_ID CONTRACT_ID BPARTNER_ID DEPARTMENT_ID DATE CREATBY TOTALAMOUNT CURRENCY
- Phòng đầu tư: DEPARTMENT_ID, EMPLOYEE_ID.
- Phòng tài chính: DEPARTMENT_ID, EMPLOYEE_ID.
- Ban giám đốc: DEPARTMENT_ID, EMPLOYEE_ID.
- Kho: DEPARTMENT_ID, EMPLOYEE_ID.
4.2.5 Triển khai trên Adempiere
Việc triển khai chức năng quản lý hợp đồng bán hoàn toàn tương tự như phần triển khai với chức năng quản lý hợp đồng mua với việc xuất phát từ bảng VTT_SellingContracct trong cơ sở dữ liệu.
4.3 Đánh giá hiệu quả làm việc của hệ thống
Qua quá trình chạy thử, kết quả là các chức năng như lập hợp đồng, cập nhật tiến độ thực hiện, cập nhật tiến độ thanh toán đã thỏa mãn được những yêu cầu ban đầu đề ra.
Trong thực nghiệm, hệ thống đã có thể hỗ trợ hàng chục người sử dụng cùng một lúc. Tuy nhiên, do cơ sở dữ liệu là tương đối lớn (vì phải xây dựng cơ sở dữ liệu chung cho cả doanh nghiệp) cho nên việc kết nối cơ sở dữ liệu là hơi mất thời gian.
Đồng thời trong quá trình thử nghiệm đã cho thấy dữ liệu luôn đạt được sự đồng nhất mặc dù đã có nhiều người dùng thuộc nhiều phòng ban cùng tác động lên dữ liệu.
Với tính năng workflow, các hoạt động mua/bán của doanh nghiệp đều đã được thực hiện theo đúng các quy trình nghiệp vụ với thời gian thực hiện được rút ngắn, các bước thực hiện đều được gán với vai trò của mỗi nhân viên, phòng ban nhất định nên việc kiểm soát trách nhiệm là đơn giản.
Kết Luận
Nhu cầu về việc triển khai ERP trong các doanh nghiệp ngày càng cần thiết, trong đó việc xây dựng module Quản lý hợp đồng là một phần quan trọng trong tổng thể hệ thống ERP chịu ảnh hưởng riêng bởi đặc trưng sản xuất kinh doanh của từng doanh nghiệp.
Khóa luận này đã giúp chúng ta tiếp cận gần hơn với một hệ thống ERP, thực hiện việc xây dựng và triển khai phân hệ Quản lý hợp đồng trong thực tế.
Khóa luận đã đạt được những kết quả sau:
- Tìm hiểu được vai trò, ý nghĩa của ERP trong doanh nghiệp.
- Tìm hiểu được một giải pháp ERP trong thực tế là Adempiere.
- Xây đựng và triển khai được ứng dụng về quản lý hợp đồng trên hệ nguồn mở Adempiere trong thực tế.
Do thời gian và kiến thức hạn chế của tác giả nên khóa luận không khỏi có những thiếu sót. Những thiếu sót này cần được bổ sung và tiếp tục hoàn thiện.
Phụ lục 01: Các trạng thái và hành động cho một document.
/* Complete = CO */
public staticfinal String ACTION_Complete = "CO";
/* Wait Complete = WC */
public staticfinal String ACTION_WaitComplete = "WC";
/* Approve = AP */
public staticfinal String ACTION_Approve = "AP";
/* Reject = RJ */
public staticfinal String ACTION_Reject = "RJ";
/* Post = PO */
public staticfinal String ACTION_Post = "PO";
/* Void = VO */
public staticfinal String ACTION_Void = "VO";
/* Close = CL */
public staticfinal String ACTION_Close = "CL";
/* Reverse - Correct = RC */
public staticfinal String ACTION_Reverse_Correct = "RC";
/* Reverse - Accrual = RA */
public staticfinal String ACTION_Reverse_Accrual = "RA";
/* ReActivate = RE */
public staticfinal String ACTION_ReActivate = "RE";
/* <None> = -- */
public staticfinal String ACTION_None = "--";
/* Prepare = PR */
/* Unlock = XL */
public staticfinal String ACTION_Unlock = "XL";
/* Invalidate = IN */
public staticfinal String ACTION_Invalidate = "IN";
/* ReOpen = OP */
public staticfinal String ACTION_ReOpen = "OP";
/* Drafted = DR */
public staticfinal String STATUS_Drafted = "DR";
/* Completed = CO */
public staticfinal String STATUS_Completed = "CO";
/* Approved = AP */
public staticfinal String STATUS_Approved = "AP";
/* Invalid = IN */
public staticfinal String STATUS_Invalid = "IN";
/* Not Approved = NA */
public staticfinal String STATUS_NotApproved = "NA";
/* Voided = VO */
public staticfinal String STATUS_Voided = "VO";
/* Reversed = RE */
public staticfinal String STATUS_Reversed = "RE";
/* Closed = CL */
public staticfinal String STATUS_Closed = "CL";
/* Unknown = ?? */
public staticfinal String STATUS_Unknown = "??";
public staticfinal String STATUS_InProgress = "IP";
/* Waiting Payment = WP */
public staticfinal String STATUS_WaitingPayment = "WP";
/* Waiting Confirmation = WC */
-publicstatic final String STATUS_WaitingConfirmation = "WC";
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.
AD_CLIENT_ID NUMERIC(10)NOT NULL,
AD_ORG_ID NUMERIC(10) NOT NULL,
ISACTIVE CHAR(1)DEFAULT 'Y' NOT NULL, CREATED DATE DEFAULT NOW() NOT NULL, CREATEDBY NUMERIC(10)NOT NULL,
UPDATED DATE DEFAULT NOW()sNOT NULL, UPDATEDBY NUMERIC(10)NOT NULL,…
Tài liệu tham khảo
Tiếng Việt:
[1] ErpVietNam,Erp là gì, http://erpvietnam.wordpress.com/2008/05/20/erp-la-gi/
[2] Fast, Giới thiệu về ERP,
http://www.fast.com.vn/index.php?option=com_content&view=article&id=330%3Agii- thiu-v-erp-fast&catid=111%3Agiai-phap-erp&lang=vi&limitstart=1.
[3] Wiki, Hoạch định tài nguyên doanh nghiệp,
http://vi.wikipedia.org/wiki/Hoạch_định_tài_nguyên_doanh_nghiệp.
[4] Lê Thị Thanh Nhàn, “Tài liệu đặc tả yêu cầu người dùng dự án ERP-VTT”, Viettel Technologies, 2009, Chương 3, Tr.20-26.
[5] TS.Đỗ Việt Nga, ThS.Đinh Kim Dung, “Giáo trình Phân tích, thiết kế, xây dựng, quản lý các hệ thống thông tin”, Viện Công nghệ thông tin, 2004, Chương 3, Tr.43-51. [6] Trần Đình Quế, Nguyễn Mạnh Sơn, “Phân tích và thiết kế hệ thống thông tin”, Học viện công nghệ bưu chính viễn thông, 2007, Chương 3, Tr.48-57.
[7] Phạm Anh Tuấn, “Báo cáo phân tích hệ thống Adempiere”, Viettel Technologies, 2009, Phần 3, Tr.22-32.
Tiếng Anh:
[8] Application Dictionary,
http://www.adempiere.com/index.php/Application_Dictionary.