サプライヤー支出分析
このソリューション サンプルでは、SAP ERP または SAP BDC のソースデータを使用して、サプライヤーの費用ポジションに関する分析情報を迅速に取得する方法の例を示します。
このツールを使用すると、次のことができます。
- 材料タイプ別に総費用を最適化し、国の集中度を追跡します。
- 隠れた購入パターンを把握して、調達価値を最大化します。
- AI を使用して新しい分析情報を発見します。
リファレンス アーキテクチャ
ハイレベルの参照アーキテクチャは、このユースケースに必要なソース固有のデータ プロダクトの概要を示します。
必要なデータ プロダクト
SAP ERP から取得したデータに基づいて構築する場合は、次の Cortex Framework データ プロダクトが必要です。
- ベンダー
- 購入ドキュメント
- [Purchasing Organizations]
- 材質
- マテリアル グループ
- マテリアル タイプ
SAP BDC から取得したデータの上に構築する場合は、次の BDC データ プロダクトが必要です。
- プロダクト
- 注文書
- 会社コード
- ベンダー
コード スニペット
次のコード スニペットは、Cortex Framework の SAP ERP データ プロダクトを基盤として、または SAP BDC データ プロダクトの統合後に、サプライヤーの費用分析用の BigQuery データモデルを構築する方法の例を示しています。
WITH purchasing_items AS (
SELECT
client_mandt,
purchasing_document_number_ebeln,
item_number_of_purchasing_document_ebelp,
material_number_matnr,
plant_werks,
po_quantity_menge,
net_order_value_in_po_currency_netwr,
gross_order_value_in_po_currency_brtwr,
delivery_completed_flag_elikz
FROM
<YOUR_PROJECT_ID>.<YOUR_CORTEX_DATA_PRODUCTS_DATASET>.purchasing_document_items
),
purchasing_headers AS (
SELECT
client_mandt,
purchasing_document_number_ebeln,
vendor_account_number_lifnr,
purchasing_organization_ekorg,
purchasing_document_date_bedat as order_date_bedat,
currency_key_waers
FROM
<YOUR_PROJECT_ID>.<YOUR_CORTEX_DATA_PRODUCTS_DATASET>.purchasing_document_headers
),
vendor_data AS (
SELECT
client_mandt,
account_number_of_vendor_or_creditor_lifnr as vendor_account_number_lifnr,
name1_name1 as vendor_name_name1,
country_key_land1,
central_deletion_flag_for_master_record_loevm
FROM
<YOUR_PROJECT_ID>.<YOUR_CORTEX_DATA_PRODUCTS_DATASET>.vendors_md
),
material_data AS (
SELECT
client_mandt,
material_number_matnr,
material_text_maktx,
material_type_mtart,
material_group_matkl
FROM
<YOUR_PROJECT_ID>.<YOUR_CORTEX_DATA_PRODUCTS_DATASET>.materials_md
),
purchasing_orgs AS (
SELECT
client_mandt,
purchasing_organization_ekorg,
purchasing_organization_text_ekotx
FROM
<YOUR_PROJECT_ID>.<YOUR_CORTEX_DATA_PRODUCTS_DATASET>.purchasing_organizations_md
)
SELECT
i.client_mandt,
i.purchasing_document_number_ebeln,
i.item_number_of_purchasing_document_ebelp,
h.vendor_account_number_lifnr,
v.vendor_name_name1,
v.country_key_land1,
i.material_number_matnr,
m.material_text_maktx,
m.material_type_mtart,
m.material_group_matkl,
h.purchasing_organization_ekorg,
o.purchasing_organization_text_ekotx,
-- Baseline financial & temporal fields
h.order_date_bedat,
i.po_quantity_menge,
i.net_order_value_in_po_currency_netwr,
i.gross_order_value_in_po_currency_brtwr,
i.net_order_value_in_po_currency_netwr as spend_usd,
-- Active vendor indicator (True if not deleted)
CASE
WHEN v.central_deletion_flag_for_master_record_loevm = 'X' THEN false
ELSE true
END as active_vendor_indicator,
-- Purchase Price Variance (PPV) - Net versus Gross baseline/target difference
(i.gross_order_value_in_po_currency_brtwr - i.net_order_value_in_po_currency_netwr) as purchase_price_variance_ppv,
-- Delivery and overdues tracking
i.delivery_completed_flag_elikz,
CASE
WHEN i.delivery_completed_flag_elikz != 'X' THEN i.net_order_value_in_po_currency_netwr
ELSE 0
END as open_po_net_amount,
CASE
WHEN i.delivery_completed_flag_elikz != 'X' AND h.order_date_bedat < DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY) THEN true
ELSE false
END as is_overdue,
-- Efficiency & Performance metrics
SAFE_DIVIDE(i.net_order_value_in_po_currency_netwr, i.po_quantity_menge) as average_spend_per_unit,
(i.gross_order_value_in_po_currency_brtwr - i.net_order_value_in_po_currency_netwr) as gross_net_variance,
1 as line_item_count
FROM
purchasing_items i
LEFT JOIN
purchasing_headers h
ON i.client_mandt = h.client_mandt
AND i.purchasing_document_number_ebeln = h.purchasing_document_number_ebeln
LEFT JOIN
vendor_data v
ON h.client_mandt = v.client_mandt
AND h.vendor_account_number_lifnr = v.vendor_account_number_lifnr
LEFT JOIN
material_data m
ON i.client_mandt = m.client_mandt
AND i.material_number_matnr = m.material_number_matnr
LEFT JOIN
purchasing_orgs o
ON h.client_mandt = o.client_mandt
AND h.purchasing_organization_ekorg = o.purchasing_organization_ekorg
AI エージェントを有効にする
BigQuery でサプライヤー費用分析データモデルを作成したら、カスタム データ エージェントを構築できます。これにより、複雑な SQL を使用することなく、自然言語を使用してサプライヤーの費用指標を直接クエリできます。