Custom Fiori extension for contract management reduces approval time by 60%

Wanted to share our implementation story where we built a custom Fiori extension for contract approval workflows in SAP CX. Our sales teams were frustrated with manual status tracking and email-based approvals taking 3-5 days on average.

We developed a Fiori app that integrates with SAP CX contract management APIs to provide real-time approval dashboards and automated notifications. The extension pulls contract data via OData services and triggers notifications through the SAP CX notification framework.

Key features implemented:

  • Single-click approval/rejection buttons directly in Fiori launchpad
  • Automated email and in-app notifications to approvers
  • Contract status visualization with color-coded priority indicators
  • API integration for bi-directional sync with SAP CX backend

Results after 3 months: Average approval time dropped from 4.2 days to 1.6 days (62% reduction). Sales team satisfaction increased significantly. Happy to discuss technical implementation details.

Did you face any challenges with OData service performance when multiple users access the dashboard simultaneously? We’re planning something similar but concerned about API rate limits and response times during peak hours.

This is impressive! We’re struggling with similar approval delays. Can you share more about the notification framework integration? Are you using standard SAP CX notification APIs or custom webhooks?

Yes, initial load times were slow with 50+ concurrent users. We implemented client-side caching using Fiori’s model preload capabilities and added server-side filters to reduce payload size. Also configured batch requests to minimize API calls. Now dashboard loads in under 2 seconds even with 100+ active contracts. Rate limits weren’t an issue since we’re using service accounts with higher quotas.

Let me provide comprehensive technical details on all three focus areas.

Fiori Extension Architecture: We built the extension using SAPUI5 framework with custom controllers and views. The app is deployed to SAP BTP and integrated into Fiori launchpad via app descriptor configuration. Mobile responsiveness is native - works seamlessly on tablets and phones through Fiori Client app. We used sap.m library components for responsive design that automatically adapts to screen sizes.

Automated Notifications Implementation: Notification logic sits in SAP CX backend using custom business events. When contract status changes, our custom event handler triggers the notification service:

// Event handler registration
contractService.on('statusChanged', async (req) => {
  await notificationService.send({
    recipients: getApprovers(req.data.contractId),
    template: 'CONTRACT_APPROVAL_REQUIRED'
  });
});

We configured escalation rules - if no action within 24 hours, notifications escalate to manager level. Email templates include direct approval links that authenticate users and route to specific contract in Fiori app.

API Integration Details: Using SAP CX OData V4 services for contract data operations. Authentication via OAuth 2.0 with JWT tokens. Key integration points:

  1. Contract retrieval with $expand for related entities (customer, line items)
  2. Status update API with optimistic locking to prevent conflicts
  3. Attachment handling through binary stream endpoints
  4. Real-time updates via WebSocket connections for live dashboard refresh

For approval hierarchies, we leverage SAP CX’s organizational management APIs to dynamically resolve approver chains. Delegation is handled through SAP CX substitution rules - when an approver sets an out-of-office delegate, notifications automatically route to the substitute.

Performance optimization involved implementing delta queries (only fetch changed contracts since last sync) and using SAP Gateway cache control headers. Backend uses materialized views for frequently accessed approval metrics.

The 60% time reduction came from eliminating email round-trips and providing instant visibility. Approvers receive notifications within seconds, can review full contract context in one screen, and approve with single click. The API integration ensures zero data lag between Fiori and SAP CX backend.

We also implemented audit logging - every approval action is logged with timestamp, user, IP address, and approval comments for compliance tracking. This integrates with SAP CX’s audit trail functionality.

Happy to share more specific code samples or architecture diagrams if helpful for your implementations.