K2 Five 5.3 Google Drive Integration

Thai blog => https://medium.com/k2-dev-th/k2-five-5-3-google-drive-integration-269d9f5afccb

English blog => https://medium.com/k2-dev-en/k2-five-5-3-google-drive-integration-23739b2430c2

 

[K2 Package and Deployment] – Deploy with PowerShell

Thai version – https://medium.com/k2-dev-th/k2-package-and-deployment-deploy-with-powershell-1b9e38f87b3b

English version – https://medium.com/k2-dev-en/k2-package-and-deployment-deploy-with-powershell-47245843b2d0

[K2 Five] – New Identity Service for K2 5.2

สวัสดีครับช่วงนี้มากันบ่อยหน่อย เพราะมีของออกใหม่เยอะ คราวนี้เป็นคิวของ Identity Service ใหม่ที่ออกมาใช้กับ K2 5.2 กันบ้าง โดย Identity Service จะเป็น service ที่ K2 เชื่อมต่อไปยัง Identity Providers (IdP) ต่างๆ เพื่อดึงข้อมูล user ที่ใช้งานมาเก็บเป็น cache ไว้ใน K2

ทำไมถึงต้องเปลี่ยนเป็นแบบใหม่

  • ในการเข้า K2 ครั้งแรก มีโอกาสที่จะเข้าใช้ได้ช้ามาก ถ้า profile ของ user นั้นยังไม่ได้ sync
  • ในบางกรณีข้อมูล identity ไม่ได้มีการ update อย่างที่ควรจะเป็น เช่น มีการเปลี่ยนข้อมูลบางอย่าง แต่บน K2 ยังเป็นของเดิม ในกรณีนี้เราต้องไปรัน script refresh identity cache และ restart K2 service
  • version เดิมมีการทำงานที่ไม่จำเป็น เช่น ไม่ได้มีการเปลี่ยนข้อมูล profile แต่ก็ยังต้อง sync มาใหม่

Concept ของแบบใหม่

  • เพิ่มการ queries แบบ Differential
  • มี logic ในการ sync ข้อมูลที่ดีขึ้น
  • backward compatibility กับ UM SmartObjects เดิม

ขั้นตอนในการใช้งาน

  • Install หรือ Update เป็น K2 5.2
  • ลง Fix Pack ล่าสุดเท่าที่ทำได้ (ณ ตอนเขียนเป็น FP03)
  • ลง New Identity Service ถ้าเป็น server farm ให้ลงที่เครื่องเดียวก็พอ เครื่องอื่นๆ ใน farm แค่ restart K2 service หลังจากลงเรียบร้อยแล้ว

Enable New Identity Service.png

  • เมื่อลงแล้ว เราจะได้ SmartObject มา 1 ชุดที่เกี่ยวกับการทำ identity service สามารถหาได้โดย search คำว่า sync ในเมนู Integration

Sync SMO

  • ให้เราเลือกที่ “Provider Instance” method “List Provider Instances”

Provider Instance

  • SmartObject จะแสดงข้อมูลออกมาให้ดูว่า เรามีการเชื่อมต่อไปยัง IdP อะไรบ้าง อย่างในตัวอย่างเครื่องผมมีแค่ต่อกับ domain DENALLIX อย่างเดียว

Provider Instance List

  • จากนั้นให้ไปเลือกที่ SmartObject “Operation” method “Start Sync” ใส่ Provider Name เป็น K2 กับ Provider Instance Name เป็น DENALLIX

Operation Start Sync

  •  หลังจากรันแล้วจะได้หน้า result ตามด้านล่าง

Operation Start Sync Result

  • ให้เราไปลองดูใน SmartObject “Run History” method “Get Run History Entries By Date Range” ลองใส่ข้อมูลเพื่อดูว่า เรารันแล้ว sync มาได้กี่ object จะเห็นว่า ได้มา 126 objects

Run History1

Run History Result1

  • จากนั้นให้ลองไปดึงข้อมูลจาก SmartObject “UMUser” ดูรายละเอียดของ user

Get UMUser1Get UMUser Result1

  • ขั้นต่อไป เราจะลองดูว่า ถ้าเรามีการ update ข้อมูลใน AD เราต้องทำอย่างไรบ้าง อย่างแรกคือ ไป update ใน AD ก่อน

AD Update.png

  • จากนั้นเราก็ไปรัน SmartObject “Operation” method “Start Sync” และลองดูผลผ่าน “Run History” อีกรอบ จะเห็นว่า รอบที่สองมีการ sync มาแค่ 1 object ที่มีการ update

Run History2

  • มาลองดูผลผ่าน “UMUser” อีกรอบ จะเห็นว่า ข้อมูล update เรียบร้อยแล้ว

Get UMUser Result2

สิ่งที่ควรรู้เกี่ยวกับแบบใหม่

  • User ที่จะเข้าใช้งาน K2 ได้ ต้องถูก cache ไว้ก่อน โดย K2 จะไม่ได้เก็บ password ของ user ไว้ แต่จะเอา cache ไว้ตรวจสอบตัวตนของ user ถ้ามีตัวตนถึงจะทำการ call ไปหา AD เพื่อลดความช้าของการเข้าใช้งานครั้งแรก
  • ในกรณีที่ไม่ต้องการทำ sync แบบ manual เราสามารถสั่งให้ทำ recurring sync job ผ่าน SmartObject “Operation” method “Set Provider Schedule” ได้ แนะนำว่า ควรทำไว้ด้วย

Set Recurring

  • Support all K2 Five user managers (AD, AAD, SharePoint – on prem and online, LDAP, ADFS, SQLUM, custom UM)
  • มีแค่ AD, AAD และ SharePoint – on prem and online ที่ support Differential queries ถ้าเป็นอย่างอื่นจะทำ Full queries ทั้งหมด ดังนั้นถ้าเราจะทำ schedule อันที่ไม่ support Differential ให้ set เวลานานกว่า provider ที่ทำ Differential ได้
  • ใน version K2 5.2 เราต้องทำ Full Sync ครั้งแรก และตั้ง schedule สำหรับทำ Differential เอง แต่ใน K2 5.3 จะมีทำ Full sync และตั้ง schedule ไว้ให้ตอนลง
  • การทำงานอะไรบ้างที่ใช้ cache ที่เรา sync ไว้
    • UM SmartObjects
    • User connections
    • Designer and Management user browsing
    • WF destination group resolving
    • Worklist
    • Roles
    • Autorization
  • การทำงานอะไรบ้างที่ดึงข้อมูลจาก IdP โดยตรง
    • AD & AAD SmartObjects
    • SharePoint Management SmartObjects
    • People picker control using AD, AAD and SP SmartObjects

ใครที่ upgrade ไปเป็น K2 5.2 แล้ว ก็ลองลงกันดูได้นะครับ โดยส่วนตัวชอบตรงที่เราไม่ต้องรอเวลาให้ K2 sync เอง สามารถสั่ง sync ผ่าน SmartObject ได้เลย โดยไม่ต้อง restart service กับมี log ให้ดูว่า sync ไปเมื่อไหร่ และได้กี่อัน ถ้าเทียบกับอันเดิมที่ดูค่อนข้างยาก (เพราะต้องไปดูเป็นราย record) ถือว่า ดีกว่าเดิมเยอะทีเดียว 🙂

[K2 Five] – Server Side Events

สวัสดีครับ วันนี้เราจะมาพูดถึง server side event ที่เป็น feature ที่มีมาตั้งแต่ K2 5.1 ว่า ทำอะไรได้บ้าง และจะช่วยอะไรเราได้บ้าง

อย่างแรกเลย Server Side Event ที่มีมาให้ จะมีอยู่ 5 แบบด้วยกัน โดยจะเป็นเกี่ยวกับการ load ข้อมูลทั้งหมด

serverside01

ก่อนหน้านี้เวลาเรา load form เราจะทำผ่าน event Initializing หรือ Initialized ก็ให้เปลี่ยนมาใช้ When the server loads แทน เรามาดูผลการทดสอบกันว่า มีผลยังไงบ้าง

หน้าแรกเราใช้ View Initializing แบบปกติ กับข้อมูล 300 records ใช้เวลาในการ load 726 ms

serverside02

หน้าที่สองเราเปลี่ยนไปใช้ When server loads a View ใช้เวลาลดลงเหลือ 393 ms

serverside03

จะเห็นว่า ลดเวลาลงไปได้ประมาณครึ่งนึงเลย ถ้าใคร upgrade เป็น K2 5.1 หรือ 5.2 แล้ว ก็แนะนำให้เปลี่ยนมาใช้เป็น When server loads แทนครับ 🙂

[K2 Five] – 5.2 New Feature Overview

สวัสดีครับ ห่างหายกันไปนานสำหรับ blog ของ K2 ranger วันนี้ผมจะมาเขียนถึง K2 5.2 ที่เพิ่งออกมาเมื่อวันที่ 16 Oct 2018 ว่า มีอะไรเพิ่มเติมมาให้ใช้กันบ้าง ติดตามได้ตามด้านล่างเลยครับ

New Feature

  • Workflow policy – กำหนดได้ว่า workflow instance หรือ step instance มีการ start เยอะกว่าจำนวนที่กำหนด จะทำให้ workflow instance ที่สร้างมาใหม่กลายเป็น error ไป อันนี้เอาไว้ใช้ป้องกันเรื่อง infinite loop ได้ แต่ก็ต้องระวังถ้าเราตั้งใจให้ทำ loop อยู่แล้ว อาจจะมีโอกาสไปเข้า policy นี้ได้

126

  • Workflow Conditional Start Rule – สามารถกำหนด rule สำหรับ start workflow ได้ ถ้า rule ไม่เป็นจริง จะมี error แจ้งเตือนตอน start workflow และ workflow จะไม่ถูก start

001

  • SmartBox Property Indexing – เราสามารถกำหนดได้ว่า จะให้ property ไหนของ SmartBox มี index
  • Save a form as a draft – สามารถ save draft ตอนใช้ K2 mobile แบบ offline mode ได้
  • Permission Delete – สามารถกำหนดได้ว่า ใครสามารถลบ SmartObjects, Views หรือ Forms ไหนได้ (แยกมาจากของเดิมที่ delete จะรวมอยู่ใน modify)

Enhancements

  • Call Sub Workflow – สามารถ start sub workflow แบบ multiple ได้แล้ว และสามารถสร้าง variable จากหน้าต่าง property mapper ได้เลย โดยที่ไม่ต้องเปิด context browser

003

  • Task Step – เพิ่มให้ notification สามารถ CC และ BCC ให้ user คนอื่นได้ และสามารถใส่ information ของ task เช่น link to worklist item, standard action etc. ใน reminder email ได้
  • Move Line Labels – สามารถย้าย label ของ line ได้
  • Data Fields now Variables – ใน workflow ของ K2 Five data field เดิมจะกลายเป็น variable แต่จะมี text บางอย่างที่เปลี่ยนไม่ครบ ตอนนี้ก็เปลี่ยนครบแล้ว เช่น set datafield step เปลี่ยนเป็น set variables
  • SmartObject Get List Custom Filter – สามารถใส่ custom filter ได้ในการเรียก Get List method ของ SmartObject จากเดิมที่มีแค่ return first row กับ all

001-2

  • Server-Side Rule Execution – สามารถเรียกใช้งาน action แบบ server side ได้ จะช่วยทำให้ performance ดีขึ้น เพราะ execute มาจาก server เลย ไม่ต้องสั่งมาจากฝั่ง client
  • Form and View overlay opacity – ทำให้ Form หรือ View จางลงตอนที่ยัง load ข้อมูลไม่เสร็จได้
  • SmartObject Data Access – สามารถกำหนดได้ว่า user ไหนจะเห็นข้อมูลใน SmartObject ได้บ้าง เป็น feature เฉพาะ SmartBox SmartObject
  • K2 Designer Rights – กำหนดสิทธิ์การเข้า site designer ได้

kb002722-1

  • SharePoint Service Instance – หลักๆ คือทำให้ reuse กับ site ที่มี structure เหมือนกันได้ง่ายขึ้น รายละเอียดยาวๆ อ่านต่อเองได้ใน help นะครับ
  • Salesforce Service Instance – เพิ่มการเชื่อมต่อกับ Salesforce sandbox ทำให้เทสได้ง่ายขึ้น
  • Exchange Online Service Instance – สามารถใช้ On Behalf parameter สำหรับการสร้าง appointment และ task
  • REST Broker – เพิ่ม service key ที่ทำให้ customize header token ได้ และ support numeric operationID ที่ทำให้ใช้ swagger จาก Microsoft Cognitive Services APIs ได้แบบไม่มี error
  • Application Forms – ไม่ต้องย้าย folder ในการวาง form แล้ว แค่เลือกให้เป็น Application Form ก็พอ
  • Deployment Validation – ในส่วนของการ deploy SmartObject ต่อกับ SharePoint ก่อนหน้านี้จะไม่ยอมให้ deploy ถ้า structure ไม่ตรงกันทุกอย่าง แต่ใน version นี้จะยอมให้ deploy เช่น list เดิมมี id, description ส่วน list ใหม่มี id, description, sort จะ deploy ได้ โดย map แค่ columns ที่ตรงกันให้
  • Deployment logging – เป็น log ของการ deploy package เข้าระบบ ดูได้จาก stored procedure ใน database

093

  • View Flow – Click to reports – ก่อนหน้านี้ View Flow ของ K2 Five จะกดอะไรไม่ได้ ตอนนี้เวลากดจะเปิดหน้า report ที่เป็นรายละเอียดของ flow instance นั้น

สำหรับ K2 5.2 ในตอนที่ออกมา มี Fix Pack 1 ออกมาพร้อมกันด้วยนะครับ ถ้าใครจะลงก็ให้ลง Fix Pack 1 หลังจากลง K2 5.2 ด้วยนะครับ สำหรับรายละเอียดแบบเต็มๆ สามารถดูได้ใน link ด้านล่างครับ

https://help.k2.com/onlinehelp/k2five/userguide/5.2/default.htm#Whats-New-Five/Whats-New-Five.htm

ถ้าได้ลองกันแล้วมี feedback อะไรก็มา post คุยกันได้นะครับ ไว้เจอกันใหม่คราวหน้าครับ