SBO中流程控制功能的实现-SBO_SP_TransactionNotification
生活随笔
收集整理的這篇文章主要介紹了
SBO中流程控制功能的实现-SBO_SP_TransactionNotification
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
大家打開sqlserver的查詢分析器,打開SBO的一個公司數據庫,查找一個存儲過程:SBO_SP_TransactionNotification?<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 它就是讓我們得以控制SBO的魅力所在! ALTER??proc?SBO_SP_TransactionNotification? @object_type?nvarchar(25),?????????????????????????????????--?SBO?Object?Type @transaction_type?nchar(1),????????????????????????--?[A]dd,?pdate,?[D]elete,?[C]ancel,?C[L]ose @num_of_cols_in_key?int, @list_of_key_cols_tab_del?nvarchar(255), @list_of_cols_val_tab_del?nvarchar(255) AS begin --?Return?values declare?@error??int????????????????????????????????--?Result?(0?for?no?error) declare?@error_message?nvarchar?(200)?????????????????--?Error?string?to?be?displayed select?@error?=?0 select?@error_message?=?N'Ok' -------------------------------------------------------------------------------------------------------------------------------- --????????ADD????????YOUR????????CODE????????HERE -------------------------------------------------------------------------------------------------------------------------------- --?Select?the?return?values select?@error,?@error_message end 這個存儲過程的作用就是任何一個SBO對象操作完程前都會調用它一次。以便我們加入我們的邏輯控制來實現一些客戶的特殊要求。 我們來看一下他的參數: 第一個參數:@object_type?是SBO對象的編號。如何獲得這個編號呢?進入SBO系統,單擊“視圖”-》“系統信息”,然后“主菜單”-》“模塊”-》打開你想用的模塊,例如“收貨采購訂單”,等等。以“收貨采購訂單”為例,將鼠標放到供應商的輸入框,從SBO消息欄里獲取信息“Form=143,Item=4,Variable=1,OPDN,CardCode”,其中OPDN就是主表,啟動查詢分析器,在查詢里輸入"select?ObjType from OPDN",得到的值就是@object_type,本例中是20,至此得到SBO對象的編號。?每一個對象執行Add,?pdate,?[D]elete,?[C]ancel,?C[L]ose操作時都會把操作的對象編號在這個參數中傳入,我們只要判斷該參數即可實現對不同的對象的不同的控制。我后邊會給大家提供一些練習。 第二個參數:@transaction_type?nchar(1),????????????????????????--?[A]dd,?pdate,?[D]elete,?[C]ancel,?C[L]ose 當在SBO系統中執行了添加操作,例如添加了一個物料主數據,@object_type的值就等于4,@transaction_type的值就等于'A'?。 第三個參數:@num_of_cols_in_key,對象關鍵字段的數目。例如物料主數據的關鍵字段是物料編碼,他只有一個關鍵字,所以該值等于1。 第四個參數:@list_of_key_cols_tab_del??代表該對象的關鍵字段的字段名字,例如物料主數據就是Itemcode,單據就是Docentry. 第五個參數:@list_of_key_cols_tab_del??代表關鍵字段的值。這時已非常重要的參數。我再次說明一點,經過我測試,SBO的對象再添加修改時會現在數據庫里操作完成,然后調用該存儲過程。所以我們就靠這個字段來作為驗證控制我們的邏輯的入口之一了。 ???在以上介紹的五個參數之中,最重要的就是@object_type,@transaction_type,@list_of_cols_val_tab_del這三個參數。大家一定要明白他們的含義! 內部的兩個重要控制參數: @error?,好了,揭示了這么多,就數他最重要了。計算機世界的0和1就讓他體現的淋漓盡致了。當我么給它賦值為零的時候,SBO的流程繼續運行。一旦我們給他賦值為1,好了,效果出現了,你在sbo中操作的對象就再也不能完成它的操作了!牛!就是這個牛的地方可以讓我們收拾SBO任何的對象,可以按客戶的心花讓SBO盡情的怒放。 當然我們經過我們自己的邏輯,把?@error?=1,不然SBO按自己的邏輯繼續下去了,總也得在SBO中給出個提示把,就像B1的狀態欄的提示一樣,那您就要動用@error_message這個參數了。200個字符盡情地表述您的一肚子邏輯的解釋吧,幽默也好,冷冰冰也罷!
轉載于:https://blog.51cto.com/wubing/90270
總結
以上是生活随笔為你收集整理的SBO中流程控制功能的实现-SBO_SP_TransactionNotification的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图文并茂——使用xfire编写webse
- 下一篇: Import和Assembly