Monday, January 28, 2013
Processing 2012 Payroll year end after loading 2013 payroll tax tables
Here was the scenario:
The company had downloaded the 2013 payroll tax tables and processed 2013 payroll, but neither closed 2012 payroll nor installed the year end update for 2012.
Now they need to close 2012 payroll and then return to processing 2013 payroll. Here’s what I would do to get back on track.
1. Download and install the January hotfix of Dynamics GP 2010, this includes the year end tax update (as well as a hot fix). The current build is 11.00.2164. It was released 01/24/2013. Be sure you have a backup, this will require a table update. Backup your forms and reports dictionaries and create package files for all of your modifications.
2. Open the Payroll Tax Tables window and change your FICAS tax code to a wage limit of $110,100 and a rate of 4.2%
a. To open the Payroll Tax Tables window follow the instructions below.
b. Navigate to: Administration | Setup | System | Payroll Tax.
c. Select the FICAS tax code, select the Apply Tax Table item and click the Filing Status button.
d. Select the NA filing status and click the Tables button
e. Edit the table rates and change the But Not Over column to $110,100 and the Tax Rate column to 4.2% and then click the OK button.
3. Click Save on the Payroll Tax Filing Status window.
4. Click Save on the Payroll Tax Setup window.
5. Now, your going to remove the extra Medicare Tax for the high income earners.
a. In the Payroll Tax Setup window select the Tax Code FICAM, Apply Tax Table, and then click the Filing Status button.
b. Select the NA filing status and click the Tables button
c. To remove the second row in the table, place your cursor in the second row, choose Edit from the menu bar and then Delete Row.
d. Now you need to adjust the first row's maximum wage by entering $999,999,999.99 in the But Not Over column. Click OK to save and close the window.
6. Click Save on the Payroll Tax Filing Status window.
7. Click Save on the Payroll Tax Setup window.
8. Change the user date to 12/31/2012 (anything in 2012 will do)
9. Create the year end wage file (close payroll).
10. Make sure you’re happy with the W-2 amounts.
11. Load the 2013 tax tables using the Payroll Tax Updates wizard
12. Check to make sure the FICAS amounts reset to a wage limit of $113,700 and a rate of 6.2%
13. Check to make sure the FICAM table includes the 2.35% extra for wages over $200,000.00.
14. Don't forget to set the User Date back to the right date to process 2013 payroll!
That should get you fixed back up.
Until next post!
Leslie
Friday, January 11, 2013
Round 2 2013 Payroll Tax Table update Released!
It’s time to update your payroll tax tables.
The Round 2 2013 tax tables have just been released! The update is available for versions 10 (last one for this version), GP 2010 and GP 2013.
Enjoy!
Leslie
Move Expired SOP Quotes to History
Expired quote documents do not move to the SOP history table on their own. If you want to move them to the SOP history table they need a little help. For my clients that want to keep their quotes, but do not want them to stay in the Work table, I create a stored procedure that runs periodically to clean up SOP Work file.
I use this SQL statement:
--copy line items from expired quotes to history
INSERT INTO SOP30300
(SOPTYPE, SOPNUMBE, LNITMSEQ, CMPNTSEQ, ITEMNMBR, ITEMDESC, NONINVEN, DROPSHIP, UOFM, LOCNCODE, UNITCOST, ORUNTCST, UNITPRCE, ORUNTPRC, XTNDPRCE, OXTNDPRC, REMPRICE, OREPRICE, EXTDCOST, OREXTCST, MRKDNAMT, ORMRKDAM, MRKDNPCT, MRKDNTYP, INVINDX, CSLSINDX, SLSINDX, MKDNINDX, RTNSINDX, INUSINDX, INSRINDX, DMGDINDX, ITMTSHID, IVITMTXB, BKTSLSAM, ORBKTSLS, TAXAMNT, ORTAXAMT, TXBTXAMT, OTAXTAMT, BSIVCTTL, TRDISAMT, ORTDISAM, DISCSALE, ORDAVSLS, QUANTITY, ATYALLOC, QTYINSVC, QTYINUSE, QTYDMGED, QTYRTRND, QTYONHND, QTYCANCE, QTYCANOT, QTYORDER, QTYPRBAC, QTYPRBOO, QTYPRINV, QTYPRORD, QTYPRVRECVD, QTYRECVD, QTYREMAI, QTYREMBO, QTYTBAOR, QTYTOINV, QTYTORDR, QTYFULFI, QTYSLCTD, QTYBSUOM, EXTQTYAL, EXTQTYSEL, ReqShipDate, FUFILDAT, ACTLSHIP, SHIPMTHD, SALSTERR, SLPRSNID, PRCLEVEL, COMMNTID, BRKFLD1, BRKFLD2, BRKFLD3, CURRNIDX, TRXSORCE, SOPLNERR, ORGSEQNM, ITEMCODE, PURCHSTAT, DECPLQTY, DECPLCUR, ODECPLCU, EXCEPTIONALDEMAND, TAXSCHID, TXSCHSRC, PRSTADCD, ShipToName, CNTCPRSN, ADDRESS1, ADDRESS2, ADDRESS3, CITY, STATE, ZIPCODE, CCode, COUNTRY, PHONE1, PHONE2, PHONE3, FAXNUMBR, Flags, CONTNBR, CONTLNSEQNBR, CONTSTARTDTE, CONTENDDTE, CONTITEMNBR, CONTSERIALNBR, ISLINEINTRA)
SELECT
SOP10200.SOPTYPE, SOP10200.SOPNUMBE, SOP10200.LNITMSEQ, SOP10200.CMPNTSEQ, SOP10200.ITEMNMBR, SOP10200.ITEMDESC, SOP10200.NONINVEN, SOP10200.DROPSHIP, SOP10200.UOFM, SOP10200.LOCNCODE, SOP10200.UNITCOST, SOP10200.ORUNTCST, SOP10200.UNITPRCE, SOP10200.ORUNTPRC, SOP10200.XTNDPRCE, SOP10200.OXTNDPRC, SOP10200.REMPRICE, SOP10200.OREPRICE, SOP10200.EXTDCOST, SOP10200.OREXTCST, SOP10200.MRKDNAMT, SOP10200.ORMRKDAM, SOP10200.MRKDNPCT, SOP10200.MRKDNTYP, SOP10200.INVINDX, SOP10200.CSLSINDX, SOP10200.SLSINDX, SOP10200.MKDNINDX, SOP10200.RTNSINDX, SOP10200.INUSINDX, SOP10200.INSRINDX, SOP10200.DMGDINDX, SOP10200.ITMTSHID, SOP10200.IVITMTXB, SOP10200.BKTSLSAM, SOP10200.ORBKTSLS, SOP10200.TAXAMNT, SOP10200.ORTAXAMT, SOP10200.TXBTXAMT, SOP10200.OTAXTAMT, SOP10200.BSIVCTTL, SOP10200.TRDISAMT, SOP10200.ORTDISAM, SOP10200.DISCSALE, SOP10200.ORDAVSLS, SOP10200.QUANTITY, SOP10200.ATYALLOC, SOP10200.QTYINSVC, SOP10200.QTYINUSE, SOP10200.QTYDMGED, SOP10200.QTYRTRND, SOP10200.QTYONHND, SOP10200.QTYCANCE, SOP10200.QTYCANOT, SOP10200.QTYORDER, SOP10200.QTYPRBAC, SOP10200.QTYPRBOO, SOP10200.QTYPRINV, SOP10200.QTYPRORD, SOP10200.QTYPRVRECVD, SOP10200.QTYRECVD, SOP10200.QTYREMAI, SOP10200.QTYREMBO, SOP10200.QTYTBAOR, SOP10200.QTYTOINV, SOP10200.QTYTORDR, SOP10200.QTYFULFI, SOP10200.QTYSLCTD, SOP10200.QTYBSUOM, SOP10200.EXTQTYAL, SOP10200.EXTQTYSEL, SOP10200.ReqShipDate, SOP10200.FUFILDAT, SOP10200.ACTLSHIP, SOP10200.SHIPMTHD, SOP10200.SALSTERR, SOP10200.SLPRSNID, SOP10200.PRCLEVEL, SOP10200.COMMNTID, SOP10200.BRKFLD1, SOP10200.BRKFLD2, SOP10200.BRKFLD3, SOP10200.CURRNIDX, SOP10200.TRXSORCE, SOP10200.SOPLNERR, SOP10200.ORGSEQNM, SOP10200.ITEMCODE, SOP10200.PURCHSTAT, SOP10200.DECPLQTY, SOP10200.DECPLCUR, SOP10200.ODECPLCU, SOP10200.EXCEPTIONALDEMAND, SOP10200.TAXSCHID, SOP10200.TXSCHSRC, SOP10200.PRSTADCD, SOP10200.ShipToName, SOP10200.CNTCPRSN, SOP10200.ADDRESS1, SOP10200.ADDRESS2, SOP10200.ADDRESS3, SOP10200.CITY, SOP10200.STATE, SOP10200.ZIPCODE, SOP10200.CCode, SOP10200.COUNTRY, SOP10200.PHONE1, SOP10200.PHONE2, SOP10200.PHONE3, SOP10200.FAXNUMBR, SOP10200.Flags, SOP10200.CONTNBR, SOP10200.CONTLNSEQNBR, SOP10200.CONTSTARTDTE, SOP10200.CONTENDDTE, SOP10200.CONTITEMNBR, SOP10200.CONTSERIALNBR, SOP10200.ISLINEINTRA
FROM SOP10100 LEFT OUTER JOIN
SOP10200 ON SOP10100.SOPTYPE = SOP10200.SOPTYPE AND SOP10100.SOPNUMBE = SOP10200.SOPNUMBE
WHERE SOP10200.SOPTYPE = 1 AND (SOP10100.QUOEXPDA < GETDATE())
--HEADER
--copy header records from expired quotes to history
insert into SOP30200
(SOPTYPE, SOPNUMBE, ORIGTYPE, ORIGNUMB, DOCID, DOCDATE, GLPOSTDT, QUOTEDAT, QUOEXPDA, ORDRDATE, INVODATE, BACKDATE, RETUDATE, ReqShipDate, FUFILDAT, ACTLSHIP, DISCDATE, DUEDATE, REPTING, TRXFREQU, TIMEREPD, TIMETREP, DYSTINCR, DTLSTREP, DSTBTCH1, DSTBTCH2, USDOCID1, USDOCID2, DISCFRGT, ORDAVFRT, DISCMISC, ORDAVMSC, DISAVAMT, ORDAVAMT, DISCRTND, ORDISRTD, DISTKNAM, ORDISTKN, DSCPCTAM, DSCDLRAM, ORDDLRAT, DISAVTKN, ORDATKN, PYMTRMID, PRCLEVEL, LOCNCODE, BCHSOURC, BACHNUMB, CUSTNMBR, CUSTNAME, CSTPONBR, PROSPECT, MSTRNUMB, PCKSLPNO, PICTICNU, MRKDNAMT, ORMRKDAM, PRBTADCD, PRSTADCD, CNTCPRSN, ShipToName, ADDRESS1, ADDRESS2, ADDRESS3, CITY, STATE, ZIPCODE, CCode, COUNTRY, PHNUMBR1, PHNUMBR2, PHONE3, FAXNUMBR, COMAPPTO, COMMAMNT, OCOMMAMT, CMMSLAMT, ORCOSAMT, NCOMAMNT, ORNCMAMT, SHIPMTHD, TRDISAMT, ORTDISAM, TRDISPCT, SUBTOTAL, ORSUBTOT, REMSUBTO, OREMSUBT, EXTDCOST, OREXTCST, FRTAMNT, ORFRTAMT, MISCAMNT, ORMISCAMT, TXENGCLD, TAXEXMT1, TAXEXMT2, TXRGNNUM, TAXSCHID, TXSCHSRC, BSIVCTTL, FRTSCHID, FRTTXAMT, ORFRTTAX, FRGTTXBL, MSCSCHID, MSCTXAMT, ORMSCTAX, MISCTXBL, BKTFRTAM, ORBKTFRT, BKTMSCAM, ORBKTMSC, BCKTXAMT, OBTAXAMT, TXBTXAMT, OTAXTAMT, TAXAMNT, ORTAXAMT, ECTRX, DOCAMNT, ORDOCAMT, PYMTRCVD, ORPMTRVD, DEPRECVD, ORDEPRVD, CODAMNT, ORCODAMT, ACCTAMNT, ORACTAMT, SALSTERR, SLPRSNID, UPSZONE, TIMESPRT, PSTGSTUS, VOIDSTTS, ALLOCABY, NOTEINDX, CURNCYID, CURRNIDX, RATETPID, EXGTBLID, XCHGRATE, DENXRATE, EXCHDATE, TIME1, RTCLCMTD, MCTRXSTT, TRXSORCE, SOPHDRE1, SOPHDRE2, SOPLNERR, SOPHDRFL, COMMNTID, REFRENCE, POSTEDDT, PTDUSRID, USER2ENT, CREATDDT, MODIFDT, Tax_Date, APLYWITH, WITHHAMT, SHPPGDOC, CORRCTN, SIMPLIFD, DOCNCORR, SEQNCORR, SALEDATE, EXCEPTIONALDEMAND, Flags, SOPSTATUS, SHIPCOMPLETE, DIRECTDEBIT, WorkflowApprStatCreditLm, WorkflowPriorityCreditLm, WorkflowApprStatusQuote, WorkflowPriorityQuote, ContractExchangeRateStat)
SELECT SOP10100.SOPTYPE, SOP10100.SOPNUMBE, SOP10100.ORIGTYPE, SOP10100.ORIGNUMB, SOP10100.DOCID, SOP10100.DOCDATE, SOP10100.GLPOSTDT, SOP10100.QUOTEDAT, SOP10100.QUOEXPDA, SOP10100.ORDRDATE, SOP10100.INVODATE, SOP10100.BACKDATE, SOP10100.RETUDATE, SOP10100.ReqShipDate, SOP10100.FUFILDAT, SOP10100.ACTLSHIP, SOP10100.DISCDATE, SOP10100.DUEDATE, SOP10100.REPTING, SOP10100.TRXFREQU, SOP10100.TIMEREPD, SOP10100.TIMETREP, SOP10100.DYSTINCR, SOP10100.DTLSTREP, SOP10100.DSTBTCH1, SOP10100.DSTBTCH2, SOP10100.USDOCID1, SOP10100.USDOCID2, SOP10100.DISCFRGT, SOP10100.ORDAVFRT, SOP10100.DISCMISC, SOP10100.ORDAVMSC, SOP10100.DISAVAMT, SOP10100.ORDAVAMT, SOP10100.DISCRTND, SOP10100.ORDISRTD, SOP10100.DISTKNAM, SOP10100.ORDISTKN, SOP10100.DSCPCTAM, SOP10100.DSCDLRAM, SOP10100.ORDDLRAT, SOP10100.DISAVTKN, SOP10100.ORDATKN, SOP10100.PYMTRMID, SOP10100.PRCLEVEL, SOP10100.LOCNCODE, SOP10100.BCHSOURC, SOP10100.BACHNUMB, SOP10100.CUSTNMBR, SOP10100.CUSTNAME, SOP10100.CSTPONBR, SOP10100.PROSPECT, SOP10100.MSTRNUMB, SOP10100.PCKSLPNO, SOP10100.PICTICNU, SOP10100.MRKDNAMT, SOP10100.ORMRKDAM, SOP10100.PRBTADCD, SOP10100.PRSTADCD, SOP10100.CNTCPRSN, SOP10100.ShipToName, SOP10100.ADDRESS1, SOP10100.ADDRESS2, SOP10100.ADDRESS3, SOP10100.CITY, SOP10100.STATE, SOP10100.ZIPCODE, SOP10100.CCode, SOP10100.COUNTRY, SOP10100.PHNUMBR1, SOP10100.PHNUMBR2, SOP10100.PHONE3, SOP10100.FAXNUMBR, SOP10100.COMAPPTO, SOP10100.COMMAMNT, SOP10100.OCOMMAMT, SOP10100.CMMSLAMT, SOP10100.ORCOSAMT, SOP10100.NCOMAMNT, SOP10100.ORNCMAMT, SOP10100.SHIPMTHD, SOP10100.TRDISAMT, SOP10100.ORTDISAM, SOP10100.TRDISPCT, SOP10100.SUBTOTAL, SOP10100.ORSUBTOT, SOP10100.REMSUBTO, SOP10100.OREMSUBT, SOP10100.EXTDCOST, SOP10100.OREXTCST, SOP10100.FRTAMNT, SOP10100.ORFRTAMT, SOP10100.MISCAMNT, SOP10100.ORMISCAMT, SOP10100.TXENGCLD, SOP10100.TAXEXMT1, SOP10100.TAXEXMT2, SOP10100.TXRGNNUM, SOP10100.TAXSCHID, SOP10100.TXSCHSRC, SOP10100.BSIVCTTL, SOP10100.FRTSCHID, SOP10100.FRTTXAMT, SOP10100.ORFRTTAX, SOP10100.FRGTTXBL, SOP10100.MSCSCHID, SOP10100.MSCTXAMT, SOP10100.ORMSCTAX, SOP10100.MISCTXBL, SOP10100.BKTFRTAM, SOP10100.ORBKTFRT, SOP10100.BKTMSCAM, SOP10100.ORBKTMSC, SOP10100.BCKTXAMT, SOP10100.OBTAXAMT, SOP10100.TXBTXAMT, SOP10100.OTAXTAMT, SOP10100.TAXAMNT, SOP10100.ORTAXAMT, SOP10100.ECTRX, SOP10100.DOCAMNT, SOP10100.ORDOCAMT, SOP10100.PYMTRCVD, SOP10100.ORPMTRVD, SOP10100.DEPRECVD, SOP10100.ORDEPRVD, SOP10100.CODAMNT, SOP10100.ORCODAMT, SOP10100.ACCTAMNT, SOP10100.ORACTAMT, SOP10100.SALSTERR, SOP10100.SLPRSNID, SOP10100.UPSZONE, SOP10100.TIMESPRT, SOP10100.PSTGSTUS, SOP10100.VOIDSTTS, SOP10100.ALLOCABY, SOP10100.NOTEINDX, SOP10100.CURNCYID, SOP10100.CURRNIDX, SOP10100.RATETPID, SOP10100.EXGTBLID, SOP10100.XCHGRATE, SOP10100.DENXRATE, SOP10100.EXCHDATE, SOP10100.TIME1, SOP10100.RTCLCMTD, SOP10100.MCTRXSTT, SOP10100.TRXSORCE, SOP10100.SOPHDRE1, SOP10100.SOPHDRE2, SOP10100.SOPLNERR, SOP10100.SOPHDRFL, SOP10100.COMMNTID, SOP10100.REFRENCE, SOP10100.POSTEDDT, SOP10100.PTDUSRID, SOP10100.USER2ENT, SOP10100.CREATDDT, SOP10100.MODIFDT, SOP10100.Tax_Date, SOP10100.APLYWITH, SOP10100.WITHHAMT, SOP10100.SHPPGDOC, SOP10100.CORRCTN, SOP10100.SIMPLIFD, SOP10100.DOCNCORR, SOP10100.SEQNCORR, SOP10100.SALEDATE, SOP10100.EXCEPTIONALDEMAND, SOP10100.Flags, SOP10100.SOPSTATUS, SOP10100.SHIPCOMPLETE, SOP10100.DIRECTDEBIT, SOP10100.WorkflowApprStatCreditLm, SOP10100.WorkflowPriorityCreditLm, SOP10100.WorkflowApprStatusQuote, SOP10100.WorkflowPriorityQuote, SOP10100.ContractExchangeRateStat
FROM SOP10100
WHERE SOPTYPE = 1 AND (SOP10100.QUOEXPDA < GETDATE())
--LINE
--delete line items of expired quotes from WORK
DELETE SOP10200
FROM SOP10100 LEFT OUTER JOIN
SOP10200 ON SOP10100.SOPTYPE = SOP10200.SOPTYPE AND SOP10100.SOPNUMBE = SOP10200.SOPNUMBE
WHERE SOP10200.SOPTYPE = 1 AND (SOP10100.QUOEXPDA < GETDATE())
--HEADER
--delete header records of expired quotes from WORK
DELETE SOP10100
WHERE SOPTYPE = 1 AND (SOP10100.QUOEXPDA < GETDATE())
I feel certain there is a more elegant solution out there, but this one has been working for a long time.
Let me know what you think and help me approve this process.
Until next post.
Leslie
Thursday, January 10, 2013
2013 Payroll Tax Update–Round 2
It’s that time of year again! Time to change the payroll tax tables, and then change them again.
Round 1 of the 2013 payroll tax tables adjusted the employee FICA percentage back to 6.2% but did not include changes to the withholding tables themselves. Terry Heley at Microsoft sent out an email yesterday evening letting us all know that they are still on track to release Round 2 of 2013 tax update today or tomorrow.
Another issue coming up is that the employer and employee FICA amounts are not coming out the same even though they are the same percentage. For example, I put in a gross pay of $1,000 and the system calculated the employer FICA at $62.00 and the employee FICA at $62.01. This is frustrating, but you are not doing anything wrong.
Terry tells us there is ‘rounding’ code written in the employee side, but not the employer. This issue will be addressed in a Hotfix due out at the end of the week ending 01/21/2013.
Round 2 of the 2013 tax tables will also be issued for version 10 customers, but that will be the last one. The January Hotfix will not be issued to version 10 customers.
Hope you are all having a fun year-end close!
Until next post
Leslie
Saturday, January 5, 2013
Illegal address for field 'ICR State Employer Account Number'
Here’s another one for the ‘when things go wrong’ collection. You open the company setup window and you get the above message. The entire error message reads like this:
Unhandled script exception:
Illegal address for field 'ICR State Employer Account Number' in script 'ICR_SY_Company_Options_PRE'. Script terminated.
EXCEPTION_CLASS_SCRIPT_ADDRESSING
SCRIPT_CMD_LOAD_ATSI5
After you close the window, you’ll get a trigger registration error. The culprit is the California DE542 product by Blue Moon Industries. It is easy to fix. All you need to do is go into the Alternate/Modified Forms and Reports window and then mark to use the California DE542 version of the Company Setup window. The screenshot below shows you want it looks like.
Until next post!
Leslie
Friday, December 28, 2012
Published at last! Developing Microsoft Dynamics GP Business Applications
If anyone has noticed my absence on the newsgroup, this is why. This book was published on Christmas Eve! – too late for Santa, but just in time for Valentine’s Day!
You can try out seven different development tools in this book. There’s a small project using each of the following:
- Dexterity
- VS Tools
- Modifier
- VBA
- SmartList Builder
- Extender
- Drill-down builder
If you’ve ever wanted to dabble, now’s your chance to work a little bit with each tool. There’s no other publication like it that includes a little about so many different tools; I hope you enjoy it.
I want to thank my technical reviewers, Mohammad R. Daoud, Jivtesh Singh, Vaidhyanathan Mohan, and Frank Hamelly, for their valuable time, ideas, and insights. This is a much better, more complete book because of them and their willingness to help and advise me. How could I miss with that kind of talent backing me up?
The book was only supposed to be 300 pages, but 300 pages just wasn’t enough. Even at 600 pages, there’s so much more I wanted to add. Please let me know if you have any suggestions on how I can make the book better next time.
I look forward to getting back with the Community!
Kind regards,
Leslie
Sunday, December 9, 2012
Calling all Developers! Get ready for GP 2013 - Dexterity Training in St. Lake City! December 17th–21st, 2012
This is short notice, but if you can come, it'll be worth it! All of you VS Tools and VBA programmers, you really need to learn this stuff!
I’ll be doing a one-week class that will incorporate two weeks of training material. If you ever wanted to drink Dexterity through a fire hose, then this class is for you.
We’ll go non-stop for one week passing through very basic scripts, up to cross-dictionary work. No previous experience in Dexterity is required except going through the Quick Start manual that is included with the Dexterity documentation.
You’ll start writing integrating sanSript the first day of class!
This class was architected by T Hoecherl, a senior developer with Premier Computing, Inc. T is the man with all of the answers when it comes to logistics and cost. He can be reached at the following numbers:
Office: 801-487-8400, ext. 130T tells me his classroom can hold eight people and he has a couple of spots left that he would like to fill. So, come to Salt Lake City on December 17th and get that training you need before GP 2013 hits the shelves!
Cell: 801-259-7786
The one-week Dexterity Basics class is still scheduled to go in Orlando in February of 2013, but here’s an earlier offering if February just seems too far away.
I hope to see you in Salt Lake City!
Kind regards,
Leslie Vail 972-814-8550
Monday, November 12, 2012
Dexterity Basics training February 11–15, 2013 in Orlando
Looking for Dexterity training? Come to Orlando!
I will be teaching the Dexterity Basics class at Integrated Business Group (IBG). The training will take place in Orlando, Florida from February 11th to February 15th, and will provide the basic foundations any Dexterity programmer must have.
This is an opportunity for all of you VSTools programmers to learn how to build your user interface in Dexterity instead of WinForms so that your application will run with the new GP 2013 Web Client. Your existing code will hook right up to the Dexterity events, you may even like the Dexterity forms designer even better than VS Tools!
For more information, contact the training coordinator, Roxanna Alvarez at ralvarez@ibgnet.com or at her direct line +1 (407) 965-9299.
Hope to see you in Orlando!
Monday, October 8, 2012
**ERROR: Batch level errors were encountered.
If you have ever received the above error on a posting journal or edit list, check to make sure the fiscal period for the batch you are trying to post is open. The posting journal/edit list should have another clue about what was causing the error at the top of the report.
The image below shows the error and the hint.
Until next post!
Leslie
Monday, September 17, 2012
When things go Wrong - I need to delete a printed SOP document
What to do?
The SOP module keeps track of the number of times you have printed a document. If you print it once, and printing to screen counts as printing, you cannot delete it. Therefore, you need to set the system back to believe it has never been printed in order to delete it.
Of course, this is not a supported solution, so use it at your own risk. The first step is to back up your System (DYNAMICS) and company databases. The name of your company database is displayed on the Company Setup window.
USE YourCompanyDatabase
GO
UPDATE SOP10100
SET TIMESPRT = 0
WHERE SOPNUMBE = 'your_SOP_Doc_Number'
When things go Wrong - Error registering table GL_Account_MSTR
You've just installed the workstation, you launch it and are greeted with this:
What to do?
You'll be delighted to know that this is an easy fix. The problem comes up when folks copy the Dynamics.set file to one worksation from another before they synchronize the existing Dynamics.dic to the systems account framework.
All you need to do is change the dex.ini file so that the following entry exists:
Synchronize=TRUE
Most likely, yours says FALSE
You need to make sure you only have one of these entries in your Dex.ini file. If you have more than one, the first one rules.
After you change the Dex.ini setting (in the Data folder of your application folder), you'll need to launch Dynamics Utilities in order to complete the synchronization process.
Once the synchronization process is complete, the error should go away, and Dynamics GP should launch.
Don't ya' love all of the 'should's' in that dialog?
Live the Dream!
Leslie
Thanks to David Musgrave's keen eye I changed this post to the correct setting. I had it backward originally. Unforgivable for the dex.ini queen.
When things go wrong - Batches cannot be posted
"Batches cannot be posted while the year-end close is in progress"
But, of course, the year-end closing process is not happening. What to do?
You need to change the system's mind about that closing process by running the following scripts:
First, and always, back up your system and company databases, and then:
USE DYNAMICS
GO
DELETE SY00800
DELETE SY00801
USE TEMPDB
GO
DELETE DEX_SESSION
DELETE DEX_LOCK
UPDATE:
Here's a post from David Musgrave that allows you to clear up the batch error with everyone still logged into the system:
http://blogs.msdn.com/b/developingfordynamicsgp/archive/2008/12/03/releasing-stuck-batches-and-transactions-without-exiting-all-users.aspx
Hope this clears it up for you.
Live the Dream!
Leslie
When things go wrong - Another user closing the year
"Sorry, another user is closing the year"
However, no other user is trying to close the year. What to do?
Make sure everyone is logged out of Dyanamics GP
Backup your company Database
Run the scripts
Use 'YourCompanyDatabase'
Go
Delete GL50100
When things go wrong - This batch is being posted by another user
- Back up the DYNAMICS and company databases.
- Change the batch status so that it no longer thinks it's being posted.
GO
UPDATE SY00500 set BTCHSTTUS = 0 WHERE BACHNUMB = 'YourBatchNumber'
Depreciation - When things go Wrong
The following scenarios will be covered over the course of four posts:
- Wrong 1st yr Convention
- Basis Reduction Required
- Wrong Depreciation Method - fully depreciated as of previous year end
- Wrong Depreciation Method - not fully depreciated as of previous year end
Until next post!
Leslie
Use PSTL without being 'sa'
Wouldn't it be nice to be able to perform PSTL activities without having to log in as 'sa'?
Vote for the above post if you agree. Now that we all have this tool, it's becoming more of an issue. With security being such an issue this day and age, casually asking for the 'sa' password so that we can change a Vendor ID seems rather extreme.
It's time to give the Controller the right to control the accounting system's details without the ability (and liability) to drop all of the company's databases.
This must be 'hard-coded' into the Dexterity script, let's vote to get that coding removed!
Live the Dream!
Leslie
Be sure to Invoice Match every Receipt
I'm on a roll tonight. I love version 2013, but still there are some basic items I think need to be addressed. If you think so too, cast your vote by using the link above.
Are you tired of your Accrued Purchases account not matching your Received but not Invoiced report? How many times has a vendor payable been entered without matching it to the receipt?
Wouldn't it be nice if Dynamics GP warned you if you were entering a payables transaction for a vendor that has an outstanding PO or Uninvoiced receipt?
Too often a vendor invoice comes into the company and it's entered into A/P without going through the invoice matching procress in POP. We need a method for the user to be alerted if a vendor's invoice is entered to the Payables transaction entry window while there is an outstanding uninvoiced receipt.
The risk is that we end up with uninvoiced POs or worse, the vendor is paid twice by mistake.
Let me know what you think, or if you have devised a non-policy workaround.
Until next post!
Leslie
Perform a 'Credit Card' run like a Check Run
If you want to pay your vendor invoices with a credit card in a batch AND be able to reconcile the credit card statement like you do a bank statement, please vote for the above product enhancement by clicking on the shortcut above.
Paying vendors with a credit card is the standard for many companies. You can get downloads from the credit card companies and import vendor payables. We need to keep track of the actual vendors for better expense management.
The problem is that the only way we can pay vendor invoices with a credit card is to enter a manual payment. A manual payment is not a viable solution for a company with more than just a few credit card transactions.
We need to be able to use a credit card as the payment source for a 'check run'. As part of that process, we need to be able to reconcile the credit card source with the credit card bill much like we do with bank statements and checkbooks.
If you agree, please vote for the enhancement using the link above.
Thanks!
Until next post!
Leslie
Product Suggestion. Add item to all sites
Dynamics GP allows you to assign all items to a single site, but it does not let you assign an item to ALL sites.
I think it's time we had a window where we could pick an item, or a group of items and assign them to the site(s) of our choice with the click of a button. If you think so too, vote for the suggestion using the link below.
https://connect.microsoft.com/dynamicssuggestions/feedback/details/763003/assign-an-item-to-all-sites#tabs
Let's get these details cleaned up Microsoft, we have the best product - let's prove it.
Until next post
Leslie
Thursday, September 13, 2012
The Resurgence of Dexterity - - Dexterity Lives!!
Learn it while you still can!
Here at the Technical Airlift, VSTools programmers and VBA programmers alike have learned that support for these two products will not be included in the phase 1 release of the 2013 Web Client.
So what’s a guy to do??? For VSTools, the answer is simple. You need to create your user interface in Dexterity; all of your .NET code should work just fine. Well, you will also need to modify your code to point to the new events, but that should be a piece of cake for a .NET programmer.
For VBA, it’s a little more challenging; but just a little. You need only to transform your VBA code into sanScript. Nothing more than a little syntax change. If you have any VBA forms, you need to fashion them into Dexterity forms. You’ll find Dexterity is even easier to work with than VBA; and it looks better too.
What you need to do now, is learn Dexterity. But where? How? These are the important questions.
You’re in luck!
There is a Dexterity Basics class running in Orlando, Florida the week of October 8th. Just think, you could have all of your code converted before the Holidays. Just in time for the 2013 release! There are still some spots in the class available for you.
The Dex I class is being held at the facility of Integrated Business Group, they are a Certified Learning Resources partner and have the best classrooms I have ever seen. Comfortable chairs and lots of room.
Spend the week with me in Orlando and you’ll learn everything described in the synopsis below.
For more information and to register for the class, call Roxanna Alvarez @ 407-677-0370 or e-mail her directly ralvarez@ibgnet.com.
Date and Location:
- When: October 8th – October 12th
- Where: Orlando Florida
You can download a synopsis of the class Here:
http://www.4shared.com/document/gK3muz4n/Dexterity_I_Synopsis_.html
I have pasted the synopsis below if the download doesn't work.
I hope to see you there!
Until Next Post!
Leslie Vail
Dexterity I – Product Fundamentals
Synopsis:
Dexterity Product Fundamentals will teach you about the development environment used to build the Microsoft Dynamics GP family of products. This course will provide you with the foundation you need to build integrated, database-independent applications. In addition, you will learn how to provide powerful application functionality for Microsoft Dynamics GP. By actively participating in these classes, you should learn: Basic programming techniques used by Microsoft Dynamics GP to develop their core modules.
- How to modify existing Dynamics GP forms and reports in order to make customizations for customers.
- How to develop add-on applications that will interact with the Dynamics GP products to meet specific requests by customers.
- How to package and ship your dictionary allowing Microsoft Dynamics GP to make updates to Dynamics GP without affecting the developer's dictionary.
- How to register your product with Microsoft Dynamics GP using a unique Product ID to ensure no duplication of add-on applications with the same name.
- How to develop add-on applications that will "look and feel" like Dynamics GP and provide seamless interface between the applications to ensure a professional finished product.
- How to use object triggers, which are scripts in your applications that are invoked by events in Dynamics GP, allowing several developers to deliver enhancements to the same Dynamics GP form.
Wednesday, September 12, 2012
Microsoft Dynamics GP 2013 Beta release available for download
Let me throw my hat in the ring and announce the GP 2013 beta code has been released for us to download.
I know everyone will rush in and install the GP 2013 client and the Web Client, but let’s not forget about all of the other goodies on that DVD. Install the SDK, and Dexterity too!
You can download the code from HERE
https://mbs.microsoft.com/partnersource/support/selfsupport/productreleases/MDGP2013_TAPReleaseDownload
Enjoy! Let us know how much you enjoyed installing the Web client
Until next Post!
Leslie
Installing the GP 2013 Web Client–roll up your sleeves!
On Monday, I went to the Jump Start training class where we learned about the new Web Client for 2013. In the afternoon, we actually installed the client. This post consolidates the 20 page installation process into 13 easy steps.
Before you get started, you need adequate hardware.
Server Requirements
- Windows Server 2008R2 – 64 bit only (Server 2008 is not good enough)
- All machines (including clients) must have valid certificates (SSL)
- You need a Web Server that is IIS enabled (does not need to be on any other machine that the web server)
- RAM – 16 G
- CPU – TBD
- NICs – TBD
Network Requirements
- Open Ports for inter-machine services communication
- Windows Firewall exceptions [Installer should open the required ports]
- Router changes for external traffic into DMZ
- DNS changes to support internal and external name resolution (so, you need two)
Client Requirements
- Internet Explorer 8 or 9, 32 bit or 64 bit
- Silverlight plugin installed
- Windows 7 or higher. No to XP, don’t know about VISTA. But, be reasonable, who’s running Vista?
- Office 2007 or better
- Changes are needed to the Registry so that the Silverlight App to interact with the file system. (It needs to make a command and execute shell call)
Installing the Dynamics GP 2013 web client
1. Install Dynamics
- Run the same setup file as if you were installing the rich client.
- When you get to the features window scroll down and mark the Web Client Runtime feature
- Go through the normal installation process, launch utilities to synchronize the dictionary, and then open Fabrikam. Close Dynamics after verifying that you can log in successfully.
2. Create a New Digital Certificate Template
- You need a new one because the default template doesn’t allow you to export private keys
3. Issue the new Template you just created
- You need to issue the template so new certificates can make use of it.
4. Generate a certificate from the new template
5. Export the Server Certificate you just generated
- Once you have created the certificate, you need to export it to a file that can then be copied to each member server that needs the certificate installed.
6. Import the Server Certificate that you just exported.
- The IIS site(s) where the Web Client and Web Management Console will be installed need to have an SSL certificate binding
- Import the certificate created by Active Directory Certification Services
7. Create an IIS web site for the GP 2013 Web Client
- The GP 2013 Web Client resides on a web site in IIS. You need to manually create this site before you can install the Web Client
8. Register .NET Framework 4.0 to the new IIS site
9. Create SSL Binding on GBWEB IIS Site
- Now, you need to use the digital certificate you imported to bind an SSL port to the GPWEB site in IIS Manager
10. Create Domain Users and Groups
- Even though you may be logging in to the server using a domain administrator account, you will want to create service accounts that run the Web Application Pools. Windows Service accounts should NOT be administrator accounts.
11. Install Dynamics GP 2013 Web Client Components
- Use the same installation media as you do to install the full workstation client. You have already installed the full workstation client, therefore, this step will involve adding the Web Client Components to the existing client.
- Click on the same setup.exe file you use for the full desktop client.
- Chose to install the Web Client from the list of Additional Products.
-
- Select the Custom installation option
- Leave all of the features selected and accept the default installation path.
- Enter the Domain Group(s) that you created to access the Web Client and the Web Management Console
- Accept the default settings on the GP Configuration window
- Click the drop-down next to the Web Site and choose the web sit you created for the web client installation.
- Enter the domain account that was created for the identity of the web client web site
- Enter the name of the SQL Server where the Web Management Console database will be created.
- In the Web Management Cole Database window, provide the connection information to the database for the web management console; accept the default database name.
- In the Session Central Service window, provide the configuration information for the Session Central Service.
- In the Session Service window, provide the configuration information for the Session Service.
- In the Runtime Service URL window, provide the information for accessing the Runtime Service.
- Finally! Click the Install button to install the Web Client components. Exit when the installation completes.
12. Open your browser
13. Go to the URL of your Web client, and then log in.
Be amazed at the new GP 2013 Web Client!
Piece of cake! (Eeek!)
Friday, September 7, 2012
The Fix is In! Bring back your SmartList Reminders.
The problem with SmartList Reminders crashing GP has been fixed! I initially described the problem brought about by GP 2010 SP 3:
SP 3 will Crash GP
Microsoft has just released HotFix KB2731285 to correct this issue. You can download the fix at:
https://community.dynamics.com/product/gp/gptechnical/b/dynamicsgp/archive/2012/09/07/the-smartlist-builder-reminders-fix-is-now-available.aspx
Application of this HotFix does not change the build number of Dynamics GP, SmartList, or SmartList Builder. To install the HotFix,
- Extract the .zip file
- Copy the SLBldr.cnk file and paste in into the application folder for Dynamics GP. The default is %path%\Microsoft Dynamics\GP2010.
- Launch Microsoft Dynamics GP.
- Click YES if prompted to install new code.
- Repeat steps 2-4 at all client workstations.
Many thanks to Nicole Albertson at Microsoft for staying on top of this and letting me know when the problem was resolved. You’re a Rock star, Nicole! Until next post
Leslie
Wednesday, September 5, 2012
Restarting a File Transfer
When I returned, I wanted to resume the file transfers. Hmm, how do you re-start the transfer manager?
I tried downloading a few files hoping the transfer manager would open and then I could just resume from there. But, alas, that did not work.
After flailing around a little bit, I discovered the answer.
To restart the transfer manager, execute this:
%windir%\Downloaded Program Files\TransferMgr.exe
Works like a champ!
Until next post!
Leslie
Dexterity Basics class is scheduled for October 8th–12th 2012
The Dexterity basics class takes you from opening the book for the first time to creating a small integrating application with Dynamics GP.
It’s that time of year for another fun-filled week immersed in the world of Dexterity.
For more information and to register call Roxanna Alvarez @ 407-677-0370 or e-mail her directly ralvarez@ibgnet.com.
Date and Location:
- When: October 8th – October 12th, 2012
- Where: Orlando Florida This class is very hands-on and starts at the beginning; no previous Dexterity experience is necessary.
Customers or Partners who will be customizing or building add-on or standalone applications to integrate with the Microsoft Dynamics GP products. VSTools programmers who will need to design their windows using Dexterity instead of WinForms will also benefit from this training. You will learn how to create windows and also how to create Dexterity tables.
A synopsis of the class is below this post.
I hope to see you there!
Until Next Post!
Leslie Vail
The basics class covers the following topics:
Dexterity I – Product Fundamentals
Synopsis:
Dexterity Product Fundamentals will teach you about the development environment used to build the Microsoft Dynamics GP family of products. This course will provide you with the foundation you need to build integrated, database-independent applications. In addition, you will learn how to provide powerful application functionality for Microsoft Dynamics GP.
By actively participating in these classes, you should learn:
Basic programming techniques used by Microsoft Dynamics GP to develop their core modules.
- How to modify existing Dynamics GP forms and reports in order to make customizations for customers.
- How to develop add-on applications that will interact with the Dynamics GP products to meet specific requests by customers.
- How to package and ship your dictionary allowing Microsoft Dynamics GP to make updates to Dynamics GP without affecting the developer's dictionary.
- How to register your product with Microsoft Dynamics GP using a unique Product ID to ensure no duplication of add-on applications with the same name.
- How to develop add-on applications that will "look and feel" like Dynamics GP and provide seamless interface between the applications to ensure a professional finished product.
- How to use object triggers, which are scripts in your applications that are invoked by events in Dynamics GP, allowing several developers to deliver enhancements to the same Dynamics GP form.
Friday, August 31, 2012
Warning! Install GP2010 SP 3 and lose your SmartList reminders!
If you do not want to run the risk of losing some of your SmartList reminders, then do not install SP 3. To my chagrin, I learned yesterday that there is a bug in SP3. In my world, that bug is a train wreck to many of my clients. Microsoft tech support acknowledged the existence of the bug and does not have any clue as to when it might be corrected.
Here’s what happens. Let’s say you create a SmartList object using SmartList Builder. Your users fashion favorites based on the created SmartList and then use those favorites in Reminders. After you install SP 3, the users with reminders based on objects built in SmartList Builder will not be able to log in to the system. That’s it, the system crashes, and crashes hard!
If you remove the reminders based on the SmartList Builder objects, your users will be able to log in just fine. So the “work around” is to delete the reminders. What! Yes, that’s the work around, you cannot use the feature. I don’t know how it affects you all, but that bit of news is a crushing blow in my world.
This problem has been a difficult one for Microsoft to isolate. They told me that they didn’t know if the problem was being caused by SQL code, Dexterity scripts, or the VSTools addins. All three are in play with SmartList Builder.
The error is easy to duplicate, and it fails just as the system begins to draw the home page window. If you are already logged in when you created the linked reminder, as soon as you refresh your home page you will get the error below, and GP will fail.
The next time you try to log in to GP, right after the navigation pane comes to your window, the system will crash. The partial screenshot below shows you what I mean.
To identify the SmartList reminders you have at risk, you can query the DYNAMICS database. Type the statement below in the query window of Management Studio.
This problem does NOT require you to disable SmartList Builder itself, you just cannot build any Reminders off of the SmartLists you create. You can:
- Create and use Reminders that are not based on a Favorite belonging to an object created in SmartList Builder.
- Create Favorites based on an object created in SmartList Builder.
- Create and use Reminders based on a SmartList object that came with GP.
While there are many ways to present the information that was captured by the Reminders, I haven’t been able to come up with an alternative that is as elegant and user-friendly as the SmartList Reminders.
I welcome anyone’s ideas on how to easily replace the SmartList Reminders until the time we get a fix from Microsoft.
Go forward with caution! Consider yourself warned.
Until next post!
Leslie Vail
Dallas, TX