「SAP Basis概要の教科書」No.4 各種コピーツールの紹介
INDEX LINK
■はじめに
前回はSAPシステムにおけるクライアントの考え方についてご説明しました。今回はそのクライアントをコピーする方法についてご紹介します。併せてクライアントのみではなく、システム全体をコピーする手法についても最後に少し説明したいと思います。
1.クライアントコピーの必要性
前回お伝えした通り、業務要件の違いや様々なテストを実施するために複数のクライアントが必要になります。そこで、クライアントコピーという作業が発生します。そのクライアントコピーには「ローカルクライアントコピー」、「リモートクライアントコピー」、「クライアントエクスポート・インポート」という手法があります。下記にそれぞれの手法と用途について説明していきます。
2.ローカルクライアントコピー
1つ目は「ローカルクライアントコピー」です。これがBasis運用の中で最も頻繁に行う作業になります。トランザクションコードはSCCL(S/4 HANAからはSCCLN)になります。下図のように同一システム内で複数のクライアントを作成する時に使います。主に開発案件のためにテスト環境を複数用意するケースなどに使います。
3.リモートクライアントコピー
リモートクライアントコピーは“環境をまたいだコピー”を実現します。開発環境は一般的に利用者に公開されないため、業務データなどのトランザクションデータ(材料を仕入れた、作った製品を販売したなどの取引データ)がほとんど入っていません。しかし、開発したプログラムのテストを行うためには実際の業務データが必要になることがあります。この業務データが格納されているのは、利用者に日々使われている本番環境になります。そこで、その本番環境などの別環境のクライアントを、ネットワークを経由してクライアントをコピーする、「リモートクライアントコピー」という仕組みが用意されています。トランザクションコードは「SCC9(S/4 HANAからはSCC9N)」になります。
4.クライアントエクスポート・インポート
トランザクションコードは「SCC8(S/4 HANAからはSCC8N)」になります。
こちらも用途はリモートクライアントコピーと同じで、環境をまたいだコピーを行いたい場合に使います。違いはコピーする“タイミング”になります。リモートクライアントコピーは実行するとすぐコピーが始まりますが、エクスポート・インポートは文字通りいったんファイルにエクスポートし、そのファイルをコピー先に運んだ後にインポートを行います。間にエクスポートした物理ファイルのコピーが挟まるため、全体のコピー時間としては長くなります。では、この手法はどのようなケースで使われるのでしょうか?リモートクライアントコピーの場合は前述の通りネットワークを介するため、コピー実行中、常にネットワークトラフィックが発生します。そのため、例えば本番環境からコピーする場合、本番ネットワークにある程度負荷がかかります。企業の繁忙期などSAP本番システムの利用者が多い期間にリモートクライアントコピーを実施すると、ネットワークの負荷が上がり、利用者の業務に影響が出るリスクがあります。そのようなネットワーク負荷を避けるため、いったんファイルに出力し、夜間などネットワーク負荷が低い時間にコピーする、またはテープなどの外部媒体にコピーして別環境へ運ぶなどの使い方を想定したクライアントエクスポート・インポートの機能が用意されています。
5.クライアントコピー実行時の注意点
これまでクライアントコピーの種類を紹介してきましたが、実際に実行する際には注意すべき点があります。
まず、“クライアント自体”もデータベース内に格納されているデータの一部のため、コピーによりデータベースの容量を消費することになります。つまり、1つのクライアントをコピーすることで、単純に2倍の容量が必要になります。そのため、クライアントコピーを実行する前にデータベースの空き容量を確認するようにして下さい。
2点目はコピー時の、コピー元クライアントの“状態”についてです。コピー実行中はクライアントが“ロック”された状態になります。そのため、伝票入力などデータの更新作業ができなくなりますので、利用者との業務制限の調整が必要になります(クライアントコピー中なので参照のみ可能であることを伝える必要がある)。本番環境のクライアントは常に業務データが蓄積されていくため、巨大化していきます。サイズが大きいと、その分コピーにも時間がかかることになるため、コピー実行時のデータ更新不可期間の業務調整もBasisの重要な仕事になります。
6.そのほかのコピーツール
これまでクライアントのコピーについて説明しましたが、クライアントが格納されている“システム全体”をコピーする手法も用意されています。それがシステムコピーという手法になります。
例えば本番環境を丸ごとコピーした環境を用意したい場合に利用されます。
本番のコピーであれば前述のリモートクライアントコピーやクライアントエクスポート・インポートでもよいように思えます。なぜシステム全体をコピーする必要があるのでしょうか?
それは前回説明したクライアント“依存”データと“非依存”データの違いが関係してきます。
クライアントコピーの場合、文字通りクライアントに“依存”するデータのみがコピーされます。例えばプログラムなどの“非依存”データはコピーされないため、業務データはクライアントコピーにより本番環境データで更新されたが、プログラムは開発途中の状態のまま(本番環境で実際に動いているバージョンと異なる)いう状況が発生します。このプログラムの状態の差により、動作が本番環境と異なり正確なテストが実施できないという事象が発生してしまいます。そのような事態を避けるため、システム全体をコピーし、完全にコピー元の環境を再現させるためにシステムコピーという手法が用意されています。こちらはトランザクションコードではなく、SAPのSoftware Provisioning Manager(略称:SWPM)というパッケージの中で用意されています。
7.おわりに
いかがでしたでしょうか。今回はクライアントコピーの種類とその用途、さらにシステム全体のコピーについて説明しました。クライアントコピーはBasis運用で頻繁に発生する重要な作業です。前述の注意事項を念頭に置きながら理解を深めて頂けると幸いです。次回は、プログラムの開発に関わってくるBasis業務の中のもう一つの重要な作業である“移送”について紹介したいと思います。