ABAP數據字典中的參考表和參考字段的作用 大家最初在SE11中創建表和結構的時候都會遇到一個問題,如果設定了某個字段為QUAN或者CURR類型,也就是數量或金額的時候,總會要求輸入一個參考表...
大家最初在 SE11 中創建表和結構的時候都會遇到一個問題,如果設定了某個字段為 QUAN 或者 CURR 類型,也就是數量或金額的時候,總會要求輸入一個參考表和參考字段,它是做什么用的呢?
這要從數字的本質說起,大家都知道一句話“數字會說話”,但是,商業數字不是代數,一個沒有沒有單位的商業數字,是不會說話的,就算說,也是瞎話。比如大家都看過的賀歲片《非誠勿擾》,葛優和范偉對那個偉大的划時代發明“分歧終端機”剛達成了200萬的協議,馬上就冒出來美元和英鎊的分歧——數字是會被誤讀的。
SAP 可不會讓這樣的事情發生,對於數量和金額,SAP 要求必須指定單位,這個單位就是由參考表和參考字段來指定的。這樣,在運行時,ABAP 運行時環境就可以准確獲得這個數字的單位,從而確保誰看到這個數字都不會誇大或縮小。
知道了為什么,接下來就是解釋怎么做。
對於數據庫表來說:
1、參考表是當前表的情況最好解釋,某條記錄中的數量的單位就是它的參考字段所包含的值,比如 MARA 等主數據表里就是這樣;
2、如果參考表是另外一個表,則原則上當前表中應該有一個字段將參考表做為外鍵表來使用,這樣,某條記錄中的數量的單位就是該記錄的外鍵字段的值在參考表中對應的參考字段的值,比如 T031 這個表就是這樣;
3、最不可理解的是字段的參考表也不是外鍵表,我完全不明白它的數值怎么跟單位對應起來,也許是程序控制?這需要 SAP 解釋了。這樣的例子也有很多,比如 STPO。
對於結構來說:
情況與上面類似,但是更多都是第三種無法解釋的定義。