Wednesday, February 20, 2013

Finding Duplicate GL Entries

I faced an interesting dilemma this past week, in trying to locate duplicate GL entries integrated from another system.  Obviously, GP doesn't know they are duplicates and assigned each one a unique journal entry number.  So we had to find a way to locate the duplicates, and then only remove the duplicates (not the originating entries that needed to remain).

So what to do...

--First, I started with identifying the GL20000 that would be needed to identify the duplicates
SELECT OPENYEAR, JRNENTRY, SOURCDOC, REFRENCE, DSCRIPTN, TRXDATE,ACTINDX, ORGNTSRC, CRDTAMNT,DEBITAMT, DEX_ROW_ID as DEXROW1,


--Then I used, for the first time, ROW_NUMBER and PARTITION BY to essentially assign an index number to each duplicate.  So the first record would be 1, the first duplicate would be 2, the second duplicate would be 3 for each set of identical records.  This would help me isolate all of the "1"s as the records that should remain (the original entries) and anything greater than 1 as a duplicate to remove.  The PARTITION BY function let me reset the numbering for each set of duplicate records.
ROW_NUMBER() OVER (PARTITION BY SOURCDOC, REFRENCE, DSCRIPTN, TRXDATE,ACTINDX, ORGNTSRC, CRDTAMNT,DEBITAMT ORDER BY JRNENTRY)

--Fortunately, the integration passed information in to the originating source field that we could use to isolate entries from the integration only.

FROM GL20000 GL1 WHERE ORGNTSRC LIKE 'TheIntegrationHadAUniqueValueHere%'

--Next, I joined back to the GL20000 and grouped it to find only those record with actual duplicates (COUNT(*)>1). So anything that wasn't duplicated, wasn't returned.
AND ((GL1.REFRENCE IN (SELECT GL1.REFRENCE FROM GL20000 AS TMP GROUP BY REFRENCE, DSCRIPTN,TRXDATE,ACTINDX,ORGNTSRC,CRDTAMNT,DEBITAMT HAVING COUNT (*)>1 AND REFRENCE=GL1.REFRENCE AND DSCRIPTN=GL1.DSCRIPTN AND TRXDATE=GL1.TRXDATE AND ACTINDX=GL1.ACTINDX AND ORGNTSRC=GL1.ORGNTSRC AND CRDTAMNT=GL1.CRDTAMNT AND DEBITAMT=GL1.DEBITAMT)))
So I ended up my result set of duplicated records, I was then able to eliminate the records with a row number of 1 as the original entries.  The only thing I missed, and had to identify manually was a situation where there were duplicate debits or credits within a single journal entry.  So, for example, two debits in one journal entry both for $110.  I had a handful of those, and they caused my identified duplicate entries to not balance.  Once I identified those (using a calculation in Excel to net debits and credits for each line after sorting the duplicates together), then my identified duplicates balanced debits to credits.

I know that there may be a more elegant way to accomplish this, but this worked and reconciled to the expected duplicates so I thought I would share in case someone else comes up against this.

Monday, February 18, 2013

Skype very slow on Windows 7

I've been using Skype regularly for 3-4 years now to have almost daily calls with a colleague in Australia.  While it has generally worked well, one problem I've had in the last year is that the Skype application has seemed extremely slow and unresponsive.

For instance, when I place a call on Skype, it may take 10 seconds for it to start to ring.  And then once the person picks up the call, Skype continues to ring for 10 more seconds, even though I'm talking to someone already.  Ending a call is similar--I click to hang up the call, but it takes 10 seconds to actually hang up.  And overall, the Skype application was often extremely unresponsive, taking several seconds to show any buttons or to move its windows.

I finally started Googling this issue over the weekend, and found this YouTube video offering a potential fix

The video recommends deleting all of the Skype files in the %AppData% directory.

  1. Click on Start -> Run
  2. Type %appdata% and press Enter
  3. When Windows Explorer opens, locate the Skype directory
  4. Delete the entire Skype directory

I followed the instructions, relaunched Skype, logged in, and based on the one call I've made so far, it seems to be working much better.  No lags, no odd behaviors, and starting and stopping the call was smooth and snappy.

I was very much dreading the recent announcement that MS was transitioning MS Live Messenger to Skype, but if this quick fix worked, I won't mind using Skype any more.

UPDATE:  I used Skype several times today and it worked perfectly--incredibly responsive.  Such an improvement!


Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified IT 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

Monday, February 11, 2013

Cool Tool for Fixing 1099s

Sometimes when you search for a fix, just hoping that there is a simple way to fix an issue, you find it.  I came across this today, not realizing it was part of the Professional Services Toolkit.  Super cool in my book, it fixes transactions that were recorded before a vendor was marked as 1099.

http://support.microsoft.com/kb/857377

Check it out :)  Happy Monday!

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, February 5, 2013

Generating a 941 for 2012, Really?

Do you really have to reapply the 2012 tax tables in order to run a 941 for 2012 in Dynamics GP...say it ain't so.  Anyone out there with clever ideas, please share!

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.


Correcting FICA Underwithholding

Why does the government mess with us so?  Especially in the month of January, where we are already running around trying to get 1099s and W2s out the door.  As it goes, anytime there is a change in either FICA rate, inevitably somebody doesn't apply the tax update before they run payrolls in the new year.  And then FICA is incorrect for some/all/a few employees. 

Earlier this week, I received the first of a series of calls from clients who had no applied the update before running payrolls in 2013.  So FICA/S was withheld at 4.2% instead of the new (old) rate of 6.2%.  Looking for an elegant solution (involving the least amount of work), I went looking for other opinions and found the following community conversation...

http://community.dynamics.com/product/gp/f/32/p/97832/185280.aspx

Quite a few different approaches are tossed out there by a variety of well-qualified contributors :)  But, I have found the following process (gleaned from the discussion) to work best for most situations.

  1. Determine the amount of social security to be added to each employee
  2. Transactions>>Payroll>>Manual Checks
    1. Enter a Beginning Balance type transaction for each employee, taking care to make sure all dates are in the appropriate month
    2. Click Transactions
    3. Enter a FICA Social Security transaction type (for employee underwithholding)
    4. Enter the additional tax amount to be added to their FICA social security
    5. Leave taxable wages as zero, since the wages were already counted towards FICA wages
  3. If you wanted to, you could then record a second transaction for each employee on the same manual check
    1. Federal Tax transaction type
    2. Enter a NEGATIVE tax amount equal to the FICA/S adjustment entered above
    3. Leave taxable wages was zero, since the wages were already counted towards Federal wages
    4. This would effectively move a portion of their Fed withholding to FICA/S so there would not be an additional cost to the employer and/or no need to collect additional from the employee
Now, in some scenarios, you might be concerned that a) the person didn't have enough in federal tax to cover the underwithheld amount and b) they may terminate before you can recover it.  In that case, you could set up a transaction-required deduction (NOT tax sheltered).  You can use that to recover the underwithheld FICA/S and then use the same process as above to move the amount to FICA/S from the Deduction (rather than from Federal Tax).

Feel free to share your questions and comments :)

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.

Monday, February 4, 2013

Dynamics GP security conundrum

Today I was helping a customer install Post Master Enterprise for Dynamics GP in a development environment for testing.  It should have been a simple process, taking maybe 15 minutes--but after an hour, we had to stop and reassess.

The Post Master Enterprise installation requires the 'sa' SQL Server login, or an equivalent login, which allows it to create SQL tables and stored procedures.   The IT admin at the customer site wasn't sure if he had the correct sa password, so we attempted to login to Dynamics GP first.  He entered the sa username, then tried to paste in the long password.  But the password would not paste.

If you've ever had a problem pasting a value into a GP field, you probably know that a very common reason is that the value you are pasting is longer than the GP field length.  So when the password didn't paste, I was puzzled.  I had never checked the max password length for GP--turns out it is 15 characters. 

When the IT admin counted the characters in the sa password he had documented, it was longer than 15 characters.  Hmmmm.  That is pretty strange.

Since we wanted to login to GP as 'sa' to setup a new GP user, the IT admin reset the sa password on the development SQL Server, making sure to keep it 15 characters.  With that done, he launched GP and logged in as 'sa'.

GP eventually loaded, but the annoying "you do not have permission to open this window" message appeared several times.  We then sat and waited for the menus to display.  The Reports menu appeared, but nothing else.  When he clicked on the Dynamics menu, there were very few options.  We were unable to access any of the Setup menus when logged in as 'sa'.

Not good.

So then I asked if he knew the DYNSA password.  Unfortunately, the dev server had been setup by a former employee, so he didn't know the DYNSA password.  And unfortunately, the DYNSA password cannot be changed from SQL Server Management Studio--it must be changed within GP.

So...the sa login doesn't have any permissions in GP.  And we can't login as DYNSA.  Quite a conundrum.  Without sa permissions in GP, without the DYNSA password, and without knowing any other GP passwords for the dev environment, there wasn't much we go do to get into GP, let alone modify user access for testing with Post Master.

That's when I stopped the process and scheduled a second call--things just weren't going well.

After weighing some options, I figure that the easiest initial approach will be to try and modify the GP security records in the DYNAMICS database to try and restore Power User access to the 'sa' login.

I'll start by checking the security roles assigned to the sa login:

SELECT * FROM DYNAMICS..SY10500 WHERE USERID = 'sa'

And out of curiosity, I'll want to see if any users are assigned to Power User:

SELECT * FROM DYNAMICS..SY10500 WHERE SECURITYROLEID = 'POWERUSER'

And then I'll try and insert a record into SY10500 to try and assign the Power User role to the 'sa' login.

INSERT INTO DYNAMICS..SY10500 (USERID, CMPANYID, SECURITYROLEID) VALUES ('sa', -1, 'POWERUSER')

This, in theory, should allow us to login to the Fabrikam company with 'sa' as a Power User.

From there, I'll have to see what other surprises await us.

The client could also restore the DYNAMICS database to the dev environment--and we may just do that to refresh the environment while solving the security issue.  But I haven't yet seen their production environment, so I don't know if there are any oddities there as well.


Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified IT 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