SPD 的自訂工作流操作 — 字串操作的增強功能

大約一周前, 我開始了一個 codeplex 專案,提供一種將自訂操作功能添加到工作流設計器 SharePoit 的簡單和合理通用的方法. 它被描述在這裡: http://www.codeplex.com/spdwfextensions. 除了簡單地提供一個框架, 它還旨在提供一套有用的功能,將會使 SPD 更有用/靈活/強大.

這裡是當前計畫的功能版本 1.0: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=spdwfextensions&ReleaseId=8280

如果任何人有任何興趣在此專案中, 請留下評論或開始/添加到這裡討論: http://www.codeplex.com/spdwfextensions/Thread/List.aspx

下面是當前的已編碼的功能集 (雖然不完全測試的作為 11/08/07):

函數 說明 (如果不相同.net 函數,)
Num 條目() 返回數位的"條目" 根據指定的分隔符號分隔的字串中.

舉個例子: 在一個字串中的 Num 條目",b,c" 帶分隔符號"," = 3.

條目() 根據指定的分隔符號分隔的字串中返回的第 n 個標記.
長度 String.Length
替換() String.Replace()
包含() String.Contains()
返回"true 一詞" 或者"false"一詞.
子字串(啟動) String.Substring(啟動)
子字串(啟動,結束) String.Substring(啟動,結束)
ToUpper() String.ToUpper()
String.tolower() String.ToLower()
StartsWith() String.StartsWith()
返回"true 一詞" 或者"false"一詞.
EndsWith() String.EndsWith()
返回"true 一詞" 或者"false"一詞.

快速 & 簡單 url 編碼桌面實用程式

我一直需要到 url-進行某些字串編碼這周和拼湊了一個一個小的實用程式,我還以為我會放 SkyDrive 為社會.

讓這裡的二進位: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncode.zip

讓這裡的 visual studio 解決方案: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncodeVS2005.zip

這裡是一個螢幕擷取畫面:

圖像

快速和容易: XSLT 資料檢視 web 部件中嵌入超連結

更新 (01/17/08): 這篇博客談更多超連結 XSL 善良: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.

概述和目標: 我已經創建了一個簡單的橫條圖,作為儀表板上的元件. 我會保存詳細資訊構建圖表的另一篇文章, 但不是我發明的技術 (也不是問號, 對於那件事). 原來有一個 bug,在圖表中,而我固定的, 我藉此機會將一些標籤轉換成指著背後的圖基礎清單的超連結. 舉個例子, 有了一個標籤值與"封存". 我想要變成超連結的標籤,以便使用者可以點擊它,深入查看其狀態的值是"持有"清單中的特定條目.

步驟:

  1. 使用 visual studio 為 sharepoint 意識到智慧感知.
  2. 複製到 visual studio 中的 DVWP 的 XSLT (創建一個空白的專案, 向專案中添加一個 XSL 檔).
  3. 複製您想要使用到剪貼簿的連結.
  4. 將它粘貼到在 XSL 中的正確位置.
  5. 轉換從查詢字串的 URL 參數分隔符號"&" 到"&"
  6. Url 編碼的各個參數.
  7. 包裝裡面那 <a href…> </一>

示例:

我有一個 URL:

http://[伺服器]/[網站]/Lists/Open Positions/AllItems.aspx?視圖 ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = 招聘人員&FilterValue1 = 舉行

轉換成:

     < href="Lists/Open Positions/AllItems.aspx?視圖 = {84eea2f5-121B-40B7-946F-
0FA704A1DAA1 %7 d&amp;FilterField1 = 招聘人員&amp;FilterValue1 = 舉行"> 舉行: </>

我手動改變了從第一個參數:

{84EEA2F5-121B-40B7-946F-0FA704A1DAA1}

自:

%7b84EEA2F5-121B-40B7-946F-0FA704A1DAA1 %7 d

(在這, 左大括弧轉換到 { 和結束大括弧轉換至 %7 d)

第二和第三個參數’ 參數 ("FilterField1 =招聘人員" 和"FilterValue1 =舉行" 分別) 不需要是 url 編碼的因為它們不包含任何不安全的字元.

備註:

這種技術一般應工作任何地方你想要在哪裡該超連結包含 url 參數如 XSLT 中嵌入超連結:

http://[伺服器]/[網站]/Lists/Open Positions/AllItems.aspx?視圖 ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = 招聘人員&FilterValue1 = 舉行

我有 URL 本身所訪問的自訂清單和手動篩選在狀態列上 (標記"招聘人員" 以上).

快速和簡單: 啟用設計師 SharePoint 工作流,以更新 InfoPath 表單

方案: 我有一個 InfoPath 表單,前端使用 SharePoint 設計器來實現工作流過程. 在一個點, 經理必須批准形式. 既然不能指望工作流歷史記錄,以滿足我審核要求, 我決定我自己的審核消息存儲直接在表單本身上.

概述:

設計表單並將其作為發佈 內容類型 和表單本身到文件庫. 馬克所需表單欄位作為更新從青苔. 表單綁的內容類型和內容類型"附加" 表單庫 (或多, 如果需要幫助,). 寫一個工作流,更新的欄位.

具體步驟:

  1. 創建文件庫. 這將舉行你 InfoPath 範本.
  2. 創建表單庫.
  3. 創建 InfoPath 表單. 包含一個文字欄位, "審核消息".
  4. 作為內容類型發佈表單 (不是文檔).
  5. 同時填寫發佈對話方塊:
    一) .Xsn 檔保存到文件庫 (一步 #1).
    b) 發佈的"審核消息" 欄位,並將標記真實: "允許使用者編輯此欄位中的資料,通過使用資料表或屬性頁".
    c) 創建新的內容類型,並給它一個適當的名稱.
  6. 訪問表單庫.
    一) 轉到其先進的設置並啟用要管理內容類型的表單庫.
    b) 選擇新創建的內容類型 (5c 以上). 它將在"Microsoft InfoPath 下分組" (或類似).
    c) 刪除預設的"表單" 圖書館的內容類型.
    d) 標記要"頁顯示為 web 頁的庫" 這樣,表單將推出從 SharePoint 和不在 InfoPath 工作站用戶端.
  7. 回到正確的表單庫,然後按一下"新建" 只是驗證所需的表單是正確過帳和代理.
  8. 火了 SharePoint 設計器,然後導航到網站承載您的表單庫 (從步驟 2).
  9. 創建新的工作流附加到表單庫.
  10. 添加單個操作"在當前專案中設置欄位". 你應該期望 SharePoint 設計器向清單中你就是你的領域, "審核消息". 將它分配一個值.
  11. 按一下完成,返回到表單庫.
  12. 創建一個新表單和一些測試的值放入"審核消息" 欄位.
  13. 將其保存並返回到表單庫.
  14. 用滑鼠右鍵按一下, 選擇"工作流" 和您的工作流的啟動.
  15. 它應該幾乎立即運行. 拉起表單 (從步驟 12) 如果所有已經計畫, "審核消息" 已分配您在步驟中提供的任何值 10.

備註:

並非所有控制項都可以都配置為此雙向通信. 舉個例子, 它似乎並不執行修改文字欄位重複節包裹的 SPD 工作流.

其中一個關鍵去的這裡的是我們真的已經創建的內容類型與關聯的範本. 這也使我們能夠在相同的表單庫中存儲多個 InfoPath 表單範本.

這就要求表單伺服器. 它最肯定不去工作在 WSS 3.0 環境,甚至可能需要企業 SharePoint 環境.

小獵犬號登陸了 (10 月 2007 問題)

(這是實際上有點老新聞, 但我最喜歡的消防局作為座右銘宣告, "亡羊補牢").

看看這裡: http://www.sharepointbeagle.com/

如果你不是已經, be sure to sign up.

答案是肯定的, be sure to read 我的文章 關於真實世界的 SharePoint 專案 (包括需求定義, KPI 的, 內容類型, 儀表板和更多) 以及 my colleague’s 篇文章的內容查詢 web 部件.

There’s lot of other good stuff too.

如何刪除 “查看所有網站內容” 連結

有人問我這個問題幾乎每個星期, 通常在安全討論. 管理員/網站建立者已設置一個網站, 配置的安全, 被安排的 web 部件和自訂快速啟動向最終使用者提供的選項,所以完美集. 但, 外框, 您不能刪除"查看所有網站內容" 連結.

馬克瓦格納提供了答案 在這裡 (http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=36). 在兩個層面上,他撰寫太棒了. 它提供了對這個問題的答案, "如何刪除查看所有網站內容" 連結? 然後, 它回答的立即的後續問題: 如何方便地啟用所有網站內容都連結在網站的網站的基礎的視圖?

作為獎金: 他的做法適合 WSS, 不只是苔蘚.

</結束>

訂閱我的博客!

我自己的 CodePlex 專案: 工作流的 SharePoint 設計器擴展

更新: 在這裡看到 (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!310.entry) 在這個專案上的最新的.

我創建了一個 CodePlex 專案今天到泛型 SPD 介面的代碼,我在博客上寫的房子 在這裡 (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!275.entry).

看一看 在這裡 (http://www.codeplex.com/spdwfextensions) 請參閱 CodePlex 專案和輪胎的踢.

如果你和我一起工作對此感興趣, 開在一封電子郵件 mailto:galvin.paul@gmail.com

SharePoint 設計器 — 執行使用者定義的 C# 函數的自訂活動

更新: 這在這裡已發放到 CodePlex: http://www.codeplex.com/spdwfextensions

更新: 在這裡看到的最新版本說明: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!381.entry

更新: 在這裡看到的商業化這一專案的思考: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!569.entry

這個專案提供了在 SharePoint 設計器中的自訂活動. 使用此自訂活動調用 (調度) 你納入連結程式集任何 C# 函數.

從 10 月下旬起, 2007, 這只是專案的初始版本. 我打算擴大它與大量的附加功能, 包括的子字串, 索引, 替換, 調用 web 服務和任何看上去有用或有趣的東西. 我還打算把它張貼到 codeplex 一旦我對我的行為在一起那前面. 這也將是作為一種解決方案在某些點部署.

如果您有任何意見, 問題或建議, 請在評論中留下他們或電子郵件通知我.

免責聲明:

我讓絕對沒有要求以這為任何目的的適用性. 使用您自擔風險.

安裝步驟 (為伺服器場中的每個 WFE 遵循):

1. 下載.zip 和提取.

2. 到 gac 中安裝.DLL 檔案. 我通常打開 c:\windowsassembly 使用 windows 資源管理器和複製它那裡.

3. 修改 web.config 要將程式集添加到安全控制項:

<System.Workflow.ComponentModel.WorkflowCompiler>
<authorizedTypes>

<大會 authorizedType ="SpdGenericInterface, 版本 = 1.0.0.0, 文化 = 中性, Publickeytoken) = abe076fd8125f3c4" Namespace ="Nivlag" TypeName ="*" 授權 ="True" />

4. 複製"SpdGenericInterface.actions" 到 C:\程式必須使用 Sharedweb 伺服器 extensions12TEMPLATE1033Workflow

請注意上述地點是特定于英語語言安裝.

5. 關閉 SharePoint 設計器 (如果已經打開).

6. iisreset

7. 打開 SPD 並創建新的工作流.

如果一切進展順利, 你應該得到的報酬與一類新的行動:

圖像

備註:

請參閱 在這裡 (http://blogs.msdn.com/sharepointdesigner/archive/2007/03/15/adding-activities-to-spd.aspx) 對於創建的過程很棒概述, 安裝和配置一個像這樣的解決方案.

.Zip 旨在直接向您提取:\ 磁碟機. 如果你這樣做, 您可以打開該專案和所有路徑都將保持一致.

在 visual studio 中使用此, 您可能需要安裝"Windows WF 為擴展".

初始上載包含只是一個"調度程式功能", "ToLower()". 若要添加更多的功能, 將它添加到的 Execute 方法,如圖所示:

 受保護 重寫 ActivityExecutionStatus
          執行(ActivityExecutionCoNtext executionCoNtext)
        {

            字串 functionToDispatch;
            functionToDispatch = .DispatchFunction.ToLower();

            開關 (functionToDispatch)
            {
                案例 "tolower()":
                    {
                        .OutResult1 = .InParam1.ToLower();
                        休息;
                    }

                預設:
                    {
                        .OutResult1 = "未知的函數: [" + .DispatchFunction + "].";
                        休息;
                    }
            }

            返回 ActivityExecutionStatus.關閉;
        } // ActivityExecutionStatus

    }

然後, 重新生成專案並將程式集複製到 gac 中. 我期望 iisreset 將需要.

SPD 工作流的自訂操作 – 獲取 <WorkflowInfo> 標記權利,避免挫折

創建自訂操作為 SharePoint 設計器中涉及到的過程的一部分創建".actions" 檔.

我已經發現並試圖使用一個示例範本,作為啟動關閉:

<?xml 版本="1.0" 編碼="utf-8" ?>
<
WorkflowInfo xmlns="http://schemas.microsoft.com/sharepoint/">
<
行動 序貫="然後" 並行="">

不過, 那 xmlns 屬性防止我從工作的環境. 我的行為不會顯示在 SPD.

解決方法是去掉 xmlns 屬性, 做 iisreset 和關閉/重新-開 SPD.

快速和簡單: 配置 MOSS 搜索特定的文件庫

請參閱更新 (我) 下面 (11/24/07) 關於 如何配置 Microsoft Office SharePoint 伺服器 2007 索引和搜索爬網網路資料夾

目標: 我想要執行的搜索限制到特定的文件庫. 在此情況下, 文件庫中包含的培訓檔.

步驟:

1. 記錄在文件庫的 URL.

2. 創建一個範圍:

轉到中央行政管理.

SSP 的訪問.

轉到"搜索設置".

向下滾動到範圍部分中,選擇"查看範圍".

創建一個新的範圍. 給它一個名稱和有用的描述.

3. 定義範圍編目規則:

添加一個規則,定義此範圍的文件庫.

選擇"web 位址" "範圍規則類型".

請輸入您的資料夾的名稱 (請參閱 #1 以上).

接受預設值的"包含".

等待更新的範圍 (或手動啟動它).

4. 啟用網站集合中的範圍.

轉到網站集要使用此作用域.

將您的新範圍添加到適當的顯示組或組.

5. 搜索!

在這一點, 你完成. 假設範圍是正確定義, 它將提供範圍下拉欄簡單和高級的搜索和使用該範圍內搜索時, 你就會你期望的結果.

備註:

我寫這篇博客是因為我搜索的簡單範圍安裝程式出現乾燥使用短語喜歡:

  • 在 MOSS 中配置作用域
  • 配置搜尋範圍青苔
  • 在 sharepoint 中的作用域 2007
  • 在 sharepoint 中的作用域
  • 搜索文件庫青苔
  • 作用域底漆青苔

您可以在資料夾上創建一個搜尋範圍, 不只是整個文件庫.

範圍可以被共用跨多個網站集合 (因此, "共用的服務").

你可以在網站集級別本身創建範圍. 不過, 我更喜歡去中央管理,因為我可以從那裡開始爬網. 你不能從該網站集啟動爬網.

更新 (我) 作為的 11/24/07:

凱尚拼湊一篇精彩博文題為 如何配置 Microsoft Office SharePoint 伺服器 2007 索引和搜索爬網網路資料夾 @ http://kaishenghoo.spaces.live.com/blog/cns!8A7458DB12CA5AC9!206.entry

Technorati 標籤: , ,