玉ちゃんの文科系IT入門 > ERP(SAP R/3) > BAPI:受注伝票の変更(7)

BAPI:受注伝票の変更(7)

さて、ふたたび、受注伝票の変更部分の作成を再開する。

受注伝票の変更(BAPI_SALESORDER_CHANGE)は、一応、固定のテキストデータでは、動作を確認している。

受注伝票リストの取得(BAPI_SALESORDER_GETLIST)のスクリプトと連動して動くように作り変えるのだ。

ユーザーは、webの画面から、得意先や品目で受注伝票を抽出し、EXCELで表示させる。

価格不完全な伝票をEXCELで修正し、EXCELファイルを送信する。

すると、Dataspiderのファイルトリガーが、EXCELを監視していて、EXCELから変更された値を、ERPへ修正する。


前回固定値の部分をEXCELシートの数値(価格)に置き換えて、マッピングする。


価格不完全な受注伝票は、ヘッダの請求ブロックの項目が、03価格不完全のフラグが立っている。

この状態では、受注伝票から出荷伝票の作成、ピッキング、出荷作業は可能だが、出庫確認後の請求伝票の起票がブロックされる。


価格の投入と同時に、請求ブロックの値を空白にしなければいけない。


こんなんでいいのかな?


空文字という「単一文字列定数」のアイコンに何も値をいれずに、BAPIのBILL_BLOCK(請求ブロック)へマッピングする。

ORDER_HEADER_INXの方にも、わすれず、UPDATEFLAGに'U'とBILL_BLOCKに'X'を入れる。

EXCELから価格条件や通貨、価格条件単位をマッピング。


これで一応、動くはず・・・・。

価格ブロックがはずれ(03が空白になり)、価格も更新された。


しかし・・・・

動いたが、複数列あるはずのデータがひとつしか更新されない。

マッピングで更新フラグが1のものは、繰り返しやるように設定しているのに・・・・。


で、ひょっとしたら?

とABAPの使い手、S君に聞いてみた。


「ねえ、BAPIってさあ」軽い聞き方である。
「一度に複数件処理できるよ、ねえ?」

「いいえ」
S君は即座に首を振った。
BAPIは通常一件ずつしか処理できませんよ。
わたしが作ったBAPIは、内部テーブルにいったん書き込む処理をやっているので、一度でできますが、標準のBAPIでは難しいですよ。」


そうか、そうだった。

彼に一度で複数件の処理を頼んだことを忘れていた。


では、この標準BAPIは、どうしよう?

そうだ、Dataspiderの繰り返しフローを使おう。



やった!

うまく複数の処理ができた。


やっと、完成である。


後は、変更した伝票のリストをEXCELに書き出して、添付ファイルとして、ユーザーへメールで送信すればいいのだ。


ここまでかなり苦労したが、何とか、標準BAPIを2つ組み合わせて、受注伝票の変更ができたのだ。

コツをつかめば、後は、同じだ。


(この項終わり)