Purchase order approval workflow stuck at finance review step in procure-to-pay process

Running into a frustrating issue with our Blue Yonder Luminate 2023.1 hybrid deployment. Purchase orders submitted from our on-prem procurement module get stuck at the finance review step when they hit the cloud-based approval workflow. The PO status shows “Pending Finance Approval” in the on-prem system, but the finance team in the cloud portal sees no pending approvals in their queue.

We’ve verified the integration connector is running and showing “Connected” status. However, I’m suspicious about the workflow status mapping between on-prem and cloud - it seems like the approval event isn’t propagating correctly. The connector logs show successful POST requests, but no corresponding approval task appears in the cloud workflow engine.


INFO: PO-2024-1547 submitted for approval
INFO: Connector POST to /api/workflow/approvals
RESPONSE: 200 OK - Request accepted
WARNING: No workflow task created after 30 seconds

Anyone experienced this workflow synchronization issue? We have about 45 POs currently blocked.

We had this exact problem after upgrading to 2023.1. The root cause was that our on-prem approval step names didn’t match the cloud workflow step definitions. The API accepted the requests but couldn’t route them to the correct approval queue because the step mapping was incorrect. You need to verify that your workflow status codes align between systems - check the workflow_status_mapping.xml file in your connector configuration directory.

I’ve seen this before - the issue is usually with the approval event payload structure. The cloud workflow engine expects specific fields that might differ from your on-prem format. Are you including the approver group ID, priority level, and approval context? Also check if your finance approver group in the cloud has the correct permissions assigned. If the group exists but lacks workflow approval permissions, tasks won’t appear in their queue even though the API accepts the request.

I’ll provide a comprehensive solution addressing all three focus areas: workflow status mapping, connector error handling, and approval event propagation.

Workflow Status Mapping:

The core issue is that your on-prem workflow status codes aren’t properly mapped to cloud workflow definitions. In Blue Yonder Luminate 2023.1, this mapping is critical for hybrid deployments.

First, verify your workflow mapping configuration. Locate the file workflow_status_mapping.xml in your connector’s config directory:

<workflow-mapping>
  <step name="FINANCE_REVIEW" cloud-id="fin-approval-001"/>
  <approver-group name="Finance" cloud-guid="a7b3c..." />
</workflow-mapping>

The cloud-id must match exactly with the workflow step definition in your cloud tenant. Log into the Luminate cloud admin console and navigate to Workflow Administration > Approval Workflows > Finance Review. Copy the exact Step ID (usually a GUID format like fin-approval-001 or 3f4b8c2d-...).

Update your mapping file with the correct cloud IDs for each approval step. Common mistakes:

  • Using on-prem step names instead of cloud step IDs
  • Not updating mappings after cloud workflow modifications
  • Missing approver group GUID mappings

Connector Error Handling:

Your connector is only showing the initial 200 OK response but not catching downstream validation failures. Enhance error handling:

  1. Enable asynchronous response tracking in your connector configuration:
connector.workflow.async.enabled=true
connector.workflow.callback.timeout=120000
connector.workflow.validation.strict=true
  1. Implement proper callback handling. The cloud workflow engine sends a callback webhook after processing the approval request. Configure your connector to listen for these callbacks:
connector.callback.endpoint=/webhook/workflow-status
connector.callback.port=8443
connector.callback.ssl.enabled=true
  1. Verify your firewall allows inbound HTTPS traffic from Blue Yonder cloud IPs to your callback endpoint. This is often the reason callbacks fail silently. Check with your network team that ports 8443 (or your configured port) accept connections from the cloud tenant’s IP ranges.

  2. Add comprehensive error logging:

connector.logging.level=DEBUG
connector.logging.include.request.body=true
connector.logging.include.response.body=true
connector.error.notification.email=procurement-team@company.com

This will capture the full request/response cycle and alert you to validation failures.

Approval Event Propagation:

The approval event payload structure must match what the cloud workflow engine expects. Review your connector’s payload template:

Required fields for 2023.1:

  • workflowDefinitionId (cloud workflow GUID)
  • approvalStepId (specific step within workflow)
  • approverGroupId (cloud approver group GUID)
  • contextData (PO details, amount, requester)
  • priority (1-5, with 1 being highest)
  • dueDate (ISO 8601 format)
  • callbackUrl (for status updates)

Update your connector’s payload template:

{
  "workflowDefinitionId": "${cloud.workflow.id}",
  "approvalStepId": "${cloud.step.id}",
  "approverGroupId": "${cloud.approver.group.guid}",
  "contextData": {
    "poNumber": "${po.number}",
    "amount": ${po.amount},
    "currency": "${po.currency}",
    "requester": "${po.requester.email}"
  },
  "priority": 3,
  "dueDate": "${po.approval.due.date}",
  "callbackUrl": "https://${connector.host}:${connector.callback.port}/webhook/workflow-status"
}

Ensure your on-prem system populates all these fields correctly.

Immediate Steps to Unblock Your 45 POs:

  1. Stop the connector service temporarily
  2. Back up current configuration files
  3. Update workflow_status_mapping.xml with correct cloud IDs
  4. Configure callback endpoint and verify firewall rules
  5. Enable detailed logging
  6. Restart connector service
  7. Test with a single PO first

Testing the Fix:

Create a test PO and monitor the full flow:

  1. Check connector logs for the POST request with full payload
  2. Verify 200 OK response
  3. Wait for callback (should arrive within 5-10 seconds)
  4. Confirm approval task appears in cloud finance queue
  5. Have finance user approve/reject
  6. Verify status updates back to on-prem system

If the test succeeds, manually resubmit the 45 blocked POs. You may need to update their status in the on-prem database first:

-- Reset stuck POs to resubmit
UPDATE purchase_orders
SET approval_status = 'PENDING_SUBMISSION',
    workflow_task_id = NULL
WHERE approval_status = 'PENDING_FINANCE_APPROVAL'
  AND workflow_task_id IS NULL;

Then trigger resubmission through your normal procurement workflow.

Preventing Future Issues:

Set up monitoring to catch this early:

  • Alert when PO remains in PENDING_FINANCE_APPROVAL for >15 minutes with no cloud task ID
  • Daily reconciliation report comparing on-prem pending approvals vs cloud approval queue
  • Connector health check that validates callback connectivity every hour

After implementing these fixes, your approval workflow should function reliably with proper error visibility and status synchronization between on-prem and cloud systems.