SharePoint:擴充DVWP – 第10部分:在表單操作工作流程中傳遞工作流程變數

來源:互聯網
上載者:User
文章目錄
  • 表單操作

在前面的四篇博文中,我們討論了如何從資料檢視webpart(DVWP)的表單操作鏈結接中建立一個工作流程。繼續這一話題,我們已經掌握了如何傳遞表單域到工作流程,這一技巧本身確實已經很強大了。但是,如果你需要傳遞該表單中包含的更多的資訊到工作流程時怎麼做?

這裡有一個此類應用。

表單操作

記住,通過一個嚮導修改過的表單操作中會按照嚮導中排列的順序以JavaScript調用的方式體現在該連結的HREF屬性中。

1、通過右擊連結,並在操作功能表中選擇“表單操作...”來運行表單操作嚮導(從編輯模板)。

2、為了運行/建立一個工作流程,需要添加一個[自訂動作]並點擊設定。

3、點擊“變數”按鈕

我們必須在將要接收我們傳遞的資料的工作流程中建立一個變數。

4、點擊“添加...”按鈕

5、為我們的變數填寫名稱和類型

不論你設定為什麼類型,工作流程都會將類型轉換成字串。(更多細節會在將來的博文中討論。)

6、為該工作流程建立的變數都可以通過“工作流程資料”進行訪問。下面我們將討論如何傳遞資料到這些已經建立好的變數中,並在我們的工作流程中使用該資料。

7、讓我們在看一下在建立完工作流程後表單操作鏈結接的HREF中的JavaScript調用:

之後

<a href="javascript: {ddwrt:GenFireServerEvent(concat('__workflowStart={{A50B3A56-0C82-43E3-917E-D37E2E036F3B},New,{F6244C84-AAE5-45E0-9C71-60F6AB31F584},ff1_x007b__x0024_Pos_x007d_={ff1',$Pos,'}*ff2_x007b__x0024_Pos_x007d_={ff2',$Pos,'}*ff3_x007b__x0024_Pos_x007d_={ff3',$Pos,'}*ff4_x007b__x0024_Pos_x007d_={ff4',$Pos,'}*ff5_x007b__x0024_Pos_x007d_={ff5',$Pos,'}*ff6_x007b__x0024_Pos_x007d_={ff6',$Pos,'}*ff7_x007b__x0024_Pos_x007d_={ff7',$Pos,'}*};__commit'))}">儲存檔案</a>

我們在前面兩篇博文中詳細討論了這塊代碼的文法。這一次,我們只看一下__workflowStart函數的第四個參數。

還記得嗎,第四個參數如下所示:

ff1_x007b__x0024_Pos_x007d_={ff1',$Pos,'}*ff2_x007b__x0024_Pos_x007d_={ff2',$Pos,'}*ff3_x007b__x0024_Pos_x007d_={ff3',$Pos,'}*ff4_x007b__x0024_Pos_x007d_={ff4',$Pos,'}*ff5_x007b__x0024_Pos_x007d_={ff5',$Pos,'}*ff6_x007b__x0024_Pos_x007d_={ff6',$Pos,'}*ff7_x007b__x0024_Pos_x007d_={ff7',$Pos,'}*

工作流程變數 - 在上面的代碼中所有的變數都是自動添加的,以便我們可以訪問表單域的值。幸運的是,我們可以使用相同的文法添加任何我們需要的欄位。

比如,如果我們需要傳遞一個字串如“Insert”,以便我們可以寫一條審計跟蹤資訊,我們可以簡單的添加myVar=Insert*到該名值對列表,這樣就可以通過工作流程資料以myVar的形式訪問該值了。

所以,想要添加我們的變數時,可以簡單的添加名/值對到末尾:

ff1_x007b__x0024_Pos_x007d_={ff1',$Pos,'}*ff2_x007b__x0024_Pos_x007d_={ff2',$Pos,'}*ff3_x007b__x0024_Pos_x007d_={ff3',$Pos,'}*ff4_x007b__x0024_Pos_x007d_={ff4',$Pos,'}*ff5_x007b__x0024_Pos_x007d_={ff5',$Pos,'}*ff6_x007b__x0024_Pos_x007d_={ff6',$Pos,'}*ff7_x007b__x0024_Pos_x007d_={ff7',$Pos,'}*myVar=Insert*

由於這是一個很大的由星號分隔(事實上是終止)的字串,所以不要在兩邊用引號引起來。換句話說,如果你希望myVar的值中包含一個空格(如"New Item"),星號是該字串的結束符,所以可以這樣寫:

…*myVar=New Item*

注意:星號(*)與其說是一個分隔字元,倒不如說是終止符更加貼切。換句話說,它並不是用來分隔資料,實際上它標誌著每一個名/值對的結束。這也正是為什麼最後會以星號結束,而不是只出現在兩個名/值對之間。所以,不要忘記最後的星號

 

下一次:為什麼不是所有的欄位都出現在表單域中?接下來的擴充DVWP系列中我們將對此進行詳細討論。

 

參考資料


SharePoint: Extending the DVWP – Part 10: Passing Workflow Variables to a Form Action Workflow

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.