SAP Concur Overview

To aid in streamlining the expense reporting process, Veeva CRM is integrated with SAP Concur Management Systems, enabling users to capture Call and Medical Event related expense and attendee information on a Veeva Call Report or Medical Events, and automatically post the expense information to SAP Concur expense reports.

The main purpose of the integration is to eliminate the need for reps to enter attendee information in two different systems. Additionally, automatic posting of attendees improves data accuracy.

The integration posts expenses to most recent un-submitted report in SAP Concur. The standard, out of the box Veeva-SAP Concur integration functionality is to post expense entries to the most recent un-submitted expense report in SAP Concur This is the default behavior and it is not configurable.

Veeva uses the SAP Concur Expense Report Resource: GET to get the list of all unsubmitted expense reports for a particular user. This request returns a list of expense reports, each of which has a ReportDate field. Veeva integration sorts the list by the ReportDate field and selects the one with the latest ReportDate. The expense is posted to this report.

SAP Concur does not stamp the time component of the date/time field into the ReportDate. As a result, if someone had multiple expense reports with the same ReportDate, it would display as follows:




Because there was no time component, the integration would not get a meaningful sort by list. This may seem like the functionality is not working correctly to the person testing the functionality.

To enable the SAP Concur Integration, you will need the following:

  • Customer of SAP Concur Expense Management System
  • SAP Concur Web Services Administrator (WSAdmin) User Id and Password with Expense User permissions

SAP Concur Sync Architecture

While the Call Reports are stored in Salesforce, nearly all the work performed during the SAP Concur Sync happens on Veeva servers. Sync info is only stored on Veeva servers, aside from the SAP Concur expense id and SUCCESS/FAILURE that is stored back on the Call Report.

High-level SAP Concur Sync Process Flow:

  1. Scheduled job runs on SFDC, makes an HTTP request to Veeva servers to initiate the sync
  2. Veeva servers receive the request and begin the sync process
  3. Veeva servers retrieve Call Reports from Salesforce that need to be synced over using the SOAP API
  4. Veeva servers communicate with SAP Concur servers using the SAP Concur API to post expense reports
  5. Results of the SAP Concur API interactions are stored on Veeva servers