SAPLink是一个帮助人们分享开发内容的工具。通过它,人们可以将ABAP开发对象从一个系统打包下载、再上传到另一个系统中。对于各种类型的开发者,它都可以起到作用:

  • 有的开发者喜欢在不同的项目中复制相似的程序、修修改改以实现快速实施。
  • 有的开发者野心勃勃,希望开发自己的特定问题解决方案。
  • 有的开发者希望从网络得到现成的示例程序,帮助自己学习。

恐怕绝大部分ABAP开发者都使用过或者听说过SAPLink,因此这里不再对它的做过多介绍。但是,也许有一部分人还不了解他的替代品:abapGit。本文试图解释,为什么我们应该是用abapGit替代SAPLink。

本文链接:https://www.cnblogs.com/hhelibeb/p/12988213.html

转载请注明

SAPLink的局限性

SAPLink的基本功能是把指定的开发对象序列化成为特定格式的文件,以及反过来把文件反序列化在系统中生成相应的开发对象。这一功能的概念在2020年的今天并不过时,但在具体的实现上,它是有一些问题的。

安装成本

SAPLink的安装需要遵循一些步骤,对于新人来说可能不是特别简单。我已经多次遇到SAP系统中的SAPLink不可用的情况,并被相关开发人员告知“不知道为什么不能用,可能是安装问题”。

功能不完善

越过了安装问题后,另一个难关是在实际使用中它不时会出现一些问题,有时是不支持某种类型的开发对象,需要安装插件,有时是导入中的dump,有时是导入后的对象错误。

无人维护

软件总会有不完美的地方,但如果没有了维护者,那就意味着它的各种问题不会再得到改善。如今,当我们访问原本是SAPLink的网站saplink.org,我们会被重定向至一个Github页面:https://github.com/sapmentors/SAPlink,由此我们可以得知这一项目其实已经不再被维护,而它的继任者为abapGit。

abapGit的优势

abapGit继承了SAPLink的基本功能——将开发对象上传下载,同时有着更多的优势。

易于安装

abapGit是一个单文件报表程序,因此开发者只需要在SE38新建文件,复制粘贴代码,激活即可安装abapGit。(这一点在新版的abapGit中稍有变化,不过整体来说难度还是很简单)

丰富的对象支持

abapGit支持上百种开发对象,而且它的表现十分可靠,对于常用的开发对象如类、数据字典、函数组、屏幕,我从未见过它出错。

稳定的维护者

abapGit是迄今为止最大的ABAP开源项目,它有着90+贡献者,3000+的提交次数,100000+行代码,项目的所有者larshp是我见过的精力最旺盛的ABAP开发者。这意味着abapGit可以持续地发展和改进,用户也可以为自己遇到的问题提issue请求协助。

良好的生态

abapGit得到了广大开发者和SAP的支持,通过abapGit开发者可以利用丰富的ABAP开源资源,也可以参与其中,贡献自己的项目、代码或思考。很多大公司在使用abapGit,包括SAP本身。你甚至可以在SAP的官方文档找到abapGit的中文教程:使用 abapGit

Q & A

一些常见问题。

Git是什么,Github又是什么?

Git是一种分布式版本管理系统。

abapGit是用于处理SAP开发对象的Git客户端,下载/上传开发对象是它的功能之一。

Github是一个网站,它提供了代码仓库的功能,很多人使用Github来在线存储/分享代码,目前大部分ABAP开源项目会在Github发布。

服务器能访问外网是使用abapGit的必要条件吗?

不是,尽管abapGit提供了方便的在线模式,开发者依然可以通过离线模式像使用SAPLink那样通过上传下载文件的方式导出和导入开发对象。

如果开发者所在的公司防火墙内有Git代码仓库,比如自己搭建的Gitlab,也可以通过abapGit连接它,把代码传输到上面。

abapGit会导致我的代码泄露吗?

有人怀疑使用abapGit之后,自己的代码可能会不声不响地出现在Github之类的网站上。在看过上一个问题后,有这种疑问的读者应该会明白这是不可能的。

abapGit就像一个运钞车,它可以方便地运输大量钞票,但这不代表车上的钞票会自动跑到汽车交易平台。运到何处,司机(开发者)可以自行控制。

也可以通过权限控制,限制能使用abapGit的用户。

我要怎样安装abapGit?

上文已经说过,abapGit是一个单文件报表程序,因此开发者只需要在SE38新建文件,复制粘贴代码,激活即可安装abapGit。代码可以从官方文档获取:

https://docs.abapgit.org/guide-install.html

怎样利用开源资源?

前往github.comdotabap.org查找你想用的东西,比如geohash,使用clone or download下载zip包,

然后在abapGit中create-import-pull即可。参考官方文档:

https://docs.abapgit.org/guide-import-zip.html

abapGit有什么缺点吗?

在深入应用abapGit之后,一些开发者提出过使用它时遇到的一些问题,比如:

  • 由于SAP开发模式的特殊性,很难使用Git的分支功能。参考《abapGit分支策略》,这篇文章的英文原文中有很多讨论。
  • abapGit对对象的上传下载是基于包的,这意味着如果开发者想上传下载的开发对象是跨包的,那么可能需要处理包含这两个包的父包。除非包与包之间的隔离很好(这在二次开发中很少见),那么最终可能会演变成必须有一个包含所有对象的总包,可以想象,上传下载这个总包会花费大量的时间...
  • 少数类型的对象没有被支持。

但这些问题基本都是在一些复杂的使用场景才会出现,而且社区也在试图解决。它们丝毫不影响abapGit替代SAPLink的能力。

扩展阅读:

SAPlink – Thankyou

abapGit Branching Strategy Discussion

How we do ABAP code review using abapGit

 
 

2020年,为什么我们应该使用abapGit代替SAPLink的更多相关文章

  1. hdu 2020

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2020 思路:优先队列水过priority_queue #include <cstdio> ...

  2. Problem 2020 组合(FOJ)

    Problem 2020 组合 Accept: 714    Submit: 1724Time Limit: 1000 mSec    Memory Limit : 32768 KB  Problem ...

  3. Hackerrank 2020 February 2014 解题报告

    Hackerrank 2020 February 2014 解题报告 比赛链接 Sherlock and Watson (20分) 题意:给定一个数组,向右平移K次,然后有Q个询问,问第x位置上是几 ...

  4. 2020: [Usaco2010 Jan]Buying Feed, II

    2020: [Usaco2010 Jan]Buying Feed, II Time Limit: 3 Sec  Memory Limit: 64 MBSubmit: 220  Solved: 162[ ...

  5. abapGit简介与教程

    你是ABAP开发者?你用abapGit吗? 看到这个问题,读者也许会想,什么是abapGit?就让我们从这个问题开始.简单地说,abapGit是一个以ABAP写成为ABAP服务的Git客户端. 有的读 ...

  6. abapGit分支策略

    各位ABAP公民们.特别是使用abapGit的各位,你们好. 我的团队和我将向大家分享我公司内引入abapGit后产生的某些开发问题.我所在的公司是一家创作SAP第三方软件的公司,目前主要使用ABAP ...

  7. 2019年IntelliJ IDEA 最新注册码,亲测可用(截止到2020年3月11日)

    2019年IntelliJ IDEA 最新注册码(截止到2020年3月11日) 操作步骤: 第一步:  修改 hosts 文件 ~~~ 在hosts文件中,添加以下映射关系: 0.0.0.0 acco ...

  8. loj#2020 「AHOI / HNOI2017」礼物 ntt

    loj#2020 「AHOI / HNOI2017」礼物 链接 bzoj没\(letex\),差评 loj luogu 思路 最小化\(\sum\limits_1^n(a_i-b_i)^2\) 设改变 ...

  9. Python核心团队计划2020年停止支持Python2,NumPy宣布停止支持计划表

    Python核心团队计划在2020年停止支持Python 2.NumPy项目自2010年以来一直支持Python 2和Python 3,并且发现支持Python 2对我们有限的资源增加了负担:因此,我 ...

随机推荐

  1. 1秒内通关扫雷?他创造属于自己的世界记录!Python实现自动扫雷

    五一劳动节假期,我们一起来玩扫雷吧.用Python+OpenCV实现了自动扫雷,突破世界记录,我们先来看一下效果吧. 中级 - 0.74秒 3BV/S=60.81 相信许多人很早就知道有扫雷这么一款经 ...

  2. php使用curl post josn数据

    今天在工作中使用到要使用("Content-Type", "application/json;charset=UTF-8")格式传送和接受数据,再次做个记录 p ...

  3. kafka学习 之 简介

    文章目录 [Topics and Logs](http://kafka.apache.org/intro#intro_topics): Distribution: Producers: Consume ...

  4. leetcode240——搜索二维矩阵(medium)

    一.题目描述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以下特性: 每行的元素从左到右升序排列. 每列的元素从上到下升序排列. 示例: 现有矩阵 ...

  5. 玩好百家乐需要掌握些什么技巧和打法?来自ag老玩家的实战经验心得总结

    最近很多网友给我留言,说为什么学了很多技巧和打法这个游戏还是玩不好,坦白说,其实bjl想要玩得好,不是说你懂得多少技巧和掌握了多少种打法就可以的了,而是你要懂得如何把这些正确结合去运用,这些我之前都强 ...

  6. Java 设置PDF中的文本旋转、倾斜

    本文介绍通过Java程序在PDF文档中设置文本旋转.倾斜的方法.设置文本倾斜时,通过定义方法TransformText(page);并设置page.getCanvas().skewTransform( ...

  7. hadoop问题

    如果启动hadoop集群时,无法启动datanode,则可以集群所有节点下dfs.datanode.data.dir的配置值所指示的路径下清空所有文件(夹),然后 hadoop namenode -f ...

  8. java接口自动化(五) - 企业级代码管理工具Git的配置

    1.简介 上一篇讲解完如何安装Git后,今天宏哥趁热打铁讲解一下Git的使用,要想使用Git,我们还需要做一些准备工作,首先你的拥有一个Git账号,所以如果你没有的话,就快速注册一个吧. 2.Git注 ...

  9. DP动态规划之01背包问题

    目录 问题描述 问题分析 问题求解 Java代码实现 优化方向一:时间方面:因为是j是整数是跳跃式的,可以选择性的填表. 思考二:处理j(背包容量),w(重量)不为整数的时候,因为j不为整数了,它就没 ...

  10. [hdu4495]二分,字符串hash,DP

    题意:在一个有字母和数字组成的矩形里面找最大的等腰对称直角三角形,直角边分别平行于矩形边,对称的意思是对称轴两边的字符相同. 思路:首先考虑一种情况,三角形的直角边在右方和下方,对于其它情况可以通过旋 ...