ყოველთვიური არქივი: თებერვალი 2011

შეცვლის საიტის სვეტი ჯგუფები SharePoint დიზაინერი 2010

მე შეიქმნა slew საიტის სვეტების გამოყენებით SharePoint დიზაინერი 2010 ამ დილით და მიხვდა, რომ მე მისცა მათ ყველა არასწორი ჯგუფში.  ეს იყო embarrassingly რთული ტექსტური რედაქტორი.  მე არ ვიცი სად უნდა დააჭიროთ ...

image

I ინახება სურვილს ორმაგად დაწკაპეთ ზედიზედ თავად ან დააწკაპუნეთ სვეტი პარამეტრები ღილაკს ლენტი.

როგორც ირკვევა, სწორი პასუხი (ან თუნდაც ერთი სწორი პასუხი) არის ერთი დაჭერით ჯგუფის თავად.  მოითმინეთ ერთი წუთით და მერე საშუალებას გაძლევთ შესვლის ღირებულება, როგორც ნაჩვენებია:

image

Pretty მარტივი ერთხელ იცით, რა უნდა გააკეთოს, მაგრამ ეს eluded ჩემთვის ცოტა.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

ხელით შეცვლა SPD XOML ფაილი გამწმენდი ცვლადები

ამ პოსტის აქ ("შესმენილ პასუხობს უკან დაწყება დამტკიცების პროცესში საქმიანობის შესახებ"), აღვნიშნე, რომ შეგიძლიათ შემთხვევით დაამატოთ მთელი slew of workflow ცვლადები თქვენი SharePoint დიზაინერი workflow.  რამ შეიძლება სწრაფად გახდეს cluttered და ძნელად იკითხება.  კერძოდ, თუ თქვენ დაამატებთ "დაწყება დამტკიცების პროცესში საქმიანობის შესახებ" აქცია თქვენი workflow, delete it and add it again, you end up with all of that activity’s workflow variables twice. 

It’s a real pain to go through and delete all of those manually, so I though I would try to remove them directly from the XOML file.  This proved to be easy enough to do. 

პირველი, you need to locate the actual XOML file.  I wrote about that topic here: http://www.mstechblogs.com/paul/how-to-find-and-edit-spd-2010-workflow-xoml-files.  Once found, open up the XOML file and locate a variable you want to remove.  ამ შემთხვევაში, I added the "Start Approval Process” activity to my workflow twice.  I want to remove a workflow variable named “isItemApproved” since it’s no longer used and there is a duplicate variable named “isItemApproved1”. 

Simply do a text search for the variable.  My screen looks like this:

image 

If you search around in the XOML file, you’ll see that “IsItemApproved1” is used in many different places while the original "IsItemApproved” is simply defined once and never used.

Delete it and then save the file.

The only tricky part is that I had to actually close out SPD altogether and re-open it before SPD acknowledged that the field deleted.

რა თქმა უნდა, deleting fields isn’t the only thing you can do with the XOML and I may blog about other topics like this in future.

You want to be very careful about what you do here and take backups of your work.  You can make a seemingly minor / subtle change here that trashes the workflow as far as SPD is concerned and you could lose hours of effort while you rebuild it.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

როგორ მოძებნა და შესწორება SPD 2010 სამუშაოს XOML თამაშები

მე იკვლევს მარტივი გზა ამოიღონ რამოდენიმე workflow ცვლადების გარეშე გაატარონ ჩემი შუადღისას in სრული სასულე SPD დაჭერით წამების სხდომაზე.  ჩემი მიაჩნდა შეცვალონ XOML პირდაპირ, რაც XML ფაილი უდევს SPD-ს დეკლარაციული workflows.  აი როგორ ვერ.

პირველი, go to the All Files option under Site Objects in Navigation.  You need appropriate permissions to see this, so if it’s missing for you, appeal to the right admin person to grant you the priv.  ეს არის რას ჰგავს:

image

 

All Files shows a list of … all the files:

image

Select the Workflows folder and you see a list of folders for each workflow:

image

Click into the correct folder and  you see a listing of all the interesting goodies that make up an SPD declarative workflow.  Right click on the .xoml file and select “Open With –> SharePoint Designer (Open as XML)” to edit the XOML directly:

image

You may want to do a manual backup before you fiddle with things.  A regular copy/paste of the file directly in SPD is probably good enough, ან შეგიძლიათ კოპირება ჩასვით მთელი XML ტექსტი და შენახვა გადატანა თქვენი კომპიუტერი ან რაც არის თქვენი wont ამ შემთხვევებში.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

მიღება პასუხობს უკან დაწყება დამტკიცების პროცესში აქტიურობა

მე სათამაშო გარშემო ერთად SharePoint დიზაინერი workflow-ს მიეცით ახალი "დაწყება დამტკიცების პროცესი" საქმიანობას და მალევე stymied იმიტომ, რომ მე ვერ დაუყოვნებლივ კითხვაზე პასუხის გაცემა, "ნუთუ ამტკიცებს ან არ?". 

მოკლე პასუხი არის, რომ ეს საკმაოდ მარტივია მისაღებად პასუხი.  მასალის დამატებისას ამ საქმიანობის თქვენს ძირითად სამუშაოს, SPD დასძენს bazillion ცვლადები სამუშაოს ცვლადები და პარამეტრები მონაცემთა წყარო, როგორც ხედავთ აქ:

SNAGHTML2350fe72

თქვენ ასევე აღნიშნავენ, რომ თუ თქვენ დაამატებთ ზე მეტი ერთი ასეთი, SPD appends "1" და ა.შ. ყველა ცვლადს. 

მივხვდი, რომ როდესაც მე ამოღებულია პირველი "დაწყება დამტკიცების პროცესი" საქმიანობაში, პირველი კომპლექტი ასოცირებული workflow ცვლადები დარჩა (სამწუხაროდ).  ასე რომ,, ფრთხილად, თუ როგორ გამოიყენოს ეს რადგან სხვაგვარად, თქვენ დასრულდება up ერთად  ძალიან cluttered ჩამონათვალი workflow ცვლადები.

მე ვაძლევ Microsoft კრედიტი შემდეგ "არის" დასახელებისგან კონვენციის ლოგიკური განსხვავებულია.  ეს კონვენცია ხდის საკმაოდ გარკვევა, თუ რა სახის მონაცემები უნდა იყოს იქ.

In იკვლევს, ი ამ გამოსადეგი მუხლის: http://office.microsoft.com/en-us/sharepoint-designer-help/workflow-actions-in-sharepoint-designer-2010-a-quick-reference-guide-HA010376961.aspx.  ეს ნამდვილად არ მიმართოს ამ კონკრეტულ საკითხზე, მაგრამ აქვს რამდენიმე კარგი ინფორმაცია ამ თემაზე ისე მინდა იქ ჩასვლა, თუ გინდათ გაიგოს კონკრეტული საქმიანობის და მისი ძმა.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

SharePoint Designer 2010 თავდაცვის სამინისტროს ფუნქცია

მე ვმუშაობ გარკვეული ჟურნალი, სადაც თანამშრომლებს შეუძლიათ მოითხოვონ შვებულებაში, ავადმყოფი დრო, და ა.შ.. ერთი დადასტურება წესი მოითხოვს, რომ თქვენ ყოველთვის უნდა მოითხოვოს დრო ში 4 საათის ინტერვალით.  ეს არის ადვილი საკმარისი უნდა გააკეთოს - გამოიყენოს modulo ფუნქცია.  Modulo ფუნქცია ეუბნება დანარჩენ დივიზიონში.  თუ არ არის დარჩენილი, modulo is zero, წინააღმდეგ შემთხვევაში, it’s whatever is left.  მაგალითად, 8 mod 4 = 0 (8 / 4 = 2 with no fraction).  მეორე მხრივ, 8 mod 5 is 3.

I needed to do this once with SPD 2007 once upon a time and I actually ended up using an InfoPath form to solve, so it was handled on the front end at the time.  In the current case, there may be an InfoPath form in the picture, but that’s not clear yet.  ასე რომ,, I was working out a technique to ensure that time requests are always in 4 hour increments.  I was going to do the math, save it in a string and then do some substring stuff. 

I pull up SPD 2010 and to my surprise (and a little embarrassment) there is a modulo function already:

image

I am once again pleasantly surprised that something I needed is already there out of the box.  It does seem like a weird function for Microsoft to include in the mix.  It has a sort of “this is easy, so let’s throw it in” feel to it.  I sympathize with that, as I do it myself all the time.  This CodePlex project has a bunch of little functions that result from the ItsEasy principle.  ამავე დროს, Microsoft continues to support evidence the “95% of the way” effect with the product.  They implement the Mod function, but not the round function, for instance.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

CodePlex პროექტი – SP2010 Explorer

როგორც ნაწილი მიმდინარე ძალისხმევას, რათა ვისწავლოთ ტექნიკური დაბალი დონე დეტალებს SharePoint 2010, მე შექმნილი "SharePoint Explorer"ასეთი ინსტრუმენტი.  იდეა ახალი არ არის.  მე ამ პროექტის კიდევ ერთხელ: http://sharepointexplorer.codeplex.com/.  ჩემი იდეა არის ის, SharePoint ვერსია, რომელიც იყენებს დაკავშირებული ვებ ნაწილების რათა ნახოთ ყველა დაბალი დონის დეტალი, რომელიც ობიექტური მოდელის შეუძლია. 

ამ დღიურში შეტყობინება ემსახურება როგორც გამოცხადების პროექტი, ასევე მოწოდება მოხალისეები.  თუ თქვენ დაინტერესებული მუშაობს ეს პროექტი, მიადევნე ფოსტით (galvin.paul @ gmail.com) და ჩვენ ვიმუშავებთ ის.

აქ არის პროექტი: http://sp2010explorer.codeplex.com/

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

SharePoint Designer 2007 სამუშაოს გაგრძელება CodePlex პროექტი

მე აყენებს ერთად ჩემს მეორე CodePlex პროექტი (დეტალების გამოცხადდება ოთხშაბათს ამ კვირაში, პლუს ან მინუს) და მე მქონდა შევხედოთ ჩემი პირველი პროექტი, “SharePoint Designer Workflow Extensions”. შემზარა და გაჭირვებული, რომ რომ ის უკვე გადმოწერილი მეტი 4,800 ჯერ:

image

მე ძირითადად დაავიწყდა ამ პროექტის ბოლო 12 თვით. I’m embarrassed because I have essentially abandoned it.

I’m going to have another look and remind myself of what it’s all about.

თუ ვინმეს აინტერესებს მუშაობა, let me know and we’ll see about collaborating on it. 4,800 ჩამოტვირთვების არ არის გიგანტური თანხა, მაგრამ ეს უფრო მეტია, ვიდრე ოდესმე მიხვდა და ეს ალბათ ღირს გარკვეული ძალისხმევა არჩევის ეს და ტარების ეს ნაბიჯია.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

ექსპორტის SPWeb მეუბნება "InvalidData” თუმცა ეს მონაცემები ძალაშია

I’m in the process of writing an article for the good people at www.sharepointbriefing.com and it involves deploying an list from a development farm to a production farm.  მე მაინც მიჩვეული გამოყენებით stsadm და უნდა დაარღვიოს, რომ ჩვევების, ასე რომ გასროლა up SharePoint 2010 Management Shell and played around using Export-SPWeb to backup my list.  What a strangely difficult thing that proved to be!

I kept getting this error:

image

That error, “InvalidData: (Microsoft.Share…CmdletExportweb"”) was killing me.  I’m embarrassed at how long I struggled with this.

I had previously run into a wall with PowerShell and used stsadm to get around it.  I tried it again this time and I got good results.

I spent a lot of time fiddling around with the –Identity option and then finally with –ItemURL.  It turns out that the ItemURL option requires a full path of the list/library you  want to export without the http://server bit.  ასე რომ,, despite the fact that the Identity argument is pointing to a subsite, the ItemURL is not relative to the Identify but relative to the site collection.

It would have been nice for the cmdlet to tell me what was minimally valid (the Identity in this case) and what was invalid (ItemUrl).  These little touches help people embrace the product.  Not a big ding against SharePoint, but a little one at least 🙂

Hopefully this post will save someone a bit of grief in future.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

თანამშრომლობა TreeNodeBinding in ASP.NET Treeview საკონტროლო

I’ve been working on what I hope will be a soon-released CodePlex project that provides a nice integrated bit of web parts talking to each other via provider/consumer connections for the purpose of exploring a SharePoint site under the covers.  (ეს, რა თქმა უნდა გაკეთებულა აქამდე, but this is a learning project as much as anything else).  This is meant to be a replacement for the windows explorer view of SharePoint 2010 დოკუმენტის ბიბლიოთეკების.

The code has the usual recursive call down the SPWeb’s and SPLists from a given starting point.  The object that does all that traversing builds up an XML string that looks something like this:

<sitecollection url=’http://demo2010a:9090′>
 
<web
     title=’Hello World Sandbox’ 
     Template=’A site for teams to quickly organize, author, and share information, BLAH BLAH BLAH’>

     <სია
        title=’BCC_Health_Services_FAQs’
        Template=’CustomList’
       
listid=’http://demo2010a:9090/helloworldsandbox[delim]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</სია>

     <სია
        title=’BCC_Notifications’ 
        Template=’CustomList’ 
        listid=’
http://demo2010a:9090/helloworldsandbox[delim]5a5a13d1-877c-41c0-9063-b9612be80d5e’>
     </სია>

  </web>

</sitecollection>

I expect to clean up that XML before all is said and done.

I want to ultimately get that information up and into a Treeview control.  Not exactly earth shattering stuff.

The challenge I took on here was to connect the tree view to an XML Data Source control instead of manually building up my treenodes as I traverse the tree.  I did this partly because I’m deliberately making things harder on myself (this is a learning project after all) and partly because I have this vague notion that building up tree nodes as I traverse the tree isn’t a good idea for the long term.

The problem with this approach is that the Treeview control doesn’t know about the good attributes on the interesting nodes like “list” or “web” so it shows this output by default:

 

image

That’s not useful.  This is where the TreeNodeBinding class helps.  I can use this to tell the Treeview control how it should interpret the XML.  Here’s an example:

tnb = new TreeNodeBinding();
tnb.DataMember = "list"; // This is the label in the xml for a site.
tnb.TargetField = "listid";
tnb.ValueField = "title";
tnb.ToolTipField = "Template";

This binding tells the treeview that when it finds a <სია> node in the XML, apply the bindings for TargetField, ValueField and ToolTipField.  In may app, these map as follows:

  • TargetField: When someone clicks on a node value, this is what you’ll get for SelectedNode.Value.  This is not to be confused with…
  • ValueField: This is what you want the Treeview to display to the user.
  • ToolTipField: The value from the XML that you want as a Tooltip.

Add that TreeNodebinding to the tree view’s DataBindings and you get output like this:

 

image

I’ll have more on all this as I continue on the project and eventually put this up on Codeplex.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin