공급업체 지출 분석
이 솔루션 샘플에서는 SAP ERP 또는 SAP BDC 소스 데이터를 사용하여 공급업체 지출 현황에 대한 통계를 가속화하는 방법을 보여줍니다.
이 기능을 사용하면 다음 작업을 할 수 있습니다.
- 소재 유형별 총 지출을 최적화하고 국가 집중도를 추적합니다.
- 숨겨진 구매 패턴을 파악하여 조달 가치를 극대화하세요.
- AI를 사용하여 새로운 유용한 정보를 파악하세요.
참조 아키텍처
개략적인 참조 아키텍처는 이 사용 사례에 필요한 소스별 데이터 제품의 개요를 제공합니다.
필수 데이터 제품
SAP ERP 소스 데이터를 기반으로 빌드하는 경우 다음 Cortex Framework 데이터 제품이 필요합니다.
- 공급업체
- 구매 문서
- 구매 조직
- 소재
- 소재 그룹
- 소재 유형
SAP BDC 소스 데이터를 기반으로 빌드하는 경우 다음 BDC 데이터 제품이 필요합니다.
- Product
- 구매주문서
- 회사 코드
- 공급업체
코드 스니펫
다음 코드 스니펫은 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을 사용하지 않고도 자연어를 사용하여 공급업체 지출 측정항목을 직접 쿼리할 수 있습니다.