BGEAR Co., LTD.

Alfresco - Enterprise Content Management

B-LINK

หลังจากการยื่นเอกสารที่ร้องขอในการร้องขอการซื้อ – พีอาร์หรือคำสั่ง – PO นอกจากนี้ยังมีข้อ จำกัด ในการแลกเปลี่ยนข้อมูลระหว่างโปรแกรมประยุกต์และขั้นตอนการอนุมัติภายในระบบที่ ECM ความคิดที่จะนำข้อดีของระบบ ECM ที่มีการใช้อยู่ในปัจจุบันในองค์กรเพื่อเพิ่มประสิทธิภาพการแลกเปลี่ยนข้อมูลความหลากหลายของแอพลิเคชันที่มีและยังคงใช้ขั้นตอนการอนุมัติภายในระบบโดยมีวัตถุประสงค์หลักเพื่อตอบสนองความ ความต้องการขององค์กร

» ที่ปรึกษา: คุณณิชาภา รวิขจีพรรณ 086-896-2655 / nichapa@bgear.co.th

Table of Contents

แนะนำ B-LINK - Integration Services
การใช้ B-LINK ในการทำ Auto Start BLeaf Workflow
ทดสอบการเชื่อต่อกับ BLeaf Workflow โดยการใช้ BLINK

แนะนำ B-LINK - Integration Services

เป็น Solution ของ BGear ที่ทำหน้าที่ในการเชื่อมโยง Application ต่างๆ เข้าด้วยกัน ไม่ว่าจะเป็นการ Integration ระหว่างระบบอื่นๆ กับ Alfresco หรือเป็นการ Integration ระหว่าง modules ต่างๆ ของ BGear เอง ซึ่งถือว่า B-LINK นั้น เป็น modules ที่ช่วยสร้างการเชื่อมโยงให้สมบูรณ์ยิ่งขึ้นและช่วยให้ผู้ใช้งานสามารถใช้ทรัพยกรต่างๆ  ที่มีอยู่ให้เกิดประโยชน์สูงสุด หากจะอธิบายว่า B-LINK คืออะไร สามารถอธิบายง่ายๆ ว่า B-LINK คือ REST API ซึ่งมีหน้าที่เกี่ยวกับการ Import หรือ Export เอกสารจาก Alfresco รวมไปถึงรองรับการ Auto Start BLeaf Workflow จากระบบอื่นๆ ที่มาเชื่อมต่อด้วย
Top

การใช้ B-LINK ในการทำ Auto Start BLeaf Workflow

โดยปกติการพัฒนา Workflow ใน Alfresco นั้น ต้องใช้ความรู้ความเข้าใจเกี่ยวกับ Activiti และใช้เวลาในการพัฒนาค่อนข้างนาน ดังนั้น BLeaf Workflow
Solution จึงถูกพัฒนาเพื่อให้การทำ Workflow ใน Alfresco เป็นไปด้วยความรวดเร็ว สะดวก และมีประสิทธิภาพ ซึ่งแน่นอนว่าการใช้งาน Workflow นั้น บางครั้ง
อาจจะต้องมีการเชื่อมโยงมาจากระบบงานอื่นๆ ด้วย เช่น การสร้าง PR หรือ PO จากระบบ ERP จากนั้นจึงส่งข้อมูลและรายละเอียดต่างๆ มาทำการ Auto Start
Workflow เพื่อทำการอนุมัติในAlfresco ซึ่งการทำงานในลักษณะนี้ เราจะนำ B-LINK มาใช้ในการเป็นตัวกลางในเชื่อมต่อระหว่าง Application ต่างๆ กับ Alfresco
Top

ทดสอบการเชื่อต่อกับ BLeaf Workflow โดยการใช้ B-LINK

1. ผู้ใช้งานสามารถทดสอบ Workflow ที่ต้องการเชื่อมต่อกับ B-LINK ได้ ซึ่งในกรณีนี้ จะใช้ Workflow ชื่อ Purchase Request ตามรูปด้านล่าง
blink1
2. รายละเอียดของ eFrom ที่สร้างขึ้นเพื่อกรอกรายละเอียดจะปรากฎดังรูปด้านล่าง
blink2
3. ในการใช้งนตามปกติ ผู้ใช้งานจำเป็นต้องกรอกข้อมูลใน eForm ให้ครบถ้าวน และทำการกดปุ่ม "Replace Fields" เพื่อให้ระบบสร้างใบปะหน้า
จากนั้นจึงเลือกว่าจะดำเนินการอย่างไรในขั้นตอนถัดไป
- จะส่งอนุมัติเลยโดยการกดปุ่ม Send for Approval
- หรือเลือก Save Draft เพื่อพิมพ์เก็บไว้ก่อน ยังไม่ต้องส่ง
4. หลังจากที่ Click เลือก "Send for Approval" แล้ว Workflow จะถูกStart ตามเงื่อนไขที่กำหนดไว้ใน Activiti Workflow
5. จากที่กล่าวมาข้างต้น B-LINK จะเข้ามามีบทบาท คือ บ้างครั้ง Workflow อาจจะไม่ได้เริ่มต้นจาก BLeaf แต่จะเริ่มต้นจากระบบ ERP เช่น มีการเปิด PR จาก
ระบบ ERP แล้วให้ BLeaf ทำการ Start Workflow โดยอัตโนมัติ ซึ่งการทำงานในลักษณะนี้ จะใช้ B-Link ในการพัฒนาครับ
6. ขั้นตอนการ Setup เพื่อเริ่มเขียน การทำ Auto Start Workflow โดยใช้ BLink ให้ทำการเปิด IDE ตัวที่ต้องการ จากตัวอย่างจะใช้ eclipse ในการพัฒนา
7. อันดับแรกต้องทำความเข้าใจก่อนว่า BLINK เป็น REST API (REST หรือ Representational State Transfer ซึ่งเป็นวิธีในการสร้าง Web Service รูปแบบ
หนึ่งที่ต้องอาศัย HTTP Method ในการทำงาน) ดังนั้นต้องจำเป็นต้องทำการ Get Ticket โดยการส่งค่า Parameters ต่างๆ เช่น Host, Port, User Name และ
Password เพื่อให้ได้ Ticket มา ดังรูปด้านล่าง
blink3
จากตัวอย่าง Source Code ด้านบน จะสามารถอธิบายเพิ่มเติมดังนี้
บรรทัดที่ 7 เป็นการ Create HttpHost Object โดยการใส่ชื่อ Host, Post และ Protocal
บรรทัดที่ 10 เป็นการ Create HttpGet Object โดย URL ที่ใส่ไว้ เป็น REST ของ Alfresco (/alfresco/service/api/login?u=admin&pw=password) และมี
Parameter ที่จำเป็นต้องกรอกคือ User Name และ Password ของ User ใน Alfresco
บรรทัดที่ 14-15 ใช้ httpClient.execute เพื่อให้ได้ HttpEntity (Return ค่ามาเป็น XML)
บรรทัดที่ 25-34 ทำการ Get เฉพาะค่า ticket ออกมา
บรรทัดที่ 42 Return ค่า Ticket (Type เป็น String) ออกมาจาก Function
 
8. หลังจากที่ได้ Ticket มาเราจะใช้ Ticket มาเรียก Method ของ B-LINK ซึ่งมีอยู่ด้วยกัน 2 Method ด้วยกัน คือ startBleafWorkflow
และ saveBleafWorkflow ซึ่งทั้ง 2 Method นั้นจะส่ง Parameters เหมือนกัน แตกต่างกันตรงที่ startBleafWorkflow จะเป็นการ Start Workflow เลย
เปรียบเสมือนเรากดปุ่ม Send for Approval นั่นเอง ส่วน saveBleafWorkflow จะเปรียบเหมือนกับการกดปุ่ม Save Draft นั่นเอง
blink4-2
จากตัวอย่าง Source Code ด้านบน จะสามารถอธิบายเพิ่มเติมดังนี้
บรรทัดที่ 4-28 เป็น String เดียวกัน เพียบแต่ปรับ Concat เพื่อให้ดูง่ายเท่านั้นเอง โดยจะเริ่มต้นด้วย URI ของ mehtod ที่จะ Start http://bgeardemo.com/alfresco/s/bgear/memo/startBleafWorkflow
จะพบว่า Parameter ที่จะต้องรับหรือส่งมีหลายตัวค่า ได้แก่
Parameter Example Source of Data
alf_ticket TICKET_0a748bc2543f2b271dc4cb 9955c11a042cad72cd เกิดจาก Code การ Get Ticket ซึ่งเป็น Standard API ของ Alfresco /alfresco/service/api/login
id เป็น System Field ไม่ต้องกำหนดค่า
hId 7 ระบุ Header ID ของ BLeaf สามารถตรวจสอบโดยมีขั้นตอนดังนี้
1. ไปที่ BLeaf Admin
2. ให้เลือก Modules, เลือก Memo จากนั้นคลิกที่ Tab หัวเรื่อง ซึ่งผู้ใช้งานจะสังเกตุเห็น Header ID ของ BLeaf จากตัวอย่าง คือ BGEAR hId จะมีค่าเท่ากับ 7
blink5
status เป็น Reserve Field ไม่จำเป็นต้องกำหนดค่า
content1 เป็น Reserve Field ไม่จำเป็นต้องกำหนดค่า
workflow_id 2 เป็นค่าของ Workflow Pattern สามารถตรวจสอบโดยมีขั้นตอนดังนี้
1. ไปที่ BLeaf Admin
2. ให้เลือก Main, เลือก Tab "Settings" จากนั้นเลือก Workflow Pattern จาก Drop-down List
3. เลือก id ของ Workflow Pattern ที่ต้องการ จากตัวอย่างคือ Approve & Reject ทุกลำดับ ซึ่งจะมีค่าเท่ากับ 7 blink6
format_id 31 เป็นค่าของ Workflow Pattern สามารถตรวจสอบโดยมีขั้นตอนดังนี้
1. ไปที่ BLeaf Admin
2. ให้เลือก Modules, เลือก Memo จากนั้นคลิกที่ Tab Form & Report
3. เลือก id ของ eForm ที่ต้องการ จากตัวอย่างคือ MATCO:แบบฟอร์มการขอใช้รถ ซึ่งจะมีค่าเท่ากับ 31 blink7
approval_matrix_id 19 เป็นค่าของ Workflow Pattern สามารถตรวจสอบโดยมีขั้นตอนดังนี้
1. ไปที่ BLeaf Admin
2. ให้เลือก Modules, เลือก Memo จากนั้นคลิกที่ Tab Approval Matrix
3. เลือก id ของสายอนุมัติที่ต้องการ จากตัวอย่างคือ ทั่วไป: ขออนุมัติแบบฟอร์มใช้รถ (Car Approval) ซึ่งจะมีค่าเท่ากับ 19 blink8
field1 เป็น Reserve Field จากตัวอย่างมีการ Mapping กับค่า LOCATION ของ Current User Profile ไว้กับ Field นี้ สามารถตรวจสอบโดยมีขั้นตอนดังนี้
1. ไปที่ BLeaf Admin
2. ให้เลือก Modules, เลือก Memo จากนั้นคลิกที่ Tab Header
3. จากตัวอย่าง field1 นั้นจะผูกไว้กับ File ที่ชื่อ LOCATION blink9 4.เลือก icon รูปดินสอ เพื่อทำการแก้ไขหรือดูค่า Cofiguraiton ของ Field5 เลือกที่ชื่อด้านบนมุมขวา จากนั้นเลือก My Profile จะเห็นว่าค่า LOCATION ของผู้ใช้งานคือ BGear blink10  
field2 เป็น Reserve Field ไม่จำเป็นต้องกำหนดค่า
field3 OTR11 เป็นค่า id ของ Workflow Template ID สามารถตรวจสอบโดยมีขั้นตอนดังนี้
1. ไปที่ BLeaf Admin
2. ให้เลือก Modules, เลือก Main จากนั้นคลิกที่ Workflow Type จาก Drop-down List
3.เลือก id ของ Workflow Type ที่ต้องการ ตัวอย่าง คือ ทั่วไป: ขออนุมัติแบบฟอร์มใช้รถ (CAR Approval) ซึ่งมี id ซึ่งจะมีค่าเท่ากับ OTR11 blink12
field4 test เป็น Reserve Field จากตัวอย่างมีการ Mapping กับค่า TITLE สามารถตรวจสอบโดยมีขั้นตอนดังนี้
1. ไปที่ BLeaf Admin
2. ให้เลือก Modules, เลือก Memo จากนั้นคลิกที่ Tab Header
3. จากตัวอย่าง field4 นั้นจะผูกไว้กับ File ที่ชื่อ TITLE (อ้างอิงรูปจาก field1)
4.ในการใช้งานโดยทั่วไป จะแสดงหน้าจอดังรูป (สามารถดูวิธีการใช้งานจากบทความ BLeaf) blink13
field5 ผู้มีอำนาจอนุมัติ เป็น Reserve Field จากตัวอย่างมีการ Mapping กับค่า TO สามารถตรวจสอบโดยมีขั้นตอนดังนี้
1. ไปที่ BLeaf Admin
2. ให้เลือก Modules, เลือก Memo จากนั้นคลิกที่ Tab Header
3. จากตัวอย่าง field5 นั้นจะผูกไว้กับ File ที่ชื่อ TO (อ้างอิงรูปจาก field1)
4.ในการใช้งานโดยทั่วไป จะแสดงหน้าจอดังรูป (สามารถดูวิธีการใช้งานจากบทความ BLeaf) blink14
field6 เป็น Reserve Field ไม่จำเป็นต้องกำหนดค่า
field7 ทั่วไป: ขออนุมัติแบบฟอร์มใช้รถ (Car Approval) เป็น Reserve Field จากตัวอย่างมีการ Mapping กับค่า Workflow Type สามารถตรวจสอบโดยมีขั้นตอนดังนี้
1. ไปที่ BLeaf Admin
2. ให้เลือก Modules, เลือก Main จากนั้นคลิกที่ Workflow Type จาก Drop-down List
3.เลือก id ของ Workflow Type ที่ต้องการ ตัวอย่าง คือ ทั่วไป: ขออนุมัติแบบฟอร์มใช้รถ (CAR Approval) ซึ่งมี id ซึ่งจะมีค่าเท่ากับ OTR11 (อ้างอิงรูปจาก field3)
field8 เป็น Reserve Field ไม่จำเป็นต้องกำหนดค่า
field9 เป็น Reserve Field ไม่จำเป็นต้องกำหนดค่า
field10 เป็น Reserve Field ไม่จำเป็นต้องกำหนดค่า
remark จากตัวอย่างมีการ Mapping กับ Field REMARK สามารถตรวจสอบโดยมีขั้นตอนดังนี้
1. ไปที่ BLeaf Admin
2. ให้เลือก Modules, เลือก Main จากนั้นคลิกที่ Tab Header
3. จากตัวอย่าง remark นั้นจะผูกไว้กับ File ที่ชื่อ REMARK (อ้างอิงรูปจาก field1) blink15
requested_time 2016-10-31T00:00:00 วันที่สร้าง Memo สามารถตรวจสอบโดยมีขั้นตอนดังนี้
1. ไปที่ BLeaf Admin
2. ให้เลือก Modules, เลือก Main จากนั้นคลิกที่ Tab Header
3. จากตัวอย่าง requested_time นั้นจะผูกไว้กับ File ที่ชื่อ REQUESTED_IME (อ้างอิงรูปจาก field1) blink16
dtls [{\"n\":\"USER_NAME\",\"v\":\"ewfewf\"},
{\"n\":\"USER_REQUESTDATE\",\"v\":\"2016-11-23T01:00:00\"},
{\"n\":\"CAR_SELECT\",\"v\":\"01\"},
{\"n\":\"DRIVER\",\"v\":\"01\"}]
รายละเอียดค่าใน BLeaf-Workflow
aug ผู้ดำเนินการหลังได้รับอนุมัติ (User)
files [] ผู้ดำเนินการหลังได้รับอนุมัติ (Group) 
fileUpload [] เอกสารแนบ 















































































































































































































Top