SAP S/4HANA and Jira integration
SAP S/4HANA handles procurement and asset management. Jira tracks project tasks and deliverables. Connecting the two keeps your procurement pipeline visible to the teams waiting on asset arrival and deployment. Purchase requisitions and orders created in SAP flow into Jira as issues so developers, operations, and project managers can track status in their workflow tool. ml-connector bridges the very different APIs on each side and syncs on a schedule you control.
What moves between them
Purchase requisitions and orders flow one way from SAP into Jira. For each new or changed requisition in SAP, ml-connector creates or updates a corresponding Jira issue in a designated project, mapping the requisition number, supplier name, line items, and required delivery date. Jira issues serve as the tracker for asset arrival and deployment status, while SAP remains the source of truth for the procurement record. ml-connector polls SAP on a schedule you control, typically daily or after each requisition change, and refreshes Jira issues to match. Comments and status changes in Jira stay in Jira; Jira does not push changes back into SAP.
How ml-connector handles it
ml-connector stores the SAP OAuth credentials encrypted and refreshes the bearer token before it expires to avoid dropped polls. SAP tokens are typically valid for 12 hours, so ml-connector checks the expiry and requests a new token well before the window closes. On every poll, ml-connector filters the SAP PurchaseRequisitionHeader and A_PurchaseOrderItem APIs by LastChangeDateTime to fetch only new or modified records since the last run. For each requisition, it reads the supplier name from the A_Supplier entity and formats the line items into an ADF description block so the Jira issue is human-readable. If a matching Jira issue already exists, ml-connector updates the issue summary and description; if not, it creates a new issue in the target project. Jira issues are tagged with the SAP requisition number and supplier to support linking and filtering. ml-connector handles OData pagination with $skip and $top parameters and retries on rate limits (HTTP 429 on SAP; Jira rate limits are generous for OAuth2). Every record carries a timestamp and audit log entry so a missed sync can be replayed.
A real-world example
A mid-sized tech company runs SAP S/4HANA for procurement and asset management across engineering and operations. Teams use Jira to track project tasks and hardware delivery milestones. Before the integration, the procurement team created purchase requisitions in SAP and manually created corresponding Jira tickets, or left teams to discover delivery delays through email forwarding. With SAP S/4HANA and Jira connected, each requisition automatically appears as a Jira issue in the project backlog, assigned to the requesting team with the supplier name and expected delivery date. Teams can see the procurement status in their Jira workflow, comment on assets, and transition issues when deliveries arrive and are deployed. The manual ticket-creation step is eliminated, and the procurement pipeline is visible to everyone waiting on it.
What you can do
- Pull purchase requisitions and orders from SAP S/4HANA and create or update Jira issues for each one with supplier name, line items, and delivery dates.
- Map SAP requisition status and cost center to Jira issue fields so teams see which department requested the asset and when it should arrive.
- Refresh SAP OAuth2 bearer tokens automatically before expiry and handle OData pagination so large batches of requisitions sync without gaps.
- Format SAP line-item data into Atlassian Document Format (ADF) for readable issue descriptions in Jira.
- Poll SAP on a schedule you define, with retries and a full audit trail on every record.
Questions
- Does data flow both directions between SAP and Jira?
- No. Purchase requisitions and orders flow one way from SAP S/4HANA into Jira as issues. Jira is the tracker for implementation and delivery status; SAP remains the source of truth for the procurement record. Comments and status transitions in Jira stay in Jira and do not write back to SAP.
- How does ml-connector handle SAP OAuth2 tokens and OData API pagination?
- ml-connector stores SAP credentials encrypted and refreshes the bearer token before it expires, typically every 12 hours. It uses OData $skip and $top parameters to fetch large batches of requisitions and filters by LastChangeDateTime so only new or changed records are polled on each run. Retries on rate limits ensure no data is lost.
- Why does Jira require Atlassian Document Format (ADF) instead of plain text?
- Jira's REST API v3 uses ADF for rich formatting, links, and embedded data. ml-connector serializes SAP line items and supplier details into ADF blocks so Jira issues are human-readable and support filtering and searching on supplier name and requisition number.
Related integrations
More SAP S/4HANA integrations
Other systems that connect to Jira
Connect SAP S/4HANA and Jira
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started