在源代码管理中管理ABAP源代码

时间:2008-12-01 09:45:32

标签: sap abap

我们的产品目前涵盖了大量技术,包括Java,PL / SQL,VB.Net和ABAP。我们有一个相当成熟的源代码控制和构建系统,用于除ABAP之外的所有语言,ABAP仍处于石器时代。由于SAP在其中设置了构建系统,因此我们的工程师在SAP环境导出传输中完成所有开发,并将那些检查到源代码管理中。由于我们支持许多SAP版本,因此很难跟踪版本并跨4.6,4.7,5.0等迁移代码。

我理想的过程是将ABAP代码检查到文本文件中的源代码控制中,然后将其加载到SAP中并在构建过程中生成传输。 SAP工程师认为没有工具可以支持这种模式。

如果您在源代码管理系统中管理ABAP代码,那么您的流程是什么样的?是否有可用的工具(最好是命令行)将ABAP代码加载到SAP中?您的工程师如何管理代码/测试/调试周期?他们是否在 SAP中编码,然后在完成时导出代码,或者在外部编辑器中编辑?

6 个答案:

答案 0 :(得分:6)

我为此目的使用了SAPLINK(在上一个答案中提到)。还有一个名为“zake”的相关项目,据说可以自动完成一些任务,但我从未使用它。我只是手动将我的代码导出到所谓的slinkees(它们包含单个对象,如函数组;另一方面,nuggets包含多个对象)。

使用某些外部源控制系统的原因:

  • 与非abap源代码的关联(因为我们的软件由.net和abap代码组成)
  • 托管/维护SAP不是我们擅长的东西,所以很高兴知道你的代码在安全的地方

但有一件事:你需要至少WAS 620才能使用saplink

答案 1 :(得分:5)

我对SAP系统的ABAP堆栈之外的版本控制带来的好处感兴趣。

我从未见过有人使用ABAP的外部源代码控制,因为它是内置的。我从来没有见过任何人在SAP系统之外编写ABAP代码。它真的不适合这个模型。

SAP的ABAP堆栈是一个单一开发系统环境。所有开发人员都登录到一个系统并在那里进行开发。系统自动记录版本,并将更改的对象分组到传输中。传输只是已更改对象的列表。导出传输后,每个对象的版本号都会递增,您将获得其他系统的包。

ABAP堆栈也没有真正的“构建”概念。你所做的一切都是补丁。

答案 2 :(得分:1)

HY,

正如Dom告诉你的那样,SAP拥有自己的版本管理。但是,为了在传输释放之间进行常规保存,您可以使用以下工具:

此工具可用于将ABAP组件提取到XML中。我真的不建议自动导入SAP,原因有很多:   #thoses工具没有保证   #并非所有ABAP Compoponent都可以像这样处理   #如果在高效的SAP系统上执行此操作,您将失去SAP保证

但是使用像(Google代码)这样​​的工具来详细显示软件更改可能会很有趣,这在ABAP对象上会更复杂。

我在ZAP Link框架上使用ZAPLINK_EXTRACTOR程序开发了这个程序,该程序在更改后将SAP组件导出为XML。这可以防止XML文件发生更改(新文件但内容相同),并且可以通过mercurial等工具进行检测。

希望它有所帮助。

请记住,您应该使用SAP工具来更改SAP组件。 SAP顾问可能会向您详细解释。

Taryck。 [http://www.steria.com Steria(法国)]

答案 3 :(得分:0)

另请查看SAP CTS +,它用于管理基于ABAP和JAVA的组件的传输和版本控制。

https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/e0249083-c0ab-2a10-78b8-b7a7854b1070

答案 4 :(得分:0)

至少,应该在SAP开发系统中进行修改和测试。没有人使用ABAP的外部编辑器。 (另一方面,SAP Java ...)没有理由不能直接将SAP代码备份为文本文件,或者(最好)使用SAPLink或传输转储文件。 (向您的BASIS人员询问传输文件)。要意识到,如果你去文本文件路径,你可能会错过字段文本等等存储在数据库中其他地方的东西。

答案 5 :(得分:0)

该问题的2020年答案很简单:使用AbapGit。 它为您提供了现代版本控制的所有优点,它具有完整的文档说明,开放源代码,并且像一种魅力。