2008年4月20日 星期日

修正安裝 Moss 2007 SDK後 Workflow 的 Code Snippet 無法使用的技巧

想要使用VS 2005開發Moss的Workflow,可以安裝SharePoint Server 2007 SDK: Software Development Kit,並且使用其所提供的專案樣板來設計。當建立流程專案之後,在專案的DeploymentFiles\FeatureFiles資料夾中會預設包含以後要部署為Feature的兩份文件,打開feature.xml來看,還有提供透過Code Snippet快速設定Feature範本的步驟ㄝ,看起來功能真的不錯!!FixingWorkflowSnippet01

但是當Adams依照步驟,真的想要使用Code Snippet時,卻發現feature.xml和workflow.xml這兩個檔案所提供的Code Snippet預設都無法Work,如下圖所示,阿咧~只有幾段簡單的鳥程式可以用?? 難道又被「呼ㄌㄨㄥ」了~大哥別鬧了,Orz(微軟阿,你總是那麼容易的欺騙倫家的感情~喵~~嗚~~~~>_<~~~)
FixingWorkflowSnippet02

根據亞當斯的研究,其實安裝完 Moss 2007 SDK後在C:\Program Files\Microsoft Visual Studio 8\Xml\1033\Snippets\SharePoint Server Workflow資料夾下會有5個Snippet可以用,分別是:

  • elementfile.snippet
  • feature.snippet
  • modificationform.snippet
  • taskform.snippet
  • workflowtemp.snippet

因此亞當斯判斷應該是安裝的過程與VS 2005整合時有小Bug,所以導致無法在VS 2005中正常使用,所以解決技巧就是只要打開VS 2005的程式碼片段管理員(快速鍵為:Ctrl + K + B),語言先選擇XML,再點選「加入」,路徑直接指到C:\Program Files\Microsoft Visual Studio 8\Xml\1033\Snippets\SharePoint Server Workflow,將這個Code Snippet加入即可。FixingWorkflowSnippet05

這樣一來,就可以輕鬆的享用Workflow Code Snippet 所帶來的便利囉!
多說無益,馬上來試試看, 亞當斯試著在featuer.xml使用區段程式碼,發現真的可以挑選程式區段唷!FixingWorkflowSnippet06

透過Moss Workflow Code Snippet 產生出來的程式Feature設定如下,淡綠色的地方就是可以自訂修改的地方,其他部分則不需要修改,果然是好用的Code Snippet,像是Workflow.xml也就比照辦理囉。來人阿~有事快奏~無事退朝!^^
FixingWorkflowSnippet07

9 則留言:

米米貓學開發 提到...

不是有人書k不完了,還有空寫blog...
挑錯誤魔人說: 請正名,不要再以訛傳訛
是Visual Studio 2005 不是Visual Studio.NET 2005

亞當斯(Adams) 提到...

這篇是禮拜六上MOSS課的時候,順便寫的!
以後我都簡寫vs2005和vs2008好了,Winform的新控制項真多阿,K好久啊!!~><~

Unknown 提到...

老師:
請問一下 在dataformwebpart中如果使用autopostback,因為我在spd中沒有看到這個屬性?
如果我想在dataformwebpart中設計二個dorpdownlist 第一個選擇時第二個會根據第一個來更新相對應的資料,這樣的功能有什麼比較好的方式來做,謝謝您的回答。

亞當斯(Adams) 提到...

Alan:這個問題我也有請教過屠老師了,他說他的書就有寫了ㄝ,他說看來是你還沒K完唷!呵呵~所以你就先看一下屠老師的那本書吧!答案都在裡面,CCC

Unknown 提到...

謝謝老師的協助
我的問題跟書上的有點不太一樣,因為使用spd中的新增項目表單,所產生出來的是SharePoint的FormField控制項,所以不太清楚FormField所產生出來的dropdownlist要怎麼相互連動?

匿名 提到...

我來了!
果然沒看耶!
在第三集的543-550頁,說明了如何使用sharepoint dataform field的下拉式控制項,並配合url字串查詢方式來取得下拉控制項中的資料項目,雖然例子只有一個欄位,但是透過url字串查詢參數,可以設定兩個、三個至多個字串查詢參數,所以如果要作一個、兩個、三個具有相關的下拉式控制項資料項目內容,都可以透過資料篩選方式來取得!

Unknown 提到...

老師我太笨了 還是研究不出來 我看try try 看
分享一下如何顯示unknown error
把C:\inetpub\wwwroot\wss\VirtualDirectories\80下的web.config中
下面這三個修改一下就好了
safemode callstack="false" 改成 CallStack="true"
customerrors mode="On" to mode="Off"
compilation batch="false" debug="false" to batch="true" debug="true"

Unknown 提到...

老師:
請問一下,如何在自已寫的aspx網頁中使用sharepoint 的Master page

匿名 提到...

老師您好~
之前上過您.net的課,但知您也專精於MOSS,想請教關於在建立工作流程時發生的問題:
我在清單中建立了一個工作流程,設定為當新的項目建立時,自動啟用此工作流程,但當我新增項目時卻沒有執行工作流程,當手動啟用工作流程時才執行我所設定的內容,這個問題可以在哪個設定做修正嗎?因我曾試過新增項目時會啟用的,所以懷疑某個設定被我動到了,謝謝。