катэгорыя Архівы: Працоўных працэсаў SharePoint

Стварэнне сайтаў (SPWeb) з дапамогай канструктара рабочых працэсаў SharePoint

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" карыстацкі спіс, а затым, калі яны скончылі і зацверджаны працэс ўводу дадзеных, нам трэба стварыць сайт для гэтага кліента.

Я як вялікі прыхільнік дэкларатыўнага рабочага працэсу, а таксама слабыя візуальныя праграміст Workflow Studio, таму я хацеў, каб задаволіць патрабаванні дапамогай SharePoint Designer.

Я планую напісаць пра гэта больш падрабязна (і, спадзяюся, цяперашні для групы карыстальнікаў ці два ў надыходзячым годзе), але вось агульнае рашэнне:

  • Стварэнне карыстацкага дзеянні, якое інтэгруецца з СПД.
  • Карыстацкіх дзеянняў дазваляе SPD для выкліку вэб-службы і перадаць яму радок XML.
  • Вэб-служба знаходзіць радок у карыстацкі спіс і стварае новы сайт па дадзеных для новага кліента з дапамогай наладжвальнага вызначэння сайта.
  • Вэб-служба затым абнаўляе карыстацкі спіс з некаторай інфармацыяй, такі як спасылка на новы сайт.

Мы разглядалі іншыя падыходы, such as event handlers and visual studio based workflow. The SPD approach gives our end users a little more control over the process. Granted, ёсць шмат кода C # у гэтым растворы, але гэта загорнутыя ўнутр дэкларатыўны працоўны, такім чынам мы атрымліваем некаторыя перавагі дэкларатыўнага працоўнага працэсу ў той час выходзілі ў стварэнні сайта-службы.

Усё, што нам цяпер трэба, гэта просты інструмент для аўтаматычнага пераносу SPD працоўных працэсаў вакол так жа лёгка, як мы можам для Visual Studio працоўных працэсаў, і мы сапраўды можна варыць з газам 🙂 Я разумею, што некаторыя народныя якія там працуюць над гэтай праблемай, і я спадзяюся, што яны маюць некаторыя добрыя поспехі з ім у бліжэйшы час.

</канец>

Падпісацца на мой блог.

Technorati Тэгі: ,

Інтэграцыя рабочых працэсаў SharePoint Designer з вэб-службамі

Я гуляў вакол з прыстасаваныя дзеянні для SharePoint Designer, на працягу некаторага часу (гл. тут для некаторых падрабязныя рэчы, Калі цікавіць Вас).

У маім бягучым праекце, 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.

А вось загаловак:

 грамадскасць радок Дыспетчар(
        Guid WebID, // Прыняты Runtime Environment
        Guid SiteID, // Прыняты Runtime Environment
        радок ListId, // Прыняты RTE (Не ведаю, чаму гэта радок, Ці не GUID)
        Int ListItemID, // Прыняты RTE.
        радок XmlMessage) // Прыняты карыстачу як абвешчаны ў SPD.

Гэта выкарыстоўвае той факт, што мы можам атрымаць важную інфармацыю на працоўны працэс, Спадабаўся сайт, Спіс ID, і г.д.. 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" анты-мадэль зямлі, але гэта лепш, чым стукнуцца аб цагляную сцяну 🙂

Гэта анты-патэрнаў калі вы робіце гэта, нават калі вы ведаеце, што гэта анты-патэрнаў?

I hope to wrap this inside Codeplex in the near future. If you’re interested in me doing so, дайце мне тыкаць (E-mail ці пакінуць каментар) і я буду з большым энтузіязмам рабіць гэта 🙂

</канец>

Падпісацца на мой блог.

Technorati Тэгі: ,

SPD Workflow “Збор дадзеных ад карыстальнікаў”: Змяніць створаная форма мэтавай

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" меры да таго, што мы можам прапанаваць карыстачу розныя біты інфармацыі, напрыклад, ці з'яўляецца яны прыняць яго, некаторыя каментары і, магчыма, спытаць, што яны мелі на вячэру ў той вечар.

The forms are perfectly functional. They are tied to a task list as a content type. Гэта 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, мы павінны звяртацца да розных трукам, каб абыйсці яго (напрыклад, вызначэнне прыярытэтных задач на).

Мне трэба было даць спасылку на гэтыя задачы формы, якія адкрылі ўласцівасці выгляду (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, запусціць СПД, 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, пошук або іншых сцэнарыяў XSL, this will be easy for you. На самай справе, Я знайшоў яго ў цэлым лягчэй, так як створаная форма некалькі лягчэй рухацца па параўнанні з асноўнай часткай пошуку вэб-вынікі (або кашмарных 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:

  • Змяніць ASPX файл ўручную.
  • Праверце гэта (пераканацца, што змены былі захаваны належным чынам і нічога не зламаў).
  • Адкрыйце працоўны працэс і дадаць дзеянні не звязаны (such as "log to history").
  • Захаваць працоўны працэс.

Вынік: У гэтым выпадку, СПД ня узнавіць форму.

Тэст 2:

  • Зрабіце тое ж самае, як #1 except directly modify the "collect data from a user" дзеянне.

Вынік: Гэта узнаўляе форму з нуля, перазапісу змяненняў.

Заключныя заўвагі:

  • Па крайняй меры два СПД дзеянні ствараюць формы, як гэта: "Collect Data From a User" and "Assign To Do Item". Both of these actions’ формаў можа быць зменены ўручную.
  • Я быў у стане генерыраваць свайго спасылка на dispform.aspx таму, У гэтым выпадку, the relate item always has its ID embedded in the related item’s URL. I was able to extract it and then build an <HREF> 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, так што я не ведаю, калі трапляе ў другім баку прорвы.
  • Я не стаў разглядаць, але я не здзіўлюся, калі ёсць нейкі файл шаблону ў 12 вуллі, што я магу змяніць, каб уплываць на СПД генеруе формы па змаўчанні (гэтак жа, як мы можам змяніць шаблоны абвестак).

</канец>

Падпісацца на мой блог!

Technorati Тэгі: ,

Рашэнне (накшталт): Ўсталяваць прыярытэт на задачы з дапамогай SharePoint Designer

У мяне ёсць бізнес-сцэнар, як гэта:

  • Карыстальнік загружае дакумент у бібліятэку дакументаў.
  • Яна выбірае тып змесціва і ўводзіць метададзеныя па меры неабходнасці. Адно з палёў метададзеных з'яўляецца сцягам, "Urgent".
  • Гэта запускае працоўны працэс SharePoint Designer, што, між іншым, uses the "Collect Data from a User" дзеянне.

"Collect Data from a User" стварае элемент у спісе задач просьбай аб прадастаўленні дазволу для гэтага дакумента.

Мне трэба было стварыць прадстаўленне спісу задач, якія паказалі тэрміновыя запыты на зацвярджэнне.

Рашэнне: Put the word "URGENT:" into the title of these tasks.

I would have preferred to specify the priority field directly. Аднак, Мне не ўдалося зрабіць гэта па некалькіх прычынах:

  1. Збіраць дадзеныя дзеянні не забяспечваюць механізм для абнаўлення любога поля, акрамя назвы (і тыя дадатковыя поля, для якіх вы хочаце сабраць дадзеныя).
  2. The "assign a to do item" дзеянне мае тыя ж праблемы.
  3. Можна ўставіць элемент у спіс (I.E. даданне аб'екта ў спісе задач непасрэдна) but this not a blocking action. That means that the workflow will not wait for the user to complete that task.

Я разглядаў некалькі падыходаў, перш чым (ўдзячна) realizing we could just put "urgent" у назве.

  1. Запуск працоўнага працэсу ў спісе задач сябе так, што, калі новая задача ствараецца, гэта неяк крыжаваныя спасылкі назад у дакумент, які пачаў першы працоўны працэс, pull out the urgent flag value and update priority as needed.
  2. Do something similar with an event receiver. On create of the task, знайсці адпаведны дакумент і абнаўляць па меры неабходнасці прыярытэтнага.
  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. (Па некаторых прычынах, Я больш-менш абгрунтаваўся на гэтым падыходзе, перш чым мудра вырашыўшы сысці на некаторы час).

Існуе недахоп майго рашэння (Акрамя відавочнага факту, што толькі тэкст назва паказвае актуальнасць). Since "collect feedback" прымае толькі жорстка імёны назву, I need to use two different collect feedback actions whose only difference is that hard coded title.

Але, па меншай меры, ёсць рашэнне, якое не патрабуе прымачы падзей або дзеянняў, СПД.

Калі хто-то вырашыў гэта ў больш разумны спосаб, калі ласка, дайце мне ведаць,.

</канец>

Хутка і лёгка: Аўтаматычна адкрытых формаў InfoPath з дапамогай SharePoint Designer Email

АБНАЎЛЕННЕ: 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, яны могуць націснуць на спасылку з электроннай пошты і перайсці непасрэдна да формы InfoPath.

This monster URL construction works for me:

HTTP://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.XML&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.

</канец>

MOSS кажа мне “Доступ забаронены” Для рэдагавання задачы працоўнага працэсу, Але я сапраўды маюць доступ

I’ve implemented a workflow using SharePoint Designer in a site which is mainly read-only to "NT_AUTHORITY\Authenticated Users" (I.E. ўсё). 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.

Ці магу я запоўніць і захаваць форму ў бібліятэку? –> ДА

Ці можна атрымаць доступ задачу з спасылкі ў электроннай пошце? –> ДА

Ці магу я ўбачыць змены задачы працоўнага працэсу спасылцы –> ДА

Ці магу я націсніце на гэтую спасылку? –> NO … Адмоўлена ў доступе.

Чаму я бачу спасылку Змяніць, якая адмаўляе мне дазвол, калі я націскаю на яго? 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

Плакаты, як уяўляецца, мяркуючы, што просты акт экспарту працоўнага працэсу ў дыску страве будзе выправіць праблему з MOSS бяспекі? I can hardly believe I just typed that. I’m reminded of the South Park episode about the 9/11 змова, дзе Стэн пытаецца наш Preznit, "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.

Сапраўдным я прызначыць, што гэта самая дзіўная з Рашэнне Workflow 2007.

</канец>

SharePoint Designer, Бягучага элемента “Абсалютны URL Encoded” і HTTPS

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, выкарыстоўваць 3rd інструмент бокам, напрыклад, выдатны пакет тут: http://www.codeplex.com/spdwfextensions 🙂

</канец>

Technorati Тэгі: ,

SharePoint Designer Email Пасылае ???? У электроннай пошце

Форум карыстальнікаў часам просяць: Чаму SharePoint Designer пакласці ???? у маёй электроннай пошце, а не ад значэння поля?

Адна з прычын, гэта адбываецца таму, што зменнай, на якую вы спасылаецеся з'яўляецца нулявым.

This can happen because you are trying to reference a field from the "current item" але карыстальнік не прыходзіла, што значэнне ў поле формы.

<канец />

Параўнаць / Тэставанне для пустых дат у канструктар рабочых працэсаў SharePoint

Сцэнар: У канструктару рабочых працэсаў SharePoint, 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.

Screen Shots:

The following screen shots show how to do this. У гэтым выпадку, a field on an item, "Environmental Permits:First Permit Reminder Date", is submitted and the workflow fires in response.

малюнак

малюнак

Заўвагі:

When I tried this, I was pleasantly surprised to learn that it works. I was worried that SharePoint Designer might disallow the string assignment (Пераменная:StringReminderDateDate) but it did allow it.

I was also concerned that allowing it, the value might be null and either blow up the WF at runtime or maybe raise the global temperature 1/2 a degree, but those concerns were unfounded.

</канец>

SharePoint Designer Custom Action Workflow — Назіранне аб <Поле рулявы Дызайнер Type =”StringBuilder” … />

Толькі хуткае назіранне, што ёсць вельмі важнае адрозненне паміж гэтымі двума азначэннямі:

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

супраць:

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

Першая паказвае, як гэта ў SPD:

малюнак

а другі паказвае, як гэта:

малюнак

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 🙂

Назіранне гэта: StringBuilder дазволіць вам стварыць радок (відавочна) Разам радковых литералов шляхам змешвання дадзеных і рабочых працэсаў (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 # код у маім выпадку), SharePoint перадае маркер-сама, not the value of the token. If you use the default designer type (-Другому тыпу), Разгарнуць SharePoint і перадае маркер-маркер фактычная кошт вашага дзеянні.

StringBuilder = BAD, Па змаўчанні тып дызайнера = добра.

Вядома, 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 (які, дарэчы, менавіта тое, што чалавек робіць для стварэння дынамічнага тэму паведамленні дзеянні, але гэта ўжо тэма для іншай запісы ў блогу, Хар Хар).

<канец />