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つ組み合わせて、受注伝票の変更ができたのだ。
コツをつかめば、後は、同じだ。
(この項終わり)


BAPI:受注伝票の変更(6)
ご連絡はこちらまでどうぞ