Archivy kategorií: SharePoint Workflow

Vytváření webů (SPWeb) pomocí aplikace SharePoint Designer Workflow

Tento blog vstupu je spíše "v oblasti možného" vstupní vs. konkrétní informace.

Máme technický design, který vyzývá k nám vytvořit web v kolekci webů pomocí ručně spuštěný pracovní postup. V podstatě, uživatelé zadávají data do "nového zákazníka" vlastní seznam a pak když už skončil a ověřena procesu zadávání dat, Musíme vytvořit web pro tohoto zákazníka.

Já jsem, jak velkým fanouškem deklarativní pracovního postupu, stejně jako programátor pracovní slabé aplikace visual studio, tak jsem chtěl splnit požadavek pomocí aplikace SharePoint Designer.

Mám v plánu psát o tom podrobněji (a doufejme, že představují pro skupinu uživatelů nebo dva v příštím roce), Ale tady je celkové řešení:

  • Vytvořit vlastní akci, která integruje s SPD.
  • Vlastní akce umožňuje SPD k vyvolání webové služby a předat řetězec XML.
  • Webová služba vyhledá řádek v seznamu vlastní a vytvoří nový web podle data pro nového klienta pomocí definice vlastního webu.
  • Webová služba pak aktualizuje vlastní seznam některé informace, například odkaz na nový web.

Jsme za jiné přístupy, obslužné rutiny událostí a sada visual studio založené pracovní. SPD přístup dává naši koncoví uživatelé o něco větší kontrolu nad procesem. Udělen, je tu hodně kódu jazyka C# v tomto řešení, ale to je zabalené uvnitř pracovního postupu deklarativní, Takže jsme si některé z výhod deklarativní pracovního postupu při zapojení do vytváření webů služby.

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.

</Konec>

Přihlásit se na mém blogu.

Doplněk Technorati značky: ,

Integrovat pracovní postupy služby SharePoint Designer s webovými službami

Obehrával jsem s vlastními akcemi pro aplikaci SharePoint Designer pro nějaký čas (naleznete zde pro některé detailní věci, Pokud vás to zajímá).

V aktuálním projektu, Musíme udělat nějaké poměrně těžkou práci a chceme použít deklarativní SPD pracovního postupu ke správě procesu spojených obchodních.

Dlouhý příběh krátký, To je zcela možné. Jsem prodloužil Codeplex projektu k vyvolání Pomocná služba"" a nyní můžeme volat webové služby přímo z pracovního postupu pro SPD.

Tady je podpis:

 veřejné řetězec Dispečer(
        Identifikátor GUID WebID, // Předaný běhové prostředí
        Identifikátor GUID ID sítě, // Předaný běhové prostředí
        řetězec ListID, // Předán RTE (Nevím, proč je to řetězec, není identifikátor GUID)
        int ListItemID, // Předán RTE.
        řetězec XmlMessage) // Předaných uživatelem udaným v SPD.

To využívá skutečnosti, že můžeme dostat na důležité pracovní informace, jako místo, ID seznamu, atd. To je dobře dokumentováno v několika místech pro ty z vás zájem o vytvoření vlastní akce. Myšlenka je extrahovat řetězec XML, jak je uživatel odesláním vhodný postup. Zábavné věci!

Bohužel, To je očividně jednosměrný lístek na "Loosey husí" Anti-vzorek půdy, but it’s better than hitting a brick wall 🙂

Je to anti-vzor, pokud to uděláte, i když víte, že je to proti vzor?

Doufám, že to v blízké budoucnosti obtékání textu uvnitř Codeplex. Pokud máte zájem o mě tak, Dej mi hrabat (e-mail nebo zanechat komentář) and I’ll be that more enthusiastic about doing it 🙂

</Konec>

Přihlásit se na mém blogu.

Doplněk Technorati značky: ,

SPD Workflow “Shromáždit Data od uživatele”: Upravte formulář generované úkolu

Já pracuji na projektu, který používá pět různých SharePoint Designer pracovní toky zpracovat některé schvalování dokladů. SPD poskytuje "shromažďovat data od uživatele" akce tak, že můžeme vyzvat uživatele k různé bitů informací, jako například, zda budou schvalovat, některé komentáře a možná se zeptat, co měli k večeři v noci.

Formuláře jsou dokonale funkční. Jsou vázány na seznam úkolů jako typ obsahu. Jsou to 100% generované systémem. To je jejich síla a slabost. Pokud můžeme žít s výchozí tvar, pak můžeme jít. Avšak, Nemáme příliš mnoho kontroly nad jak SPD vytvoří formulář. Pokud se nám nelíbí, že výchozí chování, Musíme se uchýlit k různé triky, jak to obejít (například, Nastavení priority úkolu).

Musel jsem uvést odkaz na tyto formuláře úkolů, jež se zobrazení vlastností (DispForm.asxp) "příbuzné položky" v novém okně. To umožňuje jedním klepnutím přístup k metadata související položky. To je to, co mám na mysli:

obrázek

Naštěstí, Můžeme to udělat a není velmi těžké. Obecně řečeno, oheň se SPD, Přejděte do adresáře, který domy pracovní soubory a otevřete soubor ASPX, který chcete upravit. To jsou jen klasické instrukce XSL transformace a pokud jste složené s itemstyle.xsl, Hledat nebo jiné scénáře XSL, to bude pro vás snadné. Vlastně, Našel jsem to být obecně snazší, protože vygenerovaný formulář je poněkud jednodušší následovat oproti webové části Hledat základní výsledky (nebo hrůzné CWQP).

Samozřejmě, je tu jeden hlavní úskalí. SPD workflow editor předpokládá plnou kontrolu nad souboru. Pokud jej změníte, SPD se šťastně přepsat vaše změny dávají právo sadu okolností. Udělal jsem dvě rychlé testy, abychom zjistili, jak špatné to může dostat. Oba předpokládají, že jste vytvořený platný SPD workflow, který používá "shromažďovat data od uživatele" krok.

Zkouška 1:

  • Ručně upravit soubor ASPX.
  • Testovat (Zkontrolujte, zda provedené změny byly uloženy správně a nic nezlomila).
  • Otevřít pracovní postup a přidat akci nesouvisející (například "protokol k dějinám").
  • Uložení pracovního postupu.

Výsledek: V tomto případě, SPD znovu nevytvořil formulář.

Zkouška 2:

  • Stejně jako #1 Kromě přímo upravit "shromažďovat data od uživatele" akce.

Výsledek: Toto znovu vytvoří formulář od začátku, přepisovat změny.

Závěrečné poznámky:

  • Nejméně dvě SPD akce vytvářet formuláře, jako je tento: "Shromáždit Data od uživatele" a "Přiřadit do položky". Obě tyto akce’ formuláře lze ručně změněn.
  • Byl jsem schopen generovat můj odkaz na dispform.aspx, protože, v tomto případě, relate položka má vždy své ID v URL související položky. Byl jsem schopen extrahovat jej a pak stavět <href> založeno na poskytování přístupu funkce jedním klepnutím myši meta data. Nepravděpodobné, že URL následuje toto pravidlo. Může být jiné způsoby, jak získat ID související položky, ale ještě musel přejít most, tak nevím, jestli dostane na druhou stranu propast.
  • Neměl zkoumat, ale nebyl bych překvapen, kdyby je nějaký soubor šablony v 12 podregistr, který by mohl upravit, ovlivňuje jak SPD generuje výchozí formuláře (stejně jako můžeme upravit upozornění šablon).

</Konec>

Přihlásit se na mém blogu!

Doplněk Technorati značky: ,

Řešení (druh): Nastavit Priority úkolu pomocí aplikace SharePoint Designer

Mám obchodní situaci jako je tato:

  • Uživatel odešle dokument do knihovny dokumentů.
  • Vybere typ obsahu a zadává meta data podle potřeby. Jedním z meta datových polí je vlajka, "Naléhavé".
  • To vyvolává SharePoint Designer workflow,, mimo jiné, používá "shromažďovat Data z uživatele" akce.

"Shromáždit Data od uživatele" vytvoří položku v seznamu úkolů odeslán požadavek na schválení dokumentu.

Potřeboval jsem vytvořit zobrazení seznamu úkolů, který ukázal naléhavé žádosti o schválení.

Řešení: Vložte slovo "URGENT:" do názvu těchto úkolů.

Já bych si raději přímo určit pole Priorita. Avšak, Nemohl jsem to udělat hned z několika důvodů:

  1. Akce shromáždit data neposkytuje mechanismus pro aktualizaci jakékoliv pole, titul (a ty další pole, pro které chcete shromažďovat data).
  2. "Přiřadit k položce" akce má stejný problém.
  3. Je možné vložit položku do seznamu (tj. Vložit položku do seznamu úkolů přímo) ale to není akce blokování. To znamená, že pracovní postup nebude čekat na uživatele k dokončení tohoto úkolu.

Uvažoval jsem o několik přístupů před (Naštěstí) uvědomil si, že bychom mohli jen dát "naléhavé" v názvu.

  1. Zahájit pracovní postup v seznamu úkolů, sám tak, že když je vytvořen nový úkol, to nějak křížové odkazy zpět na dokument, který první pracovní postup, Vytáhněte hodnotu příznaku naléhavé a aktualizovat prioritu podle potřeby.
  2. Něco podobného se příjemce události. Při vytvoření úkolu, Vyhledejte související dokument a aktualizovat prioritu podle potřeby.
  3. Pomocí "vytvořit položku seznamu" akce ve spojení s "čekat na změnu pole" akce a události přijímač. Pokud vytvoříme položku seznamu, můžeme určit všechna pole, co chceme. Příjemce události se používá k aktualizaci původní položky, když uživatel dokončí úkol a "čekat na změnu pole" by být splněna podmínka akce a pracovního postupu by pokračovat. (Z nějakého důvodu, Jsem více či méně usadil na tomto přístupu než se moudře rozhodl odejít na chvíli).

Zde je nevýhodou pro mé řešení (Kromě zjevné skutečnosti, že pouze text názvu označuje naléhavost). Od "získávat zpětnou vazbu" přijímá pouze pevně zakódovaný název názvy, Potřebuji použít dvě různé získávat zpětnou vazbu akce, jejichž jediným rozdílem je, že pevný kódované titul.

Ale, přinejmenším je řešení, které nevyžaduje žádné přijímačů událostí nebo vlastní akce, SPD.

Je-li někdo vyřešil to v jistém smyslu chytřejší, Dejte mi prosím vědět.

</Konec>

Doplněk Technorati značky: ,

Rychlé a snadné: Automaticky otevřít formulář aplikace InfoPath Z e-mailové aplikace SharePoint Designer

AKTUALIZOVAT: Madjur Ahuja poukazuje na tento odkaz z diskusní skupiny diskuse: http://msdn2.microsoft.com/en-us/library/ms772417.aspx. Je to docela definitivní.

===

Často chceme vložit hypertextové odkazy na formuláře aplikace InfoPath v e-maily odeslané z aplikace SharePoint Designer pracovní postupy. Když uživatelé obdrží tyto e-maily, mohou klepnutím na odkaz z e-mailu a jít přímo do formuláře aplikace InfoPath.

Toto monstrum URL stavební práce pro mě:

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&Zdroj = http % 3A % 2F % 2Fserver % 2Ecorp % 2Edomain % 2Ecom % 2Fsites % 2Fdepartments % 2FTechnical % 2520Services % 2FInformationTechnology % 2FHelpDesk % 2FREC % 2520REM % 2520RED % 2520Forms % 2FForms % 2FAllItems % 2Easpx&DefaultItemOpen = 1

Červený tučný text nahraďte názvem ve formuláři, jak je znázorněno v následujícím snímku:

obrázek

Všimněte si, že je hodně pevně zakódované cesty v URL, stejně jako součást adresy URL kódované. Pokud je to příliš těžké přeložit konkrétní situaci, Zkuste na oznámení pro knihovnu formulářů. Odeslat formulář, a když se dostanete k e-mailu, Zobrazit zdroj e-mailu a uvidíte vše, co potřebujete zahrnout.

Bystrý čtenáři si všimnout, že výše uvedený email tělo také ukazuje, že odkaz, který přímo přistupuje k úkolu pomocí filtrovaného zobrazení. Mám v plánu to vysvětlit podrobněji v budoucnu post.

</Konec>

Doplněk Technorati značky:

MECH mi říká “Přístup byl odepřen.” Upravit úkol pracovního postupu, Ale opravdu mají přístup

Implementována pracovního postupu pomocí služby SharePoint Designer v lokalitě, která je převážně jen pro čtení "NT_AUTHORITYAuthenticated uživatelů" (tj. Každý). Je zde knihovna formulářů pro formuláře aplikace InfoPath. Je přidružený seznam úkolů pracovního postupu a také tak, že když pracovní postup funguje, můžete přiřadit úkoly k lidem.

Zlomím oprávnění pro seznam úkolů a knihovnu formulářů, aby kterýkoli ověřený uživatel může vytvářet formuláře a aktualizovat své přiřazené úkoly.

Já být vyzkoušen s účtem testu nízké oprávnění.

Lze vyplnit, ven a uložit formulář do knihovny? –> Ano

Lze přistupovat úkol z propojení e-mailu? –> Ano

Lze vidět vazbu úkolu pracovního postupu Edit –> Ano

Můžete kliknout na tento odkaz? –> Ne … Oprávnění byla odepřena..

Proč lze vidět edit odkaz, který mi odepře oprávnění, když klepnu na něm? To je, ne jak to má fungovat…

Projít znovu konfigurace zabezpečení, velmi úzce. Já to znovu. Považuji za odstranění tento post protože zjevně nic nevím o bezpečnost.

Konečně, Já Hledat internety. Považuji tento vysoce nepravděpodobné MSDN fóru vlákno: http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=1838253&SiteID=17

Plakáty zdá se naznačuje, že i pouhá exportu pracovní postup do jednotky talíř opraví problém se zabezpečením MOSS? Lze jen stěží uvěřit, že jsem právě napsal. Připomíná mi to epizoda South Park o 9/11 spiknutí, kde Stan žádá naši Preznit, "Opravdu?" znovu a znovu.

Tak, co ztratit, Jsem oheň a SPD, Klepněte pravým tlačítkem myši na pracovním postupu a uložte ji do mé c:\ jednotka. To by bylo c:\ disk na mém notebooku. Dívám se přes rameno po celou dobu tak, že nikdo se dotázat, "Proč si ukládáte postupu do přenosného počítače?"

Neuvěřitelně, To řeší můj problém. Můžete upravit úkol.

Tímto nominovat, aby to bylo nejvíce bizarní řešení pracovního postupu z 2007.

</Konec>

Doplněk Technorati značky:

SharePoint Designer, Aktuální položky “Kódovaná absolutní adresa URL” a HTTPS

Často chceme poslat e-mail, který obsahuje hypertextový odkaz na položku nebo dokument, který spustil pracovní postup. Můžeme použít aktuální položky "kódované absolutní adresa URL" pro tento účel. Avšak, Zdá se vždy použít "http" pro protokol URL. Je-li váš web běží na HTTPS, pak to nebude fungovat pro vás.

obrázek

Pokud jde o já vím, neexistuje žádný mimo box řešení tohoto problému. Pokud potřebujete použít HTTPS, Nemáte z pole možnost.

To vyřešit, Vytvořte vlastní akci, která poskytuje funkce nahradit řetězce pro použití v pracovním postupu. Případně, Používejte třetí stranu například vynikající balíček zde: http://www.codeplex.com/spdwfextensions 🙂

</Konec>

Doplněk Technorati značky: ,

Odešle e-mailovou aplikaci SharePoint Designer ???? v e-mailu

Fórum uživatelé občas ptát: Proč dává aplikaci SharePoint Designer ???? do mého e-mailu namísto hodnoty pole?

Jedním z důvodů, že se že to děje je proměnné, na které odkazujete je null.

K tomu může dojít, protože se pokoušíte odkazovat na pole ze "aktuální položky" ale uživatel nikdy zadali hodnotu do pole formuláře.

<Konec />

Doplněk Technorati značky:

Porovnat / Test na prázdná data v aplikaci SharePoint Designer Workflow

Scénář: V pracovním postupu SharePoint Designer, potřebujete zjistit, zda je datové pole prázdné.

Problém: SPD neposkytuje přímou metodu pro porovnávání datum než datum. Nelze vytvořit podmínku, jako je tento: "If [DateField] rovná se prázdné".

Řešení: Převést data na řetězec. Použít porovnání řetězců k určení, zda je datum prázdné.

Kopie obrazovky:

Následující snímky obrazovky ukazují, jak to udělat. V tomto scénáři, pole na položku, "Environmentální povolení:Datum prvního povolení připomenutí", podává a pracovního požáry v reakci.

obrázek

obrázek

Poznámky:

Když jsem to zkoušel, Byl jsem příjemně překvapen, se dozvěděl, že to funguje. Bál jsem se, že aplikace SharePoint Designer může zakázat přiřazení řetězec (Proměnná:StringReminderDateDate) Ale to přinášela.

Byl jsem také týká, že povolení, Hodnota může být null a buď povětří WF za běhu nebo možná zvýšení globální teploty 1/2 stupně, Tyto obavy neopodstatněné, ale.

</Konec>

Doplněk Technorati značky:

Vlastní akce pracovního postupu aplikace SharePoint Designer — Pozorování o <FieldBind Návrhář typ =”StringBuilder” … />

Jen rychlé pozorování, že je velmi důležitý rozdíl mezi těmito dvěma definice:

<FieldBind pole = "InParam1" DesignerType = "StringBuilder" ID = "2" Text = "Vstupní parametr #1" />

versus:

<FieldBind pole = "InParam1" ID = "2" Text = "Vstupní parametr #1" />

První ukazuje jako je tento v SPD:

obrázek

zatímco posledně ukazuje jako je tato:

obrázek

Nejsem si jistý, jak užitečné jsou tyto snímky obrazovky, ale dal jsem si tu námahu, abych je vytvořil, takže si je musíte prohlédnout 🙂

Pozorování je to: StringBuilder umožňuje vytvořit řetězec (očividně) tím, že míchá dohromady řetězcové literály a data pracovního postupu (pomocí "přidat vyhledávání" tlačítko v levém dolním rohu). Pokud použijete tlačítko Přidat vyhledávání, token vloží v podobě"[%token %]". Když SharePoint vyvolá vaše vlastní akce, (Kód jazyka C# v mém případě), SharePoint předá token, sama o sobě, Ne hodnota tokenu. Pokud používáte výchozí typ návrháře (druhý typ), SharePoint rozšiřuje token a předává skutečné hodnoty tokenu na vaše akce.

StringBuilder = špatné, výchozí typ návrháře = dobrý.

Samozřejmě, to není to, co myslím opravdu. Jen Nesnaž se předat parametr k vlastní akci, když Návrhář typ = StringBuilder. Použijte výchozí typ návrháře a řetězce StringBuilder na to dopředu, pokud potřebujete vybudovat komplexní řetězce v pracovním postupu (což mimochodem je přesně co dělá vytvořit dynamický předmět e-mailové akce, ale to je téma pro jinou položku blogu, Har har).

<Konec />

Doplněk Technorati značky: , ,