Monday, June 16, 2014

Another new Dex.ini switch EnableWCRibbons=FALSE

Boy what a day, another new dex.ini switch to add to my collection. I’m guessing R2 of GP2014 has many more that I have not discovered yet. Please let me know if you find new ones.

Here’s what this one does. If you set it to FALSE the new ribbon bars go away and the windows look like they did prior to the R2 release. If you set it to TRUE, you get the fancy new ribbon bars. Here’s an example:

EnableWCRibbons=TRUE

clip_image002

EnableWCRibbons=FALSE

clip_image004

If you don’t like the ribbon bars, you can hide them. I’m guessing you should learn to love them because I bet at some point this switch won’t work anymore.

Enjoy!

Leslie

A New Dex.ini Switch – VBADisable=TRUE

Here’s one more for the collection.

I ran into an issue today after I loaded the patch to update my GP 2013 to build 1745. After the patch was loaded, I no longer had access to Modifier. I’m a pretty heavy Modifier user, so this was a big problem for me. I searched around the Internet a bit and didn’t find anything. I looked on the forum, even posted a question, but didn’t get an answer.

Next, I looked at the Dex.ini file for the new build and compared it to the old build. A Ha! There was a new Dex.ini switch that appeared in my build 1745 install. The switch read: VBADisable=TRUE. That sounded to me like it might be the problem. I changed the TRUE to FALSE and tried again.

Sure enough, the Modifier tool was once again available. This is probably documented somewhere, but I couldn’t find it. If you should run into this, here’s your answer.

Enjoy!

Leslie

Sunday, June 15, 2014

Setting up Multicurrency

I developed my own cheat sheet / checklist for setting up the Multicurrency module. I wanted something that I could fit on a single page just to remind me of what I needed to do next.

Recently, I’ve had a few colleagues ask me whether I had some kind of easy to follow checklist and I’ve been sending them this one. It seems more and more companies are implementing multicurrency these days, so I thought I’d share it with the community. It’s not fancy, nor does it provide any explanations – but it does provide the navigation to the various widows.

I welcome your comments on ways to improve it or if you think things should be re-ordered.

1. Create Currency (use the ISO code for the ID, don’t use the ‘Z’ entries)
Administration | Setup | System | Currency

2. Create Exchange Table
Administration | Setup | System | Exchange Table
Exchange Table naming convention suggestion:
  Segment 1 = Functional Currency
  Segment 2 = Originating/Reporting Currency
  Segment 3= Usage, such as BUY, SELL or AVG (optional)

3. Establish Rates
Administration | Setup | System | Exchange Table | [Rates button]
Rate calculation is Originating Currency * Rate
OR
Originating Currency / Rate
You can use up to seven decimals

4. Grant Company access to currency and rate table (all must exit Dynamics)
Administration | Setup | System | Multicurrency Access

5. Set Rate Types
Financial | Setup | Financial | Rate Types

6. Set Posting Account Defaults. The system will search for an account in the order listed below. As soon as it finds one, it stops looking. If all should share the same account, enter it at the Company level.

Rate Type Accounts
     Financial | Setup | Financial | Rate Types | [Accounts button]

Currency ID
     Administration | Setup | System | Currency | [Accounts button]
OR
     Financial | Setup | Financial | Currency Accounts

Company-level Posting Accounts
     Administration | Setup | Posting | Posting Accounts | Display ‘Financial’ from drop list

7. Assign Currency Access to your GL Accounts. Identify which accounts should accept transactions in a foreign currency.
Financial | Cards | Financial | Account Currencies
OR
Financial | Cards | Financial | Currency Account Update
OR
Financial | Cards | Financial | Account History | [Currencies button]
OR
Financial | Cards | Financial | Account | [Currency button]

8. Assign Currency ID and Rate Type ID to Checkbook ID
Financial | Cards | Financial | Checkbook

9. Assign default Currency ID and Rate Type ID to appropriate Customers (or roll down from Customer Classes) and set revaluation options
Sales | Cards | Customer | [Options button]

10. Assign default Currency ID and Rate Type ID to appropriate Vendors (or roll down from Vendor Classes) and set revaluation options
Purchasing | Cards | Vendor | [Options button]

Enjoy!

Leslie

What’s in a date? PM Transactions

cat calendar
Recently, I worked with a group that needed to make changes to the dates of some of their posted payables transactions. Of course, you can’t do that through the user interface, so it was SQL to the rescue. While the initial job sounded easy, I was astonished to see just how many different date fields were in the tables. This post will review the various date fields in the following three tables:

Physical Name
Display Name
Date Fields
PM20000
PM Transaction OPEN File
10
PM30200
PM Paid Transaction History File
11
PM30300
PM Apply To History File
6

For each table, I’ll give the physical name for each relevant field and a short explanation of what I know about that date field. Some of the fields are obvious. Some, well, not so much.
I need a better explanation for the Purchase Date. Please add a comment to this post if you have more information on how this field is populated.

  PM20000

  PM Transaction Open File - 10 dates

VCHRNMBR
Voucher Number
VENDORID
Vendor ID
DOCTYPE
Document type of transaction. (Invoice, Return, Payment, etc.)
DOCDATE
Document date on the invoice or payment. This date is used by the subsidiary module (Payables Management)  to 'age' the document and to calculate it's due date.
DISCDATE
Date by which the invoice must be paid to earn the terms discount
DUEDATE
Date the invoice is due. After this date it is delinquent
POSTEDDT
System date when user pushed the [Post] button when the doc was originally posted.
MODIFDT
User date when transaction was last modified
DINVPDOF
The apply date from the final document applied to the invoice. This is the date the invoice or pmt became fully applied. Voided is fully applied, written-off can be fully applied. A document in the Open table should not have a value in this field, because no documents in the open table should be ‘paid off’.
PSTGDATE
Posting date for the invoice or payment; set by the user on batch window or doc date expansion window. This is the date of the transaction on the General Ledger - the date attached to the Journal Entry created by the transaction.
Tax_Date
Date that should be used to calculate and/or report sales tax, defaults to Document date; set by user on window
PRCHDATE
Physical date of transfer of goods/services
DEX_ROW_TS
Dex Row Timestamp – system date & time when last modified


  PM30200

  PM Paid Transaction History File - 11 dates


VCHRNMBR
Voucher Number
VENDORID
Vendor ID
DOCTYPE
Document type of transaction. (Invoice, Return, Payment, etc.)
DOCDATE
Document date on the invoice or payment. This date is used by the subsidiary module (Payables Management) to 'age' the document and to calculate it's due date.
DISCDATE
Date by which the invoice must be paid to earn the terms discount
DUEDATE
Date the invoice is due. After this date it is delinquent
POSTEDDT
System date when user pushed the [Post] button when the doc was originally posted.
MODIFDT
user date when trx last modified an ‘apply’ is a modification, a void is not.
DINVPDOF
Apply date of the document that caused the invoice or pmt to be fully applied. Voided is fully applied, written-off can be fully applied. The DATE1 field for the final apply record in the PM30300 table becomes the DINVPDOF.
PSTGDATE
Posting date for the invoice or payment; set by the user on batch window or doc date expansion window. This is the date of the transaction on the General Ledger - the date attached to the Journal Entry created by the transaction.
VOIDPDATE
The Posting Date (GL date) for the Void -The sub ledger void date becomes the DINVPDOF
Tax_Date
Date that should be used to calculate and/or report sales tax, defaults to Document date; set by user on window
PRCHDATE
Physical date of transfer of goods/services
DEX_ROW_TS
Dex Row Timestamp – system date & time when last modified, includes voids.

  PM30300

  PM Apply to History File - 6 dates

VENDORID
Vendor ID
VCHRNMBR
Voucher number of the payment document. The ‘apply from’ voucher number.
APFRDCNM
Document number of the payment ( check number). The ‘apply from’ Document number
DOCTYPE
Document type of the payment. The ‘apply from’ document type.
APTVCHNM
Voucher number of the invoice being paid. The ‘apply to’ voucher number.
APTODCNM
Document number of the invoice being paid. The ‘apply to’ invoice number
APTODCTY
The type of document the pmt is being applied to; invoice, debit memo, etc. The ‘apply to’ document type.
DOCDATE
Document date of the payment being applied; check date. The ‘apply from’ document date.
DATE1
The date the sub ledger uses for the ‘apply date’. This is set by the user on the apply window and used by the system in the HITB and to determine when the 1099 amount is reportable.
GLPOSTDT
Posting date to the general ledger, if an entry is necessary, like in a write-off. Set by user on the apply window
APTODCDT
Document date of the invoice being paid. The ‘apply to’ document date
ApplyToGLPostDate
Original GL posting date of the invoice being paid. The ‘apply to’ GL posting date.
ApplyFromGLPostDate
Original GL posting date of the payment document. The ‘apply from’ GL posting date.

Live the Dream!
Leslie

Tuesday, June 10, 2014

GP 2013 R2 updates to Report Writer Functions

David Musgrave posted an article about updates and additions he has made to the User-Defined functions he added to Report Writer back in release 7.0. I have added a list and description of those functions to my section about User-Defined Report Writer functions.

There are some incredibly handy functions now available. Check out his post by following this link.
David Musgrave's updates to Report Writer functions
I have copied his entire article below:

"By David Musgrave, View Profile8 Jun 2014 6:00 PM

You might remember the story about how I created a suite of Report Writer functions and got them added to the version 7.0 Dynamics.dic core dictionary. The aim for these functions was to make it easier for partner consultants and customers to modify the reports without needing custom scripting in Visual Basic for Applications (VBA) or Dexterity. They are documented in the Report Writer Functions document in the Software Developers Kit (SDK).

Based on feedback I have received from the community, I have made some changes to a few of the Report writer functions and submitted them to the development team for inclusion in the Microsoft Dynamics GP 2013 R2 (Service Pack 3) code. Below is a summary of the Report Writer (RW) functions changed and what new functionality is available.

RW_CoAddrIDInfo()
  • If an empty string is passed as the Address ID (first) parameter, the address data is pulled from the Company Master (SY_Company_MSTR, SY01500) table instead of Location Master (SY_Location_MSTR, SY00600) table.
RW_PMAddrIDInfo()
  • If an empty string is passed as the Address ID (second) parameter, the address data is pulled from the Vendor Master (PM_Vendor_MSTR, PM00200) table instead of Vendor Address Master (PM_Address_MSTR, PM00300) table.
RW_RMAddrIDInfo()
  • If an empty string is passed as the Address ID (second) parameter, the address data is pulled from the Customer Master (RM_Customer_MSTR, RM00101) table instead of Customer Address Master (RM_Customer_MSTR_ADDR, RM00102) table.
  • For the Field (third) parameter, The values 14 and 15 have been added for the User Defined 1 and User Defined 2 fields respectively.
RW_GetInternetText()
  • Updated Field (sixth) parameter, so that it works without errors. The values of 10 (to), 11(cc) and 12(bcc) return email addresses, any other value returns the internet text field.
RW_ConvertToWordsAndNumbers()
  • Added new mode to support full conversion of dollars and cents to words. The Mode (third) parameter now supports the following three values:
0 = Whole Number in words, Parts in numbers
1 = Whole Number in numbers, Parts in numbers
2 = Whole Number in words, Parts in words *NEW
RW_ConvertToWordsAndNumbersParse()
  • Added new mode to support full conversion of dollars and cents to words. The Mode (third) parameter now supports the following three values:
0 = Whole Number in words, Parts in numbers
1 = Whole Number in numbers, Parts in numbers
2 = Whole Number in words, Parts in words *NEW
Here are some examples of the RW_ConvertToWordsAndNumbers() function in action:
  • RW_ConvertToWordsAndNumbers( 1234.56   ""   0 )
One Thousand Two Hundred Thirty Four Dollars and 56 Cents
  • RW_ConvertToWordsAndNumbers( 1234.56   ""   1 ) returns
** 1,234 Dollars and 56 Cents
  • RW_ConvertToWordsAndNumbers( 1234.56   ""   2 ) returns
One Thousand Two Hundred Thirty Four Dollars and Fifty Six Cents (the above function is incredible; it’s one we’ve wanted for years!) For more information, check out the following blog articles:
Hope you like the improvements.”

Enjoy!

Leslie