最近幾天,SAP S4 2020對應的ABAP 7.55的新版檔案已經出現,本文翻譯了ABAP SQL之外的更新部分,ABAP SQL的更新比較長,會再之后單獨成篇,
譯者水平有限,如有錯誤,請評論指出,謝謝,
本文鏈接:https://www.cnblogs.com/hhelibeb/p/13830356.html
轉載請注明
ABAP 7.5 學習群的notion頁面鏈接:https://www.notion.so/hhelibeb/ABAP-7-55-f20c8129277a45ca8276278d9dfae25cData Types
1. Indicator structures
TYPES陳述句有了新的附加選項[INDICATORS],可以為給定的結構型別定義一個indicator structure子結構,indicator structure可以在ABAP SQL讀寫陳述句中用作ABAP SQL indicator,
-
示例代碼,注意<wa>-ind-price指定了需要更新的欄位,這類似于BAPI中的DATAX欄位,
TYPES wa TYPE sflight WITH INDICATORS ind. DATA itab TYPE TABLE OF wa WITH EMPTY KEY. SELECT carrid, connid, fldate, price FROM sflight WHERE carrid = char`LH` AND connid = numc`0400` AND fldate = @sy-datum INTO CORRESPONDING FIELDS OF TABLE @itab. IF sy-subrc = 0. LOOP AT itab ASSIGNING FIELD-SYMBOL(<wa>). <wa>-price *= '0.8'. <wa>-ind-price = '01'. ENDLOOP. UPDATE sflight FROM TABLE @itab INDICATORS SET STRUCTURE ind. ENDIF.
資料字典
1. Name Table的內部處理
name table (nametab)用于存盤有著資料字典型別的運行期物件,name table會持久化存盤在native資料庫表DDNTT和DDNTF中,
在新版本中,它的內部處理發生了變化,
- 結果是:
- 不能再使用ABAP內部陳述句
EXPORT NAMETAB,使用它會導致運行期錯誤, - 考慮到向下兼容性,
IMPORT NAMETAB依然得到了部分支持,訪問DDIC Table型別會導致運行期錯誤,其它訪問會導致ATC錯誤, - 先前用于存盤欄位描述的的native資料庫表DDNTF會被洗掉,不再得到支持,
- 不能再使用ABAP內部陳述句
原始鏈接:https://help.sap.com/doc/abapdocu_755_index_htm/7.55/en-US/index.htm?file=abennews-755-ddic.htm
ABAP CDS
1. 在projection視圖中定義association
現在可以在projection視圖中定義到外部資料源的association了,
2. CDS view entities
新的CDS視圖型別:CDS view entities,
CDS view entities是CDS DDIC-based views (DEFINE VIEW)的增強,它們服務于相同的目的,有同樣的結構,但是提供不同的優點,
計劃在未來使用CDS view entities代替CDS DDIC-based views,使用DEFINE VIEW ENTITY定義CDS view entities,
原始鏈接:https://help.sap.com/doc/abapdocu_755_index_htm/7.55/en-US/index.htm?file=abennews-755-abap_cds.htm
Sessions
1. ABAP sessions的數量
組態檔引數rdisp/max_alt_modes決定了每個用戶的最大ABAP sessions數量,它的默認值已經從6增大為16,16也是系統允許設定的最大值,
原始鏈接:https://help.sap.com/doc/abapdocu_755_index_htm/7.55/en-US/index.htm?file=abennews-755-abap_sessions.htm
運算式和函式
1. 構造運算子REDUCE中的計算賦值
在建構式運算子REDUCE的加法NEXT后面的賦值中,現在可以使用計算賦值運算子=、=、*=、/或&&=,并且適用各自的規則,
原始鏈接:https://help.sap.com/doc/abapdocu_755_index_htm/7.55/en-US/index.htm?file=abennews-755-expressions.htm
字符處理
1. 支持Perl兼容正則
除了現有的對POSIX正則的支持,現在ABAP支持PCRE正則,通過PCRE2庫進行處理,這是在ABAP Kernel實作的,可以通過和使用POSIX正則一樣的方式使用PCRE正則,
- 區分方式是:
相比POSIX正則,PCRE正則更加強大,也有著更好的性能,更多資訊,參考Regular Expressions.
2. 逐字替換
REPLACE陳述句的新附加項VERBATIM可以使替換字串的所有字符按字面使用,通過此附加項,正則運算式字串將不會有特殊意義,
- 例子,其中2與3有同樣的效果,但
VERBATIM的性能更好,
DATA(text1) = `123XXX456`. DATA(text2) = text1. DATA(text3) = text1. DATA(regex) = `(\d*)(\D*)(\d*)`. REPLACE PCRE regex IN text1 WITH `$1___$3`. REPLACE PCRE regex IN text2 WITH `$1___$3` VERBATIM. REPLACE PCRE regex IN text3 WITH `\$1___\$3`. cl_demo_output=>display( |{ text1 }\n{ text2 }\n{ text3 }| ).
3. 新的可捕捉例外CX_SY_STRING_SIZE_TOO_LARGE
過去,導致string超過最大長度的操作總是會導致運行期錯誤STRING_SIZE_TOO_LARGE,現在,會觸發可以處理的例外CX_SY_STRING_SIZE_TOO_LARGE,
在條件滿足的情況下,對于陳述句CALL TRANSFORMATION,也可以處理該例外,
4. 用于decimal floating point number的金額格式化選項
現在,
WRITE TO和WRITE陳述句的CURRENCY附加項- 在string template中的格式化選項CURRENCY
也可以用于decimal floating point number,
原始鏈接:https://help.sap.com/doc/abapdocu_755_index_htm/7.55/en-US/index.htm?file=abennews-755-strings.htm
ABAP CDS訪問控制
待施工
原始鏈接:https://help.sap.com/doc/abapdocu_755_index_htm/7.55/en-US/index.htm?file=abennews-755-cds_access_control.htm
例外處理
1. 宣告CX_NO_CHECK例外
CX_NO_CHECK類別的例外現在總是在介面中被隱式地宣告,并且總是被傳播,
現在也可以在程式介面中通過RASING宣告CX_NO_CHECK例外,比如對于methods,這樣就可以記錄可能出現的這種例外,以及將現有例外的類別更改為CX_NO_CHECK,而不導致介面的語法錯誤,
原始鏈接:https://help.sap.com/doc/abapdocu_755_index_htm/7.55/en-US/index.htm?file=abennews-755-exceptions.htm
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/175756.html
標籤:SAP
