「SAP Basis概要の教科書」No.3 クライアント環境編
INDEX LINK
■はじめに
今回はSAPシステム特有の考え方となる「クライアント」の概念についてご説明します。俗にいうクライアント・サーバ型のクライアントとは全く違う概念になりますので、ここでしっかりご理解頂いてBasisとしてのスキルアップにつなげて頂ければ幸いです。
また、後半ではそのクライアント依存のデータと非依存のデータの違い、扱いについて説明していきます。
■クライアントとは?
SAPシステムにおける「クライアント」とは、システム内で論理的に独立したデータ管理が可能な環境のことを指します。つまり、1つのシステムの中にいくつものクライアントを構成し、それぞれ独立したビジネス設定(カスタマイズ)や、独自のユーザデータ、マスターデータを保持することが可能になっています。下記イメージ図をご参照下さい。
それぞれのクライアントで個別に格納されるデータについて簡単にご説明いたします。
①クライアント依存カスタマイジング
会社コード、プラント、倉庫番号などのビジネス設定になります。例えば国内と海外の拠点で会社コードが異なるためにクライアントを分けるケースがあります。
②アプリケーションデータ
仕入れや販売などのトランザクションデータや、商品マスタ、品目マスタなどの業務マスターデータになります。
③ユーザデータ
このクライアントを利用するユーザ情報や権限(ロール)のデータになります。
■1つのシステム上でクライアントが複数あるメリットとは?
なぜ一つのシステム上にクライアントが複数必要なのでしょうか。
1つはビジネス用途の違いによりクライアントを分けるケースがあります。
例えば、国内だけでなくグローバルに業務を展開している企業の場合、SAPシステムを国内外に展開・導入する企業がほとんどです。その場合、国により法律や税に関する考え方などビジネス文化が異なってきます。そのような違いを一つクライアントで踏襲するのは難しいため、国単位でクライアントを分けるというケースがあります。また、国単位までいかずとも国内の拠点間でも様々なビジネスルールによりクライアントを分けざるを得ないというケースもあります。
もう一つのケースは、様々な業務要件でシステムの改修が必要になった場合に分けるケースがあります。マスタとなるクライアントを一つ構築しておき、そのマスタクライアントをコピーして(“クライアントコピー”という作業が実際のBasis運用の中心的作業の中に存在します)、新しいクライアントを作成。そのクライアントにテストデータを流し込んでテストをする場合などがあります。
このように、ビジネスユースや開発・テストのために1つのシステム上に複数のクライアントが構成できるようになっています。
■SAPシステム構築時に標準で使えるようになっているクライアント
それではクライアントはどうやって作るのでしょうか?毎回いちから作成しないといけないのでしょうか?SAPでは簡単にクライアントが作れるよう、最初からいくつかクライアントが用意されています。そのクライアント番号と用途について簡単にご説明します。
①クライアント000
全てのSAPテーブル構造が格納された参照用の基本クライアントになります。そのため、このクライアントを修正、削除することは基本的に実施しません。SAPシステム構築後、このクライアントをコピーし、ベースとなるマスタクライアントを構築します。
②クライアント001
クライアント000のデータにテスト会社コードなどサンプルデータを追加したクライアントになります。サンプルデータも含めてコピーしたい場合は、こちらのクライアントをコピーして新しいクライアントを作成するケースもあります。
③クライアント066
こちらは業務では使わない特殊なクライアントになります。アーリーウォッチアラート(通称:EWA)という仕組みで、SAPシステムの性能情報を収集しレポートを出力するためのクライアントになります。この出力されるレポートを分析し、性能を改善していくのもBasisの重要な運用業務になります。こちらについては別の機会に詳しく説明したいと思います。
■クライアント非依存と依存データについて
これまでクライアントの概要について説明してきました。データの中には、そのクライアントに依存するものとそうでないもの(非依存)があります。最後にそのデータの違いについてご説明します。
①クライアント依存データ
上述の業務マスターデータ、トランザクションデータ、ユーザデータなどがこれに当たります。また、ユーザに紐づく権限、ロールもクライアント依存データになります。
②クライアント非依存データ
SAPのプログラム類やクライアント共通のカスタマイジングなどになります。
例えばプログラムの不具合を修正するために、SAPの“ノート”という修正パッチを適用する場合があります。これらノートは基本的に非依存のデータになります。
また、プログラムの実行条件(2000年1月の売り上げデータを抽出したい場合などの条件)をパラメータ化したものを“バリアント”といいます。このバリアントはクライアント依存データですが、全クライアントで共通の条件のバリアントを用意したいという場合に、クライアント非依存データとしてバリアントを作成することも可能になっています。
つまり、データによってクライアント依存、非依存が確定しているものばかりではなく、用途に応じて変更できるものも存在します。
■クライアント依存・非依存データと移送について
SAPシステムではシステムの改修を“移送”という仕組みで、開発機から本番機まで反映していきます。その際に対象の改修がクライアント依存なのか非依存なのかを事前に理解しておかないと、思わぬトラブルになります。
①クライアント非依存データを依存データと勘違いして対象クライアントに移送した
プログラムの修正移送などがこれに当たります。非依存データは全クライアントが対象になるので、特に問題がないように思えますが、仮に一部のクライアントで古いバージョンのプログラムでテストを実施されていた場合、この移送によりバージョンが勝手に上がってしまい、テスト時に想定していない動きをしてしまうリスクがあります。移送する修正がクライアント依存のデータなのか非依存のデータなのか、事前に確認し、非依存データの場合は他のクライアントで修正中の案件に影響がないか確認するようにしましょう。
②クライアント依存データを非依存データと勘違いしてマスタクライアントのみに移送した
この場合、依存データですのでマスタクライアントのみ移送されていると当然目的のクライアントには修正が反映されないことになります。正しいクライアントに移送しましょう。
■おわりに
いかがでしたでしょうか。SAPシステムにおけるクライアント、依存データ・非依存データの考え方について、ご理解頂けましたでしょうか。Basis運用の中でこのクライアントのコピー、削除の作業が頻繁に発生します。また、クライアントコピーの中でも、ローカルクライアントコピー、リモートクライアントコピー、クライアントエクスポート・インポートなど様々なコピーパターンがあります。次回はそれぞれのユースケースについて説明したいと思います。Basis運用の中でクライアントの考え方については理解しておくことが大変重要ですので、運用しているSAPシステムでどんなクライアントがそれぞれのシステムにいくつあるのか確認してみるところから始めてみるのも良いかもしれません。