成功の監査トリガは、典型的なシーンです。あなたは承認ステータスの変更を追跡し、更新トリガーを使用する必要があります。
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と 終了