S/4HANAのデータ移行ツールは何を使うべき!? 3つのデータ移行ツールの機能概要や注意点を徹底解説
本記事では、S/4HANAのデータ移行ツールとして新登場した移行コックピットを中心に、3つのデータ移行ツールの機能概要や注意点について解説します。
なお、本記事はS/4HANA Cloudとも内容は共通しますが、S/4HANA On-Premiseを前提に解説していきます。
移行コックピット(Migration Cockpit)
はじめに、S/4HANAから新登場したデータ移行ツールである移行コックピットについて解説していきます。
移行コックピット登場の背景
R/3時代のSAP標準の移行ツールはLSMW(Legacy System Migration Workbench)でした。
SAP Note 2287723 – LSMW in SAP S/4HANA on-premise (S4CORE) に記載の通り、S/4HANAでもトランザクションコード:LSMWを使用することができますが、S/4HANAへのデータ移行ではサポートは提供されていません。
一部の領域でLSMWを使用できる場合でも、S/4HANAでは使用できなくなった不適切な移行インタフェースが提案される可能性がありますので、ご注意ください。
万が一、LSMWの移行に起因してトラブルが起こった場合、SAP社のサポートを受けられなくなる可能性があります。
このため、S/4HANAのデータ移行ではSAP標準の移行ツールである移行コックピットがファーストチョイスとなります。
移行コックピット概要
移行コックピット(Migration Cockpit)はS/4HANA標準の移行ツールで、LTMCとも呼ばれます。
移行コックピットは、トランザクションコード:LTMCから起動します。
<移行コックピットの特徴>
①S/4HANA Cloud、S/4HANA On-Premiseの両方で使用可能
②追加ライセンスや追加インストールは必要ありません
③プログラミングのスキル無しで、GUIベースで利用可能
(実際には裏で汎用モジュールが自動的に生成されますが、コードを見たり書いたりする必要はありません)
④移行可能なデータは、マスタ、バランス、トランザクションデータのみ
(カスタマイズデータはサポートされていません)
基本的にレガシーシステムからの初期移行を想定しており、インターフェース機能の一部としての利用や、ユーザーが日常的に使うアップロードツールとしての利用は想定されていません。
後述するABAPプログラムや手入力と比較し、機械的にアップロードするためミスが起こりにくいことから、特別な事情がない限り、移行コックピットを使用するべきです。
移行コックピットによる3つの移行方法
ここからは、移行コックピットの3つの移行方法について解説していきます。
①ファイル(Transfer data using files)
取込シートをダウンロードし、データを入力して取り込みます。
少量のデータを取込み、移行されたデータがどのように動作するのか確認したい時に選択します。
基本的な流れな以下の通りです。
1.移行オブジェクトを選択します
2.取込シートをダウンロードします
3.取込シートでマッピングとコンバージョンを行います
4.シミュレーションを実施します
5.取込シートを取り込みます
6.S/4HANAで画面を開き、取込結果を確認します
②ステージングテーブル(Transfer data using staging tables)
レガシーシステムとS/4HANAの間に中間テーブルを作成し、中間テーブルでマッピング/変換を行います。
中間テーブルは、S/4HANA環境のローカルのデータベーススキーマに作ることもできますし、外部のSAP HANAのデータベーススキーマに作ることもできます。
自動的に大量データを取り込む場合に推奨されます。
データベーステーブルでマッピング/変換できるため、ファイル取込よりも柔軟性があります。
例えば、データのソート、検索、重複チェックなどが簡単にできるため、移行件数が多い場合はファイルよりも効率的です。
③SAPシステムからの直接転送(Transfer data directly from SAP Systems)
レガシーシステムのSAP ECCから直接データを転送することができます。
なお、New Implementationでは、基本的にこの方法は使用できません。
移行コックピットの注意点
ここからは、移行コックピットを使用する上での注意点について解説していきます。
①更新(Update)、削除(Delete)に対応していない
移行コックピットは初期移行のためのツールであるため、取り込んだレコードを更新することや削除することができません。
SAP Note 2650201 – Migration Cockpit: How to create/update data records には下記の通り記載されています。
移行コックピットは、
最初にデータを移行するために構築されています。
一括更新ツールではなく、システムにデータを永続的にアップロードするためのインタフェースとして
使用されるように構築されていません。
したがって、データのインポートミス(特定の項目の値を入れ忘れたなど)が発生すると、下記の方法でリカバリします。
・一括更新(トランザクションコード:MASS)
・SAPシステムをロールバックして再投入
なお、既存のレコードの更新(Update)はできませんが、拡張(extend)は可能です。
つまり、新しい組織レベル(会社コードや販売エリア)で得意先マスタを拡張できるということです。
②すべてのS/4HANAオブジェクトが対応しているわけではない
SAPの公式ページには移行コックピットで移行できるオブジェクトが一覧化されています。
<利用可能な移行オブジェクト>
上記ページにはS/4HANAのマスタ、トランザクションデータでも、記載がないオブジェクト(例:HCM)があります。
記載がないオブジェクトについては後述するABAPプログラム、手入力で移行しなければなりません。
③ヒストリカルデータの移行はサポートされていない(一部制限付き)
オープンなトランザクション、バランスデータしか移行しないというのがSAPのポリシーであるため、基本的に処理済みのデータの移行はサポートされていません。
SAP Note 2587192 – Migration of historical balances to SAP S/4HANA and SAP S/4HANA Cloud に記載されていますが、S/4HANA 1909以前は過去の会計系のトランザクションの移行はサポートされていませんでしたが、S/4HANA 1909以降は
特定のオブジェクトや移行方法に限り、制限付きでサポートされています。
ABAPプログラム
次に、2つ目のデータ移行ツールとしてABAPプログラムによるデータ移行を解説していきます。
ABAPプログラム概要
データを移行するレポートプログラムをABAPで開発します。
ABAPプログラムでデータ移行する理由は下記の3つがあります。
①移行オブジェクトが移行コックピットに対応していない
前章で解説した通り、移行コックピットが対応していないオブジェクトがあるため、こういうデータを一括で初期移行するためにはABAPプログラムを開発するしか選択肢はありません。
②更新(Update)したい
例えば、あるマスタを項目ごとに複数のシステムからデータ移行したい場合、Aシステムのデータを登録し、Bシステムのデータで他項目を更新する必要がありますが、移行コックピットでは更新ができないため、ABAPプログラムの開発が候補になります。
③SAP標準テーブル以外にもアドオンテーブルを登録する必要がある
例えば、SAPの受注で外部システムとインタフェースしており、インタフェースの送信ステータスをアドオンテーブルで管理しているとします。
通常運用では、受注登録と同時にExitで送信ステータスを管理するアドオンテーブルにレコードが登録されますが、移行コックピットを使用したデータ移行ではSAP標準テーブルしか登録されないため、ABAPプログラムの開発が選択肢に入ります。
ABAPプログラムには下記のような流れの処理を記述します。
1.エクセルファイルを内部テーブルに読み込み
2.データのチェック
3.データ登録
4.ログ出力
このうち、3.データ登録処理がABAPプログラムのメインになりますが、この部分は次のいずれかの機能を使用します。
BAPI
BAPIとは、リモート対応したSAP標準の汎用モジュールのことで、プログラムの部品のようなものです。
品目マスタや受注といったSAP標準テーブルの登録、更新等の処理が標準化されています。
エクセルファイルから抽出したデータをBAPIのパラメータに渡すことで、SAP標準テーブルの登録/更新処理ができます。
バッチインプット
バッチインプットとは、SAPGUI上の画面操作を記録し、記録した画面操作を繰り返し実行させることです。
バッチインプットは、トランザクションコード:SHDBから記録します。
レコードボタンを押してトランザクションコードと録画の名称を入力し、SAPGUIの画面操作の記録を開始します。
あとは記録したい画面操作を画面に向かって入力することで、プログラム名、Dynpro番号、項目名など実行に必要な情報の一覧が出力されます。
ABAPプログラムを作成する時はこれらの一覧の値を内部テーブルに格納し、CALL TRANSACTION命令に渡すことで、画面操作と同じ処理をプログラムに実行させることができます。
ABAPプログラムの注意点
ここからは、ABAPプログラムを使用する上での注意点について解説していきます。
①開発工数がかかる
ABAPプログラムはアドオンになるため、設計、開発、テスト含めて利用可能になるまでに相応の工数がかかります。
移行リハーサルないし移行ツールの検証が始まるまでに、ABAPプログラムのテストまで完了している必要があります。
②新しいデータパターンが増えるとプログラムの修正が必要になる可能性がある
SAPでは項目の表示/非表示、入力の必須/任意がカスタマイズにより変更できます。
例えば、結合テストの結果、受注に新たな伝票タイプを設定する必要があると判明したとしましょう。
つまり、新しいカスタマイズが増えることになり、画面入力のパターンが増え、特にバッチインプットだとそれまでの処理が通らなくなる可能性があります。
この場合、新しい伝票タイプをABAPプログラムで移行できるか確認するためのテスト工数ないしプログラム修正のための工数が追加で発生します。
手入力
最後に、3つ目のデータ移行ツールとして手入力によるデータ移行を解説していきます。
手入力概要
通常のオペレーションと同様に、マスタ/伝票を画面上で手入力します。
手入力によるデータ移行を選択するのは下記に該当するケースです。
・移行オブジェクトが移行コックピットに対応しているが、データ件数が少なく移行コックピットを使用するまでもない
・移行オブジェクトが移行コックピットに対応していないが、ABAPプログラムを開発するほどデータ件数が多くない
データ件数がそれなりにあるという場合にはユアソフトを使用するという方法があります。
ユアソフトはバッチインプットの仕組みを利用し、大量データを手入力することができます。
ユアソフトの導入にはライセンス料が発生しますが、移行ツールとしてだけでなく、本番稼働後の運用でも使用できるため、導入するのも一つの手です。
手入力の注意点
ここからは、手入力によるデータ移行の注意点について解説します。
①データ件数が増加すると入力負荷が高くなる
ユアソフトを導入することでデータ件数の増加にも対応できますが、データ件数が増えると、移行担当者の入力負荷が高くなります。
特に、限られた時間の中で移行しなければならない本番移行時にはクリティカルな問題となるため、事前にデータ件数が増えた場合の対応を検討する必要があります。
②本番移行時のミスをゼロにできない
他のデータ移行方法が一度正しく取り込めれば、次も正しく取り込めるのがある程度保証されるのに対して、手入力の場合は移行リハーサルでミスなく入力できたとしても、本番移行でもミス無く入力できることが保証されるわけではありません。
可能であれば移行オブジェクトが移行コックピットに対応している限り、件数が少なくても移行コックピットを使用することがオススメです。