トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

SAPの拡張手段/バッチインプット の変更点

Top/SAPの拡張手段/バッチインプット

SAPにデータを取り込む方法の一つで、プログラムと[[Dynpro>ABAP/Dynpro]]に対し、手入力するかの如くデータエントリする手法。

* 概要 [#cc061648]
** 利用可能であるかの判断基準 [#vba29843]
-機能コードや項目名が指定可能であるか否か
例えば詳細なデータを次々と入力したいが改ページボタンがない場合や、[[フリーテキスト>テキスト管理]]のようにカーソルを設定できない入力項目がある場合(かつ他に入力手段がない場合)は利用することができない。
-バッチインプット対象のデータ以外にアドオンデータの更新などニコイチの処理がある場合
(そもそも、そんな設計おかしいじゃん!とか、そういう突っ込みは勘弁。設計や実装が進んでから参画する場合はどうにもならない)
ニコイチやサンコイチの処理=本来的な意味でのトランザクション処理が必要な場合はリカバリが面倒だったり検証のドツボにハマったりもするので不向き。
逆に、標準トランザクションコードにアドオン項目があり過ぎる場合はBAPIに引数がないだとか拡張が面倒だとか、あるいはBAPIだと代入やBADI/EXITが動かないだとか色々技術的な課題にぶつかったりそういった課題がないか検証が必要だったりするので、そんな時間はない!という時には「とりあえずバッチインプットでいってみよう」は一つの考え方だったりする。

** 構成 [#p4b3dd73]
+プログラム名と[[Dynpro>ABAP/Dynpro]]番号を入力する
+[[機能コード>ABAP/機能コード]]を指定する
+入力項目にデータを入力する
という動きで構成される。

なお、''あくまで記録したとおりにしか動作せず、例え火を見るよりも明らかであっても例外系には全く対応できないこと''と、''マニュアルオペレーションのすべてがバッチインプットに記録できるわけではないこと''に注意。

例えば前者で言えば、伝票やマスタの登録後に数秒のあいだ自分自身がデータをつかんでしまうことなんかもあったりして、Enterを連打したら次に進めたりもするが、バッチインプットはそれを純粋なエラーとして吐く。

また、[[原価センタ>管理会計/原価センタ]]の同じコードで複数期間が登録されている場合などは登録されているデータによって環境ごとに動きが違うため意図した結果にならないことも。
また、[[原価センタ>管理会計/原価センタ]]の同じコードで複数期間が登録されている場合などは登録されているデータによって環境ごとに動きが違うため、意図した結果にならないことも考慮する必要がある。

後者は、例えばポップアップで下にスクロールする場合に「次ページへ」的なボタンがあれば記録できるが、それがない場合は無理。
また、ダブルクリックして画面遷移したいケースにおいても、行を選択して「詳細」的な機能コードがあればokだが、なければ無理。

機能コードの有無については、厳密にいえばオブジェクトナビゲータでDynproを調べることになるが、大抵はその画面のメニューやボタンを調べてみればok。

* まとめ前のメモ [#e037d529]
-バッチインプットセッション
トランザクション呼び出しのシーケンス。入力データとユーザアクションが含まれている。バッチインプットセッションではダイアログトランザクションをバッチインプットで実行でき、画面の一部または全部をセッションによって処理できる。バッチインプットセッションはデータベーステーブルとしてデータベースに格納され、トランザクションを呼び出すときに内部テーブルとして内部的に使用できる。
-テストツール
最近は、実行済みのテスト項目について、デグレ確認や複数環境へのテストをするために、バッチインプットとは比較にならない精度のオペレーショントレースが可能なツールがリリースされている。
これは、テスト項目という既存のIT資産を有効活用することができること、またテスト工数という非常に大きなウエイトを占める部分の省力化を図ることができるという意味で、大規模プロジェクト・大規模システムであればあるほど有用な所見。
-バッチインプットの引数
バッチインプットの場合、明細の行数を指定するようなシーンもあるが、バッチインプットする「画面」は実行環境のディスプレイやフォントサイズが異なった場合にBDCが想定通り動かないこともある。そういう時は、実行パラメータのDEFSIZEにXを指定すればok。


~
~
CENTER:【スポンサードリンク】
#htmlinsert(amazon_book_sap_system_implement)
~
~
----
#pcomment(reply)