ABAP 7.55 新特性 (一)

最近幾天,SAP S4 2020對應的ABAP 7.55的新版文檔已經出現。本文翻譯了ABAP SQL以外的更新部分。ABAP SQL的更新比較長,會在以後單獨成篇html

譯者水平有限,若有錯誤,請評論指出,謝謝。正則表達式

 

本文連接:http://www.javashuo.com/article/p-nsfthqwx-nu.htmlsql

轉載請註明數據庫

 

Data Types

1. Indicator structures

TYPES語句有了新的附加選項[INDICATORS],能夠爲給定的結構類型定義一個indicator structure子結構。indicator structure能夠在ABAP SQL讀寫語句中用做ABAP SQL indicatorexpress

  • 示例代碼,注意<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.

     

原始連接: https://help.sap.com/doc/abapdocu_755_index_htm/7.55/en-US/index.htm?file=abennews-755-types.htm 

數據字典

1. Name Table的內部處理

name table (nametab)用於存儲有着數據字典類型的運行期對象。name table會持久化存儲在native數據庫表DDNTT和DDNTF中。函數

在新版本中,它的內部處理髮生了變化。性能

  • 結果是:
    • 不能再使用ABAP內部語句EXPORT NAMETAB,使用它會致使運行期錯誤。
    • 考慮到向下兼容性,IMPORT NAMETAB依然獲得了部分支持。訪問DDIC Table類型會致使運行期錯誤。其它訪問會致使ATC錯誤。
    • 先前用於存儲字段描述的的native數據庫表DDNTF會被刪除,再也不獲得支持。

 

原始連接: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了。spa

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 TOWRITE語句的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

相關文章
相關標籤/搜索