Управление исходным кодом ABAP в контроле источника -- abap поле с участием sap-basis пол Связанный проблема

Managing ABAP Source Code in Source Control


9
vote

проблема

русский

Наш продукт в настоящее время охватывает большое количество технологий, включая Java, PL / SQL, VB.NET и ABAP. У нас есть довольно зрелый контроль источника и строения для всех языков, кроме ABAP, который все еще находится в каменных возрастах. Поскольку SAP имеет систему сборки, созданную в нем, наши инженеры выполняют все свое развитие в транспортировке экспорта SAP Environment, и проверяют те, которые в контроль источника. Поскольку мы поддерживаем ряд версий SAP, это становится очень трудно отслеживать версии и перенос кода на 4,6, 4.7, 5,0 и т. Д.

Мой идеальный процесс будет проверять код ABAP в исходное управление в текстовых файлах, а затем загрузить его в SAP и генерировать транспортировки как часть процесса сборки. Инженеры SAP не думают, что есть инструменты для поддержки этой модели.

Если вы управляете кодом ABAP в системе управления источником, как выглядит ваш процесс? Доступны ли доступны инструменты (предпочтительно командная строка) для загрузки кода ABAP в SAP? Как ваши инженеры управляют кодом / тестом / циклом отладки? Они код в SAP , а затем экспортируют код, когда закончите или отредактируйте во внешнем редакторе?

Английский оригинал

Our product currently spans a large number of technologies, including Java, PL/SQL, VB.Net and ABAP. We have a fairly mature source control and build system set up for all of the languages except ABAP, which is still in the stone ages. Since SAP has a build system set up within it, our engineers do all of their development in an SAP environment export transports, and check those into source control. Since we support a number of SAP versions, it becomes very difficult to track versions and migrate code across 4.6, 4.7, 5.0, etc.

My ideal process would be to check the ABAP code into source control in text files, and then load it into SAP and generate the transports as part of the build process. The SAP engineers don't think there are tools to support this model.

If you are managing ABAP code in a source control system, what does your process look like? Are there tools available (preferably command-line) for loading ABAP code into SAP? How do your engineers manage the code/test/debug cycle? Do they code in SAP and then export the code when finished, or edit in an external editor?

</div
     

Список ответов

5
 
vote
vote
Лучший ответ
 

Я использовал SAPLink (упомянутый в предыдущем ответе) для этой цели. Существует также связанный проект под названием «Zake», который предположительно может автоматизировать некоторые из задач, но я никогда не использовал его. Я просто экспортировал свой код вручную в так называемые SLINKEES (они содержат отдельные объекты, такие как функциональные группы; нагрочки, с другой стороны, содержат несколько объектов).

Причины использовать некоторую внешнюю систему управления источником:

    .
  • Соотношение к исходному коду без абапа (как наше программное обеспечение состояло из кода .NET и ABAP)
  • Хостинг / поддержание SAP было не то, что мы были точно хороши, так что было приятно знать, что у вас был ваш код в безопасном месте

Одна вещь, хотя: вам нужно как минимум было 620, чтобы использовать SAPLink

 

I used SAPLINK (mentioned in previous answer) for that purpose. There is also a related project called "zake", that supposedly can automate some of the tasks but I never used it. I simply exported my code manually to so-called slinkees (they contain single objects like function groups; nuggets on the other hand contain several objects).

Reasons to use some external source control system:

  • correlation to non-abap source code (as our software consisted of .net and abap code)
  • hosting / maintaining SAP was not something we were exactly good at, so it was good to know you had your code in a safe place

one thing though: you need at least WAS 620 in order to use saplink

</div
 
 
4
 
vote

Я заинтересован относительно того, какая польза от контроля версий за пределами стека ABAP системы SAP.

Я никогда не видел, что кто-либо использует управление внешним исходным кодом для ABAP, так как он встроен вправо. Я никогда не видел никого abap снаружи за пределами системы SAP. Это действительно не подходит модели.

SAP SAP ABAP - это система одноразвичной системы. Все разработчики войдут в одну систему и разрабатывать там. Система записывает версии автоматически, а группы изменяли объекты на транспортировку. Транспорт - это просто список измененных объектов. После экспорта транспортировки номера версий увеличиваются для каждого объекта, и вы получаете пакет для других систем.

Стек ABAP также не имеет такой концепции «сборки» как таковой. Все, что вы делаете, это патч.

 

I'm interested as to what the benefit is of version control outside the ABAP stack of the SAP system.

I've never seen anyone use external source code control for ABAP, as it's built right in. I've never seen anyone code ABAP outside the SAP system either. It really doesn't fit the model.

SAP's ABAP stack is a single-development system environment. All the developers log on to the one system and develop there. The system records versions automatically, and groups changed objects into transports. A transport is just a list of changed objects. Once you export the transport, the version numbers are incremented for each object and you get the package for the other systems.

The ABAP stack also doesn't really have a "build" concept as such. Everything you do is a patch.

</div
 
 
 
 
1
 
vote

hy,

Как сказал вам Дом, SAP имеет свое управление версией. Однако для того, чтобы регулярно сохранить между транспортировкой, вы можете использовать такие инструменты:

    .
  • SAPLINK (как SAIEN WILI AUS ROHR)
  • zaplink

Данные инструменты могут быть использованы для извлечения компонентов ABAP в XML. Я действительно не советую сделать автоматический импорт в SAP, по многим причинам: # Thoses Tools не имеют гарантий # не все ABAP компонент можно обрабатывать так # Вы потеряете SAP CARGRY, если вы сделаете это на продуктивной системе SAP

Но может быть интересно использовать такие инструменты, как (Google Code), чтобы отобразить подробное изменение программного обеспечения, которое может быть более сложным на объекте ABAP.

Я разработал это на каркасе zap link с программой zaplink_extractor, которая экспортирует компоненты SAP в XML, когда они изменились. Это предотвращает изменение файла XML (новый файл, но тот же контент) и быть обнаруженными инструментами, такими как Mercurial, как изменение.

Надеюсь, это поможет.

Имейте в виду, что вы должны использовать SAP Tools для изменения компонента SAP. Консультант SAP может объяснить это вам детально.

Тарык. [ http://www.steria.com Steria (Франция)]

 

Hy,

As Dom told you, SAP has it's own version managment. However in order to makes regular save between transport releasing, you might use tools like :

  • SAPLink (as saied Wili aus Rohr)
  • ZAPLink

this tools could be use to extract ABAP components into XML. I really do not advise to make automatic import into SAP, for many reasons : # thoses tools have no guaranties # not all ABAP Compoponent can be handled like this # you will lose SAP guaranty if you do this on a productive SAP system

But it might be interesting to use tools like (Google code) to display in detail software change, which could be more complicated on ABAP Object.

I developed this on ZAP Link framework with ZAPLINK_EXTRACTOR program that export SAP Components into XML when they have changed. This prevent XML file to change (new file but same content) and to be detected by tools such as mercurial as a change.

Hope it helps.

Keep in mind that you should use SAP tools to change SAP Component. SAP consultant might explain it to you in details.

Taryck. [http://www.steria.com Steria (France)]

</div
 
 
0
 
vote

Также проверьте SAP CTS +, который используется для управления транспортировками и управлением версией компонентов ABAP и Java.

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

 

Also check out SAP CTS+ which is used for managing transports and version control of ABAP and JAVA based components.

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

</div
 
 
0
 
vote

По крайней мере, модификации должны быть сделаны и проверены в системе развития SAP. Никто не использует внешний редактор с ABAP. (SAP Java с другой стороны ...) Нет причин, по которым вы не можете сохранять резервные копии кода SAP, либо напрямую, как текстовые файлы, либо, (предпочтительно) с файлами SAPLink или Transport Dump. (Спросите своих оснований людей о транспортных файлах). Посмотрите, что если вы пойдете текстовый файл маршрута, вы можете пропустить такие вещи, как текст поля и т. Д., которые хранятся в другом месте в базе данных.

 

At the very least, modifications should be done and tested in an SAP development system. Nobody uses an external editor with ABAP. (SAP Java on the other hand...) There is no reason why you can't keep backups of the SAP code, either directly, as text files, or, (preferably) with SAPLink or transport dump files. (Ask your BASIS people about the transport files). Realize that if you go the text file route, you might miss out on things like field text, etc., which are stored elsewhere in the database.

</div
 
 
0
 
vote

Ответ 2020 на вопрос просто: использовать abapgit . Это дает вам все преимущества современного контроля версий, полностью задокументированы, открытый источник и работает как очарование.

 

The 2020 answer to the question is simply: Use AbapGit. It gives you all the advantages of modern version control, is fully documented, open source and works like a charm.

</div
 
 

Связанный проблема

0  Большинство памяти эффективно для кластерических таблиц: «Выберите Count (*)» или «Выбрать .. EndSelect»?  ( Most memory efficient for cluster tables select count or select endsel ) 
Я хотел бы знать, какое утверждение (см. Ниже) будет более эффективным для определения размера Таблица кластера . Или, по крайней мере, определите, достигает...

2  Отображение объекта IF_IXML_ELEMENT через DISPLAY_XML_DOCUMENT  ( Display an if ixml element object via display xml document ) 
<Р> У меня есть программа, которая отображает документ XML с помощью функционального модуля <код> DISPLAY_XML_DOCUMENT : <код> DATA(xml_document) = new cl_xm...

0  Советы по обработке разрешений в SAP  ( Advice for handling permissions in sap ) 
Я создал решение, в котором я создал объект авторизации, который контролирует, что может обрабатывать пользователя или смотреть в программу. Этот объект автор...

1  Создать исходящую доставку с разным адресом доставки  ( Create outbound delivery with different shipping address ) 
Я искал дни и ничего не нашел. Моя проблема в том, что я должен создать возврат доставки из QM-отчета. Все работает нормально. Однако клиент хочет изменить ...

2  Используя строковые шаблоны "|" Через несколько строк  ( Using string templates across multiple lines ) 
Есть ли способ использовать <код> | оператора строки на несколько строк? Использование классического <код> CONCATENATE токена, вы можете сделать задания, ...

1  Тип сущности SEGW без ключа  ( Segw entity type without key ) 
Я пытаюсь создать службу ODATA, которая возвращает пользовательские параметры, найденные в базе данных USR05. Те, кому можно получить доступ к заявлению ABAP:...

0  Обновление GTS Часть классификации в фоновом режиме  ( Update gts part classification in background ) 
Я ищу способ обновлять данные классификации деталей программно. Это данные на вкладке классификации транзакции / sapsll / product_03. Классификация данных хра...

1  Oo abap: когда и почему? [закрыто]  ( Oo abap when and why ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> закрыт . Этот вопрос находится на основе мнения . В настоящее вре...

4  Отрезать текст, превышающий определенную длину  ( Cut off text exceeding a certain length ) 
У меня есть список с текстами с длиной от 1 символа до нескольких тысяч. Я хочу отрезать все тексты, превышающие 255 символов. Как я могу это сделать? Должен ...

0  Динамический тип данных для переменной  ( Dynamic data type for a variable ) 
Обычно мы объявляем поле таблицы как тип данных, как это: Тип ключа данных VBAK-VBELN. Тем не менее, я хочу динамически давать имена поля в декларации, ...

-2  Преобразовать катушку в текстовый формат  ( Convert a spool into text format ) 
Я хочу отправить катушку, сгенерированный умной формой, по электронной почте как вложение в формате TXT. Вопрос состоит в том, чтобы получить катушку в форм...

5  Как получить доступ к публичному типу объекта  ( How to access a public type of an object ) 
У меня есть класс по имени zcl_rm_spreadsheetml. У него на вкладке типов тип называется Ty_Style с видимостью «Public», и он определяется с помощью записи п...

1  Сохраните внутреннюю таблицу в каталог как файл CSV?  ( Save internal table to directory as csv file ) 
Я пытаюсь сохранить внутреннюю таблицу SAP в каталог SAP в качестве файла .csv. Я узнал, что я должен преобразовать содержимое на тип персонажа, но я получаю ...

1  Спецификация динамического элемента в трансформации вызова  ( Dynamic element specification in call transformation ) 
Я использую преобразование вызова для преобразования XML в структуру ABAP. <код> call transformation demo_id_upper_lower "id parameters mode = 'UP' source...

7  Классы тестирования подразделения ABAP - хорошие ссылки  ( Abap unit test classes good references ) 
Я ищу хороший справочный материал в отношении использования классов тестирования блока ABAP. Я заинтересован в любом из следующих действий: . Документация...

Связанный проблема

0  Большинство памяти эффективно для кластерических таблиц: «Выберите Count (*)» или «Выбрать .. EndSelect»? 
2  Отображение объекта IF_IXML_ELEMENT через DISPLAY_XML_DOCUMENT 
0  Советы по обработке разрешений в SAP 
1  Создать исходящую доставку с разным адресом доставки 
2  Используя строковые шаблоны "|" Через несколько строк 
1  Тип сущности SEGW без ключа 
0  Обновление GTS Часть классификации в фоновом режиме 
1  Oo abap: когда и почему? [закрыто] 
4  Отрезать текст, превышающий определенную длину 
0  Динамический тип данных для переменной 
-2  Преобразовать катушку в текстовый формат 
5  Как получить доступ к публичному типу объекта 
1  Сохраните внутреннюю таблицу в каталог как файл CSV? 
1  Спецификация динамического элемента в трансформации вызова 
7  Классы тестирования подразделения ABAP - хорошие ссылки