[K2 blackpearl] – Serial Number ข้อสงสัยที่ทุกคนอยากรู้

สวัสดีครับ ห่างหายกันไปซะนาน สำหรับ blog เรื่องนี้จะเขียนนานแล้วก็ดองไว้ซะจนเปรี้ยวได้ที่เลย

ตอนเริ่มทำ K2 ใหม่ๆ หลายคนคงสงสัยว่า เวลา K2 ส่งงานไปหาคนที่ต้องทำงานอย่างไร?? ถ้าสังเกตกัน ตอนที่เราผูก workflow กับ form ต่างๆ K2 จะแปะ querystring เพิ่มเข้ามาใน url สิ่งนั้นคือ Serial Number นั่นเอง คนที่ทำตั้งแต่ version เก่าๆ คงจะคุ้นๆ กับ querystring SN กัน แต่หลังๆ มีการเปลี่ยนไปใช้ querystring ชื่อที่ยาวขึ้นเป็น SerialNo โดย K2 จะใช้ Serial Number อันนี้เป็นตัวตรวจสอบสิทธิ์ของ user ที่เปิด form เข้ามาใช้งาน

คำถามที่ผมพบบ่อยๆ คือ ถ้าไม่ได้เปิดจาก worklist ของ K2 หรือจาก link ได้ email เราจะหา Serial Number นี้ได้อย่างไร

  1. หาจากการใช้ API เปิด worklist เพื่อหา worklistitem ออกมา จะมี property ที่ชื่อ “SerialNumber”
  2. ถ้าไม่ได้ใช้ API SerialNumber คือ ProcessInstanceID + _ + ActivityDestinationInstanceID ดังนั้น เราสามารถสร้าง SerialNumber ได้จาก 2 ค่านี้ ถ้าเป็นใน workflow เราจะหาได้ตามรูปด้านล่าง (อันนี้ส่วนใหญ่จะเป็นกรณีสร้าง link ส่งโดยใช้ mail event)

WFProc

แต่ถ้าเราไม่ได้ใช้ workflow ในการหา Serial Number ล่ะ??? เราก็สามารถหาได้จาก SmartObject ชื่อ “Activity Instance Destination” โดยวิธีนี้สิ่งที่เรา ควรจะต้องรู้เป็นตามด้านล่างครับ

  • ตอนที่ start process ให้เก็บ process instance id ไว้ใน record ของ transaction
  • นำ process instance id ที่ได้ มา query โดยใช้ Process Instance ID ที่เก็บไว้ และ Destination (จะใช้หรือไม่ใช้ก็ได้ แต่ถ้าในกรณีแจกงานไปหลายๆ คน แนะนำให้ใช้ เพราะว่า serial number จะต่างกัน) โดย Destination จะต้องใช้ในรูป SecurityLabel:Domain\UserName นะครับ สามารถดึง current user มาแล้วเอา label กับ : ต่อข้างหน้าได้เลย
  • เมื่อ query แล้ว ให้นำ Process Instance ID + “_” + Activity Instance Destination ID ก็จะได้ Serial Number ครับ ถ้าจากตัวอย่างในรูปด้านล่าง Serial Number คือ 8_35

SMO

หวังว่า จะเป็นประโยชน์นะครับ สำหรับคราวนี้ขอลาไปเท่านี้ครับ 🙂

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s