Register K2 for SharePoint with SharePoint O365 for K2 Five

พอดีมีโอกาสจะต้อง Config K2 for SharePoint ของ K2 Five เพื่อ Upload เอกสารจาก K2 ขึ้น SharePoint O365 ซึ่งเจอปัญหาระหว่างทางพอสมควร จึงอยากเขียน Blog นี้มา เพื่อทำเป็น Reference เผื่อในอนาคตนะครับ เผื่อใครที่จะเจอปัญหาเดียวกัน

ก่อนจะเริ่มขออ้างอิงสมัยก่อน แต่ก่อนนั้น ตอนที่เป็น K2 4.7 และ O365 ใหม่ๆ เราจะสามารถโยนเอกสารขึ้น SharePoint ได้ง่ายๆ โดย Register ผ่าน Service Instance ที่ชื่อว่า SharePoint Content ซึ่งเคยเขียนรายละเอียดไว้ที่ Blog นี้

แต่อนิจจา Service Instance นี้ได้หายไปจาก K2 Five เนื่องด้วยเหตุผลที่ว่า O365 ต้องเป็นการ Authentication ผ่าน oAuth เท่านั้น จึงทำให้กระบวนการ COnfiguration จะยากขึ้นหน่อย แต่ไม่ยากเกินไปครับ

ก่อนอื่นเลย จะต้องมี Prerequisite ดังนี้ครับ

  • K2 ต้องมี SSL ซึ่งก็คือ URL ของ K2 ต้องเป็น https นั้นเอง
  • เครื่อง K2 จะต้องเปิด Site เหล่านี้ เพื่อให้ O365 วิ่งลงมาเชื่อมต่อได้
    • /Runtime
    • /Identity
    • /autodiscover
  • เครื่อง K2 จะต้องออก Internet ได้ เพราะว่าต้องวิ่งไปหา trust.k2.com
  • ต้องใช้ Account ที่เป็น Tenant Admin ของ 365 เพราะว่าต้องสร้าง App Catalog ด้วย
  • Tenant Admin นั้นต้องมีสิทธิ์เป็น Admin ใน Server Right ของ K2
  • K2 กับ O365 ใช้ AAD เดียวกัน

ถ้าเราทำ Prerequisite เรียบร้อย เราก็พร้อมล่ะ มาเริ่มกันได้เลย

1. Set up App Catalog
ก็เข้าไปที่ O365 Portal Admin แล้วไปที่ SharePoint Admin Center แล้วกด Open ใน Menu Apps

หลังจากนั้น Click App Catalog แล้วก็ใส่ชื่อ App Catalog ที่เราต้องการ

เมื่อสร้างเสร็จก็จะได้ App Catalog หน้าตาประมาณนี้

2. Deploy K2 for SharePoint App ขึ้น App Catalog

ในกรณีที่เราต้องการเชื่อมต่อระหว่าง K2 on Premise ไปหา O365 ทาง K2 แนะนำให้ Deploy App จาก Folder Installer ขึ้นไป ซึ่งอยู่ที่ Installation/SharePoint Online/K2 for SharePoint.app เพื่อ Make sure ว่า App จะตรง version กัน

แต่ในกรณีที่เราต้องการเชื่อมต่อระหว่าง K2 Cloud ไปหา O365 อันนี้ให้ไป Download K2 Five for SharePoint จาก SharePoint Store ได้เลย

3. เมื่อทำการ Deploy App เสร็จ ก็ให้ไปที่ Add an app เพื่อ App “K2 for SharePoint” ขึ้นมาใน App Catalog

4. เมื่อ Add เสร็จแล้ว App นั้นจะไปอยู่ใน Site Contents เราก็ Click ที่ icon เพื่อทำการ Register ได้เลย

5. มาถึงขั้นตอนสำคัญ เมื่อ Click ไปจะขึ้นหน้า Wizard เพื่อให้เราใส่ URL ของ K2 ของเรา ซึ่งจำเป็นจะต้องใส่ https นะ เช่น ในที่นี้ เราก็ใส่ https://ventek-k2-53 แล้วกด Next ซึ่งการทำงานส่วนนี้ทาง K2 จะไปหา Description ของ Site ต่างๆ ผ่าน /autodiscover เพื่อทำการ Register ให้เรา (ผ่านหน้า relayingAdd)

6. จะมีการ Link ไปหา K2 URL จาก O365 เพื่อให้เราใส่ Login อีกครั้ง ถ้าสังเกตดู จะเห็นว่าตอนนี้ URL จะเป็นของ K2 ล่ะ ตรงนี้ให้เราใส่ Tenant Admin เหมือนเดิม เพื่อทำการ Register นะ ไม่อย่างนั้น จะเกิดปัญหา Authentication Error แบบนี้

ถ้าลงได้เรียบร้อยจะได้หน้าตาแบบนี้ ก็ปล่อยให้มันหมุนๆจนเสร็จ

สำหรับคนที่เจอปัญหา 404 File not found ซึ่งมักจะเป็นในกรณีที่มีการทำ Reverse Proxy

ให้ลองเข้า /Runtime/Runtime/Form/K2+Application+Configure+Server/ ดูว่าเข้าได้มั้ยเพราะว่าบาง Proxy เมื่อเห็น + ใน URL จะทำการ Ignore ไป เราต้องไป Allow มันนะ

สุดท้ายแล้วจะได้หน้าตาประมาณนี้มา

ณ ขั้นตอนนี้ คือเราทำการ Register เชื่อมต่อระหว่าง K2 ของเรา กับ O365 เป็นที่เรียบร้อย

7. ทำการ Registration Wizard โดย Click ที่ Menu “Registration Wizard” ภายใต้ Administration

8. Deploy App มาเราจะใช้ K2 for SharePoint ที่ Site ไหนบ้าง โดย Click ที่ Menu “Manage App Deployments (SharePoint)

ขั้นตอนนี้จะให้เราใส่ Site Collection บน O365 ที่เราต้องการ Enable App นี้ เราก็ใส่ URL ไปแล้วเลือก Apply All Paths ก็เป็นอันจบ

9. Activate App

เมื่อเราทำการ Setting ทั้งหมดเสร็จแล้วก็มาทำการ Activate App ภายใต้ Menu “Manage App Activation” ซึ่งจะให้เราเลือก Site Collection แล้วก็ทำการ Activate ได้เลย

ณ ตอนนี้เราลง App สมบูรณ์แล้ว ขั้นตอนต่อไปก็จะไปสร้าง SMO ที่ Site Collection ที่เราเชื่อมต่อ

10. สร้าง SMO ที่ Site Collection

ให้ไปที่ Site Contents แล้วเลือก Documents Library ที่เราต้องการ Upload เอกสารไป ที่ Site Contents

จะเห็นว่าที่ Ribbon Menu จะมี Menu K2 ขึ้นมาล่ะ เราก็เลือก Application

เราก็เลือกจะสร้าง SMO ซึ่งพอเสร็จขั้นตอนนี้ เราจะเห็นว่าจะมีการสร้าง Service Instance ใหม่ให้เรา ภายใต้ SharePoint 2013 Service Instance แล้วเราก็จะสามารถสร้าง SMO จาก Document Library ได้ล่ะ

servicetester

โดย SMO นี้ก็จะมี Method ให้เราใช้หลายอย่าง แต่ที่เราจะใช้ก็คือ Upload Documents นั้นเอง

ลองเอา test.txt ขึ้นไป ก็จะได้ประมาณนี้บน O365

เป็นอันว่าจบกระบวนการ

Key Takeaway ก็คือ

  1. ใช้ Account Tenant ในการ Login และเชื่อมต่อ ของทั้งกระบวนการ
  2. ถ้ามีการใช้ Reverse Proxy ต้องระวังเรื่องเครื่องหมาย + ที่โดน Ignore
  3. ถ้าเจอ Error เรื่อง Authenticate SignoutURL ลอง run อีกรอบ เพราะว่าเจอเหมือนกัน

K2Blackboard คืออะไร ใครควรดูบ้าง?

K2Blackboard เป็น VDO คลิปภาษาไทยสั้นๆ สอนการใช้งาน K2 ทุกเรื่อง ไม่ว่าจะเป็น Smartform, workflow, smartobject และเรื่องอื่นๆที่เกี่ยวข้อง ตั้งแต่เริ่มต้น ผ่านทาง Youtube และ Facebook เอาไว้สำหรับคนที่อยากเริ่มต้น ทบทวนและหาแรงบันดาลใจ

 

ติดตามคลิปใหม่ได้ทุกวันจันทร์เช้าทุกสัปดาห์ หวังว่าจะชอบ ฝากไว้ในอ้อมใจด้วยครับ