調達から支払いまで-請求書処理のデータテンプレート
調達から支払いまで-請求書処理のデータテンプレート
- 収集を推奨する属性
- 追跡する主なアクティビティ
- SAP ECCからのデータ抽出ガイド
調達から支払いまで-請求書処理の属性
| 名前 | 説明 | ||
|---|---|---|---|
| アクティビティ 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 | 仕入先請求書文書を一意に識別する番号です。 | ||
| 説明 請求書番号は、請求書処理の流れを識別する一意のケースIDです。番号ごとに仕入先から受領した1件の請求書が対応し、データの記録から最終的な支払いまで、関連するすべてのアクティビティを1つのプロセスとして追跡できます。 プロセスマイニング分析では、この属性を使って各請求書のライフサイクル全体を再構成します。仮登録、転記、ブロック、消込など、SAPに記録された個々のイベントを時系列でつなげられます。これにより、各請求書の処理方法や所要時間、標準プロセスからの逸脱が発生する箇所を明確に把握できます。 重要な理由 1件の請求書に関するすべてのイベントをつなぐ主キーです。プロセス分析とバリアントの調査に欠かせない基盤となります。 入手先 通常は、SAPのRBKPテーブルにある文書番号(BELNR)です。一意性を確保するため、会社コード(BUKRS)と会計年度(GJAHR)を連結する場合もあります。 例 510004567851000456795100045680 | |||
| ユーザー名 UserName | アクティビティを実行した担当者のSAPユーザーIDです。 | ||
| 説明 ユーザー名属性は、プロセス内の特定のアクティビティを実行した担当者を識別します。通常、トランザクションや変更イベントとともに記録されたSAPユーザー名です。 ユーザーやチーム単位のパフォーマンス分析に欠かせない属性です。「承認が最も速い担当者は誰か」「手戻りを最も多く発生させているユーザーは誰か」といった問いに答えるのに役立ちます。ダッシュボードで業務負荷の分布を分析し、研修の必要性を特定し、従業員間の実績の違いを把握するために使われます。 重要な理由 個人やチームごとの実績と業務負荷を分析できます。優れた実績を上げている担当者や研修の機会、リソースの偏りを特定するのに役立ちます。 入手先 変更文書ヘッダーテーブルCDHDRの「変更者」フィールド(USERNAME)です。作成イベントでは、RBKPなどのテーブルにある「入力者」フィールド(ERNAM)が該当します。 例 JSMITHBWILSONCHEN | |||
| 仕入先番号 VendorNumber | 請求書を提出した仕入先を一意に識別する番号です。 | ||
| 説明 仕入先番号は、仕入先を識別するマスターデータのキーです。請求書の取引を特定のビジネスパートナーに結び付け、仕入先の特性に基づく分析を可能にします。 仕入先番号ごとにプロセスを分析すると、仕入先との関係や実績に関する重要なインサイトが得られます。たとえば、支払ブロックや不一致につながる問題のある請求書を繰り返し提出する仕入先や、請求書を効率よく処理できている仕入先を特定できます。こうした情報は、仕入先管理や戦略的な調達施策に役立ちます。 重要な理由 仕入先ごとの分析が可能になり、特定の仕入先に関連する傾向や問題、効率性を把握できます。 入手先 請求書ヘッダーテーブルRBKPにある「請求元」フィールド(LIFNR)です。 例 100345100876200112 | |||
| 支払ブロック理由 PaymentBlockReason | 請求書の支払いがブロックされた理由を示すコードです。 | ||
| 説明 請求書に不一致がある場合や、追加調査が必要な場合は、支払ブロックが設定されます。支払ブロック理由コードは、数量差異、価格差異、手動ブロックなど、ブロックの理由を示します。 この属性は、「支払ブロック解消までの期間」ダッシュボードに欠かせません。理由ごとのブロックの発生頻度と期間を分析すると、支払い遅延の根本原因を特定できます。たとえば、長期ブロックの理由として「価格の不一致」が最も多い場合、マスターデータや発注プロセスに対処すべき問題がある可能性を示しています。 重要な理由 請求書の支払いが遅れる理由を明らかにし、支払ブロックの根本原因分析や、プロセス改善の優先順位付けに役立ちます。 入手先 支払ブロック理由は、明細レベルのテーブルRSEG(フィールドSPGRS)、または会計伝票テーブルBSEG(フィールドZLSPR)で確認できます。 例 RIM | |||
| 支払期日 PaymentDueDate | 支払条件に基づき、仕入先への請求書の支払い期限となる日付です。 | ||
| 説明 支払期日は、請求書のベースライン日付と合意済みの支払条件に基づいて算出されます。期限を過ぎて遅延損害金が発生したり、仕入先との関係に影響したりすることを避けるための支払期限です。 この属性は、「期日どおりの支払率」や「現金割引機会の損失」など、パフォーマンスやコンプライアンスに関する重要業績評価指標(KPI)の算出に欠かせません。実際の支払日(消込日)と支払期日を比較することで、支払いが期日どおり、期日前、または期日後だったかを自動的に判定できます。また、「支払条件の遵守」ダッシュボードの基礎となる属性です。 重要な理由 期日どおりの支払状況を測定し、早期支払割引を受ける機会を特定するための基準となります。 入手先 この日付は、多くの場合、計算によって求められます。支払のベースライン日付(ZFBDT)はテーブルBSEGにあります。期日の算出には、支払条件(BSEG-ZTERM)も関係します。 例 2023-04-192023-05-052023-05-11 | |||
| 消込日 ClearingDate | 支払いが行われ、買掛金から請求書が消し込まれた日付です。 | ||
| 説明 消込日は、請求書のライフサイクルにおける最終段階である支払いを示します。システム上で、未決済の請求書明細が支払伝票によって消し込まれた日付です。この日付は、実際に支払いが実行された時点を表します。 この属性は、「請求書の平均サイクルタイム」や「期日どおりの支払率」など、多くの重要業績評価指標(KPI)の終点となります。支払パフォーマンスを測定するため、支払期日と比較します。現金割引の分析では、割引期間と比較し、割引を受けられる期間内に支払いが行われたかを確認します。 重要な理由 プロセスの完了を示し、総サイクルタイム、期日どおりの支払率、現金割引の適用状況を算出する基準となります。 入手先 消込済み明細の場合、消込済み仕入先明細テーブルBSAKの「消込日」フィールド(AUGDT)です。 例 2023-04-152023-05-022023-05-20 | |||
| 発注書番号 PurchaseOrderNumber | 請求書との照合に使う発注書(PO)の識別番号です。 | ||
| 説明 発注書番号は、請求書と元の調達文書を結び付けます。発注書、入庫、請求書の3点照合や、発注書に基づく請求書処理の効率分析に欠かせません。 この属性は、「請求書と発注書の照合不一致率」などのダッシュボードで重要です。発注書ありの請求書と発注書なしの請求書を分けて分析できます。両者では処理経路や複雑さが大きく異なることがよくあります。特定の発注書に関する問題を分析すると、調達プロセスの上流で発生している問題の診断にも役立ちます。 重要な理由 請求書と調達プロセスを結び付け、発注書あり・なしの請求書を比較したり、照合の不一致を特定したりできます。 入手先 通常、明細項目レベルで確認できます。請求書明細テーブルRSEGにある「発注書番号」(EBELN)を使います。ヘッダーレベルに集約する必要がある場合もあります。 例 450001756345000175644500017565 | |||
| 請求書金額 InvoiceAmount | 元の文書通貨で示した請求書の税込総額です。 | ||
| 説明 請求書金額は、仕入先が提出した請求書の総額を表します。請求書の各ケースにおける重要な財務指標です。 プロセスマイニングでは、金額に基づく分析に欠かせない属性です。請求書金額でプロセスを絞り込んだり分類したりできます。金額は、プロセスの複雑さや承認要件と関連することがよくあります。たとえば、高額の請求書には、より厳格な承認経路が適用される場合があります。コンプライアンス分析にも使われ、高額の請求書が必要な承認ステップを経ずに処理されていないか確認できます。 重要な理由 金額に基づく分析が可能になり、高額の請求書に優先的に対応したり、請求書金額がプロセスの流れやコンプライアンスに与える影響を把握したりできます。 入手先 請求書ヘッダーテーブルRBKPにある「請求書総額」フィールド(RMWWR)です。 例 1500.7512500.00850.20 | |||
| 転記日 PostingDate | 請求書が財務元帳に正式に転記された日付です。 | ||
| 説明 転記日は、会計プロセスにおける重要な日付です。請求書費用を総勘定元帳に計上する会計期間を決定します。通常、請求書処理の際に買掛金担当者が設定します。 プロセス分析では、この日付が示す「請求書転記」アクティビティが重要な節目となります。請求書の受領から転記日までの期間は、全体のサイクルタイムを構成する重要な要素です。また、週別・月別の転記件数を追跡するなど、財務報告や処理量の分析にも欠かせません。 重要な理由 プロセスの重要な節目を示し、取引の会計期間を決定するとともに、サイクルタイムの算出に欠かせない要素です。 入手先 請求書ヘッダーテーブルRBKPの「転記日」フィールド(BUDAT)です。 例 2023-03-202023-04-052023-04-11 | |||
| ソースシステム SourceSystem | データの抽出元となったソースシステムを特定します。 | ||
| 説明 ソースシステム属性は、イベントデータの取得元を示します。たとえば、特定のSAP ECCインスタンス名が該当します。複数のERPシステムを運用している環境や、異なるソースのデータを統合する場合に特に重要です。 分析では、別々のインスタンスで稼働するシステム、地域、事業部門ごとにプロセスや実績を区別できます。データの出所を明確にし、システムごとのフィルタリングや分析を可能にします。 重要な理由 複数のシステムがある環境で重要なコンテキストを提供し、データを適切に分けて、システムごとのパフォーマンス分析を可能にします。 入手先 通常、データ抽出時に追加する固定値です。SAPシステムID(TADIR-SRCSYSTEM)や、特定のSAPインスタンスに手動で割り当てた識別子を設定します。 例 SAPECC_PROD_EUECC_US_FINSAP_ERP_6_EHP8 | |||
| 会社コード CompanyCode | 請求書の処理対象となる法人または会社を識別するコードです。 | ||
| 説明 会社コードは、独立した法人を表すSAP Financialsの基本的な組織単位です。請求書を含むすべての財務取引は、特定の会社コードに転記されます。 この属性を使うと、法人ごとにプロセス分析を分けられます。企業グループ内の各社について、プロセスのパフォーマンス、コンプライアンス、効率を比較するうえで重要です。ダッシュボードを会社コードで絞り込むと、各社の請求書処理に関する重要業績評価指標(KPI)を確認できます。 重要な理由 組織内の異なる法人間でプロセスを比較し、パフォーマンスのベンチマークを行えます。 入手先 請求書ヘッダーテーブルRBKPの「会社コード」フィールド(BUKRS)です。 例 10002000US01 | |||
| 伝票タイプ DocumentType | 仕入先請求書やクレジットメモなど、会計伝票を分類するコードです。 | ||
| 説明 伝票タイプは、SAPでさまざまな業務取引を分類するために使われます。請求書処理では、標準請求書を示す「RE」や、仕入先クレジットメモを示す「KG」などが一般的です。伝票タイプによって、使用する番号範囲など、転記に関する設定が決まります。 分析では、この属性を使って特定の取引タイプに絞り込めます。たとえば、クレジットメモの処理は、標準請求書の処理と大きく異なる場合があります。伝票タイプでプロセスを分けることで、より正確で意味のあるプロセスの全体像を把握できます。 重要な理由 請求書とクレジットメモなど、異なるプロセスに従う業務取引を分けて分析できます。 入手先 請求書ヘッダーテーブルRBKPの「伝票タイプ」フィールド(BLART)です。 例 REKRKG | |||
| 最終データ更新 LastDataUpdate | ソースシステムからプロセスデータが最後に更新された日時を示すタイムスタンプです。 | ||
| 説明 この属性には、データを最後に抽出または更新した日時が記録されます。個々のイベントではなくデータセット全体に適用されるため、データの新しさを明確に確認できます。 ダッシュボードの利用者や分析担当者にとって、重要なメタデータ属性です。分析対象の期間を把握し、最新の情報に基づいて判断するのに役立ちます。通常、データの更新時期を知らせるため、ダッシュボード上の目立つ位置に表示されます。 重要な理由 データがどの程度新しいかを利用者に知らせ、最新の情報に基づく分析と意思決定を支えます。 入手先 データ更新時に、データ抽出ツールまたはETLツールがこの値を生成し、データセットに追加します。 例 2024-05-20T08:00:00Z2024-05-21T08:00:00Z2024-05-22T08:00:00Z | |||
| 却下理由 RejectionReason | 承認ワークフローで請求書が却下された理由を示すコードまたはテキストです。 | ||
| 説明 承認者が請求書を却下する際は、通常、その理由も記録します。「発注書番号の誤り」「請求書の重複」「金額の誤り」などを示す標準コードや自由記述のコメントが使われます。 このデータは、「請求書の却下理由と傾向」ダッシュボードに欠かせません。却下理由ごとの発生頻度を分析すると、よくある問題を特定し、是正措置を講じられます。たとえば、「発注書番号の誤り」が頻繁に発生する場合、仕入先との連絡方法の見直しや、データ入力担当者へのトレーニングが必要かもしれません。この分析は、プロセスの手戻りを減らすうえで重要です。 重要な理由 却下の根本原因を把握し、的を絞ったプロセス改善によって手戻りを減らし、初回で正しく処理できる割合を高められます。 入手先 この情報は、標準の単一フィールドに保存されていないことがよくあります。ワークフローのコンテナログ、伝票に関連付けられた長文テキスト、またはカスタムワークフローソリューションの専用フィールドに記録されている場合があります。 例 請求書重複金額誤り発注書不一致 | |||
| 支払条件 PaymentTerms | 割引期間や支払期日など、仕入先と合意した支払条件を定めるコードです。 | ||
| 説明 支払条件は、請求書の支払期限と、早期支払いに対する現金割引の有無や内容を定めます。例として「30日以内に全額支払い」や「10日以内なら2%割引、30日以内に全額支払い」があります。 この属性は、「現金割引機会の損失」ダッシュボードと「現金割引獲得率」の重要業績評価指標(KPI)の基礎となります。転記日と支払日を支払条件と照らし合わせ、割引が適用可能だったか、実際に適用されたかを分析します。また、「支払条件の遵守」ダッシュボードにも欠かせません。 重要な理由 現金割引の獲得率を分析し、プロセスの遅延が財務に与える影響を把握するうえで欠かせません。 入手先 請求書ヘッダーテーブルRBKPの「支払条件キー」フィールド(ZTERM)です。 例 Z0010001NT30 | |||
| 支払遅延の有無 IsOverdue | 請求書の支払いが支払期日を過ぎていたかを示す計算済みフラグです。 | ||
| 説明 「消込日」(実際の支払日)と「支払期日」を比較して算出する真偽値属性です。消込日が支払期日より後の場合はtrue、それ以外はfalseになります。請求書ごとの期日どおりの支払状況を、簡潔かつ直接的に示します。 この属性を使うと、ダッシュボードでの分析や可視化が簡単になります。絞り込みや集計を行い、「期日どおりの支払率」の重要業績評価指標(KPI)を容易に算出できます。支払遅延があった請求書と期日どおりに支払われた請求書のプロセスフローをすばやく比較し、遅延につながるプロセスの傾向を把握できます。 重要な理由 期日どおりの支払状況を簡単に分析でき、請求書処理のプロセスを期日どおりの場合と遅延した場合で比較できます。 入手先 この属性はSAPにはありません。データ変換時に、次の式で算出します:ClearingDate > PaymentDueDate。 例 truefalse | |||
| 現金割引の未獲得 IsCashDiscountLost | 適用可能な現金割引を受け損ねたかを示す計算済みフラグです。 | ||
| 説明 支払条件と実際の支払日に基づいて算出する真偽値属性です。「支払条件」に早期支払い割引が設定されており、「消込日」が割引期間の終了後である場合、trueになります。プロセスの非効率による財務上の損失を直接測定できます。 この属性は、「現金割引機会の損失」ダッシュボードの基礎となります。処理遅延による財務上の影響を簡単に数値化できます。このフラグがtrueのケースに絞り込むと、割引の未獲得につながりやすいプロセスバリアントやボトルネックを分析でき、プロセス改善の必要性を示す根拠になります。 重要な理由 プロセスの遅延による財務上の損失を直接数値化し、請求書処理ワークフローの改善を進める根拠になります。 入手先 この属性はSAPにはありません。データ変換時に「PaymentTerms」を解釈し、「ClearingDate」と割引期限を比較して算出します。 例 truefalse | |||
| 終了時刻 EndTime | アクティビティの完了時刻を示すタイムスタンプです。瞬時に発生するイベントでは、開始時刻と同じです。 | ||
| 説明 終了時刻属性は、特定のアクティビティが完了した時点を示します。SAPの多くのイベントは時点として記録されるため、終了時刻は開始時刻と同じです。一方、実際に作業を行う承認ステップのように、所要時間を測定できるアクティビティでは、その作業の完了時刻を表す場合があります。 プロセス分析で終了時刻を個別に記録すると、アクティビティの処理時間を、その前に発生する待ち時間と分けて測定できます。アクティビティの実行にかかる時間と、ケースが開始を待つ時間を区別できるため、リソース効率をより詳しく把握できます。 重要な理由 アクティビティの処理時間を算出し、アクティビティ間の待ち時間と区別できます。ボトルネック分析の精度向上にも役立ちます。 入手先 多くの場合、開始時刻と同じで、CDHDR-UDATEとCDHDR-UTIMEから導出されます。タスクの開始と終了を明示的に記録するワークフローログから導出する場合もあります。 例 2023-03-15T10:35:10Z2023-03-16T14:10:00Z2023-03-28T09:02:45Z | |||
| 総勘定元帳勘定 GeneralLedgerAccount | 請求書の費用またはコストを計上する総勘定元帳勘定の番号です。 | ||
| 説明 総勘定元帳(G/L)勘定は、勘定科目表の中で請求書の財務上の影響を記録する勘定です。財務報告やコスト管理に欠かせないデータです。 プロセスマイニングでは、総勘定元帳勘定を分析することで、プロセスフローを財務面から把握できます。「総勘定元帳勘定の使用状況分析」ダッシュボードでは、支出の傾向や請求書の勘定コード誤りを確認し、コストが適切な部門やプロジェクトに配賦されているかを検証できます。プロセスの実行状況と財務への影響を結び付けるのに役立ちます。 重要な理由 プロセスを財務面から分析できるようになり、コスト配賦や支出傾向、請求書の勘定コード誤りの可能性を確認できます。 入手先 明細レベルで確認できます。発注書に基づく請求書の場合は請求書明細テーブルRSEG、FI直接請求書の場合はBSEGに「総勘定元帳勘定番号」(HKONT)があります。 例 630000655100741000 | |||
| 通貨 Currency | 請求書金額の通貨コードです。 | ||
| 説明 通貨属性は、請求書金額の通貨を示します。例:USD、EUR、JPY。 この属性は、請求書金額を正しく解釈するために必要なコンテキストを提供します。複数の通貨を扱うグローバルな組織では、財務データを正確に解釈し、集計するうえで役立ちます。通貨で分析を絞り込むことで、通貨圏ごとの処理効率や問題を比較できます。財務データを適切に集計するには、金額を単一の報告通貨に換算する必要がある場合があります。 重要な理由 財務金額を正しく解釈するためのコンテキストとなり、通貨別の絞り込みや分析を可能にします。 入手先 請求書ヘッダーテーブルRBKPの「通貨キー」フィールド(WAERS)です。 例 USDEURGBP | |||
調達から支払いまで-請求書処理のアクティビティ
| アクティビティ | 説明 | ||
|---|---|---|---|
| 支払ブロックの設定 | 請求書の明細項目にブロックが設定され、支払いができなくなった時点で発生するアクティビティです。3点照合の不一致によって自動的に設定される場合と、さまざまな理由で手動設定される場合があります。 | ||
| 重要な理由 このイベントは、支払ブロックの解決所要時間を測定し、支払遅延の根本原因を特定するうえで重要です。価格や数量の問題、必要な承認の未完了などを把握できます。 入手先 このイベントは明示的に記録されます。BSEGテーブルのZLSPRフィールド(支払ブロックキー)について、変更文書ログ(CDHDRおよびCDPOSテーブル)を追跡できます。 記録 変更文書(CDHDR)に記録された、BSEG-ZLSPRの値が空欄から空欄以外に変わった時刻です。 イベントタイプ explicit | |||
| 請求書データの記録 | SAPで請求書文書が最初に作成された時点を示します。未転記の仮登録文書として作成された場合も、転記済み文書として作成された場合も含みます。通常、請求書のライフサイクルでシステムに記録される最初のイベントであり、プロセスの開始時刻として使われます。 | ||
| 重要な理由 このアクティビティは、請求書処理のエンドツーエンドのサイクルタイムを測定する際の主な開始点です。この時点からの所要時間を分析すると、初期データ入力や文書作成の段階で発生する遅延を特定できます。 入手先 作成タイムスタンプは、SAPのBKPFテーブルにあるCPUDT(会計文書入力日)およびCPUTM(入力時刻)フィールドに記録されます。 記録 BKPFテーブルのヘッダーにある文書作成日(CPUDT)を使用します。 イベントタイプ explicit | |||
| 請求書の取消 | 転記済み請求書文書の取消を示します。元の請求書による財務上の影響を相殺するため、取消伝票が作成されます。 | ||
| 重要な理由 このアクティビティは、重大な例外と手戻りの経路を示します。取消の頻度や理由を分析すると、請求書の検証や転記プロセスにおける構造的な問題を明らかにできます。 入手先 このイベントは、文書ヘッダーテーブルBKPFに明示的に記録されます。取り消された文書のヘッダーには、取消伝票番号(STBLG)と会計年度(STJAH)が含まれます。 記録 BKPF-STBLGに値が設定されている文書を特定します。イベントのタイムスタンプには、取消伝票の転記日を使用します。 イベントタイプ explicit | |||
| 請求書の消込 | 請求書のライフサイクルが正常に完了したことを示す最終段階です。支払文書によって未決済債務が消し込まれ、支払いが実行されたことを意味します。 | ||
| 重要な理由 主要な終了イベントとして、エンドツーエンドの総サイクルタイムを算出するうえで重要です。プロセスが正常に完了したことを確認でき、期日どおりの支払実績の測定にも使われます。 入手先 このイベントは、請求書の明細項目テーブルBSEGに明示的に記録されます。消込日はAUGDTフィールドに、消込伝票番号はAUGBLフィールドに保存されます。 記録 請求書文書の明細項目にある消込日(BSEG-AUGDT)を使用します。 イベントタイプ explicit | |||
| 請求書の転記 | 請求書が総勘定元帳に正式に記録され、債務が計上される重要な財務イベントです。文書は一時的な仮登録状態から、確定した会計記録へ移行します。 | ||
| 重要な理由 転記は、請求書の有効性が確認されたことを示す重要な節目です。支払いの前提条件であり、処理量を測る重要な指標でもあります。 入手先 このイベントは、文書ヘッダーテーブルBKPFに明示的に記録されます。タイムスタンプには転記日BKPF-BUDATを使用します。文書は「仮登録」ステータスではなくなります。 記録 仮登録ではない文書(BKPF-BSTATが空欄または「 」)には、転記日(BKPF-BUDAT)を使用します。 イベントタイプ explicit | |||
| 支払ブロックの解除 | 請求書の明細項目から支払ブロックが解除され、支払処理に進める状態になったことを示します。以前に特定された問題が解決したことを意味します。 | ||
| 重要な理由 このアクティビティをもって、ブロック期間の測定が終了します。ブロックの設定から解除までの時間を分析すると、問題解決プロセスの効率が分かります。 入手先 ブロックが解除された時点を、BSEGテーブルのZLSPRフィールド(支払ブロックキー)に関する変更文書ログ(CDHDRおよびCDPOSテーブル)で追跡します。 記録 変更文書(CDHDR)に記録された、BSEG-ZLSPRの値が空欄以外から空欄に変わった時刻です。 イベントタイプ explicit | |||
| 請求書の仮登録 | 請求書がSAPに入力されたものの、総勘定元帳にはまだ転記されていない状態を示します。財務転記の前に確認、修正、承認を行うための一時的な状態です。 | ||
| 重要な理由 請求書が仮登録された時点とその期間を追跡すると、転記前の検証や承認プロセスにおけるボトルネックが分かります。データ入力にかかる時間と財務処理にかかる時間を区別できます。 入手先 BKPFテーブルのBSTATフィールドにある文書ステータスから判定します。「V」(仮登録文書)または「W」(変更承認付き仮登録文書)の場合、仮登録状態を示します。 記録 ステータスフィールドBKPF-BSTATが「V」の文書を特定します。イベントのタイムスタンプには、作成日BKPF-CPUDTを使用します。 イベントタイプ inferred | |||
| 請求書の却下 | 承認プロセスで請求書が却下されたことを示します。通常、修正して再提出する必要があり、手戻りが発生します。 | ||
| 重要な理由 却下を追跡することは、データの誤りや規程違反など、却下につながる一般的な理由を特定するうえで重要です。手戻りの量を把握し、プロセス改善や取引先への案内が必要な領域を特定できます。 入手先 通常、このイベントはSAP Business Workflowのログに却下ステップとして記録されます。請求書文書の特定のステータス変更や追加されたメモから推定することもできます。 記録 ワークフローログに記録された却下ステップのタイムスタンプ、または却下を示す文書ステータスの変更時刻です。 イベントタイプ inferred | |||
| 請求書の承認 | 指定された権限者が請求書を正式に承認し、転記と支払いに進める状態になったことを示します。多くの場合、ワークフローの最終段階です。 | ||
| 重要な理由 この節目をもって承認サイクルタイムの測定が終了します。プロセスの次の段階に進めるようになり、期日どおりの支払いと承認者間の業務負荷の分析に役立ちます。 入手先 通常、SAP Business Workflowのテーブルから承認タスクの完了を特定して記録します。または、承認に関連する支払ブロックの解除から推定できます。 記録 ワークフローログに記録された承認ステップの完了時刻、または特定の支払ブロックが解除された時刻です。 イベントタイプ inferred | |||
| 請求書の支払期限超過 | 支払期限日を過ぎても請求書が未払いの場合に発生する、計算上のイベントです。支払期限日は、支払条件と基準日に基づいて決まります。 | ||
| 重要な理由 このアクティビティは、期日どおりの支払率を示す重要業績評価指標(KPI)のモニタリングに欠かせません。支払遅延のリスクがある請求書を早期に把握でき、取引先との関係悪化や延滞金の発生を防ぐのに役立ちます。 入手先 このイベントは、現在の日付と支払期限日を比較して算出します。支払期限日は、基準日(BSEG-ZFBDT)と支払条件(BSEG-ZTERM)から求めます。 記録
イベントタイプ calculated | |||
| 請求書を承認に回付 | 請求書が正式な承認ワークフローに送られた時点を示します。記録方法は、SAP Workflowまたはサードパーティーシステムの具体的な実装に大きく左右されます。 | ||
| 重要な理由 このアクティビティを起点に、請求書承認サイクルタイムの重要業績評価指標(KPI)を測定します。承認経路の遅延を特定し、承認者の実績を分析するうえで欠かせません。 入手先 通常、SAP Business Workflowのテーブル(例:SWW_WI2OBJ、SWWLOG)から、特定の承認タスクの開始を特定して記録します。より単純なケースでは、カスタムフィールドのステータス変更から推定することもあります。 記録 SAPのワークフローログ、または請求書文書に関連付けられたカスタムステータスフィールドの分析が必要です。 イベントタイプ inferred | |||
データ抽出ガイド
ステップ
- ABAPプログラムの作成:トランザクション
SE38またはSE80で、新しい実行可能プログラム(例:Z_PM_INVOICE_EXTRACT)を作成します。適切なタイトルを付け、タイプに「実行可能プログラム」を指定します。 - 選択画面の定義:プログラム内に選択画面を定義し、ユーザーがデータを絞り込めるようにします。主なパラメーターには、会社コード(
BUKRS)、会計年度(GJAHR)、転記日の範囲(BUDAT)、アプリケーションサーバー上の出力ファイルパスを指定するパラメーターを含めます。 - データ構造の宣言:最終的なイベントログを格納する内部テーブルの構造を定義します。この構造には、必須および推奨属性である
InvoiceNumber、アクティビティ、EventTime、UserName、VendorNumber、PurchaseOrderNumber、InvoiceAmount、PostingDate、PaymentDueDate、PaymentBlockReason、ClearingDateを含めます。 - データ選択ロジックの実装:請求書データを選択するABAPの主要なロジックを記述します。複数の選択処理を行い、その結果を最終的なイベントログテーブルにまとめます。
- 選択画面の条件に基づき、まず主要な請求書テーブル
BKPF、BSEG、RBKP、RSEGからヘッダーと明細のデータを選択します。 - 各請求書について、作成時刻から「請求書データ取得」イベントを、転記時刻から「請求書転記」イベントを作成します。
- 変更文書テーブル
CDHDRとCDPOSを検索し、支払保留(BSEGのZLSPRフィールド)に関する変更を特定します。該当する変更ごとに「支払保留設定」と「支払保留解除」イベントを作成します。 BSEGテーブルの消込伝票(AUGBL)と消込日(AUGDT)を確認し、「請求書消込」イベントを特定します。BKPFヘッダーの取消伝票(STBLG)を確認し、「請求書取消」イベントを特定します。- 「請求書承認依頼送信」「承認済み」「却下」などのワークフローイベントを記録するカスタムロジックを実装します。この部分は顧客ごとの設定に大きく左右されるため、ワークフローで使用しているテーブルやステータスフィールドに合わせてコードを調整する必要があります。
- 選択画面の条件に基づき、まず主要な請求書テーブル
- 計算イベントの生成:プログラムのロジック内で
Invoice Becomes Overdueイベントを計算します。未払いの請求書について、支払期日(PaymentDueDate)と現在の日付を比較します。支払期日が過去の場合は、イベント時刻を支払期日に設定してイベントを作成します。 - イベントログテーブルへのデータ格納:各請求書について複数のデータソースからデータを取得し、形式を整えて、アクティビティごとに1行ずつ最終的な内部イベントログテーブルに追加します。
- ファイルへのデータ出力:
OPEN DATASET、TRANSFER、CLOSE DATASETステートメントを使い、最終的な内部テーブルの内容を、選択画面で指定したSAPアプリケーションサーバー上のパスにフラットファイルとして書き込みます。セミコロンやタブなど、統一した区切り文字を使ってCSVファイルを作成します。 - 抽出のスケジュール設定:定期的にデータを抽出する場合は、必要な選択条件を設定したバリアントを作成し、トランザクション
SM36でバックグラウンドジョブとして実行するようスケジュールします。 - 出力ファイルの取得:トランザクション
AL11でSAPアプリケーションサーバーのディレクトリにアクセスし、生成されたファイルを探します。トランザクションCG3Yを使って、アプリケーションサーバーからローカルマシンにファイルをダウンロードします。 - アップロードの準備:プロセスマイニングツールにアップロードする前にCSVファイルを開き、ヘッダーが正しいこと、データ形式(特にタイムスタンプ)が統一されていること、区切り文字が想定どおりであることを確認します。ファイルはUTF-8で保存してください。
設定
- 選択条件:ABAPレポートには、詳細な選択画面を含める必要があります。特に重要なフィルターは次のとおりです。
Company Code (BUKRS):抽出対象を特定の法人に限定します。Posting Date (BUDAT):抽出対象期間を指定します。データ量を扱いやすくするため、3~6か月ずつ抽出することを推奨します。Document Type (BLART):物流請求書の「RE」や仕入先請求書の「KR」など、対象となる請求書伝票タイプだけを含めます。
- 出力ファイルのパス:SAPアプリケーションサーバー上で出力ファイルを作成する場所を、完全なパスとファイル名で指定する必須パラメーターです。レポートの実行ユーザーには、このディレクトリへの書き込み権限が必要です。
- パフォーマンスに関する考慮事項:大規模なデータセットを扱う場合は、システムのパフォーマンス低下を避けるため、負荷の低い時間帯にバックグラウンドジョブとしてレポートを実行してください。必要なフィールドだけを選択し、可能な場合はSAP標準のデータベースインデックスを使用するようロジックを設計します。
- 前提条件と権限:抽出を実行するユーザーまたはサービスアカウントには、次の権限が必要です。
- ABAPレポートの実行権限(
S_PROGRAMの一部)。 BKPF、BSEG、RBKP、RSEG、CDHDR、CDPOSなど、財務および物流テーブルへの読み取りアクセス。- 指定したアプリケーションサーバーディレクトリへのファイル書き込み権限(
S_DATASET)。 - 開発、スケジュール設定、ファイル取得に使用するトランザクション
SE38、SM36、AL11、CG3Yへのアクセス。
- ABAPレポートの実行権限(
クエリの例 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. 始める準備はできていますか?
このテンプレートに沿って進めることで、調達から支払いまでの請求書処理に関するインサイトを得て、改善につなげられます。まずはデータ抽出を始め、業務の改善に役立ててください。
調達から支払いまでの請求書処理を今すぐ改善
非効率な箇所を特定し、請求書の処理時間を30%短縮します。
クレジットカードは不要です。数分で設定できます。