ベーシス/移送
システムランドスケープにおける、コンフィグや開発物を別のサーバ/クライアントに運ぶための仕組み。
移送依頼と呼ばれる単位で実施する。
概要 †
この仕組みで、開発機と検証機や本番機など後続システムに変更を転送し、コンフィグやアドオンを複数のシステムで同期させることができる。
そのために、各システムランドスケープ内のシステムは、データファイル・コマンドファイル・ログファイルを格納およびアクセスするための移送ディレクトリが必要となる。
3システムランドスケープの場合、以下3つのステップで変更されたオブジェクトが移送されることとなる。
- リリースした移送依頼に紐付く全てのオブジェクトは、ソースシステムから移送ディレクトリにコピーされ、これをエクスポートされた状態と呼ぶ。
- オブジェクトは検証機のデータベースにインポートされ、ここでオブジェクトの整合性がチェックされる。
- 本番機にインポート。
実際の移送にあたってのガイドラインの例 †
- 共通オブジェクトは独立した依頼依頼を取って先に移送し、移送完了後に個別機能を移送する。
- クライアント非依存オブジェクトを先に移送し、次に依存オブジェクトを移送する
- クライアント非依存の共通オブジェクト、クライアント非依存の個別機能、クライアント依存オブジェクトの単位で移送する
- トランザクションコードは機能自体と同じ移送に含めるか、その機能より後に移送する
- 共通Includeは、クライアント非依存の共通移送依頼に含め、個別機能のIncludeは本体機能と同じ移送依頼に含める
- プログラムと呼び出す汎用モジュールは移送依頼を別々に取得し、先行して移送できるようにする
オブジェクトごとの移送順序ざっくり †
ビューを移送する前にテーブル、テーブルの前にデータエレメント、データエレメントの前にドメイン、トラバリの前にトランザクションコード、トランザクションコードの前にプログラムなどなど、とにかく対象オブジェクトの前に先行オブジェクトを移送するということ。
とはいってもオブジェクトの種類は山ほどあるので、下記に移送の順序をざっくり示す。
初期構築時などは、SAPは賢いので同じ移送依頼に含まれていると勝手に判断してくれるため「迷ったら同じ移送入れちゃえ作戦」も悪くないが、移送以来のマージは簡単でも分割は面倒なもの。
オブジェクト間の依存関係や参照有無なども勘案し、迷ったら分ける、移送する際にまとめても問題なさそうであればマージするなど適宜判断したい。
# | オブジェクト |
1 | パッケージ |
2 | テーブル系のベースオブジェクト(ドメイン、ドメイン値、データエレメント、検索ヘルプなど) |
3 | アドオンテーブルや構造そのもの |
4 | ビューやテーブルデータ型およびロックオブジェクトなどテーブルからの派生オブジェクト |
5 | メッセージクラスおよびメッセージ |
6 | 汎用モジュール、Include、カスタマExit(、BAdI、クラス、各種アドオンプログラムなどプログラム本体 |
7 | バリアント |
8 | トランザクションコード、トランザクションバリアント |
他にもオブジェクトは存在するが、よく使うものの移送順序は概ねこんな感じかと思う。
その他開発物は、SAPクエリ、SAPスクリプト、Smartformなどがあるが、紐付け系のカスタマイズとも合わせて適宜移送する。
それ以外の開発物に関連するカスタマイズ系には、TVARVC(バリアント変数)、TPARA(ユーザパラメータ)、番号範囲オブジェクト、権限オブジェクト、テキストオブジェクト、テキストIDなどがあるが、そもそもこれらは通常のカスタマイズに近いものとして開発オブジェクトに先んじて移送する考えで問題ない。
コメントはありません。 Comments/ベーシス/移送?