Tự động hóa và quy trình công việc Trong chương này, chúng tôi sẽ giới thiệu các chủ đề sau:
1
MỤC LỤC Tự động hóa và quy trình công việc ..........................................................................1 Giới thiệu....................................................................................................................4 1. Sử dụng các giai đoạn và tính năng của Kanban .................................................5 Sẵn sàng .................................................................................................................5 Làm thế nào để làm nó... ........................................................................................5 Làm thế nào nó hoạt động... ...................................................................................7 Còn nữa... ...............................................................................................................9 2. Tạo hành động máy chủ.....................................................................................10 Sẵn sàng ...............................................................................................................11 Làm thế nào để làm nó... ......................................................................................12 Làm thế nào nó hoạt động... .................................................................................15 Còn nữa... .............................................................................................................17 3. Thêm tính năng nhắn tin và theo dõi .................................................................18 Sẵn sàng ...............................................................................................................20 Làm thế nào để làm nó... ......................................................................................21 Làm thế nào nó hoạt động... .................................................................................23 Còn nữa... .............................................................................................................26 4. Sử dụng các hành động máy chủ mã Python .....................................................28 Sẵn sàng ...............................................................................................................29 Làm thế nào để làm nó... ......................................................................................30 Làm thế nào nó hoạt động... .................................................................................32 Còn nữa... .............................................................................................................33 5. Sử dụng các hành động tự động về điều kiện thời gian ....................................34 Sẵn sàng ...............................................................................................................34 Làm thế nào để làm nó... ......................................................................................35 2
Làm thế nào nó hoạt động... .................................................................................40 Còn nữa... .............................................................................................................42 6. Sử dụng hành động tự động trên điều kiện sự kiện ...........................................43 Sẵn sàng ...............................................................................................................43 Làm thế nào để làm nó... ......................................................................................44 Làm thế nào nó hoạt động... .................................................................................48 Còn nữa... .............................................................................................................49 7. Kiểm tra luồng công việc tích hợp ....................................................................50 Sẵn sàng ...............................................................................................................51 Làm thế nào để làm nó... ......................................................................................52 Làm thế nào nó hoạt động... .................................................................................55 Xem thêm .............................................................................................................56
3
Giới thiệu Các ứng dụng kinh doanh được dự kiến sẽ không chỉ lưu trữ hồ sơ, mà còn để quản lý quy trình công việc kinh doanh. Odoo bao gồm một công cụ dòng công việc, nhưng nó ngày càng được sử dụng ít hơn trong các phiên bản sau của sản phẩm. Thay vào đó, các quy tắc tự động hóa và các bảng Kanban được sử dụng bất cứ khi nào có thể. Các quy tắc tự động hóa có liên quan nhất để tùy chỉnh hơn là phát triển các mô-đun addon mới, nhưng các nhà phát triển vẫn nên quen thuộc với chúng. Làm như vậy có thể tránh các quy tắc kinh doanh được thiết kế quá mức có thể được triển khai thông qua các tùy chỉnh chức năng. Một số kỹ thuật này cũng có thể được sử dụng bởi người sử dụng điện hoặc các chuyên gia tư vấn chức năng để thêm một số tự động hóa quy trình đơn giản hơn mà không cần phải tạo các addons tùy chỉnh.
4
1. Sử dụng các giai đoạn và tính năng của Kanban Bảng Kanban là một phương pháp đơn giản để quản lý luồng công việc. Nó được tổ chức theo các cột, mỗi cột tương ứng với các giai đoạn và tiến trình các mục công việc từ trái sang phải cho đến khi chúng được hoàn thành. Có một vài tính năng được sử dụng trên nhiều bảng Kanban, cung cấp một mẫu chung cũng có thể được sử dụng trong các mô-đun tùy chỉnh của riêng chúng ta. Hãy truy cập các tính năng đó.
Sẵn sàng Để làm theo công thức này, bạn sẽ cần phải có ứng dụng Quản lý dự án đã được cài đặt
Làm thế nào để làm nó... 5
Để bắt đầu với một nhiệm vụ dự án Ban Kanban: 1. Chọn tùy chọn trình đơn Dự án trên cùng và sau đó Tạo một Dự án mới. 2. Đặt tên cho Project mới và nhấn nút Save. Tiếp theo, nhấn vào nút Thông minh tác vụ ở trên cùng bên phải của biểu mẫu. Điều này sẽ mở ra khung nhìn Kanban cho các nhiệm vụ dự án. 3. Nhấp vào thanh dọc Thêm cột mới ở bên phải, nhập Now trong hộp thoại nhỏ và nhấp vào Thêm. Lặp lại để thêm các giai đoạn Sau và Xong. 4. Di con trỏ chuột qua giai đoạn Xong và biểu tượng bánh xe răng cưa sẽ được hiển thị. Click vào nó và chọn Edit từ menu tùy chọn. 5. Trong cửa sổ Edit Columns, đánh dấu vào hộp Folded in Tasks Pipeline và lưu lại, như thể hiện trong hình bên dưới:
6
Làm thế nào nó hoạt động... Kanban là một trong các loại chế độ xem có sẵn và có thể sắp xếp các mục được nhóm theo cột. Nếu chúng ta sử dụng các giai đoạn để nhóm các mục công việc, chúng ta sẽ có một bảng Kanban. Danh sách giai đoạn có thể được cấu hình để phù hợp với nhu cầu cụ thể của người dùng. Các giai đoạn nên có một thuộc tính gấp lại, có nghĩa là cột tương ứng trong khung nhìn Kanban sẽ được hiển thị gấp lại. Các mục công việc đang được tiến
7
hành dự kiến sẽ ở giai đoạn chưa mở, và các mục bị chấm dứt, thường là Xong và Hủy, phải ở trong các giai đoạn Gấp lại. Mỗi mục công việc có một tham chiếu cho giai đoạn nó đang ở. Nó cũng có thể có một Bang Kanban, được biểu diễn bằng một đèn tín hiệu giao thông giống như, và một Ưu tiên, được đại diện bởi một ngôi sao. Các thẻ Kanban cũng có thể có một thuộc tính màu, được sử dụng cho màu nền của chúng. Trong khi giai đoạn đại diện cho trạng thái hiện tại trong quá trình cho mục công việc, Kanban State cung cấp thông tin về sự sẵn sàng của nó để tiến tới giai đoạn tiếp theo. Nó là một trường lựa chọn, thường được đặt tên là kanban_state, trong biểu mẫu và khung nhìn Kanban được sử dụng với tiện ích kanban_ state_selection và dự kiến ba tùy chọn có thể có: Giá trị trung lập màu xám, giá trị mặc định (giá trị cơ sở dữ liệu bình thường) Giá trị "Bị chặn" màu đỏ (giá trị cơ sở dữ liệu bị chặn), có nghĩa là có một số lý do để giữ lại mục công việc trong giai đoạn hiện tại Giá trị "Sẵn sàng cho giai đoạn tiếp theo" màu xanh lá cây (giá trị cơ sở dữ liệu đã hoàn thành), có nghĩa là mục công việc đã sẵn sàng để được kéo cho giai đoạn tiếp theo Ưu tiên cũng là trường Chọn và được hiển thị với tiện ích ưu tiên đặc biệt trong biểu mẫu và chế độ xem Kanban. Các tùy chọn lựa chọn được mong đợi là một chuỗi có số, bắt đầu từ 0, cho giá trị bình thường (không được gắn dấu sao) và các giá trị khác cho các tùy chọn được gắn dấu sao.
8
Còn nữa... Các giai đoạn được thêm vào các mô hình thông qua một trường Many2one tham chiếu đến một mô hình sân khấu xác định các giai đoạn có thể. Trên các khung nhìn biểu mẫu, chúng có thể được biểu diễn với sự trợ giúp của widget đường dẫn statusbar. Để biết thêm chi tiết về các khung nhìn, các widget và thiết kế các khung nhìn Kanban, bạn có thể tham khảo Chương 8, Các khung nhìn backend. Trạng thái Kanban bổ sung được hỗ trợ bởi trường Chọn và định nghĩa điển hình của nó là: kanban_state = fields.Selection ( 9
[('bình thường', 'Bình thường'), ('bị chặn', 'Bị chặn'), ('đã hoàn tất', 'Sẵn sàng cho giai đoạn tiếp theo ')], 'Kanban State', mặc định = 'bình thường') Trên các dạng xem kanban_state_selection cụ thể:
biểu
mẫu,
nó
nên
sử
dụng
tiện
ích
Về trường Ưu tiên, trường này cũng là trường Lựa chọn và số lượng tùy chọn thường nằm trong khoảng từ 2 đến 4 mục lựa chọn: priority = fields.selection ( [('0', 'Bình thường'), ('1', 'Thấp'), ('2', 'Cao'), ('3', 'Rất Cao')], 'Mức độ ưu tiên', mặc định = '0') Trong dạng xem, nó có thể sử dụng tiện ích ưu tiên cụ thể:
2. Tạo hành động máy chủ Hành động của máy chủ nhấn mạnh các công cụ tự động hóa của Odoo. Chúng cho phép chúng tôi mô tả các hành động để thực hiện. Những hành động 10
này sau đó có sẵn để được gọi bởi trình kích hoạt sự kiện hoặc được kích hoạt tự động khi các điều kiện thời gian nhất định được đáp ứng. Trường hợp đơn giản nhất là để cho người dùng cuối thực hiện một số hành động trên một tài liệu bằng cách chọn nó từ menu nút Thêm. Chúng tôi sẽ tạo một hành động như vậy cho các tác vụ dự án, để Đặt làm Mức độ ưu tiên bằng cách gắn dấu sao cho tác vụ hiện được chọn và đặt thời hạn cho tác vụ đó đến ba ngày kể từ bây giờ.
Sẵn sàng Chúng ta sẽ cần một cá thể Odoo với ứng dụng Project được cài đặt. Chúng tôi cũng sẽ cần Chế độ nhà phát triển được kích hoạt. Nếu không, hãy kích hoạt nó trong hộp thoại Odoo About.
11
Làm thế nào để làm nó... Để tạo một hành động máy chủ và sử dụng nó từ menu Khác, hãy làm theo các bước sau: 1. Trên menu Cài đặt trên cùng, chọn Kỹ thuật | Hành động | Mục menu Hành động máy chủ và nhấp vào nút Tạo ở đầu danh sách bản ghi.
12
2. Điền vào mẫu hành động máy chủ với các giá trị sau: Tên hành động: Đặt làm mức độ ưu tiên Mô hình cơ sở: Tác vụ Hành động cần làm: Viết trên bản ghi Cập nhật chính sách: Cập nhật bản ghi hiện tại 3. Trong hành động máy chủ, trong trường Giá trị ánh xạ, thêm các dòng sau: Là giá trị đầu tiên, chúng tôi sẽ nhập các thông số sau: Trường: Hạn chót Loại đánh giá: Biểu thức Python Giá trị: datetime.date.today () + datetime.timedelta (ngày = 3) Là giá trị thứ hai, chúng tôi sẽ nhập các thông số sau: 13
Trường: Ưu tiên Loại đánh giá: Giá trị Giá trị: 1 Ảnh chụp màn hình sau đây cho thấy các giá trị đã nhập:
4. Lưu hành động máy chủ và nhấp vào nút Thêm trong nút 'Thêm' ở trên cùng bên phải, để làm cho nút đó khả dụng trong nút Thêm của tác vụ Dự án. 5. Để dùng thử, hãy vào menu Dự án trên cùng, chọn Tìm kiếm | Task menu item, và mở một nhiệm vụ ngẫu nhiên. Bằng cách nhấp vào nút Thêm, chúng ta sẽ
14
thấy tùy chọn Đặt làm mức độ ưu tiên. Chọn nó sẽ đánh dấu nhiệm vụ và thay đổi ngày hết hạn đến ba ngày kể từ bây giờ.
Làm thế nào nó hoạt động... Các hành động của máy chủ hoạt động trên một Mô hình, vì vậy một trong những việc đầu tiên cần làm là chọn Mô hình cơ sở mà chúng ta muốn làm việc. Trong ví dụ của chúng tôi, chúng tôi đã sử dụng Nhiệm vụ dự án. Tiếp theo, chúng ta nên chọn loại hành động để thực hiện. Có một số tùy chọn có sẵn: 15
Gửi Email cho phép chọn một mẫu e-mail và sẽ sử dụng nó để gửi e-mail khi hành động được kích hoạt. Kích hoạt một tín hiệu luồng công việc thực hiện điều đó. Trong quy trình làm việc của Odoo, tín hiệu có thể được kích hoạt và được sử dụng để kích hoạt quá trình chuyển đổi luồng công việc. Khởi động một hành động khách hàng kích hoạt một hành động của khách hàng hoặc cửa sổ, giống như khi một mục trình đơn được nhấp vào. Tạo hoặc Sao chép Bản ghi mới cho phép bạn tạo bản ghi mới, trên hiện tại hoặc trên một Mô hình khác. Ghi trên Bản ghi cho phép bạn đặt các giá trị hiện tại hoặc trên một bản ghi khác. Thực thi mã Python cho phép bạn viết mã tùy ý để thực thi, khi không có tùy chọn nào khác đủ linh hoạt cho những gì chúng ta cần. Trong ví dụ của chúng ta, chúng ta đã sử dụng Write on a Record để thiết lập một số giá trị trên bản ghi hiện tại. Chúng tôi đặt Mức độ ưu tiên thành 1, để gắn dấu sao tác vụ và đặt giá trị trên trường Thời hạn. Điều này thú vị hơn, vì giá trị sử dụng được đánh giá từ một biểu thức Python. Ví dụ của chúng tôi sử dụng mô-đun Python datetime (xem https://docs.python.org/2/library/ datetime.html) để tính toán ngày ba ngày kể từ hôm nay. Có thể sử dụng biểu thức Python tùy ý ở đó, cũng như trong một số loại hành động khác có sẵn. Vì lý do bảo mật, mã được kiểm tra bởi hàm safe_eval, được triển khai trong odoo / openerp / tools / safe_eval.py. Điều này có nghĩa rằng một số hoạt động Python có thể không được phép, nhưng điều này hiếm khi chứng minh là một vấn đề.
16
Còn nữa... Mã Python được đánh giá trong một ngữ cảnh bị hạn chế, nơi các đối tượng sau đây có sẵn để sử dụng: env: Đây là một tham chiếu cho đối tượng Environment, giống như self.env trong một phương thức class. model: Đây là tham chiếu đến lớp mô hình mà hành động của máy chủ hoạt động. Trong ví dụ của chúng ta, nó tương đương với self.env ['project.task]. quy trình làm việc: Đây là một tham chiếu đến đối tượng máy chủ công cụ động cơ Odoo. Cảnh báo: Đây là tham chiếu đến openerp.exceptions.Warning, cho phép xác thực chặn các hành động không mong muốn. Nó có thể được sử dụng như: nâng cao Warning ('Message!').
17
object hoặc obj: Nó cung cấp các tham chiếu đến bản ghi hiện tại, cho phép bạn truy cập các giá trị và phương thức của trường. log: Đây là một chức năng để ghi lại các thông điệp trong mô hình ir.logging, cho phép ghi lại các thao tác trên cơ sở dữ liệu. datetime, dateutil và thời gian: Các truy cập này cung cấp quyền truy cập vào các thư viện Python.
3. Thêm tính năng nhắn tin và theo dõi Các tính năng xã hội của Odoo được sử dụng trong nhiều ứng dụng tiêu chuẩn. Chúng cung cấp một cách dễ dàng để người dùng được cập nhật và cộng tác xung quanh các tài liệu kinh doanh. Do đó, điều quan trọng đối với các mô-đun addon tùy chỉnh cũng hỗ trợ chúng. Các tính năng này được cung cấp bởi ứng dụng Thảo luận (tên kỹ thuật thư) và khía cạnh dễ thấy nhất của chúng là tường thông báo ở cuối biểu mẫu cho tài liệu doanh nghiệp, cùng với hộp người theo dõi ở bên tay phải của nó.
18
19
Sẵn sàng Chúng ta sẽ sử dụng my_module được giới thiệu trong Chương 3, Tạo các Mô-đun Odoo, định nghĩa mô hình Thư viện Sách. Bạn có thể lấy mã đó hoặc nhanh chóng tạo ra một addon xung quanh mô hình này: # - * - mã hóa: utf-8 - * từ các mô hình nhập khẩu mở, các trường class LibraryBook (models.Model): _name = 'library.book' name = fields.Char ('Tiêu đề', bắt buộc = Đúng) date_release = fields.Date ('Ngày phát hành') author_ids = fields.Many2many ('res.partner', string = 'Tác giả') Chúng ta cũng sẽ cần một tệp XML với dạng xem biểu mẫu tương ứng: