Thursday, August 4, 2011

A Matter of Degrees? Activity Tracking and Dynamics GP

More and more, it seems like the answer to most Dynamics GP questions is "well, it depends."  It might depend on how much money you want to spend on services and/or software, or how much you care about a particular piece of functionality.  And, lately, it seems like I am getting a lot of questions related to tracking changes within Microsoft Dynamics GP.  Sometimes this is due to "damage control", or because a prior system had the capability, and in most cases I completely understand the concern and the request.  And, like I have suggested, the answer is not a simple one.  There are several options available to you, depending on how much time/effort/money you want to spend.

At the very basic level, GP offers a few inherent tracking tools, for example:
  • Many transactions table provide tracking of the user who posted the transaction (not who entered it, but who posted it).  These fields are visible in Smartlist (Microsoft Dynamics GP menu-Smartlist), for Financial-Account Transactions the field is called User Who Posted and for Purchasing-Payables Transactions it is called Posted User ID.  Some records also provide a modified date, although it does not show who (Purchasing-Vendors, for example).
  • With the Human Resources module, tracking is enabled in the form of a "reason for change" on pay and position changes.  This enables reporting of who, what, and why on the changes.  Although it does not track the before/after values (which could be inferred to some degree based on the change)  Depending on your configuration in Microsoft Dynamics GP menu-Tools-Setup-System-HR Preferences, entering a "reason for change" may not be required. 
  • There are controls available for batch approval and posting permissions through posting setup (Microsoft Dynamics GP menu-Tools-Setup-Posting-Posting) and security setup (Microsoft Dynamics GP menu-Tools-Setup-System-User Security) to control who can post transactions.  This is less tracking, but does help with the "damage control" requirement as security can also be used to limit access to master records, utilities, etc.
These are often some of the first options I look at, but GP also offers a couple additional options depending on your needs. One is included with GP, the other is an additional purchase:
  • Activity Tracking- Tracks a number of tasks in GP, with basic information related to who, what and when.  This is included in core Dynamics GP.
  • Audit Trails- This is an additional module that tracks the who, what, and when in detail including the before and after values of the field.  Audit Trails actually creates a separate database to track the audit information, and is configured to track changes based on your specific needs.  For more information, refer to this Microsoft Dynamics site on compliance, which includes a link to a fact sheet on the Audit Trails and Electronic Signatures modules.
We are going to take a look at the capability provided by the Activity Tracking feature included in core Dynamics GP.  First, let's look at the setup:


Activity Tracking Setup window
Microsoft Dynamics GP-Tools-Setup-System-Activity Tracking

Use this window to configure Activity Tracking, but be careful to only activate those items that you actually think will be useful (as this can add ALOT of records to your database very quickly).  There are five different types of activities you can track:
  • Login/Logout Tracking- Tracks unsuccessful and successful attempts to log in to Dynamics GP
  • Access Tracking- Tracks unsuccessful and successful attemps to access a file, window, report, or the Modifer and Report Writer tools
  • File Tracking- Tracks additions, deletions, and modifications to Setup, Master, and Transaction files
  • Process Tracking- Tracks use of File Maintenance, Utililties, and Routines
  • Posting Tracking- Tracks posting by window/transaction origin
Select the Activity Type you wish to track, and select the User and Company to track.  Then mark the specific activities you want to include in the tracking, taking care only to select those items that you feel will be useful as noted above.  Repeat for additional activities, users, and companies as needed. Click OK when complete.

The results of the activity tracking can be viewed easily:

Activity Tracking Inquiry window
Inquiry-System-Activity Tracking

Note that the activities can be filtered by company, user, activity type, and activity.  The information available includes the company, user ID, date, time, and description of the change.  The description includes the record that was affected, but does not include any details of the specific change (this is the major difference between activity tracking and the Audit Trails module-- the level of detail about the change available).  You can also report on this information through Reports-System-General-Activity Tracking Detail.

If you choose to use activity tracking, make sure you set up a recurring task for yourself to remind you to remove the detail on a regular basis.  Keeping the activity detail in your database indefinitely can increase your database size quickly depending on the types and number of activites being tracked.  To remove activity detail:
Remove Activity Tracking Detail window
Microsoft Dynamics GP menu-Tools-Utilities-System-Activity Detail

Use this window to remove the activity detail based on parameters you specify, including activity type, activity, and ranges by date, user, and company. Generally, you would run this process after a full backup of your databases.  Select and insert the necessary ranges (don't forget to mark the activities to remove, and to mark the "Remove Records" and "Print Report" checkboxes), and then click Process to remove the records.

Although activity tracking may not necessarily meet all tracking and audit needs, it can be a useful tool with minimal investment of time and/or money to see results immediately.

Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.

Tuesday, August 2, 2011

Programmatically Checking Company Database eConnect Version Numbers

Back in November 2008, I wrote a post about checking eConnect version numbers programmatically.

At that time, I had found that the eConnect Release Info application simply called the stored procedure DYNAMICS..taeConnectVersionInfoDYNAMICS.  That stored procedure returned a list of databases and the eConnect version for each database.

The problem with that utility is that if a database is offline or not accessible for some reason, the Release Info app will display an error and will not return any results.  If you have a client with dozens or hundreds of company databases, and has one or more database offline, this error can be quite annoying.

While troubleshooting a new eConnect 2010 issue, I had to do some extensive eConnect version sleuthing, and finally discovered how the Release Info app gets version numbers from the database.

The eConnect Release Info application calls the taeConnectVersionInfoDYNAMICS procedure.  That stored procedure gets a list of all INTERID values from the Dynamics SY01500 table--basically a list of all of the company databases.

For each company database, it then queries the taeConnectVersionInfo function, like:

SELECT dbo.taeConnectVersionInfo()

This returns the eConnect version for the database.

So, the obvious question is:  How does this function get the eConnect version number for the database?

That's easy--it's hard coded!

The function simply returns a hard coded version number string, such as 11.0.1.0.  So there is no table or object or magic query that is being run to extract the version number from the depths of the company database.  It is simply the taeConnectVersionInfo function that is updated with each eConnect release.

So, if you are looking for a programmatic way to check the eConnect version number for individual databases, you can just select the taeConnectVersionInfo function for each database.

Pretty simple.  Wish they would have just documented this somewhere.

Although that will provide you with the database's eConnect version, please note that with eConnect 2010, there are different versions of the eConnect DLLs and eConnect Service with each service pack and hotfix.  So for instance, eConnect 2010 SP2 has DLLs with version 11.0.1761.0, but if you install the eConnect June 2011 Hotfix (KB2561289), the DLL versions will change to 11.0.1812.0.

So it still probably makes sense to verify the eConnect DLL versions as well as the DB versions.


Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified Professional in Los Angeles.  He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.

http://www.precipioservices.com

Wednesday, July 27, 2011

Consultant Tools Series: Macbook Air -- with Windows!

For the last 4 years, I've been using a Dell Latitude D620 laptop.  Back in 2007, it was a pretty respectable laptop, with a then fancy Core 2 Duo.

I had the internal 3G wireless card, 2GB of RAM, Bluetooth, and an 80GB hard drive.  Plenty adequate for running Windows XP and doing all of my work.

After a few years, it was time for an upgrade, so I bumped it up to 4GB of RAM and installed a fast solid state hard drive.  That made it usable with Windows 7, but the battery life was starting to fade.  So, I bought two extra batteries that used the CD/DVD slot, which gave me plenty of battery life.

After four years of dutiful use, the D620 was getting tired.  The three batteries were now providing less than 3 hours of runtime, and the laptop, the extra batteries, and the power supply totaled over 7 pounds!  While it doesn't sound like much, 7 pounds in a laptop bag is pretty heavy and quite bulky.

Well, last week Apple released a new version of their Macbook Air.  While I previously never imagined buying any type of Mac, the 2.9 pound 13" Air looked perfect for my needs.  Fast Intel i5 processor, solid state hard drive, small form factor, and a typically compact Apple power supply.  And did I mention 2.9 pounds?

The slim wedge virtually swims in my old laptop bag, and my bag is now 4 pounds lighter, which is a huge difference in weight hanging on my shoulder.

When I received the Air, naturally the first thing I did was install Windows 7.  The new Air has full support for installing Windows via a USB drive.  Just copy the Windows 7 ISO file to the hard drive, plug in a large USB drive, click a few buttons in the OS X "BootCamp" utility, and in a few minutes, you'll be installing Windows 7.

There Air has full device and driver support in Windows 7, so the installation completed flawlessly.

Although I'm thrilled by the massive weight savings and the great form factor of the Air, there are a few significant caveats to transitioning to a MacBook running Windows.

First, the touch pad on the Air doesn't have physical buttons.  If you press anywhere on the surface of the touch pad, the pad will click, so the entire pad serves as a big button.  Also, the touch pad supports gestures, so you can use two, three, or even four fingers to perform certain actions, not all of which are supported in Windows.

There are a few downsides to this in Windows.  First, I'm so used to having two physical buttons below my laptop touch pad that it requires significant retraining for me to use the new Mac touch pad properly.  If I try and click with my thumb while my finger is on the touch pad, it often detects that as a two-finger click, which is a right-mouse click in Windows.  In theory, the touch pad should be able to detect a thumb click vs. a two finger click, but I'm still a bit clumsy with it.  And strangely, the touch pad surface is massive compared to other laptops that I've used--I'm not entirely sure why they did that.  The problem with this is that other fingers or part of my hand will touch the edges, causing it to think I'm using 2 or 3 or more fingers on the surface, or causing the mouse pointer to jump around.

Second, and more critical, is the keyboard.  Although I very much like the feel of the Air keyboard, and the keys are incredibly quiet, it is after all a Mac keyboard and not a Windows keyboard.  This is one thing I didn't consider.

I am a heavy keyboard user.  If there is a keyboard shortcut, I use it.  ALT+E+S+V in Excel, ALT+F+E+P in Word, Page Up/Down, Home, End, CTRL+Home, CTRL+End, CTRL+Shift+End, you name it.  If there is a shortcut I can remember, I'll try and use it since it's so much faster than using the mouse to navigate menus or position a cursor.

Well, let's just say that the Mac keyboard feels a bit 'disadvantaged'.  First, there are no page up, page down, home, or end keys.  Just browsing web pages drives me nuts without those.  And jumping to the beginning of a field, or the top or bottom of a sentence or document, or highlighting lines--all of those things require funky key combinations on the Air.  Page Up is Fn+Up Arrow.  Page Down is Fn+Down Arrow. Home and End are Fn+Left Arrow and Fn+Right Arrow, so those are all two keys vs. one on a typical Windows laptop.

And of course there is the "Command" key.  Fortunately this one is easy to relate to, since it equates to the Windows key on a PC.  But unfortunately it is next to the space bar, which is where the Alt key is located on my Dell, making it difficult to adjust--I'm constantly hitting Command+F or Command+S instead of Alt+F and Alt+S.

Although these are annoying at first, it's only been a few days, so I'm still adjusting, and am assuming I can eventually undo the 8+ years of Dell Latitude Keyboard Indoctrination that I've gone through.

But I think it will be worth it.  The feather light weight, the instant-on feature, the 4 hours of battery life, and the gorgeous display should more than make up for the touch pad and keyboard adjustments I'll have to make.

And before anyone posts comments about how there is an equivalent or better Dell or Thinkpad or some other brand of Windows notebook, I know that there are other options out there, but after shopping around, I was hard pressed to find a standard 13-14" notebook that had the same properties of performance, capacity, weight, and battery life as the Air.  It's a pretty amazing device.  With Microsoft Windows, of course.


Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified Professional in Los Angeles.  He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.

http://www.precipioservices.com

Friday, July 22, 2011

Reconcile to GL Oddity

I have to admit that I sometimes cringe when I get a call about the Reconcile to GL feature in Dynamics GP (Microsoft Dynamics GP-Tools-Routines-Financial-Reconcile to GL).  I know it is simply because I still haven't learned all the quirks of an otherwise very useful tool. 

For those of you not familiar with it, the Reconcile to GL tool creates assists you with reconciling the payables or receivables subledger by creating a spreadsheet of subledger transactions and the matching (or potentially or unmatched) general ledger transactions.  It replaces the "old" method of exporting the detail from SmartList for payables/receivables and for the general ledger, and then using VLOOKUP in Excel to match up the transactions (oh, my, the fun we have had). 

Reconcile to GL window
Microsoft Dynamics GP-Tools-Routines-Financial-Reconcile to GL

Simply select the module (Receivables Management and Payables Management are the currently available options), enter the date range to examine, and the AP account(s).  Then click Process to generate the spreadsheet. 

The spreadsheet details the transactions that match between GL and Payables Management, those that potentially match, and those that do not match (which could be likely causes of variances between GL and Payables Management).  It then gives you the total of the transactions per GL and per Payables Management.

A funny thing happens, though, when you post a payables transactions with a "check on the fly" (which is a check recorded and printed directly from the Payables Transaction Entry window), and then void both the payment and invoice.  In my experience, this occurs when you have marked the option for Separate Payment Distributions in Company Setup (Tools-Setup-Company-Company-Options button).

Payables Transaction Entry
Transactions-Purchasing-Transaction Entry

First, record the payables transaction and "check on the fly" using the Payables Transaction Entry window.  And then post the transaction, ensuring that the transaction is posted in both Payables Management and the GL.  Then generate the Reconcile to GL spreadsheet:

Reconcile to GL Spreadsheet (after posting of "check on the fly")
Microsoft Dynamics GP-Tools-Routines-Financial-Reconcile to GL


Note that both the invoice and the payment are reflected on the spreadsheet properly, to cancel each other out. But, let's say I then need to void the payment (Transactions-Purchasing-Void Historical) and then void the invoice (Transactions-Purchasing-Void Open).  Then re-generate the Reconcile to GL spreadsheet:

Reconcile to GL Spreadsheet (after voiding of invoice and check from "check on the fly")
Microsoft Dynamics GP-Tools-Routines-Financial-Reconcile to GL


Notice that both of the voids show up in the "Matched Transactions" section, but that the payment no longer shows alongside the original invoice.  So the original invoice has been moved up to "Potentially Matched".  The issue is then that the toal of the payables activity is off since the payment is no longer listed, there is now a net increase of $250 on the total of payables activity.  This is incorrect, and does not match what is actually in GP.

I have walked through this issue with Microsoft, and they are currently researching to determine if it is a quality report.  So please let me know if you have run in to it or not.  Since this tool is used to help find issues when Payables Management and the General Ledger do not match, these little issues can take up valuable time and lead users down the wrong path as to the cause of their discrepancy.

Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.

Zero Dollar Checks and Mekorma MICR

I recently had an interesting experience with zero dollar checks and Mekorma MICR.  But, let's start with a wee bit of background.  Dynamics GP generates zero dollar "checks" when an invoice is fully paid by a credit memo, manual payment, or other type of open credit.  This can occur in advance of a check run, or as the result of choosing to "automatically apply existing unapplied" documents during a check run (Transactions-Purchasing-Select Checks).

These zero dollar checks appear on the edit list after a check batch has been built, and serve as "placeholders" so a remittance can be printed as part of the check run as a record that the invoice was paid off using these credits.

So, consider the following scenario:
  1. Invoice entered and posted for $100 for Vendor ABC
  2. Manual payment entered and posted for $100, and applied to Invoice for Vendor ABC
  3. Transactions-Purchasing-Select Checks used to build check batch
  4. Regular checks picked up to be paid, as well as a zero dollar check for Vendor ABC
It is usually at this point in the process that you might panic, thinking, why is there a zero dollar check?  Keep in mind, it is merely a placeholder.  So if you continued with the process and chose to go to Transactions-Purchasing-Print Checks, this is where it gets interesting....

If you are using standard Dynamics GP, here is what happens:
  1. Transactions-Purchasing-Print Checks
  2. Only regular checks are printed, zero dollar check is ignored
  3. Post Payables Checks window appears
  4. Choose Post Checks, click Process
  5. Process Payables Remittance window appears so you can print the remittance for the zero dollar checks
  6. Choose Print Remittance Form, click Process
  7. Print the remittance
  8. Process Payables Remittance window reappears
  9. Choose Post, click Process
  10. Posting journals print
Pretty easy, right?  But guess what?  If you are using Mekorma MICR, the zero dollar check actually PRINTS with the regular checks.  Now the good news is, it is assigned a "REMIT" check number which means it will not post to bank reconciliation.  But it does confuse some folks when they see it print with the regular checks since it does not work that way with standard Microsoft Dynamics GP.

I just submitted a blog post to our new BKD GP Team Blog, http://dynamicsgpinsights.com/, with more detail on zero dollar checks and Dynamics GP-- so watch for it!

Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.

Sunday, July 10, 2011

Management Reporter Report Distribution Lessons Learned

I have recently been working with Management Reporter a lot, particularly with regards to report distribution and I have picked up a few tips I thought I would share that may save you some time and energy:

Management Reporter-Report Designer: Security Page


Management Reporter-Report Viewer: Right-Click on Folder
  • Wherever possible, use Security Groups for folder security in the Report Viewer.  Groups can be set up by clicking on the Security page in Management Reporter.  Then when you create a folder in the Reports Library, you can grant the group access to the folder (right click on the folder and choose Report Library Permissions).  Then when a user is added to the security group, they will automatically have access to the folders.
  • Folders will appear even if a user doesn't have access to them in the Reports Library. But the reports within them will not. Same is true about tree level security, the branches of the tree will show in the Report Viewer. If the user does not have access, the branch will be greyed out and not available for selection.
  • Need to change the folder name? Well, bummer, if you already have reports mapped to output to the folder on the Output and Distribution tab of the report definition. Changing the folder name will not change the output path on reports, so you have to go back and remap the output path for affected reports if you want them to publish correctly.
    Management Reporter-Report Designer: Report Definition Output and Distribution tab
  • If you plan on putting reports in to groups (In Management Reporter-Report Designer, choose File-Report Groups) to generate them (similar to daisy-chaining reports together in FRx), make sure you unmark the "View Report When Generated" option on the Report Definition, to prevent all of the reports from opening when you process the group.
Any other lessons learned out there?  What I would love to see in the next release-- ability to pick more than one output path/method per report.  This comes up a lot when needing to publish reports for multiple user groups, or to print and generate to the report library simultaneously.

Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.



Troubleshooting Tips and Tricks

Sometimes I am surprised by how the most basic troubleshooting steps can lead to resolving an issue. When I am mired in an issue, these are five of the steps I come back to time and time again. 
  1. Does this occur for all users?  This can help to identify if it is a workstation issue or user issue.  For this reason, it is always important to test for an issue as both 'sa' and as a normal user.
  2. Does this occur for all companies?  This can help identify if it is a data-related issue, or a system-wide issue.
  3. Is it due to a third party product or customization?  Disable it using Microsoft Dynamics GP menu-Tools-Customize-Customization Status (it will be disabled only for the current user, and only until they relaunch GP), and then attempt to recreate the issue.
  4. When did the issue start?  Identifying other activities around the same time (e.g., updates, system changes, etc) can help to pinpoint the cause or a contributing factor.
  5. Witness the issue, follow it step by step.  This can help to identify an issue that is the result of miscommunication or misunderstanding regarding system functionality.  This step is often skipped, and yet it is critical to avoiding unnecessary back and forth to attempt to resolve the issue.
This list is definitely incomplete, but I thought I would share these five key steps.  Please post your own as well :)

Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.