METHOD tamplates_1 .
WRITE:/ '*** '.
WRITE:/ '*** '.
WRITE:/ '*** AMDP - ABAP Managed Database Proceures'.
WRITE:/ '*** '.
WRITE:/ '*** '.
WRITE:/ '*** Agora é possível riar no ABAP procedures para'.
WRITE:/ '*** serem executadas no HANA DB. Essas procedures'.
WRITE:/ '*** podem ser consumidas diretamente no ABAP.'.
WRITE:/ '*** '.
WRITE:/ '*** '.
WRITE:/ '*** (deve ser criado num método de uma classe)'.
WRITE:/ '*** '.
WRITE:/ '.'.
WRITE:/ '.'.
write: / | CLASS zcl_ampd DEFINITION. |.
write: / | PUBLIC |.
write: / | FINAL |.
write: / | CREATE PUBLIC. |.
write: / | |.
write: / | PUBLIC SECTION. |.
write: / | |.
write: / | INTERFACES if_amdp_marker_hdb. |.
write: / | |.
write: / | TYPES: |.
write: / | BEGIN OF y_kna1, |.
write: / | kunnr type kna1-kunnr, |.
write: / | name1 type kna1-name1, |.
write: / | END OF y_kna1, |.
write: / | |.
write: / | y_t_kna1 TYPE STANDARD TABLE OF y_kna1. |.
write: / | |.
write: / | CLASS-METHODS |.
write: / | main. |.
write: / | |.
write: / | METHODS: |.
write: / | get_kna1_name1 |.
write: / | IMPORTING VALUE(iv_kunnr) type kunnr |.
write: / | EXPORTING value(et_t_kna1) type y_t_kna1, |.
write: / | now. |.
write: / |. |.
write: / | PROTECTED SECTION. |.
write: / | PRIVATE SECTION. |.
write: / | |.
write: / | ENDCLASS. |.
write: / | |.
WRITE:/ ' '.
WRITE:/ |.|.
write: / | METHOD get_kna1_name1 |.
write: / | BY DATABASE PROCEDURE |.
write: / | FOR HDB |.
write: / | LANGUAGE SQLSCRIPT |.
write: / | OPTIONS READ-ONLY |.
write: / | USING kna1. |.
write: / | |.
write: / | et_kna1 = |.
write: / | select |.
write: / | kunnr, |.
write: / | name1 |.
write: / | from kna1 |.
write: / | where mandt = '100' |.
write: / | and kunnr = :iv_kunnr; |.
write: / | |.
write: / | ENDMETHOD. |.
write: / | .|.
write: / | .|.
write: / | METHOD now . |.
write: / | get_kna1_name1( |.
write: / | EXPORTING |.
write: / | iv_kunnr = '' |.
write: / | IMPORTING |.
write: / | et_kna1 = DATA(t_kna1) |.
write: / | ). |.
write: / | |.
write: / | IF ( line_exists(t_kna1[ 1 ] ) ). |.
write: / | WRITE:/ t_kna1[ 1 ]-name1. |.
write: / | ENDIF. |.
write: / | |.
write: / | |.
write: / | ENDMETHOD. |.
write: / | ENDCLASS. |.
write: / | |.
ULINE.
ENDMETHOD.
***
*** Exemplo Simples
***
METHOD tamplates_2 .
WRITE:/ '*** tamplates_2 - ' .
WRITE:/ '*** ' .
WRITE:/ '*** AMDP - ABAP Managed Database Proceures'.
WRITE:/ '*** '.
WRITE:/ '*** SCALAR Function'.
WRITE:/ '*** '.
write: / | CLASS zcl_ampd DEFINITION. |.
write: / | PUBLIC |.
write: / | FINAL |.
write: / | CREATE PUBLIC. |.
write: / | |.
write: / | PUBLIC SECTION. |.
write: / | |.
write: / | INTERFACES if_amdp_marker_hdb. |.
write: / | |.
write: / | TYPES: |.
write: / | BEGIN OF y_kna1, |.
write: / | kunnr type kna1-kunnr, |.
write: / | name1 type kna1-name1, |.
write: / | END OF y_kna1, |.
write: / | |.
write: / | y_t_kna1 TYPE STANDARD TABLE OF y_kna1. |.
write: / | |.
write: / | CLASS-METHODS |.
write: / | main. |.
write: / | |.
write: / | METHODS: |.
write: / | get_kna1_name1 |.
write: / | IMPORTING VALUE(iv_kunnr) type kunnr |.
write: / | EXPORTING value(et_t_kna1) type y_t_kna1, |.
write: / | now. |.
write: / |. |.
write: / | PROTECTED SECTION. |.
write: / | PRIVATE SECTION. |.
write: / | |.
write: / | ENDCLASS. |.
write: / | |.
WRITE:/ ' '.
WRITE:/ |.|.
write: / | METHOD get_kna1_name1 |.
write: / | BY DATABASE FUNCTION |.
write: / | FOR HDB |.
write: / | LANGUAGE SQLSCRIPT |.
write: / | OPTIONS READ-ONLY |.
write: / | USING kna1. |.
write: / | |.
write: / | select |.
write: / | name1 |.
write: / | into ev_name1 |.
write: / | from kna1 |.
write: / | where mandt = '100' |.
write: / | and kunnr = :iv_kunnr; |.
write: / | |.
write: / | ENDMETHOD. |.
write: / | .|.
write: / | .|.
write: / | METHOD now . |.
write: / | DATA(v_name1) = |.
write: / | get_kna1_name1( '0010100002' ). |.
write: / | |.
write: / | WRITE:/ v_name1. |.
write: / | |.
write: / | ENDMETHOD. |.
write: / | ENDCLASS. |.
write: / | |.
ULINE.
ENDMETHOD.
***
*** Literal + expression
***
METHOD tamplates_3 .
WRITE:/ '*** tamplates_3 -' .
WRITE:/ '*** ' .
WRITE:/ '*** AMDP - ABAP Managed Database Proceures'.
WRITE:/ '*** '.
WRITE:/ '*** TABLE Function'.
WRITE:/ '*** '.
write: / | CLASS zcl_ampd DEFINITION. |.
write: / | PUBLIC |.
write: / | FINAL |.
write: / | CREATE PUBLIC. |.
write: / | |.
write: / | PUBLIC SECTION. |.
write: / | |.
write: / | INTERFACES if_amdp_marker_hdb. |.
write: / | |.
write: / | TYPES: |.
write: / | BEGIN OF y_kna1, |.
write: / | kunnr type kna1-kunnr, |.
write: / | name1 type kna1-name1, |.
write: / | END OF y_kna1, |.
write: / | |.
write: / | y_t_kna1 TYPE STANDARD TABLE OF y_kna1 |.
write: / | WITH DEFAULT KEY . |.
write: / | |.
write: / | CLASS-METHODS: |.
write: / | get_kna1_name1 |.
write: / | FOR TABLE FUNCTION z_cds_amdp, |.
write: / | now. |.
write: / | |.
write: / | PROTECTED SECTION. |.
write: / | PRIVATE SECTION. |.
write: / | |.
write: / | ENDCLASS. |.
write: / | |.
WRITE:/ ' '.
WRITE:/ | @ClientDependent: false |.
WRITE:/ | define table function z_cdss_amdp |.
WRITE:/ | with parameters|.
WRITE:/ | iv_regio :regio|.
WRITE:/ | returns |.
WRITE:/ | "[" |.
WRITE:/ | "name1: name1;" |.
WRITE:/ | "]" |.
WRITE:/ | implemented by method |.
WRITE:/ | zcl_amdp=>get_kna1_name1; |.
WRITE:/ | |.
WRITE:/ | |.
write: / | METHOD get_kna1_name1 |.
write: / | BY DATABASE FUNCTION |.
write: / | FOR HDB |.
write: / | LANGUAGE SQLSCRIPT |.
write: / | OPTIONS READ-ONLY |.
write: / | USING kna1. |.
write: / | |.
write: / | RETURN |.
write: / | select |.
write: / | name1 |.
write: / | from kna1 |.
write: / | where mandt = '100' |.
write: / | and regio = :iv_regio; |.
write: / | |.
write: / | ENDMETHOD. |.
write: / | .|.
write: / | .|.
write: / | METHOD now . |.
write: / | SELECT * |.
write: / | FROM z_cds_amdp( iv_regio = 'PA ' |.
write: / | INTO TABLE @DATA(t_kna1). |.
write: / | |.
write: / | LOOP AT t_kna1 into DATA(s_kna1). |.
write: / | write / s_kna1-name1. |.
write: / | ENDLOOP. |.
write: / | |.
write: / | ENDMETHOD. |.
write: / | ENDCLASS. |.
write: / | |.
ULINE.
ENDMETHOD.
WRITE:/ '*** '.
WRITE:/ '*** '.
WRITE:/ '*** AMDP - ABAP Managed Database Proceures'.
WRITE:/ '*** '.
WRITE:/ '*** '.
WRITE:/ '*** Agora é possível riar no ABAP procedures para'.
WRITE:/ '*** serem executadas no HANA DB. Essas procedures'.
WRITE:/ '*** podem ser consumidas diretamente no ABAP.'.
WRITE:/ '*** '.
WRITE:/ '*** '.
WRITE:/ '*** (deve ser criado num método de uma classe)'.
WRITE:/ '*** '.
WRITE:/ '.'.
WRITE:/ '.'.
write: / | CLASS zcl_ampd DEFINITION. |.
write: / | PUBLIC |.
write: / | FINAL |.
write: / | CREATE PUBLIC. |.
write: / | |.
write: / | PUBLIC SECTION. |.
write: / | |.
write: / | INTERFACES if_amdp_marker_hdb. |.
write: / | |.
write: / | TYPES: |.
write: / | BEGIN OF y_kna1, |.
write: / | kunnr type kna1-kunnr, |.
write: / | name1 type kna1-name1, |.
write: / | END OF y_kna1, |.
write: / | |.
write: / | y_t_kna1 TYPE STANDARD TABLE OF y_kna1. |.
write: / | |.
write: / | CLASS-METHODS |.
write: / | main. |.
write: / | |.
write: / | METHODS: |.
write: / | get_kna1_name1 |.
write: / | IMPORTING VALUE(iv_kunnr) type kunnr |.
write: / | EXPORTING value(et_t_kna1) type y_t_kna1, |.
write: / | now. |.
write: / |. |.
write: / | PROTECTED SECTION. |.
write: / | PRIVATE SECTION. |.
write: / | |.
write: / | ENDCLASS. |.
write: / | |.
WRITE:/ ' '.
WRITE:/ |.|.
write: / | METHOD get_kna1_name1 |.
write: / | BY DATABASE PROCEDURE |.
write: / | FOR HDB |.
write: / | LANGUAGE SQLSCRIPT |.
write: / | OPTIONS READ-ONLY |.
write: / | USING kna1. |.
write: / | |.
write: / | et_kna1 = |.
write: / | select |.
write: / | kunnr, |.
write: / | name1 |.
write: / | from kna1 |.
write: / | where mandt = '100' |.
write: / | and kunnr = :iv_kunnr; |.
write: / | |.
write: / | ENDMETHOD. |.
write: / | .|.
write: / | .|.
write: / | METHOD now . |.
write: / | get_kna1_name1( |.
write: / | EXPORTING |.
write: / | iv_kunnr = '' |.
write: / | IMPORTING |.
write: / | et_kna1 = DATA(t_kna1) |.
write: / | ). |.
write: / | |.
write: / | IF ( line_exists(t_kna1[ 1 ] ) ). |.
write: / | WRITE:/ t_kna1[ 1 ]-name1. |.
write: / | ENDIF. |.
write: / | |.
write: / | |.
write: / | ENDMETHOD. |.
write: / | ENDCLASS. |.
write: / | |.
ULINE.
ENDMETHOD.
***
*** Exemplo Simples
***
METHOD tamplates_2 .
WRITE:/ '*** tamplates_2 - ' .
WRITE:/ '*** ' .
WRITE:/ '*** AMDP - ABAP Managed Database Proceures'.
WRITE:/ '*** '.
WRITE:/ '*** SCALAR Function'.
WRITE:/ '*** '.
write: / | CLASS zcl_ampd DEFINITION. |.
write: / | PUBLIC |.
write: / | FINAL |.
write: / | CREATE PUBLIC. |.
write: / | |.
write: / | PUBLIC SECTION. |.
write: / | |.
write: / | INTERFACES if_amdp_marker_hdb. |.
write: / | |.
write: / | TYPES: |.
write: / | BEGIN OF y_kna1, |.
write: / | kunnr type kna1-kunnr, |.
write: / | name1 type kna1-name1, |.
write: / | END OF y_kna1, |.
write: / | |.
write: / | y_t_kna1 TYPE STANDARD TABLE OF y_kna1. |.
write: / | |.
write: / | CLASS-METHODS |.
write: / | main. |.
write: / | |.
write: / | METHODS: |.
write: / | get_kna1_name1 |.
write: / | IMPORTING VALUE(iv_kunnr) type kunnr |.
write: / | EXPORTING value(et_t_kna1) type y_t_kna1, |.
write: / | now. |.
write: / |. |.
write: / | PROTECTED SECTION. |.
write: / | PRIVATE SECTION. |.
write: / | |.
write: / | ENDCLASS. |.
write: / | |.
WRITE:/ ' '.
WRITE:/ |.|.
write: / | METHOD get_kna1_name1 |.
write: / | BY DATABASE FUNCTION |.
write: / | FOR HDB |.
write: / | LANGUAGE SQLSCRIPT |.
write: / | OPTIONS READ-ONLY |.
write: / | USING kna1. |.
write: / | |.
write: / | select |.
write: / | name1 |.
write: / | into ev_name1 |.
write: / | from kna1 |.
write: / | where mandt = '100' |.
write: / | and kunnr = :iv_kunnr; |.
write: / | |.
write: / | ENDMETHOD. |.
write: / | .|.
write: / | .|.
write: / | METHOD now . |.
write: / | DATA(v_name1) = |.
write: / | get_kna1_name1( '0010100002' ). |.
write: / | |.
write: / | WRITE:/ v_name1. |.
write: / | |.
write: / | ENDMETHOD. |.
write: / | ENDCLASS. |.
write: / | |.
ULINE.
ENDMETHOD.
***
*** Literal + expression
***
METHOD tamplates_3 .
WRITE:/ '*** tamplates_3 -' .
WRITE:/ '*** ' .
WRITE:/ '*** AMDP - ABAP Managed Database Proceures'.
WRITE:/ '*** '.
WRITE:/ '*** TABLE Function'.
WRITE:/ '*** '.
write: / | CLASS zcl_ampd DEFINITION. |.
write: / | PUBLIC |.
write: / | FINAL |.
write: / | CREATE PUBLIC. |.
write: / | |.
write: / | PUBLIC SECTION. |.
write: / | |.
write: / | INTERFACES if_amdp_marker_hdb. |.
write: / | |.
write: / | TYPES: |.
write: / | BEGIN OF y_kna1, |.
write: / | kunnr type kna1-kunnr, |.
write: / | name1 type kna1-name1, |.
write: / | END OF y_kna1, |.
write: / | |.
write: / | y_t_kna1 TYPE STANDARD TABLE OF y_kna1 |.
write: / | WITH DEFAULT KEY . |.
write: / | |.
write: / | CLASS-METHODS: |.
write: / | get_kna1_name1 |.
write: / | FOR TABLE FUNCTION z_cds_amdp, |.
write: / | now. |.
write: / | |.
write: / | PROTECTED SECTION. |.
write: / | PRIVATE SECTION. |.
write: / | |.
write: / | ENDCLASS. |.
write: / | |.
WRITE:/ ' '.
WRITE:/ | @ClientDependent: false |.
WRITE:/ | define table function z_cdss_amdp |.
WRITE:/ | with parameters|.
WRITE:/ | iv_regio :regio|.
WRITE:/ | returns |.
WRITE:/ | "[" |.
WRITE:/ | "name1: name1;" |.
WRITE:/ | "]" |.
WRITE:/ | implemented by method |.
WRITE:/ | zcl_amdp=>get_kna1_name1; |.
WRITE:/ | |.
WRITE:/ | |.
write: / | METHOD get_kna1_name1 |.
write: / | BY DATABASE FUNCTION |.
write: / | FOR HDB |.
write: / | LANGUAGE SQLSCRIPT |.
write: / | OPTIONS READ-ONLY |.
write: / | USING kna1. |.
write: / | |.
write: / | RETURN |.
write: / | select |.
write: / | name1 |.
write: / | from kna1 |.
write: / | where mandt = '100' |.
write: / | and regio = :iv_regio; |.
write: / | |.
write: / | ENDMETHOD. |.
write: / | .|.
write: / | .|.
write: / | METHOD now . |.
write: / | SELECT * |.
write: / | FROM z_cds_amdp( iv_regio = 'PA ' |.
write: / | INTO TABLE @DATA(t_kna1). |.
write: / | |.
write: / | LOOP AT t_kna1 into DATA(s_kna1). |.
write: / | write / s_kna1-name1. |.
write: / | ENDLOOP. |.
write: / | |.
write: / | ENDMETHOD. |.
write: / | ENDCLASS. |.
write: / | |.
ULINE.
ENDMETHOD.