Showing results for 
Search instead for 
Did you mean: 
Routine Member - Level 1

Data Validation



I was wondering how everyone validates their accounts?  For example, we have Account - Department - Program - Project - Other as part of our GL Account code.  We are using Dynamics SL and have turned on Acct-SubAcct validations.  


In Concur, a user can select the Expense Type (Account) then choose Cpst Tracking for each of the other four segments of our Acct-SubAcct string.   Each segment is correct but there is no validation that the combination of the segments is an active/valid account string.  How does everyone ensure that the data entered will eventually pass through to the underlying Financial System without errors or manual intervention?




Darryl Worth
American Society of Hematology
Routine Member - Level 1

We put some validate tables in Concur.  It in no way to do all our validation as we have some complex accounting.  However, these validations ensure that over most entries import without issue.

Routine Member - Level 1


What is the process to add the tables?  Once you have the tables:


1.  How do you link them to validate?

2.  What warnings/messages do the end users receive?

3.  What is your process to add new account combinations?



Darryl Worth
American Society of Hematology
Routine Member - Level 1

We have daily accounting imports.  This includes valid company, departments, etc. with connected list.   We also send value projects/tasks  that we use in Conur.

Additionally we have custom audit rules and validation rules set up.  For example, 

  • Validate that projects are used for certain expense types
  • Validate that the company and department are valid together
  • Audit rule that certain department must use a project.

Error message are flagged that these combinations are not valid. 

We worked with Concur to set these up during implementation.

Email me if you would like to discuss further

SAP Concur Employee
SAP Concur Employee

Hi Daryl,

A couple of weeks ago you asked about the differences between the Standard and Professional versions. Validation tables and Validation rules are one of those differences and are currently only available in Professional. The reasoning is the vast majority of our customers simply do not need them; We have companies with tens of thousands of users that run just fine without validation rules.

What most customers do is what one of the topics further down references: linked lists. This feature enables you to maintain the list of valid cost objects and combinations of those cost objects.

For example if you had two business units (BU) and each of those BUs had a separate list of Cost Centers (CC) the linked list makes sure I can't choose an invalid combination of BU and CC.

It is also possible to maintain the linked list through a fairly straightforward Excel-based import, available to download from within the system.


Grant Chase - Senior Product Learning Specialist - SAP Learning
Routine Member - Level 2

Hey @dworth,

This is a great question, and I'm interested in seeing others' responses, but have you looked into the Linked Lists feature in Concur?

This function would only allow specific codes in secondary / tertiary / etc. tiers based on the preceding value. For instance:

Let's say you have Departments A and B, and Programs 1, 2, 3, and 4. Programs 1 and 2 are only valid for Department A, and Programs 3 and 4 only for Department B. You could create a Linked List that would only populate the Programs field based on the value in the Department field.

So if a user were to choose Department A, they would only be able to select Programs 1 or 2. Same for Department B with Programs 3 and 4.

This could get complex with 5 segments, and if you had a shared code (i.e. Program 5 that would be valid for either Department) you would need to have it entered in twice - one for each Linked List, but I wanted to mention it as a potential solution.

For my company, we looked into this, but we have 8 segments, and I believe the limit is 5 tiers. Some Concur folks on here may have more resources for you, but if you wanted to check it out, it's in the Cost Tracking section of the Settings page, under 2 Linked Lists. There's a 'Show me More' button that gives a detailed explanation about how it functions.

Routine Member - Level 1


Thank you for the reply... I do have a note to check into linked lists.  I will review the help section.  We have two possible outcomes:

1.  I queried our financial system database and extracted all the account codes that were hit last year (237).  My presumption is that we likely (>=85% ) hit the same account codes this year.  


2.  I also queried our financial system and got all the possible valid combinations of account codes (1,476).


So, do I then create linked lists just for those that have been used?  Or do I create the lists for the entire population?  Will this list be available/used when we start the Invoice implementation?


Are there huge maintenance issues going either way?  Can these just be uploaded into Concur? (My apologies if this is in the help section)





Darryl Worth
American Society of Hematology
Routine Member - Level 2

Hi Darryl,

We don't use these Linked Lists, so I'm not sure on some of these questions, but I'll do my best! Maybe some Concur folks can chime in... haha

Creating lists for just codes that have been used vs. all combinations would likely just depend on whether you want your users coding expenses to them. If you want to give them the options to code to any code, then the entire gamut of code combinations might be needed to import. If you have a specific section of codes (i.e. all Account codes in the 1XX range) that are restricted to revenue or something like that, you wouldn't need to import them, as users wouldn't likely be coding expenses to revenue accounts - or maybe they would? Whatever works best for your processes.

I believe (again, not super familiar with it) you would create a list file for each tier, and specific to the preceding value. So here's an example:

Import file 1 (Department)

Import file 2 (Programs for Admin)
1-Program A
2-Program B
3-Program C

Import file 3 (Programs for Finance)
1-Program A
4-Program D
5-Program E

Import file 4 (Programs for IT)
2-Program B
6-Program F
7-Program G

Import file 5 (Projects for Program A)
10-Project A
11-Project B
12-Project C
13-Project D

Import file 6 (Projects for Program B)
14-Project E
15-Project F
16-Project G
17-Project H

And so on, and so on. So each branch would need an import file that is designated as linked to a specific value in the preceding field. Again, there might be a better or easier way to do this, but this is just my understanding of it from my research into it.

As for maintenance, it might be as simple as uploading a new file for each Linked List branch, but I'm not certain. I'd suggest checking out the Get Assistance button the Linked List page for more info. For that amount of account iterations, it may not be too tedious to do this, but if you start seeing more and more unique account strings added, it might get hairy.

Routine Member - Level 3

This same issue came up for me recently and after countless hours spent trying to find ways to ensure accuracy, we ended up freezing those fields. Each situation is unique so it may not be an option but other than expense type, my employees had no idea how to code an expense correctly. With everyone doing their own thing based on their understanding of what it meant, it made it impossible to pull accurate reports. The two biggest ones were department and location. Each employee was assigned their dept and loc and that's what they were changing in an effort to allocate to other departments. We also had project codes but kept those to a minimum. They could still use the allocate function but those we could report on and review easier and it made the review process much easier on the accounting side. 

Basically, we didn't give them the option to change codes in  Concur which allowed it to flow to the accounting system where it could be broken down accurately on that side. 

ค๓๒єг ɭєє - ᴄᴏɴᴄᴜʀ ᴄᴏɴɴᴏɪssᴇᴜʀ
(っ◔◡◔)っ  ☆ Fort Worth, Texas ☆
Occasional Member - Level 1

Hi Daryl,

We also use a linked list based on a Company Code and GL - Account Code, that way users can only select the one's we import.  We created the list and imported our file via the list import using a Delimiter-Separated Value text file.  We have automated this process for whenever a change is made to our G/L database, those changes come through and we send the file to Concur through the list import process.  As for validating all the account codes, we can't really do that, we did random testing with different expense types and validated they hit our financial system correctly.  We do have a custom piece that we have added that when it hits our FI system and if the company code and account code don't match or is blocked, an error comes back and we have to manually update the coding and repost the expense amount.  This happens every once in awhile.


Occasional Member - Level 3


We have a 5-segment GL structure as follows: Entity-GL Account-Cost Center-Department-Reporting Unit. We use a linked list to connect our Entity-CC-Department so our AP team cannot pick an invalid string. Now 3-years post implementation, we are wishing we had included the Account Number (Expense Type in Concur) in the linked list. We have been told recently by Concur that the system field "Expense Type" would have had to be in the first place of thelinkedlist. And, once the linked list is set up, the system field cannot be added into the first place of the list. So, we are stuck with what we have unless we want to rebuild our linked list using all new custom fields. Just something to keep in mind when you are building your linked list. 

To answer your question about invoice implementation - yes. Invoice uses the same linked list as expense.

Best of luck!