1. 程式人生 > >SAP_ABAP_GS01/GS02/GS03資料集_引數(條件表)靈活配置GS01/GS02/GS03

SAP_ABAP_GS01/GS02/GS03資料集_引數(條件表)靈活配置GS01/GS02/GS03

在開發中,某段程式碼執行可能需要滿足某個條件,通常解決辦法有兩種:一種是在程式碼中寫死限制條件,此種方式當限制條件變化時需要修改程式碼;另一種辦法則是自定義資料表,將限制條件值儲存在表中,當程式執行時,可以直接從表中讀取條件值作為控制條件,這樣比較靈活,就像Java開發中的屬性配置檔案一樣,但我們不需要手動建立這樣的引數表,SAP已為我們提供了這樣的工具,可以通過該工具更靈活地將資料維護到一個層次結構

image186

資料集必須參考某個資料庫表的具體某個欄位,一般參考某一欄位建立一個相關的資料集,稱為基本組,也可以將多個基本組合併到一個單維集,多個單維集則可以分配到同一個多重組中來實現統一管理。

參考VBAK-AUART欄位

image187

可以維護多個值,值還可以是範圍、公式、變數:

image188

另外,還可以配置下級資料集:

image189

image190

image191

image192

配置完後,可以檢視層次結構:

image193

資料集實際上是儲存在表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.

image196