第一步:安装 SAP NetWeaver 的 ABAP 开发工具 (ADT)
开发工具下载地址:https://tools.hana.ondemand.com/#abap

也可以在SAP Development Tools下载工具页面直接跳转到对应公开课教程页面,按课程步骤下载eclipse解压安装即可,过程简单这里不赘述,如下图选择Eclipse IDE for Java Developement。
PS:现在最新的 Eclipse 软件包与 Eclipse Temurin 捆绑在一起Eclipse Temurin 是 Eclipse Adoptium 项目提供的OpenJDK 二进制发行版。不使用系统上找到的任何其他JRE。如果您想要删除捆绑的 JRE 并使用自定义 JRE,请参阅 SAP note 3035242。

Eclipse 安装完成后打开运行,选择对应的项目默认文件的存储目录

点击Help->Install New Software,

输入https://tools.hana.ondemand.com/latest,选择ADT,按步骤操作完成后,重启软件。

重启后,点击切换开发视图到ABAP开发环境视图。


打开如下所示即安装完成,如果需要安装Abapgit,大家可以参考公开课的教程安装。

第二步:创建一个ABAP项目
这个可以理解为SAP GUI配置DEV系统的连接。可以点击File->New->ABAP Project

跳转到如下界面,可以直接新建,也可以用SAPGUI中已有的地址


填写完成,点击Next,输入账号密码,点击Finish

ADT加载对应系统信息,配置即完成。
第三步,创建简单的CDS
选择开发包,这里选择本地包,点击右键,选择新建,选择CDS的定义。

如下输入,CSD的名称和描述。参考对象这里为可选项,理解为数据的来源。右侧的帮助文档按F1即可显示。

点击下一步,这里为选择请求号,示例为本地包,不传输,所以不选择

点下一步,选择模板。

这里要注意:基于DDIC((Data Dictionary,简称DDIC)的CDS 已经被弃用了,采用基于实体(CDS View Entity)

两者的区别
推荐:两者的区别
点击保存后,写入DDL代码
@AbapCatalog.viewEnhancementCategory:[#PROJECTION_LIST]@AccessControl.authorizationCheck:#NOT_REQUIRED@EndUserText.label:'预留行项目信息查询'@Metadata.ignorePropagatedAnnotations:true@ObjectModel.usageType:{serviceQuality:#X,sizeCategory:#S,dataClass:#MIXED}defineviewentityZ_RESB_ITEMSasselectfromresb{keyrsnumasRsnum,keyrsposasRspos,keyrsartasRsart,bdartasBdart,rsstaasRssta,xloekasXloek,xwaokasXwaok,kzearasKzear,xfehlasXfehl,matnrasMatnr,werksasWerks,lgortasLgort,prvbeasPrvbe,chargasCharg,plplaasPlpla,sobkzasSobkz,bdterasBdter,@Semantics.quantity.unitOfMeasure:'Meins'bdmngasBdmng,meinsasMeins,wtysc_clmitemasWtyscClmitem}
点击激活,然后执行。
创建程序,调用CDS展示。
class lcl_main definition create private.
public section.
class-methods create
returning
value(r_result) type ref to lcl_main.
methods run.
protected section.
private section.
endclass.
class lcl_main implementation.
method create.
r_result = new #( ).
endmethod.
method run.
cl_salv_gui_table_ida=>create_for_cds_view( 'Z_RESB_ITEMS' )->fullscreen( )->display( ).
endmethod.
endclass.
start-of-selection.
*class methods called using =>,instance methonscalled using ->
lcl_main=>create( )->run( ).


















