SharePoint Магазин Разговор со отворен П&А седница во четвртокот 08/13 @ 12:30 PM EDT

Arcovis ќе биде домаќин на нашата втора "SharePoint Магазин Разговор" на сесијата овој четврток во 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, my Arcovis partners (Наталија Voskresenskaya and Harry Jones) and Laura Rodgers (на Твитер & EndUserSharePoint слава). Bob fox threatened to join too, but I don’t take that too seriously. Last time, we had a great level of audience participation which blurred the line between panelists and attendees and I expect the same will happen Thursday.

This event is co-sponsored by Integrated Systems and Services Group (www.issgroup.net).

Please register here: https://www323.livemeeting.com/lrs/8000043750/Registration.aspx?pageName=9xrzxfs9x34sb0sm

If you have questions that you’d like us to take, just dial into the call and ask it. If you want us to think about it first, send us an email или оставете коментар тука.

See you then!

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin

Претходно постоечките услови: SharePoint сигнализација Шаблони за спасување (?)

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. Не е лесно да се дебагира

Мојот клиент има голем број на сеуште извонредни услови, 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. "Одобри" или "негираат") and we can specify a hard coded value in the title and description. That’s about it.

Условот мојот клиент е два пати:

  1. Кога SharePoint праќа е-маил за задача задачата, вклучува голем број на информации за задача во е-мејл тело.
  2. Што е уште поважно, од далеку – кога корисникот ќе кликне на задачата линкот во меилот, 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 (на InfoPath формулар во овој случај). Then you click back/back, итн. Everyone hates it.

Сум наследи овој малку неуредна техничко решение и сакам да се прават промени во најмалку нападни можен начин.

The approach I’m taking right now is to create a custom alert template. Можете да прочитате за тоа овде. The flow works like this:

  • СПД работното работи.
  • Во одреден момент, го доделува задача на менаџер.
  • SharePoint system automatically sends out an alert to that manager. This is not part of the SPD workflow but rather “what SharePoint does.” (Тајмерот SharePoint услуга, Верувам).
  • А обичај алармирање управувачот е повикана во корист на стандардот алармирање процес (по магија правила како што се опишани во горната референцирани статија).
  • Кога мојот сопствен алармирање управувачот работи, it generates a beautiful email. Што е уште поважно, бидејќи тој ја има задачата во рака, тоа исто така украсува конкретната задача со сите контекст информации кои се неопходни да се исполнат бизнис барање.
  • Корисникот добива е-мејл и тоа е полно со корисни контекст информации.
  • Корисникот ќе кликне на задачата врска и задачата сама по себе е полна со корисни контекст информации.
  • Секој оди дома да имаат лубеница и сладолед.

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.

На само незгодно малку, досега, е да се избегне ситуација во која на алармирање ажурира содржина, triggering another alert. This doesn’t worry me.

Изгледа ветувачки досега ...

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 задача листа WIF moar КОНТЕКСТ".

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin

Technorati Тагови: ,

Во живо SharePoint П&А седница во четвртокот 07/30/09 @ 12:30 PM EDT завршува 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.

Да се ​​вратам на мојот прв некогаш SharePoint конференција, само една година пред, Сум бил одушевен од тоа колку страшно во живо П&A session can be. The conference organizers had put together a sort of ad hoc group of “experts” (i.e. луѓе кои беа обесени околу и не се плашат од кои бараат да глупо на сцената) to answer any questions that came from the audience in the room. It was in my head back 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&А траење на сесијата, но мислам дека тоа би можело да биде прилично кул.

Јас конечно доби околу кон него и следниот четврток, 07/30, мојата компанија (Arcovis) и деловен партнер, Интегриран системи и услуги група, ќе биде домаќин на П&A like that. I’m hoping to do these regularly, as often as weekly.

Оваа инаугуративната седница веројатно ќе биде малку трнлив, но концептот е ова:

  • Ако имате прашања, кои би сакале да го имаат одговорено во текот на седницата, само се појавиш и да побарате.
  • Ако сакате, Можете да мејл прашањето однапред.

Ние планираме да ја поминат првата половина на П&А за преку е-маил прашања, а потоа ја отвори до нешто што некој прашува после тоа.

На седницата се одвива во четвртокот, 07/30 со почеток во 12:30 и завршувајќи на 1:30 PM EDT.

Ако сте заинтересирани, љубезно се регистрирате овде: 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 🙂

Ако сакате да биде еден од оние славни личности за иднината П&А траење на сесијата, дозволете ми да знам.

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin

Technorati Тагови:

Вградување на програмери Забелешки внатре во вашето InfoPath формуларите

Јас сум уште живеат во InfoPath формуларите светот, а јас се потребни за да се направи една од оние "мали" промени на форма која, за жал,, breaks a naming convention I adopted with it two weeks ago. Јас помислив, "Некој се случува да се погледне во оваа работа една година од сега и да каже, "Она што беше Пол размислување? By Jove, неговото именување конвенција не прави никаква смисла!"

Сфатив дека би можеле да создаваат поглед на формата за ова, а потоа, уште еднаш, 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

Сум конфигуриран форма така што корисниците не можат да стигнат до тој став и затоа, 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!

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin

Technorati Тагови:

Управување со 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.

Јас сум во средината на InfoPath фаза и јас сум создавање на InfoPath формуларите со многу пати. Едно нешто што најверојатно забележите е дека 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, како што е илустрирано овде:

image

I wish I had been doing this all along.

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin

Technorati Тагови:

InfoPath формулар Софтвер Пакети центри, Форми засновани автентикација (FBA) и уникатен имиња на датотеки

Сум бил работи на некои InfoPath формуларите оваа недела во Мос во средина 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!

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin

Technorati Тагови:

Обезбедување на SharePoint Листа / документ библиотека Видено Изгледа (вид на) Е можно со jQuery

Ова е уште еден пост во мојот во тек серија како да се користи jQuery со SharePoint.
Ако сакате да дознаете повеќе за jQuery, Силно препорачувам: jQuery во акција од мечка Bibeault и Јехуда Кац.

Една од првите работи што мислев, еднаш почнав да се позанимавам со jQuery, was whether we could use it to secure a SharePoint view. The answer is “no” (или барем, I’m not claiming it’s possible). Сепак, 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 Sandbox за SharePoint.

To “secure” a view, follow these steps:

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

    This is what it looks like when it’s not “secured”:

    image

  2. Add a content editor web part to the view’s page using the trick described in the sandbox article (i.e. add “PageView=Shared&ToolPaneView=2” to the URL).
  3. Figure out your SharePoint _spUserId by following these crazy steps, believe or not:
    1. Log into your SharePoint environment.
    2. In the web browser’s address field, тип: “javascript:alert(_spUserId”).
    3. Record the result (it’s “13” in my case).

      image

  4. Add the following javascript to your CEWP in code view:

    <скрипта
        "text/javascript"
        src ="../../jQuery%20Library/jquery-1.3.2.min.js">
    </скрипта>
    
    <скрипта тип ="text/javascript">
      $(функција() {
    
        alert(_spUserId);
    
        var theSecuredView = $('iframe[FilterLink*=Secured%20View]");
    
        ако ((theSecuredView.length > 0) && (_spUserId == 13))
          $('iframe[FilterLink*=Secured%20View]").родител().родител().родител().html("<tr bgcolor = црвена><td>No view for you!</td></tr>");
      });
    
    </скрипта>
    

I’ve included that alert(_spUserId) line in there to demonstrate how this is not really a “securing” a view, 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%20View” in its value. Once it finds it, we check to see if the current user is “13”. If it is, we walk up the DOM to a <TR> tag (which I figured out by viewing source and tracing it) and then replacing that TR tag with my message. I really don’t know how robust this is (I’m very suspicious, всушност), but it worked in my sandbox. If I find a better way, I’ll blog about it. This is the result:

image

I click the OK button and the data is replaced with a big red message:

image

As you can tell, the way I’ve implement this “security” solution is to allow the web part to render itself. After it finishes, I overwrite its content with my “No view for you!” message.

Despite the fact that it’s not really a “secured’” view, it’s potentially useful and with some clever work, it may eventually be securable in a more formal sense. The fundamental issue is that the client is getting all the data and then, only after it gets the data, it wipes it out. If the client is getting the data, a clever user can prevent the jQuery from running at all and see what he/she wants to see.

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, but I see some good stuff written on this subject, so I’m hopeful there’s a good answer to that problem.

The list of views themselves should be trimmed, ако е можно. I haven’t tried to figure that out. I assume it’s possible, but doesn’t really solve the fundamental security issue because someone could still just type the URL of the view they want (if they knew it). Сепак, 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. Понекогаш, that’s good enough.

With luck, I’ll have more to write on this subject over time.

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin

Technorati Тагови: ,,

del.icio.us Тагови: ,,

Брз и лесен: Подобар начин да се користи jQuery да Сокриј полето за текст на SharePoint Форма

Ова е уште еден пост во мојот во тек серија како да се користи jQuery со SharePoint.
Ако сакате да дознаете повеќе за jQuery, Силно препорачувам: 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> to which I could invoke the hide() метод. My early effort to find the correct <TR> беше нешто како ова:

$("Tr:има(влез[title = Мене Сокриј!])");

Проблемот со тоа е дека ќе се најде секој <TR> tag that had any parent relationship to the Hide Me! поле, дури и ако ме Сокриј! е вгнездена многу нивоа длабоко во <TR>’s. It turns out that on my sandbox form, тој израз го наоѓа 9 различни ТР, кои Мене Ме Сокриј! 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:има(влез[title = Мене Сокриј!])").не("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, Ве молиме да поставите коментар.

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin

Technorati Тагови: ,

Брз и лесен: Го користите jQuery да Сокриј полето за текст на Формуларот за SharePoint

Ова е уште еден пост во мојот во тек серија како да се користи jQuery со SharePoint.
Ако сакате да дознаете повеќе за jQuery, Силно препорачувам: jQuery во акција од мечка Bibeault и Јехуда Кац.

Ажурирање (веќе!): Јас не мислам на подобар начин да се лоцираат на <TR> таг Сакам да се скрие и напиша за тоа тука. You may still find this article interesting anyway so I’m leavnig it up.

Сакам да се скрие во полето за текст, "Скриј ме!"Како што е прикажано:

image"

Следниве jQuery не е доволно за мене:

<скрипта тип ="text/javascript">

  $(функција() {


    $("Влез[title = Мене Сокриј!]").родител().родител().родител().Скриј();

  });

</скрипта>

Кодот е велејќи, "Ме најдете сите влезни полиња чиј наслов = Мене Сокриј!. Потоа, добие нејзината матична, а потоа следната родител и * следната * родител (Phew!) и повика на криење() метод на таа работа, што и да се случува да биде.

Јас сфатиле дека родител структура од страна на гледање на HTML за форма која SharePoint создаде како што е прикажано:

<TR>
    <ТД nowrap="true" valign="top" ширина="190px" класа="ms-formlabel">
        <Н3 класа="ms-standardheader">
            <nobr>Сокриј ме!</nobr>
        </Н3>
    </ТД>

    <ТД 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" />
                <BR>
        </век>


    </ТД>
</TR>

Оваа слика ги покажува истите, но означени со родителите:

image

Првиот родител (1) is a span tag. Span’s parent (2) е ТД таг, а потоа конечно да се дојде до вистински родител Сакам да се скрие (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, Ќе пост ажурирана "брзо и лесно" пост.

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin

del.icio.us Тагови: ,

Technorati Тагови: ,

Брз и лесен: Создаде свој jQuery Sandbox за SharePoint

Ова е уште еден пост во мојот во тек серија како да се користи jQuery со SharePoint.
Ако сакате да дознаете повеќе за jQuery, Силно препорачувам: jQuery во акција од мечка Bibeault и Јехуда Кац.

Да започнеме со jQuery во SharePoint е изненадувачки лесно (за мене). (Имам сериозни прашања во врска со "најдобри практики" пристап кон имплементирање на овие работи на производство, но тоа е за друг ден). 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, може да најдете на овој пристап корисни.

1. Креирај празна Мапа

Креира празна сајт некаде на вашиот сајт и го нарекуваат нешто умен како "jQuery Sandbox".

2. Преземете jQuery

Може да го симнете на jQuery JavaScript библиотека од тука: http://docs.jquery.com/Downloading_jQuery

Зачувајте ја таа за да вашиот десктоп.

Јас сум бил со користење на "minified" верзија.

3. Создаде документ SharePoint библиотека

Во вашиот песок сајт, create a document library.

4. Додавање на jQuery библиотеката на SharePoint

Пристап до библиотека doc само замислен и испратите jQuery библиотеката.

5. Создаде прилагодено SharePoint Листа

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. Скрие поле.
  2. Доделите вредност на поле.

Со таа цел во умот, I added two text fields. Со текот на времето, Јас ќе се игра со линкови, слики, пребарувања, итн.

6. Менувате NewForm.aspx Веб Дел страница и додадете Содржина Уредувач Веб Дел

Ова е малку црна магија-носталгичната , in that it’s a new concept to me. I first learned about this from Пол Grenier, SharePoint jQuery Суперѕвезда, во неговиот CodePlex проект сајт: http://spff.codeplex.com/.

Следете ги овие чекори за да додадете CEWP на истата страница, која покажува NewForm.aspx за било обичај листа:

  1. Пристапите на сопствени листа и кликнете на нова.
  2. Додадете го следното за да го URL-то: Прикажување = Муабет&ToolPaneView = 2

Кои ќе се трансформира вашиот здодевен ванила внес на податоци форма од нешто како ова:

image

На овој:

image

Додадете содржина уредник веб дел на страницата.

7. Напиши Прв jQuery законик

Отвори таа CEWP во кодот видите и додадете ги следниве:

image

Тука е вистинскиот код, ако сакате да направите копирај / вметни:

<скрипта
    "text/javascript"
    src ="../../jQuery%20Library/jquery-1.3.2.min.js">
</скрипта>

<скрипта тип ="text/javascript">
  $(функција() {

    $("# ResultsID").html("Има се ' + $('А').големина() + "На тагови таговите на оваа страница.");

  });
</скрипта>

Резултира:
<div id ="ResultsID"></div>
/резултира

Имајте на ум дека на првата <скрипта> tag is referencing the actual jQuery library. Presumably, овие работи се промени со текот на времето, па ќе сакате да бидете сигурни дека на) користење на правото име и б) го со точниот SharePoint документ библиотека.

Уживаат во славата

Ако тоа го правеше правилно, ќе видите резултат слична на следнава:

image

Завршувајќи

Ова не е единствениот начин за да започнете, но тоа е брзо, easy and isolated from your existing SharePoint environment.

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin

Technorati Тагови: ,

del.icio.us Тагови: ,