Friday is awesome

SAPについて個人的なメモをまとめたブログです

MENU

SAP SD業務プロセス 預託品販売

f:id:carthat:20200521014748p:plain


キーワード
預託在庫処理、預託品販売、特殊在庫
預託品販売とは?
預託品とは、一度、自社倉庫から得意先倉庫に製品を移動し、得意先倉庫で保管されることになるのですが、
その在庫の所有権自体は自社にある製品のことです。得意先は、これらの製品を倉庫から出荷しない限り、その製品に対する支払い義務はありません。もし得意先側で、その製品がもう必要ないと判断した場合は、その預託品を返品することができます。つまり、得意先としては在庫リスクを負うことなく、必要に応じて顧客へ商品をリアルタイムに届けることができるわけです。
私が当時のチームリーダーから預託品販売のプロセスを説明されたときは「富山の薬売り」を例に説明して頂きました。ちなみに、そのリーダーは中国人でまさか中国の方から富山の薬売りで説明されるとは思っていませんでした^^;
【参考】富山の薬売り→富山の家庭薬行商人。また、その行商のこと。江戸中期に始まるといわれ、藩の保護・統制を受けて発展した。全国各地の得意先に薬を置き、年に一、二度訪問して使用分の代価を清算し薬を補充した。

f:id:carthat:20200511235656p:plain
SAPの預託品販売プロセス
SAPの預託品販売では、自社から得意先倉庫に出荷する伝票(預託品引渡)と得意先倉庫から顧客へ出荷する伝票(預託品出庫)の2種類の伝票を使用します。
預託品引渡:受注伝票タイプ「CF」
預託品出庫:受注伝票タイプ「CI」
ポイントは以下となります。

  • 得意先倉庫に保管される在庫は得意先在庫(特殊在庫タイプW)となり、自社資産のまま。
  • また、得意先に紐づく在庫のため、SAPシステム上、他の得意先の受注からこの在庫を出荷したり、在庫移動することはできない。
  • 預託品引渡の受注伝票については、出庫確認で完了となり、請求伝票は発生しない。
  • 預託品出庫の受注伝票で出庫確認した時点で在庫の所有権は自社から離れる。

f:id:carthat:20200511235717p:plain

以上、簡単ですが、SAP標準機能の預託品プロセスの説明でした。標準の預託品機能を使うデメリットとしては、SAPのオペレーション負荷が高まることが挙げられます(得意先在庫からの出庫に対しても一から受注伝票を登録すること)。そのため、必ず標準機能の預託品機能を利用するのではなく、代替案や運用でカバーすることも検討していく必要があります。

SAP SD業務プロセス 仕入先直送

 

キーワード
仕入先直送、SAP SD仕入先直送、Third party process、明細カテゴリTAS

仕入先直送とは?
通常の発注品プロセスでは、得意先から発注品の注文を受けると、仕入先に発注し、自社倉庫へ入庫してから得意先へ配送するプロセスとなります。一方で、仕入先直送処理では仕入先に発注し、そのまま仕入先から得意先へ商品を直接配送するプロセスとなります。英語では、Third party process、Dropship、Directshipなどと呼ばれます。
仕入先直送のメリットとしては、仕入先からの商品を自社倉庫へ保管する必要がありませんから在庫管理コストの削減があります。また、仕入先から直接得意先へ出荷することにより配送リードタイムを短縮することが可能となります。

f:id:carthat:20200512142642p:plain

SAPの仕入先直送プロセス

  • 仕入先直送にするかどうかは受注伝票明細の明細カテゴリによって決まります。品目により必ず、仕入先直送プロセスに載せる場合は品目コードの明細カテゴリグループBANSに指定しておきます。また、受注伝票上で明細カテゴリをマニュアルで変更することも可能です。
  • 受注伝票明細カテゴリTASを使用する。
  • 受注伝票を保存すると、購買依頼が自動で作成される。
  • 得意先への請求伝票は受注伝票参照にて作成します(仕入先直送では出荷は仕入先から行われるため)。また、得意先請求伝票の税亭として、MM側で請求書照合を登録しておく必要があります。

f:id:carthat:20200512144320p:plain

★★SAP SD関連書籍★★

SAP SDトランザクションコード一覧(トラン系)

 

SAPのSDモジュールでよく使用するトランザクションコードをまとめてみました。
受注伝票

  • VA01 受注伝票登録
  • VA02 受注伝票変更
  • VA03 受注伝票照会
  • VA05 受注伝票一覧
  • V.23 請求ブロック中販売伝票

出荷伝票

  • VL01N 出荷伝票登録
  • VL01N 出荷伝票登録
  • VL02N 出荷伝票変更
  • VL03N 出荷伝票照会
  • VL06F 出荷伝票一覧
  • VL09 出庫確認取消
  • VL10A 一括出荷登録(受注伝票単位)
  • VL10C 一括出荷登録(受注明細単位)
  • VLPOD 出荷証明登録
  • VLPODQ 自動出荷証明
  • VI01 運賃伝票登録
  • VI02 運賃伝票変更
  • VI03 運賃伝票照会

請求伝票

  • VF01 請求伝票登録
  • VF02 請求伝票変更
  • VF03 請求伝票照会
  • VF04 一括請求
  • VF05 請求伝票一覧
  • VF11 請求伝票取消

その他

  • V.01 不完全伝票一覧
  • V.02 不完全伝票一覧
  • V_V1 バックオーダー
  • V_V2 品目別販売伝票の再日程
  • V_V2 品目別販売伝票の再日程
  • CO09 利用可能在庫概要の照会
  • MD04 所要量状況の照会

引合伝票

  • VA11 引合伝票登録
  • VA12 引合伝票変更
  • VA13 引合伝票照会
  • VA15 引合伝票一覧

見積伝票

  • VA21 見積伝票登録
  • VA22 見積伝票変更
  • VA23 見積伝票照会
  • VA25 見積伝票一覧

分納契約

  • VA31 分納契約登録
  • VA32 分納契約 変更
  • VA33 分納契約照会
  • VA35 分納契約一覧

基本契約

  • VA41 基本契約登録
  • VA42 基本契約変更
  • VA43 基本契約照会
  • VA45 基本契約一覧

他にもよく使用するトランザクションコードがあればぜひ教えて下さい。

こちらの本も参考にしてください 世界一わかりやすいSAPの教科書
https://amzn.to/3K4yQVV

SAP SD業務プロセス 個別購買発注

 

キーワード
SAP SD、個別購買発注、明細カテゴリTAB、販売プロセス
個別購買発注とは?

個別購買発注とは、自社で製造していない製品を仕入先から仕入れ、顧客へ販売するプロセスのことです。ただし、単純に仕入先から仕入れて出荷するのではなく、このプロセスのスタートは顧客から注文を受け、その注文に基づいて仕入先へ発注依頼を行います。つまり、大量仕入れするようなものではなく、注文都度、発注するような製品となります。
また、これと似たようなプロセスとして仕入先直送がありますが、個別購買発注と仕入先直送の違いは、モノの動きにあります。仕入先直送では、モノは自社倉庫に入庫されることはありませんが、個別購買発注では自社倉庫に入庫され、そこから得意先へ出荷するというプロセスになります。

f:id:carthat:20200514012809p:plain

SAPでの個別購買発注の流れ

◆個別購買発注として扱う品目
もし、ある品目が個別購買発注として定義できるような場合は、品目マスタの明細カテゴリグループ(販売組織2ビュー)をBANCにしておきます。そうすることで、受注伝票明細の明細カテゴリが自動的に個別購買明細(明細カテゴリ:TAB)となります。また、ユーザーの判断により、個別購買発注として扱うか、標準明細として扱うかを判断したい場合は、品目マスタの設定は標準の明細カテゴリグループにしておき、受注伝票登録時に明細カテゴリを適切に選択します。

◆購買依頼自動作成
受注伝票を保存すると、自動的に購買依頼伝票が作成されます。この購買依頼伝票を参照し、購買発注伝票を作成します。また、この購買依頼伝票は受注伝票から参照して作成されているため、購買依頼伝票上で数量や納入日付を変更することはできません。

◆受注在庫
購買発注伝票から入庫処理が行われると、在庫は特殊在庫である受注在庫として登録されます(特殊在庫区分'E')。この受注在庫は通常在庫とは管理が異なり、他の受注伝票のために出荷するということはできません。テーブル上の管理も受注在庫用のテーブルに管理されることとなります。

◆出荷伝票、請求伝票処理
出荷伝票、請求伝票の処理は通常のオペレーションと同様です。在庫品販売などの標準的なプロセスだと出荷時に在庫が足りなくてエラーとなることもあるかと思いますが、個別購買発注の出荷伝票では受注に紐付いた在庫を出荷するため、そのようなシステムエラーの可能性は限りなく低いです。

【個別購買発注ステップ】
1. 受注伝票作成(明細カテゴリ:TAB)T-Code:VA01
2. 受注伝票を保存し、購買依頼伝票番号を確認 T-Code:VA02
3. 購買依頼伝票を参照して購買発注伝票作成 T-Code:ME21N
4. 入庫を実行(特殊在庫区分'E'受注在庫) T-Code:MIGO
5. 請求書照合 T-Code:MIRO
6. 出荷伝票作成 T-Code:VL01N
7. 出庫確認 T-Code:VL02N
8. 得意先請求伝票作成 T-Code:VF01

f:id:carthat:20200514013412p:plain

SAP MM業務プロセス 外注加工

キーワード
SAP MM、外注加工
外注加工とは
外注加工とは製造業などにおいて原材料や部品を外注加工業者に供給して、製造・加工を委託するプロセスです。SAPでは、この外注加工がどのようなプロセスで行われているかを見ていこうと思います。
例えば、パソコンの製造をしている会社があり、パソコンへの塗装については塗装業者に委託します。まず、製造業者はパソコンのケースを塗装業者に送ります。塗装業者ではそのケースに色付けを行います。そして、色付けしたケースをパソコンの製造業者に送り返します(実際、このようなことはやっていないのでしょうが、、あくまで例です)。
【外注加工ステップ】
1. 購買発注伝票作成(明細カテゴリ:L) T-Code:ME21N
 ※品目データタブの構成部品をクリックして、構成品を確認する
2. 加工先への構成品出荷 T-Code:ME2O
3. 出庫確認 T-Code:VL02N (構成品の出庫確認です)
4. 完成品入庫 T-Code:MIGO
5. 請求書照合 T-Code:MIRO
3で構成品を出庫しますが、特殊在庫O(仕入先支給在庫)となりどの保管場所にも属さない在庫となります。4で完成品入庫したタイミングで構成品は特殊在庫から出庫されることとなります(完成品入庫までは、構成品は自社資産扱い)

f:id:carthat:20200702145819p:plain

SAP MMトランザクションコード一覧

 

SAPのMMでよく使用するトランザクションコードをまとめてみました。
マスタ
条件(価格)マスタ

  • MEK1 条件レコード登録
  • MEK2 条件レコード変更
  • MEK3 条件レコード照会

購買情報マスタ

  • ME11 購買情報登録
  • ME12 購買情報変更
  • ME13 購買情報照会

供給元一覧

  • ME01 供給元一覧登録
  • ME02 供給元一覧変更
  • ME03 供給元一覧削除

仕入先マスタ

得意先・仕入先マスタはS4 HANAからはBusiness Partner(トランザクションコード:BP)に統合されたため、基本的にXK系統は使わなくなると思います。

品目マスタ

  • MM01 品目登録
  • MM02 品目変更
  • MM03 品目照会
  • MM06 品目削除(フラグ設定)
  • MM60 品目リスト
  • MR21 価格変更 (品目原価変更)

ロットマスタ

  • MSC1N ロット登録
  • MSC2N ロット変更
  • MSC3N ロット照会

         

トランザクション
購買依頼伝票

  • ME51N 購買依頼伝票登録
  • ME52N 購買依頼伝票変更
  • ME53N 購買依頼伝票照会
  • ME54N 購買依頼の承認

購買発注伝票

  • ME21N 購買発注伝票登録
  • ME22N 購買発注伝票変更
  • ME23N 購買発注伝票照会
  • ME2L 仕入先マスタ別の購買発注伝票一覧
  • ME2N 伝票番号別の購買伝票
  • ME2M 品目別の購買発注一覧照会
  • ME2O 仕入先用支給在庫のモニタ  ※外注加工プロセスで使用
  • ME29N 購買発注の承認
  • ME59N 購買発注の自動生成

入出庫

  • MIGO 
    ※MB1A, MB1B, MB1C, MBST等はMIGOに統合されたため、基本的に使用不要

請求書照合

  • MIRO 仕入先請求書入力
  • MR8M 請求伝票の取消
  • MRBR 保留請求書の承認
  • MIR4 請求書伝票の照会
  • MIR5 請求書一覧
  • MIR6 請求書概要
  • MIR7 請求書保留
  • MRRL ERS ( 入庫 / 請求自動決済 )
  • MRKO 受託品とパイプラインの決済

レポート

  • MMBE 在庫概要
  • MB51 入出庫伝票一覧
  • MB52 保管場所別在庫一覧
  • MB5T 積送中在庫照会

入荷伝票

  • VL31N 入荷伝票登録
  • VL32N 入荷伝票変更
  • VL33N 入荷伝票照会

入出庫予定伝票

  • MB21 入出庫予定登録
  • MB22 入出庫予定変更
  • MB23 入出庫予定照会

実地棚卸

  • MI01 実地棚卸伝票登録
  • MI02 実地棚卸伝票変更
  • MI03 実地棚卸伝票照会
  • MI04 実地棚卸検数入力
  • MI07 検数差異 転記
  • MI21 実地棚卸伝票印刷
  • MI24 実地棚卸一覧

購買基本契約伝票

  • ME31K 購買基本契約伝票登録
  • ME32K 購買基本契約伝票変更
  • ME33K 購買基本契約伝票照会

購買分納契約伝票

  • ME31L  購買分納契約伝票登録
  • ME32L  購買分納契約伝票変更
  • ME33L  購買分納契約伝票照会

他にもよく使用するトランザクションコードがあればぜひ教えて下さい。

こちらの本も参考にしてください
世界一わかりやすいSAPの教科書
https://amzn.to/3K4yQVV

 

ABAP開発者からSAPコンサルへの転身

SAPコンサルタントIT技術者の中でも高単価が見込める仕事だと思います。そんなSAPコンサルタントにはどのようにしてなれるかを書きたいと思います。一番てっとり早いのはコンサル会社に就職してポジションを上げていくのが一番確実だと思います。しかし、激務で知られるコンサル会社へ就職するというのは少し躊躇する人もいるのではないでしょうか。この記事では別の角度で話したいと思います。

私が比較的実現性があると思うのは、ABAP開発者からSAPコンサルへ転身するという道筋です。(念のため、ABAP開発者とは何かについて?ABAPとはSAPシステムを動かすためのプログラミング言語です)
JAVAPHPなどオープンな技術ではなく、SAP社が開発したSAPというシステムだけで使うことができる技術となります。そのため、ABAPの開発スキルを独学で勉強することはできないため(SAP社の研修を受ける必要がある)、ABAP開発者もそれなりに高単価になる傾向がある。

それでも、プログラム開発者とコンサルの単価を比較すると2倍以上の差が出ることは珍しくないと思います。肌感覚では、以下のような月額収入になるかと思います。
ABAP開発者の単価:70万~100万円 ※開発者でも稀に単価200万円とかの猛者もいる
・SAPコンサルタントの単価:100万~200万円
やっぱりSAPコンサルの単価は高いですよね。。。月額でこれだけもらえる職業はそう多くないのではないでしょうか。
単価が高いからというだけの理由ではないのでしょうが、現在はABAPの開発をしている人でも、上流の仕事をしてみたい人は結構多いと思います。しかし、上流工程の経験が全く無い中から、いきなり次のプロジェクトから上流工程で参画しようとしても、雇用するクライアント側、プライム会社側からすると、経験値を判断されて厳しいと思います。そのため、現在、ABAP開発者として参画しているプロジェクトで少しでも上流工程に近い仕事を振ってもらえるよう取り計らうことで上流工程の経験値を上げていくことができます。例えば、プログラミングではなく、基本設計を担当するなど。基本設計を担当することでお客さんと仕様について確認することもあるでしょうから、業務知識を獲得することもできます。
実際に私の知人にも同じプロジェクトでABAP開発者からスタートしてコンサルへ転身した方がいます。
SAPに関する知識やスキルはなかなか独学で勉強していくことは難しいので、やはり現場で経験を積むのが一番の近道になってくると思います。

SAP ERSとは?

 

MMモジュールにERSという機能があるので、そのメモです。
■概要
ERSとは?Evaluated Receipt Settlementの略。日本語でいうと入庫請求自動決済。
つまり、仕入先からの請求書を受領することはなく、購買発注・入庫情報を基に自動で買掛金を計上する仕組み。また、決済したことは仕入先に自動的にメールやFAXで送信することができる(これには出力管理を別途設定して置く必要がある)

f:id:carthat:20200702040312p:plain

■ERSの導入メリット
①購買発注伝票を迅速にクローズすることができる
②請求書照合で価格差異や数量差異が発生しない
③自動処理のため発注側と仕入先の間でのコミュニケーションエラーを防げる
仕入先からの請求書が必要ない

■必要な設定
<マスタとして>
仕入先マスタの購買ビューの「入庫基準請求書フラグ」、「ERSフラグ」をチェック
・購買情報の「入庫基準請求書フラグ」をチェック、「ERS不可フラグ」をブランク
<トランザクションとして>
・購買発注伝票の「入庫基準請求書フラグ」をチェック
・購買発注伝票の「ERSフラグ」をチェック
※上記のマスタ設定しておくことで、トランザクションデータは基本的に触る必要ありません

SAP出荷グループ

SAP受注伝票の項目に出荷グループというものがあります。例えば、受注伝票が複数明細あった場合、各明細ごとに出荷するのではなく、伝票単位でまとめて出荷したいといったことがあります。そのような場合に、出荷グループに同一の任意の文字列を入力しておくと出荷側のプログラムは一括で出荷するように判断します。
各明細確認数量が揃ったらその最遅の出荷日に合わせて出荷処理対象となります。
主明細・副明細(子明細)からなる販売BOMでよく使われていると思います。

XLIPSのupdkz

「updkz」・・ 出荷伝票ヘッダの構造「XLIKP」にある項目で、その処理が登録か更新か削除かを判断できる。ABAP内で登録の場合だけ○○のロジックを入れたいなどの要件に対して、処理分岐として使用する
(「I」・・登録、「U」・・更新、「D」・・削除)

Binary Search使うときは内部テーブルをSortするのを忘れずに

以前のプロジェクトで対外システムに送信しているインタフェースプログラムで正しくデータを取得できていないという障害があった。Read tableしているが、なぜか、、データがうまく取得できていない。。ABAPerではない私には正確な理由を突き止められなかったが、開発者に確認したところRead table時にBinary Searchオプションを使用しているにも関わらず、Read table前にSortしていないことが原因であった。
という訳で同様のミスをしないためのメモでした。

ABAPのSY変数メモ

ABAPのSY変数メモ

SY-LANGU:ログイン言語 日本語の場合はJ、英語の場合はEとなります。

SY-DATUM : システム日付

SY-UZAIT : システム時間

SY-SLSET:バリアントID

SY-UNAME : ログオンユーザID

SY-ABCDE : ABCDE変数。A~Zまでのアルファベットが格納されている。何に使うかは不明。

SY-TITLE : 実行プログラムのタイトル

SY-CPROG : 実行プログラムID。現在実行中のプログラムID、または、外部呼び出しの場合は呼び出し側のプログラムID。

SY-REPID :ABAPレポート名

SY-TCODE : 現在のトランザクションコード

SY-MSGID:出力されたメッセージクラス

SY-MSGTY:出力されたメッセージのType。

SY-MSGNO:出力されたメッセージ番号

SY-DATLO:ログオンユーザのタイムゾーンの日付

SY-TIMLO:ログオンユーザのタイムゾーンの時間