zoukankan      html  css  js  c++  java
  • 【ABAP系列】SAP ABAP 带有参数的AMDP的创建

    公众号:matinal
    本文作者:matinal
     

    前言部分

    大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。

    正文部分

    什么是AMDP ......

    ABAP托管数据库过程是AS ABAP中的一项新功能,允许开发人员直接在ABAP中编写数据库过程。您可以将数据库过程视为在数据库中存储和执行的函数。实现语言因数据库系统而异。在SAP HANA中,它是SQL脚本。使用AMDP允许开发人员使用ABAP方法和ABAP数据类型在ABAP环境中创建和执行这些数据库过程。

    AMDP流程的优势

    • 该方法的主要优点是只有AMDP类必须使用ABAP传输机制进行传输。
    • 此过程中不需要HANA交付或HANA传输系统。
    • 开发人员只需要ABAP开发工具来构建和管理CDS视图。无需其他HANA开发工具。

    ABAP托管数据库过程(AMDP)的功能

    • 为嵌入式SQLScript提供静态检查代码语法着色
    • 用户可以设置背景颜色,以便在类中更好地查看AMDP方法。
    • 用户可以在AMDP方法中访问其他AMDP方法ABAP字典视图ABAP表
    • 像其他常规ABAP方法一样调用AMDP方法。
    • 用户可以在事务ST22中的运行时期间执行各种错误的详细分析
    • 用户可以对常规ABAP类进行修改或增强

    AMDP类定义的示例

    CLASS CL_AMBP_EXAMPLE定义。

    公共部分。
    INTERFACES IF_AMDP_MARKER_HDB。// HANA DB的标记界面//

    METHODS过程//只能使用ABAP代码//
    IMPORTING it_param TYPE type1 
    EXPORTING et_param TYPE type2。

    方法执行//可以使用SQLScript或ABAP代码// 
    IMPORTING VALUE(it_param)TYPE type1 
    EXPORTING VALUE(et_param)TYPE type2。//需要特定的参数接口//
    CHANGING VALUE(ch_param)TYPE type3

    ENDCLASS。

    AMDP类的实现

    CLASS CL_AMDP_EXAMPLE IMPLEMENTATION
    METHODS process
    // Write ABAP source code here//ENDMETHOD
    METHOD execute BY DATABASE PROCEDURE //AMDP method marker//
    FOR HDB //Database platform//
    LANGUAGE SQLScript //Database language//
    [OPTIONS READ-ONLY] //Database-specific options//
    USING name1 name2 etc… //List of used DDIC entities and AMDPs//
    //Write here the SQLScript coding// 
    select * from dummy;
    …
    ENDMETHOD.
    ENDCLASS.
    
    ​

    让我们举一个例子:用输入,输出参数创建AMDP

    首先转到HANA Studio中的ABAP建模透视图

    Windows-> Perspective-> Open Perspective-> ABAP

    创建ABAP类:

    CLASS ztestk DEFINITION public.
    
    PUBLIC SECTION.
    
    types : tt_mara type table of mara.
    
    interfaces : if_amdp_marker_hdb.
    
    methods : my_method
    
    importing value(im_matnr) type mara-matnr
    
    exporting value(et_mara) type tt_mara.
    
    ENDCLASS.
    
    CLASS ztestk IMPLEMENTATION.
    
    method my_method by database procedure for HDB
    
    language sqlscript options read-only using MARA.
    
    et_mara=SELECT * from MARA where MATNR= IM_MATNR;
    
    endmethod.
    
    ENDCLASS.
    
    ​

    保存(Control + S)

    打开SAP GUI

    输入TCODE:SE24(要查看是否创建了您的类)

    我们也可以看到我们的方法和代码。

    单击“显示”

    输入TCODE:SE38(创建报告)

    在Report中我们调用class(创建对象的类)

    点击创建

    在这里输入你的代码来调用类

    REPORT ZTESTK_REP.
    PARAMETERS : p_matnr TYPE matnr DEFAULT ‘000000000000001109’.
    
    DATA : r_amdp TYPE REF TO ztestk,
    et_mara TYPE TABLE OF mara,
    r_salv TYPE REF TO cl_salv_table.
    
    CREATE OBJECT r_amdp.
    
    r_amdp->my_method( EXPORTING im_matnr  = p_matnr
    IMPORTING et_mara    = et_mara ).
    
    TRY.
    CALL METHOD cl_salv_table=>factory
    IMPORTING
    r_salv_table   = r_salv
    CHANGING
    t_table        = et_mara
    .
    CATCH cx_salv_msg .
    ENDTRY.
    
    r_salv->display( ).
    
    ​
  • 相关阅读:
    响应报文
    IntelliJ IDEA 使用Git怎样记住密码和忘记密码的方法
    vue基础——命名路由
    vue基础——路由懒加载
    vue hash模式下如何使用a标签的锚点定位
    vue项目中修改第三方库的组件样式的方法
    CSS3实现水波纹效果
    日期对象Date的计算
    兼容性查询工具
    根据.svg文件借助IconMoon生成字体图标及应用的方法
  • 原文地址:https://www.cnblogs.com/SAPmatinal/p/11184763.html
Copyright © 2011-2022 走看看