最近幾天,SAP S4 2020對應的ABAP 7.55的新版文檔已經出現。本文翻譯了ABAP SQL以外的更新部分。ABAP SQL的更新比較長,會在以後單獨成篇。html
譯者水平有限,若有錯誤,請評論指出,謝謝。正則表達式
本文連接:http://www.javashuo.com/article/p-nsfthqwx-nu.htmlsql
轉載請註明數據庫
TYPES
語句有了新的附加選項[INDICATORS]
,能夠爲給定的結構類型定義一個indicator structure子結構。indicator structure能夠在ABAP SQL讀寫語句中用做ABAP SQL indicator。express
示例代碼,注意<wa>-ind-price指定了須要更新的字段。這相似於BAPI中的DATAX字段。session
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.
name table (nametab)用於存儲有着數據字典類型的運行期對象。name table會持久化存儲在native數據庫表DDNTT和DDNTF中。函數
在新版本中,它的內部處理髮生了變化。性能
EXPORT NAMETAB
,使用它會致使運行期錯誤。IMPORT NAMETAB
依然獲得了部分支持。訪問DDIC Table類型會致使運行期錯誤。其它訪問會致使ATC錯誤。
原始連接:https://help.sap.com/doc/abapdocu_755_index_htm/7.55/en-US/index.htm?file=abennews-755-ddic.htm學習
如今能夠在projection視圖中定義到外部數據源的association了。spa
新的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
配置文件參數rdisp/max_alt_modes
決定了每一個用戶的最大ABAP sessions數量。它的默認值已經從6增大爲16,16也是系統容許設置的最大值。
在構造函數運算符REDUCE
的加法NEXT
後面的賦值中,如今可使用計算賦值運算符=、=、*=、/或&&=,而且適用各自的規則。
除了現有的對POSIX正則的支持,如今ABAP支持PCRE正則,經過PCRE2庫進行處理,這是在ABAP Kernel實現的。能夠經過和使用POSIX正則同樣的方式使用PCRE正則。
相比POSIX正則,PCRE正則更增強大,也有着更好的性能。更多信息,參考Regular Expressions.
REPLACE語句的新附加項VERBATIM
可使替換字符串的全部字符按字面使用。經過此附加項,正則表達式字符串將不會有特殊意義。
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 }| ).
過去,致使string超過最大長度的操做老是會致使運行期錯誤STRING_SIZE_TOO_LARGE
。如今,會觸發能夠處理的異常CX_SY_STRING_SIZE_TOO_LARGE
。
在條件知足的狀況下,對於語句CALL TRANSFORMATION
,也能夠處理該異常。
如今,
也能夠用於decimal floating point number。
原始連接:https://help.sap.com/doc/abapdocu_755_index_htm/7.55/en-US/index.htm?file=abennews-755-strings.htm
待施工
CX_NO_CHECK
類別的異常如今老是在接口中被隱式地聲明,而且老是被傳播。
如今也能夠在程序接口中經過RASING
聲明CX_NO_CHECK
異常。好比對於methods。這樣就能夠記錄可能出現的這種異常,以及將現有異常的類別更改成CX_NO_CHECK
,而不致使接口的語法錯誤。