Amazon Web Services ブログ
SAP アプリケーション開発を Amazon Q Developer でより速く
はじめに
すべての企業は、開発者の生産性向上、アプリケーションのより高速な構築、レガシーコードの保守負担の軽減を支援する方法を模索しています。Amazon Q Developer は、企業が高度にカスタマイズされた SAP 環境に関連する技術的負債を解消し、新機能をより迅速に提供するのに役立つ生成 AI ツールです。このブログでは、Amazon Q Developer を使用して SAP 開発者の生産性向上とより迅速なイノベーションを支援する方法について説明します。SAP は、世界中の数千の企業のビジネス運営を支えるミッションクリティカルなアプリケーションです。長年(そして数十年)にわたって、多くのお客様は自社固有の要件を満たすために SAP をカスタマイズしてきました。これらのカスタマイゼーションを作成するために、お客様は SAP の ABAP プログラミング言語を利用して、必要なビジネス機能を提供する専用プログラムを作成してきました。ABAP プログラムは企業が SAP をビジネスに適合させるのに役立ちましたが、これにより運用とアップグレードが困難な高度にカスタマイズされた SAP 環境が生まれました。私たちは、ドキュメンテーションが不足している、または元の開発者が退職している「数十年前」に書かれた複雑な ABAP コードについてよく耳にします。現在、これらの企業がクラウドへの移行、S/4HANA を含む SAP の最新オファリングの実装、SAP が推奨する「クリーンコア」戦略(お客様がコア SAP アプリケーションを変更することなく固有の要件を満たすために SAP を拡張する)の採用を検討する中で、レガシーコードは多くの課題を提示しています。
Amazon Q Developer による SAP モダナイゼーションの簡素化
Amazon Q Developer は、私たちの ABAP 開発とアプリケーションサポートチームにとってゲームチェンジャーになるでしょう。
それでは、Q Developer が SAP 開発者の生産性をどのように向上させるかを示す 4 つの使用例を詳しく見てみましょう:
- ABAP コードの生成
- BTP と Fiori アプリケーションの生成
- テストケースの生成
- レガシー ABAP コードのドキュメント化
使用例 #1: ABAP コードの生成
Amazon Q Developer は、自然言語プロンプトを解釈して機能的なコードを作成できます。この例では、オーダー番号とお客様番号でフィルタリングする機能を含む、オープンな販売オーダーを表示する ABAP コードが生成されます。開発者は、Q Developer に次のプロンプトを入力してコードを作成します:
「zhprp_sales_order_overview という名前の ABAP レポートを生成し、オープンな販売オーダーのリストを表示し、オーダー番号またはお客様番号(sold-to-party)でフィルタリングします。含める項目:販売オーダー番号、Sold-to-party、オーダー作成日、明細番号、材料番号、注文数量、確認数量。レコードを販売オーダー番号で並べ替えます。出力を ALV 形式で表示します。」
次の短いビデオは、プロンプトの入力と生成されたコードの出力を示しています。Q Developer チャットウィンドウは画面の右側にあります。ビデオでは、コードが SAP 内で正常に実行されていることも示されています。

使用例 #2: Fiori と BTP のコード生成
次の例は、Q Developer を使用して完全な Fiori アプリケーションを開発する方法を示しています。この例では、CDS ビュー、OData インターフェース、UI を含むフロントエンドとバックエンドコンポーネントを作成するプロセスを段階的に進める単一のプロンプトを使用します。使用されるプロンプトは次のとおりです:
「販売オーダー(作成、更新、削除)用の Fiori アプリケーションを作成するために必要なすべてのことを教えてください。そして、各ステップを作成している間、私を手助けしてください。さらに、ダミーデータを挿入するクラスと、TDD 用の CDS ビューのテストクラスも必要です。」
Amazon Q は階層化されたアプローチに従い、必要なテーブル構造が作成されるデータベース層から始まります。その後、プロセスは CDS 層に移り、基盤となるデータベーステーブルを抽象化しながらデータのビジネス指向ビューを提供するルート CDS ビューが確立されます。ビジネス層では、Amazon Q は動作実装とテストクラスを含む CDS ビューの動作定義の生成を支援します。サービス層では、OData V2 公開のためのサービス定義とバインディングの作成が含まれ、Fiori アプリケーションとバックエンド間の通信が可能になります。UI 層では、Amazon Q はメタデータ拡張を使用した UI アノテーションを支援します。開発は、manifest.json の作成、サービスバインディング、アクティベーション、パブリッシングを含むロードマップに従って続行されます。最終ステップでは、完全な Fiori アプリケーションを生成するためのカスタムコントローラーアクションと HTML UI5 コンポーネントの作成が含まれます。

使用例 #3: 単体テストケースの生成
Amazon Q Developer は、ドキュメンテーションと元の開発者が利用できない場合に、既存のコードのテストクラスの作成を支援します。ユーザーは単純にコードを Q のインラインチャットに貼り付けるだけで、包括的なテストシナリオを自動的に分析して生成します。生成されたコードの構文エラーは、ワンクリック実装で Q のインラインチャット機能を通じて迅速に修正できます。生成されたテストクラスは SAP システムですぐに利用でき、必要に応じて微調整できます。
「パブリックメソッド用の単体テストクラスを生成してください “ここにクラスロジック/詳細を提供してください”」
この機能により、開発者は複数の反復後でもビジネスロジックを簡単にテストでき、手動テストの膨大な労力を節約できます。

使用例 #4: レガシー ABAP コードのドキュメント化
次の例は、Amazon Q Developer が ABAP コードを分析し、チャットウィンドウのカスタムテンプレートに基づいて既存のコードベースと新しく作成されたコードの両方に適応してドキュメンテーションを自動生成する方法を示しています。ドキュメンテーションを PDF または Word ドキュメントに簡単に変換できます。Amazon Q Developer は、主要な情報を抽出し、一貫したフォーマット標準を維持することで、ドキュメンテーションプロセスを合理化します。この例では、次のプロンプトが使用されました:
「上記の ABAP コードの技術ドキュメンテーションを生成してください。次のポインターをテンプレートとして使用して、各コンポーネントが実行するアクションを明確に説明する非常に詳細なドキュメンテーションを提供してください:
1. クラス/プログラム名
2. クラス/プログラム概要
3. 技術仕様
3.1 データ構造
3.2 選択画面(提供されている場合)
4. 主要コンポーネント
4.1 サブルーチン/メソッド
5. テスト実装(提供されている場合)
5.1 テストメソッド
5.2 テストセットアップ
6. 技術的依存関係
7. エラーハンドリング
8. パフォーマンスの考慮事項
この機能により、組織は関連するカスタムオブジェクトによって影響を受けるビジネスプロセスを簡単に理解し、ドキュメント化でき、移行と知識移転の際に役立ちます。

上記の例からわかるように、Amazon Q Developer は SAP 開発者の手作業を削減する強力な機能を提供し、お客様がビジネスプロセスをより迅速にモダナイゼーションするのに役立ちます。お客様がこれらの機能を継続的に活用する方法を見ることを楽しみにしています。
価格モデル:
Amazon Q Developer の無料ティアから始めることができます。これは、月に 50 回のチャットインタラクション、月に 5 回のソフトウェア開発支援、月に最大 1,000 行のコード変換を提供します。Pro ティアは、無料ティアのすべての機能に加えて、ユーザーとポリシーを管理するエンタープライズアクセス制御機能、提案を改善するためにコードベースに Q Developer をカスタマイズする機能、高度な機能のより高い使用制限を提供します。詳細な価格プランを探索するにはこちらをクリックしてください。
今すぐレガシー SAP コードをモダナイゼーションしましょう。Amazon Q Developer のセットアップに関する段階的な指示については、このワークショップにアクセスしてください。SAP の使用例を実演し、これらやその他のシナリオの詳細な解説を提供する今後の YouTube ビデオにご注目ください。Amazon Q Developer の詳細については、ドキュメンテーションをご覧いただくか、レガシー SAP コードのモダナイゼーションをどのように支援できるかについて話し合うために私たちのチームにお問い合わせください。
本ブログは Amazon Q Developer CLI による機械翻訳を行い、パートナー SA 松本がレビューしました。原文はこちらです。