Start inputs
SAP purchase requisition approval
Passed by the calling system
Finance package
An SAP S/4HANA purchase requisition is read over OData, routed by an approval matrix to approvers who pick the cost centre, then turned into a PO.
Connects to SAP S/4HANA
About this package
SAP purchase requisition → PO approval moves requisition approval out of SAP inboxes and into task forms people actually use. When a requisition is released for approval (a business event, a BTP Event Mesh message or a small ABAP job posting the number), the workflow reads it from the API_PURCHASEREQ_PROCESS_SRV OData service: the header and every item with material, material group, quantity, price, plant, purchasing organization and fixed supplier.
It totals the items and evaluates the PR approval matrix decision table on amount, material group and plant, which sets the approver level, whether finance must approve too and the SLA. The approver gets a task form with the items, a Cost centres lookup that fills the owner, remaining budget and G/L account, and Approve / Reject buttons; two-step rules add a finance approval.
Once approved, a purchase order is created with a deep insert into API_PURCHASEORDER_PROCESS_SRV A_PurchaseOrder, one PO item per requisition item with the approved cost centre, and the PO number is logged against the requisition.
Starts when SAP posts a released purchase requisition number to the workflow start API or inbound webhook (business event, Event Mesh or a scheduled ABAP report).
Another system starts it over REST or an inbound webhook. No UI is needed; people only appear where a decision needs a human.
The flow
Requisition released
SAP posts the purchase requisition number.
Read it over OData
A_PurchaseRequisitionHeader and its to_PurchaseReqnItem items are read; the items are totalled.
Approval matrix
The decision table sets the approver level, whether finance approves too and the SLA from amount, material group and plant.
Approver
A task form with the items, a cost centre lookup (owner, budget, G/L) and Approve / Reject buttons.
Finance (two-step)
For larger or IT-hardware requisitions, finance confirms the budget and approves.
Create the PO
A_PurchaseOrder is created with one item per requisition item and the approved cost centre; the PO number is logged.
Forms
The inputs a caller passes when it starts a run, and the forms people complete when the process needs a decision.
Start inputs
Passed by the calling system
User Task
Approve PR {{purchase_requisition}}: {{pr_description}} ({{currency}} {{amount}}) · 2-column grid · own header and theme
User Task
Finance approval: PR {{purchase_requisition}} ({{currency}} {{amount}}) on {{cost_center}} · 2-column grid · own header and theme
Headless
Every workflow can be started over REST, MCP or the CLI, whatever its trigger, with the sample input below. Runs start straight away on the published version; replace <workflow id> with the id the install created.
REST
curl -X POST "$USERTASKS_URL/api/v1/workflows/start" \
-H "Authorization: Bearer $USERTASKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"workflow_id":"<workflow id>","variables":{"purchase_requisition":"10000123"}}'CLI
usertasks workflows inputs <workflow id> # the start form: keys, types, required
usertasks workflows run <workflow id> --input purchase_requisition=10000123 --waitInbound webhook
usertasks webhooks create <workflow id> # prints the hook slug and secret once
curl -X POST "$USERTASKS_URL/api/webhooks/inbound?hook=<slug>" \
-H "Authorization: Bearer <webhook secret>" -H "Content-Type: application/json" \
-d '{"purchase_requisition":"10000123"}'What's included
| Type | Name | Details |
|---|---|---|
| Data table | Cost centres | Controlling cost centres the approver can charge: the approval form looks them up and shows the owner and remaining budget. |
| Data table | Requisition approvals | Every SAP purchase requisition routed through UserTasks: amount, approval level, decisions and the purchase order created. |
| Integration | SAP S/4HANA | |
| API reference | Create purchase order | POST /API_PURCHASEORDER_PROCESS_SRV/A_PurchaseOrder — API_PURCHASEORDER_PROCESS_SRV: deep insert of A_PurchaseOrder with its items (to_PurchaseOrderItem) referencing the requisition and the approved cost centre. Returns d.PurchaseOrder. |
| API reference | Get purchase requisition | GET /API_PURCHASEREQ_PROCESS_SRV/A_PurchaseRequisitionHeader('{{purchase_requisition}}') — API_PURCHASEREQ_PROCESS_SRV: the requisition header (type, description). |
| API reference | Get requisition items | GET /API_PURCHASEREQ_PROCESS_SRV/A_PurchaseRequisitionHeader('{{purchase_requisition}}')/to_PurchaseReqnItem — API_PURCHASEREQ_PROCESS_SRV: the requisition items (navigation to_PurchaseReqnItem): material, material group, quantity, price, plant, purchasing org and group, fixed supplier. |
| Decision table | PR approval matrix | 5 rules — Approval level for a purchase requisition by total amount, material group and plant. two_step = a second (finance) approval after the first. First matching rule wins. |
| Workflow | SAP purchase requisition approval | 27 steps — A released SAP purchase requisition is read over OData, routed by the approval matrix to one or two approvers who pick the cost centre, and converted into a purchase order. |
Cost centres · 5 sample rows
Cost centreNameCompany codeControlling areaResponsibleDefault G/L accountBudget remaining (EUR)Active
Requisition approvals · schema only
Purchase requisitionDescriptionAmountCurrencyMaterial groupPlantApprover levelCost centreStatusPurchase orderNotes
Requirements
Credentials never travel in a package. The install wizard asks for what your environment must provide, or installs it incomplete until you finish setup.
Integration “SAP S/4HANA”Required
Workflow “SAP purchase requisition approval” assigneesRequired
Install
Works on UserTasks cloud and on any self-hosted instance. Installing creates the assets above; nothing runs until you complete setup and start it.
curl -fLO https://usertasks.com/gallery/sap-purchase-requisition-approval-1.0.0.utpkg
usertasks packages inspect sap-purchase-requisition-approval-1.0.0.utpkg # offline: checksum, hashes, signature
usertasks packages install sap-purchase-requisition-approval-1.0.0.utpkg --dry-run
usertasks packages install sap-purchase-requisition-approval-1.0.0.utpkg # prompts for each requirement
usertasks packages install sap-purchase-requisition-approval-1.0.0.utpkg --keep-incomplete --yes # in CI; finish with:
usertasks packages complete sap-purchase-requisition-approval -f values.yamlVerify the download
shasum -a 256 sap-purchase-requisition-approval-1.0.0.utpkg should print the file SHA-256. How gallery packages are signed.
Versions
Installing a newer version upgrades in place: local credentials and requirement values are kept, and changes you made are flagged first. How packages work
More packages
Finance Official
Match each incoming invoice to its purchase order and goods receipts, pay matches within tolerance and route exceptions to accounts payable.
Needs:REST APIAssigneesInbound webhook
Finance Official
NetSuite posts a vendor bill; subsidiary and amount limits pick the approvers, AP codes the cost centre and approves, rejects or holds, and NetSuite is updated.
Needs:REST APIInbound webhookAssigneesEmail
Finance Official
A captured supplier invoice is matched to the SAP PO and goods receipts; variances outside tolerance go to AP, and matched invoices are posted to S/4HANA.
Needs:REST APIAssigneesInbound webhook