Цатегори Арцхивес: СхареПоинт тока

Направи Ситес (СПВеб) преко СхареПоинт Десигнер Воркфлов

This blog entry is more of an "in the realm of the possible" Унос вс. Инфо бетон.

We have a technical design that calls for us to create a site in a site collection via a manually launched workflow process. У основи, users enter data into a "new customer" прилагођене листе и онда када су завршили и потврдили унос података процеса, треба да направи сајт за тог купца.

Ја сам и велики фан декларативног посла, као и слаба Висуал Студио тока програмер, па сам хтео да испуни услов помоћу СхареПоинт Десигнер.

Ја планирам да пишем о овоме детаљније (и надамо се присутни на корисничке групе или две у наредној години), али овде је целовито решење:

  • Креирање прилагођене акцију која интегрише са СПД.
  • Обичај акција омогућава да се позове СПД Веб услугу и проследи је низ КСМЛ.
  • Веб сервиса проналази ред у прилагођеној листи и креира нову локацију према подацима за тог новог клијента помоћу прилагођеног сајт дефиницију.
  • Веб сервис затим ажурира прилагођену листу са неким информацијама, као што је линк на новој локацији.

Сматрали смо и друге приступе, као што су управљање догађајима и Висуал Студио са седиштем радни процес. СПД приступ даје крајњим корисницима мало већу контролу над процесом. Одобрено, има пуно Ц # коду у овом решењу, али је умотан у декларативне посла, тако да смо добили неке од предности декларативног посла док провлачење у стварање сите-сервиса.

All we need now is an easy tool to automatically migrate SPD workflows around as easily as we can for visual studio workflows and we’ll really be cooking with gas 🙂 I understand that some folk are out there working on this problem and I hope they have some good success with it soon.

</крај>

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

Тецхнорати Тагс: ,

Интегрисати СхареПоинт Десигнер Токови посла са веб услугама

Ја сам играо са око прилагођене радње за СхареПоинт Десигнер неко време (погледајте овде за неке детаљније ствари, ако те занима).

У мом тренутном пројекту, we need to do some fairly heavy lifting and we want to use declarative SPD workflow to manage the associated business process.

Да скратимо причу, this is entirely possible. I extended my Codeplex project to invoke a "helper service" and now we can invoke a web service directly from an SPD workflow.

Ево потпис:

 јавност ниска Диспечер(
        Добро ВебИД, // Доноси рунтиме окружење
        Добро СитеИД, // Доноси рунтиме окружење
        ниска ЛистИд, // Доноси РТЕ (Не знам зашто је то ниска, не ГУИД)
        инт ЛистИтемИД, // Доноси РТЕ.
        ниска КсмлМессаге) // Усвојен од стране корисника који се исказује у СПД.

Ово оснажује чињеницу да можемо добити на важном тока информација, као сајт, Листа ИД, итд. This is well documented in several places for those of you interested in creating your own custom actions. The idea is to extract the XML string as provided by the user to dispatch an appropriate procedure. Fun stuff!

Нажалост, ово је очигледно једном правцу до "Loosey Goosey" Анти-образац земљиште, but it’s better than hitting a brick wall 🙂

Да ли је анти-образац, ако се то уради, иако знате да је то анти-образац?

I hope to wrap this inside Codeplex in the near future. If you’re interested in me doing so, гиве ме поке (е-маил или оставите коментар) and I’ll be that more enthusiastic about doing it 🙂

</крај>

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

Тецхнорати Тагс: ,

СПД тока “Прикупљање података од корисника”: Измените Генератед формулар Таск

I’m working on a project that uses five different SharePoint Designer work flows to handle some document approvals. SPD provides the "collect data from a user" action so that we can prompt the user for different bits of information, such as whether they approve it, some comments and maybe ask what they had for dinner the other night.

The forms are perfectly functional. They are tied to a task list as a content type. They are 100% system-generated. This is their strength and weakness. If we can live with the default form, then we’re good to go. Међутим, we don’t have too much control over how SPD creates the form. If we don’t like that default behavior, we need to resort to various tricks to get around it (на пример, setting priority on a task).

I needed to provide a link on these task forms that opened up the view properties (dispform.asxp) of the "related item" in a new window. This provides one-click access to the meta data of the related item. This is what I mean:

слика

Срећом, we can do that and it’s not very hard. Broadly speaking, fire up SPD, navigate to the directory that houses the workflow files and open the ASPX file you want to modify. These are just classic XSL transform instructions and if you’ve mucked about with itemstyle.xsl, search or other XSL scenarios, this will be easy for you. Заправо, I found it to be generally easier since the generated form is somewhat easier to follow as compared to a search core results web part (or the nightmarish CWQP).

Наравно, there is one major pitfall. SPD’s workflow editor expects full control over that file. If you modify it, SPD will happily overwrite your changes give the right set of circumstances. I did two quick tests to see how bad this could get. They both presuppose that you’ve crafted a valid SPD workflow that uses the "collect data from a user" корак.

Тест 1:

  • Modify the ASPX file by hand.
  • Test it (verify that your changes were properly saved and didn’t break anything).
  • Open up the workflow and add an unrelated action (such as "log to history").
  • Save the workflow.

Резултат: У овом случају, SPD did not re-create the form.

Тест 2:

  • Do the same as #1 except directly modify the "collect data from a user" акција.

Резултат: This re-creates the form from scratch, over-writing your changes.

Final Notes:

  • At least two SPD actions create forms like this: "Collect Data From a User" and "Assign To Do Item". Both of these actions’ forms can be manually modified.
  • I was able to generate my link to dispform.aspx because, у овом случају, the relate item always has its ID embedded in the related item’s URL. I was able to extract it and then build an <хреф> based on it to provide the one-click meta data access feature. It’s unlikely that your URL follows this rule. There may be other ways to get the ID of the related item but I have not had to cross that bridge, so I don’t know if gets to the other side of the chasm.
  • I didn’t investigate, but I would not be surprised if there is some kind of template file in the 12 hive that I could modify to affect how SPD generates the default forms (much like we can modify alert templates).

</крај>

Претплатите се на мој блог!

Тецхнорати Тагс: ,

Решење (врста): Приоритет на задатак коришћењем СхареПоинт Десигнер

Имам пословни сценарио овако:

  • А упутство постављено документ у библиотеци докумената.
  • Она бира врсту садржаја и улази мета података по потреби. Једно од поља мета података је застава, "Urgent".
  • Ово покреће СхареПоинт Десигнер ток посла који, између осталог, uses the "Collect Data from a User" акција.

"Прикупља податке од корисника,,en,ствара ставку на листи задатака тражи одобрење за тај документ,,en,Морао сам да створи поглед на листи задатака који су показали хитне захтеве за одобрење,,en,Пут реч "ХИТНО,,en,у наслову ових задатака,,en,Ја бих радије да се директно одредити поље приоритет,,en,Је "доделили везе ставку,,en,остваривање бисмо могли ставити "хитно,,en,Користите "Цреате нову ставку,,en,акција у вези са "чекати промену на терену,,en,Користите догађаја пријемник за ажурирање оригиналну ставку када корисник заврши задатак и "чекати промену на терену,,en,Од "прикупља повратне информације,,en" creates an item in a task list requesting approval for that document.

I needed to create a view of the task list that showed urgent requests for approval.

Решење: Put the word "URGENT:" into the title of these tasks.

I would have preferred to specify the priority field directly. Међутим, I was unable to do that for several reasons:

  1. The collect data action does not provide a mechanism to update any field other than title (and those additional fields for which you want to collect data).
  2. The "assign a to do item" action has the same problem.
  3. It’s possible to insert an item into a list (и.е. insert an item into the task list directly) but this not a blocking action. That means that the workflow will not wait for the user to complete that task.

I considered a few approaches before (thankfully) realizing we could just put "urgent" in the title.

  1. Start a workflow on the task list itself so that when a new task is created, it somehow cross references back to the document that started the first workflow, pull out the urgent flag value and update priority as needed.
  2. Do something similar with an event receiver. On create of the task, locate the associated document and update priority as needed.
  3. Use the "create list item" action in conjunction with the "wait for field change" action and an event receiver. If we create a list item, we can specify all the fields we want. Use an event receiver to update the original item when the user completes the task and the "wait for field change" action’s condition would be met and the workflow would proceed. (For some reason, I had more or less settled on this approach before wisely deciding to walk away for a while).

There is a drawback to my solution (aside from the obvious fact that only the text of the title indicates urgency). Since "collect feedback" only accepts hard coded title names, I need to use two different collect feedback actions whose only difference is that hard coded title.

Али, at least there’s a solution that does not require event receivers or custom SPD actions.

If someone has solved this in a more clever way, молим вас јавите ми.

</крај>

Брзо и лако: Аутоматски отвара ИнфоПатх обрасцу из СхареПоинт Десигнер Емаил

УПДАТЕ: Madjur Ahuja points out this link from a newsgroup discussion: http://msdn2.microsoft.com/en-us/library/ms772417.aspx. It’s pretty definitive.

===

We often want to embed hyperlinks to InfoPath forms in emails sent from SharePoint Designer workflows. When users receive these emails, они могу да кликну на линк из е-поште и иду директно на ИнфоПатх обрасцу.

This monster URL construction works for me:

хттп://server/sites/departments/Technical Services/InformationTechnology/HelpDesk/_layouts/FormServer.aspx?XmlLocation=/sites/departments/Technical Services/InformationTechnology/HelpDesk/REC REM RED Forms/REC2007-12-18T11_33_48.КСМЛ&Source=http://server.corp.domain.com/sites/departments/Technical%20Services/InformationTechnology/HelpDesk/REC%20REM%20RED%20Forms/Forms/AllItems.aspx&DefaultItemOpen=1

Replace the bolded red text with the name of the form, as shown in the following screenshot:

слика

Note that there is a lot of hard-coded path in that URL, as well as a URL-encoded component. If this is too hard to translate to your specific situation, try turning on alerts for the form library. Post a form and when you get the email, view the source of the email and you’ll see everything you need to include.

Astute readers may notice that the above email body also shows a link that directly accesses the task via a filtered view. I plan to explain that in greater detail in a future post.

</крај>

Тецхнорати Тагс:

Мос говори ми “Приступ одбијен” За уређивање задатка тока посла, Али ја заиста немам приступ

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.

Могу ли да попуните и сачувајте образац у библиотеци? –> ДА

Могу ли да приступим задатак са е-линка? –> ДА

Могу ли да видим неку везу Измени тока задатака –> ДА

Могу ли да кликнете на тај линк? –> НЕ … Дозвола одбијен.

Зашто ја могу да видим везу измени која онемогућава ме дозволу када кликнем на њега? 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.

Тако, ништа за изгубити, Ја се ватра СПД, кликните десним тастером миша на радни процес и сачувајте га на моју ц:\ 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.

</крај>

Тецхнорати Тагс:

СхареПоинт Десигнер, Тренутна шифра је “Кодирани Апсолутна УРЛ адреса” и ХТТПС

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, you have no out of the box option.

To solve it, create a custom action that provides a string replace function to use in your workflow. Alternatively, use a 3rd party tool such as the excellent package here: http://www.codeplex.com/spdwfextensions 🙂

</крај>

Тецхнорати Тагс: ,

СхареПоинт Десигнер-маил Шаље ???? у е-маил

Форум корисници повремено питам: Зашто СхареПоинт Десигнер пут ???? у моју емаил уместо вредности поља?

Један од разлога за то је зато што се дешава да се променљива којој говорите је нулл.

This can happen because you are trying to reference a field from the "current item" but the user never entered a value into that form field.

<крај />

Тецхнорати Тагс:

Упоредити / Тест за празне датума у ​​СхареПоинт Десигнер Воркфлов

Сценарио: У СхареПоинт Десигнер посла, you need to determine if a date field is blank.

Проблем: SPD does not provide a direct method for comparing dates to anything other than a date. You cannot create a condition like this: "If [Датум Поље] equals blank".

Решење: Convert the date to a string. Use string comparison to determine if the date is blank.

Сцреен Схотс:

The following screen shots show how to do this. У овом сценарију, поље на ставку, "Environmental Permits:First Permit Reminder Date", се подноси и у току посла пожари у одговору.

слика

слика

Белешке:

Када сам покушао ово, I was pleasantly surprised to learn that it works. I was worried that SharePoint Designer might disallow the string assignment (Варијабла:СтрингРеминдерДатеДате) али је дозволио да.

Такође сам био забринут да га омогућавајући, вредност може бити ништаван и дигне у ваздух или ВФ при извршавању или можда подигне глобалну температуру 1/2 степен, али те бриге су неосноване.

</крај>

Тецхнорати Тагс:

СхареПоинт Десигнер прилагођени ток посла Акција — Посматрање О <Поље Тип Кравата Дизајнер =”СтрингБуилдер” … />

Само брза запажање да је веома важна разлика између ове две дефиниције:

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

против:

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

Први показује као ово у СПД:

слика

док други показује овако:

слика

Нисам сигуран како помоћи ови снимци екрана су, али сам ставио у настојању да их направи тако да ћете морати да их видели 🙂

Посматрање је ово: СтрингБуилдер вам омогућава да направите ниску (очигледно) мешањем заједно ниски литерале и тока података (via the "Add Lookup" дугме у доњем левом углу). When you use the Add Lookup button, it inserts a token in the form "[%знак%]". When SharePoint invokes your custom action, (Ц # код у мом случају), СхареПоинт пролази сама токен, 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 (који узгред је управо оно што чини да се створи динамичан субјецт за е-акције, али то је тема за другу блогу, је).

<крај />