- ขั้นตอนที่ 1 : สร้าง Task Model
- Name: ใส่ชื่อของ Model เช่น leknarmModel
- Type: เลือกเป็น Content
- Content Type เลือกเป็น XML
ในหน้า Enter Content ให้ใส่ค่า
<?xml version="1.0" encoding="UTF-8"?> <model name="osdev:reviewapprovemodel" xmlns="http://www.alfresco.org/model/dictionary/1.0"> <description>Approve 2 Step Model</description> <author>Tantai Thanakanok</author> <version>1.0</version> <imports> <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/> <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/> <import uri="http://www.alfresco.org/model/bpm/1.0" prefix="bpm"/> <import uri="http://www.alfresco.org/model/system/1.0" prefix="sys" /> </imports> <namespaces> <namespace uri="th.co.osdev.model" prefix="osdev"/> </namespaces> <types> <type name="osdev:submitReviewTask"> <parent>bpm:startTask</parent> <properties> <property name="osdev:expiredate"> <title>Expired date.</title> <type>d:date</type> </property> </properties> <mandatory-aspects> <aspect>bpm:assignee</aspect> </mandatory-aspects> </type> <type name="osdev:reviewTask"> <parent>osdev:submitReviewTask</parent> <overrides> <property name="osdev:expiredate"> </property> </overrides> <mandatory-aspects> <aspect>bpm:assignee</aspect> </mandatory-aspects> </type> <type name="osdev:approveTask"> <parent>osdev:reviewTask</parent> <overrides> <property name="osdev:expiredate"> </property> </overrides> </type> </types> </model>
code ด้านบนนี้เป็นแค่ตัวอย่างเท่านั้น โดย code ดังกล่าวจะไป map กับ jPDL ที่เราวาดหลังจากนี้
เมื่อใส่ code ด้านบนนี้เสร็จแล้วให้กด Finish เพื่อไปยังหน้าถัดไป
ในหน้า Modify Content Properties ให้เลือก Model Activate ด้วยจากนั้นกด OK
- ขั้นตอนที่ 2 : สร้าง Workflow Resource Bundle
- Name: ชื่อของไฟล์.properties เช่น leknarm-messages.properties
- Type: เลือกเป็น Content
- Content Type: เลือกเป็น Plain Text
osdev_reviewApprove.workflow.title= Osdev Review , Approval of content osdev_reviewApprove.workflow.description= Osdev Review , Approval of content osdev_reviewapprovemodel.type.osdev_submitReviewTask.title=Start Review osdev_reviewapprovemodel.type.osdev_submitReviewTask.description=Submit documents for review & approval osdev_reviewapprovemodel.type.osdev_reviewTask.title=Review osdev_reviewapprovemodel.type.osdev_reviewTask.description=Review Documents to Approve or Reject them osdev_reviewapprovemodel.type.osdev_approveTask.title=Approve osdev_reviewapprovemodel.type.osdev_apporveTask.description=Approve to Finishing Documentsเมื่อใส่ค่าเสร็จแล้วให้กดปุ่ม Finish
ใน่ส่วนของ ไฟล์ Resource Bundle นั้นเราจำเป็นต้อง deploy ด้วยมือ ไม่มี option ที่จะ deploy อัตโนมัติ ดังนั้นให้เราไปที่ url
http://<host>:<port>/alfresco/faces/jsp/admin/repoadmin-console.jspแล้วพิมพ์
reload messages leknarm-messages
- ขั้นตอนที่ 3 : สร้าง Process Definition
ใน part นี้ผมขอยกตัวอย่าง การสร้าง jPDL ครับเนื่องจากถ้าลากยาวไปถึงการติดตั้งจะทำให้ยาวเกินไป ขอแยกการติดตั้งไปเป็นอีก part ละกันครับ
ให้สร้างไฟล์ process definition ที่มีรูปแบบดังตัวอย่างด้านล่างนี้
จากนั้นในส่วน code ให้ใส่ค่าตามนี้ครับ
<?xml version="1.0" encoding="UTF-8"?> <process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="osdev:reviewApprove"> <swimlane name="initiator"></swimlane> <swimlane name="reviewer"> <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment"> <actor>#{bpm_assignee}</actor> </assignment> </swimlane> <swimlane name="approver"> <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment"> <actor>#{bpm_assignee}</actor> </assignment> </swimlane> <start-state name="start"> <task name="osdev:submitReviewTask" swimlane="initiator"></task> <transition to="review"></transition> </start-state> <task-node name="review"> <task name="osdev:reviewTask" swimlane="reviewer"></task> <transition to="approve"></transition> </task-node> <task-node name="approve"> <task name="osdev:approveTask" swimlane="approver"></task> <transition to="end"></transition> </task-node> <end-state name="end"></end-state> </process-definition>
เมื่อวาด diagram และใส่ code เรียบร้อย ให้ไปที่ Tab Deployment ในส่วนของ Deployment Server Setting ให้ใส่ค่าตามนี้
- Server Name: server ของท่านเช่น localhost
- Server Port: ให้ใส่ 8080 หรือว่า port ที่ตั้งค่าไว้
- Server Deployer: ให้ใส่เป็น /alfresco/jbpm/deployprocess
- ขั้นตอนที่ 4 : แก้ไข config ให้ display workflow image
$ALF_ROOT/tomcat/webapps/alfresco/jsp/workflow/start-workflow-wizard/workflow-options.jspและ
$ALF_ROOT/tomcat/webapps/alfresco/jsp/workflow/manage-task-dialog.jspให้แก้ไข code จาก
<a:panel rendered="false" id="workflow-outline" label="#{msg.workflow_outline}" progressive="true" expanded="false" border="white" bgcolor="white" titleBorder="lbgrey" expandedTitleBorder="dotted" titleBgcolor="white" styleClass="mainSubTitle">เป็น
<a:panel rendered="true" id="workflow-outline" label="#{msg.workflow_outline}" progressive="true" expanded="true" border="white" bgcolor="white" titleBorder="lbgrey" expandedTitleBorder="dotted" titleBgcolor="white" styleClass="mainSubTitle">
- ขั้นตอนที่ 5 : สร้าง Alfresco Exploror Task Dialog
<alfresco-config> <config evaluator="node-type" condition="osdev:submitReviewTask" replace="true"> <property-sheet> <show-property name="osdev:expiredate" display-label="Expired Date"/> <show-association name="bpm:assignee" display-label-id="wf_reviewers" /> </property-sheet> </config> <config evaluator="node-type" condition="osdev:reviewTask" replace="true"> <property-sheet> <show-property name="osdev:expiredate" display-label="Expired Date"/> <show-association name="bpm:assignee" display-label-id="wf_approver" /> </property-sheet> </config> <config evaluator="node-type" condition="osdev:approveTask" replace="true"> <property-sheet> <show-property name="osdev:expiredate" display-label="Expired Date"/> </property-sheet> </config> </alfresco-config>เมื่อใส่ code เสร็จเรียบร้อยให้ไปที่ Company Home > Data Dictionary > Web Client Extension จากนั้นให้ Add Content โดยเลือกไฟล์ที่เราเพิ่งสร้าง แล้วกด Next จน Finish
จากนั้นเราต้อง deploy Web Client Extension เองโดยไปที่ url
http://<host>:<port>/alfresco/faces/jsp/admin/webclientconfig-console.jspแล้วพิมพ์คำว่า reload
เมื่อเสร็จขั้นตอนที่หมดแล้ว ให้ลอง logout ออกมาครั้งนึงก่อน จากนั้น login เข้าไปใหม่และให้ลอง test โดยการรัน workflow จากไฟล์ หรือจากที่ใดก็ได้ จะสังเกตุว่ามี custom workflow ที่เราเพิ่งสร้างเกิดขึ้นมาครับ
ที่มา - หนังสือ Alfresco 3 Enterprise Implementation
ไม่มีความคิดเห็น:
แสดงความคิดเห็น