Friday is awesome

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

MENU

システム的なトランザクションコード一覧

SAP Functional Consultantが抑えておくべきトランザクショ ンコードを列挙してみました。Basisやシステム運用部隊が使用するものは取り上げていないためご了承ください。また、随時アップデートしていきたいと思います。

Tr-Cd 名称 使い途
SE01 移送オーガナイザ カスタマイズやプログラム作成後に作成された移送依頼を確認できます。また、移送依頼のリリースを実行します。
SE11 ABAPディクショナリ テーブルの内容(項目IDや項目の内容、名称など)を確認できます。
SE16N データブラウザ テーブルの内容を確認できます。SE11との違いは、テーブルの細かい定義はSE11で見てテーブルのデータを見たい場合はこちらのSE16Nを使用します。
SE37 汎用モジュールビルダ 汎用モジュール作成時に使用します。また、汎用モジュールをテスト・デバッグする場合にも使用します。
SE38 ABAPエディタ ABAPプログラム作成時に使用します。また、ABAPプログラムを実行する場合やデバッグする場合にも使用します。
SE80 オブジェクトナビゲータ プログラムだけではなく、User-Exitや汎用モジュールグループなどのオブジェクトが確認できます。
SE91 メッセージ更新 メッセージの登録や更新ができます。また、メッセージIDからそのメッセージを使用していているプログラムを逆引きするという使い方もできます。
SE93 トランザクションコード登録 トランザクションコードの登録・更新・照会・削除。トランザクションコードを実行しているプログラムやバリアントも確認できます。
SHDB バッチインプットの記録 バッチインプットセッションを作成・実行することができます。
SCC1 移送依頼のコピー 移送依頼を同一サーバの他クライアントへコピーできます。開発機に複数クライアントがある場合、クライアント依存オブジェクトを移送します。
SM04 ユーザセッション ログインユーザの一覧。現在ログインしているユーザを確認したり、各ユーザの使用メモリを確認できます。
SM12 ロックエントリ ロック(テーブルレコードの競合)を確認して削除することができます。
SM21 システムログ システム的なエラーが発生した場合のエラー内容の解析ができます。
SM36 バックグラウンドジョブ定義 SAP内でバックグラウンドジョブの定義ができます。ジョブツールを使用しないで、SAP内で直接実行する場合に使用します。
SM37 バックグラウンドジョブ概要 バックグラウンドジョブの実行結果確認。ジョブ実行結果が正常終了、エラーなど確認できます。
SM69 外部OSコマンド OSで実行するコマンドを定義できます
SMQS qRFCモニター qRFCの設定をします。RFCの相手先を登録して、待機時間など決めます。
ST05 SQLトレース 指定したプログラム内のSQLをトレースできます。処理時間がかかっている場合に、プログラム内の複数Select文でどこでボトルネックになっているかを確認できます。
STMS 移送管理システム 開発機で作成した移送依頼を検証環境、本番環境に移送する際に使用します(主にBasisが利用)。
SU01 ユーザ管理 ユーザIDを作成、更新、削除する場合に使用します。
SU01D ユーザ照会 ユーザIDを照会する場合に使用します。更新する必要がない場合は、SU01ではなくSU01Dを使用するのがいいと思います。
FILE 論理パスおよび論理ファイル名 論理パス、論理ファイル名の定義。Basisが作成した論理パスに対して、物理パスを確認する場合などに使用します。
AL11 SAPディレクト サーバのディレクトリ、ファイルを確認できます。直接、ファイルサーバにサクセスできない場合に使用します。
SARA アーカイブ管理 アーカイブを作成・照会する場合に使用します。
SLG1 アプリケーションログ

アプリケーションエラーが発生した場合に、エラー解析のために使用します。

BD87 ステータスモニタ IDocのメッセージ内容を確認できます。IDoc通信でエラーになった場合に解析します。

ST22

ランタイムエラー ABAPプログラムのショートダンプエラーを確認できます。

 

SAP受注伝票タイプのカスタマイズ

SAP伝票タイプ
SAPで伝票と言われるものを登録する際は伝票タイプというコードを指定することがほとんどです。受注伝票であれば受注伝票タイプ、出荷伝票であれば出荷伝票タイプ、請求伝票であれば請求伝票タイプというものです。受注伝票のタイプはSAPが標準機能として様々なものを用意してくれています。基本的にはプロジェクトではそれらがビジネス要件に合うかを検討し、SAP標準のものをそのまま使うか設定を変更して使うかを決めていきます(標準の伝票タイプをZ始まりのコードでコピー新規登録がほとんどだと思います)。
受注伝票タイプには一例として以下のようなものがあります。これらを業務に合わせて使用していきます。
・OR 標準受注
・KB 預託引渡 / KE 預託出庫
・RE 返品受注
・FD 無償出荷
・CR クレジットメモ依頼 / DR デビットメモ依頼

受注伝票タイプカスタマイズ
受注伝票タイプのカスタマイズを紹介します。Tr-CD:SPROから販売管理 -> 受注伝票 -> 販売伝票 -> 販売伝票ヘッダ -> 定義:販売伝票タイプとたどっていきます。また、Tr-CD:VOV8でも同じ画面に飛べます。

f:id:carthat:20201120152320p:plain
以下のように様々な受注伝票タイプが確認できます。
f:id:carthat:20201120152512p:plain

対象の伝票タイプを選択すると、以下のように細かい設定画面に行きます。標準の伝票タイプ「OR」の例となります。伝票タイプのカスタマイズでは、番号範囲の設定や明細番号の間隔設定、不完全決定表の割当、伝票価格決定区分などを設定することができます。
f:id:carthat:20201120152619p:plain

画面の下の方では、受注伝票に対する後続の出荷伝票タイプや請求伝票タイプを指定することができます。また、価格設定日を受注登録した日にするか納入する日にするかなどの設定もここですることができます。

f:id:carthat:20201120152909p:plain

次に、受注伝票タイプに関連して明細カテゴリのカスタマイズを見ていきます。

f:id:carthat:20201120153140p:plain

受注伝票タイプが受注伝票ヘッダのカスタマイズ設定なのに対して、明細カテゴリは受注伝票明細レベルでのカスタマイズ設定となります。ビジネスデータでは、請求関連かどうかや特殊在庫(受注在庫販売等で使用)に関する設定をします。トランザクションフローでは、受注伝票タイプと同様に不完全決定表を割り当てます。ここでは明細の項目に対しての不完全項目チェックとなります。

f:id:carthat:20201120153248p:plain

f:id:carthat:20201120153306p:plain

受注伝票タイプ、明細カテゴリの設定が完了したら、受注伝票タイプと明細カテゴリの割当を行います。作成した明細カテゴリがどのようなロジックで決定するかを定義します。標準の明細カテゴリ「TAN」だと、標準受注伝票タイプ「OR」で明細カテゴリグループ(品目マスタに設定)が「NORM」の場合に自動提案されることとなります。受注伝票タイプ「OR」× 明細カテゴリG「NORM」= 明細カテゴリ「TAN」となります。また、TANは自動提案されますが、変更可能なものとしてManual Item CategoryとしてTAP/TAA/TANNなどが設定されています。

f:id:carthat:20201120153710p:plain

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

 

製造指図とは?

 

SDが専門の私からすると製造指図はPPの領域なので直接的には必要ない知識ですが、
SD⇔PPで関わる部分もあるので、整理しておきたいと思います。企業が何かしらの自社製品を販売するためにはモノを製造する必要があります。在庫品販売でも受注生産品販売でも、モノを生産するには、どの品目をどのプラントで何時までにどれくらいの量(個数)を生産するのかを把握しておく必要があります。また、その製品を作るためにかかるコストも把握する必要があります。それらの情報を記録するための伝票がSAPでは製造指図伝票となります。
製造指図を作成するためには、計画手配変換して作成する場合と直接再生する場合があります。
・計画手配変換
MRPを実行した結果作成された計画手配を製造指図に変換します(Tr-Cd:MD16)
・直接作成
計画手配を参照しないで直接、製造指図を作成します。単純に製造指図を作成したい場合はCO01から品目コードとプラントを指定して作成します。受注生産プロセスで製造指図を作成する場合はCO08で受注伝票番号を指定して作成します(この場合は、生産入庫した在庫は受注在庫となります)。
Tr-Cd
・CO01 製造指図登録
・CO08 製造指図登録(受注あり)



SAPの在庫転送と在庫振替転記について

 

キーワード
SAP MM、在庫転送、振替転記
在庫転送と在庫振替転記とは?
SAPには在庫転送という言葉がありますが、在庫転送と言った場合、人それぞれに思い浮かべるイメージが異なっているかもしれないので、簡単にまとめてみようと思います。まず、在庫転送(Stock Transfer)と似たような概念に在庫の振替転記(Transfer Posting)があります。在庫転送とは、在庫をあるプラント(あるいは保管場所)から物理的に別のロケーションにあるプラントへ移動することを言います。一方で、在庫振替転記とは必ずしも物理的な移動を伴わない論理的な在庫の移動を意味します。具体的には下記の図で右図のような、品目振替(品目コード変更)、在庫ステータスの変更(品質検査在庫から利用可能在庫への変更など)、特殊在庫タイプの変更(預託在庫から利用可能在庫への変更など)などがあります。振替転記は以前はTr-Cd:MB1Bなども使用していましたが、最近のSAPではMIGOに統合しているため、基本的にMIGOでできると考えていいと思います。

f:id:carthat:20201221203948p:plain
SAPでの在庫転送とは?
在庫転送についてですが、SAPで在庫転送を行うには、主に2つの方法があります。
・MIGOで入出庫伝票を転記する方法
・購買発注の在庫転送伝票を使用する方法

f:id:carthat:20201221204050p:plain
 MIGOで行う方法は、ワンステップ在庫転送とツーステップ在庫転送があります。ワンステップの場合は移動タイプ301を指定して、一回の伝票転記で出庫と入庫を同時に転記します(1回のオペレーションで在庫は転送元から転送先のプラントへ移動される)。ツーステップの場合は移動タイプ303で転送元から出庫し、移動タイプ305で転送先へ入庫する流れとなります。移動タイプ305で入庫側を登録するまでは在庫ステータスは転送中在庫という扱いになっており、どちらのプラントにも属していないため、受注伝票や出荷指示伝票の利用可能在庫(引当可能在庫)の対象外とする事が可能です。
 次に、購買発注伝票の在庫転送を使用する方法ですが、購買発注と聞くと仕入先からの発注入庫を思い浮かべるかもしれませんが、在庫転送にも購買発注伝票を使用することができます。通常の購買発注タイプ「NB」ではなく、在庫転送用の購買発注タイプ「UB」を選びます。そうすることで、転送元の供給プラントや出庫保管場所を登録することができます。そして、この購買発注伝票に紐づく出荷伝票を作成し、それが供給プラントにとっての出荷指示となります。供給プラントから製品が出荷されると、出荷伝票に対して出庫確認を実施します。製品が入庫プラントに到着すると入庫処理を行います。
 単純に在庫を移動することだけを考えるとMIGOだけのオペレーションで実施する方法がシンプルで簡単に思えますが、実際の業務に合わせてどちらで行うかを決めていく必要があります。例えば、製造メーカーで工場プラントから営業倉庫プラントへモノを運ぶようなケースに置いては、営業倉庫側が工場に転送の依頼(在庫転送オーダー)をする必要がありますし、その在庫の移動は物流担当者へ移動指示(出荷指示伝票)を伝える必要があります。そのため、このようなケースでは購買発注伝票の在庫転送を使用すると思います。MIGOによる在庫転送は同じ拠点内の保管場所移動や実績ベースで在庫移動するような業務の際に使用することが考えられると思います。

    

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

 

【ソフトバンク】がっちりパックの解約について

自宅のネット回線をWimaxからソフトバンク光に変更したのですが、契約と同時に不要なオプションが自動で契約されたので、解約しました。

①Y!基本サービス 330円
マイソフトバンクから解約案内に沿って解約できました。

②がっちりパック 1000円くらい
これは本当に謎のサービス。一体、何してくれるかわからんが、Netflixと同等の金額取るとか、、。また、ネットで解約方法を調べたら、こちらの電話番号「0570-783-108」にかけてくださいと記載があったので、この番号にかけたけど何か違うみたい。
「0120-072-652」というのががっちりパックの解約サポートセンターみたいでした。自動音声と1分ほど通話をして無事、解約手続きの受付ができました。ショートメールで通知が来ていた。

ちなみに、無線ルーターは以下のものを購入しました。問題なく使えています。

https://amzn.to/3DdqtDC
 

【要注意】SAP標準テーブルを更新する方法

 

方法その①
1. SE16Nで更新したいテーブルを開く
2. コマンドフィールドに/hを入力してエンターを押下する(デバッグモードが開始する)
3. 変数「GD-EDIT」、「GD-SAPEDIT」をXに変更する
4. F8キーを押下
上記ステップ後、何かしらデータ検索するとで更新可能状態となる
※変更した履歴はTable:SE16N_CD_KEY(ヘッダ)、SE16N_CD_DATA(明細)に
残るため十分注意して実行する必要があります(当然、顧客の承認を得るなど手続きして)

方法その② ※ECC6.0/EHP6から制限しているため殆どの環境では使えなくなっていると思います。
1. SE16Nで更新したいテーブルを開く
2. コマンドフィールドに&SAP_EDITを入力してエンターを押下する

SAP S/4 HANAについて

SAP HANAという単語を初めて聞いたのは2015年ころだったと思います。あんまり最新技術に詳しくないので、初めて聞いたときは「ハナ?」「インメモリデータベース?」と頭の中が「???」でいっぱいになりました。HANAというキーワードの紛らわしい点はデータベースとしての「SAP HANA」とSAP製品名である「SAP S4 HANA」という2つの言葉が存在している点にあることだと思います(少なくとも私は混乱しました。。)

「SAP HANA」・・SAP社が開発したインメモリデータベースのこと。データベースソフトです。
「SAP S/4 HANA」・・SAP社が開発したERPソフトウェアのこと。データベースとしてはHANAを用いています。

インフラ面ではこのHANAというデータベースを使用するために‌従来の製品群・DBよりも高速化が行われる
(10倍高速と言われています)。また、新しいERPソリューションとしてデータモデルの簡素化、フィオリによる視覚化を実現しました、とのことです。うーん、、分かったような分からんような。
実際のところ、SAPの標準機能(販売伝票タイプ、明細カテゴリ、条件タイプ)については大きく変わった印象はないためこれまで通りプロトタイプを構築できると思います(ただし、従来の得意先・仕入先はBusiness Partnerという考え方に変更されています)。それに伴い、与信管理の考え方も変わっていたと思います。
また、アドオン設計する際は標準テーブルにいくつか変更があるので要注意。ここは覚えていく必要がありますが基本的な概念はシンプルになっていくはずなので、アドオンの設計も楽になると考えています。
- VBUK/VBUPなどのSales statusテーブルは廃止してVBAK/VBAPにステータス持たせるようになった。
- 在庫系のテーブルがMATDOCに統合された
(従来のMKPFやMSEGもデータ参照はできる。しかし、データの実体はMATDOCに存在していてCDS Viewを介してMATCODからデータを読み込んでいる)

f:id:carthat:20201214171459p:plain

  

WM関連のトランザクションコードとテーブル

・WM関連のトランザクションコード
コード    名称
LB01    転送要求登録
LB02    転送要求変更
LB03    転送要求照会
LT01    転送指図登録
LT03    登録:出荷用の転送指図
LT04    転送指図要求による転送指図登録
LT12    転送指図確認
LT15    転送指図取消
LT21    転送指図照会
LX03    棚番状況レポート
LM01    ダイナミックメニュー
LS01N    倉庫マスタレコード登録
LS02N    倉庫マスタレコード変更
LS03N    倉庫マスタレコード照会
LS06    棚番ブロック
LS07    保管ロットブロック
LS22    保管ロット変更
LS23    保管ロット照会

 ・WM関連のテーブル
テーブル    名称

LTBK    転送要求ヘッダ
LTBP    転送要求明細
LTAK    転送指図ヘッダ
LTAP    転送指図明細
LQUA    保管ロット(Quants)
LAGP    棚番
T300    WM倉庫番
T300T    倉庫番号テキスト
T301    保管域タイプ
T301T    保管域タイプテキスト
T302    保管区画
T302T    保管区画名
T303    棚タイプ
T303T    倉庫管理棚タイプテキスト
LINK    WMS棚卸伝票ヘッダ
LINP    WMS棚卸伝票明細
LINV    保管ロット別棚卸データ

 

SAP MM(購買管理)テーブル一覧

 

購買管理で基本となるテーブル一覧です。f:id:carthat:20200707155849p:plain

テーブルID テーブル名 テーブル説明
EBAN 購買依頼伝票明細 購買依頼伝票のテーブルです。ME51Nで購買依頼伝票を作成するとレコードができます。項目としては、購買依頼伝票、明細番号、伝票タイプ、品目コード、プラント、保管場所、希望仕入先、固定仕入先などがあります。
EKKO 購買伝票: ヘッダ 購買伝票のヘッダテーブルです。ME21Nで購買発注伝票を作成すると、レコードができます。主な項目として、購買組織、購買グループ、会社コードなどの組織項目や購買伝票番号、購買伝票タイプ、仕入先、伝票日付、伝票通貨、支払条件などの項目があります。
EKPO 購買伝票: 明細 購買伝票の明細テーブルです。主な項目として、購買伝票番号、明細番号、品目コード、数量、プラント、保管場所、明細カテゴリなどの項目があります。
EKKN 購買伝票: 勘定設定 購買発注伝票の勘定設定タブのデータが入っています。SDの個別購買発注やPSのWBSから作成された発注伝票が対象となります。
EINE 購買情報 購買情報の組織データが入っています。
MKPF 入出庫伝票ヘッダ 入出庫伝票のヘッダテーブル。MIGOによる発注入庫やVl02Nの出庫確認した際にこのテーブルにレコードができます。主な項目として、入出庫伝票番号、伝票タイプ、伝票日付、転記日付、伝票ヘッダテキストなどがあります。
MSEG 入出庫伝票明細 入出庫伝票の明細テーブル。主な項目として入出庫伝票番号、明細番号、品目コード、移動タイプ、数量、プラント、保管場所、ロットなどがあります。
RBKP 請求書照合ヘッダ MM側の請求伝票(請求書照合)のヘッダテーブル。
RSEG 請求書照合明細 MM側の請求伝票(請求書照合)の明細テーブル。

 

         

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

SAP MM組織構造

この記事では、SAP MMの組織構造について整理したいと思います。
キーワード
SAP MM、SAP MM組織、購買組織、SAP組織構造、購買グループ
SAP組織構造とは?
SAPでは、会社の法的及び組織を表現するためにいくつかの組織構造を使用することができます。組織の要素としては、財務会計(FI)・販売管理(SD)・在庫/購買管理(MM)などのモジュールから構成されます。例えば、FIだと会社コード、SDだと販売組織、MMだと購買組織、プラントなどと言ったものが代表的な組織となります。これら各モジュールの組織はモジュールごとに独立したものではなく、モジュール間で組み合わせて(割当していく)作成されます。

イメージとサンプルは以下のようになります。

f:id:carthat:20200702135602p:plain

f:id:carthat:20200702135647p:plain

プラント
プラントは製品の製造が行われる生産工場を表し、また、在庫を管理するための組織単位です。
FI側で作成された会社コードに割り当てられ、購買組織とも紐付ける必要があります。
通常、一つの会社コードに対して、複数のプラントを割り当てるような使い方をします。
例えば、製造メーカーで全国に複数の生産工場を有していた場合は、それに対してプラントコードを
作成する形になります。SAPでモノの移動が発生するトランザクション(入庫処理、出荷処理等)では、必ずプラントコードの入力が必要となります。

保管場所
保管場所は物流組織の一つで在庫を管理しているプラントに割り当てられます。在庫を管理する物理的なロケーションを表現することもできますし、原材料、完成品、半製品、返品用倉庫など目的別に表現することもできます。

購買組織
購買組織は会社コード、プラントに割り当てられる購買の組織単位で、企業の購買活動に対して責任があります。購買発注伝票を登録する際は、必ず一つの購買組織を入力する必要があります。

購買グループ
購買グループは購買活動を行う購買担当者、あるいは、購買担当者のグループに相当します。
例えば、原材料を調達する購買のグループ、完成品を調達する購買のグループというようにグルーピングします。購買グループは会社コードや購買組織などとの紐付けはなく独立した組織となります。購買発注伝票登録時に入力しますが、購買組織に依存せず、購買グループを選択することが可能です。レポート目的や権限制御が主な使用目的となります。 

  

SAPの知識・スキルを獲得する方法

SAPというシステムはドイツSAP社の製品のため、基本的に社内・プロジェクトに閉じたクローズドな知識と言えます。例えば、フリーソフトであるJavaの場合は、各企業の講座・プログラミングスクールや書籍などから情報は溢れていてJavaのプロジェクトに参画していない人でも知識を獲得することができると思います。意欲さえあれば大学生でも十分な知識・スキルを得ることが可能です。SAPの場合はなかなかそうはいきません。
では、SAPコンサルタント・エンジニアはどのように知識を得ているのでしょうか?一般的にはSAPのフリーコンサルになるには、SAPを専業としているコンサルティングファームで経験を積むことが必要と言われています。しかし、私はフリーのSAPコンサルになるために、必ずしもコンサルファームでの経験は必須ではないと思います。インターネット以前であれば、企業での勉強は必要でしたが、ここ10年ほどでSAPの知識や課題解決のソリーションはネット上に激的に増えてきたと感じています。
日々、活発な議論やQ&Aが以下のようなコミュニティサイトで交わされています。基本的にSAPのこれらのサイトは日本語情報は非常に少ないです。ほとんどの情報は英語圏にありますので、まずは前提として英語力を鍛える必要があります。そうすることで、SAPの知識スキルやソリューションはウェブ上から獲得でき、SAPエンジニアとして成長していくことは十分可能だと考えています。
community.sap.com

blogs.sap.com

SAP MM 特殊在庫について

 

キーワード SAP MM, 特殊在庫、特殊在庫区分、受注在庫
標準在庫とは別で管理される特殊在庫区分の説明です。
E 受注在庫 (テーブル:MSKA)
SDの受注伝票に紐付けられた在庫です。受注してから生産する受注生産プロセス、受注してから発注する個別購買発注プロセス(あるいは仕入先直送)、で使用される特殊在庫区分です。受注在庫は個別の受注伝票に紐づく生産、発注により作成される在庫のため、フリー在庫(標準在庫)とは区別して管理され、他の受注伝票に在庫引当されることはありません。

W 得意先預託在庫 (テーブル:MSKU)
得意先倉庫で管理される在庫です。SDの預託販売で使用される特殊在庫区分です。自社から得意先倉庫へ出荷すると得意先預託在庫として管理されます。得意先預託在庫は物理的には得意先倉庫にありますが、資産所有権としてはまだ自社資産となります。そして、得意先から最終顧客へ販売された後に、得意先預託在庫から出庫されることとなります。

O 支給品在庫 (テーブル:MSLB)
外注加工プロセスで使用される特殊在庫区分です。外注加工では、自社から外注先に原材料や部品を送付します。原材料や部品を送付してから完成品入庫までの間、これらの原材料/部品は自社資産のままであり支給品在庫として管理されます。

K 受託在庫 (テーブル:MKOL)
得意先預託在庫の逆の考え方。仕入先から商品を自社倉庫に入庫するが、自社倉庫から商品が払い出されるまでは所有権は仕入先にある。

Q プロジェクト在庫 (テーブル:MSPR)
プロジェクト在庫はプロジェクトのために使用される特殊在庫です。フリー在庫(通常在庫)とは区別して管理されます。あるプロジェクトには、WBSを階層的に作成し、プロジェクト管理しますが、そのWBS要素に対して在庫を割り当てます。

P パイプライン在庫
石油や電気などエネルギー業界で使用される在庫区分(実際に使用したことはないです)。パイプラインでは、POを作成することはなく、在庫管理もしないで、使用に応じて出庫を行います。

<特殊在庫のロケーションと資産所有を表現した図>

f:id:carthat:20200703184221p:plain