zoukankan      html  css  js  c++  java
  • ABAP 7.51 構文書き方変換について

    便利になったなぁと感じたコマンドのメモです。
    NetWeaver7.40 SP2から使えます。

    SAP NetWeaver AS for ABAP 7.51 Innovation Package – Overview and Product Highlightsに同じような情報ありました。他にも興味深い内容多かったです。

    変数のInline Declaration

    変数定義をしながら、値の入れ込みができます。
    https://help.sap.com/http.svc/rc/abapdocu_751_index_htm/7.51/en-US/abendata_inline.htm

    Report.abap
    * 以前の書き方
    DATA lv_guid TYPE sysuuid_x16.
    lv_guid = cl_system_uuid=>if_system_uuid_static~create_uuid_x16( ).
    
    * 新しい書き方
    DATA(lv_guid) = cl_system_uuid=>if_system_uuid_static~create_uuid_x16( ).
    

      

    Report.abap
    * こんな書き方もできます
    SELECT *
    FROM t000
    INTO TABLE @DATA(lt_t000).
    
    READ TABLE lt_t000
    INTO DATA(ls_t000)
    INDEX 1.
    

      

    ・汎用モジュール/メソッド側に合わせた動的なデータ定義ができるので、汎用モジュール/メソッドのパラメータ参照データ型を変えても、勝手に追随してくれます。そのため、保守性があがります。
    ・コードが短くなって可読性向上。
    ・データを入れ込む場所で変数定義するので、実際に使う場所がわかりやすく、変数が使われるスコープが短くなって可読性が向上します。

    内部テーブルへの行追加

    ヘッダ領域なしに追加できます。
    レンジテーブルに対して、特に便利です。

    Report.abap
    DATA lt_string TYPE TABLE OF string.
    
    * 新しい書き方
    lt_string = VALUE #(
    ( `1st Line` ) "1行目
    ( `2nd Line` ) ). "2行目
    
    * 古い書き方
    APPEND:
    '1st Line' TO lt_string,
    '2nd Line' TO lt_string.
    

      

    Report.abap
    DATA lt_range TYPE RANGE OF i.
    
    * 新しい書き方
    lt_range = VALUE #( BASE lt_range ( sign = 'I'
    option = 'BT'
    low = 1
    high = 10 ) ).
    
    * 古い書き方
    DATA ls_range LIKE LINE OF lt_range.
    ls_range-sign = 'I'.
    ls_range-option = 'BT'.
    ls_range-low = 1.
    ls_range-high = 10.
    APPEND ls_range TO lt_range.

    ・コードが短くなる
    ・ヘッダ領域の変数定義が不要

  • 相关阅读:
    mysql5.7编译安装
    web服务部署工具使用介绍
    Clang Static Analyzer
    MySQL中character set与collation
    Linux 编译运行查找头文件和库的顺序
    git入门及使用记录
    CentOS7通过yum安装gdb8 gcc8 g++8的方法
    win10子系统设置开机启动ssh服务
    STL中map的使用
    C++逆序输出字符串
  • 原文地址:https://www.cnblogs.com/yjyongil/p/10489000.html
Copyright © 2011-2022 走看看