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

מאָך דערציילט מיר מייַן קאַלאַם נאָמען איז שמורות אָדער אין ניצן … אבער עס ס ניט

דערהייַנטיקן 12/04/07: זען דעם מייקראָסאָפֿט קב (http://support.microsoft.com/kb/923589) פֿאַר פֿאַרבונדענע אינפֿאָרמאַציע.

פאקטיש, עס טורנס אויס עס איז, אָבער טריקקסי מאָך האט צו מאַכן עס שווער.

My customer does some development work on his MOSS site over the weekend. It’s a bit of a jumble as to what he actually did, אָבער די סוף רעזולטאַט איז דאָס:

  • He tries to add a site column called "Quantity" און מאָך ריפּלייז: "The column name that you entered is already in use or reserved. Choose another name."
  • He attempts to add it to another environment and that works. דעריבער, "Quantity" איז ניט אַ רעזערווירט נאָמען.
  • He tries to find an existing site column named "Quantity" in that site collection. He cannot find it.

איך האט עטלעכע פאָרשונג, and even some coding, וואַקסט פילאַסאַפיקאַל און ענדלעך געפונען אַז אַ זייַל געהייסן קוואַנטיטי האט, אין פאַקט, exist. It was in the "_Hidden" group. Hence, מיר קען ניט געפינען עס דורך די שאַרעפּאָינט באַניצער צובינד.

ווי האט עס באַקומען דאָרט? I do not know, אָבער איך האב אַ טעאָריע (אָדער ווי מיין פרוי וואָלט רופן עס, "blah blah blah"). ערגעץ צוזאמען די שורה, אַ פאַביאַלאַס פערציק מוסטער was added and probably activated at a site in the site collection. It was then deactivated (אָדער די פּלאַץ אַוועקגענומען). The site column, אָבער, remained but in the "_Hidden" group. If someone knows better, ביטע לאָזן מיר וויסן דורך Email אָדער פּאָסטן אין די באַמערקונגען.

SharePoint was telling the truth. It’s hardly worth pointing out that that message is not as helpful as it could be. It would be nice to see that message fork into two different messages in the future: 1) זאָגן אַז דער זייַל נאָמען איז רעזערווירט אָדער עס איז נישט. 2) אויב עס ס 'נישט רעזערווירט, ווייַזן די פּלאַץ, אָדער לפּחות די גרופּע, ווו דער זייַל נאָמען איז שוין געניצט.

</עק>

פאָרשטעלן דאַטאַ וויאַ די וועגן מנהג רשימה (אָדער, נאָך אן אנדער וועגן דאַטאַ דיספּלייַאָר [ווי יאַקק, אָבער אַנדערש])

הייַנט, איך אויסגעגעבן אַ האַנדפול פון שעה טראַקינג אַראָפּ די שורש גרונט הינטער דעם אָנזאָג "די זייַל נאָמען אַז איר אריין איז שוין אין ניצן אָדער רעסערוועד. Choose another name."

דער זייַל אין קשיא קען זייַן באשאפן, אויסגעמעקט און שייַעך-באשאפן אין אן אנדער סוויווע, אַזוי איך געוואוסט עס איז געווען ניט אַ רעסערוועד נאָמען. אָבער, I simply couldn’t find the column anywhere via the standard SharePoint user interface at any site in the site collection.

I posted to MSDN forums here and the indomitable ענדרו וואָאָדוואַרד pointed me in the direction of the underlying object model data.

I went off to codeplex to find some tools that would help me peer into the underlying OM data and help me locate the trouble.

I tried several tools and they were very cool and interesting but in the end, the UI wasn’t good enough for my purpose. I’m not criticizing them by any means, but clearly the tool-makers didn’t have my problem in mind when they created their UI :). Most people seem to be investing a fair amount of time and effort in creating workstation / client applications that provide tree views, right-click context menus and so forth. These are nice and all, but it’s a lot of work to create a top-of-the-line user experience that is also very flexible.

I really needed an answer to this problem. It occurred to me that if I could get all of the site columns in the site collection into a custom list, I could filter, sort and create views that would help me find this supposedly existing column (which it did, בטוו). I went ahead and did that and an hour or two later, had all my site columns loaded into a custom list with grouping, sorting and so forth. I found my answer five minutes later.

If and when I successfully take over the world, I think I will decree that all SharePoint tools providers must seriously consider surfacing their object model data in a custom list. That way, I have the power to search any way I want (constrained, אַוואַדע, by standard sharepoint features).

שאַרעפּאָינט דיזיינער וואָרקפלאָוו מנהג קאַמף — אָבסערוואַציע וועגן <פעלד טיי דיזיינער טיפּ =”סטרינגבוילדער” … />

נאָר אַ שנעל אָבסערוואַציע אַז דאָרט ס אַ זייער וויכטיק חילוק צווישן די צוויי זוך:

<FieldBind Field="InParam1" DesignerType="StringBuilder" Id="2" Text="Input parameter #1"/>

קעגן:

<FieldBind Field="InParam1" Id="2" Text="Input parameter #1"/>

דער ערשטער ווייזט ווי דעם אין ספּד:

בילד

בשעת די יענער ווייזט ווי דעם:

בילד

I’m not sure how helpful these screen shots are but I put in the effort to make them so you have to view them 🙂

דער אָבסערוואַציע איז דאָס: סטרינגבוילדער אַלאַוז איר צו בויען אַ שטריקל (דאָך) דורך מיקסינג צוזאַמען שטריקל ליטעראַלס און וואָרקפלאָוו דאַטן (via the "Add Lookup" קנעפּל אין דער נידעריקער לינקס-האַנט ווינקל). When you use the Add Lookup button, it inserts a token in the form "[%סימען%]". When SharePoint invokes your custom action, (C # קאָד אין מיין פאַל), שאַרעפּאָינט פּאַסיז די סימען זיך, not the value of the token. If you use the default designer type (די רגע טיפּ), שאַרעפּאָינט יקספּאַנדז די סימען און פּאַסיז פאַקטיש ווערט פון די סימען צו דיין אַקציע.

סטרינגבוילדער = שלעכט, פעליקייַט דיזיינער טיפּ = גוט.

אַוואַדע, that’s not what I really mean. Just don’t try and pass a parameter to your custom action when the designer type = StringBuilder. Use the default designer type and chain a StringBuilder to it up front if you need to build complex strings in your workflow (וואָס אגב איז פּונקט וואָס מען טוט צו שאַפֿן אַ דינאַמיש אונטערטעניק פֿאַר דעם Email קאַמף, אָבער אַז ס אַ אונטערטעניק פֿאַר אן אנדער בלאָג פּאָזיציע, האט האט).

<סוף />

צו פרי וואָרקפלאָוו אַקטיוואַטיאָן — א נאָן-מעדיציניש סאַלושאַן

דערהייַנטיקן: זען דעם מסדן דיסקוסיע, ספּעציעל די לעצטע פּאָזיציע: http://forums.microsoft.com/MSDN/showpost.aspx?postid=2631057&siteid=1. עס באשרייבט אַ צושטאַנד אַז קען קורץ קרייַז דעם גאנצע זאַך. In short, עס קען זייַן ווי פּשוט ווי מאכן לפּחות איינער פון די פעלדער מאַנדאַטאָרי.

איך האָבן אַ דאָקומענט ביבליאָטעק וואָס שטיצט אַכט צופרידן טייפּס.

I have a SharePoint Designer workflow that wants to calculate and assign a "reminder date" דורך פשוט סאַבטראַקטינג 30 טעג פון אן אנדער זייַל, "due date". This should only happen for one of the content types, "Insurance". The business objective is to produce a KPI that shows two categories of insurance documents: "about to expire" and "expired." (איר קענען לייענען מער וועגן דעם מין פון קפּי און מער היפּש בויער-אַראָפּ דאָ).

I have configured the workflow to fire when a new item is created and when an item is modified. The idea is that when an insurance document is uploaded, we calculate a "warning date" based on the expiration date. A pair of views work in connection with a KPI List to highlight these conditions when users hit their home page.

דעם סטראַטעגיע טוט נישט אַרבעטן ווען איך צופֿעליקער אַ דאָקומענט.

I upload the document and I am presented with the meta data entry screen. אין דעם פונט, I’m already in trouble. SharePoint has already, פּרימאַטשורלי פון מיין פּערספּעקטיוו, fired the workflow. I haven’t had a chance to pick the correct content type nor assign a due date. אין דער זעלביקער צייַט, the workflow does not fire when I hit the submit button at this time. There’s some built-in logic that "believes" that first submit is part of the "create" event. אַזוי … מיין וואָרקפלאָוו האט פייערד און ווען עס עקסאַקיוטאַד, it was passed default meta data values.

The best work-around I know of is to insert a "pause until" activity in the workflow. I have the workflow pause for 1 minute. While it’s pausing, איך אויסקלייַבן די ריכטיק צופרידן טיפּ, enter the meta data and submit. The pause completes and the workflow proceeds as needed. (באַמערקונג אַז אין מיין סוויווע, timer workflow activities from SPD do not work out of the box. You may have the same trouble. זען דאָ פֿאַר מער פרטים).

I don’t like "magic delay" work-around. What happens if the user uploads a document and the phone rings and the ensuing conversation outlasts the pause? I can make the pause longer, אָבער איך נאָך טאָן ניט ווי עס.

איך געשריבן וועגן דעם אויף דער מסדן גרופּעס דאָ: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2430725&SiteID=1

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

דערהייַנטיקן 12/18/07: זען פאולוס ליעבראַנד ס אַרטיקל פֿאַר עטלעכע טעכניש פאלגן פון רימוווינג אָדער מאַדאַפייינג די פעליקייַט גרופּע נעמען (זען זייַן באַמערקונג אונטן ווי געזונט).

איבערבליק:

SharePoint security is easy to configure and manage. אָבער, it has proven to be difficult for some first-time administrators to really wrap their hands around it. Not only that, I have seen some administrators come to a perfect understanding on Monday only to have lost it by Friday because they didn’t have to do any configuration in the intervening time. (איך אַרייַנלאָזן צו בעת דעם פּראָבלעם זיך). This blog entry hopefully provides a useful SharePoint security primer and points towards some security configuration best practices.

וויכטיק באַמערקונג:

This description is based on out of the box SharePoint security. My personal experience is oriented around MOSS so there may be some MOSS specific stuff here, but I believe it’s accurate for WSS. I hope that anyone seeing any errors or omissions will point that out in comments or Email מיר. I’ll make corrections post haste.

פאַנדאַמענטאַלז:

פֿאַר די צוועקן פון דעם איבערבליק, עס זענען פיר פונדאַמענטאַל אַספּעקץ צו זיכערהייַט: ניצערס / גרופּעס, סעקוראַבלע אַבדזשעקס, דערלויבעניש לעוועלס און ירושה.

ניצערס און גרופּעס ברעכן אַראָפּ צו:

  • יחיד ניצערס: פּולד פון אַקטיוו Directory אָדער באשאפן גלייַך אין שאַרעפּאָינט.
  • גרופּעס: Mapped directly from active directory or created in SharePoint. Groups are a collection of users. Groups are global in a site collection. They are never "tied" צו אַ ספּעציפיש סעקוראַבלע כייפעץ.

סעקוראַבלע אַבדזשעקס ברעכן אַראָפּ צו לפּחות:

  • זייטלעך
  • דאָקומענט לייברעריז
  • יחיד זאכן אין רשימות און דאָקומענט לייברעריז
  • פאָלדערס
  • פארשידענע בדק סעטטינגס.

עס אנדערע סעקוראַבלע אַבדזשעקס, אָבער איר באַקומען די בילד.

דערלויבעניש לעוועלס: א פּעקל פון גראַניאַלער / low level access rights that include such things as create/read/delete entries in lists.

יערושע: By default entities inherit security settings from their containing object. Sub-sites inherit permission from their parent. Document libraries inherit from their site. So on and so forth.

ניצערס און גרופּעס פאַרבינדן צו סעקוראַבלע אַבדזשעקס דורך דערלויבעניש לעוועלס און ירושה.

די מערסט וויכטיק זיכערהייַט רולעס צו פֿאַרשטיין, Ever 🙂 :

  1. גרופּעס זענען פשוט זאמלונגען פון ניצערס.
  2. גרופּעס זענען גלאבאלע ין אַ פּלאַץ זאַמלונג (י.ע. עס איז ניט אַזאַ זאַך ווי אַ גרופּע דיפיינד בייַ אַ פּלאַץ גלייַך).
  3. גרופע נאָמען נישט וויטסטאַנדינג, גרופּעס טאָן ניט, אין און פון זיך, have any particular level of security.
  4. Groups have security in the context of a specific securable object.
  5. איר זאלט ​​באַשטימען פאַרשידענע דערלויבעניש לעוועלס צו די זעלבע גרופּע פֿאַר יעדער סעקוראַבלע כייפעץ.
  6. וועב אַפּלאַקיישאַן פּאַלאַסיז טראַמפּ אַלע פון ​​דעם (זען ווייטער).

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

פּראָסט פּיטפאַללס:

  • גרופע נעמען פאָלסלי מיינען דערלויבעניש: אויס פון די קעסטל, SharePoint defines a set of groups whose names imply an inherent level of security. Consider the group "Contributor". One unfamiliar with SharePoint security may well look at that name and assume that any member of that group can "contribute" to any site/list/library in the portal. That may be true but not because the group’s name happens to be "contributor". This is only true out of the box because the group has been provided a permission level that enables them to add/edit/delete content at the root site. Through inheritance, the "contributors" group may also add/edit/delete content at every sub-site. One can "break" the inheritance chain and change the permission level of a sub-site such that members of the so-called "Contributor" גרופּע קענען נישט בייַשטייַערן בייַ אַלע, אָבער בלויז לייענען (לעמאָשל). This would not be a good idea, דאָך, זינט עס וואָלט זייַן זייער קאַנפיוזינג.
  • גרופּעס זענען נישט דיפיינד בייַ אַ פּלאַץ גלייַך. It’s easy to be confused by the user interface. Microsoft provides a convenient link to user/group management via every site’s "People and Groups" רונג. It’s easy to believe that when I’m at site "xyzzy" and I create a group through xyzzy’s People and Groups link that I’ve just created a group that only exists at xyzzy. That is not the case. I’ve actually created a group for the whole site collection.
  • גרופּעס מיטגלידערשאַפט טוט נישט בייַטן דורך פּלאַץ (י.ע. עס איז די זעלבע אומעטום די גרופּע איז געניצט): Consider the group "Owner" און צוויי זייטלעך, "HR" and "Logistics". It would be normal to think that two separate individuals would own those sites — an HR owner and a Logistics owner. The user interface makes it easy for a security administrator to mishandle this scenario. If I didn’t know better, איך זאל צוטריט די מענטשן און גרופּעס לינקס דורך די הר פּלאַץ, select the "Owners" group and add my HR owner to that group. A month later, Logistics comes on line. I access People and Groups from the Logistics site, add pull up the "Owners" group. I see the HR owner there and remove her, thinking that I’m removing her from Owners at the Logistics site. אין פאַקט, I’m removing her from the global Owners group. Hilarity ensues.
  • פיילינג צו נאָמען גרופּעס באזירט אויף ספּעציפיש ראָלע: The "Approvers" group is a perfect example. What can members of this group approve? Where can they approve it? Do I really want people Logistics department to be able to approve HR documents? Of course not. Always name groups based on their role within the organization. This will reduce the risk that the group is assigned an inappropriate permission level for a particular securable object. Name groups based on their intended role. In the previous HR/Logistics scenario, איך זאָל האָבן באשאפן צוויי נייַ גרופּעס: "HR Owners" and "Logistics Owners" און באַשטימען פיליק דערלויבעניש לעוועלס פֿאַר יעדער און דער מינימום סומע פארלאנגט פֿאַר יענע ניצערס צו טאָן זייער אַרבעט.

אנדערע נוציק רעפֿערענצן:

אויב איר ווע געמאכט עס דעם ווייַט:

Please let me know your thoughts via the comments or email me. If you know other good references, ביטע טאָן די זעלבע!

טעטשנאָראַטי טאַגס:

שנעל און יזי: שאַפֿן אַ דאַטע View וועב חלק (דוווופּ)

עס איז אַ עשירות פון גרויס אינפֿאָרמאַציע אויף די ווסס 3.0 דאַטע View וועב חלק (דוווופּ) on the web from several sources. אָבער, I found it to be surprisingly difficult to find information on this first very basic step. Here is another article in the "quick and easy" סעריע צו אַדרעס עס.

גיי די טריט צו שאַפֿן אַ דאַטן מיינונג וועב טייל (דוווופּ). They are based on an "Announcements" וועב טייל, אָבער צולייגן צו רובֿ רשימות.

  1. שאַפֿן אַ מודעות וועב טייל און לייגן עס צו אַ פּלאַץ.
  2. עפענען די פּלאַץ אין שאַרעפּאָינט דיזיינער.
  3. עפענען די פּלאַץ ס דעפאַולט.אַספּקס.
  4. Select the Announcements web part and right-click.
  5. פון די קאָנטעקסט מעניו, select "Convert to XSלT Data View".

שאַרעפּאָינט דיזיינער נאָוטאַפייז איר אַז דאָס פּלאַץ איז איצט קאַסטאַמייזד פון זייַן פּלאַץ דעפֿיניציע. אַז ס 'נישט דאַווקע שלעכט, אָבער עס זענען וויכטיק ימפּלאַקיישאַנז (פאָרשטעלונג, אַפּגרייד, אנדערע) which are beyond the scope of this little "Quick and Easy" פּאָזיציע. To get more information on this subject, איך רעקאָמענדירן ביידע ספרים דאָ ווי געזונט ווי דיין באַליבט אינטערנעט זוכן.

באַשטעטיקן אַז איר האט עס ריכטיק:

  1. נאָענט און שייַעך-עפענען די וועב בלעטערער (to avoid accidentally re-posting the original "add a new web part").
  2. Select the web part’s arrow drop-down and choose "Modify Shared Web Part" פון די מעניו.
  3. די געצייַג טאַפליע עפענען צו די רעכט.
  4. די טאַפליע האט געביטן פון זייַן געוויינטלעך שטעלן אָפּציעס צו דעם:
בילד

“קענען נישט באַקומען די רשימה סטשעמאַ זייַל פאַרמאָג פון די שאַרעפּאָינט רשימה” — באַשרייַבונג / ווערק-אַראָונדס

דעם וואָך, מיר לעסאָף ריפּראַדוסט אַ פּראָבלעם אַז האט שוין געמאלדן דורך אַ ווייַט באַניצער: ווען זי געפרוווט צו אַרויספירן די אינהאַלט פון אַ רשימה צו עקססעל, דאס וואָלט ויסקומען צו אָנהייבן ארבעטן, אָבער דעמאָלט עקססעל וואָלט קנאַל אַרויף אַ טעות: "Cannot get the list schema column property from the SharePoint list". She was running office 2003, windows XP and connecting to MOSS.

איך געזוכט דעם ינטערנעץ און געזען עטלעכע ספּעקולאַציע אָבער גאָרנישט 100% definitive. Hence, דעם פּאָסטן.

די פּראָבלעם: עקספּאָרטינג אַ מיינונג צו עקססעל אַז כּולל אַ דאַטע (דאַטע = די דאַטן טיפּ פון דעם זייַל).

What worked for us: Convert the date to a "single line of text". דעמאָלט, convert it back to a date.

That solved it. It was nice to see that the conversion worked, פאקטיש. It was quite nervous that converting things this way would fail, but it did not.

This bug has thrown a huge shadow over the date data type in the client’s mind, so we’re going to be seeking out a definitive answer from Microsoft and hopefully I’ll post and update here in the next short period of time with their official answer and hotfix information.

Other references:

http://www.kevincornwell.com/blog/index.php/cannot-get-the-list-schema-column-property-from-the-sharepoint-list/

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2383611&SiteID=1

<עק>

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

טעטשנאָראַטי טאַגס: ,

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

אַמאָל אָדער צוויי מאָל חודש, עמעצער הודעות אַ פאָרום קשיא: "How do I include hyperlinks to URL’s that are clickable from a SharePoint Designer email?"

דערלאנגט אָן ווייַטער באַמערקונג: (געזונט, פאקטיש דאָרט איז ווייַטער באַמערקונג נאָך די בילד):

בילד

בעקי יססערמאַן גייט אַרויף מיט אַ נוציק דערקלערונג אויף ווי צו ימבעד אַ לינק צו אַ נומער אין דעם Email: http://www.sharepointblogs.com/mosslover/archive/2007/11/20/addition-to-paul-galvin-s-post-about-sending-an-e-mail-with-hyperlinks-in-spd.aspx

ניו מעלדונג: שאַרעפּאָינט דיזיינער וואָרקפלאָוו עקסטענסיאָנס (שטריקל מאַניפּיאַליישאַן פאַנגקשאַנז)

דערהייַנטיקן: זען דאָ פֿאַר מיין געדאנקען אויף קאַמערשאַלייזינג דעם פּרויעקט: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!569.entry

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

זען דאָ פֿאַר פרטים:

פּראָיעקט היים: http://www.codeplex.com/spdwfextensions

מעלדונג: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=spdwfextensions&ReleaseId=8280

ווערסיע 1.0 כולל די פאלגענדע נייַ פֿעיִקייטן:

פונקציאָנירן באַשרייַבונג (אויב נישט זעלבע ווי. נעט פֿונקציע)
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".

א בדק רונטימע טעות דערקלערט

איך געפֿירט אַ בדק טעות דעם וואָך, אז אנטפלעקט זיך אויף דער באַניצער צובינד און אין די 12 hive log at runtime.

ערשטער, דאָס באוויזן אין דער באַניצער צובינד:

קען נישט געפינען פעלדער צו טאָן אַלע די ידענטיפיער וואַלועס צו ריכטיק ויספירן אַ ספּעסיפיקפינדער מעטהאָדינסטאַנסע מיט נאָמען … Ensure input Parameters have TypeDescriptors associated with every Identifier defined for this Entity.

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

קליפּ_ימאַגע001

I could also cause this message to appear in the 12 hive log at will (using my patented high-tech-don’t-try-this-at-home "mysterious errors" מעטאָד):

11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C SharePoint Portal Server Business Data 6q4x High Exception in BusinessDataWebPart.OnPreRender: סיסטעמ.ינוואַלידאָפּעראַטיאָנעקססעפּטיאָן: The Identifier value ”, of Type ”, is invalid. Expected Identifier value of Type ‘System.String’. at Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Object[] subIdentifierValues, LobSystemInstance lobSystemInstance) at Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Entity entity, Object[] userValues, LobSystemInstance lobSystemInstance) at Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(View desiredView) at Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() at Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()

I searched around and found some leads in the MSDN forum, but they weren’t enough for me to understand what I was doing wrong. I watched a webcast by Ted Pattison that my company has squirreled away on a server and came to realize my problem.

In my ADF, I’m connecting to a SQL database as shown:

            <פאַרמאָג נאָמען="רדבקאָממאַנדטעקסט" טיפּ="סיסטעמ.סטרינג">
              <![קדאַטאַ[
                SELECT
                      SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      COUNTRY, ADDRESS1, ADDRESS2, ADDRESS3, ADDRESS4, CITY, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      COUNTY, STATE, POSTAL, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, PHONE, EXTENSION, FAX, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG
                FROM
                      dbo.PS_CARRIER_ID_VW WITH (nolock)
                WHERE
                  (SETID <> 'SHARE') און
                  (lower(CARRIER_ID) >= lower(@MinId)) און
                  (lower(CARRIER_ID) <= lower(@ מאַקסיד)) און
                  (lower(DESCR) LIKE lower(@InputDescr))
                ]]>
            </פאַרמאָג>

I was provided that SQL from a DBA person and I’m given to understand that it’s a ספּעציעל view they created just for me. The unique key there is CARRIER_ID.

Here is the bug I introduced:

      <Identifiers>
        <Identifier נאָמען="CARRIER_ID" טיפּענאַמע="סיסטעמ.סטרינג" />
        <Identifier נאָמען="DESCR" טיפּענאַמע="סיסטעמ.סטרינג" /> 
</Identifiers>

ערגעץ צוזאמען די שורה, איך האט געראטן צו צעטומלען זיך איבער די טייַטש פון <Identifiers> and added DESCR even though it’s not actually an identifier. I took DESCR out of the identifiers set and presto! עס אַלע געארבעט.

איך האָפֿן דעם סאַוועס עמעצער עטלעכע טרויער 🙂

טעטשנאָראַטי טאַגס: , , ,