כוידעשלעך אַרטשיוועס: נאָוועמבער 2007

איר קענען נישט ביט שאַרעפּאָינט ס דערגרייכן

בעת די לעצטע צוויי טעג, I have participated in two meetings during which we presented the results of a SharePoint project. The CIO and his team joined the first meeting. That’s standard and not especially notable. The IT department is obviously involved in an enterprise rollout of any technology project. The second meeting expanded to include a V.P. פון פֿאַרקויף, עטלעכע דירעקטאָרס רעפּריזענטינג הר, לאָגיסטיקס, מאַנופאַקטורינג, הויפּט - שטאָט פּראַדזשעקס, קוואַליטעט, פּערטשאַסינג, פֿירמע אַנטוויקלונג און אנדערע דיפּאַרטמאַנץ (עטלעכע פון ​​וועמען האבן נישט אַפֿילו גלייַך ינוואַלווד אין די קראַנט פאַסע). That’s a mighty wide audience.

אין מיין פריערדיק לעבן, I primarily worked on ERP and CRM projects. They both have a fairly wide solution domain but not as wide as SharePoint. To be fully realized, SharePoint projects legitimately and necessarily reach into every nook and cranny of an organization. How many other enterprise solutions have that kind of reach? Not many.

SharePoint clearly represents an enormous opportunity for those of us fortunate enough to be in this space. It provides a great technical opportunity (וואָס איז עפעס פארקערט אויף זייַן קאָפּ דאָ under "Technologies You Must Master"). But even better, SharePoint exposes us to an extensive and wide range of business processes through these engagements. How many CRM specialists work with the manufacturing side of the company? How many ERP consultants work with human resources on talent acquisition? SharePoint exceeds them both.

ווי עפּעס, עס ס 'נישט גאנץ, אָבער עס ס אַ דאַמד גוט פּלאַץ צו זייַן.

פֿאַר די ליבע פון [פּלאָמבירן אין דיין רובֿ ליב געהאט מענטש / העכער זייַענדיק], don’t change the ‘Title’ פּלאַץ זייַל.

אויף די שאַרעפּאָינט גרופּעס, someone occasionally asks about "changing the label of Title" or about "removing title from lists".

דנאָ שורה: צי ניט טאָן עס!

סאַדלי, דער באַניצער צובינד אַלאַוז אַ איין-וועג טוישן פון וואָס זייַל פירמע ווי געוויזן:

בילד

Title is a column associated with the "Item" צופרידן טיפּ. פילע, פילע, פילע קאָרט ס נוצן דעם זייַל און אויב איר טוישן עס דאָ, it ripples out everywhere. There’s a good chance that you didn’t intend for that to happen. You were probably thinking to yourself, "I have a custom lookup list and ‘Title’ נאָר טוט נישט מאַכן זינען ווי אַ זייַל נאָמען, so I’m going to change it to ‘Status Code’ and add a description column." But if you follow through on that thought and rename ‘Title’ to ‘Status Code’, יעדער רשימה ס טיטל (אַרייַנגערעכנט דאָקומענט לייברעריז) changes to "Status Code" און איר מיסטאָמע האט נישט אויסן פֿאַר אַז צו פּאַסירן.

דער עמעס פּראָבלעם איז אַז דאָס איז אַ איין-וועג טוישן. The UI "knows" that "title" is a reserved word. אַזוי, if you try and change "Status Code" back to "Title", עס וועט פאַרמייַדן איר און איצט איר ווע פּיינטיד זיך אין אַ ווינקל ניצן פאַרב אַז קיינמאָל דרייז 🙂

אזוי וואָס כאַפּאַנז אויב איר שוין געביטן עס? I haven’t seen the answer we all want, which is a simple and easy method to change the label back to ‘Title’. Right now, the best advice is to change it to something like "Doc/Item Title". That’s a generic enough label that may not be too jarring for your users.

איך האָבן ווייניק אנדערע געדאנקען וואָס זענען אויף מיין צו-טאָן רשימה פון זאכן צו פאָרשונג:

  • קאָנטאַקט מייקראָסאָפֿט.
  • צי עפּעס מיט די כייפעץ מאָדעל, אפֿשר אין קאַנדזשאַנגקשאַן מיט אַ שטריך.
  • פיגור אויס די דאַטאַבאַסע סטשעמאַ און מאַניואַלי דערהייַנטיקן סקל. (איר זאָל קאָנטאַקט מייקראָסאָפֿט איידער טאן דעם כאָטש; עס וועט מסתּמא פּאָסל דיין שטיצן אָפּמאַך).

אויב ווער עס יז ווייסט ווי צו סאָלווע דעם, ביטע פּאָסטן אַ באַמערקונג.

דערהייַנטיקן שפּעט נאָכמיטאָג, 11/15: איך געפונען דעם לינק וואָס באשרייבט אַ אופֿן פֿאַר שאפן אַ טיפּ פון רשימה וואָס טוט נישט האָבן אַ טיטל זייַל: http://www.venkat.org/index.php/2007/09/03/how-to-remove-title-column-from-a-custom-list/

בדק ADF און דיין פרייַנד, קדאַטאַ

איך ווע באמערקט עטלעכע ומגעלומפּערט און ומנייטיק האַנט-סיסטעם פון רדבקאָממאַנדטעקסט אין עטלעכע ביישפילן (אַרייַנגערעכנט מסדן דאַקיומענטיישאַן).

I wanted to point out to newcomers to BDC that commands can be wrapped inside a CDATA tag in their "natural" form. אַזוי, דעם ומגעלומפּערט קאַנסטראַקשאַן:

<פאַרמאָג נאָמען="רדבקאָממאַנדטעקסט" טיפּ="סיסטעמ.סטרינג">
אויסקלייַבן dbo.MCRS_SETTLEMENT.id, דבאָ.מקרס_סעטטלעמענט.סעטטלעמענט פון דבאָ.מקרס_סעטטלעמענט
WHERE (שייַן &גט;= @ מיניד) און (שייַן &לט;= @ מאַקסיד)
</פאַרמאָג>

קענען זייַן בעסער רעפּריזענטיד דעם וועג:

<פאַרמאָג נאָמען="רדבקאָממאַנדטעקסט" טיפּ="סיסטעמ.סטרינג">
<![קדאַטאַ[
אויסקלייַבן dbo.MCRS_SETTLEMENT.id, דבאָ.מקרס_סעטטלעמענט.סעטטלעמענט פון דבאָ.מקרס_סעטטלעמענט
WHERE (שייַן >= @ מיניד) און (שייַן <= @ מאַקסיד)
]]>
</פאַרמאָג>

</עק>

בדק בייַשפּיל

Intro צו בדק

פאַנגקשאַנאַל בייַשפּיל: בדק ADF אַז קאַנעקץ צו סקל דאַטאַבאַסע מיט עמבעדיד באַניצער שייַן און Password

I needed to wire up MOSS to a SQL database via BDC. For testing/POC purposes, I wanted to embed the SQL account user id and password in the ADF. Starting with דעם מוסטער (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), איך באשאפן אַ ADF אַז קאַנעקץ צו אַ באַזונדער סקל סערווירער בייַשפּיל און לאָגס אין מיט אַ ספּעציפיש באַניצער שייַן און Password און געוויזן אין דעם סניפּאַט:

  <לאָבסיסטעמינסטאַנסעס>
    <לאָבסיסטעמינסטאַנסע נאָמען="קלאַימסינסטאַנסע">
      <פּראָפּערטיעס>
        <פאַרמאָג נאָמען="אַוטהענטיקאַטיאָנמאָדע" טיפּ="סיסטעמ.סטרינג">פּאַססטהראָוגה</פאַרמאָג>
        <פאַרמאָג נאָמען="דאַטאַבאַסעאַקסעסספּראָווידער" טיפּ="סיסטעמ.סטרינג">סקלסערווער</פאַרמאָג>
        <פאַרמאָג נאָמען="רדבקאָננעקטיאָן דאַטאַ מקור" טיפּ="סיסטעמ.סטרינג">פאַקטיש סערווירער  פאַקטיש בייַשפּיל</פאַרמאָג>
        <פאַרמאָג נאָמען="רדבקאָננעקטיאָן ערשט קאַטאַלאָג" טיפּ="סיסטעמ.סטרינג">פאַקטיש ערשט קאַטאַלאָג</פאַרמאָג>
        <פאַרמאָג נאָמען="רדבקאָננעקטיאָן ינטעגראַטעד זיכערהייַט" טיפּ="סיסטעמ.סטרינג">סספּי</פאַרמאָג>
        <פאַרמאָג נאָמען="רדבקאָננעקטיאָן פּאָאָלינג" טיפּ="סיסטעמ.סטרינג">פאַלש</פאַרמאָג>

        <!-- די ביסט דער שליסל וואַלועס: -->
        <פאַרמאָג נאָמען="רדבקאָננעקטיאָן באַניצער שייַן" טיפּ="סיסטעמ.סטרינג">אַקטואַל באַניצער שייַן</פאַרמאָג>
        <פאַרמאָג נאָמען="רדבקאָננעקטיאָן שפּריכוואָרט" טיפּ="סיסטעמ.סטרינג">פאַקטיש שפּריכוואָרט</פאַרמאָג>
        <פאַרמאָג נאָמען="רדבקאָננעקטיאָן טרוסטעד_קאָננעקטיאָן" טיפּ="סיסטעמ.סטרינג">פאַלש</פאַרמאָג>

      </פּראָפּערטיעס>
    </לאָבסיסטעמינסטאַנסע>
  </לאָבסיסטעמינסטאַנסעס>

עס איז נישט אַ בעסטער פיר, but it’s useful for a quick and simple configuration for testing. This was surprisingly difficult to figure out. I never found a functional example with search keywords:

  • ADF עמבעדיד וסעריד און Password
  • ימבעד באַניצער שייַן און Password אין ADF
  • ימבעד באַניצער שייַן און Password אין ADF בדק
  • שאַרעפּאָינט בדק אָנפאַנגער
  • שאַרעפּאָינט ימבעד באַניצער שייַן און Password אין ADF

</עק>

אַבאָנירן צו מיין בלאָג.

ספּד מנהג וואָרקפלאָוו אַקשאַנז — שטריקל מאַניפּיאַליישאַן ענכאַנסמאַנץ

וועגן אַ וואָך צוריק, I started up a codeplex project that provides a simple and reasonably generic method for adding custom action functions to SharePoit Designer workflow. It’s described here: http://www.codeplex.com/spdwfextensions. Beyond simply providing a framework, it also aims to provide a set of useful functions that will make SPD more useful/flexible/powerful.

דאָ זענען די קראַנט פּלאַננעד פֿעיִקייטן פֿאַר ווערסיע 1.0: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=spdwfextensions&ReleaseId=8280

אויב ווער עס יז האט קיין אינטערעס אין דעם פּרויעקט, ביטע לאָזן אַ באַמערקונג אָדער אָנהייב / לייגן צו אַ דיסקוסיע דאָ: http://www.codeplex.com/spdwfextensions/Thread/List.aspx

דאָ זענען די קראַנט שטעלן פון פאַנגקשאַנז וואָס האָבן שוין קאָדעד (כאָטש ניט גאָר טעסטעד ווי פון 11/08/07):

פונקציאָנירן באַשרייַבונג (אויב נישט זעלבע ווי. נעט פֿונקציע)
NUM-איינסן() Returns the number "entries" in a string as per a specified delimiter.

לעמאָשל: Num-entries in a string "a,ב,C" with delimiter "," = 3.

פּאָזיציע() Returns the nth token in a string as per a specified delimiter.
לענג סטרינג.לענגטה
פאַרבייַטן() סטרינג.רעפּלאַסע()
כּולל() סטרינג.קאָנטאַינס()
Returns the word "true" or the word "false".
סובסטרינג(אָנהייב) סטרינג.סובסטרינג(אָנהייב)
סובסטרינג(אָנהייב,עק) סטרינג.סובסטרינג(אָנהייב,עק)
טאָופּפּער() סטרינג.טאָופּפּער()
טאָלאָווער() סטרינג.טאָלאָווער()
סטאַרצוויטה() סטרינג.סטאַרצוויטה()
Returns the word "true" or the word "false".
ענדסוויטה() סטרינג.ענדסוויטה()
Returns the word "true" or the word "false".

שנעל & גרינג URL ענקאָודינג דעסקטאַפּ נוצן

איך ווע שוין נידינג צו URL-ענקאָוד עטלעכע סטרינגס דעם וואָך און סלאַפּט צוזאַמען אַאַ ביסל נוצן אַז איך געדאַנק איך 'ד לייגן אַרויף אויף סקידריווע פֿאַר די קהל.

באַקומען די ביינערי דאָ: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncode.zip

באַקומען די וויסואַל סטודיאָ לייזונג דאָ: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncodeVS2005.zip

דאָ ס אַ פאַרשטעלן שאָס:

בילד

שנעל און גרינג: ימבעד אַ כייפּערלינגק אין דאַטן מיינונג וועב טייל קססלט

דערהייַנטיקן (01/17/08): דעם בלאָג פּאָזיציע טאָקס וועגן מער כייפּערלינגק קססל גוטסקייט: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.

איבערבליק און אָביעקטיוו: I had created a simple bar chart to serve as component on a dashboard. I’ll save the details on building charts for another post, אָבער איך האט ניט אויסטראַכטן אַז טעכניק (אדער די קשיא מארק, פֿאַר אַז ענין). It turned out there was a bug in the chart and while I fixed that, I took the opportunity to convert some labels into hyperlinks that pointed at the underlying list behind the graph. לעמאָשל, there is a label with value "Hold". I wanted to turn the label into a hyperlink so that the user could click on it and drill down to the specific entries in the list whose status value is "Hold".

טריט:

  1. ניצן וויסואַל סטודיאָ פֿאַר שאַרעפּאָינט-אַווער ינטעלליסענסע.
  2. קאָפּי די דוווופּ ס קססלט אין וויסואַל סטודיאָ (שאַפֿן אַ פּוסט פּרויעקט, לייגן אַ קססל טעקע צו די פּרויעקט).
  3. קאָפּי די לינק איר ווילן צו נוצן אין די קליפּבאָרד.
  4. פּאַפּ עס אין די רעכט אָרט אין דער קססל.
  5. Convert URL argument separators on the query string from "&" to "&אַמפּ;"
  6. URL-ענקאָוד יחיד טענות.
  7. ייַנוויקלען אַז ין אַ <אַ הרעף…> </אַ>

בייַשפּיל:

איך האָבן אַ URL:

הטטפּ://[סערווירער]/[פּלאַץ]/רשימות / עפֿן% 20פּאָסיטיאָנס/אַלליטעמס.אַספּקס?View ={84עעאַ2פ5-121ב-40ב7-946ף-0פאַ704אַ1דאַאַ1}&פילטערפיעלד1 = רעקרויטער&פילטערוואַלוע1 = האָלד

איך גער עס אין:

     <אַ הרעף="רשימות / עפֿן% 20פּאָסיטיאָנס/אַלליטעמס.אַספּקס?View =% 7ב84עעאַ2פ5-121ב-40ב7-946ף-
0פאַ704אַ1דאַאַ1% 7ד&אַמפּ;פילטערפיעלד1 = רעקרויטער&אַמפּ;פילטערוואַלוע1 = האָלד"> האַלטן: </אַ>

איך האָבן מאַניואַלי פארוואנדלען די ערשטער אַרגומענט פון:

{84עעאַ2פ5-121ב-40ב7-946ף-0פאַ704אַ1דאַאַ1}

צו:

%7ב84עעאַ2פ5-121ב-40ב7-946ף-0פאַ704אַ1דאַאַ1% 7ד

(אין דעם, די עפענען בראַסע טראַנספאָרמז צו% 7ב און די קלאָוזינג בראַסע טראַנספאָרמז צו% 7ד)

די רגע און דריט טענות’ פּאַראַמעטערס ("FilterField1=רעקרויטער" and "FilterValue1=האַלטן" ריספּעקטיוולי) טאָן ניט דאַרפֿן צו זייַן URL-ענקאָודיד ווייַל זיי טאָן ניט אַנטהאַלטן קיין אַנסייף אותיות.

הערות:

דעם טעכניק זאָל בכלל אַרבעט ערגעץ איר ווילן צו ימבעד אַ כייפּערלינגק אין קססלט ווו די כייפּערלינגק כולל פּאַראַמעטערס אויף די URL אַזאַ ווי:

הטטפּ://[סערווירער]/[פּלאַץ]/רשימות / עפֿן% 20פּאָסיטיאָנס/אַלליטעמס.אַספּקס?View ={84עעאַ2פ5-121ב-40ב7-946ף-0פאַ704אַ1דאַאַ1}&פילטערפיעלד1 = רעקרויטער&פילטערוואַלוע1 = האָלד

איך גאַט די URL זיך דורך אַקסעסינג דער מנהג רשימה און מאַניואַלי פֿילטרירונג אויף די סטאַטוס זייַל (labeled "Recruiter" העכער).

שנעל און סימפּלע: געבן שאַרעפּאָינט דיזיינער וואָרקפלאָוו צו דערהייַנטיקן אַ ינפאָפּאַטה פאָרעם

סצענאַר: I have an InfoPath form that front-ends a workflow process implemented using SharePoint Designer. At one point, a manager must approve the form. Since I cannot count on workflow history to meet my auditing requirements, איך באַשליסן צו קראָם מיין אייגן אַדאַטינג אָנזאָג גלייַך אויף די פאָרעם זיך.

איבערבליק:

Design the form and publish it as a צופרידן טיפּ and the form itself to a document library. Mark desired form fields as being updateable from MOSS. The form is tied to the content type and the content type is "attached" to a forms library (or many, if you want). Write a workflow that updates the field.

Specific Steps:

  1. Create a document library. This will hold your InfoPath template.
  2. Create a forms library.
  3. Create the InfoPath form. Include a text field, "Audit Message".
  4. Publish the form as a content type (NOT a document).
  5. While filling out the publishing dialogs:
    אַ) Save the .xsn file to the document library (step #1).
    ב) Publish the "Audit Message" field and mark true: "Allow users to edit data in this field by using a datasheet or properties page".
    C) Create a new content type and give it an appropriate name.
  6. Access the forms library.
    אַ) Go to its advanced settings and enable the forms library to manage content types.
    ב) Select the newly created content type (5c above). It will be grouped under "Microsoft InfoPath" (or similar).
    C) Remove the default "Form" content type from the library.
    ד) Mark the library to "show as web page" so that the form will launch from SharePoint and not the InfoPath workstation client.
  7. Go back to the forms library proper and click "New" to simply verify that the form is posted correctly and acting as you want.
  8. Fire up SharePoint Designer and navigate to the site that hosts your form library (from step 2).
  9. Create a new workflow attached to the forms library.
  10. Add a single action "Set Field in Current Item". You should expect SharePoint Designer to list your your field, "Audit Message". Assign it a value.
  11. Click Finish and go back to the form library.
  12. Create a new form and put some test value into the "Audit Message" פעלד.
  13. Save it and go back to the form library.
  14. Right-click, select "Workflow" and start up your workflow.
  15. It should run almost immediately. Pull up the form (from step 12) and if all has gone to plan, "Audit Message" has been assigned whatever value you provided in step 10.

הערות:

Not all controls may configured for this bi-directional communication. לעמאָשל, it does not seem to implement an SPD workflow that modifies text fields wrapped inside repeating sections.

One of the key take-away’s here is that we’ve really created a content type with an associated template. This also enables us to store multiple InfoPath form templates in the same form library.

This requires forms server. It’s most certainly not going to work in a WSS 3.0 environment and probably even requires an Enterprise SharePoint environment.

די בעאַגלע האט לאַנדעד (אָקטאָבער 2007 אַרויסגעבן)

(דאס איז פאקטיש אַ קליין אַלט נייַעס, אָבער ווי מיין באַליבט פייַער סטאַנציע דעוויז פּראָוקליימז, "Better late than never").

טשעק עס אויס דאָ: http://www.sharepointbeagle.com/

אויב איר האָט ניט שוין, זייַן זיכער צו צייכן אַרויף.

אַוואַדע, זייַן זיכער צו לייענען מיין אַרטיקל about a real-world SharePoint project (אַרייַנגערעכנט באדערפענישן דעפֿיניציע, קפּי ס, צופרידן טייפּס, dashboards and more) as well as מיין קאָלעגע 'ס article about the content query web part.

עס ס 'פּלאַץ פון אנדערע גוט שטאָפּן אויך.

ווי צו באַזייַטיקן “מיינונג אַלע פּלאַץ צופרידן” רונג

איך בין געבעטן דעם קשיא קימאַט יעדער וואָך, נאָרמאַלי אין די קאָנטעקסט פון אַ זיכערהייַט דיסקוסיע. An administrator/site creator has provisioned a site, קאַנפיגיערד זיכערהייַט, arranged web parts and customized the quick launch to provide that oh-so-perfect set of options to the end user. אָבער, אויס פון די קעסטל, you can’t remove the "view all site content" רונג.

Mark Wagner provides the answer דאָ (http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=36). His write-up is terrific on two levels. It provides an answer to the question, "How do I remove the View All Site Content" רונג? דעמאָלט, it answers the immediate follow-on question: How do I easily enable the view all site content link on a site-by-site basis?

As a bonus: His approach works for WSS, not just MOSS.

</עק>

אַבאָנירן צו מיין בלאָג!