공급업체 지출 분석

이 솔루션 샘플에서는 SAP ERP 또는 SAP BDC 소스 데이터를 사용하여 공급업체 지출 현황에 대한 통계를 가속화하는 방법을 보여줍니다.

이 기능을 사용하면 다음 작업을 할 수 있습니다.

  • 소재 유형별 총 지출을 최적화하고 국가 집중도를 추적합니다.
  • 숨겨진 구매 패턴을 파악하여 조달 가치를 극대화하세요.
  • AI를 사용하여 새로운 유용한 정보를 파악하세요.

참조 아키텍처

개략적인 참조 아키텍처는 이 사용 사례에 필요한 소스별 데이터 제품의 개요를 제공합니다.

Cortex Framework 솔루션 샘플 참조 아키텍처

그림 1. Cortex Framework용 공급업체 지출 분석 솔루션 샘플 참조 아키텍처

필수 데이터 제품

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을 사용하지 않고도 자연어를 사용하여 공급업체 지출 측정항목을 직접 쿼리할 수 있습니다.