saplink 用于在不同的 SAP 系统之间传输开发物件和 DDIC 对象,它和其下一代产品 abapGit 都已经在 Github 上开源,如果是 Netweaver 702 之后的产品,建议使用 abapGit,之前的版本只能使用 saplink。saplink 存在较多 bug,项目已经没有开发者维护,如果不能驾驭 saplink,不要在项目中用 saplink 来传输开发物件。本文介绍 saplink 的安装和基本使用方法。
安装
saplink 项目地址:https://github.com/sapmentors/SAPlink
saplink plugins 项目地址:https://github.com/sapmentors/SAPlink-plugins
在 saplink 的项目地址中下载源码,在 build 文件夹中有两个文件:
- zsaplink_installer.txt: 安装器的代码
- SAPLink_daily.nugg: saplink 的源码包
通过事务码 SE38 新建一支程序,程序的名称不能为 ZSAPLINK,因为 saplink 需要创建一个名为 ZSAPLINK 的程序,会导致程序名称冲突。建议将程序命名为 ZSAPLINK_INSTALLER。
程序创建后,将 zsaplink_installer.txt 中所有代码拷贝到 ZSAPLINK_INSTALLER 程序中,检查是否有错误,然后激活。
运行 zsaplink_installer,界面如下:
找到 saplink 安装文件 build 文件夹下面的 SAPLink_Daily.nugg 文件,点击运行,将导入以下的类和程序:
通过事务码 SE80,选择 Inactive Objects,对这些类和程序进行激活,激活的时候,要先激活类代码,再激活程序代码:
如果激活过程无错误,即表示安装成功。
安装插件
插件进一步增强 saplink 的处理能力,比如导入导出 DDIC 对象,数据表的数据等等,没有插件的支持,saplink 的功力将大打折扣。从上面 saplink-plugins 项目的代码库中下载代码,然后通过事务码 SE38 运行 zsaplink 程序,界面如下:
可以把 Nugget 理解为包,nugget 能把 SAP package 或者 一个传输请求中的对象打包在一起进行导出和导入,Slinkee 则只包含单一类型的对象。比如某一支程序,运行涉及数据库表,程序代码,Screen Painter 绘制的界面等等。我们可以把这些全部打包在一起,作为一个 nugget,也可以将数据表和程序分开,每一个对象作为独立的 slinkee 对象。在界面中切换到 Slinkee 页签,逐一导入 DDIC 文件夹中的这些对象:
(saplink plugins 项目地址:https://github.com/sapmentors/SAPlink-plugins 里的)
导入之后,通过事务码 SE80 激活开发对象,注意激活的顺序。
开发对象导出
以之前编写的一支程序为例,该程序包含 screen, GUI Status 和 zemployee1 表,使用 saplink 将 DDIC 对象和导出为 nugget 包,DDIC 和程序分开导出。
以导出程序为例,第一步,选择 Create New Nugget,输入 nugget name:
点击运行 (F8),弹出对话框,指定 nugget 文件的路径和文件名。
第二步,选择 Add Objects to a Nugget,这种选项允许根据类别和名称来添加对象:
上面的选择表示将程序 z_table_crud_alv 导出为 nugget 包,内容保存在 prog_z_table_crud_alv.nugg 文件中。按 F8 运行,程序即被导出。
开发对象导入
开发对象导入的方式跟安装插件的方式相同,可以导入 slnk 格式的文件和 nugg 格式的文件。