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.

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

  • 相关阅读:
    windows server2008自动登录
    WindosServer2008 激活问题。
    [转]10分钟写出你的第一个包含CRUD的Rails程序
    SQL 2008操作相关
    没有域环境安装SharePoint2010
    D3D10彻底抛弃了固定图形管线
    MultiUser01 – 简介
    6种Socket I/O 模型性能比较,图
    Dr程序耗尽了CPU
    IDXGIOutput接口
  • 原文地址:https://www.cnblogs.com/yjyongil/p/10489000.html
Copyright © 2011-2022 走看看