購買から支払いまで(P2P)の請求書処理データテンプレート
購買から支払いまで(P2P)の請求書処理データテンプレート
- 収集を推奨する項目
- 追跡すべき主要アクティビティ
- `SAP ECC`の抽出ガイダンス
購買から支払いまで(P2P)- 請求書処理属性
| 名前 | 説明 | ||
|---|---|---|---|
| アクティビティ Activity | 請求書処理ライフサイクル中に発生した特定のビジネスステップまたはイベントの名前。 | ||
| 説明 活動(Activity)属性は、請求書処理ワークフロー内の明確な段階またはアクションを表します。これらの活動は、文書作成、ステータス変更、承認、SAP変更ログに記録されたユーザーアクションなど、さまざまなシステムイベントから派生します。 活動の分析はプロセスマイニングの核です。これにより、プロセスマップの可視化、ボトルネック(例:「請求書承認依頼済み」後の長い待機時間)、手戻り作業(例:繰り返される「支払保留設定」と「支払保留解除」のサイクル)、およびコンプライアンス違反の特定が可能になります。活動の順序と頻度によって、実際の現状のプロセスフローが明らかになります。 その重要性 プロセスマップのステップを定義し、プロセスフローの可視化、ボトルネックの発見、手戻りの特定を可能にします。 取得元 この属性は通常、トランザクションコード(SY-TCODE)、RBKPのようなテーブルのステータスフィールド(例:RBSTAT)、およびCDHDRとCDPOSテーブルからの変更イベントを含む複数のソースから導出されます。 例 請求書仮登録承認のために請求書を送信請求書承認済み請求書仕訳計上済み請求書 消込済み | |||
| イベント日時 EventTime | 活動が発生した日時を含む正確なタイムスタンプ。 | ||
| 説明 イベントタイムは、ビジネスアクティビティが実行され、ソースシステムに記録された正確な瞬間を記録します。このタイムスタンプはプロセスの時系列的なバックボーンであり、各請求書のすべてのアクティビティを一貫したシーケンスに並べます。 分析において、イベントタイムはサイクルタイム、待機時間、アクティビティ間の処理時間など、すべての期間ベースのメトリックを計算するために不可欠です。「請求書のエンドツーエンドサイクルタイム」や「支払ブロック解決期間」のようなダッシュボードは、プロセス内の任意の2点間で経過した時間を測定するために必要なデータを提供することで機能します。正確なタイムスタンプは、遅延やパフォーマンスのボトルネックを特定するために極めて重要です。 その重要性 このタイムスタンプは、イベントを正しく順序付けし、サイクルタイムやボトルネック期間など、すべてのパフォーマンス指標を計算するために不可欠です。 取得元 これは通常、変更伝票ヘッダーテーブルCDHDRからの変更日付(UDATE)と変更時刻(UTIME)を組み合わせることで導出されます。特定の作成イベントの場合、RBKPのようなテーブルからの作成日付と時刻(ERNAM, ERZET)となることがあります。 例 2023-03-15T10:30:00Z2023-03-16T14:05:21Z2023-03-28T09:00:00Z | |||
| 請求書番号 InvoiceNumber | 仕入先請求書伝票の一意の識別子。 | ||
| 説明 請求書番号は、請求書処理ジャーニーの一意のケース識別子として機能します。各番号は、仕入先から受け取った単一の請求書に対応し、データ入力から最終支払いまでのすべての関連活動を、一貫した単一のプロセスインスタンスの一部として追跡できるようにします。 プロセスマイニング分析において、この属性はすべての請求書の包括的なライフサイクルを再構築するための基礎となります。SAPに記録された、保留、転記、保留、決済などの異なるイベントを時系列に接続することを可能にします。これにより、各請求書がどのように処理され、どれくらいの時間がかかり、標準プロセスからの逸脱がどこで発生するかを明確に把握できます。 その重要性 これは、単一の請求書に関連するすべてのイベントをリンクする主キーであり、プロセス分析およびバリアント探索の不可欠な基盤となります。 取得元 これは通常、SAPテーブルRBKPの伝票番号(BELNR)であり、絶対的な一意性を確保するために、会社コード(BUKRS)と会計年度(GJAHR)と連結されることがよくあります。 例 510004567851000456795100045680 | |||
| ユーザー名 UserName | 活動を実行した担当者のSAPユーザーID。 | ||
| 説明 ユーザー名(User Name)属性は、プロセス内で特定の活動を実行した担当者を識別します。これは通常、トランザクションまたは変更イベントとともにログに記録されるSAPユーザー名です。 この属性は、ユーザーまたはチームレベルでのパフォーマンス分析にとって重要です。「最も迅速な承認者は誰か?」や「最も多くの手戻り作業を発生させるユーザーは誰か?」といった質問に答えるのに役立ちます。ダッシュボードでは、ワークロードの配分を分析し、トレーニングの必要性を特定し、異なる従業員間でのパフォーマンスのばらつきを理解するために使用されます。 その重要性 個人またはチームごとのパフォーマンスとワークロードの分析を可能にし、優秀な人材、トレーニング機会、リソースの不均衡を特定するのに役立ちます。 取得元 これは、変更伝票ヘッダーテーブルCDHDRの「変更者」フィールド(USERNAME)です。作成イベントの場合、RBKPなどのテーブルの「入力者」フィールド(ERNAM)となることがあります。 例 JSMITHBWILSONCHEN | |||
| 仕入先コード VendorNumber | 請求書を提出したサプライヤーまたはベンダーの一意の識別子です。 | ||
| 説明 仕入先コード(Vendor Number)は、サプライヤーを識別するマスターデータキーです。これは請求書取引を特定のビジネスパートナーにリンクさせ、仕入先特性に基づいた分析を可能にします。 仕入先コードごとにプロセスを分析することで、サプライヤー関係とパフォーマンスに関する重要な洞察が得られます。例えば、どの仕入先が常に支払保留や不一致につながる問題のある請求書を提出しているか、あるいはどの仕入先の請求書が最も効率的に処理されているかを特定するのに役立ちます。この情報は、仕入先管理および戦略的調達イニシアチブにとって貴重です。 その重要性 サプライヤー固有の分析を可能にし、特定のサプライヤーに関連するパターン、問題、または効率性を特定するのに役立ちます。 取得元 これは、請求書伝票ヘッダーテーブルRBKPの「請求元」フィールド(LIFNR)です。 例 100345100876200112 | |||
| 支払ブロック理由 PaymentBlockReason | 請求書の支払いがブロックされる理由を示すコードです。 | ||
| 説明 請求書に不一致がある場合やさらなる調査が必要な場合、支払保留が適用されます。支払保留理由コードは、数量差異、価格差異、または手動ブロックなど、保留が設定された理由を指定します。 この属性は、「支払保留解決期間」ダッシュボードにとって不可欠です。理由別に保留の頻度と期間を分析することで、支払遅延の根本原因を特定するのに役立ちます。例えば、「価格不一致」が長期保留の最も一般的な理由である場合、マスターデータまたは発注プロセスにおける潜在的な問題を示しており、対処が必要です。 その重要性 請求書が遅延する理由を説明し、支払ブロックの根本原因分析を可能にし、プロセス改善の取り組みを優先順位付けするのに役立ちます。 取得元 支払保留理由は、テーブルRSEGの項目レベル(フィールドSPGRS)または会計伝票テーブルBSEG(フィールドZLSPR)で見つけることができます。 例 RIM | |||
| 支払期日 PaymentDueDate | 支払条件に従い、仕入先への請求書支払いが期日となる日付。 | ||
| 説明 支払期日(Payment Due Date)は、請求書の基準日付と合意された支払条件に基づいて計算されます。これは、遅延を避け、潜在的な罰金やベンダー関係の損害を招かないための支払い期限を表します。 この属性は、「期日内支払率」や「キャッシュディスカウント機会損失」などのパフォーマンスおよびコンプライアンスKPIにとって重要です。実際の支払日(決済日付)と支払期日を比較することで、分析は支払いが期日通りか、早期か、遅延かを自動的に判断できます。これは「支払条件遵守」ダッシュボードの基礎的な要素です。 その重要性 期限内支払いパフォーマンスを測定し、早期支払割引を獲得する機会を特定するためのベースラインとして機能します。 取得元 この日付はしばしば計算されます。支払の基準日付(ZFBDT)はテーブルBSEGにあります。期日のロジックは支払条件(BSEG-ZTERM)にも依存します。 例 2023-04-192023-05-052023-05-11 | |||
| 決済日 ClearingDate | 支払いが実行され、請求書が買掛金勘定から決済された日付。 | ||
| 説明 決済日付(Clearing Date)は、請求書ライフサイクルの最終ステップである支払いを示します。これは、未払いの請求書明細項目がシステム内の支払伝票によって決済された日付です。この日付は実際の支払実行時間を表します。 この属性は、「平均請求書サイクルタイム」や「期日内支払率」を含む多くの重要なKPIのエンドポイントです。支払期日と比較して支払パフォーマンスを測定します。キャッシュディスカウント分析では、支払いが割引期間内に実行され、割引を獲得できたかを確認するために割引期間と比較されます。 その重要性 プロセスの完了を示し、総サイクルタイム、期限内支払い率、現金割引の実現を計算するための基礎となります。 取得元 消込済みの項目については、これは消込済みサプライヤー明細テーブルBSAKの「消込日付」フィールド(AUGDT)です。 例 2023-04-152023-05-022023-05-20 | |||
| 発注書番号 PurchaseOrderNumber | 請求書が照合される発注書(PO)の識別子。 | ||
| 説明 発注書番号(Purchase Order Number)は、請求書を元の調達文書にリンクさせます。これは三点照合(発注書、入庫、請求書)の基本であり、発注書に基づいた請求書処理の効率を分析するために重要です。 この属性は、「請求書-発注書照合不一致率」のようなダッシュボードにとって不可欠です。これにより、プロセスを発注書付き請求書と発注書なし請求書にセグメント化でき、これらはしばしば非常に異なる処理経路と複雑さを持っています。特定のPOに関連する問題を分析することで、調達プロセスの上流における問題を診断するのに役立ちます。 その重要性 請求書を調達プロセスに接続し、PO(購買発注)と非PO請求書の比較分析や、照合の不一致の特定を可能にします。 取得元 これは通常、明細項目レベルで見つかります。「発注書番号」(EBELN)は請求書項目テーブルRSEGにあります。ヘッダーレベルに集計する必要がある場合があります。 例 450001756345000175644500017565 | |||
| 計上日 PostingDate | 請求書が公式に財務元帳に転記された日付。 | ||
| 説明 転記日付(Posting Date)は会計プロセスにおける重要な日付です。これは、請求書の費用が総勘定元帳で認識される会計期間を決定します。通常、請求書処理中に買掛金担当者によって設定されます。 プロセス分析において、この日付でマークされる「請求書転記済み」活動は重要なマイルストーンです。請求書受領から転記日付までの期間は、全体のサイクルタイムの重要な要素です。この日付は、週ごとまたは月ごとの転記済み請求書数を追跡するなど、財務報告およびスループット分析にとっても基礎となります。 その重要性 プロセスの重要な節目を示し、取引の会計期間を決定し、サイクルタイム計算の主要な構成要素となります。 取得元 これは、請求書伝票ヘッダーテーブルRBKPの「転記日付」フィールド(BUDAT)です。 例 2023-03-202023-04-052023-04-11 | |||
| 請求金額 InvoiceAmount | 請求書の総額(元のドキュメント通貨建て)。 | ||
| 説明 請求金額は、サプライヤーが提出した請求書の総額を表します。これは、各請求書ケースにとって重要な財務メトリックです。 プロセスマイニングにおいて、この属性は価値ベースの分析に不可欠です。請求金額に基づいてプロセスをフィルタリングおよびセグメント化することができ、これはプロセスの複雑性や承認要件と相関することがよくあります。例えば、高額な請求書は異なる、より厳格な承認経路をたどる可能性があります。また、コンプライアンス分析にも使用され、例えば、高額な請求書が必須の承認ステップを迂回しているかどうかをチェックします。 その重要性 価値ベースの分析を可能にし、高額な請求書を優先し、請求金額がプロセスフローとコンプライアンスにどのように影響するかを理解するのに役立ちます。 取得元 これは、請求書伝票ヘッダーテーブルRBKPの「請求書総額」フィールド(RMWWR)です。 例 1500.7512500.00850.20 | |||
| ソースシステム SourceSystem | データが抽出された特定のソースシステムを識別します。 | ||
| 説明 ソースシステム(Source System)属性は、イベントデータの発生源、例えば特定のSAP ECCインスタンス名を示します。これは、複数のERPシステムを持つ環境や、異なるソースからデータが結合される場合に特に重要です。 分析において、この属性は、別々のインスタンスで稼働している可能性のあるさまざまなシステム、地域、またはビジネスユニット間でのプロセスとパフォーマンスを区別するのに役立ちます。これによりデータのリネージが明確になり、システム固有のフィルタリングと分析が可能になります。 その重要性 複数システム環境において重要なコンテキストを提供し、適切なデータ分離とシステム固有のパフォーマンス分析を可能にします。 取得元 これは通常、データ抽出プロセス中に付加される静的値で、SAPシステムID(TADIR-SRCSYSTEM)または特定のSAPインスタンスに手動で割り当てられた識別子を表します。 例 SAPECC_PROD_EUECC_US_FINSAP_ERP_6_EHP8 | |||
| ドキュメントタイプ DocumentType | 会計伝票を、例えば仕入先請求書またはクレジットメモとして分類するコードです。 | ||
| 説明 伝票タイプ(Document Type)は、SAPでさまざまな種類の取引を分類するために使用されます。請求書処理では、標準請求書には「RE」、仕入先クレジットメモには「KG」などの一般的なタイプがあります。伝票タイプは、使用される番号範囲など、転記の側面を制御します。 分析では、この属性によりプロセスを特定の取引タイプにフィルタリングできます。例えば、クレジットメモの処理プロセスは標準請求書とは大きく異なる場合があります。伝票タイプを使用してこれらの流れを分離することで、より正確で意味のあるプロセスビューが提供されます。 その重要性 請求書とクレジットメモのように異なるプロセスに従う異なるビジネストランザクションの分離と分析を可能にします。 取得元 これは、請求書伝票ヘッダーテーブルRBKPの「伝票タイプ」フィールド(BLART)です。 例 REKRKG | |||
| 会社コード CompanyCode | 請求書が処理されている法人または会社の識別子。 | ||
| 説明 会社コード(Company Code)はSAPファイナンシャルにおける基本的な組織単位であり、独立した法的エンティティを表します。請求書を含むすべての財務取引は、特定の会社コードに転記されます。 この属性により、プロセス分析を法的エンティティごとにセグメント化することができます。これは、企業グループ内の異なる会社間でプロセスパフォーマンス、コンプライアンス、効率を比較するために不可欠です。ダッシュボードは会社コードでフィルタリングすることで、請求書処理KPIの会社固有のビューを提供できます。 その重要性 組織内の異なる法人間でプロセス比較とパフォーマンスベンチマークを可能にします。 取得元 これは、請求書伝票ヘッダーテーブルRBKPの「会社コード」フィールド(BUKRS)です。 例 10002000US01 | |||
| 最終データ更新 LastDataUpdate | プロセスに関するデータがソースシステムから最後に更新された日時を示すタイムスタンプ。 | ||
| 説明 この属性は、最新のデータ抽出または更新の日時を記録します。個々のイベントではなくデータセット全体に適用され、データの鮮度を明確に示します。 これはダッシュボードユーザーおよびアナリストにとって重要なメタデータ属性です。これにより、分析対象期間を理解し、最新情報に基づいて意思決定を行っていることを確認できます。通常、データの鮮度をユーザーに通知するためにダッシュボードに目立つように表示されます。 その重要性 データの鮮度をユーザーに通知し、分析と意思決定が最新の情報に基づいていることを保証します。 取得元 この値は、データ抽出またはETLツールによって、データ更新時にデータセットに生成および挿入されます。 例 2024-05-20T08:00:00Z2024-05-21T08:00:00Z2024-05-22T08:00:00Z | |||
| 処理時間 ProcessingTime | 特定の活動に費やされた時間の長さ。 | ||
| 説明 処理時間(Processing Time)は、活動の開始から終了までに要する時間を測定します。活動の「終了時刻」と「開始時刻」の差として計算されます。これは、活動間の待機時間を含むサイクルタイムとは異なります。 処理時間を分析することで、異なるステップにおける実際の労力や接触時間を理解するのに役立ちます。リソース集約的または非効率的な活動を特定できます。例えば、長い「請求書データ入力済み」処理時間は、複雑な請求書または非効率なデータ入力プロセスを示している可能性があります。この指標は、リソース計画や自動化イニシアチブにとって貴重です。 その重要性 アクティビティの実際の作業期間を測定し、リソース集約型のステップを特定し、アクティブな作業時間とアイドル状態の待機時間を区別するのに役立ちます。 取得元 この属性はSAPには存在しません。データ変換時に「終了時刻 - 開始時刻」の計算式を用いて計算されます。 例 PT5M10SPT2H15MPT30S | |||
| 却下理由 RejectionReason | 承認ワークフロー中に請求書が却下された理由を説明するコードまたはテキストです。 | ||
| 説明 承認者が請求書を却下する場合、理想的には却下の理由を提供します。これは、「誤った発注書番号」、「重複請求書」、「金額間違い」などの問題を指摘する標準化されたコードまたは自由記述コメントである可能性があります。 このデータは「請求書却下理由と傾向」ダッシュボードにとって不可欠です。異なる却下理由の頻度を分析することで、企業は一般的な問題を特定し、是正措置を講じることができます。例えば、「誤った発注書番号」が頻繁な理由である場合、ベンダーとのコミュニケーション改善やデータ入力担当者へのトレーニングの必要性を示している可能性があります。この分析は、手戻り作業を削減する上で鍵となります。 その重要性 却下の根本原因を提供し、手戻りを削減し、初回正解率を向上させるためのターゲットを絞ったプロセス改善を可能にします。 取得元 この情報は、単一の標準フィールドに保存されていないことがよくあります。ワークフローコンテナログ、伝票に関連付けられた長文テキストフィールド、またはカスタムワークフローソリューションの特定のフィールドで見つかる場合があります。 例 DUPLICATE_INVWRONG_AMT発注書なし(POマッチなし) | |||
| 支払条件 PaymentTerms | ベンダーと合意された支払条件を定義するコードで、割引期間や期日などが含まれます。 | ||
| 説明 支払条件は、請求書がいつ支払われるべきか、早期支払いに対してキャッシュディスカウントが利用可能かどうかを定義するルールです。例としては、「30日ネット」や「2% 10日、30日ネット」(10日以内に支払うと2%割引、それ以外の場合は30日以内に全額支払い)などがあります。 この属性は、「キャッシュディスカウント機会損失」ダッシュボードおよび「キャッシュディスカウント取得率」KPIの基盤となります。分析では、支払条件を転記日および支払日と組み合わせて、割引が利用可能であったか、そしてそれが正常に適用されたかを判断します。これは「支払条件遵守」ダッシュボードにとっても重要な要素です。 その重要性 現金割引獲得率の分析や、プロセス遅延の財務的影響を理解するために不可欠です。 取得元 これは、請求書伝票ヘッダーテーブルRBKPの「支払条件キー」フィールド(ZTERM)です。 例 Z0010001NT30 | |||
| 期限超過 IsOverdue | 請求書が支払期日後に支払われたかどうかを示す計算フラグです。 | ||
| 説明 これは「決済日付」(実際の支払日)と「支払期日」を比較することで計算されるブール値属性です。決済日付が期日後であればフラグはtrue、そうでなければfalseとなります。これにより、各請求書の期日内支払パフォーマンスをシンプルかつ直接的に測定できます。 この属性は、ダッシュボードでの分析と可視化を簡素化します。「期日内支払率」KPIを計算するためのフィルタリングと集計を容易にします。ユーザーはプロセスを迅速にセグメント化して、延滞請求書と期日内支払い請求書のプロセスフローを比較でき、支払遅延につながるプロセスパターンを明らかにする可能性があります。 その重要性 期限内支払いパフォーマンスの分析を簡素化し、期限内と遅延の請求書プロセスを容易に比較できるようにします。 取得元 この属性はSAPには存在しません。データ変換時に「決済日付 > 支払期日」の計算式を用いて計算されます。 例 truefalse | |||
| 現金割引の失効 IsCashDiscountLost | 利用可能な現金割引が失われたかどうかを示す計算フラグです。 | ||
| 説明 これは支払条件と実際の支払日に基づいて計算されるブール値属性です。「支払条件」が早期支払いの割引を提供し、「決済日付」が割引期間の期限切れ後であった場合、「true」に設定されます。これはプロセス非効率による財務的損失を直接測定します。 この属性は「キャッシュディスカウント機会損失」ダッシュボードの基盤となります。処理遅延による財務的影響を容易に定量化できます。このフラグがtrueであるケースでフィルタリングすることで、アナリストは割引機会の損失に最も頻繁につながる特定のプロセスバリアントとボトルネックを調査でき、プロセス改善のための強力なビジネスケースを提供します。 その重要性 プロセス遅延による財務上の損失を直接定量化し、請求書処理ワークフロー最適化の説得力のある根拠を創出します。 取得元 この属性はSAPには存在しません。「支払条件」を解釈し、「決済日付」を割引期日と比較することで、データ変換中に計算されます。 例 truefalse | |||
| 終了日時 EndTime | 活動が完了したことを示すタイムスタンプ。瞬間的なイベントの場合、これは開始時刻と同じです。 | ||
| 説明 終了時刻(End Time)属性は、特定の活動の完了を示します。SAPで多くのイベントが単一の時点としてログに記録される場合、終了時刻は開始時刻と同一になります。しかし、承認ステップのように測定可能な期間を持つ活動の場合、それはその作業の完了を表すことがあります。 プロセス分析において、明確な終了時刻を持つことで、その活動に先行する待機時間とは別に、活動の処理時間を測定できます。これにより、活動の実行にかかる時間と、その活動が開始されるまでケースが待機する時間を区別でき、リソース効率に関するより深い洞察が得られます。 その重要性 アクティビティの処理時間を計算し、アクティビティ間の待機時間と区別することで、ボトルネック分析を改善します。 取得元 これはしばしば開始時刻と同じで、CDHDR-UDATEとCDHDR-UTIMEから導出されます。場合によっては、タスクの開始と終了を明示的に記録するワークフローログから導出されることもあります。 例 2023-03-15T10:35:10Z2023-03-16T14:10:00Z2023-03-28T09:02:45Z | |||
| 総勘定元帳勘定 GeneralLedgerAccount | 請求書の費用またはコストが転記されるG/L勘定科目番号。 | ||
| 説明 総勘定元帳(G/L)勘定科目は、請求書の財務的影響が記録される勘定科目表内の最終勘定科目です。これは財務報告およびコスト管理にとって重要なデータです。 プロセスマイニングにとって、G/L勘定科目を分析することは、プロセスフローに財務的側面をもたらします。「総勘定元帳勘定使用分析」ダッシュボードは、支出パターンを明らかにし、請求書の潜在的な誤分類を特定し、コストが正しい部門やプロジェクトに割り当てられていることを確認できます。これは、プロセス実行と財務的影響との間のギャップを埋めるのに役立ちます。 その重要性 プロセスに財務的な側面を追加し、コスト配分、支出パターン、潜在的な請求書の誤ったコーディングの分析を可能にします。 取得元 これは明細項目レベルで見つかります。「G/L勘定科目番号」(HKONT)は、発注書(PO)請求書の場合は請求書項目テーブルRSEGに、直接財務会計(FI)請求書の場合はBSEGにあります。 例 630000655100741000 | |||
| 通貨 Currency | 請求金額の通貨コード。 | ||
| 説明 通貨(Currency)属性は、請求書金額がどの通貨で表記されているかを示します。例えば、USD、EUR、JPYなどです。 この属性は請求書金額にとって不可欠なコンテキストを提供します。特に複数の通貨を扱うグローバルな組織では、財務データの正しい解釈と集計を可能にします。異なる通貨圏間での処理効率や問題点を比較するために、分析を通貨でフィルタリングできます。意味のある財務集計のためには、金額を単一の報告通貨に換算する必要がある場合があります。 その重要性 あらゆる財務金額に必要なコンテキストを提供し、正確な解釈を保証し、通貨ベースのフィルタリングと分析を可能にします。 取得元 これは、請求書伝票ヘッダーテーブルRBKPの「通貨キー」フィールド(WAERS)です。 例 USDEURGBP | |||
購買から支払いまで(P2P)- 請求書処理活動
| アクティビティ | 説明 | ||
|---|---|---|---|
| 支払ブロック設定 | この活動は、請求書明細項目に保留が設定され、支払いができなくなる際に発生します。保留は、三点照合の不一致により自動的に設定される場合もあれば、さまざまな理由で手動で設定される場合もあります。 | ||
| その重要性 このイベントは、支払保留解決期間を測定し、支払い遅延の根本原因を特定するために重要です。価格、数量、または必要な承認に関する問題を浮き彫りにします。 取得元 これは、BSEGテーブルのフィールドZLSPR(支払保留キー)に関する変更伝票ログ(テーブルCDHDRおよびCDPOS)を通じて追跡できる明示的なイベントです。 取得 BSEG-ZLSPRの値が空白から非空白に変化したときの変更伝票(CDHDR)からのタイムスタンプ。 イベントタイプ explicit | |||
| 請求書 消込済み | この活動は、未払いの債務が支払伝票によって決済される、成功した請求書ライフサイクルの最終ステップを示します。これは支払いが実行されたことを意味します。 | ||
| その重要性 主要な終了イベントとして、これはエンドツーエンドの総サイクルタイムを計算するために不可欠です。プロセスの成功完了を確認し、期限内支払いのパフォーマンスを測定するために使用されます。 取得元 これは、請求書明細項目テーブルBSEGに記録される明示的なイベントです。決済日付はフィールドAUGDTに、決済伝票番号はAUGBLに格納されます。 取得 請求書伝票の明細項目からの決済日付(BSEG-AUGDT)を使用します。 イベントタイプ explicit | |||
| 請求書データ 取り込み完了 | SAPシステムで請求書が最初に作成された時点を示します。これは保留状態または完全転記済みのいずれかの文書として記録されます。通常、請求書のライフサイクルにおけるシステムで最初に記録されるイベントであり、プロセス開始時刻として機能します。 | ||
| その重要性 この活動は、請求書処理の包括的なサイクルタイムを測定するための主要な開始点です。この時点からの期間を分析することで、初期のデータ入力および文書作成段階での遅延を特定するのに役立ちます。 取得元 作成タイムスタンプは、SAPテーブルBKPFのフィールドCPUDT(会計伝票入力日)およびCPUTM(入力時刻)に記録されます。 取得 BKPFテーブルヘッダーからの伝票作成タイムスタンプ(CPUDT)を使用します。 イベントタイプ explicit | |||
| 請求書の逆仕訳 | 転記された請求書文書のキャンセルを表します。元の請求書の財務的影響を打ち消すために、取消文書が作成されます。 | ||
| その重要性 この活動は、重要な例外と手戻り経路を浮き彫りにします。取消の頻度と理由を分析することで、請求書の検証および転記プロセスにおけるシステム的な問題が明らかになる可能性があります。 取得元 これは、文書ヘッダーテーブルBKPFに記録される明示的なイベントです。取消文書のヘッダーには、取消伝票番号(STBLG)と会計年度(STJAH)が含まれています。 取得 BKPF-STBLGが入力されている伝票を特定します。イベントのタイムスタンプは、反転伝票の記帳日付です。 イベントタイプ explicit | |||
| 請求書仕訳計上済み | これは、請求書が総勘定元帳に公式に記録され、負債を発生させる重要な財務イベントです。これにより、伝票は一時的な(保留)状態から恒久的な会計エントリに移行します。 | ||
| その重要性 転記は請求書の有効性を確認する重要なマイルストーンです。これは支払いの前提条件であり、処理スループットの主要な指標となります。 取得元 これは、文書ヘッダーテーブルBKPFに記録される明示的なイベントです。タイムスタンプは転記日付、BKPF-BUDATです。文書は「保留中」ステータスではなくなります。 取得 保留されていない伝票(BKPF-BSTATが空白または「 」)には、転記日付(BKPF-BUDAT)を使用します。 イベントタイプ explicit | |||
| 承認のために請求書を送信 | 請求書が正式な承認ワークフローに提出される時点を表します。取り込みメカニズムは、特定のSAPワークフローまたはサードパーティシステムの導入に大きく依存します。 | ||
| その重要性 この活動は、請求書承認サイクルタイムKPIの計測を開始します。承認チェーンにおける遅延を特定し、承認者のパフォーマンスを分析するために不可欠です。 取得元 このイベントは通常、特定の承認タスクの開始を識別することで、SAPビジネスワークフローテーブル(例:SWW_WI2OBJ、SWWLOG)から取得されます。より単純なシナリオでは、カスタムフィールドのステータス変更から推測される場合があります。 取得 SAPワークフローログまたは請求書文書にリンクされたカスタムステータスフィールドの分析が必要です。 イベントタイプ inferred | |||
| 支払いブロックが解除されました | 請求書明細項目からの支払保留の解除を表し、支払実行に進むことを可能にします。これは、以前に特定された問題が解決されたことを意味します。 | ||
| その重要性 この活動は、保留期間の測定を完了します。保留が設定されてから解除されるまでの時間を分析することで、問題解決プロセスの効率が明らかになります。 取得元 このイベントは、ブロックが解除された際に、BSEGテーブルのフィールドZLSPR(支払保留キー)に関する変更伝票ログ(テーブルCDHDRおよびCDPOS)を通じて追跡されます。 取得 BSEG-ZLSPRの値が非空白から空白に変化したときの変更伝票(CDHDR)からのタイムスタンプ。 イベントタイプ explicit | |||
| 請求書が期限切れになる | 現在の日付が請求書の正味支払期日を過ぎ、かつ請求書がまだ支払われていない場合に発生する計算イベントです。支払期日は、支払条件と基準日から決定されます。 | ||
| その重要性 この活動は、期日内支払率KPIを監視するために不可欠です。支払遅延のリスクがある請求書をプロアクティブに特定し、ベンダー関係の悪化や罰金の発生を防ぎます。 取得元 このイベントは、現在日付と正味期日を比較することで計算されます。期日は、基準日付(BSEG-ZFBDT)と支払条件(BSEG-ZTERM)から導出されます。 取得
イベントタイプ calculated | |||
| 請求書仮登録 | 請求書がSAPに入力されたものの、まだ総勘定元帳に記帳されていないことを示します。これは、財務記帳前にレビュー、修正、または承認を可能にする一時的な状態です。 | ||
| その重要性 請求書が保留された時期と期間を追跡することで、転記前の検証および承認プロセスにおけるボトルネックが浮き彫りになります。これにより、データ入力時間と財務処理時間を区別できます。 取得元 これは、テーブルBKPFのフィールドBSTATにおける伝票ステータスから推測されます。「V」(保留伝票)または「W」(変更リリース付き保留伝票)の値は、保留状態を示します。 取得 ステータスフィールドBKPF-BSTATが「V」である伝票を特定します。イベントのタイムスタンプは、作成日BKPF-CPUDTです。 イベントタイプ inferred | |||
| 請求書却下 | 請求書が承認プロセス中に却下されたことを示します。このアクションは通常、修正と再提出を必要とし、手戻りループを作成します。 | ||
| その重要性 却下を追跡することは、データの間違いやポリシー違反など、失敗の一般的な理由を特定するために非常に重要です。手戻り作業を定量化し、プロセス改善やベンダー教育の分野を明確にするのに役立ちます。 取得元 このイベントは通常、SAPビジネスワークフローログ内で却下ステップとして見つかります。また、特定のステータス変更や請求書文書に追加されたメモから推測することもできます。 取得 ワークフローログにおける却下ステップのタイムスタンプ、または却下を示す伝票ステータス変更のタイムスタンプ。 イベントタイプ inferred | |||
| 請求書承認済み | 請求書が指定された権限者によって正式に承認され、転記と支払いに進むことが許可されたことを示します。これはしばしばワークフローの最終ステップとなります。 | ||
| その重要性 このマイルストーンは、承認サイクルタイムの測定を完了します。プロセスをブロック解除し、タイムリーな支払いを可能にし、承認者間のワークロード配分を分析するのに役立ちます。 取得元 これは通常、承認タスクの完了を識別することにより、SAPビジネスワークフローテーブルから取得されます。または、承認関連の支払保留の解除から推測することもできます。 取得 ワークフローログにおける承認ステップ完了のタイムスタンプ、または特定の支払保留の解除のタイムスタンプ。 イベントタイプ inferred | |||
抽出ガイド
ステップ
- ABAPプログラムの作成: トランザクション
SE38またはSE80を使用して、新しい実行可能プログラム(例:Z_PM_INVOICE_EXTRACT)を作成します。適切なタイトルを指定し、タイプを「実行可能プログラム」に設定します。 - 選択画面の定義: プログラム内で、ユーザーがデータをフィルターできるように選択画面を定義します。主要なパラメーターには、会社コード(
BUKRS)、会計年度(GJAHR)、記帳日付範囲(BUDAT)、およびアプリケーションサーバー上の出力ファイルパスを含める必要があります。 - データ構造の宣言: 最終的なイベントログを保持する内部テーブル構造を定義します。この構造には、必須および推奨されるすべての属性(
InvoiceNumber、Activity、EventTime、UserName、VendorNumber、PurchaseOrderNumber、InvoiceAmount、PostingDate、PaymentDueDate、PaymentBlockReason、ClearingDate)を含める必要があります。 - データ選択ロジックの実装: 請求書データを選択するコアABAPロジックを記述します。このアプローチでは、複数の選択を組み合わせて最終的なイベントログテーブルを作成します。
- まず、選択画面の基準に基づいて、主要な請求書テーブル
BKPF、BSEG、RBKP、RSEGからヘッダーおよび明細データを抽出します。 - 各請求書について、「請求データ取り込み」(作成タイムスタンプから)および「請求書記帳済み」(記帳タイムスタンプから)のような基本イベントを生成します。
- 変更伝票テーブル
CDHDRとCDPOSを照会し、支払ブロック(BSEGのZLSPRフィールド)に関連する変更を検索します。関連する変更ごとに、「支払ブロック設定」および「支払ブロック解除」イベントを作成します。 - テーブル
BSEGで消込伝票(AUGBL)および消込日付(AUGDT)をチェックして、「請求書消込済み」イベントを特定します。 BKPFヘッダーで反転伝票(STBLG)をチェックして、「請求書反転済み」イベントを特定します。- ワークフローイベント(「承認のために請求書を送信」、「承認済み」、「却下済み」)をキャプチャするためのカスタムロジックを実装します。この部分は顧客固有性が高く、ワークフローのテーブルまたはステータスフィールドに合わせてコードを適応させる必要があります。
- まず、選択画面の基準に基づいて、主要な請求書テーブル
- 計算イベントの生成: プログラムロジック内で、
請求書支払期日超過イベントを計算します。これは、すべての未払い請求書について、請求書の支払期日(PaymentDueDate)と現在の日付を比較することによって導き出されます。期日が過去の場合、EventTimeを期日に設定してイベントを作成します。 - イベントログテーブルの入力: 異なるソースから各請求書のデータを収集する際、そのデータを整形し、アクティビティごとに1行ずつ、最終的な内部イベントログテーブルに新しい行を追加します。
- データをファイルにエクスポート:
OPEN DATASET、TRANSFER、CLOSE DATASETステートメントを使用して、最終的な内部テーブルの内容を、選択画面で指定されたSAPアプリケーションサーバーパス上のフラットファイルに書き込みます。CSVファイルを作成するために、セミコロンまたはタブなどの一貫した区切り文字を使用します。 - 抽出のスケジュール設定: 定期的なデータ抽出のために、希望する選択条件でプログラムのバリアントを作成し、トランザクション
SM36を使用してバックグラウンドジョブとして実行するようにスケジュールします。 - 出力ファイルの取得: トランザクション
AL11を使用してSAPアプリケーションサーバーディレクトリにアクセスし、生成されたファイルを見つけます。トランザクションCG3Yを使用して、ファイルをアプリケーションサーバーからローカルマシンにダウンロードします。 - アップロードの準備: プロセスマイニングツールにアップロードする前に、CSVファイルを開いて、ヘッダーが正しいこと、データ形式が一貫していること(特にタイムスタンプ)、および区切り文字が期待どおりであることを確認します。ファイルがUTF-8エンコーディングで保存されていることを確認します。
設定
- 選択条件: ABAPレポートには、包括的な選択画面を含める必要があります。最も重要なフィルターは次のとおりです。
会社コード (BUKRS): 抽出を特定の法人に限定するため。記帳日付 (BUDAT): 抽出の期間を定義するため。データを扱いやすいチャンク(例:一度に3〜6ヶ月)で抽出することを推奨します。伝票タイプ (BLART): ロジスティクス請求書用の'RE'や仕入先請求書用の'KR'など、関連する請求書伝票タイプのみを含めるため。
- 出力ファイルパス: 出力ファイルが作成されるSAPアプリケーションサーバー上のフルパスとファイル名を指定する必須パラメーターです。レポートを実行するユーザーは、このディレクトリへの書き込み権限が必要です。
- パフォーマンスに関する考慮事項: 大規模なデータセットの場合、システムのパフォーマンス低下を避けるため、レポートはピーク時以外の時間にバックグラウンドジョブとして実行する必要があります。ロジックは、テーブルから必要なフィールドのみを選択し、可能な場合は標準のSAPデータベースインデックスを利用する必要があります。
- 前提条件と権限: この抽出を実行するユーザーまたはサービスアカウントには、以下が必要です。
- ABAPレポート実行権限(
S_PROGRAMの一部)。 BKPF、BSEG、RBKP、RSEG、CDHDR、CDPOSを含む財務およびロジスティクステーブルへの読み取りアクセス権。- 指定されたアプリケーションサーバーディレクトリにファイルを書き込む権限(
S_DATASET)。 - 開発、スケジュール、ファイル取得のためのトランザクション
SE38、SM36、AL11、CG3Yへのアクセス権。
- ABAPレポート実行権限(
a クエリ例 abap
REPORT Z_PM_INVOICE_EXTRACT.
*&---------------------------------------------------------------------*
*& Tables for Selection Screen
*&---------------------------------------------------------------------*
TABLES: BKPF, RBKP.
*&---------------------------------------------------------------------*
*& Data Declarations
*&---------------------------------------------------------------------*
TYPES: BEGIN OF ty_event_log,
InvoiceNumber TYPE belnr_v,
Activity TYPE string,
EventTime TYPE timestamp,
UserName TYPE uname,
VendorNumber TYPE lifnr,
PurchaseOrderNumber TYPE ebeln,
InvoiceAmount TYPE wrbtr,
PostingDate TYPE budat,
PaymentDueDate TYPE faedt,
PaymentBlockReason TYPE rstgr,
ClearingDate TYPE augdt,
END OF ty_event_log.
DATA: gt_event_log TYPE TABLE OF ty_event_log,
gs_event_log TYPE ty_event_log.
DATA: lt_bkpf TYPE TABLE OF bkpf,
ls_bkpf TYPE bkpf,
lt_bseg TYPE TABLE OF bseg,
ls_bseg TYPE bseg.
DATA: lt_rbkp TYPE TABLE OF rbkp,
ls_rbkp TYPE rbkp.
*&---------------------------------------------------------------------*
*& Selection Screen
*&---------------------------------------------------------------------*
SELECT-OPTIONS: s_bukrs FOR bkpf-bukrs OBLIGATORY,
s_gjahr FOR bkpf-gjahr OBLIGATORY,
s_budat FOR bkpf-budat.
PARAMETERS: p_fpath TYPE string OBLIGATORY DEFAULT '/usr/sap/tmp/invoice_events.csv'.
*&---------------------------------------------------------------------*
*& Start of Program Logic
*&---------------------------------------------------------------------*
START-OF-SELECTION.
" Select FI Invoices (e.g., Doc Type KR)
SELECT * FROM bkpf INTO TABLE lt_bkpf
WHERE bukrs IN s_bukrs
AND gjahr IN s_gjahr
AND budat IN s_budat
AND blart = 'KR'.
" Select MM Invoices
SELECT * FROM rbkp INTO TABLE lt_rbkp
WHERE bukrs IN s_bukrs
AND gjahr IN s_gjahr
AND budat IN s_budat.
* --- Process FI Invoices ---
LOOP AT lt_bkpf INTO ls_bkpf.
CLEAR gs_event_log.
gs_event_log-InvoiceNumber = ls_bkpf-belnr.
gs_event_log-PostingDate = ls_bkpf-budat.
SELECT SINGLE * FROM bseg INTO ls_bseg
WHERE bukrs = ls_bkpf-bukrs
AND belnr = ls_bkpf-belnr
AND gjahr = ls_bkpf-gjahr
AND koart = 'K'. " Vendor Line Item
IF sy-subrc = 0.
gs_event_log-VendorNumber = ls_bseg-lifnr.
gs_event_log-InvoiceAmount = ls_bseg-wrbtr.
gs_event_log-ClearingDate = ls_bseg-augdt.
" Calculate Due Date
CALL FUNCTION 'DETERMINE_DUE_DATE'
EXPORTING
i_bseg = ls_bseg
IMPORTING
e_faedt = gs_event_log-PaymentDueDate.
ENDIF.
" Activity: Invoice Data Captured
gs_event_log-Activity = 'Invoice Data Captured'.
CONVERT DATE ls_bkpf-cpudt TIME ls_bkpf-cputm INTO TIME STAMP gs_event_log-EventTime TIME ZONE sy-zonlo.
gs_event_log-UserName = ls_bkpf-usnam.
APPEND gs_event_log TO gt_event_log.
" Activity: Invoice Parked (if BSTAT = 'V')
IF ls_bkpf-bstat = 'V'.
gs_event_log-Activity = 'Invoice Parked'.
APPEND gs_event_log TO gt_event_log.
ENDIF.
" Activity: Invoice Posted
gs_event_log-Activity = 'Invoice Posted'.
CONVERT DATE ls_bkpf-budat TIME ls_bkpf-cputm INTO TIME STAMP gs_event_log-EventTime TIME ZONE sy-zonlo.
gs_event_log-UserName = ls_bkpf-usnam.
APPEND gs_event_log TO gt_event_log.
" Activity: Invoice Cleared
IF ls_bseg-augbl IS NOT INITIAL.
gs_event_log-Activity = 'Invoice Cleared'.
CONVERT DATE ls_bseg-augdt INTO TIME STAMP gs_event_log-EventTime TIME ZONE sy-zonlo.
gs_event_log-UserName = ls_bseg-usnam_cl.
APPEND gs_event_log TO gt_event_log.
ENDIF.
" Activity: Invoice Becomes Overdue
IF gs_event_log-PaymentDueDate IS NOT INITIAL AND gs_event_log-PaymentDueDate < sy-datum AND ls_bseg-augbl IS INITIAL.
gs_event_log-Activity = 'Invoice Becomes Overdue'.
CONVERT DATE gs_event_log-PaymentDueDate INTO TIME STAMP gs_event_log-EventTime TIME ZONE sy-zonlo.
gs_event_log-UserName = 'SYSTEM'.
APPEND gs_event_log TO gt_event_log.
ENDIF.
" Activity: Invoice Reversed
IF ls_bkpf-stblg IS NOT INITIAL.
DATA: ls_rev_bkpf TYPE bkpf.
SELECT SINGLE budat, usnam FROM bkpf INTO ls_rev_bkpf
WHERE belnr = ls_bkpf-stblg AND bukrs = ls_bkpf-bukrs AND gjahr = ls_bkpf-gjahr.
IF sy-subrc = 0.
gs_event_log-Activity = 'Invoice Reversed'.
CONVERT DATE ls_rev_bkpf-budat INTO TIME STAMP gs_event_log-EventTime TIME ZONE sy-zonlo.
gs_event_log-UserName = ls_rev_bkpf-usnam.
APPEND gs_event_log TO gt_event_log.
ENDIF.
ENDIF.
ENDLOOP.
* --- NOTE: The logic for MM invoices (from lt_rbkp) would be similar, joining RBKP with RSEG.
* --- NOTE: The logic for Payment Blocks and Workflow events requires reading change documents (CDHDR/CDPOS)
* --- or custom workflow tables. Below is a conceptual example for payment blocks.
* --- Conceptual Example for 'Payment Block Set' / 'Released' using Change Docs
* DATA: lt_cdhdr TYPE TABLE OF cdhdr, ls_cdhdr TYPE cdhdr,
* lt_cdpos TYPE TABLE OF cdpos, ls_cdpos TYPE cdpos.
* SELECT * FROM cdhdr INTO TABLE lt_cdhdr
* WHERE objectclas = 'BELEG' AND objectid IN (SELECT belnr FROM bkpf WHERE ...).
* LOOP AT lt_cdhdr.
* SELECT * FROM cdpos INTO TABLE lt_cdpos
* WHERE changenr = ls_cdhdr-changenr AND tabname = 'BSEG' AND fname = 'ZLSPR'.
* LOOP AT lt_cdpos.
* "... logic to create 'Payment Block Set' (if VALUE_NEW is not blank)
* "... or 'Payment Block Released' (if VALUE_NEW is blank) events.
* ENDLOOP.
* ENDLOOP.
* --- Conceptual Example for Workflow events ('Sent For Approval', 'Approved', 'Rejected')
* --- This part MUST be customized based on your specific workflow implementation (e.g., OpenText VIM, SAP WF).
* --- You would query the relevant workflow tables or status change tables here.
*&---------------------------------------------------------------------*
*& Write to File
*&---------------------------------------------------------------------*
END-OF-SELECTION.
DATA: lv_string TYPE string,
lv_header TYPE string.
" Create Header
lv_header = 'InvoiceNumber;Activity;EventTime;UserName;VendorNumber;PurchaseOrderNumber;InvoiceAmount;PostingDate;PaymentDueDate;PaymentBlockReason;ClearingDate'.
OPEN DATASET p_fpath FOR OUTPUT IN TEXT MODE ENCODING UTF-8.
IF sy-subrc = 0.
TRANSFER lv_header TO p_fpath.
LOOP AT gt_event_log INTO gs_event_log.
CONCATENATE gs_event_log-InvoiceNumber
gs_event_log-Activity
gs_event_log-EventTime
gs_event_log-UserName
gs_event_log-VendorNumber
gs_event_log-PurchaseOrderNumber
gs_event_log-InvoiceAmount
gs_event_log-PostingDate
gs_event_log-PaymentDueDate
gs_event_log-PaymentBlockReason
gs_event_log-ClearingDate
INTO lv_string SEPARATED BY ';'.
TRANSFER lv_string TO p_fpath.
ENDLOOP.
CLOSE DATASET p_fpath.
ELSE.
MESSAGE 'Error opening file.' TYPE 'E'.
ENDIF.