Skip to content
Proud to collaborate with Microsoft for Startups

sap.sync-customer-invoices ​

Page every billing document in a caller-supplied date window via sap.fetch-customer-invoices and persist each page into commerce_entity (entity_type=invoice).

Page every billing document in a caller-supplied date window into commerce_entity.

Overview ​

PropertyValue
Workflow typeLinear
LibraryApp-sap
Version1.0

Input Schema ​

FieldTypeRequiredDefaultDescription
organization_uuiduuidYes—Authenticated organization UUID injected by the workflow boundary
connection_uuiduuidYes—Organization-scoped SAP CloudConnection UUID
workflow_run_idstringNo—Engine-stamped parent DAG run id
start_datestringYes—YYYY-MM-DD inclusive lower bound on BillingDocumentDate; forwarded unchanged to every page
end_datestringYes—YYYY-MM-DD inclusive upper bound on BillingDocumentDate; must be on or after start_date; forwarded unchanged to every page
skipintegerNo—Initial OData $skip offset to start or resume paging from; non-negative integer, defaults to 0
topintegerNo—OData $top page size passed to sap.fetch-customer-invoices; 1..1000, defaults to 100
max_pagesintegerNo—Safety cap on pages fetched this run; defaults to 20
company_codestringNo—Optional SAP CompanyCode filter forwarded to every page; absent reads every company code the connection can see
actorstringNo—Optional actor stamp forwarded to commerce persist/cursor workflows

Output Schema ​

FieldTypeRequiredDefaultDescription
organization_uuiduuidYes——
connection_uuiduuidYes——
workflow_run_idstringNo——
start_datestringYes——
end_datestringYes——
skipintegerNo——
topintegerNo——
max_pagesintegerNo——
company_codestringNo——
actorstringNo——
current_skipintegerNo——
pages_fetchedintegerNo——
synced_countintegerNo——
persisted_countintegerNo——
created_countintegerNo——
updated_countintegerNo——
rejected_countintegerNo——
has_next_pagebooleanNo——
sap_environmentstringNo——
started_atstringNo——
completed_atstringNo——
failure_reasonstringNo——
failure_typestringNo——
failed_actionstringNo——
failed_stepjsonNo——
failed_layerintegerNo——
failed_at_statestringNo——
errorstringNo——
error_typestringNo——
failed_atstringNo——
provider_request_refstringNo——
retryablebooleanNo——

States ​

StateInitialTerminalSuccessAuto-advanceDescription
initiatedYesNo—start—
fetchingNoNo———
finalizingNoNo—complete—
planningNoNo—fetch_page—
completedNoYesYes——
failedNoYesNo——

State Diagram ​

Transitions ​

FromActionToDescription
initiatedstartplanning—
planningfetch_pagefetching—
fetchingfetch_pagefetching—
fetchingfinish_pagesfinalizing—
finalizingcompletecompleted—
* (any state)failfailed—

Business Errors ​

CodeMessage Template
SAP_ORGANIZATION_CONTEXT_INVALIDAuthenticated organization context is missing or does not match the workflow input
SAP_CONNECTION_NOT_FOUNDSAP connection {connection_uuid} was not found in the authenticated organization
SAP_CONNECTION_WRONG_PROVIDERConnection {connection_uuid} is not a SAP connection
SAP_CONNECTION_SERVICE_UNAVAILABLEThe shared cloud connection service is unavailable
SAP_PROVIDER_CAPABILITY_MISSINGThe installed SAP provider does not expose the required API operation
SAP_AUTHENTICATION_FAILEDSAP rejected the connection credentials or API key
SAP_PROVIDER_REQUEST_FAILEDThe SAP OData request failed
SAP_RESPONSE_SHAPE_INVALIDThe SAP OData API returned an invalid response
SAP_PAGINATION_INVALIDskip must be a non-negative integer and top must be between 1 and 1000
SAP_WINDOW_INVALIDDates must use YYYY-MM-DD and be ordered
SAP_SIDE_INVALIDside must be exactly 'receivable' or 'payable'
SAP_ENVIRONMENT_INVALIDThe connection's SAP environment must be exactly 'sandbox' or 'live'
SAP_SYNC_PAGE_FETCH_FAILEDSAP sync child fetch failed:
SAP_SYNC_PERSIST_FAILEDSAP sync persist-batch failed:

API Usage ​

bash
POST /api/workflows/start
Content-Type: application/json

{
  "workflow_type": "sap.sync-customer-invoices",
  "initial_data": {
    "organization_uuid": "value",
    "connection_uuid": "value",
    "start_date": "value",
    "end_date": "value"
  }
}