28 December 2010

Add an Item with "Hyperlink" type to a list using PowerShell in Sharepoint 2010

בPost הקודם, הסברתי איך להוסיף פריט לרשימה עם שדה Text פשוט. השאלה איך מוסיפים פריט עם שדה מסובך יותר כמו שדה קישור.

אז בדומה לקוד של c#, השדה מסוג Hyperlink מקבל את הUrl ואת הTitle.

בדוגמא הבאה, אוסיף לרשימה את כל האתרים באתר כפרטים ברשימה ואקשר להם את הUrl הרלוונטים.

foreach ($url in $mySite.allwebs)
{
   $newItem = $MyList.Items.Add();
   $newItem["Title"]= "Site " + $myUrl.url;
   $newItem["myHyperlinkColumn"]= "$($myUrl.url), $(myUrl.title)" ;
   $newItem.Update()
}
 
זה כל כך פשוט

18 December 2010

Create a new list Item in SharePoint 2010 with PowerShell

בהמשך לpost הקודם - Create List and Field in SharePoint 2010 with PowerShell, הפעם אדגים איך להוסיף לרשימה Item חדש.


כל מה שנצטרך זה ליצור פריט, להוסיף את השדות הרלוונטיים ולעדכן.


$newItem = $MyList.Items.Add();
$newItem["Title"] ="Test"; 
$newItem["TextField"] ="Bla Bla bla"; 
$newItem.Update(); # You can write $newItem.SystemUpdate(); 
 
הרבה יותר מהיר מכתיבת קוד .Net רגיל.

11 December 2010

Create List and Field in SharePoint 2010 with PowerShell

אחד הדברים החזקים בSharePoint 2010 – שאפשר לכתוב קוד .Net בלי לקמפל בעזרת PowerShell. הפעם הדגים איך לבנות רשימה ולהוסיף לשדה.


נפתח את ה SharePoint 2010 Management Shell (ראו הסבר ב PowerShell בSharePoint2010)

ניצור Assignment

$MyAssignment = Start-SPAssignment

נפתח את האתר המבוקש על פי URL

$MyWeb = Get-SPWeb http://MySite.com -AssignmentCollection $MyAssignment stTemplates["Custom List"])

ניצור את הרשימה, ניתן את שמה, התיאור והתבנית.

$MyWeb.Lists.Add("My List","This list created with powershell",$MyWeb.ListTemplates["Custom List"])

ניצור את השדה (במקרה זה Text)

$MyList = $MyWeb.Lists["My List"]

$MyList.Fields.Add("TextField","Text",$MyWeb.FieldTypeDefinitionCollecti on["Text"])

ולסיום נסגור את האתר ואת המשימה.

$MyWeb.Dispose()

Stop-SPAssignment $MyAssignment

עכשיו אם נבדוק באתר, נראה את הרשימה עם השדה שהוספנו

נחמד..
שבוע טוב,
רועי


04 December 2010

The request failed with HTTP status 401: Unauthorized

ב- SharePoint , ובכלל ב- asp.net אשר אני פונה לשרת נוסף ואני עובד ב-NTLM  ולא ב- Kerberos, אני אמור להעביר Credential. הבעיה מתחילה, כאשר הזמן לא מספיק, ואז מקבלים שגיאה, שבכלל אומרת שאין לי הרשאות לשרת, למרות שהעברתי את ה Credential.

The request failed with HTTP status 401: Unauthorized

יש שני פתרונות קלים:
האחד, להוסיף זמן ב- Web.Config - Timeout
השני והנכון יותר (לפי דעתי), זה לפנות בThread-  נוסף לשרת המרוחק.
הנה דוגמה לקוד שפונה ב- Thread נוסף. שימו לב, שהגדרתי DefaultCredentials לפני פתיחת ה- Thread.

WSrv.MyService wsrv = new MyService();
wsrv.Credentials = CredentialCache.DefaultCredentials;
System.Threading.Thread t = new System.Threading.Thread(delegate()
{
   resp = wsrv.CallMyWebService(prms);
});
t.Start();
t.Join();

לא מסובך, ועובד.
חג שמח,
רועי ק.