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

טראכטן וועגן קאַמערשאַל פּראָדוקטן

איך לייגן אַרויף אַ שאַרעפּאָינט דיזיינער יקסטענשאַנז פּרויעקט אַרויף אין קאָדעפּלעקס פריער דעם יאָר און אַפֿילו כאָטש עס ס 'טאַקע גאַנץ באגרענעצט אין פאַרנעם, איך שאַצן אַז עס ס 'שוין דאַונלאָודיד דורך 40 צו 60 (עפשער אַפֿילו 100) companies in just about two months. That indicates to me that there’s a market for that solution and if I were to successfully commercialize it, that could translate into a goodly amount of beer 🙂

מייַן הינטערגרונט איז פאקטיש פיל מער אין פּראָדוקט אַנטוויקלונג און איך וויסן וואָס איז פארלאנגט צו ברענגען אַ שפּיץ-קאַרב פּראָדוקט, ווי קעגן צו אַ קאָדעפּלעקס פערדל פּרויעקט, to market. In my פאַרגאַנגענהייַט לעבן, איך איז געווען פאַראַנטוואָרטלעך פֿאַר פּראָדוקט ר&D for all software products. The difference between then and now is that I’m a consultant now working for an (ויסגעצייכנט) קאַנסאַלטינג פעסט (קאָנטשאַנגאָ). ביז אַהער, איך האט אַ גאנצע געזעלשאַפט הינטער מיר און אין פראָנט פון מיר, selling and supporting the products we brought to market. הייַנט, איך 'ד ווערן אַליין.

איך האב עטלעכע פּראָדוקט געדאנקען אין גייַסט, but I think the easiest would be to create a commercial version of the above-mentioned CodePlex project that uses that as a starting point and extends it further. My fuzzy off-the-cuff thinking is to charge something like $100 פֿאַר אַ אַנלימאַטאַד דעוועלאָפּער דערלויבעניש און $500 per production web front end. I think I would also give away the source code.

אויב איר האָט געדאנקען אָדער יקספּיריאַנסיז אַז איר ניטאָ גרייט צו טיילן, ביטע לאָזן אַ באַמערקונג אָדער Email מיר גלייַך. I’d like to hear opinions like:

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

It’s "easy" צו קומען אַרויף מיט פּראָדוקט געדאנקען און צו ינסטרומענט זיי, though many dozens of hours of work are required. The other stuff is not as easy for me.

</עק>

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

זונטיק מאָרגן מאָדנע: “יאָשקע דאַרף די”

מיר געקויפט אונדזער ערשטער (און בלויז) "luxury" car back when hurricane Floyd nailed the east coast of the U.S. We got a LOT of rain here in New Jersey and עטלעכע טעג דורכגעגאנגען before life returned to normal. Just before Floyd struck, מיר געמאכט אַ פאָרשלאָג פֿאַר אַ געניצט וואָלוואָ 850 גל און נאָך פלויד געשלאגן, פארטריבן עס היים.

It was our first car with a CD player. Like most new car owners, מיר זענען אַ ביסל סי משוגע, revived our dormant CD collection and went on long drives just to listen to CD’s in the car. Like all fads, this passed for us and we ended listening to the same CD over and over again. In our case, עס איז געווען יאָשקע משיח סופּערסטאַר.

איינער פון די (פילע) בריליאַנט ברעקלעך אין אַז שטיין אָפּערע איז סאַנג דורך די פאַרלייגן רעליגיעז טייפּס, געפירט דורך קיפא, the "High Priest". They sing their way into deciding how to handle the "Jesus problem" and Caiaphas directs them to the conclusion that "Jesus must die". The refrain on the song is "Just must die, מוזן שטאַרבן, מוזן שטאַרבן, this Jesus must die". You hear that refrain a lot in that piece.

אין דער צייַט, my son was about three years old. You can probably see where this is going.

I came home from work one day and my son is in the living room playing with toys and humming to himself. I’m taking off my jacket, קוקן דורך די פּאָסט און אַלע מיין געוויינטלעך גיין-אין-דעם-טיר שטאָפּן און איך פּלוצלינג פאַרשטיין אַז ער ס נאָר געזאגט, ניט טאַקע געזאַנג: "Jesus must die, מוזן שטאַרבן, must die." I was mortified. I could just see him doing that while on one of his baby play dates at a friend’s house — מיסטאָמע די לעצטע שפּיל דאַטע מיט וואָס בייבי פרייַנד.

We pulled that CD out of the Volvo after that 🙂

</עק>

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

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

דערהייַנטיקן: ווי פון 03/09, I have found no way to integrate my live spaces account with Google Adsense. Microsoft’s system here seems to prevent all of the technical mechanisms that Google provides would-be adsense hosters. I tend to believe this is mainly a side effect of the security they’ve built into live spaces, not a direct effort to disable Adsense.

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

Someone commented on their Windows Live Spaces blog that Google affirmatively denied their application to participate in AdSense. She theorized that Google denied her because Windows Live Spaces hosts her blog. אָבער, איך איז לעצטנס אנגענומען אין דער פּראָגראַם פֿאַר מיין לעבן ספּייסיז בלאָג, אַזוי די פּאָליטיק האט יעדער געביטן אָדער גוגל געלייקנט איר פֿאַר עטלעכע אנדערע סיבה.

אַוואַדע, איך טאָן נישט זען קיין קלאָר ווי דער טאָג וועג צו ויסשטימען גוגל אַדסענסע אין מיין לעבן אָרט, but it’s a start 🙂

</עק>

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

ימפּלאַמענטינג האר / דעטאַל רעלאַטיאָנשיפּס ניצן מנהג ליס

Forum users frequently as questions like this:

> העלא,
>
> ביטע זאָגן מיר אויב עס זענען קיין פּאַסאַבילאַטיז צו בויען אַ מנהג רשימה מיט
> בעל און דעטאַל טיפּ (ווי ינווויסיז) without using InfoPath.
>

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

ינ אַלגעמיין, one links two lists together using a lookup column. List A contains the invoice header information and list B contains invoice details.

Use additional lists to maintain customer numbers, product numbers, אאז"ו ו.

Use a content query web part (in MOSS only) and/or a data view web part to create merged views of the lists. SQL Server Reporting Services (SRS) is also available for the reporting side of it.

אָבער, there are some important limitations that will make it difficult to use pure out-of-the-box features for anything that is even moderately complex. These include:

  • Size of related lookup lists vs. "smartness" of the lookup column type. A lookup column type presents itself on the UI differently depending on whether you’ve enabled multi-select or not. In either case, the out-of-the-box control shows all available items from the source list. If the source list has 1,000 זאכן, that’s going to be a problem. The lookup control does not page through those items. אַנשטאָט, it pulls all of them into the control. That makes for a very awkward user interface both in terms of data entry and performance.
  • Lookups "pull back" one column of information. You can never pull back more than one column of information from the source list. לעמאָשל, you cannot select a customer "12345" and display the number as well as the customer’s name and address at the same time. The lookup only shows the customer number and nothing else. This makes for an awkward and difficult user interface.
  • No intra-form communication. I’ve written about this here. You can’t implement cascading drop-downs, conditionally enable/disable fields, אאז"ו ו.
  • No cascading deletes or built-in referential integrity. SharePoint treats custom lists as independent entities and does not allow you to link them to each other in a traditional ERD sense. לעמאָשל, SharePoint allows you to create two custom lists, "customer" and "invoice header". You can create an invoice header that links back to a customer in the customer list. דעמאָלט, you can delete the customer from the list. אויס פון די קעסטל, there is no way to prevent this. To solve this kind of problem, you would normally use event handlers.

It may seem bleak, but I would still use SharePoint as a starting point for building this kind of functionality. Though there are gaps between what you need in a solution, SharePoint enables us to fill those gaps using tools such as:

  • Event handlers. Use them to enforce referential integrity.
  • Custom columns: Create custom column types and use them in lieu of the default lookup column. Add paging, buffering and AJAX features to make them responsive.
  • בדק. This MOSS-only feature enables us to query other SharePoint lists with a superior user interface to the usual lookup column. BDC can also reach out to a back end server application. Use BDC to avoid replication. Rather than replicating customer information from a back end ERP system, use BDC instead. BDC features provide a nice user interface to pull that information directly from the ERP system where it belongs and avoids the hassle of maintaining a replication solution.

    BDC is a MOSS feature (not available in WSS) and is challenging to configure.

  • ASP.NET web form: Create a full-featured AJAX-enabled form that uses the SharePoint object model and/or web services to leverage SharePoint lists while providing a very responsive user interface.

The last option may feel like you’re starting from scratch, but consider the fact that the SharePoint platform starts you off with the following key features:

  • Security model with maintenance.
  • Menu system with maintenance.
  • "Master table" (י.ע. מנהג רשימות) with security, built-in maintenance and auditing.
  • זוכן.
  • Back end integration tools (בדק).

If you start with a new blank project in visual studio, you have a lot of infrastructure and plumbing to build before you get close to what SharePoint offers.

I do believe that Microsoft intends to extend SharePoint in this direction of application development. It seems like a natural extension to the existing SharePoint base. Microsoft’s CRM application provides a great deal of extensibility of the types needed to support header/detail application development. Although those features are in CRM, the technology is obviously available to the SharePoint development team and I expect that it will make its way into the SharePoint product by end of 2008. If anyone has an knowledge or insight into this, ביטע לאָזן אַ באַמערקונג.

</עק>

שנעל טיפּ: אינהאַלט קווערי וועב חלק, לאָאָקופּ קאַלאַם ווערט און קססל

I have a column name in a content type named "Real Estate Location".

That column is of type "lookup".

איך האָבן מאַדאַפייד <קאָממאָנוויעוופיעלדס> און יטעמסטילע.קססל צו ווייַזן דעם זייַל.

א פּשוט <קססל:ווערט-פון אויסקלייַבן =…> קערט צוריק אַן ינערלעך ווערט אַז כולל אָרדינאַל שטעלע דאַטן, אַזאַ ווי:

1;#מיאַמי

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

<קססל:value-of select="substring-after(@ רעאַל_קס005פ_קס0020_עסטאַטע_קס005פ_קס0020_לאָקאַטיאָן,'#')"></קססל:ווערט-פון>

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

<סוף />

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

שאַרעפּאָינט בעאַגלע דעצעמבער ישו אַרויף & לעבן

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

יעדער אַרטיקל איז ווערט לייענען אין מיין מיינונג.

איך ווילן צו געבן אַ ביסל עקסטרע זעץ צו מיין קאָלעגע 'ס אַרטיקל (נאַטאַליאַ וואָסקרענסענסקיאַ). She provides a screen-shot extravaganza while describing how she used custom lists, וואָרקפלאָוו, שאַרעפּאָינט דיזיינער, data views and other elements to implement a self-service training feature in MOSS. She describes techniques that can be applied in many different business scenarios. Check out איר בלאָג בשעת איר ניטאָ אין אים.

דו זאלסט נישט פאַרגעסן צו טשעק אויס מיין אַרטיקל as well 🙂 I wrote about using MOSS to help an HR department manage open positions.

</עק>

מאָך טעלז Me “צוטריט דינייד” צו עדיט אַ וואָרקפלאָוו טאַסק, אבער איך רילי צי האב אַקסעס

I’ve implemented a workflow using SharePoint Designer in a site which is mainly read-only to "NT_AUTHORITY\Authenticated Users" (י.ע. יעדער יינער). There is a forms library for an InfoPath form. There is an associated workflow tasks list as well so that when the workflow operates, עס קענען באַשטימען טאַסקס צו מענטשן.

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

I test with my low-privileges test account.

קענען איך פּלאָמבירן אויס און ראַטעווען אַ פאָרעם צו דער ביבליאָטעק? –> יאָ

קענען איך צוטריט די אַרבעט פון אַ Email לינק? –> יאָ

קענען איך זען אַ רעדאַגירן וואָרקפלאָוו אַרבעט לינק –> יאָ

קענען איך גיט אויף וואָס לינק? –> קיין … דערלויבעניש דינייד.

פארוואס קענען איך זען אַ רעדאַגירן לינק וואָס דינייז מיר דערלויבעניש ווען איך דרוק אויף עס? That’s not how it’s supposed to work…

איך גיין דורך די זיכערהייַט קאַנפיגיעריישאַן ווידער, very closely. I do it again. איך באַטראַכטן דיליטינג דעם פּאָסטן ווייַל איך דאָך טאָן נישט וויסן עפּעס וועגן זיכערהייַט.

לעסאָף, I search the Internets. I find this highly unlikely MSDN forum thread: http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=1838253&SiteID=17

די פּאָסטערס דערשייַנען צו זייַן סאַגדזשעסטינג אַז די פּשוט אַקט פון עקספּאָרטינג די וואָרקפלאָוו צו אַ פאָר טאַץ וועט פאַרריכטן אַ מאָך זיכערהייַט אַרויסגעבן? I can hardly believe I just typed that. I’m reminded of the South Park episode about the 9/11 קאַנספּיראַסי ווו סטאַן איז אַסקינג אונדזער פּרעזניט, "Really?" over and over again.

אַזוי, גאָרנישט צו פאַרלירן, איך פייַער אַרויף ספּד, רעכט-גיט אויף די וואָרקפלאָוו און ראַטעווען עס צו מיין C:\ drive. That would be the c:\ drive on my laptop. I’m looking over my shoulder the whole time so that no one will ask me, "why are you saving that workflow to your laptop?"

ינקרעדאַבלי, that solves my problem. I can edit the task.

איך כירביי נאָמינירן דעם צו זייַן דעם רובֿ באַזאַר וואָרקפלאָוו וואָרקאַראָונד פון 2007.

</עק>

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

שאַרעפּאָינט דיזיינער, קראַנט יטעם ס “ענקאָדעד אַבסאָלוטע URL” און הטטפּס

We often want to send an email that includes a hyperlink to the item or document that triggered the workflow. We can use current item’s "Encoded Absolute URL" for this purpose. אָבער, it always seems to use "http" for the URL protocol. If your site runs on HTTPS then it will not work for you.

בילד

ווי ווייַט ווי איך וויסן, there is no out of the box solution to this problem. If you need to use HTTPS, איר האָבן ניט אויס פון די קעסטל אָפּציע.

צו סאָלווע עס, create a custom action that provides a string replace function to use in your workflow. Alternatively, ניצן אַ 3 טיילווייַז געצייַג אַזאַ ווי די ויסגעצייכנט פּעקל דאָ: http://www.codeplex.com/spdwfextensions 🙂

</עק>

שנעל און יזי: באַשטימען אינערלעכער קאַלאַם נעמען פון אַ וועבזייַטל קאַלאַם

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

I was trying to get a content query web part to display a due date from a task and because the screen label is "Due Date", איך אנגענומען אַז דער זייַל נאָמען צו נוצן אין <קאָממאָנוויעוופיעלדס> is "Due_x0020_Date".

פאַלש!

The real column name in this case was "DueDate".

ווי האט איך געפינען עס? I re-read Heather שלמה ס בלאָג פּאָזיציע אויף מאַדאַפייינג קקוופּ to show additional columns of data. She describes this process at step #13. Trust it. It’s correct. אין מינדסטער, it was correct for me. I did not trust it at first for another column with a much longer name.

I say "Trust it" because I did not trust it and probably wasted near two hours butting my head up against a wall. After I resolved the "DueDate" נאָמען, איך געוואלט צו לייגן אן אנדער פעלד צו <קאָממאָנוויעוופיעלדס>. Using the Solomon technique, I was getting a column name like "XYZ_x0020_Project_x0020_Due_x00".

איך געדאַנק צו זיך, that’s clearly a truncated name. I went ahead and un-truncated it with no success. I finally used the seemingly truncated name and it worked.

באָנוס שפּיץ: ווען איך איז געווען ארבעטן מיט די קקוופּ, אויב איך צוגעלייגט אַ שלעכט ינערלעך נאָמען צו <קאָממאָנוויעוופיעלדס>, the CQWP would tell me that the query had returned no results. אָבער, אויב איך צוגעלייגט אַ דאַטן טיפּ צו די פעלד נאָמען, it would return a result. Adding the data type actually masked a problem since I was referencing a non-existent field. I could add it, אָבער ווען איך געפרוווט צו אַרויסווייַזן זייַן ווערט, I would always get a blank.

דאס האט נישט מאַסקע דער טעות:

<קאָממאָנוויעוופיעלדס>דוע_קס0020_דאַטע;</קאָממאָנוויעוופיעלדס>

דאס האט מאַסקע דער טעות:

<קאָממאָנוויעוופיעלדס>דוע_קס0020_דאַטע,דאַטעטימע;</קאָממאָנוויעוופיעלדס>

</עק>

היט אייך ברעאַקינג ענדערונגען צו יטעמסטילע.קססל

איך איז געווען ארבעטן מיט יטעמסטילע.קססל צו קאַסטאַמייז די קוק פון אַ אינהאַלט קווערי וועב חלק און רעכט וועגן לאָנטש צייַט, I made a breaking change to the xsl. I didn’t realize it, but this had far reaching effects throughout the site collection. I went off to lunch and upon my return, noticed this message appearing in a bunch of places:

Unable to display this Web Part. To troubleshoot the problem, open this Web page in a Windows SharePoint Services-compatible HTML editor such as Microsoft Office SharePoint Designer. If the problem persists, contact your Web server administrator.

I blamed the client (not realizing as yet that it was my fault at this point) but eventually noticed that visual studio intellisense was warning me that I had malformed XSL. I corrected it and everything started working.

Be darned careful when working with ItemStyle.xsl (and any of the global XSL files) — breaking them affects many artifacts in the site collection.

<סוף />