分類存檔: SharePoint 工作流

創建網站 (SPWeb) 通過 SharePoint 設計師工作流

這篇博客更多的是"在可能的領域" 條目 vs. 具體資訊.

我們有一個技術的設計,要求我們要創建一個網站,在網站集通過手動啟動工作流進程. 基本上, 使用者將資料輸入到"新客戶" 自訂清單,然後當他們完成,並驗證資料輸入過程, 我們需要為該客戶創建一個網站.

我是個狂熱的聲明性工作流以及弱 visual studio 工作流程式師, 所以我想要滿足使用 SharePoint 設計器的要求.

我計畫中更詳細地寫對此 (並希望向使用者組或兩個在未來一年), 但這裡是整體解決方案:

  • 創建與電湧保護器集成在一起的自訂操作.
  • 自訂操作允許浪湧保護器調用 web 服務,並將它傳遞的 XML 字串.
  • Web 服務定位該行,並在自訂清單中,為該新的用戶端使用的自訂網站定義創建一個新的網站,根據資料.
  • Web 服務然後更新自訂清單中的某些資訊,例如新的網站的連結.

我們考慮其他的辦法, 如事件處理常式和基於視覺工作室工作流程. SPD 方法給我們的最終使用者多一點控制過程. 授予, 有很多在此解決方案中的 C# 代碼, 但它封裝在一個聲明性的工作流, 所以我們得到的一些聲明性工作流的好處為網站創建服務掛鉤的同時.

我們現在需要的是一個簡單的工具,可以像視覺工作室工作流程一樣輕鬆地自動遷移 SPD 工作流程,我們真的會用天然氣做飯 🙂 我知道有些人正在解決這個問題,我希望他們已經很快就會取得一些成功.

</結束>

訂閱我的博客.

Technorati 標籤: ,

與 Web 服務集成 SharePoint 設計器的工作流

我已經打與 SharePoint 設計器的自訂操作一段時間了 (請看這裡 對於一些詳細的東西, 如果你有興趣,).

我當前的專案中, 我們需要做一些相當繁重的工作和我們想要使用聲明性 SPD 工作流來管理相關的業務流程.

長話短, 這是完全有可能. 我擴展我 Codeplex 專案來調用"家務助理服務" 現在我們可以調用 web 服務直接從 SPD 工作流.

這裡是簽名:

 公眾 字串 調度程式(
        Guid WebID, // 通過運行時環境
        Guid SiteID, // 通過運行時環境
        字串 ListID, // RTE 通過 (不知道為什麼這是一個字串, 沒有一個 GUID)
        int ListItemID, // RTE 通過.
        字串 XmlMessage) // 通過使用者 SPD 中聲明.

這利用了這一事實,我們可以獲得重要工作流資訊, 像網站, 清單 ID, 等. 這是很好的印證在幾個地方那些您感興趣創建您自己的自訂操作. 這個想法是要提取的 XML 字串,如使用者派遣一個適當的程式提供的. 有趣的東西!

不幸的是, 這顯然是一張單程票降到 "Goosey Loosey" anti-pattern 土地, 但是比撞磚牆要好🙂

如果你做它,即使你知道它是反反模式是它嗎?

我希望能在不久的將來把這個包裝內 Codeplex. 如果你有興趣在我這樣做, 給我 poke (電子郵件 或留下評論) 我會更加熱心

</結束>

訂閱我的博客.

Technorati 標籤: ,

展能就業科的工作流 “從使用者收集資料”: 修改生成的工作表單

我正在進行一個專案,使用五個不同 SharePoint 設計師工作流來處理一些文檔審批. SPD 提供從使用者的"收集資料" 行動以便我們可以提示使用者輸入資訊的不同位, 例如,是否他們批准它, 一些評論,也許問他們了前幾天的晚餐.

形式是完美的功能. 他們都向工作清單作為內容類型. 他們是 100% 系統生成. 這是他們的力量和弱點. 如果我們能活著與預設表單, 然後我們就去. 不過, 我們不能太多控制 SPD 如何創建表單. 如果我們不喜歡這種預設行為, 我們需要求助於各種伎倆來繞過它 (舉個例子, 為任務設定優先權).

在這些工作表單上開闢了視圖屬性提供一個連結所需 (dispform.asxp) "相關專案的" 在新視窗中. 這提供了一鍵式訪問到相關專案的中繼資料. 這是我的意思是:

圖像

值得慶倖的是, 我們可以這樣做並不是很難. 概括地說, 點燃電湧保護器, 導航到房子的工作流檔的目錄,然後打開您想要修改的 ASPX 檔. 這些都只是經典的 XSL 變換指令,如果你已經弄亂 itemstyle.xsl, 搜索或其他 XSL 方案, 這將便於您. 事實上, 我發現這是通常更容易,因為生成的表單是一定程度上容易遵循與搜索核心結果 web 部件 (或 夢魘般的 CWQP).

答案是肯定的, 還有一個主要的陷阱. SPD 的工作流編輯器預計該檔的完全控制權. 如果你對其進行修改, SPD 將愉快地覆蓋權設置的情況下你的變化給. 我做兩個快速測試,看看這能得到多麼糟糕. 他們都預先假定你已經精心設計有效的 SPD 工作流使用來自使用者的"收集資料" 一步.

測試 1:

  • 用手修改 ASPX 檔.
  • 對它進行測試 (驗證您的更改被正確的保存,並沒有破壞任何東西).
  • 開放工作流,並添加一個不相關的操作 (如"到歷史記錄日誌").
  • 保存工作流.

結果: 在此情況下, 展能就業科並不重新創建表單.

測試 2:

  • 做相同 #1 除了直接修改的"收集資料從使用者" 行動.

結果: 這將重新創建表單從零開始, 修改您的更改.

最後說明:

  • 至少兩個電湧保護器操作創建表單像這樣: "從使用者收集資料" 和"分配做專案". 這兩種操作’ 可以手動修改表單.
  • 我是能夠生成我連結到 dispform.aspx,因為, 在這種情況下, 相關專案總是有相關的專案 URL 中嵌入其 ID. 我是能夠提取它,然後再生成 <a href> 在此基礎提供一次按一下中繼資料訪問功能. 它不太可能您的 URL 遵循這個規律. 可能有其他方法可以獲得相關的項的 ID,但還沒有過那座橋, 所以我不知道如果獲取到另一邊的鴻溝.
  • 我才調查, 但我不會感到驚訝,如果有某種類型的範本檔中 12 可以修改影響 SPD 將預設表單的生成的配置單元 (就像我們可以修改通知範本).

</結束>

訂閱我的博客!

Technorati 標籤: ,

解決方案 (排序的): 使用 SharePoint 設計器為任務設置的優先順序

我有這樣的業務方案:

  • 使用者將文檔上載到文件庫.
  • 她選擇一個內容類型,根據需要輸入中繼資料. 元資料欄位之一是一個標誌, "緊急".
  • 這會觸發一個設計器 SharePoint 工作流,, 除其他事項外, 使用"收集的資料從使用者" 行動.

"從使用者那裡收集資料" 清單中的工作要求核准為該文檔創建一個專案.

我需要創建一個視圖的工作清單的顯示緊急請求核准.

解決方案: 放話"緊急:" 到這些任務標題.

我本來想直接指定優先順序欄位. 不過, 我不能做,有幾個原因:

  1. 收集資料行動不提供一種機制來更新標題以外的任何欄位 (和那些您要為其收集的資料的附加欄位).
  2. "分配來做專案" 行動有同樣的問題.
  3. 它是可能要插入到清單中的項 (e 小節. 直接插入到工作清單中的項) 但這不是阻塞的行動. 這意味著工作流不會等待使用者來完成這項任務.

審議了之前的幾條途徑 (值得慶倖的是) 實現我們可能只把"緊急" 在標題中.

  1. 在工作清單中本身啟動工作流,以便在創建一個新的任務時, 它以某種方式交叉引用回到開始的第一個工作流的文檔, 拔出緊急標誌值,更新所需的優先.
  2. 做類似的事件接收器. 創建任務, 查找關聯的文檔和根據需要更新優先順序.
  3. 使用"創建清單項" 與之前的"等待欄位更改一起行動" 行動和事件接收器. 如果我們創建一個清單項, 我們可以指定我們想要的所有欄位. 使用事件接收器來更新原始專案,當使用者完成任務和"等待場變化" 將滿足行動的條件和工作流將繼續. (因為某些原因, 我已經更多或更少的這種做法明智地決定要走了一段時間之前解決了).

有缺點我的解決方案 (除了這個明顯的事實,只有標題的文本指示緊迫性). 自"收集回饋" 只接受硬式編碼標題名稱, 我需要使用兩個不同的收集回饋行動的唯一的區別是,硬式編碼標題.

但, 至少有一種解決方案,不需要事件接收器或 SPD 的自訂操作.

如果一個人在一個更聰明的辦法解決了這, 請讓我知道.

</結束>

快速而方便地: 從 SharePoint 設計器的電子郵件會自動打開 InfoPath 表單

更新: Madjur 阿胡賈指出此連結從 新聞群組討論: http://msdn2.microsoft.com/en-us/library/ms772417.aspx. 它是非常明確.

===

我們經常想要在從 SharePoint 設計師工作流發送的電子郵件中嵌入到 InfoPath 表單的超連結. 當使用者收到這些電子郵件, 他們可以按一下電子郵件中的連結並直接轉到 InfoPath 表單.

這個怪物的 URL 建造工程對我來說:

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&源 = HTTP ://server.corp.domain.com/sites/departments/technical%20services/informationtechnology/helpdesk/rec%20rem%20red%20forms/forms/AllItems .aspx&DefaultItemOpen = 1

紅色加粗文本替換為表單的名稱, 如下面的螢幕擷取畫面中所示:

圖像

請注意有很多該 URL 中的硬編碼路徑, 以及一個 URL 編碼的元件. 如果這是很難轉化為您的具體情況, 請嘗試打開表單庫的通知. 發佈表單,當你的電子郵件, 查看電子郵件的來源,你會看到你需要包括的一切.

聰明的讀者可能會注意到上面的電子郵件正文也顯示一個連結,直接存取通過篩選視圖的任務. 我打算在將來的文章中更詳細地說明.

</結束>

Technorati 標籤:

MOSS 告訴我 “訪問被拒絕” 若要編輯工作流任務, 但真的做了訪問

我實現了一個工作流,這是主要是唯讀的"NT_AUTHORITYAuthenticated 使用者的網站中使用 SharePoint 設計器" (e 小節. 每個人都). 還有為 InfoPath 表單的表單庫. 有相關的工作流的工作清單,工作流運行時, 它可以將任務分配給人民.

我打破表單庫和工作清單的許可權,以便任何經過身份驗證的使用者可以創建表單,並更新其分配的任務.

我測試我測試低特權帳戶.

我可以填寫並保存到庫表單? –>

可以從電子郵件連結訪問任務? –>

可以看到一個編輯工作流任務連結 –>

我按一下該連結可以嗎? –> … 許可權被拒絕.

為什麼可以看到拒絕我的許可權,當我點擊它的編輯連結? 這就是不該怎麼上班…

我去通過再次的安全配置, 非常密切. 再次做到. 我考慮刪除這篇文章 因為顯然不知任何安全資訊.

最後, 我搜索互聯網. 我發現這個高度不太可能的 MSDN 論壇帖子: http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=1838253&SiteID=17

海報似乎暗示匯出到磁碟機碟片上的工作流的簡單行動將修復一個 MOSS 的安全問題? 我簡直不能相信我剛剛鍵入的內容,. 我想起了南方公園 》 裡關於 9/11 凡斯坦問我們 Preznit 的陰謀, "真的?" 遍又一遍.

所以, 失去什麼, 我火了 SPD, 工作流上按右鍵,然後將它保存到我的 c:\ 磁碟機. 這將是 c:\ 在我的可擕式電腦上的磁碟機. 我在看我的肩膀上的全部時間,沒有人會問我, "為什麼您保存該工作流到您的可擕式電腦?"

令人難以置信, 解決了我的問題. 我可以編輯任務.

本人現提名這是解決最奇怪工作流方法的 2007.

</結束>

Technorati 標籤:

SharePoint 設計器, 當前專案 “已編碼的絕對 URL” 和 HTTPS

我們經常想要發送一封電子郵件,其中包含指向該專案或觸發工作流的文檔的超連結. 我們可以使用當前項的"編碼絕對 URL" 為此目的. 不過, 它似乎總是使用"HTTP" 為 URL 協定. 如果您的網站在 HTTPS 上運行然後它不會為你工作.

圖像

據我所知, 沒有出去框解決這個問題. 如果你需要使用 HTTPS, 你有沒有從框中選項.

要解決這個問題, 創建一個自訂的操作,提供了一個字串替換函數,以在您的工作流中使用. 或者, 在這裡使用協力廠商工具,如優秀的包裝: http://www.codeplex.com/spdwfextensions 🙂

</結束>

Technorati 標籤: ,

SharePoint 設計器的電子郵件發送 ???? 在一封電子郵件中

論壇使用者偶爾問: SharePoint 設計器是為什麼放的 ???? 到我的電子郵件而不是欄位值?

發生這種情況的一個原因是因為所引用的變數為 null.

這可能是因為您試圖引用一個欄位從"當前項" 但使用者永遠不會進入該表單欄位的值.

<結束 />

Technorati 標籤:

比較 / 測試設計器 SharePoint 工作流中的空白日期

方案: 在設計器中 SharePoint 工作流, 你需要確定一個日期欄位是否為空.

問題: SPD 不提供直接的方法來比較日期以外的任何日期. 您不能創建此類的情況下: "如果 [DateField] 等於空白".

解決方案: 將日期轉換為字串. 使用字串比較來確定是否日期為空.

螢幕截圖:

下面的螢幕截圖展示如何做到這一點. 在此方案中, 專案中的欄位, "環境許可證:第一次允許提醒日期", 就提交和工作流激發的回應.

圖像

圖像

備註:

當我試過這個, 愉快地驚訝地瞭解它的工作. 我很擔心 SharePoint 設計師可能不允許字串賦值 (變數:StringReminderDateDate) 但它確實允許它.

我也是有關那允許它, 值可能為 null 並且要麼炸了 WF 在運行時或也許提高全球溫度 1/2 學位, 但這些問題是毫無根據.

</結束>

Technorati 標籤:

設計器 SharePoint 工作流自訂操作 — 觀察 <設計器將文字方塊綁定類型 =”StringBuilder” … />

只是有一個非常重要的區別這兩個定義之間的快速觀察:

<文字方塊綁定欄位 ="InParam1" DesignerType ="StringBuilder" Id ="2" 文本 ="輸入參數 #1"/>

與比較:

<文字方塊綁定欄位 ="InParam1" Id ="2" 文本 ="輸入參數 #1"/>

第一次像這樣顯示 SPD 中:

圖像

雖然這樣,後者所示:

圖像

我不確定這些截屏有多大幫助,但我會盡力製作它們,因此您必須查看它們🙂

這是觀察: StringBuilder 使您可以生成一個字串 (很明顯) 字串文本和工作流資料混合在一起 (通過"添加查找" 在左下角的按鈕). 當您使用添加查找按鈕, 它在表單中插入一個權杖"[%權杖 %]". 當 SharePoint 調用自訂操作, (在我的案子中的 C# 代碼), SharePoint 將此標記本身傳遞, 未標記的值. 如果您使用預設的設計器類型 (第二種類型), SharePoint 擴展標記並將標記的實際值傳遞到您的行動.

StringBuilder = 壞, 預設的設計器類型 = 好.

答案是肯定的, 這就是沒有我真正的意思. 不要試著向你自訂的操作傳遞一個參數,當設計器鍵入 = StringBuilder. 使用預設的設計器類型和鏈 StringBuilder 到它前面如果您需要構建複雜的字串,在您的工作流 (順便說一句這正是自己所做的要創建的電子郵件操作的動態主題, 但那是另一個博客條目的主題, har har).

<結束 />