สวัสดีครับ วันนี้มีเวลานิดนึง ก็เอาเป็นว่าขอบทความสั้นๆ ซึ่งเป็น เกร็ดความรู้เล็กๆน้อยๆ จะได้นำไปใช้งานกันน่ะครับ วันนี้จะมีพูดถึงเรื่องการกำหนดเข้าถึงการเข้าถึงไอเท็ม แต่ละอันในลิสเมื่อมีการใช้งานร่วมกันน่ะครับ วันนี้ดูดีนิดนึงมีรูปภาพประกอบด้วยน่ะครับ สำหรับบทความหัวข้ออื่น จะเข้ามาทยอยอัพเดทให้น่ะครับ ส่วนเรื่องหน้าตาของบล๊อค ตอนนี้กำลังคิดอยู่ว่าจะย้ายไปทำในลักษณะ ให้เป็น Web Board เพื่อความสะดวกในการใช้งานของ Guest หรือหากท่านใดมีแนะนำ Forum ดีๆก็แนะนำมาได้ครับ มีเพลนจะตั้งทีมมาช่วยกันเป็น Administrator ดูแล พักนี้งานยุ่งมากๆ มีเวลานิดหน่อย ไม่มีเวลาจะหาข้อมูล Board ดีๆเลยครับ แต่ถ้าได้ก็ยังจะรักเดียวใจเดียวกับชื่อเดิมนี้ละครับ Share My Point ^ ^

สำหรับบทความหน้าคิดว่า คงจะเป็นเรื่องของ Alternate Access Mapping ประโยชน์ในการสร้าง Zone เพื่อการ Access ในรูปแบบต่างๆ หรือ ไม่ก็เรื่องใหญ่ๆแบบ Windows Rights Management Service (RMS) คงเป็นปลายๆอาทิตย์นี้ละครับ

การกำหนดสิทธิการใช้งานร่วมกันระดับ Item ใน Lists

จากหัวข้อที่ได้กล่าวถึง จะเป็นการกำหนดสิทธิการใช้งานร่วมกันใน List ใด List นึงที่เราต้องการกำหนด การกำหนดการใช้งานนี้ คือ การเข้าถึง หรือ การแก้ไขไฟล์ หรือ การลบไฟล์ แต่ละไอเท็ม เราสามารถเข้าไปกำหนดการใช้งานของ List นั้นๆ  ซึ่งความสามารถนี้ สามารถทำได้เฉพาะที่เป็น List เท่านั้น Document Library ไม่สามารถทำได้ ขั้นตอนการคอนฟิก มีดังนี้

1.       ยกตัวอย่างให้เราไปเข้าไปที่ List ใด List นึง แล้วเข้าไปที่เมนู List Settings ดังรูปด้านล่าง

 

2.       หลังจากนั้นเข้าไปที่เมนู  Advanced Settings ดังรูปด้านล่าง

 

3.       เมื่อเข้าไปแล้วก็จะแสดงหน้าสำหรับการกำหนดการทำงานพื้นฐานของ List จากนั้นให้ไปแก้ไขในส่วนของ Item-level Permissions ดังรูปด้านล่าง

 

 

จากรูปด้านบนเราสามารถกำหนดสิทธิการเข้าไปอ่านได้ใน หัวข้อ Read Access หรือหากต้องการกำหนดสิทธิในการแก้ไขหรือลบข้อมูล ก็สามารถแก้ไขในหัวข้ฮ Edit Access ทั้งสองสามารถกำหนดได้ว่าเป็นเจ้าของ Item เท่านั้นถึงจะสามารถทำได้ ขึ้นอยู่ความต้องการของผู้ดูแลระบบ แต่การทำสิ่งนี้ จะกำหนดหรือควบคุมการใช้งานได้ก็ต่อเมื่อ User นั้นๆมีสิทธิในระดับตั้งแต่พื้นฐาน คือ Read ไปถึงระดับ Contribute เท่านั้น หาก สูงกว่านี้ไม่สามารถควบคุมได้ ดังรูปด้านล่าง

 

 

                สรุป หากเราเข้าใจหลักการดังกล่าวแล้ว เราก็สามารถกำหนดสิทธิการใช้งานของไอเท็มใน List ที่ต้องการได้ อย่างมีประสิทธิภาพ

Event handler manager

posted on 12 Jan 2009 22:05 by sharemypoint  in Developer

      

        สวัสดีครับ ทุกท่าน เรามาพบกันแล้วอีกครั้งนึง วันนี้ผมมีเวลาไม่มากนักเรื่องของรูปภาพประกอบและข้อมูลให้กระชับมากขึ้น ผมจะขอมาอัพเดทเพิ่มเติมวันหน้าน่ะครับอีกครั้ง วันนี้ผมจะมากล่าวเรื่องการพัฒนา SharePoint เพื่ออุดช่องโหว่ หรือ เสริมความสามารถของ SharePoint ในลักษณะการจับเหตุการณ์ต่างๆ ที่เกิดขึ้นใน List เช่น Add Item, Edit Item, Delete และอื่นๆ อีกหลายเหตุการณ์ ตัวอย่างที่ผมได้เคยลองทำมา คือ เมื่อมีการสร้าง Item ขึ้นมาใหม่ เราจะนำข้อมูลใน Field ต่างๆที่เราต้องการ นำไปอัพเดท ค่าใน Database หรือ Application อื่นๆ ที่เราต้องการเพื่อนำไปออกรายงาน เป็นต้น สามารถใช้งานได้ทั้ง MOSS2007 และ WSS 3.0 สิ่งที่กระผมได้กล่าวมาข้างต้น เครื่องมือนี้ คือ Event handler manager !!!

        Note Software REQ. : MS Vistual Studio.NET

      Event handler manager เป็น Solution ตัวนึงที่เราต้องทำการ Deploy เพื่อจะนำมาเข้าสู่ระบบของ SharePoint มีขั้นตอนดังนี้

     1. ใช้คำสั่ง stsadm -o addsolution -filename GatWeb.SharePoint.EventsManager.wsp ใน sharepoint command ของ SharePoint ( C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN ) ซึ่งเราต้องนำไฟล์ที่เราต้อง Download มาตาม URL : http://rapidshare.com/files/182461521/GatWeb.SharePoint.EventsManager.wsp.html นำไฟล์มาวางไว้ใน Path ที่เราใช้คำสั่ง addsolution

     2.  ขั้นตอนต่อไปให้เรา Deploy Solution ขั้นตอนนี้สามารถได้ทั้งใน Central Administrator(GUI) ในส่วนของ Operations และไปที่ลิงค์ Solution management เลือก gatweb.sharepoint.eventsmanager.wsp หลังจากนั้นเลือก Web Application Port ที่เราต้องการจะใช้งาน หรือจะเป็น sharepoint command(stsadm -o deploysolution -name gatweb.sharepoint.eventsmanager.wsp -url http://hostmane:port)

     3.  เมื่อเรา Deploy เรียบร้อยแล้ว ให้เราเข้าไป Active การใช้งานอีกครั้งหนึ่งใน Web Application นั้นๆ ใน Site Actions >> Site Settings >> Site collection features เมื่อเข้าไปแล้วก็จบพบ Feature ตัวนึงที่ชื่อ Event Manager ให้เราทำการ Active เพียงเท่านี้ Event Handler Manager menu ก็จะปรากฏใน Menu ต่างๆในลิส ซึ่งจะแสดงตรงที่เมนู Settings จะแสดงรายการที่ชื่อ Events Manager สำหรับสิทธิในการเข้าไปจัดการ Event ต่างๆได้ จะต้องมี Permission level เป็น Site Owner เท่านั้น !!!

    นี่เป็นเพียงแค่ขั้นตอนเริ่มต้นเท่านั้นน่ะครับ ยังไม่ได้เริ่มการ codding เลยครับยังไงก็สู้สู้น่ะครับ ( - -)=#@

 

    เรามาเริ่มส่วนของการเตรียมการ Code น่ะครับ ให้เราเปิด Visual Studio .NET ขึ้นแล้วทำตามขั้นตอนดังนี้

    1.  สร้าง Project template ที่เป็น class librarys ขึ้นมาหนึ่งตัว

    2.  เพิ่ม Reference Microsoft.SharePoint ซึ่งเป็นสิ่งที่จำเป็นในการพัฒนา SharePoint ( โดยสามารถดาวน์โหลดได้ที่ : http://rapidshare.com/files/182473921/VSeWSSv11.exe.html )

    3.  กำหนด Properties Project ด้วย Assembly name และ Default namespace ในส่วนของ TAB Application และ กำหนด Signing เพื่อทำการสร้าง Storng key name ใช้สำหรับอ้างใน Event manager ใน List

    4.  สร้างไฟล์คลาสขึ้นมาหนึ่งคลาส เท่านี้ก็สามารถเริ่มต้นการเขียนโปรแกรมได้แล้วครับ

       Note บทความนี้ไม่ได้สอนเกี่ยวกับหลักเขียนโปรแกรม

  สิ่งถัดไป คือ ตัวอย่างของโค้ดเกี่ยวกับการ ดึงข้อมูล User ที่กำลัง Logon Windows หมายความว่า User ตอน Logon เข้า Windows น่ะครับ ไม่ได้หมายถึงว่า หากมีการ Sign Difference User ไปแล้วจะนำ User ที่ Signin  ต่างจาก User ที่ Logon เข้า Windows ซึ่งจากคำพูดนี้ หลายท่านคงเคยใช้ SPContext กันบ้างจะจับ User ที่กำลัง Signin อยู่ แต่จากการที่ผมพยายามหาข้อมูลอยู่ SPContext ไม่สามารถนำมาใช้ได้ดีกับ Event handler manager ครับ เพราะฉะนั้นสิ่งที่กล่าวมาทั้งหมดนี้ หมายความว่า เราจะจับ Current User ยังไง เมื่อเราเขียนโปรแกรมเพื่อดึงแล้ว โปรแกรมของเราก็จะจับ User ที่ Logon เข้า Windows เท่านั้นครับ อันนี้ผมได้ทดลองกับ Document Library เท่านั้นน่ะครับ (ส่วนที่มาของ ISSUE นี้หากท่านใดสงสัย สอบถามได้เพิ่มเติ่มน่ะครับ )  

public class InsertEventHandler : SPItemEventReceiver
    {

         public override void ItemAdded(SPItemEventProperties properties)
        {
            base.ItemAdded(properties);
            ChangeSubmittedBy(properties);
        }

        private void ChangeSubmittedBy(SPItemEventProperties properties) {

            Guid siteID = properties.ListItem.ParentList.ParentWeb.Site.ID;
            Guid webID = properties.ListItem.ParentList.ParentWeb.ID;
            Guid listID = properties.ListItem.ParentList.ID;
            Guid newItemID = properties.ListItem.UniqueId;

            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                using (SPSite site = new SPSite(siteID))
                {
                    using (SPWeb web = site.OpenWeb(webID))
                    {
                        SPList questionList = web.Lists[listID];
SPListItem listItem = questionList.Items[newItemID];

                        SPFieldUserValue oUser = new SPFieldUserValue(
                            web, web.CurrentUser.ID, web.CurrentUser.LoginName);

                        listItem["Author"] = oUser;
                        listItem["Editor"] = oUser;
                        listItem.Update();
                    }
                }
            });    
        }
    }

ขอขอบคุณที่มา : http://k2distillery.blogspot.com/2008/03/update-splistitem-created-by-and.html

     หลังจากที่เราเขียนโค้ดและ Build Class เสร็จเรียบร้อยแล้วขั้นตอน ต่อไปคือ การนำ Event ของเราไปใช้งานกับ SharePoint ครับ มีลำดับขั้นตอนดังนี้

    1. นำไปไฟล์ DLL ที่เก็บอยู่ใน Folder Bin>>Debug โดยการ drag and drop ไปใน Folder c:\windows\assembly

    2. ให้เราไปหา ชื่อ dll ที่เรานำไปวางเมื่อสักครู่ เรานำค่าในแต่ละ Properties มาเก็บไว้และนำมาจัดในรูปแบบข้อถัดไป
    3. ไปยัง Menu Events Manager ใน List ที่เราต้องการโหลด event ไปใช้งาน และคลิ๊กไปที่ เมนู Add new event  เมื่อแสดงหน้าของการใส่รายละเอียด ให้เรานำรายละเอียดตามตัวอย่างนี้ในช่อง Assembly* : idgSpListEvent,Version=1.0.0.0,Culture=neutral,PublicKeyToken=3c6484527166b189 ตัวหนาส่วนแรก คือ ชื่อ dll เมื่อสักครู่ที่เราได้นำไปชื่อวางใน Folder Assembly ส่วนตัวทึบในส่วนหลังคือ ค่า properties ของ Assembly ตัวนั้น และกด Load

    4. จากนั้นเลือก Class ที่เราได้เขียนไว้ และ เลือก Event Type * ที่เราได้เขียนไว้และตั้งชื่อ ของ Event และกด OK เพียงเท่านี้ก็เสร็จเรียบร้อยสำหรับขั้นตอนการใส่ Event ให้ทำงานควบคู่ไปกับ List เราได้อย่างสมบรูณ์

 

       เพียงเท่านี้ก็เสร็จเรียบร้อยสำหรับ การเสริมลูกเล่นให้ List ของเรามีความสามารถในการทำงานควบคู่ไปกับเหตุการณ์ที่เกิดขึ้นกับลิสได้อย่างมีประสิทธิภาพ

        วันหน้าพบกันใหม่น่ะครับ :-) 

 

edit @ 13 Jan 2009 00:25:02 by Thai SharePoint Society

edit @ 13 Jan 2009 00:56:28 by Thai SharePoint Society

First Greeting

posted on 05 Jan 2009 19:47 by sharemypoint  in Overview

 

 

  สวัสดีครับ ยินดีต้อนรับ ทุกท่านที่ได้เข้ามาอ่าน Blog ครับ ^^

          ผมได้ครุ่นคิด ว่ามีสิ่งนึงที่ ผมคนธรรมดาคนนึง ควรจะทำอะไรที่จะแบ่งปันสิ่งดีๆ ให้สังคมบ้าง ถึงแม้ผมเองอาจจะไม่รู้แจ้งเห็นจริง อย่างถ่องแท้ก็ตาม แต่เมื่อทุกสิ่งมันต้องมีจุดเริ่มต้น ทำให้เกิดสังคมแห่งกันแบ่งปันความรู้ พลังแห่งความร่วมมือ ความร่วมใจของเพื่อนๆพี่ๆน้องๆ ทุกๆคน จะทำให้เกิดแหล่งความรู้ที่ดีแห่งนึง เพื่อแบ่งปันความรู้ให้เกิดประโยชน์สูงสุด

          ตัวผมเองจึงได้หยิบมาเรื่องนึงที่ได้แวะเกี่ยวข้องและคลุกคลีอยู่กับมันเป็นประจำ Microsoft SharePoint ( WSS and MOSS  ) จากการที่ได้ลองสัมผัส คิดว่าเป็น Web Application ตัวนึงที่มีคุณสมบัติที่ดี ในหลายๆด้าน ทั้งยังสามารถ ตอบโจทย์ทางธุระกิจได้ อย่างยอดเยียม (Business REQ,Technical REQ, Security REQ )

         What does people do in Business ???

         - วิเคราะห์ข้อมูลเพื่อการตัดสินใจ และจัดทำรายงานในทางธุระกิจ จากฐานข้อมูลและแอพพลิเคชั่นภายในและแหล่งข้อมูลภายนอกองค์กร ???

         - ดำเนินงานตามกระบวนการ ทำงานเป็นขั้นตอนเชื่อมโยงฐานข้อมูล และแอพพลิเคชั่นภายในองค์กร ???

         - เผยแพร่และบริหารจัดการงานข้อมูล/เอกสาร จัดเก็บ รวบรวมหมวดหมู่ ทำสำเนาและทำลายเอกสาร ให้เป็นไปตามนโยบายและขั้นตอนการทำงานที่กำหนด ???

         - ติดต่อสื่อสารระหว่วงกันภายในทีม เพื่อแลกเปลี่ยนเอกสาร, ข่าวสาร, ตารางนัดหมาย, งานที่ต้องทำ, การบริการโครงการและอื่นๆ ???

         - เรียกดูข่าวสารและข้อมูลต่างๆ จากหน่วยงานหรือทีมต่างๆ ทั้งจากภายในและภายนอกองค์กร ???

         - ค้นคว้าและค้นข้อมูลหรือหาผู้เชี่ยวชาญจากระบบต่างๆ ทั้งจากภายในและภายนอกองค์กร ???

       Microsoft SharePoint จึงเป็น Application ที่น่าสนใจตัวนึง เพราะสามารถประยุกต์การใช้งานให้เหมาะสมกับองค์กรต่างๆได้อย่างมีประสิทธิภาพ และเสริมความแข็งแกร่งทางธุระกิจ ให้นำหน้าคู่แข่ง ซึ่งใช้ได้ท้้งในองค์กรขนาดเล็ก ขนาดกลาง และขนาดใหญ่ ด้วยฟีเจอร์พื้นต่างๆที่เพียบพร้อม นำมาตอบโจทย์ทางธุระกิจได้เป็นอย่างดี

 

       * Business Intelligence ศูนย์รวมผลลัพธ์และการวิเคราะห์ข้อมูลเพื่อการตัดสินใจ สามารถเชื่อมต่อกับแอพพลิเคชั่น จัดเตรียมรายงานแบบ Interactive โดยใช้โปรแกรม Excel

       * Business Processes จัดการรูปแบบและกระบวนการทำงานเป็นขั้นตอน เว็บฟอร์มสามารถเชื่อมโยงข้อมูลจากฐานข้อมูลและแอพพลิเคชั่นภายในองค์กร

       * Content Management รวมการจัดการเอกสารและการจัดการข้อมูล ให้เป็นไปตามนโยบายและขั้นตอนการทำงานที่กำหนด

       * Collaboration รวมระบบเพื่อการบริหารโครงการแบบพื้นฐานเข้าด้วยกัน ประกอบด้วยเอกสาร, งานที่ต้องทำ, ตารางนัดหมาย, อีเมลส์ ฯลฯ

       * Portal เว็บท่าศูนย์กลางที่รวบรวมข้อมูลและทีมงานไว้ในที่เดียวกัน

       * Search ระบบค้นหาข้อมูลและบุคคลได้อย่างรวดเร็ว ตรงตามความต้องการ ลึกไปถึงในระดับเนื้อหาของเอกสาร

 

        ทั้งหมดนี้เป็นกงล้อที่ล้อมรอบ Platform Service ที่ทำเกิดสิ่งดีๆมากมายเกิดขึ้นที่นี่

 

        บทความต่างๆ ที่ได้จัดทำในบล๊อคนี้ ได้จากค้นหาข้อมูลจากที่ต่างๆ เพื่อมาแบ่งปันร่วมกัน จะจัดจำแนกเป็นหมวดหมู่ต่างๆ จะมาต่อกันครั้งหน้าน่ะครับ See you later, I promise.

edit @ 5 Jan 2009 21:05:15 by Thai SharePoint Society

edit @ 6 Jan 2009 02:16:51 by Thai SharePoint Society

edit @ 6 Jan 2009 02:21:09 by Thai SharePoint Society

edit @ 13 Jan 2009 00:24:44 by Thai SharePoint Society