فروشگاه شیرپوینت بحث باز کردن Q&جلسه پنج شنبه 08/13 @ 12:30 PM EDT

Arcovis خواهد شد میزبانی دوم "فروشگاه شیرپوینت بحث" جلسه ما این روز پنج شنبه در 12:30 PM EDT. Show up with your SharePoint questions and we’ll do our best to entertain you with banjo jokes, smart but harmless put-downs of our fellow panelists and maybe even answer a question or two. This week’s “official” panel includes yours truly, شرکای Arcovis من (ناتالیا Voskresenskaya و هری جونز) و لورا راجرز (از توییتر & EndUserSharePoint شهرت). Bob fox threatened to join too, but I don’t take that too seriously. Last time, ما تا به حال یک سطح بزرگ از با مشارکت مخاطبان که تاری خط بین شرکت کنندگان در میزگرد و شرکت کنندگان و من انتظار دارم همان خواهد شد پنجشنبه اتفاق می افتد.

این رویداد بانیان سیستم های یکپارچه و خدمات گروه (www.issgroup.net).

لطفا از اینجا ثبت نام کنید: https://www323.livemeeting.com/lrs/8000043750/Registration.aspx?pageName=9xrzxfs9x34sb0sm

اگر سوالی دارید که شما می خواهم ما را, just dial into the call and ask it. If you want us to think about it first, برای ما ایمیل بفرستید و یا ترک یک نظر در اینجا.

شما را می بینم سپس!

</پایان>

مشترک شدن در وبلاگ من.

من در توییتر در http://www.twitter.com/pagalvin

شرایط از پیش موجود: شیرپوینت قالب هشدار به نجات (?)

One of my clients worked with a previous contractor to build out a small but useful HR application for the enterprise. That contractor used SharePoint Designer to implement the workflow portion of the solution. It’s a bit of a mess. مثلا, there are nine SPD workflows in support of a single logical workflow process and up to five of them may fire simultaneously at any given time given the right conditions. It’s not easy to debug 🙂

My customer has a number of still-outstanding requirements, one of which is to generally provide more context when the system sends out email alerts – both in the email itself as well as associated task forms. As SPD workflow implementers know, the “collect data from user” SPD action actually creates a task with a custom content type. When we use that action, we don’t get to specify much. We can prompt for some values (e.g. “approve” or “deny”) and we can specify a hard coded value in the title and description. That’s about it.

My customer’s requirement is two fold:

  1. When SharePoint sends an email about a task assignment, include a lot of information about the task in the email body.
  2. More importantly, by far – when the user clicks on the task link in the email, the task form should have all the information the approver needs in order to make his/her approve or deny decision. Right now, the manager needs to click on the item link itself to drill down into the underlying details and no one likes that. You have to click in the email. Then you need to click a sort of obscure link on the task item. Then you can look at the underlying data (an InfoPath form in this case). Then you click back/back, غیره. Everyone hates it.

I’ve inherited this somewhat messy technical solution and I want to make changes in the least intrusive way possible.

The approach I’m taking right now is to create a custom alert template. You can read about that here. The flow works like this:

  • SPD workflow runs.
  • At some point, it assigns a task to a manager.
  • SharePoint system automatically sends out an alert to that manager. This is not part of the SPD workflow but rather “what SharePoint does.” (The SharePoint timer service, I believe).
  • A custom alert handler is invoked in favor of the standard alert process (following magic rules as described in the above referenced article).
  • When my custom alert handler runs, it generates a beautiful email. More importantly, since it has the task in hand, it also decorates the actual task with all the context information necessary to meet the business requirement.
  • The user gets the email and it’s full of useful context information.
  • User clicks on the task link and the task itself is full of useful context information.
  • Everyone goes home to have watermelon and ice cream.

I did a quick POC and it works well in a lab environment. I get my custom email alert as expected. I also get to update the task description and title itself.

The only tricky bit, تا کنون, is to avoid a situation where the alert updates the item, triggering another alert. This doesn’t worry me.

Looks promising so far…

The great thing about this is that I don’t need to muck about with any of the existing SPD workflows. They are blissfully unaware that an alert handler is “IIZ RUNNIN IN DA BAKGROUND, چارچوب DECORATIN TEH TASK LIST WIF MOAR".

</پایان>

مشترک شدن در وبلاگ من.

من در توییتر در http://www.twitter.com/pagalvin

Live SharePoint Q&جلسه پنج شنبه 07/30/09 @ 12:30 PM EDT ending 1:30PM EDT

بروز: The format for this is basically a conference call with a couple of PPT slides to set the stage. We have a SharePoint environment on stand by to fire up in case it helps out, but this is mainly people talking out loud. There will be opportunities for follow up by email.

Going back to my first ever SharePoint conference, just over a year ago, I’ve been struck by how terrific a live Q&A session can be. The conference organizers had put together a sort of ad hoc group of “experts” (i.e. people who were hanging around and weren’t afraid of looking to silly up on stage) to answer any questions that came from the audience in the room. It was in my head back then, and periodically since then, to host a similar session but do it on line and the phone. I don’t think it can be as good as an in-person Q&A session, but I think it could be pretty cool.

I finally got around to it and next Thursday, 07/30, شرکت من (Arcovis) and business partner, Integrated Systems and Services group, will be hosting a Q&A like that. I’m hoping to do these regularly, as often as weekly.

This inaugural session will probably be a little bumpy, but the concept is this:

  • If you have questions that you’d like to have answered during the session, just show up and ask.
  • If you want, you can email the question in advance.

We plan to spend the first half of the Q&A on emailed questions and then open it up to anything that anyone asks after that.

The session takes place on Thursday, 07/30 starting at 12:30 and ending at 1:30 PM EDT.

اگر شما علاقه مند هستید, kindly register here: https://www323.livemeeting.com/lrs/8000043750/Registration.aspx?pageName=pxlsd9fpsm2md7h9

The panel will include me and other SharePoint luminaries. You’ll have to sign up to find out who they are 🙂

If you’d like to be one of those luminaries for a future Q&A session, let me know.

</پایان>

مشترک شدن در وبلاگ من.

من در توییتر در http://www.twitter.com/pagalvin

برچسب ها:

قراردادن یادداشت توسعهدهنده در داخل فرم های InfoPath شما

من هنوز در InfoPath جهان اشکال زندگی می کنند و من نیاز به یکی از این تغییرات "کوچک" به یک شکل است که, متاسفانه, breaks a naming convention I adopted with it two weeks ago. با خودم فکر کردم, "در این چیزی که کسی در حال رفتن به یک سال از هم اکنون و می گویند, چه پل تفکر بود? By Jove, his naming convention makes no sense!"

I realized that I could create a view on the form for this and then, once again, realized that I could have been doing something like this all along. I added a “Developer Notes” view to the InfoPath form as such:

image

I’ve configured the form so that users can’t get to that view and therefore, it’s only visible with the InfoPath client in design view. Now I feel a little inoculated against some future unknown developer looking at my form and thinking bad thoughts about me. Phew!

</پایان>

مشترک شدن در وبلاگ من.

من در توییتر در http://www.twitter.com/pagalvin

برچسب ها:

مدیریت InfoPath ها

من به نظر می رسد از طریق مراحل InfoPath که در آن بروید, از آبی, I’m crafting a bunch of forms. My fingers learn how to use the tool well and then I go through nine month drought and have to learn it all over again.

I’m in the middle of an InfoPath phase and I’m creating InfoPath forms with a lot of views. One thing you probably notice is that the InfoPath 2007 client shows views in alphabetical order. This is a real nuisance some times. My best technique these days is to prepend a number to the view name so that they always show in the order I want, as illustrated here:

image

I wish I had been doing this all along.

</پایان>

مشترک شدن در وبلاگ من.

من در توییتر در http://www.twitter.com/pagalvin

برچسب ها:

خدمات فرم InfoPath, تشکیل می دهد تایید بر اساس (FBA) و نام فایل منحصر به فرد

من مشغول به کار در برخی از InfoPath به شکل این هفته در MOSS در FBA محیط زیست و آموخته, وقتی که من رفتم برای استقرار فرمها را به عنوان یک محیط تولید با منطقه FBA که نام کاربری() function function does not work. I was using it to generate unique file names.

خوب, that function doesn’t work in an FBA environment (حداقل, not out of the box). و, upon reflection, using username in the way I had planned wouldn’t have guaranteed a unique file name in any event.

My solution was to use the now() function and a rule that fires on loading of the form. I assign the file name to data element when it’s blank:

image

image

The advantage of this approach is that the file name is set only once. (I don’t show it in the screen shot, but put a condition on the rule to only fire when “myFilename” is blank). I used to set the file name at the data source level. Typically, I would do something (بد) مثل این:

image

The problem with that is that if user A opens the form on Monday and the user B changes it on Tuesday, you’ll end up with two different forms since two different users saved it with different user names.

پس, as annoying as FBA can be in general and with InfoPath in particular, it made me re-think a small but really important technical detail and approach that I wouldn’t have done otherwise!

</پایان>

مشترک شدن در وبلاگ من.

من در توییتر در http://www.twitter.com/pagalvin

برچسب ها:

ایمن شیرپوینت فهرست / نمایش ها کتابخانه سند به نظر می رسد (مرتب کردن بر اساس) ممکن است با jQuery

این یکی دیگر از پست من است بر روی سری در مورد چگونگی استفاده از جی کوئری با شیرپوینت.
اگر شما می خواهید برای کسب اطلاعات بیشتر در مورد جی کوئری, من به شدت توصیه: jQuery را در عمل توسط خرس Bibeault و یهودا کتز.

یکی از اولین چیزهایی که من فکر کردم, یک بار من شروع به بازی در اطراف با jQuery, was whether we could use it to secure a SharePoint view. The answer is “no” (یا حداقل, من ادعا نمی کند این امکان وجود دارد). اما, it is certainly possible to make it difficult for people to see a particular view.

I started with my sandbox environment when working on this. I wrote about that environment here: دسترسی سریع و آسان: ایجاد گودال ماسهبازی jQuery را خود را برای شیرپوینت.

به "امن" دیدگاه, این مراحل را دنبال:

  1. Create a view you want to secure. I did that and called it “Secured View”.

    این همان چیزی است که به نظر می رسد مانند وقتی که آن را "امن":

    image

  2. اضافه کردن ویرایشگر محتوا بخشی از وب به صفحه نمایش با استفاده از ترفند های شرح داده شده در مقاله گودال ماسهبازی (i.e. اضافه کردن "بازدید از صفحه = به اشتراک گذاشته شده&ToolPaneView = 2 "به URL).
  3. Figure out your SharePoint _spUserId by following these crazy steps, باور کنید یا نه:
    1. ورود به محیط شیرپوینت شما.
    2. در فیلد آدرس مرورگر وب, نوع: "جاوا اسکریپت:هوشیار(_spUserId ").
    3. ثبت نتیجه (آن را "13" در مورد من).

      image

  4. اضافه کردن JavaScript در مرورگر شما های زیر به CEWP خود را در نظر کد:

    <خط
        "text/javascript"
        SRC ="../../jQuery Library/jquery-1.3.2.min.js">
    </خط>
    
    <نوع اسکریپت ="text/javascript">
      $(تابع() {
    
        هوشیار(_spUserId);
    
        ور theSecuredView = $('از iframe[FilterLink * =٪ امن 20View]');
    
        اگر ((theSecuredView.length > 0) && (_spUserId == 13))
          $('از iframe[FilterLink * =٪ امن 20View]').پدر یا مادر().پدر یا مادر().پدر یا مادر().اچ تی ام ال("<TR bgcolor = قرمز><فلش>بدون دیدگاه برای شما!</فلش></TR>");
      });
    
    </خط>
    

من را گنجانده ام که هشدار(_spUserId) خط در آن وجود دارد برای نشان دادن نحوه این است که واقعا "تامین امنیت" دیدگاه, but simply making it more difficult to see. More on that in a moment.

بطور اساسی, jQuery is looking for an iFrame on the page who has an attribute that contains “Secured View” in its value. Once it finds it, we check to see if the current user is “13”. If it is, ما راه رفتن تا DOM به <TR> برچسب (که من با دیدن منبع و ردیابی آن نمیفهمد) و سپس جایگزین آن تگ TR با پیام من. من واقعا نمی دانم چگونه قوی این است (من بسیار مشکوک هستم, در واقع), but it worked in my sandbox. If I find a better way, من در مورد آن وبلاگ. این نتیجه است:

image

من روی دکمه OK کلیک کنید و داده ها را با یک پیام بزرگ قرمز جایگزین:

image

همانطور که شما می توانید بگویید, the way I’ve implement this “security” solution is to allow the web part to render itself. After it finishes, مطالب خود را با من "هیچ نظر را برای شما بازنویسی کنم!"پیام.

با وجود این واقعیت است که آن را واقعا نمی "امن" دیدگاه, آن را به طور بالقوه مفید و با برخی از کارهای هوشمندانه, it may eventually be securable in a more formal sense. The fundamental issue is that the client is getting all the data and then, تنها پس از آن می شود که داده ها, it wipes it out. If the client is getting the data, یک کاربر باهوش می تواند jQuery را از در حال اجرا در همه پیشگیری و دیدن آنچه که او / او می خواهد برای دیدن.

There are other drawbacks. This “security” approach is based off a _spUserId. We’d want to really secure based on the full SharePoint security model, or at least by user name. That becomes progressively harder, اما من می بینم بعضی از چیزهای خوب در مورد این مطلب نوشته شده است, بنابراین من امیدوار هستم یک پاسخ خوبی برای این مشکل وجود دارد.

لیستی از نمایش های خود باید کمرنگ, در صورت امکان. I haven’t tried to figure that out. I assume it’s possible, اما واقعا نمی حل مسئله امنیتی اساسی است زیرا کسی که هنوز هم می تواند فقط URL از این دیدگاه که آنها می خواهند تایپ (اگر آنها آن را می دانستند). اما, trimming makes sense. It’s a good usability feature and it helps to obfuscate things. If an end user doesn’t know that the view event exists, they probably won’t try to use it. Sometimes, که به اندازه کافی خوب است.

با آرزوی موفقیت, من بیشتر برای نوشتن در مورد این مطلب در طول زمان.

</پایان>

مشترک شدن در وبلاگ من.

من در توییتر در http://www.twitter.com/pagalvin

دسترسی سریع و آسان: راه بهتری برای استفاده از جی کوئری برای مخفی کردن فیلد متنی به فرم شیرپوینت

این یکی دیگر از پست من است بر روی سری در مورد چگونگی استفاده از جی کوئری با شیرپوینت.
اگر شما می خواهید برای کسب اطلاعات بیشتر در مورد جی کوئری, من به شدت توصیه: jQuery را در عمل توسط خرس Bibeault و یهودا کتز.

سابقا, I wrote about how to use jQuery to locate and hide a text field on a form. I didn’t care for the specific approach (من پدر و مادر زنجیری - که به سادگی انجام می شود نیست این روزها, حداقل در خانواده های با کیفیت).

وقتی من برای اولین بار شروع به در مورد آن فکر می کنم, من می دانستم که من نیاز برای پیدا کردن <TR> که من می توانم پنهان استناد() روش. My early effort to find the correct <TR> بود چیزی شبیه به این:

$('TR:است(ورودی[عنوان = من مخفی شود!])');

مشکل با آن شده است که آن را هر پیدا <TR> برچسب که تا به حال هیچ رابطه پدر و مادر به من مخفی شود! میدان, حتی اگر من مخفی شود! بسیاری از سطوح عمیق در است تو در تو <TR>’s. It turns out that on my sandbox form, که بیان می یابد 9 TR مختلف را که از من مخفی شود! as a child somewhere in its DOM tree. I realized that I could walk back up the tree from the input field itself, به طوری که من به پایان رسید تا پدر و مادر سوء استفاده, اما نشستن به خوبی با من.

خودم رو دادم به فکر به این و یکی از چیزهایی که من به عنوان خوانده شده حس در نهایت ساخته شده: من می توانم استفاده نمی() روش به قدم زدن <TR>’s I don’t want in my wrapped set. که منجر به این:

$('TR:است(ورودی[عنوان = من مخفی شود!])').نه('TR:است(TR)').پنهان کردن();

اولین بیت در می یابد همه <TR> برچسب هایی است که من مخفی شود! field anywhere in their own hierarchy. It then strips out any <TR> که کودک <TR>. This leaves us with a single <TR> که:

1) ندارد <TR> پرونده کودک

2) Does have the input field as child.

سپس ما می تواند پنهان اعمال() روش به مجموعه به دست آمده و ما انجام می شود.

من هنوز هم کمی عصبی در این مورد, اما به عنوان نه به عنوان پدر و مادر زنجیری عصبی.

I don’t know if this is a best practice or not. There may be a more appropriate way of identifying just the <TR> that we care about in a SharePoint form. If you know, لطفا نظرتان را تایپ کنید.

</پایان>

مشترک شدن در وبلاگ من.

من در توییتر در http://www.twitter.com/pagalvin

دسترسی سریع و آسان: استفاده از جی کوئری برای مخفی کردن فیلد متنی به فرم شیرپوینت

این یکی دیگر از پست من است بر روی سری در مورد چگونگی استفاده از جی کوئری با شیرپوینت.
اگر شما می خواهید برای کسب اطلاعات بیشتر در مورد جی کوئری, من به شدت توصیه: jQuery را در عمل توسط خرس Bibeault و یهودا کتز.

تکمیلی (قبلا!): من از یک راه بهتر برای قرار دادن فکر می کنم <TR> برچسب من می خواهم برای مخفی کردن و در مورد آن را در اینجا نوشت. You may still find this article interesting anyway so I’m leavnig it up.

من می خواهم برای مخفی کردن یک فیلد متنی, "مخفی کردن من!"به عنوان نشان داده شده است:

image'

جی کوئری زیر می کند فوت و فن برای من:

<نوع اسکریپت ="text/javascript">

  $(تابع() {


    $("ورودی[عنوان = من مخفی شود!]').پدر یا مادر().پدر یا مادر().پدر یا مادر().پنهان کردن();

  });

</خط>

کد گفت:, تمام زمینه های ورودی که عنوان = ویرایشهای من "پیدا کردن من!. سپس, گرفتن پدر و مادر خود و پس از آن پدر و مادر و پدر و مادر * بعدی * (phew!) و استناد پنهان() روش در آن چیز, هر آنچه در آن اتفاق می افتد.

من که ساختار پدر و مادر با دیدن HTML برای فرم نمیفهمد که شیرپوینت خلق به عنوان نشان داده شده است:

<TR>
    <TD nowrap="true" valign="top" عرض="190px" کلاس="ms-formlabel">
        <H3 کلاس="ms-standardheader">
            <nobr>ویرایشهای من!</nobr>
        </H3>
    </TD>

    <TD valign="top" کلاس="ms-formbody" عرض="400px">
        <!-- FieldName="Hide Me!"
                 FieldInternalName="Hide_x0020_Me_x0021_"
                 FieldType="SPFieldText"
        -->
        <محدوده دیر="none">
            <ورودی
                نام="ctl00$m$g_bdb23c2c_fde7_495f_8676_69714a308d8e$ctl00$ctl04$ctl02$ctl00$ctl00$ctl04$ctl00$ctl00$TextField"
                نوع="text"
                MAXLENGTH="255"
                شناسایی="ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
                عنوان="Hide Me!"
                کلاس="ms-long" />
                <برزیلی>
        </محدوده>


    </TD>
</TR>

این تصویر نشان می دهد, اما بازار با پدر و مادر:

image

پدر و مادر اولین (1) is a span tag. Span’s parent (2) تگ TD است و سپس در نهایت ما به پدر و مادر واقعی من می خواهم تا پنهان شوند (3) چوبی تگ TR خود.

This is a pretty terrible approach I think because it’s extremely dependent on the very specific structure of this form. When SharePoint 2010 بیرون می آید, this whole structure could change and break this approach. What I really want to do is craft a jQuery selector that is along the lines of “find me all the TR’s (و تنها برچسب TR) که جایی در عناصر فرزند خود یک فیلد ورودی که عنوان = ویرایشهای من!". I starting from the bottom and moving up. Assuming I figure this out, من روز "سریع و آسان ارسال.

</پایان>

مشترک شدن در وبلاگ من.

من در توییتر در http://www.twitter.com/pagalvin

del.icio.us برچسب ها: ,

دسترسی سریع و آسان: ایجاد گودال ماسهبازی jQuery را خود را برای شیرپوینت

این یکی دیگر از پست من است بر روی سری در مورد چگونگی استفاده از جی کوئری با شیرپوینت.
اگر شما می خواهید برای کسب اطلاعات بیشتر در مورد جی کوئری, من به شدت توصیه: jQuery را در عمل توسط خرس Bibeault و یهودا کتز.

Getting started with jQuery in SharePoint is surprisingly easy (به من). (I do have serious questions about a “best practices” approach to deploying these things to production, but that’s for another day). I’ve just started playing with this technology and to that end, I created a sandbox environment to use. If you’re looking to get started with jQuery, you may find this approach useful.

1. Create a Blank Site

Create a blank site somewhere in your site and call it something clever like “jQuery Sandbox”.

2. Download jQuery

You can download the jQuery javascript library from here: http://docs.jquery.com/Downloading_jQuery

Save that to to your desktop.

I have been using the “minified” version.

3. Create a SharePoint Document Library

In your sandbox site, create a document library.

4. Upload the jQuery Library to SharePoint

Access the doc library you just created and upload the jQuery library.

5. Create a Custom SharePoint List

I’ve started with a custom list because I want to muck about with standard SharePoint forms. You could also create a page in a pages library or web part pages and probably a lot of other places.

Add some columns to the custom list so that you have something to run jQuery against. My initial objectives were to:

  1. Hide a field.
  2. Assign a value to a field.

With that objective in mind, I added two text fields. Over time, I’ll be playing with links, images, lookups, غیره.

6. Modify the NewForm.aspx Web Part Page and Add a Content Editor Web Part

This is a little black magic-ish , in that it’s a new concept to me. I first learned about this from پل Grenier, SharePoint jQuery Superstar, at his CodePlex project site: http://spff.codeplex.com/.

Follow these steps to add a CEWP to the same page that shows NewForm.aspx for any custom list:

  1. Access the custom list and click New.
  2. Append the following to the URL: PageView=Shared&ToolPaneView=2

That will transform your boring vanilla data entry form from something like this:

image

To this:

image

Add the content editor web part to the page.

7. Write Your First jQuery Code

Open up that CEWP in the code view and add the following:

image

Here’s the actual code if you want to copy/paste:

<خط
    "text/javascript"
    SRC ="../../jQuery Library/jquery-1.3.2.min.js">
</خط>

<نوع اسکریپت ="text/javascript">
  $(تابع() {

    $('#resultsID').اچ تی ام ال('There are ' + $('a').size() + ' a tags tags on this page.');

  });
</خط>

نتیجه:
<div id='resultsID'></DIV>
/result

Note that the first <خط> tag is referencing the actual jQuery library. Presumably, these things change over time, so you’ll want to make sure you a) use the right name and b) point it to the correct SharePoint document library.

Bask in the Glory

If you did it correctly, you’ll see a result similar to the following:

image

Wrapping Up

This isn’t the only way to get started, but it’s quick, easy and isolated from your existing SharePoint environment.

</پایان>

مشترک شدن در وبلاگ من.

من در توییتر در http://www.twitter.com/pagalvin

del.icio.us برچسب ها: ,