ABAPの基礎知識 更新系画面その2

ということで、唐突にマスタメンテナンス画面の話に戻るのである。


アドオン・テーブルがまったくないプロジェクト、というのは、かなりまれである。
例えば、MM系を入れるときには、通常「買ったもの」ごとに、債務側の統制勘定を変化させたい、
という要件が一般的ではあるが、R/3の標準機能では、それは実現できない。
(46C時点での情報。もしかしてできるようになったかな・・・)
で、OpenFIにちょっとしたソースを書いて、何を買ったのかによって、統制勘定を変化させるようにするわけである。
この紐付けを持たせるために、アドオン・テーブルを作成するのだ。


上記のようなアドオン・テーブルは、更新頻度が極めて少ないという特徴をもっており、
そこに開発工数を突っ込むのは、無駄そのものである。
このようなアドオン・テーブルは、標準で用意されている更新画面で、更新してもらえばいいのである。
例えば、トランザクションコード「SE11」の画面からメニューをたどってできる、
「テーブル更新ジェネレータ」を使用して作ったり、
トランザクションコード「SE16」で生成される、テーブルの照会・更新画面と同じものを、
5行くらいのコーディングで呼び出したり(ちょっと今、手元にそのコードがないのだが、
追ってここに、そのコードをUpしようと思う)という代替案がある。
特に、私が「SE16コンパチ」と呼んでいる後者の方法は、
・対象範囲を一覧にする
・対象のレコードのみを更新する
・絞込み対象/表示項目対象を動的に選択できる
という操作性を持つ、非常に便利なしろものである。


ただ、両者とも、「テキスト」を表示できないのが難点である。
上記の統制勘定の例では、統制勘定コード(1124…)は表示できるが、統制勘定テキスト(未払金など)は、
メンテナンス画面に表示できない。
で、
「テキストが出ませんがいいですか?」
「そんなのどうやってメンテナンスするんだよ」
という会話が発生し、アドオンの道へ、というケースがよくあるのである。


しかし、そこは、「テキストは出ませんがいいですか?」なんつー、わけのわからん聞き方をする前に、
テキストの出るクエリを用意しておいて、それを見つつメンテナンスしてもらえばいいのである。
「一覧ではテキスト付きで内容を確認できます。更新は、標準の画面でお願いします。保存をして、
再度クエリを見てもらえば、内容の確認はできます。2つセッションを空けておけば、見比べながらできますよ」
最後に、
「ここまでならほとんど工数かかりませんが、これ以上になると、しっかりPGを作らなければならないので、
かなり割高になりますよ」
と、言い添えておけばいいのである。


当然、更新頻度が高いものは、このような方法では実用に耐えない。
ただ、「テキストが出ない」という理由で、アドオンを作るのは、結局エンドユーザに過度のコストを
負担させることになるわけで、それなら、テキストが出る一覧を見ながら、メンテナンスをしてください、
という代替案で押すほうが、双方にとって幸せなのではないかと思うのである。


更新頻度が高いものは、当然PGを開発せざるを得なくなる。
ただ、その方法もDynproを使わず、レポートでかなりのことができる。
その具体的は手法は、また別の日に・・・