六、K3 WISEは、「Updateフィールド・レベルの更新トリガーを - 抗BOS単一ソース単一の監査を書いた後、」プラグインを開発します

成功の監査トリガは、典型的なシーンです。あなたは承認ステータスの変更を追跡し、更新トリガーを使用する必要があります。

BOS購入点検カスタム文書で、「抗購入検査、監査書込レシート通知後の」参照元。

(OBJECT_ID( 'bobang_tgr_check_update'、 'TR')がNULLではない)のIF 
    トリガbobang_tgr_check_updateドロップ
行く
トリガーcl_tgr_check_updateを作成
ON bobang_bos_check 
更新した後
、ASは
DECLARE @FID int型
@FMultiCheckStatus VARCHARを宣言(100)
@FAuxQtyPassフロートを宣言-資格の数
宣言を@FQtyPassフロート-資格の数の基本単位
失敗の数-宣言@FAuxNotPassQtyフロート
失敗の数の基本単位-宣言@FNotPassQtyフロート
宣言@FAuxConPassQtyフロート-譲歩の数
宣言@FConPassQtyフロート-譲歩の基本単位受信機の数には
@FID_Srcを宣言しますBIGINT -単一ソースIDは
@FEntryID_SRCのBIGINTを宣言- FEntryID単一ソース

FIDを選択しFIDする@、@ = FMultiCheckStatus FMultiCheckStatusを= 
挿入から

-审核时
更新(FMultiCheckStatus)IFおよびFMultiCheckStatus @ = 16が
始まる
    ためMyCursorとカーソル宣言
    選択FAuxPassQty、FPassQty、FAuxUnPassQty、FUnPassQty、FAuxConcessQty、FConcessQty、FID_Src、FEntryID_Srcを
    FID = @ FID bobang_bos_checkentryから
    オープンMyCursorとは   
    次MyCursorとからフェッチ
    @にFEntryID_SRC @ FAuxQtyPass、@ FQtyPass、@ FAuxNotPassQty、@ FNotPassQty、@ FAuxConPassQty、@ FConPassQty、@ FID_Src、
    (@@ FETCH_STATUS = 0)しながら、
    開始
        更新T1 
        t1.FAuxQtyPass = t1.FAuxQtyPass + ISNULL(@ FAuxQtyPass、0)に設定し、
        t1.FQtyPass = t1.FQtyPass + ISNULL(@ FQtyPass、0)、 
        t1.FAuxNotPassQty = t1.FAuxNotPassQty + ISNULL(@ FAuxNotPassQty、0)、
        t1.FNotPassQty = t1.FNotPassQty + ISNULL(FNotPassQty @、0)、
        t1.FAuxConPassQty = t1.FAuxConPassQty + ISNULL(FAuxConPassQty @、0)、
        t1.FConPassQty = t1.FConPassQty + ISNULL(@ FConPassQty、0)
        POInStockEntry t1から
        左t1.FInterID = t2.FInterIDにPOInStock T2に参加
        t1.FInterID=@FID_Srcとt1.FEntryID=@FEntryID_SRC場所
        とt2.FTranType = 72 
    次MyCursorとからフェッチ
    @ FAuxQtyPass、@ FQtyPass、@ FAuxNotPassQty、@ FNotPassQty、@にFAuxConPassQty、@ FConPassQty、@ FID_Src、@ FEntryID_SRCの
    終わり
    近くにMyCursorとの
    DEALLOCATEのMyCursorとの
終了 
宣言@isRuKu int型
 
驳回前检查-
@isTuiLiao INTを宣言する
更新(FMultiCheckStatus)と@ FMultiCheckStatus = 4の場合の
開始
    のためにMyCursorとカーソル宣言
    選択FAuxPassQty、FPassQty、FAuxUnPassQty、FUnPassQty、FAuxConcessQty、FConcessQty、FID_Src、FEntryID_Srcを
    FIDは= FID @ bobang_bos_checkentryから
    オープンMyCursorと   
    次MyCursorとからフェッチ
    @にFAuxQtyPass、@ FQtyPass、@ FAuxNotPassQty、@ FNotPassQty、@ FAuxConPassQty、@ FConPassQty、@ FID_Src、@ FEntryID_SRC 
    一方(@@ FETCH_STATUS = 0)
    開始
        isTuiLiao = COUNT(*)POInStockEntryから@選択
        FSourceTrantype = 72とFSourceInterId = @ FID_SrcそしてFSourceEntryID = @ FEntryID_SRC 
        @isTuiLiao> 0であれば
        始まります 
            RAISERROR( '已下推退料通知单、不能反审核!'、16,1)
            ロールバック・トラン     
        終了
        
        ICStockBillEntryからisRuKu = COUNT(*)@選択
        FSourceTrantypeは= 72とFSourceInterId = @ FID_SrcとFSourceEntryID = @ FEntryID_SRC 
        @isTuiLiao> 0であれば
        始まる
            ( '已下推外购入库单、不能反审核!' RAISERRORを、16,1)
            ロールバックTRANの     
        端部は、
        
    次MyCursorとからフェッチ
    @ FAuxQtyPass、@ FQtyPass、@ FAuxNotPassQty、@ FNotPassQty、@ FAuxConPassQty、@ FConPassQty、@ FID_Src、@ FEntryID_SRCの内
    近くMyCursorとの
    DEALLOCATE MyCursorと
終了 
始める
    ためMyCursorとカーソルを宣言
 
-最初に却下します
アップデート(FMultiCheckStatus)場合と@ FMultiCheckStatus = 2 
    FAuxPassQty、FPassQty、FAuxUnPassQty、FUnPassQty、FAuxConcessQty、FConcessQty、FID_Src、FEntryID_Src選択
    FID = @ FID bobang_bos_checkentryから
    オープンMyCursorとは   
    次MyCursorとからフェッチ
    @ FAuxQtyPass、@ FQtyPass、@ FAuxNotPassQty、@へのFNotPassQty、@ FAuxConPassQty、@ FConPassQty、@ FID_Srcは、FEntryID_SRC @ 
    (@@ FETCH_STATUS = 0)しながら、
    開始
        更新T1 
        t1.FAuxQtyPass = t1.FAuxQtyPass-ISNULLセット(@ FAuxQtyPass、0)、
        t1.FQtyPass = t1.FQtyPass、ISNULL (FQtyPass @、0)、
        t1.FAuxNotPassQty = t1.FAuxNotPassQty-ISNULL(FAuxNotPassQty @、0)、
        t1.FNotPassQty = t1.FNotPassQty-ISNULL(FNotPassQty @、0)、 
        t1.FAuxConPassQty = t1.FAuxConPassQty-ISNULL(@ FAuxConPassQty、0)、
        t1.FConPassQty = t1.FConPassQty-ISNULL(FConPassQty @、0)
        POInStockEntryさt1から
        t1.FInterID = t2.FInterIDにPOInStock T2に参加左
        ここt1.FInterID=@FID_Srcとt1.FEntryID=@FEntryID_SRC 
        とt2.FTranType = 72 
    次のMyCursorとからフェッチ
    FEntryID_SRCの@、@ FAuxQtyPass、@ FQtyPass、@ FAuxNotPassQty、@ FNotPassQty、@ FAuxConPassQty、@ FConPassQty、@ FID_Srcに
    終わり
    近くにMyCursorとの
    DEALLOCATE MyCursorと
終了

 

おすすめ

転載: www.cnblogs.com/zhugq02/p/11236679.html