SAPシステムの移送とは? ~システム構成・移送方法を解説~(vol.114)
- 公開日:
- 最終更新日:
SAPシステムの運用にあたり、法改正や運用改善などに応じた機能追加/変更は日々発生しますが、追加/変更した機能が他の機能にどのような影響を及ぼすのか見通しが立たたない状態でいきなり本番環境に機能追加/変更を加えると、エラー/障害のリスクが高いです。
SAPシステムには、機能追加/変更を安全に行うための仕組みとして「移送」があります。
日常業務に支障をきたさないよう機能追加/変更するためには、SAPシステムの構成を理解した上で移送する必要があります。
そこで本ブログ記事では、SAPシステムの基本構成をご説明のうえ、SAPシステムの移送方法について、実際の作業手順に沿って解説します。
*本ブログの「SAPシステム」は、「SAP ERP」および「SAP S/4HANA」を指します。
SAPシステムの移送とは? ~なぜ必要?システム構成について解説~
SAPシステムの移送とは、開発環境で作成/変更したオブジェクト(プログラム/カスタマイズ設定など)を、テスト環境や本番環境へ安全かつ確実に反映する仕組みのことです。
SAP社は、SAPシステムを 「開発環境」+「検証環境」+「本番環境」という3つの“インスタンス”で構成することを推奨しています。
*SAP用語における“インスタンス“は、SAPシステムのインストールされたアプリケーションサーバを意味します。
*「開発環境」+「検証環境」+「本番環境」の3つのインスタンスでシステムを構成することを“3ランドスケープ”と言います。
*「開発環境 兼 検証環境」+「本番環境」という2ランドスケープを採用している企業もあります。
まずは、各インスタンスの役割について解説します 。
- 開発環境
開発環境は、その名の通り、オブジェクト(プログラム/カスタマイズ設定など)を開発する用途のインスタンスです。
開発を行っている間、業務に支障が出ないよう、本番環境とは切り離された開発環境にて開発を行います。
- 検証環境
検証環境は、テスト環境とも呼ばれ、開発環境で開発したオブジェクト(プログラム/カスタマイズ設定など)の動作を検証する用途のインスタンスです。
検証環境では、開発は基本的には行いません。テストなどを通して不具合が出た場合は、また開発環境で改修のうえ、検証環境にて再度 検証を行います。
- 本番環境
本番環境は、ユーザが業務に用いるインスタンスです。
本番環境では、開発は基本的には行いません。開発環境で開発し、検証環境で問題がないことを確認後、本番環境で実際に使用します。本番環境で不具合が生じた場合は、検証環境で再度確認のうえ、修正が必要であれば開発環境で改修のうえ、再度 検証環境で検証→本番環境で使用のサイクルを問題なく使用できるようになるまで繰り返します。
このように、「開発環境」→「検証環境」→「本番環境」ごとに用途を区切って段階を経ることで、どの段階で問題があるのかを明らかにし、本番環境でのエラー/障害を避ける仕組みとなっています。そのため、開発環境で開発したオブジェクト(プログラム/カスタマイズ設定など)を検証環境や本番環境へ安全かつ確実に反映する移送が必要となります。
SAPシステムのクライアントとは? ~クライアント依存/非依存で移送の要否を判断~
SAPシステムは基本的に開発環境/検証環境/本番環境の3インスタンスから構成されることをご紹介しましたが、業務上3インスタンスでは足りない場合があります。
「並行して複数のテストを行う環境が要る」 / 「サンドボックス環境が別で欲しい」といった場合、SAPシステムでは「クライアント」という機能を使用します。SAPシステムでは、1つのインスタンス上に、用途に応じて複数のクライアントを作成することができます。クライアントは、理論上000~999まで作成が可能です。
例えば、本稼働用/カスタマイズ用/テスト用/トレーニング用/デモ用……など、用途に応じて複数のクライアントを1つのインスタンス上に作成することが可能です。適切な属性を振り分けるためのクライアントロール機能が存在しており、クライアントごとに「変更の記録」や「変更の禁止」などを設定できます。
3ランドスケープでのシステム構成&移送機能に加え、このクライアントを活用することで、より安全にSAPシステムを利用することができます 。
移送におけるクライアント依存/クライアント非依存について
クライアント間の移送が必要かは、開発環境で作成/変更したオブジェクト(プログラム/カスタマイズ設定など)が クライアント依存 or クライアント非依存 かによって判断します。
- クライアント依存:各クライアントで設定された内容に依存するオブジェクト(例. 環境設定など)
- クライアント非依存:全クライアントで共通する設定に関わるオブジェクト(例. テーブル定義など)
どちらに当てはまるかによって、クライアント間の移送の要否が決まります。
- クライアント依存の場合
クライアント依存の場合、同一インスタンス内の他のクライアントに反映されないため、他のクライアントに反映したい場合は、クライアント間の移送が必要となります。
トランザクションコード:SCC1などを用いて、クライアント間の移送を行います。他のインスタンスのクライアントに移送する場合は、反映したいクライアント以外に影響を及ぼさないよう注意が必要です。
*トランザクションコードは、一般的に「Tr-cd」と表記されます。 - クライアント非依存の場合
クライアント非依存の場合、開発環境で作成/変更を行うと、基本的に同一インスタンス内の全クライアントに自動的に反映されるため、クライアント間の移送作業は不要となります。そのため、クライアント非依存のオブジェクトを開発する際は、他のクライアントへの影響を考慮する必要があります。
SAPシステムにおける移送手順とは?
SAPシステムにおける各インスタンス間の移送は、前述の通り、「開発環境」→「検証環境」→「本番環境」の順序で行います。
移送自体の詳細な手順=移送手順は次の通りです。
- 移送依頼
まずはじめに、「移送依頼」を作成します。基本的に開発環境で作成/変更したオブジェクトを保存すると、「移送依頼」のプロンプトが立ち上がります。
クライアント依存のオブジェクトを移送する場合は「カスタマイジング依頼」、クライアント非依存のオブジェクトを移送する場合は「ワークベンチ依頼」となります。
プロンプトの中で右下マーク、「依頼登録」ボタンをクリックすると、移送対象など、詳細な内容を設定する画面が立ち上がります。「移送依頼」には作成ユーザが紐づけられるので、誰が開発したのか確認をすることが可能です。
また、「依頼登録」で入力した内容を保存すると、基本的には「移送依頼番号」が自動で採番されます。この「移送依頼番号」は、「どのオブジェクトを変更したのか」という意味を持ちます。そのため、一度「移送依頼番号」が採番されたオブジェクトを改修した場合、次段階のリリースを行うまで同じ「移送依頼番号」に紐づきます。右下緑のチェックボタン押下で登録完了です。 - リリース
「移送依頼」を作成した次は、「リリース」を行います。
トランザクションコード:SE01(移送オーガナイザ)にて、「移送依頼」の一覧を確認できます。
内容を確定し、移送対象の「移送依頼番号」を下位のオブジェクトからリリースします。画面上のトラックマーク、「リリース」ボタンをクリックするか、右クリックして「選択」→「リリース」をクリックすることで、「リリース」が実行されます。「リリース」後は変更ができなくなるので注意しましょう。
「リリース」されるオブジェクトは、「移送依頼番号」を取得した時のオブジェクトの状態ではなく、「リリース」前に最終保存された状態で移送されます。「リリース」後に変更が生じた場合は、改めて新規で「移送依頼番号」を取得する必要があります。
「リリース」後は自動的にエクスポートされます。 - インポート
最後に、移送先の環境で「インポート」を行います。
移送先の環境で、移送ファイルを適切なフォルダに配置後(例:¥usr¥sap¥trans\cofiles)トランザクションコード:STMS(移送管理システム)より、該当の「移送依頼番号」を選択、「追加」よりインポートキューに移送依頼を追加、インポートを実行し、不具合なく終了すれば移送完了です。
対象が緑のチェックマークに変わりインポートが完了となります。
まとめ
さてここまで、SAPシステムの基本構成や移送方法について解説してまいりました。移送はSAPシステムを導入/運用するうえで頻発する作業ですが、本番環境に不具合のあるファイルを移送してしまうと業務に支障をきたしてしまうため、決しておろそかにしてはならない重要な作業です。安全かつ確実に移送を完了するためには、SAPシステムの構成を理解し、正しい手順に沿って丁寧に作業しましょう。
※本記事は、2024年11月1日時点の情報を基に作成しています。製品/サービスに関する詳しいお問い合わせは、電通総研のWebサイトからお問い合わせください。