2016年6月26日 星期日

OACV - How to use t-code:OACV to validate asset master field value

使用者需求常會要求防呆,而在 Asset Master 裡常會有需求像是在途不能有折舊年限,或是資產指定的 Cost Center 不能被 Block 等。

但如果寫在 USER EXIT - EXIT_SAPLAIST_003 時,又因為 User Exit 在每個動作都會觸發程式,影響 Performance,又加上要動態捉取畫面上欄位值增加處理的複雜度,因此可以考慮使用 OACV (C FI-AA View maint. validations) 進行 AS01/AS02 存檔時的卡控



FOR EXAMPLE:針對 Asset Class 00001* 的資產,設定其折舊區域在 01, 02 時,其 Use Life 不能為空白,如果是空白要顯示異常不能存檔

使用時先進入 OACV 畫面,選擇 Validation 功能

在 Validation 的畫面建立自己的 ZAMCHK1 的驗證能,目前預設不做權限的卡控

可在 STEP 中看到目前設定的條件
Prerequiste : 當 Asset Class 是 00001*,且 Depreciation Area 在 01/02,且是 T-Code : AS01/AS02 時
Check : 判斷 Use Life 不能為 000
Message : 當 Check 不符合時顯示 Error Message

Prerequisite:接下來在 Prerequisite 設定哪些資料是我要處理的內容,選擇要判斷的 Table Fields 雙擊 ALNB

選擇要判斷的欄位,以及對應的條件,如 (, LIKE, = 等組合下面的語法)

CHECK : 在此輸入的是 Prerequisite 符合的資料,必需要符合的條件,如下表示 Use Life 不能為 000,也就是說如果你的 Use Life = 000,則進觸發 Message

Message:當不符合時要顯示的訊息,可設定 Error, Warning or Information


接下來回到前一個畫面,選擇 New Entries
Company Code : 2
FGTab : B - Dep. areas (Table ANLB) 指針對在折舊的 Tab or 一般資產的 Table
Log.Fld.Gr : 1 - General specifications
選擇 Active 後即可啟動卡控

由上面的簡單例子可以看出透過 OACV 設定的方式,即可進行主檔存檔的卡控。


但如果像 Cost Center 不能被 Block 的條件,上面的功能則無法使用,此時必需要寫 Code 才能進行,這樣的情況就必需使用到 OACV 的 USER EXIT 功能,點選目前的 Techn. Name 後,按下右方 ABAP Routine Button

將程式碼寫在指定的 Form 內,如下面說明,要捉取 ANLZ 中的 Cost Center 判斷是否有 Locked

接下來把上面的程式放在 Check 裡,直接選 u100

在進到 Time-dependent 的頁面時即可進入卡控

U100 的觸發時機是在 Time-dependent 離開時,而程式可以透過 b_Result 回轉 T or F 決定是否 ok,F 的話就會進到 Message 設定的訊息,或是用 Error Message 直接卡死,其他 Exit 在此就不在說明

另外 T-Code:GGB0 還可以設定其他 SAP 相關 Validation,有機會再進行介紹

沒有留言:

張貼留言

How to install & specified python version or distreibtuion package version in google colab

在買了 RTX 3080 要來 挖礦...  嗯~是跑機器學習後,結果發現了 GOOGLE COLAB,其實之前在「GAN 對抗式生成網路」一書就有看到,但資訊人就是什麼都想自己安裝,在本機用 Anaconda + pyCharm 弄了 GPU 環境,結果有天從新竹回家發現家裡沒...