Arhive de categorii: Flux de lucru SharePoint

Creaţi site-uri (SPWeb) prin flux de lucru SharePoint Designer

Această intrare de blog-ul este mai mult de un "în tărâmul de posibile" intrare vs. beton info.

Avem un design tehnic, care solicită pentru noi pentru a crea un site-ul într-o colecţie de site-ul printr-un proces de flux de lucru manual a lansat. Practic, utilizatorii introduc date într-un "nou client" listă particularizată şi atunci când au terminat şi validate în procesul de intrare de date, avem nevoie pentru a crea un site pentru acest client.

Sunt atât de un mare fan al fluxului de lucru declarative, precum şi un programator de flux de lucru slab visual student, aşa că am vrut pentru a satisface cerinţa utilizând SharePoint Designer.

Am de gând să scrie despre acest lucru în mai mare detaliu (şi, sperăm, să prezinte un grup de utilizatori sau două în anul care vine), dar aici este soluţia generală:

  • Creaţi o acțiune particularizată care se integrează cu SPD.
  • Acțiune particularizată permite SPD pentru a invoca un serviciu web şi să-l daţi un şir de XML.
  • Serviciu web localizează rândul în lista particularizată şi creează un nou site-ul ca pe datele pentru acel client nou folosind o definiţie de site personalizat.
  • Serviciu web apoi actualizează lista particularizată cu unele informaţii cum ar fi un link către noul site.

Am luat în considerare alte abordări, gestionari de eveniment şi visual student pe bază de flux de lucru. Abordarea SPD oferă utilizatorilor noştri un pic mai mult control asupra procesului de. Acordate, Există o mulţime de codul C# în această soluţie, dar acesta este înfăşurat în interiorul unui flux de lucru declarative, aşa că am obţine unele dintre beneficiile de flux de lucru declarative în timp ce agăţarea în serviciul de creare de site.

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.

</scop>

Aboneaza-te la blog-ul meu.

Technorati Tags: ,

Integra fluxuri de lucru SharePoint Designer cu servicii Web

Am fost joc în jurul cu acțiuni particularizate pentru SharePoint Designer de ceva timp (a se vedea aici pentru unele chestii detaliate, în cazul în care vă interesează).

În proiectul meu curent, avem nevoie pentru a face unele destul de grele ridicare şi vrem să utilizaţi declarativ SPD flux de lucru pentru a gestiona procesul de afaceri asociate.

Poveste lungă scurt, Acest lucru este în întregime posibil. Am extins proiectul Codeplex meu pentru a invoca un ajutor de serviciu"" şi acum putem invoca un serviciu web direct de la un flux de lucru SPD.

Aici este semnătura:

 publice şir Dispecer(
        GUID-ul WebID, // A trecut de runtime mediu
        GUID-ul SiteID, // A trecut de runtime mediu
        şir ListID, // A trecut de RTE (nu ştiu de ce acest lucru este un şir de, nu un GUID)
        int ListItemID, // A trecut de RTE.
        şir XmlMessage) // A trecut de către utilizator, a declarat în SPD.

Aceasta foloseste faptul că putem obţine informaţii importante de flux de lucru, ca site-ul, lista ID, etc. Acest lucru este bine documentat în mai multe locuri pentru cei dintre voi interesaţi în crearea propriile acțiuni particularizate. Ideea este de a extrage şirul XML furnizate de utilizator pentru a transporta o procedură corespunzătoare. Chestii Fun!

Din păcate, Acest lucru este, evident, un bilet pentru a "Loosey nating" anti-model de teren, but it’s better than hitting a brick wall 🙂

Este un anti-model dacă o faci chiar dacă ştiţi că este un anti-model?

Sper să încheie acest lucru în interiorul Codeplex în viitorul apropiat. Dacă sunteţi interesat de mine acest lucru, da-mi împungere (e-mail sau lăsaţi un comentariu) and I’ll be that more enthusiastic about doing it 🙂

</scop>

Aboneaza-te la blog-ul meu.

Technorati Tags: ,

SPD flux de lucru “Colectarea datelor de la un utilizator”: Modifica formularul generat de activitate

Eu lucrez la un proiect care utilizează cinci diferite fluxuri de lucru SharePoint Designer să se ocupe de unele omologărilor de documentul. DOCUP oferă "colecta date la un utilizator" acţiune astfel că ne poate solicita utilizatorului biţi diferite de informaţii, cum ar fi dacă acestea aprobe, unele comentarii şi poate cere ceea ce au pentru cina altă noapte.

Formularele sunt perfect funcţionale. Acestea sunt legate de o listă de activităţi ca un tip de conținut. Ele sunt 100% generată de sistem. Aceasta este puterea lor şi slăbiciune. Dacă putem trăi cu formă implicită, atunci noi suntem bine să plec. Cu toate acestea, nu avem prea mult control asupra cum SPD creează formularul. Dacă nu ne place acest comportament implicit, avem nevoie să se recurgă la diverse trucuri pentru a obţine în jurul acestuia (de exemplu, Setare prioritate pe o sarcină).

Am nevoie pentru a oferi un link pe aceste forme de activitate care deschis Proprietăţi vizualizare (dispform.asxp) "aferente elementului" într-o fereastră nouă. Acest lucru oferă un singur clic accesul la meta-date asociate elementului. Aceasta este ceea ce vreau sa spun:

imagine

Din fericire, putem face asta şi nu este foarte greu. În general, foc până SPD, Navigaţi la directorul care găzduieşte fişiere flux de lucru şi deschideţi fişierul ASPX doriţi să modificaţi. Acestea sunt instrucţiunile de transformare XSL doar clasic şi dacă te-am mucked cu itemstyle.xsl, Căutare sau alte scenarii XSL, Acest lucru va fi uşor pentru tine. de fapt, Am găsit-o a fi, în general, mai uşor deoarece formularul generat este oarecum mai uşor să urmeze în comparaţie cu o căutare de bază rezultatele parte web (sau coşmar CWQP).

desigur, Există o capcană majore. Editor de flux de lucru SPD pe aşteaptă control deplin asupra that dosar. Dacă modificaţi o, SPD fericit va suprascrie vostru modificări da dreptul set de circumstanţe. Am făcut două teste rapide pentru a vedea cât de rău acest lucru ar putea obţine. Ambele presupun că te-am artizanale o valabil SPD de flux de lucru care utilizează "colecta date la un utilizator" pas.

Test 1:

  • Modificaţi fişierul ASPX de mână.
  • Test it (Verificaţi că modificările au fost salvate corect şi nu rupe nimic).
  • Deschide fluxul de lucru şi adăugaţi o acţiune independenți (cum ar fi "jurnal de istorie").
  • Salvaţi fluxul de lucru.

Rezultatul: În acest caz, SPD a făcut nu re-crea forma.

Test 2:

  • Facă acelaşi lucru ca #1 cu excepția direct modifica "colecta datele la un utilizator" acţiune.

Rezultatul: Acest lucru creează din nou formular de la zero, over-writing modificări.

Note de final:

  • Cel puțin două SPD acţiuni crea formulare ca asta: "Colecta date de la un utilizator" şi "Asociaţi face element". Ambele din aceste acţiuni’ formularele pot fi modificat manual.
  • Am fost capabil să genereze link-ul meu la dispform.aspx, deoarece, în acest caz, elementul povestind are întotdeauna sa ID-ul încorporat în elementul de legătură URL. Am fost capabil să-l extrage şi de a construi apoi o <a href> bazat pe acesta pentru a oferi unul-pocnitură meta date acces caracteristica. Este puţin probabil ca URL-ul urmează această regulă. Pot exista alte modalităţi de a obţine Identificatorul elementului conexe, dar nu am avut să traverseze că podul, aşa că nu ştiu dacă ajunge la partea cealaltă a chasm.
  • Am nu investiga, dar nu aş fi surprins dacă există un fel de fişierul şablon în 12 stup pe care I-ar putea modifica afecta modul SPD generează forme implicit (de mult ca am posibilitatea să modificaţi şabloanele de alertă).

</scop>

Aboneaza-te la blog-ul meu!

Soluție (un fel de): Seta prioritatea pe o sarcină utilizând SharePoint Designer

Eu am un scenariu de afaceri ca aceasta:

  • Un utilizator încărcări un document la o bibliotecă de documente.
  • Ea selectează un tip de conținut și intră meta-date este necesar. Unul dintre câmpurile de date meta este un steag, "Urgent".
  • Aceasta declanşează un flux de lucru SharePoint Designer care, Printre alte lucruri, foloseste "colecta date la un utilizator" acţiune.

"Colecta date la un utilizator" creează un element într-o listă de activităţi solicita aprobare pentru acest document.

Am nevoie pentru a crea o vizualizare de lista de activități care a arătat cererile urgente pentru aprobarea.

Soluție: Pune cuvântul "URGENT:" în titlul de aceste sarcini.

Aş fi preferat să se specifice câmpul prioritate direct. Cu toate acestea, Am fost în imposibilitatea de a face asta din mai multe motive:

  1. Colectarea de date de acţiune nu oferă un mecanism pentru a actualiza orice câmp decât titlul (şi aceste câmpuri suplimentare pentru care doriţi să colecteze date).
  2. "Atribui o la pct." acţiune are aceeaşi problemă.
  3. Este posibil să inseraţi un element într-o listă (adică. introduce un element în lista de activități direct) dar acest lucru nu o acţiune de blocare. Asta înseamnă că fluxul de lucru nu va aştepta pentru utilizator de a finaliza această sarcină.

Am considerat câteva abordări înainte (din fericire) dându-şi seama am putea doar pune "urgente" în titlul.

  1. Începe un flux de lucru pe lista de activități în sine, astfel încât atunci când se creează o nouă sarcină, cumva aceasta cruce referiri înapoi la documentul care a început fluxul de lucru primul, scoate valoarea urgente de pavilion şi actualizează prioritate după cum este necesar.
  2. Fac ceva similar cu un receptor de eveniment. Crea de sarcina, Localizaţi asociate documentului şi prioritate de actualizare, după cum este necesar.
  3. Utilizaţi "Creare element listă" acţiune în colaborare cu "aşteptaţi pentru schimbare în câmp" acţiune şi un receptor de eveniment. Dacă vom crea un element de listă, putem specifica toate câmpurile vrem. Utilizaţi un receptor de eveniment pentru a actualiza elementul original, atunci când utilizatorul completeaza sarcina şi aşteptaţi"pentru schimbare în câmp" starea de acţiune ar fi îndeplinit şi fluxul de lucru ar continua. (Pentru unii motiv, Am avut mai mult sau mai puţin stabilit pe această abordare înainte de a decide cu înţelepciune a pleca pentru un timp).

Există un dezavantaj pentru soluţia mea (în afară de evident faptul că numai textul din titlu indică urgenţa). Deoarece "colecta feedback" acceptă numai nume greu codificate titlu, Am nevoie de a utiliza două acţiuni diferite colecta feedback-ul a cărui singura diferenţă este că titlul greu codificate.

dar, cel puţin, există o soluţie care nu necesită receptoare de eveniment sau acțiuni particularizate SPD.

Dacă cineva a rezolvat acest lucru într-un mod mai inteligent, vă rugăm să-mi spuneţi.

</scop>

Rapid şi uşor: Deschide automat formular InfoPath din SharePoint Designer E-mail

ACTUALIZARE: Madjur Ahuja subliniază acest link la un discuţii de grup de știri: http://msdn2.microsoft.com/en-us/library/ms772417.aspx. Este destul de definitiv.

===

Am adesea doriţi să încorporaţi hyperlink-uri la formulare InfoPath în e-mailuri trimise la fluxuri de lucru SharePoint Designer. Când utilizatorii primesc aceste e-mailuri, pot da click pe linkul din e-mail şi merge direct la formular InfoPath.

Acest monstru URL constructii works pentru eu:

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

Înlocuiţi textul apărea cu litere aldine de culoare roşie cu numele de forma, aşa cum se arată în captura de ecran următoare:

imagine

Reţineţi că există o mulţime de hard-coded calea în acel URL, precum şi o componentă codificat URL. Dacă acest lucru este prea greu pentru a traduce pentru situaţia dumneavoastră specifică, încercaţi Activarea alertelor pentru biblioteca de formulare. Posta o formă şi când ai de e-mail, Vezi sursa de e-mail şi veţi vedea tot ce ai nevoie pentru a include.

Astute cititori pot observa că organismul de e-mail de mai sus arată, de asemenea, un link care accesează direct sarcina printr-o vizualizare filtrată. Am de gând să explice că în detaliu mai mare într-un post viitor.

</scop>

Technorati Tags:

MUŞCHI mi-a spus “Acces refuzat” pentru a edita o activitate flux de lucru, Dar eu chiar au acces

I-am pus în aplicare un flux de lucru utilizând SharePoint Designer într-un site care este în principal doar în citire "NT_AUTHORITYAuthenticated utilizatorilor" (adică. toată lumea). Există o bibliotecă de formulare pentru un formular InfoPath. Există o listă de activități flux de lucru asociat, precum şi astfel încât atunci când fluxul de lucru funcționează, să poată atribui sarcini pentru oameni.

Rupe permisiunea pentru forme Biblioteca şi sarcina lista astfel încât orice utilizator autentificate pot crea forme şi actualiza sarcinile atribuite.

Am testat cu contul meu low-privilegii de testare.

Poate am umple şi salvaţi-o formă la Biblioteca? –> da

Puteţi accesa sarcina de pe un link de e-mail? –> da

Puteţi vedea un link-ul Editaţi fluxul de lucru sarcina –> da

Să faceţi clic pe link-ul? –> nu … Permisiune refuzată.

Ce puteţi vedea o legătură de editare, care neagă-mi permisiunea de atunci când am clic pe ea? Aceasta este nu cum ar trebui sa lucreze…

Mă duc prin configuraţia de securitate din nou, foarte strâns. Eu o fac din nou. Consider că şterge acest post pentru că, evident, nu ştiu nimic despre securitate.

În cele din urmă, Caut Internets. Mi se pare acest foarte improbabilă MSDN forum thread: http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=1838253&SiteID=17

Postere par a fi ceea ce sugerează că simplul act de a exportul fluxul de lucru de un platou de unitate va rezolva o problemă de securitate MOSS? Abia pot să cred că am scris doar că. Mi-aduc aminte de South Park episod despre 9/11 conspiraţie unde Stan cere noastre Preznit, "Într-adevăr?" peste si peste din nou.

Deci, nimic de pierdut, Am foc până SPD, faceţi clic dreapta pe fluxul de lucru şi salvaţi-l meu c:\ unitate. Asta ar fi c:\ unitatea pe laptop-ul meu. Caut peste umărul meu tot timpul astfel încât nimeni nu va cere-mi, "de ce vă salvaţi acest flux de lucru la laptop?"

Incredibil, care rezolvă problema mea. Pot edita sarcina.

Am nominaliza prin prezenta să fie cel mai bizar lucru soluţie de 2007.

</scop>

Technorati Tags:

SharePoint Designer, Elementul curent “URL-ul absolut codate” şi HTTPS

Adesea ne-o dorim pentru a trimite un e-mail care include un hyperlink la element sau la documentul care a declanşat fluxul de lucru. Putem folosi elementului curent "codificat URL-ul absolut" în acest scop. Cu toate acestea, întotdeauna pare să folosească "http" pentru Protocolul de URL. Dacă site-ul se execută pe HTTPS, atunci nu va funcţiona pentru tine.

imagine

În măsura în care ştiu, nu există nici în afara caseta soluţia la această problemă. Dacă aveţi nevoie să utilizaţi HTTPS, tu nu au nici o din cutie opţiune.

La spre solve it, Creaţi o acţiune personalizat care oferă un şir de funcţia de înlocuire să utilizaţi în fluxul de lucru. Alternativ, utilizeze un 3rd petrecere unealtă such as pachet excelent aici: http://www.codeplex.com/spdwfextensions 🙂

</scop>

SharePoint Designer E-mail trimite ???? într-un E-mail

Utilizatori forum cer ocazional: De ce se pune SharePoint Designer ???? în mea de e-mail în loc de o valoare de câmp?

Un motiv acest lucru se întâmplă este că variabila la care te referi este null.

Acest lucru se poate întâmpla pentru că încercaţi să referinţă un câmp din "elementul curent" dar utilizator intrat niciodată o valoare în acel câmp formular.

<final />

Technorati Tags:

Compara / Test pentru datele gol în flux de lucru SharePoint Designer

Scenariu: Într-un flux de lucru SharePoint Designer, aveţi nevoie pentru a determina dacă un câmp dată este gol.

Problema: DOCUP oferă o metodă directă pentru a compara datele pentru altceva decât o dată. Nu se poate crea o stare ca asta: "Dacă [DateField] egal cu gol".

Soluție: Conversia data la un șir. Utilizaţi şir comparaţie pentru a determina dacă data este gol.

Capturi de ecran:

Capturi de ecran următoare arată cum să facă acest lucru. În acest scenariu, un câmp un element, "Mediu permise:Permis prima data memento", este prezentată şi fluxul de lucru incendii în răspuns.

imagine

imagine

Note:

Când am încercat acest lucru, Am fost plăcut surprins să afle că funcţionează. Am fost îngrijorat de faptul că SharePoint Designer ar putea interzice atribuirea şir (Variabila:StringReminderDateDate) dar ea a făcut permite.

Am fost, de asemenea, în cauză, care îi permite, valoarea s-ar putea fi nulă şi fie sufla WF la runtime sau poate ridica temperatura globală 1/2 un grad, dar aceste preocupări sunt nefondate.

</scop>

Technorati Tags:

Acțiune particularizată de flux de lucru SharePoint Designer — Despre observare <FieldBind Designer tip =”StringBuilder” … />

Doar o observaţie rapid că există o diferenţă foarte importantă între aceste două definiţii:

<FieldBind teren = "InParam1" DesignerType = "StringBuilder" ID = "2" Text = "Parametru de intrare #1" />

comparativ cu:

<FieldBind teren = "InParam1" ID = "2" Text = "Parametru de intrare #1" />

Primul show de acest fel în SPD:

imagine

în timp ce acesta din urmă Arată ca aceasta:

imagine

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 🙂

Observarea este aceasta: StringBuilder vă permite să construiască un şir (în mod evident) prin amestecarea împreună şir literali şi fluxul de date (prin "Add Lookup" butonul din colţul din stânga jos). Când utilizaţi butonul Adauga Lookup, se inserează un simbol în formă"[%Token-ul %]". Când SharePoint invocă dumneavoastră acțiune particularizată, (C# cod în cazul meu), SharePoint trece token-ul în sine, nu valoarea simbolului. Dacă utilizaţi tipul implicit de design (al doilea tip), SharePoint extinde token-ul şi trece de valoare reală de token-ul dumneavoastră de acţiune.

StringBuilder = proaste, implicit designer tip = bun.

desigur, Asta e ceea ce am cu adevărat înseamnă. Doar nu încercaţi şi trece un parametru dumneavoastră acțiune particularizată când proiectantul tip = StringBuilder. Utilizaţi tipul implicit de design şi lanţ StringBuilder o să-l în faţă, în cazul în care aveţi nevoie pentru a construi complexe siruri de caractere în fluxul de lucru (de altfel care este exact ceea ce o face pentru a crea un subiect dinamic pentru acţiunea de e-mail, dar asta e un subiect pentru un alt blog intrare, har har).

<final />