Từ phiên bản 7.3, Liferay tích hợp một Engine Workflow cho phép người dùng xem xét và phê duyệt các nội dung như Blogs, Web Content và Wiki trước khi chúng được xuất bản. Workflow giúp định nghĩa bất kỳ số lượng quy trình nghiệp vụ/quy trình làm việc nào, triển khai và quản lý chúng thông qua giao diện.
- Building Workflow: Workflow được viết theo định dạng file XML với các tag được thiết kế riêng phù hợp, tuy nhiên, để dễ dàng và thuận tiện hơn, có thể sử dụng bản có giao diện chỉ việc kéo thả bằng Workflow Designer Overview.
- Activating Workflow: Giả sử khi một workflow được kích hoạt cho Blogs, nút Publish sẽ được thay thế bằng nút Submit for Workflow. Khi nhấn nút này, trạng thái của một Blog sẽ được chuyển thành Pending, và Blog đó phải trải qua workflow được chọn sử dụng trước khi được xuất bản. Ví dụ như người đăng bài submit blog của mình lên -> người quản lý phê duyệt nội dung -> public bài đăng.
Trong quá trình định nghĩa một Workflow, có thể thêm các script Groovy code vào để đưa logic và truy cập các dịch vụ Java của Liferay. Các script này sẽ được chạy trong quá trình thực thi Workflow.
Các đoạn code Groovy sẽ được thêm vào <script>
tag, <script>
tag thì được sử dụng trong <actions>
tag. Ví dụ:
<actions>
<action>
<script>
<![CDATA[script code goes here]]>
</script>
<script-language>groovy</script-language>
</action>
...
</actions>
Ngoài ra, có thể sử dụng một script để quản lý việc phân công, các <script>
tag phân công được viết trong <scripted-assignment>
tag:
<assignments>
<scripted-assignment>
<script>
<![CDATA[
...
]]>
</script>
<script-language>groovy</script-language>
</scripted-assignment>
</assignments>
Việc thêm các đoạn code Groovy này vào Workflow là không giới hạn, do đó người dùng admin khi định nghĩa một Workflow có thể thêm code Groovy độc hại nhằm thực thi lệnh hệ thống. Sẽ không có gì đáng nói nếu chỉ người dùng admin mới có quyền định nghĩa các Workflow.