気まぐれですが、現在お仕事で使っているABAPについて、メモを残していこうと思います。
基本コンセプトとして、「モダンなソース」を書くように心がけようと思っています。
ABAPのバージョンも7.4になったし、
SAP提唱の「Code to Data」「Code Pushdown」(つまり、Databaaeに負荷をかける)を意識します。
私が使っている「ちょっとSQLを試し書きして動かす」ツールを紹介します。
※SAP HANA環境だと、HDB StudioのSQL Consoleが使えるから助かるんだけれど、
→TRCD:DB01っていうのがありますね。
あれ入れるほどでもないし、Non HANA環境だと使えないし、権限設定とかいろいろ...
少しプログラムを改変しました。(20171018)
少しプログラムを改変しました。(20170926)
少しプログラムを改変しました。(20181022)
少しプログラムを改変しました。(20200908)
*&---------------------------------------------------------------------* *& Report Y_SQL_CONSOLE *&---------------------------------------------------------------------* *& *&---------------------------------------------------------------------* REPORT Y_SQL_CONSOLE. *----------------------------------------------------------------------- * GLOBAL VARIABLE *----------------------------------------------------------------------- DATA GDF_SUBRC TYPE SY-SUBRC. *----------------------------------------------------------------------- * CONDITION VIEW *----------------------------------------------------------------------- DATA GDF_CHAR1 TYPE CHAR10. TYPES GTR_CHAR1 LIKE RANGE OF GDF_CHAR1. SELECT-OPTIONS S_CHAR1 FOR GDF_CHAR1. DATA GDF_CHAR2 TYPE CHAR10. TYPES GTR_CHAR2 LIKE RANGE OF GDF_CHAR2. SELECT-OPTIONS S_CHAR2 FOR GDF_CHAR2. DATA GDF_NUMC1 TYPE NUMC08. TYPES GTR_NUMC1 LIKE RANGE OF GDF_NUMC1. SELECT-OPTIONS S_NUMC1 FOR GDF_NUMC1. DATA GDF_NUMC2 TYPE NUMC08. TYPES GTR_NUMC2 LIKE RANGE OF GDF_NUMC2. SELECT-OPTIONS S_NUMC2 FOR GDF_NUMC2. DATA GDF_DATS1 TYPE DATS. TYPES GTR_DATS1 LIKE RANGE OF GDF_DATS1. SELECT-OPTIONS S_DATS1 FOR GDF_DATS1. DATA GDF_DATS2 TYPE DATS. TYPES GTR_DATS2 LIKE RANGE OF GDF_DATS2. SELECT-OPTIONS S_DATS2 FOR GDF_DATS2. DATA GDF_TIMS1 TYPE TIMS. TYPES GTR_TIMS1 LIKE RANGE OF GDF_TIMS1. SELECT-OPTIONS S_TIMS1 FOR GDF_TIMS1. DATA GDF_TIMS2 TYPE TIMS. TYPES GTR_TIMS2 LIKE RANGE OF GDF_TIMS2. SELECT-OPTIONS S_TIMS2 FOR GDF_TIMS2. *----------------------------------------------------------------------- * START-OF-SELECTION *----------------------------------------------------------------------- START-OF-SELECTION. PERFORM START_OF_SELECTION USING S_CHAR1[] S_CHAR2[] S_NUMC1[] S_NUMC2[] S_DATS1[] S_DATS2[] S_TIMS1[] S_TIMS2[] CHANGING GDF_SUBRC. *----------------------------------------------------------------------- * SUBROUTINE *----------------------------------------------------------------------- FORM START_OF_SELECTION USING PIR_CHAR1 TYPE GTR_CHAR1 PIR_CHAR2 TYPE GTR_CHAR2 PIR_NUMC1 TYPE GTR_NUMC1 PIR_NUMC2 TYPE GTR_NUMC2 PIR_DATS1 TYPE GTR_DATS1 PIR_DATS2 TYPE GTR_DATS2 PIR_TIMS1 TYPE GTR_TIMS1 PIR_TIMS2 TYPE GTR_TIMS2 CHANGING POF_SUBRC TYPE SY-SUBRC. *----------------------------------------------------------------------- * Please write the SQL statement here ☆ * Set the internal table to be stored to LDT_DATA ☆ * Inline definition of LDT_DATA is fun ☆ SELECT FROM T001 FIELDS * INTO TABLE @DATA(LDT_DATA). *----------------------------------------------------------------------- TRY. CL_SALV_TABLE=>FACTORY( IMPORTING R_SALV_TABLE = DATA(LDO_ALV) CHANGING T_TABLE = LDT_DATA ). CATCH CX_SALV_MSG INTO DATA(LDX_SALV_MSG). POF_SUBRC = 8. RETURN. ENDTRY. LDO_ALV->GET_FUNCTIONS( )->SET_ALL( ). LDO_ALV->GET_COLUMNS( )->SET_OPTIMIZE( ). LDO_ALV->GET_SELECTIONS( )->SET_SELECTION_MODE( EXPORTING VALUE = IF_SALV_C_SELECTION_MODE=>CELL ). LDO_ALV->DISPLAY( ). POF_SUBRC = 0. ENDFORM.
おまけ
息苦しいほどタイトな演奏です。
Brian Culbertson- Back in the Day & So Good
検索キーワード
ABAP
ABAP 7.4
ABAP 7.40
ABAP 7.5
ABAP 7.50
SQL
Open SQL
New Open SQL
SAP HANA
Code to Data
Code Pushdown
以上