Mapping Custom Fields for SAP Concur Integration

The Veeva to SAP Concur Integration comes pre-configured with commonly used field mappings. However, some customers want to send additional data from Veeva to SAP Concur.  It is possible to customize the Veeva to SAP Concur connector at the Expense Report Header level, by mapping custom fields or changing the default mappings, like the Expense Report Name.

The Report Header contains classification information for the expense report, and serves as the container for the expense entries.

This topic is for the integration of SAP Concur with call reporting or Medical Events. See Events Management Configuration for SAP Concur Integration for Events Management mapping information.

The following fields are available in the SAP Concur API for mapping from Veeva:

Element

Required (must contain value)?

Description

Index

Y

The header's location in the batch. Should start at 1 and increment sequentially. This value is used to identify the record if there is an error.

LoginId

Y

The report owner's SAP Concur login ID.

Name

Y

The expense report name.

Purpose

Depends on configuration

The business purpose of the report.

Comment

Depends on configuration

The report header comment. Maximum length: 2000.

OrgUnit1 through OrgUnit6

Depends on configuration

The custom Organization Unit fields. May be required depending on configuration. Refer to the Processes > Post Expense Report Data section of Expense Report for the steps necessary to gather required field information.

Custom1 through Custom20

Depends on configuration

The custom fields on the Expense Report Header form. May be required depending on configuration. Refer to the Processes >Post Expense Report Data section of Expense Report for the steps necessary to gather required field information.

If any of the custom fields are configured to contain list values, see the SAP Concur documentation for Posting Connected List Items for information on how to correctly submit list item values.

UserDefinedDate

Depends on configuration

The date the user selected for the report. Format: YYYY-MM-DD hh:mm:ss.0

A new mappings section displays on the SAP Concur Admin tab with the default mappings displayed. Customers can add custom mappings for the Report Header.

The SAP Concur fields are based on the available Report Header Batch fields in the SAP Concur API.

The  Index  field is not an available option because it is not customizable (The Index field is the header's location in the batch and is used to identify the record if there is an error; it starts at 1 and increments sequentially).

The available Veeva fields are based on the fields in the user object.

Our default mappings show a pattern for the date fields. The pattern definition comes from the SimpleDateFormat in Java. Customers can leverage these patterns in their own custom fields.

Configuring Mapping Custom Fields for SAP Concur Integration

Prerequisites for Mapping Custom Fields for SAP Concur Integration

  • SAP Concur Integration must be setup in the org
  • Connectivity between Veeva and SAP Concur must be established with valid credential

To map Custom Fields at the Report Header Level:

  1. Create a new Veeva field on the User object.
  2. Scroll  to the User Custom Fields section and click the New button.
  • Select the appropriate data type (example: Text)
  • Enter the Field Label (example: SAP Concur Report Header Name)
  • Enter the field length (example: 255 Field Name should populate automatically
  1. Set the field-level security to ensure users have appropriate access to the new field.
  2. Select the page layouts that should include this field.
  3. Select Save.

  1. Specify a value for the newly created field:  Setup-> Administration Setup: Manage Users->Users->Add or edit users and set user quotas>
  2. Select Edit  next to the user that you would like to update.
  3. Scroll down to locate the newly created field and specify the custom value (example: HCP Meals yyy-MM-dd).
  4. Select Save.

  1. Map the newly created Veeva field to SAP Concur  Name field on the SAP Concur Admin page by clicking the Edit button.

The above steps override the default mapping. When the SAP Concur Sync process creates a new expense report in SAP Concur, it will use the new value for the Name field, as well as substituting the date pattern for the date.

Overriding Default Field Mappings

You can customize the Veeva-SAP Concur connector by overriding default field mappings that are not available on the SAP Concur Admin Tab. For example, you can override the default mapping for SAP Concur’s ExternalId field with your own mapping. The ExternalId mapping will display twice: once for the default (they cannot be removed) and once for the custom mapping.

Expense Entry Level Field Mapping

In addition to the Expense Key, Other Attendee Type, and Payment Type, the connector maps the following fields at expense-entry level. Below are the default field mappings for Calls and Medical Events.

SAP Concur Field

Veeva Field

CrnCode

Organization.DefaultCurrencyIsoCode or User. DefaultCurrencyIsoCode (if multi-currency is enabled)

ExpKey

Concur_Settings_vod__c.Expense_Key_vod__c

TransactionAmount

Expense_Amount_vod__c

PaymentTypeId

Concur_Settings_vod__c.Payment_Type_vod__c

Description

Id, Name, Start_Date_vod__c, End_Date_vod__c

TransactionDate

Start_Date_vod_c

To map custom fields, refer to the table below for Expense Entry level fields available in the SAP Concur API. Additional information can be found in the SAP Concur API documentation at developer.concur.com (Navigate to POST Expense Entry).

Field Name

Required

Description

<CrnCode>

Y, for new entries

The 3-letter ISO 4217 currency code for the expense transaction amount, for example, USD.

ExpKey

Y

The expense type key for the expense. Required for new or updated entries. The expense type key we always use is CASH (per SAP Concur instruction)

<Description>

Depends on config

The description for the expense, also known as business purpose. This information is returned in the <BusinessPurpose> element by the Get Report Details endpoint. Refer to the Processes > Post Expense Report Datasection of Expense Report for the steps necessary to gather required field information.

<TransactionDate>

Y, for new entries

The date the expense was incurred. Required for new entries. 

<TransactionAmount>

Y

The total amount of the expense in the original currency. Required for new or updated entries

<LocationID>

Depends on config

The Location code. May be required if the City field is required. Use the Get Location endpoint to retrieve the valid values for this field. Refer to the Processes > Post Expense Report Data section of Expense Report for the steps necessary to gather required field information.

<OrgUnit1> through <OrgUnit6>

Depends on config

The Expense Entry Form org unit fields. May be required depending on configuration. Refer to the Processes > Post Expense Report Data section of Expense Report for the steps necessary to gather required field information.

<Custom1>through <Custom40>

Depends on config

The Expense Entry Form custom fields. May be required depending on configuration. Refer to the Processes > Post Expense Report Data section of Expense Report for the steps necessary to gather required field information.

<ExchangeRate>

N

The exchange rate between the transaction and posted amounts. This element is typically not provided. If this element is empty for transactions in a currency different than the user's reimbursement currency, Expense will use the company's configured exchange rates to determine the posted amount for the transaction. If the system is not able to determine the exchange rate, the request will return an HTTP 500 error.

<Comment>

Depends on config

The expense entry comment. Max length: 2000. Refer to the Processes > Post Expense Report Data section of Expense Report for the steps necessary to gather required field information.

<VendorDescription>

N, but recommended for sandbox

This element contains the descriptive text for the vendor for the entry. This field is not required to successfully post an entry, however the field is a required field for expense entries in the developer sandbox. If this field is not provided for the sandbox, you will see an exception in the user interface stating that a required field is missing.

<IsPersonal>

N

Whether the expense entry is a personal expense. Personal expenses are not reimbursed in SAP Concur Expense. Format: Y/N

<PaymentTypeID>

N

The unique identifier for the payment type for the expense entry. Use the <PaymentTypeID> value from the Get Expense Group Configuration endpoint. If you do not provide this value, the payment type defaults to Cash. The supported Payment Type Codes are: Cash and Company Paid.  The Pending Card Transaction system payment type is also supported, if the client has configured their company to use it.

Attendee Level Field Mappings

This section allows for custom field mapping from Veeva to SAP Concur at the attendee level. An administrator can configure attendee specific field mappings to post additional information about attendees when submitting Call Reports and Medical Events (where applicable) to SAP Concur.

In order to map to a SAP Concur field, the field must be defined in SAP Concur. Additionally, in order to specify multiple values for a field, such as a picklist, those values must be setup in SAP Concur. Use the drop-down lists in Call/Medical Event Fields Mappings sections in the SAP Concur Admin Tab to see a list of available fields.

Available SAP Concur fields are based on the fields available in the SAP Concur API. Refer to SAP Concur API documentation for more information about the SAP Concur API (navigate to the POST Expense Entry Attendee section). Assistance from SAP Concur may be necessary in order to setup custom fields. Contact SAP Concur for more information.

The following attendee level fields for Call Report come enabled by default and cannot be removed:

SAP Concur Field

Required

Description

Example

Value

Veeva Field

<AttendeeType>

Y

The attendee type code that SAP Concur uses to identify attendees.

BUSGUEST

Expense_Attendee_type_vod__c

<LastName>

Y

The attendee's last name.

Smith

Account_vod__r.LastName

<FirstName>

Y

The attendee's first name.

John

Account_vod__r.FirstName

<Title>

N

The attendee's job title.

 

Account_vod__r.PersonTitle

<ExternalId>

Y

The unique identifier for the attendee, usually provided by the client's external system of record.

001d000000CN3ITAA1

Account_vod__r.Id

<Company>

N

The attendee's parent account, if applicable.

Chilton Memorial Hospital

Entity_Display_Name_vod__c for the associated business account OR Account_vod_r.Primary_Parent_vod__r.Name

<CrnCode>

Y

The 3-letter ISO 4217 currency code for the expense transaction amount.

USD

Organization.DefaultCurrencyIsoCode or User. DefaultCurrencyIsoCode (if multi-currency is enabled.

<SystemOwner>

N

For new attendees: When set to Yes, the attendee owner is set to System. This owner is required for shared attendee lists. When not set to Yes, the attendee owner is set to the report owner.

For existing attendees: When set to Yes, the attendee owner is set to System. When not set to Yes, the attendee owner is compared to the report owner. If the report owner and attendee owner match, the attendee is updated. If the report owner and attendee owner do not match, the attendee is not updated.

 

 

Attendee Level Mappings for Medical Events

SAP Concur Field

Veeva Field

CrnCode

Organization.DefaultCurrencyIsoCode or User. DefaultCurrencyIsoCode (if multi-currency is enabled.

AttendeeType

Expense_Attendee_Type_vod__c

ExternalId

Account_vod_r.Id OR Contact_vod__r.Id OR User_vod__r.Id

PaymentTypeId

Concur_Settings_vod__c.Payment_Type_vod__c

FirstName

Account_vod__r.FirstName OR Contact_vod__r.FirstName OR User_vod__r.FirstName

LastName

Account_vod__r.LastName OR Contact_vod__r.LastName OR User_vod__r.LastName

Title

Account_vod__r.PersonTitle OR Contact_vod__r.PersonTitle OR User_vod__r.PersonTitle

Company

Account_vod__r.Primary_Parent_vod__r.Name

Additional custom fields can be mapped at attendee level for Calls and Medical Events. Below is a list of all Attendee level fields currently available in the SAP Concur API.

Field Name

Required

Description

<AttendeeType>

Y

The attendee type code that SAP Concur uses to identify attendees. 8 alpha characters. Clients can add their own custom attendee type codes. The standard attendee type codes are: BUSGUEST, for business guests and SPOUSE, for the employee's spouse. Use the Get Attendee Type Listfunction of the Attendee List web service to get the full list of available types.

<LastName>

Y

The attendee's last name.

<FirstName>

Depends on config

The attendee's first name.

<Title>

Depends on configuration

The attendee's job title.

<ExternalId>

Y

The unique identifier for the attendee, usually provided by the client's external system of record.

<Company>

Depends on configuration

The attendee's company name.

<Custom1> through <Custom20>

Depends on configuration

The custom fields on the Expense Attendee form. May be required depending on configuration. Refer to the Processes > Post Expense Report Data section of Expense Report for the steps necessary to gather required field information.

<CrnCode>

Y

The 3-letter ISO 4217 currency code for the expense transaction amount. Example: USD.

<SystemOwner>

N

For new attendees: When set to Yes, the attendee owner is set to System. This owner is required for shared attendee lists. When not set to Yes, the attendee owner is set to the report owner.

For existing attendees: When set to Yes, the attendee owner is set to System. When not set to Yes, the attendee owner is compared to the report owner. If the report owner and attendee owner match, the attendee is updated. If the report owner and attendee owner do not match, the attendee is not updated.

UpdateExisting

N

Whether the request should update an attendee with a matching External ID. If disabled, the request will not update a matching attendee. If not provided, or enabled, the request will update a matching attendee.

Other Attendees Field Mappings

Call Other Attendees are mapped differently than Attendees. Other Attendees is an optional section that allows users to capture attendees, who are not Veeva accounts, via free text. Below are default field mapping for Other Attendees.

SAP Concur Field

Required

Description

Example

Value

Veeva Field

<AttendeeType>

Y

The attendee type code that SAP Concur uses to identify attendees.

BUSGUEST

Concur_Settings_vod__c.Other_Attendee_Type_vod__c

<LastName>

Y

The attendee's last name.

Smith

“Other Attendees” Last Name

<FirstName>

Y

The attendee's first name.

John

“Other Attendees” First Name

<Title>

N

The attendee's job title.

NP

“Other Attendees” Designation

<ExternalId>

Y

The unique identifier for the attendee, usually provided by the client's external system of record.

001d000000CN3ITAA1-JohnSmith

Account_vod__r.Id-FirstNameLastName

<Company>

N

The attendee's parent account, if applicable.

Chilton Memorial Hospital

Entity_Display_Name_vod__c for the associated business account OR Account_vod_r.Primary_Parent_vod__r.Name

<CrnCode>

Y

The 3-letter ISO 4217 currency code for the expense transaction amount.

USD

Organization.DefaultCurrencyIsoCode or User. DefaultCurrencyIsoCode (if multi-currency is enabled.

Below are the default values for multiple Veeva messages to configure the system:

NAME

CATEGORY

TEXT

DESCRIPTION

DESIGNATION

CallReport

Designation

Column Header for Text based attendees for Expense Reporting

OTHERATTENDEES_VIEW

CallReport

Other Attendees who Incurred Expense

Section Header for the Text based attendees for Expense Reporting in View mode

OTHERATTENDEES_EDIT

CallReport

Other Attendees

Section Header for the Text based attendees for Expense Reporting in Edit mode