ตอนแรกว่าจะมาจดกันลืม แต่กลัวว่าแฟนๆ เว็บจะงง เกริ่นซักนิดหน่อยก็แล้วกัน

บังเอิญหาว่าตอนนี้ดูแล SharePoint และต้องหา Solution ที่มาวาด Organization Chart บน SharePoint ก็นั่งค้นไปค้นมาเจออยู่สองที่ที่น่าสนใจ ที่แรกคือ AAOrgChart จากค่าย aaSoftTech และ 1OrgChart ของค่าย Content and Code

ปัญหาคือ แพงครับพี่น้องงงง (หรือไม่อยากจ่ายนั่นเอง)

แล้วทำยังไงดีหละ?

ไม่ยากครับใช้พลังอึดอีกหน่อยหาต่อ และแล้วก็มาเจอ blog หนึ่งใน msdn ของ นายRodney  ที่เขียนเกี่ยวกับ OrgChart และที่สำคัญมี webpart แจกฟรีครับ (เย้ๆๆๆ) หน้าตาเป็นแบบนี้

รูปจาก http://blogs.msdn.com/rodneyviana/default.aspx

รูปจาก http://blogs.msdn.com/rodneyviana/default.aspx

เนื่องจากเป็นของฟรีครับ เลยทำอะไรไม่ค่อยได้มาก (เรื่องมากจริงๆ)  เลยตัดสินใจ เอาว๊ะ ลองเล่นกับมันซักตั้ง โดยเอาแนวคิดของตัวนี้แหละ มาต่อยอด แล้วต้องทำยังไงดีหละตามผมมาเลย

อย่างแรกต้องเข้าใจก่อนว่า เรามาสารถดึงข้อมูลของผุ้ใช้ใน Active Directory มาใส่ในระบบแชร์พอยท์ของเราจาก ผ่านทาง ShareedServices Provider ซึ่งข้อมูลนั่นเราจะดูได้จาก

Shared Services Administration -> User Profiles and MySite -> User Profiles and properties.

พอมองไปเราก็จะเห็นสองฟิลด์ที่น่าสนใจคือ Manager และ Dotted-line Manager

หลายคนคงไม่สงสัยว่า Manager ไว้ใช้ทำอะไร แต่ Dotted-line Manager หละ ผมบอก่อนเลยว่าผมก้อไม่แน่ใจ แต่เอาเป็นว่า สำหรับผมแล้ว แผนก คน IT ในแต่ละประเทศ นอกจากจะอยู่ภายใต้ Finance Division แล้ว การทำงานจริงๆ ยังคงต้อง รายงานไปยัง Regional IT  Manager ด้วยเห็นภาพแล้วใช่มั๊ยครับ ว่าผมจะประยุกต์ Dotted-line Manager มาใช้ยังไง

ต่อมา ผมไปนั่งรื้อ database ก่อนเลยครับ โดยใช้ความอึดหน่อยเพราะว่าหาโครงสร้างของ Database ของ MS SharePoint ไม่เจอ ก็เลยนั่งไล่ๆดูแล้วก็หา ตารางที่เกี่ยวกับ User Profile ยังดีที่ว่าชื่อไม่ได้ถูกตั้งอย่างน่าเกลียด ก็เลยเจอได้ง่ายดาย และตารางที่เกี่ยวข้องหลักๆเลยก็คือ dbo.UserProfile_Full กับ dbo.UserProfileValue ภายใต้ Database ที่ชื่อว่า SharedServices1_DB (ชื่อนี้เป็นชื่อโดยปริยาย เวลาที่เรา enable SharedServicProvider)

เอาหละ ตาราง dbo.UserProfile_Full ก็ไม่ได้มีอะไรซับซ้อนมากนัก ข้ามมาที่ dbo.UserProfileValue ดีกว่า เปิดมาเจอข้อมูลที่น่าดีใจ มีน่าสนใจสอง ฟิลด์คือ PropertyID กับ PropertyVal มองไปมองมา อ้อ เจ้า Manager กับ Dotted-line Manager อยู่ตรงนี้นี่เอง

PropertyID = 6  (Manager) และ PropertyID = 5003 (Dotted-line Manager)

ตัวแรกค่อนข้างแน่นอน แต่ตัวหลังไม่แน่ใจว่าจะเหมือนกันหรือไม่ ก็ลองๆแก้ข้อมูลแล้วกลับมาดูก็น่าจะรู้ได้โดยไม่ยาก แล้วไว้มาดูกันต่อว่า จะเริ่มสร้าง OrgChart เองได้ยังไง เพราะตอนนี้ผมก็ยังไม่รู้ แต่มาเขียนไว้กันลืม