受注から入金まで:請求・請求書発行のデータテンプレート
受注から入金まで:請求・請求書発行のデータテンプレート
- 収集を推奨する属性
- 追跡すべき主要アクティビティ
- NetSuiteからデータを抽出する方法
受注から入金まで:請求・請求書発行の属性
| 名前 | 説明 | ||
|---|---|---|---|
| アクティビティ名 ActivityName | 請求書のライフサイクルにおける特定の時点で発生した業務イベントの名称です。 | ||
| 説明 アクティビティ名は、「Invoice Created」「Invoice Approved」「Customer Payment Received」など、請求プロセス内の特定のステップやイベントを示します。これらのアクティビティが、プロセスマップを構成する一連の要素になります。 アクティビティの順序と頻度の分析は、プロセスマイニングの基本です。実際のプロセスフローを可視化し、一般的またはまれなプロセス経路(バリエーション)を特定できます。また、同じアクティビティが頻繁に繰り返されている場合は、手戻りや非効率の兆候として把握できます。 重要な理由 プロセスマップの作成に欠かせない属性です。請求書がたどるさまざまなステップと経路を可視化し、分析できます。 入手先 NetSuiteの請求書取引に関連するシステムログ、ステータス変更、特定のイベントレコードから導出します。通常は、取引ステータスの変更や関連レコードの作成を、定義済みのアクティビティ名にマッピングする必要があります。 例 請求書作成請求書承認顧客からの入金請求書の全額支払い完了 | |||
| イベントタイムスタンプ EventTimestamp | 特定のアクティビティまたはイベントが発生した正確な日時です。 | ||
| 説明 この属性は、アクティビティが実行された正確な時点を記録します。イベントを時系列に並べるため、また時間に基づくすべての分析を行うための重要な要素です。 プロセスマイニングでは、イベントタイムスタンプを使ってアクティビティ間のサイクル時間、ケースの所要時間、待機時間を算出します。ボトルネックの特定、SLAに対するプロセスパフォーマンスの測定、請求プロセスの時間的な動きを把握するために欠かせません。たとえば、請求書作成サイクル時間や売上債権回転日数(DSO)の算出に使います。 重要な理由 イベントの時系列を示します。期間に基づくすべての指標の算出、ボトルネックの特定、時間経過に伴うプロセスパフォーマンスの分析に欠かせません。 入手先 通常は、NetSuiteの各請求書取引に関するシステムノート、監査証跡、関連レコードの「Date Created」フィールドに記録されています。 例 2023-10-26T10:00:00Z2023-10-27T14:30:00Z2023-11-15T09:05:00Z | |||
| 請求書番号 InvoiceNumber | 各請求書を一意に識別する番号であり、請求プロセスにおける主要なケース識別子です。 | ||
| 説明 請求書番号は、作成から最終的なクローズまで、各請求書を一意に識別する請求プロセス分析の基盤です。承認、送付、支払いの適用など、関連するすべてのアクティビティを1つの一貫したケースにまとめます。 プロセスマイニングでは、請求書番号ごとの経過を分析することで、請求ライフサイクル全体を把握できます。プロセスのバリエーション、ボトルネック、標準手順からの逸脱を特定し、キャッシュフローと業務効率の改善に役立つ重要な分析結果を得られます。 重要な理由 各請求書のエンドツーエンドのライフサイクルを追跡するために欠かせません。請求プロセス全体を再構築し、詳細なパフォーマンス分析を行えます。 入手先 通常は、NetSuiteの請求書取引レコードにある「Transaction ID」または同様の一意識別子フィールドです。 例 INV-0012345INV-0012346INV-0012347 | |||
| ソースシステム SourceSystem | データの抽出元となったシステムです。 | ||
| 説明 プロセスデータの出所を示す属性です。このビューでは一貫して「NetSuite」になります。 より広い分析の文脈では、複数のERPや統合システムを利用する組織にとって、データの系譜とガバナンスを管理するうえで重要です。異なるプラットフォームにまたがるプロセスを区別し、適切な記録システムに分析結果を正しく帰属させられます。 重要な理由 データの出所とガバナンスを把握するための重要な情報です。複数のシステムを統合している環境では、特に役立ちます。 入手先 データの抽出・変換時に追加される固定値(「NetSuite」)です。 例 NetSuite | |||
| 最終データ更新日時 LastDataUpdate | ソースシステムからデータが最後に更新された日時を示すタイムスタンプです。 | ||
| 説明 データセットが最後に更新された日時を記録する属性です。プロセスマイニング分析の新しさと関連性を把握するための情報になります。 分析担当者や業務部門の関係者は、この情報から分析結果が最新の業務状態を反映しているかを確認できます。ダッシュボードやレポートに欠かせないメタデータであり、データの経過時間を把握したうえで意思決定できるようにします。リアルタイムデータでない場合に、リアルタイムであるかのように誤解することも防げます。 重要な理由 データの鮮度を把握できるため、分析対象の期間と分析結果の関連性を正しく理解できます。 入手先 データ更新時に、データ抽出ツールまたはパイプラインによって生成・記録されるタイムスタンプです。 例 2024-05-21T02:00:00Z | |||
| イベント終了時刻 EventEndTime | 特定のアクティビティまたはイベントが完了した正確な日時です。 | ||
| 説明 イベント終了時刻は、アクティビティが完了した時点を示します。多くのアクティビティは瞬時に完了するため開始時刻と終了時刻が同じですが、承認ステップなど、所要時間を測定できるものもあります。 この属性をイベントタイムスタンプ(開始時刻)と組み合わせると、アクティビティの処理時間を直接算出できます。処理時間を分析することで、どのステップが最も多くの時間とリソースを消費しているかを特定し、アクティビティ間の待機時間と区別できます。特定のタスクにおける非効率を特定するうえで重要です。 重要な理由 各アクティビティの完了にかかった時間を正確に算出できます。リソース効率の分析や、時間のかかるタスクの特定に欠かせません。 入手先 StartTimeと同様に、NetSuiteのシステム監査証跡から取得できます。「開始」イベントと対応する「終了」イベントを組み合わせるロジックが必要になる場合があります。 例 2023-10-26T10:05:14Z2023-10-27T14:32:00Z2023-11-15T09:05:00Z | |||
| ユーザー User | アクティビティを実行したユーザーの名前またはIDです。 | ||
| 説明 特定のプロセスステップを実行した従業員またはシステムユーザーを示す属性です。請求書を作成した人、承認した人、支払いを適用した人などが該当します。 ユーザー別にプロセスを分析すると、業務量の分布や個人のパフォーマンスを把握し、トレーニングの必要性を特定できます。最も多くのユーザーが行っている手作業を確認し、自動化の候補を見つけることもできます。コンプライアンスや監査証跡の分析にも重要です。 重要な理由 業務量の分布、ユーザーごとのパフォーマンス、プロセス遵守状況を分析できます。リソース管理や対象を絞ったトレーニングに役立ちます。 入手先 NetSuiteのSystem Notesサブタブ、または請求書および関連取引レコードの「Modified By」フィールドで確認できます。 例 Alice SmithBob Johnsonシステム | |||
| 地域 Region | 顧客またはトランザクションに関連付けられた地理的地域です。 | ||
| 説明 地域属性は、地理的な区分に基づいて請求書を分類します。顧客の住所や、請求書を発行した事業部門から取得する場合があります。 地域は比較分析に有効な切り口です。「Regional Billing Process Comparison」ダッシュボードでは、この属性を使って、地域ごとのサイクルタイム、エラー率、プロセスバリアントなどのKPIを比較します。地域間のパフォーマンス差や、高い成果を上げている地域のベストプラクティスを特定し、組織全体でのプロセス標準化を進める際に役立ちます。 重要な理由 地理的に異なる地域を比較分析できるため、地域ごとのパフォーマンス差を特定し、ベストプラクティスを標準化するうえで役立ちます。 入手先 NetSuiteでは通常、顧客マスターまたはトランザクションレコードのカスタムセグメントや分類フィールドに保存されます。 例 北米EMEAAPAC | |||
| 支払期日 DueDate | 請求書の支払い期限となる日付です。 | ||
| 説明 支払期日は、請求書日付と合意した支払条件に基づいて算出します。顧客が遅延とみなされずに支払える期限を示します。 この属性は、売掛金の管理とキャッシュフローの管理に欠かせません。「On-Time Payment Rate」KPIの算出や、顧客の支払い行動の分析に使う基準です。支払期日からのずれを追跡すると、支払いが遅れやすい顧客を特定し、回収施策の効果を評価できます。 重要な理由 支払いの適時性を測定し、顧客の支払い行動を分析するために欠かせません。回収業務とキャッシュフロー予測を直接支えます。 入手先 NetSuiteの請求書取引レコードにある「Due Date」(duedate)フィールドに対応します。 例 2023-11-252023-11-262023-12-15 | |||
| 自動処理かどうか IsAutomated | アクティビティがシステムによって自動的に実行されたかどうかを示すフラグです。 | ||
| 説明 この真偽値属性は、ユーザーが手動で実行したアクティビティと、システムのワークフロー、スクリプト、連携によって自動的に実行されたアクティビティを区別します。 この属性は、請求プロセスの自動化レベルを測定するうえで重要で、「Automated Billing Ratio」KPIを直接支えます。自動処理と手動処理を分けて分析することで、手作業によるボトルネックを特定し、自動化の拡大、人為的ミスの削減、業務効率の向上につなげられます。 重要な理由 プロセスの自動化レベルを測定し、手作業を減らして効率を高める機会を特定できます。 入手先 通常は、アクティビティに関連付けられた「User」を確認して判定します。「SYSTEM」、「Workflow」、「Integration」という名前のユーザーが起動したイベントには、自動処理のフラグが設定されます。 例 truefalse | |||
| 請求書合計金額 InvoiceTotalAmount | 税金やその他の料金を含む請求書の合計金額です。 | ||
| 説明 顧客が支払う予定の全額を示す属性です。各請求ケースにおける基本的な財務データです。 請求書金額を基準にプロセスを分析すると、金額に応じた分析ができます。たとえば、高額な請求書が低額な請求書よりも複雑なプロセスをたどっているかどうかを確認できます。回収対応の優先順位付けや、支払い遅延・請求書エラーが財務に与える影響の把握にも使います。 重要な理由 金額に基づくプロセス分析が可能になり、高額な請求書への対応を優先し、プロセスの非効率が財務に与える影響を把握できます。 入手先 NetSuiteのInvoiceトランザクションレコードにある「Total」(合計)フィールドに対応します。 例 1500.0089.9912500.50 | |||
| 請求書日付 InvoiceDate | 顧客に発行した請求書の正式な日付です。 | ||
| 説明 請求書日付または取引日付は、請求に関する多くの財務計算の起点です。通常、この日付を基準に支払条件と支払期日を算出します。 分析では、この日付を基準に売上債権回転日数(DSO)や請求書の経過期間など、主要な財務KPIを算出します。コホート分析にも利用でき、月次や前年比など、異なる期間の請求パフォーマンスを比較できます。 重要な理由 売上債権回転日数(DSO)や請求書の経過期間など、重要な財務指標の基準となり、運転資本の分析に直接影響します。 入手先 NetSuiteの請求書取引レコードにある「Date」(trandate)フィールドに対応します。 例 2023-10-262023-10-272023-11-15 | |||
| 顧客名 CustomerName | 請求書の発行先となる顧客の名前です。 | ||
| 説明 この属性は、請求先となる法人または個人を特定します。請求プロセスと顧客関係管理を結び付ける情報です。 顧客別に請求プロセスを分析すると、特定の顧客における支払い行動、紛争、請求書の複雑さに関する傾向を把握できます。顧客セグメントの設計、与信限度額の判断、顧客ごとの回収方針の策定にも役立ちます。例えば、特定の顧客で請求書の修正が繰り返し発生しているかどうかを確認できます。 重要な理由 顧客を軸に分析できるため、顧客ごとの支払い傾向、頻発する問題、プロセスからの逸脱を特定できます。 入手先 NetSuiteのInvoiceトランザクションレコードにある「Customer」または「Entity」の名前フィールドに対応します。 例 Global Tech Inc.Innovate Solutions LLCCornerstone Corp | |||
| 再作業かどうか IsRework | 再作業または修正ループに該当するアクティビティを特定する計算フラグです。 | ||
| 説明 この真偽値フラグは、「Invoice Corrected」や、同じケース内で2回目に発生した「Invoice Approved」など、付加価値を生まない再作業を表すアクティビティにtrueを設定します。通常は、アクティビティ名や同一アクティビティの繰り返しに基づいて判定します。 この属性は、「Invoice Rework and Rejection Analysis」ダッシュボードと「Invoice Error Rate」KPIに欠かせません。再作業を簡単に定量化できるため、プロセス品質の問題を明らかにできます。再作業アクティビティで絞り込むことで、エラーの根本原因をすばやく特定し、改善施策の効果を測定できます。 重要な理由 非効率な再作業ループを特定してプロセス品質を直接測定し、請求エラーの根本原因と財務への影響を分析できます。 入手先 データ変換時に計算される派生属性です。特定のアクティビティ名(「Invoice Corrected」など)やアクティビティの繰り返しを検出するロジックを適用して、再作業を特定します。 例 truefalse | |||
| 売上債権回転日数 DaysSalesOutstanding | 請求書の日付から支払いを受領した日までの日数です。 | ||
| 説明 売上債権回転日数(DSO)は、請求書の発行後、支払いを回収するまでにかかる平均日数を測定する重要な財務指標です。この属性は、詳細な分析を行えるよう、請求書ごとに計算されます。 DSOは高レベルのKPIとして集計されることが多い一方、請求書単位で保持することで、より詳細な分析が可能になります。DSOが高い顧客、地域、請求書の種類を特定できます。「DSO Trend」ダッシュボードでは、この指標を使って時間の経過に伴う回収効率を可視化し、運転資本の管理に役立つ情報を提供します。 重要な理由 請求書単位で回収効率を定量化し、DSOが高い原因とキャッシュフローへの影響を詳しく分析できます。 入手先 「InvoiceDate」から「Customer Payment Received」アクティビティのタイムスタンプを差し引いて計算します。 例 294562 | |||
| 支払条件 PaymentTerms | 会社と顧客の間で合意した支払いの条件です。 | ||
| 説明 支払条件は、顧客が請求書をいつ、どのように支払うかを定めるものです。例えば、「Net 30」や「Due on receipt」などがあります。この情報を使って、請求書の支払期日が自動的に計算されます。 この属性は、「Payment Terms Adherence」ダッシュボードに欠かせません。支払条件別に期日どおりの支払い率を分析すると、条件の有効性を評価できます。例えば、「Net 15」の顧客が「Net 30」の顧客より早く支払っているかを確認し、今後の契約交渉や与信方針の検討に役立てられます。 重要な理由 支払条件の違いが有効性や顧客の支払いの速さにどのような影響を与えるかを分析するうえで欠かせません。 入手先 NetSuiteのInvoiceトランザクションレコードにある「Terms」フィールドに対応します。 例 30日後払い60日後払い受領時払い | |||
| 期日どおりに支払われたかどうか IsOnTimePayment | 顧客からの支払いが請求書の支払期日以前に受領されたかどうかを示すフラグです。 | ||
| 説明 この計算された真偽値フラグは、「Customer Payment Received」アクティビティのタイムスタンプと請求書の「DueDate」を比較します。支払いが期日どおりまたは期日前であればtrue、遅れていればfalseを設定します。 この属性は、「On-Time Payment Rate」KPIと「Payment Terms Adherence」ダッシュボードの基盤です。顧客の支払い行動を明確な二値で示すため、分析やレポート作成が容易になります。支払いの速さに関する傾向をすばやく把握し、回収施策の有効性を評価できます。 重要な理由 回収業務の成果を明確に測定でき、「On-Time Payment Rate」KPIの計算と顧客行動の分析を直接支えます。 入手先 計算された属性です。支払いイベントのタイムスタンプと、ケースレベルの「DueDate」属性を比較して求めます。 例 truefalse | |||
| 請求書ステータス InvoiceStatus | ライフサイクルにおける請求書の現在のステータスです。 | ||
| 説明 この属性は、請求書の現在の状態を示します。例えば、「Open」、「Paid in Full」、「Voided」などです。請求書がその時点でプロセスのどこにあるかを把握できます。 「Open Invoices Status Overview」ダッシュボードは、この属性を基盤として構成されています。売掛金の状況をリアルタイムで確認できるため、財務チームは未回収残高の監視、回収管理、キャッシュインフローの予測を行えます。最終ステータスを分析することで、プロセスの結果も把握できます。 重要な理由 売掛金の現在の状態を把握でき、未決済の請求書や請求業務全体の進捗を監視するダッシュボードの基盤になります。 入手先 NetSuiteのInvoiceトランザクションレコードにある「Status」フィールドに対応します。 例 未処理全額支払い済み無効化済み承認待ち | |||
| 販売注文番号 SalesOrderNumber | 請求書の生成元となった販売注文の識別子です。 | ||
| 説明 この属性は、元となった販売注文に直接リンクし、請求プロセスを前段の販売・フルフィルメントプロセスと結び付けます。 販売注文番号を含めることで、受注から入金までのサイクル全体をより広く把握できます。請求上の問題を販売プロセスの発生源までさかのぼって分析できます。例えば、請求書の修正が頻発している場合、特定の種類の販売注文における入力ミスが原因である可能性を確認できます。 重要な理由 請求プロセスを販売プロセスまで結び付け、請求上の問題の根本原因を特定するための、より広い受注から入金までの分析を可能にします。 入手先 NetSuiteのInvoiceトランザクションにある「Created From」フィールド、または「Related Records」サブタブで確認できます。 例 SO-0009876SO-0009877SO-0009878 | |||
| 通貨 Currency | 請求金額の通貨コードです。 | ||
| 説明 この属性は、請求金額の通貨を指定します。例として、USD、EUR、GBPなどがあります。金額を扱う際に欠かせない情報です。 多国籍企業では、通貨別に分析することで、各市場における財務パフォーマンスを把握しやすくなります。通貨換算が必要な場合も、金額を正しく解釈し、適切に集計・比較できます。 重要な理由 すべての金額に必要な情報を付加します。特に多国籍で事業を展開する場合、正確な財務報告と分析に欠かせません。 入手先 NetSuiteのInvoiceトランザクションレコードにある「Currency」フィールドに対応します。 例 USDEURGBP | |||
| 部門 Department | 請求書に関連付けられた社内部門です。 | ||
| 説明 この属性は、トランザクションを担当する社内部門を示します。Sales、Services、特定の事業ラインなどが該当します。NetSuiteの標準分類セグメントです。 部門別にプロセスを分析すると、社内ベンチマークを行い、他部門より効率的に請求できている部門を特定できます。プロセス遵守状況やリソース配分の違いを明らかにし、組織内の特定領域を対象とした改善施策につなげられます。 重要な理由 社内部門間でプロセスパフォーマンスを比較し、差異や社内プロセスを標準化する機会を明らかにできます。 入手先 NetSuiteのInvoiceトランザクションにある「Department」分類フィールドに対応します。ヘッダーまたは明細行レベルで設定できます。 例 営業:エンタープライズプロフェッショナルサービスハードウェア | |||
受注から入金まで:請求・請求書発行のアクティビティ
| アクティビティ | 説明 | ||
|---|---|---|---|
| 請求書の全額支払い完了 | 請求書のステータスが「Paid In Full」に変更され、残高がゼロになったことを示します。請求書に関する請求・回収サイクルが正常に完了した状態です。 | ||
| 重要な理由 プロセスが正常に完了したことを示す主要な終了イベントです。この状態に到達するまでの総時間を分析することで、入金サイクルのエンドツーエンドのサイクル時間を把握できます。 入手先 請求書レコードの「Status」フィールドが「Paid In Full」に変更されたことから推定します。このステータス変更のタイムスタンプは、取引のシステムノートで確認できます。 取得 システムノートで「Status」フィールドが「Paid In Full」に変更されたことから推定します。 イベントタイプ inferred | |||
| 請求書作成 | NetSuiteで請求書取引レコードが正式に作成されたことを示します。このイベントは、請求書番号ごとの請求プロセスの開始点であり、取引の作成タイムスタンプから取得します。 | ||
| 重要な理由 請求プロセスの主要な開始イベントです。このイベントから他のイベントまでの時間を分析することで、プロセス全体の効率を把握でき、請求書作成サイクル時間KPIの基準値になります。 入手先 請求書取引レコードの「Date Created」タイムスタンプから取得します。NetSuiteの請求書に関するシステムノートにも、作成イベントとユーザーが明示的に記録されます。 取得 請求書取引レコードの作成時に記録されるイベントです。 イベントタイプ explicit | |||
| 請求書承認 | 請求書が正式に承認され、顧客に送付できる状態になったことを示します。通常はワークフローのアクションによって、承認ステータスが「Pending Approval」から「Approved」に更新された時点で取得します。 | ||
| 重要な理由 請求書を顧客に送付できる状態にする重要なマイルストーンです。承認サイクル時間の測定や「Automated Billing Ratio」KPIの算出に欠かせません。 入手先 請求書レコードの「Approval Status」フィールドが「Approved」に変更されたことから推定します。正確なタイムスタンプは、取引のシステムノートに記録されます。 取得 システムノートで「Approval Status」フィールドが「Approved」に変更されたことから推定します。 イベントタイプ inferred | |||
| 顧客からの入金 | 顧客から支払いを受け、システムに記録されたことを示します。NetSuiteで「Customer Payment」取引が作成された時点から取得します。この取引は、1件または複数の請求書に適用される場合があります。 | ||
| 重要な理由 現金を受け取ったことを示しますが、特定の請求書への適用まで完了したことを意味するとは限りません。入金消込プロセスの最初のステップであり、DSO算出の重要なイベントです。 入手先 「Customer Payment」取引レコードの作成日から取得します。請求書との関連付けは、支払いの「Apply」サブタブで行います。 取得 Customer Payment取引レコードの作成です。 イベントタイプ explicit | |||
| 顧客への請求書送付 | 請求書が通常はメールで顧客に送付されたことを示します。請求書レコードでユーザーが「Email」アクションを実行した時点を追跡して取得します。 | ||
| 重要な理由 顧客からの回収期間の開始点であり、売上債権回転日数(DSO)の算出における主要な起点です。 入手先 請求書レコードの「Date Last Emailed」フィールドに値が入力されたことから推定します。または、Communicationサブタブでメールメッセージレコードが作成された時点から取得できます。 取得 「Date Last Emailed」への値の入力、またはコミュニケーションレコードの作成から推定します。 イベントタイプ inferred | |||
| クレジットメモ作成 | クレジットメモ取引が作成され、請求書に適用されたことを示します。未払い残高が減少し、通常は製品返品、サービスへの苦情、価格修正などを意味します。 | ||
| 重要な理由 手戻り、品質上の問題、顧客との紛争を示します。頻繁に発生する場合は、根本的な問題の兆候であり、「Invoice Rework and Rejection Analysis」ダッシュボードの重要な分析対象になります。 入手先 クレジットメモ取引の作成から取得します。元の請求書とのリンクは、クレジットメモの「Created From」フィールドまたは「Apply」サブタブで確認できます。 取得 元の請求書にリンクされたクレジットメモレコードの作成です。 イベントタイプ explicit | |||
| 承認申請済み請求書 | 請求書のステータスが「Pending Approval」に変更されたことを示します。ユーザーが設定済みの承認ワークフローに請求書を送信した時点で取得します。これは一般的なカスタマイズです。 | ||
| 重要な理由 承認に関するボトルネックが発生する可能性のある開始点を示すアクティビティです。承認待ちの時間は、請求書処理サイクル全体の重要な構成要素です。 入手先 請求書レコードの「Approval Status」フィールドが「Pending Approval」に変更されたことから推定します。この変更のタイムスタンプは、請求書のシステムノート監査証跡で確認できます。 取得 システムノートに記録された「Approval Status」フィールドの変更から推定します。 イベントタイプ inferred | |||
| 支払いリマインダー送信 | 未払いについて顧客に連絡が送信されたことを示します。請求書または顧客レコードから送信されたメールや、記録されたアクティビティとして取得します。多くの場合、督促ソリューションがこの処理を行います。 | ||
| 重要な理由 回収施策の効果を評価するうえで欠かせません。このアクティビティがその後の支払いに与えた影響を分析することで、リマインダーの頻度とタイミングを最適化できます。 入手先 請求書または顧客レコードのCommunication > Messagesサブタブでメールレコードが作成された時点から取得します。自動督促ソリューションでは、カスタムレコードやタスクとして記録される場合もあります。 取得 請求書に関連付けられたメールまたはアクティビティレコードとして記録されます。 イベントタイプ explicit | |||
| 支払期日の到来 | 現在の日付が請求書の支払期日と一致した時点で発生する計算上のイベントです。ユーザーやシステムが直接実行するアクションではなく、分析時に既存データから導出します。 | ||
| 重要な理由 支払いの適時性を測定する重要な基準です。「On-Time Payment Rate」KPIの算出や、顧客の支払い行動の分析に欠かせません。 入手先 NetSuiteに明示的なイベントとして記録されるものではありません。イベントログのタイムスタンプと請求書取引レコードの「Due Date」フィールドを比較して算出します。 取得 イベントのタイムスタンプが請求書の「Due Date」フィールドと一致した時点で算出します。 イベントタイプ calculated | |||
| 請求書クローズ | 請求書取引がクローズされたことを示します。多くの場合、期末の会計処理の一環として行われます。支払いと照合が完了した後に取引を変更できないようにします。 | ||
| 重要な理由 通常は「Paid In Full」の後に発生しますが、最終的な管理処理となる場合があります。支払いからクローズまでの遅延を分析すると、財務報告の適時性への影響を把握できます。 入手先 「Status」フィールドが「Closed」または同様の状態に変更されたことから推定します。この変更のタイムスタンプはシステムノートから取得します。 取得 システムノートで「Status」フィールドが変更されたことから推定します。 イベントタイプ inferred | |||
| 請求書への入金適用 | 受け取った顧客からの支払いがこの請求書に適用され、請求額が減少したことを示します。Customer Paymentレコードで適用内容を保存した時点で記録されます。 | ||
| 重要な理由 入金と請求書の決済をつなぐ重要なイベントです。「Payment Received」からこのイベントまでの時間が、「Cash Application Cycle Time」KPIになります。 入手先 Customer Payment取引のシステムノートまたは監査証跡から取得します。特に、請求書明細への適用内容を保存した時点が対象です。この適用時のタイムスタンプが重要です。 取得 Customer Paymentレコードに請求書への適用内容を保存した時点で記録されます。 イベントタイプ explicit | |||
| 請求書無効化 | 請求書が無効化され、実質的に取り消されたことを示します。総勘定元帳への影響も反転します。通常は、支払い前に誤って作成された請求書に対して行います。 | ||
| 重要な理由 プロセス上の例外であり、終端状態を示します。請求書が無効化された理由を把握すると、上流で修正すべき入力ミスやプロセスエラーを明らかにできます。 入手先 ユーザーが明示的に実行するアクションです。請求書レコードのシステムノートに、取引が無効化された日時と実行者が記録されます。 取得 請求書のシステムノートに記録された明示的な「Void」アクションです。 イベントタイプ explicit | |||
抽出ガイド
ステップ
- NetSuiteへのログイン:トランザクションレコードに対するSaved Searchesの作成と実行に必要な権限を持つロールで、NetSuiteアカウントにアクセスします。
- Saved Searchesへの移動:Reports > Saved Searches > All Saved Searches > Newへ移動します。検索タイプの一覧から「Transaction」を選択します。これを基に、イベントタイプごとに複数の検索を作成します。
- 「Invoice Created」検索の作成:請求書の作成を取得する主要な検索です。
- 「Criteria」タブの「Standard」で、「Type」フィルターを「is Invoice」に設定します。
- 「Main Line」フィルターを追加し、「is true」に設定して、請求書1件につき1レコードにします。
- 「Results」タブで必要な列を追加します。数式を使って「ActivityName」などの標準化されたフィールドを作成します。たとえば、「Formula (Text)」フィールドに
_UTF8'Invoice Created'という数式を追加します。
- ステータス変更(Approval、Paid、Voided、Closed)の検索作成:多くのアクティビティはステータス変更です。正確なタイムスタンプを取得するには、System Notesを使う方法が最も確実です。
- 新しいTransaction Saved Searchを作成します。
- 「Criteria」タブで、「Type」を「is Invoice」に設定します。
- 「Standard」サブタブで、「System Notes : Field」フィルターを追加し、該当するステータスフィールド(例:「Approval Status」)を選択します。
- 「System Notes : New Value」フィルターを追加し、対象ステータス(例:「Approved」)に設定します。
- 「Results」タブで、「System Notes : Date」を
EventTimestampに、「System Notes : Set by」をユーザーにマッピングします。 - ステータスに基づく各アクティビティ(「Invoice Submitted for Approval」、「Invoice Approved」、「Invoice Paid In Full」、「Invoice Voided」、「Invoice Closed」)について、フィールドと値のフィルターを調整しながら、この処理を繰り返します。
- 「Invoice Sent to Customer」検索の作成:通常、このイベントは請求書レコードから送信されたメールを追跡して取得します。
- 「Type」を「is Invoice」に設定して、新しいTransaction Saved Searchを作成します。
- 「Criteria」タブの「Related Records」で、「Messages : Date Sent」フィルターを追加し、「is not empty」に設定します。
- 「Results」タブで、「Messages : Date Sent」を
EventTimestampに、「Messages : Author」をユーザーにマッピングします。
- 支払いおよびクレジットメモのアクティビティ検索の作成:これらは、請求書に関連付けられた別のトランザクションタイプです。
- 「Customer Payment Received」では、「Type」が「Customer Payment」の検索を作成します。作成日をイベントタイムスタンプとして取得します。
- 「Payment Applied To Invoice」では、同じ「Customer Payment」検索を使い、「Applied To Transaction」フィールドに結合します。支払いトランザクションの「Date Created」をタイムスタンプとして使用します。請求書への適用ごとに1行が作成されます。
- 「Credit Memo Created」では、「Type」が「Credit Memo」の検索を作成し、「Created From」フィールドにリンクして元の請求書番号を取得します。
- 各Saved Searchの実行とエクスポート:作成した各Saved Searchを実行します。結果ページでエクスポートアイコン(CSV、Excel、PDF)をクリックし、CSVを選択します。結果セットがNetSuiteのエクスポート上限を超える場合は、複数回に分けてエクスポートする必要があります。
- データの結合と変換:Microsoft Excel、Pythonスクリプト、データ準備ツールなどを使って、エクスポートしたすべてのCSVファイルを1つのファイルに統合します。
- 「Payment Due Date Reached」イベントの導出:結合したデータファイルで、「Invoice Created」イベントごとに新しい行を作成します。
ActivityNameに「Payment Due Date Reached」、EventTimestampに請求書のDueDateフィールドの値を設定し、その他の関連する請求書属性をコピーします。 - イベントログの仕上げ:すべての列見出しを必要なスキーマ(例:
InvoiceNumber、ActivityName、EventTimestamp)に統一します。タイムスタンプの形式が一貫していることを確認します。この抽出バッチの固定値としてSourceSystem列とLastDataUpdate列を追加します。最終的に統合したファイルをCSVとして保存し、アップロードに備えます。
設定
- 前提条件: 「Transaction」タイプのSaved Searchを作成、編集、実行する権限を持つユーザーロールが必要です。Invoice、Customer Payment、Credit Memo、System Notesのレコードを閲覧する権限も必要です。
- 検索タイプ: すべての抽出で使用する主要な検索タイプは「Transaction」です。このタイプでは、必要なすべてのレコードとその関連情報にアクセスできます。
- 日付範囲のフィルタリング: パフォーマンスとデータ量を管理するため、各検索に日付範囲フィルターを適用します。初回の分析では、過去3~6か月の「Date Created」を指定することを推奨します。
- Main Lineフィルター: 「Invoice Created」など、ドキュメントヘッダー単位のイベントには、「Main Line」条件を「true」に設定します。明細行の詳細を分析する場合は「false」に設定しますが、このプロセスでは必要ありません。
- System Notes: ステータス変更の取得では、System Notesが重要な役割を果たします。NetSuiteの設定(Setup > Company > Enable Features > SuiteCloud > SuiteAudit Trail)で、「Status」や「Approval Status」など、主要な取引フィールドの監査が有効になっていることを確認します。
- パフォーマンスに関する考慮事項: 広い日付範囲に対して、多数の結合や数式フィールドを含む複雑な検索を実行すると、NetSuiteのUIで時間がかかる場合があります。これらの検索は、利用が集中しない時間帯に実行してエクスポートすることを推奨します。検索がタイムアウトする場合は、日付範囲を短くし、データを小さな単位に分けてエクスポートします。
a サンプルクエリ sql
/*
This section describes the configuration for multiple NetSuite Saved Searches needed to generate the complete event log. Each block represents a separate Saved Search that must be created in the UI, exported, and then combined externally.
*/
-- Search 1: Invoice Created
Activity Name: 'Invoice Created'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- Main Line is true
Results Columns (Mapped to Event Log Attributes):
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Created'
- EventTimestamp: Date Created
- User: Created By
- InvoiceDate: Date
- DueDate: Due Date
- InvoiceTotalAmount: Amount (Gross)
- CustomerName: Name
-- Search 2: Invoice Submitted for Approval
Activity Name: 'Invoice Submitted for Approval'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- System Notes : Field is Approval Status
- System Notes : New Value is [Your 'Pending Approval' status]
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Submitted for Approval'
- EventTimestamp: System Notes : Date
- User: System Notes : Set by
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 3: Invoice Approved
Activity Name: 'Invoice Approved'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- System Notes : Field is Approval Status
- System Notes : New Value is [Your 'Approved' status]
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Approved'
- EventTimestamp: System Notes : Date
- User: System Notes : Set by
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 4: Invoice Sent to Customer
Activity Name: 'Invoice Sent to Customer'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- Messages : Date Sent is not empty
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Sent to Customer'
- EventTimestamp: Messages : Date Sent (use Maximum summary type if multiple)
- User: Messages : Author (use Maximum summary type)
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 5: Payment Reminder Issued
Activity Name: 'Payment Reminder Issued'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- User Notes : Note contains [Your dunning/reminder keyword]
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Payment Reminder Issued'
- EventTimestamp: User Notes : Date
- User: User Notes : Author
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 6: Credit Memo Created
Activity Name: 'Credit Memo Created'
Saved Search Type: Transaction
Criteria:
- Type is Credit Memo
- Main Line is true
Results Columns:
- InvoiceNumber: Created From : Document Number
- ActivityName: Formula (Text) = 'Credit Memo Created'
- EventTimestamp: Date Created
- User: Created By
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 7: Customer Payment Received
Activity Name: 'Customer Payment Received'
Saved Search Type: Transaction
Criteria:
- Type is Customer Payment
- Main Line is true
Results Columns:
- InvoiceNumber: Applied to Transaction : Document Number
- ActivityName: Formula (Text) = 'Customer Payment Received'
- EventTimestamp: Date Created
- User: Created By
- CustomerName: Name
-- Search 8: Payment Applied To Invoice
Activity Name: 'Payment Applied To Invoice'
Saved Search Type: Transaction
Criteria:
- Type is Customer Payment
- Main Line is false
Results Columns:
- InvoiceNumber: Applied to Transaction : Document Number
- ActivityName: Formula (Text) = 'Payment Applied To Invoice'
- EventTimestamp: Date Created
- User: Created By
- CustomerName: Name
-- Search 9: Invoice Paid In Full
Activity Name: 'Invoice Paid In Full'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- System Notes : Field is Status
- System Notes : New Value is Paid In Full
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Paid In Full'
- EventTimestamp: System Notes : Date
- User: System Notes : Set by
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 10: Invoice Voided
Activity Name: 'Invoice Voided'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- Status is Invoice : Voided
- System Notes : Field is Status
- System Notes : New Value is Voided
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Voided'
- EventTimestamp: System Notes : Date
- User: System Notes : Set by
- CustomerName: Name
-- Search 11: Invoice Closed
Activity Name: 'Invoice Closed'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- System Notes : Field is Status
- System Notes : New Value contains Closed
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Closed'
- EventTimestamp: System Notes : Date
- User: System Notes : Set by
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Event to be Derived Post-Extraction: Payment Due Date Reached
/*
This event is not extracted directly. After combining all other CSVs, create a new row for each unique invoice.
Set ActivityName to 'Payment Due Date Reached'.
Set EventTimestamp to the DueDate value from the 'Invoice Created' event for that invoice.
Copy other attributes like InvoiceNumber, CustomerName, etc.
*/ ステップ
- 前提条件:SuiteAnalytics Connectを有効にする: NetSuiteインスタンスでSuiteAnalytics Connectモジュールのライセンスが付与され、有効になっていることを確認します。通常は、NetSuite管理者がSetup > Company > Enable Features > Analyticsで設定します。
- ODBCドライバーをダウンロードして設定する: NetSuiteのホームダッシュボードで「Settings」ポートレットを探します。「Set Up SuiteAnalytics Connect」リンクをクリックし、使用するオペレーティングシステムに適したODBCドライバーをダウンロードします。NetSuiteが提供するインストール手順に従ってドライバーをインストールし、サービスホスト、ポート、Account ID、Role ID、メール、パスワードを入力して設定します。
- データベース接続を確立する: DBeaver、Tableau、Power BIなど、ODBC接続に対応したSQLクライアントツールを使います。前の手順で設定したドライバーを使って、新しいODBC接続を作成します。接続をテストし、認証に成功してNetSuiteのリードレプリカデータベースにアクセスできることを確認します。
- SQLクエリを準備する: このドキュメントの「Query」セクションに記載された完全なSQLクエリをコピーします。このクエリは、受注から入金までの請求プロセスに必要なすべてのアクティビティと属性を抽出するよう設計されています。
- クエリパラメーターを設定する: 実行前に、クエリ内のプレースホルダー値を確認します。抽出期間の開始日と終了日を
'YYYY-MM-DD'に置き換えます。また、分析対象とするNetSuite子会社の内部IDを[Your Subsidiary ID]に指定します。 - クエリを実行する: 変更したクエリをSQLクライアントで実行します。実行時間は、日付範囲とNetSuiteアカウント内の取引量によって異なります。
- 結果を確認する: クエリが完了すると、イベントログを表すフラットなテーブルが返されます。各行は、請求書ライフサイクル内の特定のアクティビティに対応します。データが完全で正確であることを確認します。
- イベントログをエクスポートする: SQLクライアントからクエリ結果をCSVファイルにエクスポートします。文字化けを防ぐため、ファイルがUTF-8でエンコードされていることを確認します。
- アップロードの準備をする: プロセスマイニングツールにアップロードする前に、列見出しが必要な属性名(InvoiceNumber、ActivityName、EventTimestampなど)と一致していることを確認します。日付と時刻の形式も統一します。
設定
- SuiteAnalytics Connectライセンス: NetSuiteのリードレプリカデータベースにアクセスするには、SuiteAnalytics Connectモジュールの有効なライセンスが必須です。ライセンスがない場合、直接SQLでアクセスすることはできません。
- 専用のロールとユーザー: SuiteAnalytics Connect用に、適切な権限を設定した専用のNetSuiteロールを作成することを強く推奨します。このロールには、Transactions、Customers、System Notesなど、必要なレコードへの読み取り専用アクセス権を付与します。セキュリティと監査可能性を確保するため、抽出専用のユーザーをこのロールに割り当てます。
- 日付範囲のフィルタリング: 提供されているクエリには、請求書作成日(
Transaction.TRANDATE)に対するWHERE句が含まれています。初回の抽出では、パフォーマンスとデータ量を管理するため、過去3~6か月など、短い日付範囲から始めることを推奨します。例:AND T.TRANDATE BETWEEN '2023-01-01' AND '2023-06-30'。 - 子会社のフィルタリング: 複数の子会社があるアカウントでは、特定の子会社で絞り込むことが、パフォーマンスとデータの関連性の両面で重要です。クエリに含まれるプレースホルダー
WHERE T.SUBSIDIARY_ID = [Your Subsidiary ID]を設定してください。 - データの鮮度: SuiteAnalytics Connectデータベースはリードレプリカです。通常は1時間に複数回更新されますが、リアルタイムではありません。NetSuiteで取引が発生してからConnectデータベースに反映されるまで、最大数時間の遅延が発生する可能性があります。
a サンプルクエリ sql
WITH Invoices AS (
SELECT
T.TRANSACTION_ID,
T.TRANID AS InvoiceNumber,
T.TRANDATE AS InvoiceDate,
T.DUEDATE AS DueDate,
T.FOREIGN_TOTAL AS InvoiceTotalAmount,
C.COMPANYNAME AS CustomerName,
BUILTIN.DF(C.LOCATION) AS Region,
T.CREATED_DATE AS InvoiceCreationDate,
CREATOR.FIRST_NAME || ' ' || CREATOR.LAST_NAME AS CreatorUser
FROM
TRANSACTIONS T
JOIN
CUSTOMERS C ON T.ENTITY_ID = C.CUSTOMER_ID
LEFT JOIN
EMPLOYEES CREATOR ON T.CREATED_BY_ID = CREATOR.EMPLOYEE_ID
WHERE
T.TRANSACTION_TYPE = 'Invoice'
AND T.TRANDATE BETWEEN TO_DATE('2023-01-01', 'YYYY-MM-DD') AND TO_DATE('2023-12-31', 'YYYY-MM-DD')
-- AND T.SUBSIDIARY_ID = [Your Subsidiary ID] -- Add your subsidiary filter if needed
)
-- 1. Invoice Created
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Invoice Created' AS "ActivityName",
I.InvoiceCreationDate AS "EventTimestamp",
I.InvoiceCreationDate AS "EventEndTime",
I.CreatorUser AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
CASE WHEN I.CreatorUser LIKE '%System%' THEN 1 ELSE 0 END AS "IsAutomated"
FROM
Invoices I
UNION ALL
-- 2. Invoice Submitted for Approval & 3. Invoice Approved
SELECT
I.InvoiceNumber AS "InvoiceNumber",
CASE WHEN SN.NEW_VALUE = 'Pending Approval' THEN 'Invoice Submitted for Approval' ELSE 'Invoice Approved' END AS "ActivityName",
SN.DATE_CREATED AS "EventTimestamp",
SN.DATE_CREATED AS "EventEndTime",
SN_AUTHOR.FIRST_NAME || ' ' || SN_AUTHOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
CASE WHEN SN.AUTHOR_ID < 0 THEN 1 ELSE 0 END AS "IsAutomated"
FROM
Invoices I
JOIN
SYSTEM_NOTES SN ON I.TRANSACTION_ID = SN.TRANSACTION_ID
LEFT JOIN
EMPLOYEES SN_AUTHOR ON SN.AUTHOR_ID = SN_AUTHOR.EMPLOYEE_ID
WHERE
SN.FIELD = 'TRANSACTION.APPROVALSTATUS' AND SN.NEW_VALUE IN ('Pending Approval', 'Approved')
UNION ALL
-- 4. Invoice Sent to Customer
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Invoice Sent to Customer' AS "ActivityName",
M.MESSAGE_DATE AS "EventTimestamp",
M.MESSAGE_DATE AS "EventEndTime",
MSG_AUTHOR.FIRST_NAME || ' ' || MSG_AUTHOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
0 AS "IsAutomated"
FROM
Invoices I
JOIN
MESSAGES M ON I.TRANSACTION_ID = M.TRANSACTION_ID
LEFT JOIN
EMPLOYEES MSG_AUTHOR ON M.AUTHOR_ID = MSG_AUTHOR.EMPLOYEE_ID
WHERE
M.INCOMING = 'F' -- Indicates an outgoing message
UNION ALL
-- 5. Payment Due Date Reached
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Payment Due Date Reached' AS "ActivityName",
I.DueDate AS "EventTimestamp",
I.DueDate AS "EventEndTime",
'System' AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
1 AS "IsAutomated"
FROM
Invoices I
WHERE
I.DueDate IS NOT NULL AND I.DueDate < SYSDATE
UNION ALL
-- 6. Payment Reminder Issued (based on Messages table, requires a specific subject line convention)
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Payment Reminder Issued' AS "ActivityName",
M.MESSAGE_DATE AS "EventTimestamp",
M.MESSAGE_DATE AS "EventEndTime",
MSG_AUTHOR.FIRST_NAME || ' ' || MSG_AUTHOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
CASE WHEN M.AUTHOR_ID < 0 THEN 1 ELSE 0 END AS "IsAutomated"
FROM
Invoices I
JOIN
MESSAGES M ON I.TRANSACTION_ID = M.TRANSACTION_ID
LEFT JOIN
EMPLOYEES MSG_AUTHOR ON M.AUTHOR_ID = MSG_AUTHOR.EMPLOYEE_ID
WHERE
M.INCOMING = 'F' AND UPPER(M.SUBJECT) LIKE '%PAYMENT REMINDER%'
UNION ALL
-- 7. Credit Memo Created & Applied
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Credit Memo Created' AS "ActivityName",
CM.CREATED_DATE AS "EventTimestamp",
CM.CREATED_DATE AS "EventEndTime",
CM_CREATOR.FIRST_NAME || ' ' || CM_CREATOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
0 AS "IsAutomated"
FROM
Invoices I
JOIN
TRANSACTION_LINES T_LINES ON I.TRANSACTION_ID = T_LINES.APPLIED_TO_TRANSACTION_ID
JOIN
TRANSACTIONS CM ON T_LINES.TRANSACTION_ID = CM.TRANSACTION_ID
LEFT JOIN
EMPLOYEES CM_CREATOR ON CM.CREATED_BY_ID = CM_CREATOR.EMPLOYEE_ID
WHERE
CM.TRANSACTION_TYPE = 'Credit Memo'
UNION ALL
-- 8. Customer Payment Received & 9. Payment Applied to Invoice
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Customer Payment Received' AS "ActivityName", -- Can also create a separate 'Payment Applied' event if needed
PAYMENT.CREATED_DATE AS "EventTimestamp",
PAYMENT.CREATED_DATE AS "EventEndTime",
PMT_CREATOR.FIRST_NAME || ' ' || PMT_CREATOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
0 AS "IsAutomated"
FROM
Invoices I
JOIN
TRANSACTION_LINES T_LINES ON I.TRANSACTION_ID = T_LINES.APPLIED_TO_TRANSACTION_ID
JOIN
TRANSACTIONS PAYMENT ON T_LINES.TRANSACTION_ID = PAYMENT.TRANSACTION_ID
LEFT JOIN
EMPLOYEES PMT_CREATOR ON PAYMENT.CREATED_BY_ID = PMT_CREATOR.EMPLOYEE_ID
WHERE
PAYMENT.TRANSACTION_TYPE = 'Customer Payment'
UNION ALL
-- 10. Invoice Paid In Full, 11. Invoice Voided, 12. Invoice Closed
SELECT
I.InvoiceNumber AS "InvoiceNumber",
CASE
WHEN SN.NEW_VALUE_ID = 'Invoice:B' THEN 'Invoice Paid In Full' -- 'B' is status 'Paid In Full'
WHEN SN.FIELD = 'TRANSACTION.VOIDED' AND SN.NEW_VALUE = 'T' THEN 'Invoice Voided'
WHEN SN.FIELD = 'TRANSACTION.CLOSED' AND SN.NEW_VALUE = 'T' THEN 'Invoice Closed'
END AS "ActivityName",
SN.DATE_CREATED AS "EventTimestamp",
SN.DATE_CREATED AS "EventEndTime",
SN_AUTHOR.FIRST_NAME || ' ' || SN_AUTHOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
CASE WHEN SN.AUTHOR_ID < 0 THEN 1 ELSE 0 END AS "IsAutomated"
FROM
Invoices I
JOIN
SYSTEM_NOTES SN ON I.TRANSACTION_ID = SN.TRANSACTION_ID
LEFT JOIN
EMPLOYEES SN_AUTHOR ON SN.AUTHOR_ID = SN_AUTHOR.EMPLOYEE_ID
WHERE
(SN.FIELD = 'TRANSACTION.STATUS' AND SN.NEW_VALUE_ID = 'Invoice:B')
OR (SN.FIELD = 'TRANSACTION.VOIDED' AND SN.NEW_VALUE = 'T')
OR (SN.FIELD = 'TRANSACTION.CLOSED' AND SN.NEW_VALUE = 'T'); 始める準備はできていますか?
このテンプレートを使ってプロセスマイニングの取り組みを始め、請求・請求書発行業務を詳しく把握してください。今日から受注から入金までのプロセス改善を始めましょう。
今すぐNetSuiteの請求・請求書発行を最適化し、キャッシュフローを加速
NetSuiteの請求サイクルタイムを30%短縮し、キャッシュフローを改善します。
クレジットカードは不要です。数分で設定できます。