Analyse der Ausgaben für Lieferanten
Dieses Lösungsbeispiel zeigt, wie Sie mit Daten aus SAP ERP oder SAP BDC schneller Einblicke in die Ausgaben für Lieferanten erhalten.
Damit können Sie:
- Gesamtausgaben nach Materialtyp optimieren und Länderkonzentration im Blick behalten
- Verborgene Kaufmuster erkennen, um den Beschaffungswert zu maximieren
- Mithilfe von KI neue Erkenntnisse gewinnen
Referenzarchitektur
Eine allgemeine Referenzarchitektur bietet einen Überblick über die quellspezifischen Datenprodukte, die für diesen Anwendungsfall erforderlich sind.
Erforderliche Datenprodukte
Wenn Sie auf Daten aus SAP ERP aufbauen, sind die folgenden Cortex Framework-Datenprodukte erforderlich:
- Anbieter
- Kaufdokumente
- Einkaufsorganisationen
- Materials
- Materialgruppen
- Materialtypen
Wenn Sie auf Daten aus SAP BDC aufbauen, sind die folgenden BDC-Datenprodukte erforderlich:
- Produkt
- Auftrag
- Company Code
- Anbieter
Code-Snippets
Das folgende Code-Snippet enthält ein Beispiel dafür, wie Sie ein BigQuery-Datenmodell für die Analyse von Lieferantenausgaben auf Grundlage von SAP ERP-Datenprodukten aus dem Cortex Framework oder nach der Integration von SAP BDC-Datenprodukten erstellen.
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
KI‑Agents aktivieren
Nachdem Sie Ihr Datenmodell für die Analyse der Lieferantenausgaben in BigQuery erstellt haben, können Sie einen benutzerdefinierten Daten-Agent erstellen. So können Sie Ausgabenmesswerte für Lieferanten direkt in natürlicher Sprache abfragen, ohne dass komplexes SQL erforderlich ist.