ブログ

【SAP BTP ABAP】abapGitを使った環境移行を詳細解説!

この記事をSNSでシェア!

はじめに

SAP BTP ABAP Environment を利用する上で、開発したプログラムを安全に保管し、環境間でスムーズに移行することは重要です。
私自身、個人で学習や技術検証を行う中で、開発したABAPプログラムの「プロジェクト間でのコード移行」や「バックアップ」の必要性を感じました。

本記事では、その際に調べたabapGitを活用してABAPコードをリポジトリ(GitHub)に保存し、新しいSAP BTP ABAP Environmentインスタンスへ移行するための具体的な手順を詳細に解説します。

abapGitとは

SAP BTP, ABAP Environment は、開発したプログラムを通常のファイルシステム上ではなく、ABAPリポジトリ(データベース)内に格納するクラウドサービスです。
この環境の特性上、ABAPコードを外部Gitリポジトリと連携させるためには、ABAPリポジトリ内のオブジェクトをGitが認識できるファイル形式に変換する仕組みが必要です。

abapGitは、この変換と連携をABAPシステム内部で自動実行する専用ツールです。
これにより、ABAPオブジェクトを外部リポジトリへエクスポート/インポートできるようになります。
Eclipse/ADTプラグイン版を利用することで、GUI上で簡単にABAPオブジェクトのエクスポートやインポートが可能になります。

処理概要

abapGitを活用した環境間のコード移行は、主に以下の3ステップで実行します。

①旧インスタンスからGitHubへコードをプッシュ(バックアップ)
 開発済みのABAPプログラムを、abapGit経由で外部リポジトリ(GitHub)へ転送・保存します。
②新規インスタンスを作成

 移行先となる新しい ABAP Environment インスタンスを作成します。
③新インスタンスでGitHubからコードをプル(復元)

 新しいインスタンスで外部リポジトリを読み込み、ABAPプログラムをインポートして復元します。

この手順を行うことで、環境を新しいインスタンスへ移行することができます。

【補足:旧インスタンスの削除について】
③の移行作業を実行し、新環境での動作確認が取れた後、
旧インスタンスが不要であれば削除してください。

前提条件

・SAP BTP ABAP Environmentのインスタンスが作成済みであること。
・GitHubアカウントを持っていること。
(Backlog Gitなど他のGitサービスも利用可能です)
・ABAP開発環境(Eclipse + ADT)が設定済みであること。

サンプルプロジェクトの作成は以下の記事を参考にしました。
ABAPインスタンスでソースコードを作成または適応する

作業手順

abapGit用のプラグインをインストール

①Eclipseのメニューから ヘルプ>「新規ソフトウェアのインストール…」を選択します。


②表示されたポップアップで、以下のURLを入力します。
https://eclipse.abapgit.org/updatesite/

③abapGit for ABAP Development Tools (ADT)を選択し、「次へ」をクリックします。


④ウィザードに沿って進め、インストールが終了します。

⑤ウィンドウ>ビューの表示>その他 から abapGit Repositories を選択します。


⑥以下のビューが表示されることを確認してください。

Gitリポジトリを作成

①GitHubへログインし、画面右上の「+」アイコンから「New repository」を選択します。


②リポジトリ名など必要事項を入力し、リポジトリを作成します。

GitリポジトリとABAPパッケージのリンク設定

①EclipseのabapGit Repositoriesの右上にある「+」アイコンをクリックします。


②ポップアップに、先ほど作成したGitリポジトリのURLを入力します。


③GitHubユーザー名とPersonal Access Token (PAT)を入力します。

【Personal Access Token (PAT)の取得方法】
1.GitHubにログインし、右上のプロフィール画像をクリックし「Settings」を開きます。
2.左側のメニューの一番下にある「<> Developer settings」を選択します。
3.「Personal access tokens」→「Tokens (classic)」と進みます。
4.「Generate new token (classic)」をクリックします。
5.Token note:トークンの用途が分かる名前を入力します。
6.Expiration:有効期限を設定します。
7.Select scopes:重要な設定です。
 「repo」のチェックボックスに必ずチェックを入れます。
 これにより、abapGitがリポジトリを読み書きできるようになります。
8.一番下にある「Generate token」をクリックします。
9.生成されたトークン(英数字の長い文字列)が一度だけ表示されます。
 この画面で必ずコピーし、安全な場所に保存してください。
 画面を閉じると二度と確認できません。

Credentials Managerという確認ポップアップが表示されたら、「はい(Y)」を選択することで、毎回認証情報を入力する手間を省くことができます。

④パッケージ名を参照し、GitリポジトリとABAPパッケージを紐づけます。


⑤「完了」を押下し、紐づいたパッケージがabapGit Repositoriesに追加されたことを確認します。

ABAPコードのプッシュ

①abapGit Repositoriesから紐づけたパッケージを右クリックし、「Stage and Push」を押下します。


②表示されたウィンドウで、コミットしたいオブジェクトをUnstaged ChangesからStaged Changesへドラッグ&ドロップで移動させます。

③コミットメッセージを入力し、「コミットおよびプッシュ」を押下します。


④ポップアップが表示されたら「OK」を押下します。

⑤GitHubのリポジトリにABAPソースコードがプッシュされていることを確認してください。

これでバックアップは完了です。

Gitリポジトリからのプル

移行先インスタンスにてプルする方法について記載します。

①新しいインスタンスに接続し、移行元のパッケージ名と同じ名前でパッケージを作成します。


②新しいインスタンスでは、abapGit Repositoriesへ再度abapGitリポジトリを登録する必要があります。
「GitリポジトリとABAPパッケージのリンク設定」と同じ手順で登録を行ってください。
※パッケージ名は移行元と同じパッケージ名を入力してください。

③abapGit Repositoriesから、登録したパッケージ(リポジトリ)を右クリックし、「Pull」を押下します。


④接続情報を確認し「次へ」、パッケージ欄を確認し「次へ」を押下します。


⑤復元したいオブジェクトにチェックを入れます。


⑥「完了」を押下します。

⑦プログラムが復元されていることを確認してください。

最後に

今回は、SAP BTP, ABAP Environmentにおける abapGitを活用したコードのバックアップと移行・復元手順を解説しました。

abapGitを利用したこれらの手順は、環境の移行時だけでなくプロジェクト間のリソース共有コードの外部保全といった場面においても非常に有効な手段になります。

本記事が、同じ課題を持つエンジニアや学習者の方々の一助となれば幸いです。
今後も、SAP BTPに関する技術記事や備忘録を発信していきます。
最後までお読みいただき、ありがとうございました。

参考

SAP BTP ABAP環境
Technology Blog Posts by SAP
abapGit のインストールと設定
Push Your ABAP Source Code from SAP BTP, ABAP Environment to a GitHub Repository using abapGit
abapGit リポジトリから ABAP 環境への内容のインポート

投稿者プロフィール

山田 翔太
山田 翔太
2024年新卒入社。
現在はJavaやvue.js、AWSを中心にWebアプリの開発に取り組んでいます。
趣味はスポーツ観戦で、野球やサッカー、バスケットボールなど名古屋のチームを応援しています。
業務で学んだことや疑問に感じた点を記事として発信し、共有していきたいと思います。
この記事をSNSでシェア!