在開發中,某段代碼運行可能需要滿足某個條件,通常解決辦法有兩種:一種是在代碼中寫死限制條件,此種方式當限制條件變化時需要修改代碼;另一種辦法則是自定義數據表,將限制條件值保存在表中,當程序運行時,可以直接從表中讀取條件值作為控制條件,這樣比較靈活,就像Java開發中的屬性配置文件一樣,但我們不需要手動創建這樣的參數表,SAP已為我們提供了這樣的工具,可以通過該工具更靈活地將數據維護到一個層次結構
數據集必須參考某個數據庫表的具體某個字段,一般參考某一字段建立一個相關的數據集,稱為基本組,也可以將多個基本組合並到一個單維集,多個單維集則可以分配到同一個多重組中來實現統一管理。
參考VBAK-AUART字段
可以維護多個值,值還可以是范圍、公式、變量:
另外,還可以配置下級數據集:
配置完后,可以查看層次結構:
數據集實際上是保存在表SETLEAF中,以集的名稱及行號作為關鍵字,字段SETNAME為集的名稱,LINEID即為行號,上面配置的數據集在表中如下:
數據集與數據集之單的關系存儲在 SETNOD 表中:
通過ABAP程序,可以將信中所維護的值讀取到RANGE類型的內表中,作為查詢條件:
TABLES: vbak.
ranges:lt_auart for vbak-auart OCCURS 0.
select valsign valoption valfrom valto
INTO table lt_auart
from setleaf
WHERE setname LIKE 'ZD_AUART'.
LOOP AT lt_auart .
WRITE:/ lt_auart-sign , lt_auart-option ,lt_auart-low ,lt_auart-high .
ENDLOOP.