New Partnership for Deltek Vision and Deltek Professional Services consulting

I am excited to announce the official launch of Version X Solutions!

Version X Solutions is a new partnership that brings together a combined 30 years of Deltek Vision knowledge and experience under one umbrella.

We offer a wide and practical range of products and services including custom modules, custom reports, and even a cloud hosting service.

We’ve put together the beginnings of an inventory, and will continue to add to it as we come up with new ideas and do more interesting work for clients. If you have an extension we need, we’d love to hear about it!

Of course we still offer hourly consulting for nebulous or “figure it out as we go” projects.

You can read more about us and our current offering here.

What does this mean for existing customers?

Our new partnership will not adversely affect the existing relationships I have built with you over the years.

You will continue to get the same great friendly, responsive and most importantly, knowledgeable consulting services you have come to rely on from me.

Thank you for your continued business and I look forward to working with you in the near future.

From now on, please refer to the Version X Solutions site for information about products and services offered.




Credit card transaction import module finished

I have been remiss on posting to my site/blog. I have been swamped, buried in work.

The credit card import module has been completed and running now for 1 week in a production environment with no bugs yet.

Here are the basic functions of the module..

1. User downloads credit card transaction detail from Chase as a CSV file, then drops file into designated directory. User can name file whatever they want.

2. Module imports csv data, archives file and renames it. All imported data is linked back to that specific file so user can look up individual transactions with ease, all the way back to original csv data. If user imports the same file several times or if there are duplicate transactions the process cleans it up.

3. Module processes imported transactions into employee expense reports, adding transactions to appropriate open expense report or creating a new one if needed. Transactions will be added to either the appropriate report based on transaction date, or in current expense report if the appropriate one has been submitted.

4. Employees open their automagically created expense reports and add project number information as well as account for each detail, adding descriptions if needed.

5. User runs a report which shows any import errors, employee expense entry errors or missed imported transactions.

6. When expense reports have been completed, they are posted using normal Vision procedures.

7. When a payment is made to the credit card company, user locates payment serial number in imported data (all transactions are imported, even chargebacks and payments) and processes that payment using a workflow. The workflow creates journal entry files to allocate the cash effect to all projects based upon which details were paid by that payment, and where the employees assigned them. This shows cash flow on a per project basis when that credit card payment is made.

8. Journal entry file can then be posted through normal Vision procedures.

If you would like more information about this module please contact me.


Ok I’ve made a lot of progress over the past two weeks. This is quite a complex project actually… but it’s about finished.

The final results look basically like this:

1. use SSIS (Sql Server Integration Services) to grab the csv files from designated directory and import them into a raw data table.

2. move any transactions from raw import data to the processing table… exclude any transactions that have already been imported.

3. using some data transformations in the form of user defined functions (UDF), make the data look like expense detail transactions

4. insert the expense detail transactions into the expense reports for the corresponding employees

5. allow employees to edit their expense transaction details in their pre-populated expense report

6. show the entirety of credit card expense transactions in a report… that shows the imported data, next to the matching expense detail records in Vision, allowing employees to accurately fill out details on their expenses, and make sure that everything has been accounted for.

7. for the payment to the credit card company, assign the cash disbursement to the different project, phase and tasks reflected in the expense detail transactions so that projects show the cash out for those expenses.

So I’ve completed everything except step 7, which I will complete over the next day or two.

Some really cool things this does:
– puts the CSV files in an archive folder and assigns a unique, logical name to them so you don’t have to worry about losing raw data history

– allows you to compare imported data from the CSV file to the actual data in expense reports by employee and expense report

– allows you to trace any imported transaction back to the actual CSV file it came from… it shows you the file name on the report

– reconciles the amounts imported vs. the amounts in the employee’s expense report so you can make sure you didn’t miss anything

– shows data that was imported into the processing section, but didn’t actually make it into an employee expense report

In a couple weeks I will provide more details on how it actually works with some screen shots of the results.

In the mean time, here is a snapshot of the entire process looked up wrapped up in an elegant diagram in SSIS. Of course, this doesn’t show any details or code… just the big picture logic of it. It’s interesting all the same.

Have an excellent day!

I’ll be at Deltek Insight in a couple weeks, and will be teaching a break out session:
PS-80 Putting Data in the Right Place

If you happen to be at Insight feel free to come say “hello” and give me some feedback on my blog!


Custom invoice – professional services title

I’ve been doing a lot of custom invoices in Vision 6.1 lately…

If you want your “professional services” title to say something like:

Professional Services for March 2012

You can do the following:

in custom code put in the following function:

public function pgcMonthName(byVal monthNumber as integer) as String

select case monthNumber
Case 1
return “January”
Case 2
return “February”
Case 3
return “March”
Case 4
return “April”
Case 5
return “May”
Case 6
return “June”
Case 7
return “July”
Case 8
return “August”
Case 9
return “September”
Case 10
return “October”
Case 11
return “November”
Case 12
return “December”

Case Else
return “Month Name Error”

end select

end function


Then in the box where your professional services label appears, append this to the end of it… (you have to locate where it comes out yourself though… or call me for help).

+ ” ” + Code.pgcMonthName(Cint(DatePart(“m”,Fields!InvoiceDate.Value))) + ” ” + datepart(“yyyy”,Fields!InvoiceDate.Value)

Then of course, upload the invoice file to the appropriate location, try it out in your invoice template and voila!

I left out a lot of detail on this one b/c the assumption is that you already know how to customize the rdl file for your custom invoice in Deltek Vision 6.x.

If you don’t and you need help, feel free to get in touch with me.

The invoice report file is a very complex report with over 20 sub reports so even experienced developers will have a hard time with it…

Have a great weekend!

Don’t be fooled

I’m sorry for not posting for so long.   I’ve been buried in work.

Today is a short post because I’m getting a bit frustrated with something with regards to Deltek Vision.

Do you remember the term “Desktop Publishing”?

Desktop Publishing became very popular in the 90’s when CEO’s were putting PC’s and Macs with Pagemaker and telling their secretaries to do their graphic design.

This was due to the misconception that given the right tools, almost anyone can do the job.

It seems that there is a similar misconception with custom reporting and Deltek Vision.

No matter what anyone tells you… here is the blunt truth:

1. You have to be a programmer/developer to be able to create good custom reports.  SSRS is a reporting framework and an IDE.  If you don’t know what an IDE is, you really have no business tackling the task.  Just knowing that custom reports are “in the RDL file” isn’t going to get you or any other consultant far at all.

2. Even if someone has the qualifications of a programmer or developer, it does not mean they will be able to develop custom reports against a Deltek Vision database.  It takes at least a good understanding of general accounting principals as well as a deep understanding of how the data works within the database to both create reports from scratch and/or modify existing reports from the standard set.  In fact, despite what anyone may have told you about simply “taking an existing report and modifying it a little bit to add a column here or change a sorting option there”… it is not a simple task at all.

3. SQL – which stands for “structured query language” is a programming language complete with logical structures, variables, objects in the form of views, functions, stored procedures etc… if those technical terms are over someone’s head, it will take more than just a few weeks, a few months or even a few years to become proficient at database architecture, SQL programming, extracting data… or writing custom reports against any database let alone Deltek Vision.

So the next time you want to get some custom reporting done, talk to a real professional.

For all you consulting firms out there who are trying to provide custom reporting services to your customers that have Deltek Vision 6.x installed, find staff members who have the required skill set so you can give your customers good service.