Stampede is back!! Or, is it? You decide.

 

Contest-winner

Check out Pam’s post about the re-emergence of Stampede this fall. But really, ‘Stampede’, that is so last decade. I bet you can come up with a better name!

So begins the contest of what to name the new conference. Get all of the details from Pam’s post:

The Power of a Name. Help us Name the New Fall Event

Mark the date, November 10-12. Let’s all go to Fargo in the (brrrrr) fall!

Until next post!

Leslie

Continue reading here:
Stampede is back!! Or, is it? You decide.

February 22, 2014 · Leslie Vail · No Comments
Tags: , , , , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 211

Dex.ini switches – my complete list!

sporting_many_hats_400_clr_12992
As if configuring Dynamics GP isn’t already enough fun, you can enhance your experience even more by modifying the Dex.ini file. Have fun with it! The dex.ini file is inside the Data folder of your Dynamics GP desktop application. Use Notepad, or any other text editor, to open it. Open it, edit it, but be careful with it.

Make sure you read all of the information you can find before you change that first switch. These switches are often overrides to standard behavior and shouldn’t be used without careful consideration.
The Dex.ini file is described by the powers that be in the Dynamics documentation universe as the file that “contains setup and operating information about Microsoft Dynamics GP.” It is also known as the ‘defaults’ file’.

dex.ini

Many years ago, I became enamored with all that you could do with a simple .ini switch.
It started when I discovered a dozen or so switches you could use to change the way the initial release of Integration Manager behaved. That, and because using .ini switches was kind of sneaky Smile – sneaky appeals to my peculiar sense of humor.

As time marched on I learned about more and more switches. Sadly, however, there wasn’t a place I could go to learn about all of them, so I created one. This is my collection.  I add to it whenever I run across a new one. I would love it if you would help me keep this list up to date. Below are settings you can use in the Dex.ini file to change the behavior of Dexterity, Dynamics GP, or both. To use them, you can either edit each workstation’s dex.ini file directly, or do it the right way by using the Support Debugging Tool’s Dex.ini Configuration Manager.
Have fun, but be careful, there is no ‘undo’!

.ini setting Description
ADCProcessor=TRUE You will see this line in the Dex.ini file if you are using Manufacturing and have the checkbox marked in ADC Preferences.
AdvLookups=FALSE
New Users created will NOT be granted access to the Alternate lookup windows in the SmartList dictionary and will instead be assigned the old ‘green bar’ lookup windows.
AllowBCPTest=FALSE Prevents utilities from running the BCP (bulk copy program) test.
AllowLongTableNames=TRUE Will allow you to create long table names in Dexterity. Otherwise, you are limited to eight characters. This is set in the Dexterity options menu.
AllowWrongDex=TRUE Will allow Dynamics GP to launch with mis-matched versions of dexterity. DANGER DANGER this should only be used for troubleshooting, not as a way of getting around the error. Never use this in a production environment.
ApplicationName=name Changes the name the runtime engine displays when it is launched. Without this setting the name “Dexterity Runtime” is displayed. These days, the window doesn’t stay visible very long, so it’s utility is questionable.
AutoDisplayUpdate=TRUE Automatically redisplays the process monitor queue.
AutoInstallChunks=TRUE Causes Dynamics to automatically include the *.cnk file without displaying the ‘Add New Code’ dialog during launch. The could save you some time if you need to roll out changes to several workstations.
BTInterface=NoLoad This applied to the old Btrieve file handler (PSQL 2000) as to whether the interface would load when Dynamics was launched.
Buildphantom=TRUE Allows creation of a Manufacturing Order for a Finished Good Phantom Item
BuildSQLMessages=TRUE This one will copy the Dexterity messages to a SQL table on next login and then it will set it back to FALSE.  Once in a SQL table the messages can be used in stored procedures. The table is DYNAMICS.dbo.MESSAGES
C:DPS1DEX.INI DPSInstance=1
C:DPS2DEX.INI DPSInstance=2
C:DPS3DEX.INI DPSInstance=3
To allow multiple process servers on a single machine. One line for each process server.
CompilerWarningLevel=2 This setting will disable the warnings for all scripts when you are working in Dexterity. Although this option prevents warnings about literal strings, you shouldn’t be using literal strings because it is not considered a best practice. Instead, use the pragma(disable warning LiteralStringUsed); instead of using this setting.
DebugFonts=TRUE This setting causes Dexterity to generate a trace file named “debuglog.txt”. This file lists the fonts that it considered and why particular fonts were chosen or rejected.
DebugRW=XXX This is a long one! Where XXX equals the sum of the values you want to trace from below.
Value = Name Description
1 = QueryOK Specifies if the report will use a single query or not
2 = Sanscript Logs the run report statement as the Report Writer sees it
4 = RW Query Logs all API calls from RW to the Data Manager
8 = RW Setup If used with RW Run, logs all data returned by Data Manager
16 = RW Steps Logs internal RW steps in processing the report
32 = RW Run Logs all RW runtime calls to the Data Manager
64 = DM SQL Logs internal Data Manager structures and SQL Generation
256 = RW Frames Logs the beginning of each report frame
512 = Tab Delimited Logs output as tab delimited output
Output will appear in a log filed named DebugRW.txt next to the application dictionary.
Example: If you want to log if a report is using a query and the SanScript and SQL code used, then add the following line to your Dex.ini file:
DebugRW=67 ; 1 + 2 + 64
Use 895 if you want to track everything.
To help in trouble shooting problems related to the generation of reports, before printing a report you may choose to mark the Multi-Login Report option on the Report Definition window. This will force the system to perform individual table operations instead of creating a query. If you have the SQLLogSQLStmt = TRUE setting included in your DEX.INI. The individual select statements are then included in your DEXSQL.LOG file and can be analyzed to uncover any potential problems.

 

DebugUnknownFile=TRUE Returns a Btrieve or Ctree error code to help track problems with table errors back in the day of Btrieve and Ctree. (version 7.5 and previous)
DevAssistHide=TRUE Prevents the Developer’s Assistant window from opening when you go into Debug mode in Dexterity
DexHelpPath=pathname Path to the Dexterity help files.
Dictionary Version=10.00.1061 The current version of the Dynamics.dic file.
DISALLOWSNLOTAOF=TRUE Prevents users from being able to “create” new lot numbers or serial numbers while transferring an item from one site to another. Version 10 now has a setup option that disallows this, but the box is not automatically checked. GP is good about not changing the old functionality (really, I mean this) so be sure to check your setup screens after each update or service pack for new setup choices – watch for those new checkboxes!
DisplayTableErrors=TRUE, ALL or OPEN When the Dexterity Database Management Subsystem encounters an unknown table error this will display the message “Unknown Error = number”, where number indicates the error that occurred. The ID that’s displayed can be used to determine the cause of the error.
TRUE – Displays only unknown errors.
ALL – Displays all table errors except the two most common: “duplicate” and “not found”.
OPEN – Displays all table errors for an open operation.
DOT4_001winspool=500;750 Horizontal and vertical adjustments to printed documents. DOT4, in this case is the port the printer is attached to Printspool= horizontal;vertical. Below is the window that goes with the .ini setting at left. clip_image002
DPSInstance=1 Tells the runtime engine which instance of the Dynamics Process Server to use.
duUseResourceDlls=FALSE
duExtractSqlResources=TRUE
Extracts all SQL objects (tables, views, stored procedures, etc.) when an installation / upgrade of GP is done. These details can be found in the SQL->Install subfolder inside GP Application Folder. Open GP Utilities, login and you will notice the SQL Resource extraction occurring
DynHelpPath=pathname Path to Dynamics help files
EmailStmtStatusPath=c:documents and settingsuser_namedesktop The path for the delivery of e-mail statements
EmpLookup=2 Causes the Employee Lookup to default to Last Name
EmpLookup=3 Causes the Employee Lookup to default to First Name
EmpLookup=4 Causes the Employee Lookup to default to Social Security Number
EnablePerUserIni=TRUE TRUE will enable the dex.ini per user function
FALSE is the default because it is not included as a default
ExplorerFormatCurrency=FALSE Exports foreign currency (ie £ ) to Excel from SmartLists as numbers instead of text.
ExportOneLineBody=TRUE All fields and text entered in the body of the report will export to a single line when the report is printed to a file. Allows you to enter many fields vertically instead of having to enter them horizontally in the report layout.
All fields and text entered in the body of the report will export to a single line when the report is printed to a file. Using this setting allows you to enter many fields vertically instead of having to enter them horizontally in the report layout. This was what we had to do back in the pre-SQL days. If you don’t exactly have your arms around the SmartList Export Solutions, it’s still a nifty way to ‘export’ Excel formulas. Be sure to change your Excel formula options to R1C1 reference style and you won’t need to keep track of any Excel templates. My clients enjoy just being able to run a Report Writer report to get all of the formulas they need. That, and I already had it written so it was easier. Here is what a simple report looks like with embedded formulas:
clip_image004
EXTPRICINGQTYFREEISADDER = TRUE The EXTPRICINGQTYFREEISADDER option is included in the extended pricing component to let you type a negative value in the Maximum Quantity Free box. The extended pricing component uses a negative value in this box to let the Maximum Quantity Free field behave in an additive manner instead of as a multiplier. Refer to KB article 910125.
FAGroupPath=Pathnamefilename
FAPhysicalInventoryPath= Pathnamefilename
FAPhysInvInfoPath= Pathnamefilename
FAAssetImportPath= Pathnamefilename
FAAssetIDExportPath= Pathnamefilename
FAAssetLabelExportPath= Pathnamefilename
FAMacroPath= Pathnamefilename
FASampleDataPath= Pathnamefilename
A group of settings that determine the import/export file names for user preferences in Fixed assets. Setup>>Fixed Assets>>User Preferences
   
dex.ini switch description
FHCheckRanges =TRUE This setting specifies whether to log the instances when Dexterity decides which type of range to use for tables that use the SQL database type. The log will list all instances when Dexterity detected a range that was not “well-behaved” and whether Dexterity used an exclusive or inclusive range. The FHRANGE.LOG text file to be generated in the same location as Dexterity or the runtime engine.
FileHandler=SQL This use to be the DatabaseType and was used to determine in part what kind of tables to create when Ctree and Btrieve (PSQL 2000) were supported.
FLEXICODER_UPDATE_SEGMENTS=FALSE If using the Flexicoder product from eOne Solutions, this determines whether the segment table is updated.
FormDictionaryPath=pathname
ReportDictionaryPath=pathname
These are new for version 10 and welcomed with open arms! These lines tell dexterity where the forms/reports should default to when installing a new .cnk file. Switch it to a shared location for a shared forms/reports.dic and any new dictionary applications that are installed will default to that location instead of the client installation folder. The default location is to store Forms and Reports dictionaries in the Data folder of the GP folder.
HideInvisibleLayoutFields=FALSE Indicates whether the invisible window fields should be displayed in the Modifier.
HideInvisibleLayoutFields=FALSE Remembers the setting for the Modifyer Layout window as to whether Invisible fields will be displayed.
IdleLoopValue= number A numeric value that represents a setting to control how background tasks interface with the CPU.
IdleLoopValue=0 Voluntarily give up the CPU when sitting idle and allow background processes to execute only as often as the OS issues a timer event. Under this setting, the runtime asks to be notified every 50 milliseconds or 20 times a second. Using this setting will cause some processes to be slower than in previous releases, but it will not allow the CPU to be pegged at 100% utilization.
IdleLoopValue=-1 Use as much time as possible to execute background processes. Under this scenario, the CPU would never voluntarily be given up to other applications when sitting idle. This is the default setting and would cause the runtime to behave the same way as it has in previous versions of the Dexterity
runtime.
IdleLoopValue=some positive number maximum 500 This value is interpreted as the number of times to process a part of a background task before voluntarily giving up the CPU. This can somewhat control the amount of CPU utilization taken up by background tasks. A typical range for the IdleLoopValue when setting it to a positive number would be
between 5 and 10. Generally, you would never go above 200, even though the maximum is 500.
Initial=FALSE This line is associated with the automatic creation of palettes; it was used only Release 1 of Dynamics. It will default as equal to FALSE, you can delete it without ill effect.
IsWebClient=TRUE The setting can set to TRUE or FALSE to override the Runtime_GetClientType() function library command
LastTaxCodeUpdate=02/28/2008 The date of the last payroll tax code update, informational only
LastYearEndUpdate=11/14/2007 The date of the last payroll year-end update, informational only.
LayoutLayout1=162,20,833,616
LayoutToolbox=1,1,156,382
LayoutPropertiesSheetTab=1
LayoutPropertiesSheet=940,63,270,349
LayoutPropertiesSheetVisible=FALSE
LayoutLayout2=169,28,615,391
 
Used to save the adjusted window size of the Layout window within Report Writer.
Letters Directory=c:Program FilesMicrosoft DynamicsGPDataLetters Sets the path to the Letters parent folder that contains the letter templates used with the Letter Writing Assistant.
ListsFastExcelExport=TRUE An unsupported switch that speeds up exports for all of the Navigation lists that show in the navigation pane. This switch is similar to the SmartlistEnhancedExcelExport=TRUE switch except the later applies only to SmartList objects
MagnifyScreenOutput=100 When a report is printed to the screen, this is the magnification setting.
MainProduct=TRUE If you are using Dex to develop a stand alone app dev tool
MaxSWScrollbarSize=XXX To allow the scrollbars to get bigger than 25 lines.
MFGRollupPhantomLabor = TRUE
To roll costs on Phantom Bills of Material in MFG
MinPMCheck=50.00
Used in conjunction with PSTL free tool to set the minimum payables check amount. This is used in conjunction with the Select Checks window. It doesn’t limit the check if you use Edit Check Batch or some other window to print your checks. No check for under the amount specified will be created. In this example the minimum check would be $50.00
NextEntryID=
NextGroupID=
When a call background statement is executed in sanScript, Dex creates an entry for that script in the background script queue and assigns it an EntryID. Similarly, when Dex executes the begingroup statement in sanScript, it creates a group item, assigns it a GroupID, and adds it to the background or remote queue. As Dex is running, those IDs are assigned sequentially. So the first call background will be assigned an EntryID of 1, the next would have an EntryID of 2, etc… The same is true for GroupID’s and begingroup. When Dynamics or Dexterity is closed, it writes the current value for those IDs to the dex.ini file. When Dynamics or Dexterity starts up, it reads those items and starts with those values for future background scripts or groups.
NoPrintDialogs=TRUE Print Dialog boxes will not appear. This is a Print Dialog box:
NoteWindow=37,37,450,299 Used to save the adjusted window size of the Record Notes Window.
OldRelationshipWindow=TRUE Just kidding, this one doesn’t work anymore. For the oldies among us, remember when Report Writer would let you create invalid relationships? Like you could build a relationship between a string field and an integer field. Hey, sometimes you needed to! This switch allowed the old Relationship Definition window to work again. This switch was used prior to version 8.
OLE_Application1=C:RepairCBDChain.exe If you run Microsoft Dynamics GP 10.0 in a Citrix environment, the copy (CTRL+C) and paste (CTRL+V) functionality does not work in Microsoft Dynamics GP. You can no longer copy or paste between a local application and a session or between different applications in a session. See KB 958404 for the complete explanation of using this switch.
OLEPath=pathname Used to indicate where OLE objects that are attached to Dynamics record notes should be stored. Thanks to Matthew, I have a new solution to this one. Apparently, you CAN use the UNC path so long as you have the folders pre-created for each company. Read explanation below:
You only need one line in the dex.ini to accommodate multiple GP companies. If you have three companies in GP (CMP1-CMP3) the line in the dex.ini would still be, for example,
OLEPath=ServerNameGPShareOLE
For this path to work with the three companies, you would need to manually add the company directories under the OLE directory on the share. For example, the folders would look like this:
GPShareOLECMP1OLENotes
GPShareOLECMP2OLENotes
GPShareOLECMP3OLENotes
If you’re using a local drive or a mapped drive instead of UNC for the OLEPath, this directory structure is automatically created for you by GP.
If you don’t have the folder structure set up first, UNC will not work. IP addresses won’t work either. You will need to use a mapped drive for the system to create them on the fly.
 
OLEPathHR=pathname/ Used to indicate where OLE objects attached to notes in the HR module are stored. This must be a mapped drive, UNC will not work.
PAPRINTFEESBEFORECC=TRUE Will cause fees to print before the cost categories on a Project Accounting invoice
Pathname=DYNAMICS/dbo/ Location of the Pathnames table (SY02100). When Ctree and Btrieve (PSQL 2000) were supported this line contained a path with either a drive mapping or UNC path to the Dynamics data directory. Today this setting points to the database containing the SY02100 table.
POReturnsMod_ReturnedQTYCheck=TRUE Enables additional shipment matching functionality in the POret.cnk file. This additional functionality is on the Match Shipments to Invoice Window (opened from the Purchasing Invoice Entry window). The Match Shipments to Invoice Window checks the previously returned quantity to ensure that the quantity returned against a shipment line is not greater than the quantity originally shipped.
PrintReportDefinitionOptions=2 Indicates which of the six checkboxes are checked in Report Writer when the ‘Print Definitions’ button is selected. The value is the sum of each checkbox that is checked. The six checkboxes and their values include:
1 = General Information
2 = Calculated Fields
4 = Table Relationships
8 = Sort Segments
16 = Restrictions
32 = Layout Information
If only General Information and Sort Segments should be printed the value here would be 9.
 
QueueMoreInfo=TRUE clip_image006
Adds a More Info button to the Process Monitor window which displays the window above when selected.
ReportDictionaryPath=pathname
FormDictionaryPath=pathname
The lines in the dex.ini are for if you add a new dictionary (say I gave you a new customization) then those lines tell dexterity where the forms/reports should default to.  So you could switch it to a shared location for a shared forms/reports.dic and everything will default there in the future. The default location is to store Forms and Reports dictionaries in the Data folder of the GP folder.
ReportLayout=158,155,814,617 Used to save the adjusted window size of the Layout window within Report Writer.
ReportViewMode=1
REVALUEINDETAIL=TRUE This gives you the ability for the cost adjustment entries to post in detail to the general ledger. The default behavior is to create a single summarized journal entry. The April Hot Fix also includes the ability to get the Purchase Receipt Update Detail (PRUD) report to print in detail. If the ‘Print’ check box is marked for the Cost Variance Journal in the Posting Setup window for the Sales, Inventory and Purchasing series, then this report is also printed whenever there is a cost adjustment and there are general ledger transactions that need to be posted. By default, this report prints in summary. To force this report to print in detail, there are two modified reports that are available at the Great Plains Reports Library located at: https://mbs.microsoft.com/customersource/support/downloads/reportslibrary/gp_reportslibrary.htm that can be downloaded and added to your reports dictionary. After that is completed, you must also grant access to the modified report. After those reports and the dex.ini entry is in place, these reports will provide additional detail supporting the cost changes that are occurring within the Inventory Control module. The reports will provide:
• outflow (sales or inventory) document number
• Item number affected
• quantity of the item on the outflow transaction
• old unit cost of the item on the outflow transaction
• new unit cost of the item on the outflow transaction
• calculated difference between the two costs
• extended amount (quantity * cost difference)
The PRUD report is a “one time” report that is produced at the time of posting and can’t be regenerated so it is essential that this report be printed to paper or file anytime it is produced.
 
RuntimeAsserts =TRUE Forces the runtime engine to display a dialog box for any assertion that fails.
RwFontChangeSizing=False
RWLayoutPropertiesSheet=822,25,270,349 Used to save the coordinates of the Properties window within Report Writer.
RWLayoutPropertiesSheetTab=2 Used to save which tab is selected in the Properties window within Report Writer
RWLayoutPropertiesSheetVisible=TRUE Used to indicate if the Properties window within Report Writer is visible.
SAMPLEDATEMMDDYYYY=00000000 To prevent the dialog box from being displayed and to use the current system date
SAMPLEDATEMMDDYYYY=MMDDYYYY To prevent the dialog box from being displayed and to use a user-specified date
SAMPLEDATEMSG=FALSE To prevent the dialog box from being displayed while leaving the date as April 12, 2017.
ScriptDebugger=TRUE Turn Script Debugger Features on in Runtime Mode.
ScriptDebuggerProduct= Specify Product ID of product to be debugged to allow Open Script.
ScriptEditorFontName = FontName Entering a font name here will cause Dexterity to use that font in the Dexterity Script Editor or Script Debugger window. Without the switch you can only choose Courier, Helvetica, Times or System.
ScriptEditorFontStyle=Bold,Italic,Underline (use whichever ones you like) This switch allows you to set the Bold, Underline, or Italic setting of the font used in the Script Editor. 
While the Script Editor window will respect the settings for the ScriptEditorFontName and use that font, the Dexterity Options window DOES NOT know about the change.  If it finds a font in the Dex.ini it doesn’t know about, it will switch your Dex.ini to use the default Courier font.  So if you need to go into the Options window you’ll probably have to change your Dex.ini again to reflect the font you’d like to use.  This is the price of using this particular undocumented feature.
ScriptLogEnhanced=TRUE Enabling this feature will add a Timestamp to the beginning of each line in the Script Log and will also flag scripts running in the background with a “B”.
Note: This setting is only supported on version 10.00 Service Pack 4 or later.
semicolon (;) in front of the ST_MachineID= setting
Turns off Named Printers for that workstation
ShowAdvancedMacroMenu=TRUE Display additional menu under Tools >Macro.
When you get that message that says your macro failed on line 65,423 you can use this to open your macro and jump right to the line of failure for analysis. Being a frequent user of the ‘Mail Merge’ macro, I use this frequently to find out what went wrong in the middle of my macro. Another cool thing about this is that it lets you start a macro at any line, no more macro surgery. Also, there’s no separate .cnk to install. A simple .ini switch does the trick!
ShowAllMenuItems=TRUE Shows all menu items even if the user does not have access to them. This doesn’t change the user’s access to the windows; it just will display the menu items even if they have been disabled.
ShowReportName=FALSE Keeps the Screen Output window from displaying the current report’s display name.
ShowResIDs=TRUE This line will allow Dexterity to show the Resource ID of the current script in the script editor as well as showing the column ID & Res Type in the Dexterity Resource Explorer
SkipVersionChecks=TRUE
 
To disable version compatibility checking. DANGER
SmartlistEnhancedExcelExport=TRUE Uses a different method to export data to Excel. It’s much faster, but certain things do not export correctly, some foreign currency symbols for one. Also it strips off leading zeros. Test it first before deploying.
SmartlistMatchCasePrefs=TRUE
This change to the Dex.ini file enables the following two options for the SmartList security settings:
– Mark the ‘Match Case’ checkbox by default when performing searches.
– Disable the ‘Match Case’ checkbox on the SmartList Search window.

SQLCursorBlockSize=100 Removing this setting To prevent the Loop stopping at 25 records when looping through a range of records with Dexterity.
SQLDataSource = data_source_name This setting causes the specified data source name to appear in the Data Source field in Dexterity’s SQL Login window. A user may choose another value from the drop-down list, should he or she want to connect to a different data source.
The SQLDataSource setting won’t affect a login window you create unless you use the
Defaults_Read() function and the set statement to make this setting’s value appear as the default value for the data source field.
SQLDropTableOnDelete=TRUE Will cause the drop functionality, which removes the data AND the table structure from the database, when the delete table statement is used with a SQL table. Unless the Table_SetCreateMode() is set to true, the dropped tables won’t be created automatically then next time a user tries to access them. DANGER
SQLDynamicScrollJump = number number = The maximum number of rows a cursor will move when a user moves the scroll box, the default is 100.
SQLLastDataSource= data_source_name The name of the most recently accessed data source. That value will then appear as the default in the predefined Login window the next time that window is used on the current computer.
SQLLastUser = user_ID The user ID of the most recent user to connect to a data source using the current computer.
SQLLogAllODBCMessages=TRUE This setting does nothing. The only setting you need for ODBC logging is SQLLogODBCMessages=TRUE (see below). This is a left over setting that isn’t used anymore.
SQLLoginCompatibilityMode=TRUE In previous versions, SQL Logins were tried with the new 9.0 encryption, the pre 9.0 encryption, plain text login, and then the new encryption model.  This would give the user 4 login attempts if they accidently typed in the wrong password.  With release 10, only the current encryption will be tried.  If the user needs to use the “old” methods – for example just logging in after an update from 8.0 or if the password was changed via SSMS to plain text, adding the dex.ini switch SQLLoginCompatibilityMode=TRUE will revert to the previous behavior.
SQLLoginTimeout = number_of_seconds Limits the length of time (in seconds) your application will wait for a data source login attempt to be completed. A login doesn’t have to be successful to be completed; rather, an attempt to log in must be made and a status code defining the result of that attempt must be returned.
The default is 15 seconds if this entry is not included in the dex.ini. To cause your application to wait indefinitely for a status code to be returned, set this value to 0 (zero).
SQLLogODBCMessages=TRUE Log ODBC messages returned from SQL Server to DEX.SQL file.
SQLLogPath=path This setting allows you to specify the location of the DEXSQL.LOG file created when either or both the SQLLogODBCMessages or the SQLLogSQLStmt defaults file settings are active.
SQLLogSQLStmt=TRUE Log SQL statements being sent to SQL Server to DEX.SQL file
SQLNumLoginTries = number The maximum number of login attempts allowed before GP exits. The default is three. Use negative one (-1) for an unlimited number of tries.
SQLPassword = password This setting allows you to define the default password that will appear in the password field when logging into a data source using Dexterity’s predefined SQL Login window. This setting won’t affect a login window you create for use with your application unless you use the Defaults_Read() function and the set statement to make this setting’s value appear as the default value.
SQLProcsTimeout=0 Including this setting in your DEX.INI file will control the period of time Dexterity will wait for a SQL stored procedure to execute. When set to 0 it will wait indefinitely. A valid range of values for this setting are 0 to 9999. If this setting is not included, the default value is 300 seconds.
SQLQueryTimeout=0 Including this setting in your DEX.INI file will control the period of time Dexterity will wait for a SQL query to execute. When set to 0 it will wait indefinitely. A valid range of values for this setting are 0 to 9999. If this setting is not included, the default value is 300 seconds.
SQLRptsTimeout=0 Including this setting in your DEX.INI file will control the period of time Dexterity will wait for a report to generate. When set to 0 it will wait indefinitely. A valid range of values for this setting are 0 to 9999. If this setting is not included the default value is 300 seconds.
SQLUser = user_ID This setting allows you to define a specific user ID as the default value to use in the User ID field of Dexterity’s predefined SQL Login window. The SQLUser setting won’t affect a login window you create for use with your application unless you use the Defaults_Read() function and the set statement to make this setting’s value appear as the default value for your own user ID field.
ST_ lines that appear in the dex.ini file. Removing all of these settings. Stops named printers from being used on a workstation.
ST_Debug=LOG Creates a log file in the local code folder named ST_DEBUG.LOG that can be used to troubleshoot Named Printers when the program does not use the printer that you specified in the Named Printers Options dialog box. Microsoft Dynamics GP may use the wrong printer even though you specifically changed the printer in the Named Printers Options dialog box. In v 10 this log file is created in the Data subfolder inside the local code folder.
ST_MachineID=machine_id The machine ID for named printers.
ST_SetDefault = FALSE Turns off the setting of default printers in named printers
ST_SetDefault=TRUE Sets the default machine ID for named printers.
ST_SOP_Shortcut=4105,0,0,0 Stores settings for the SOP QuickPrint Feature (which is part of Named Printers)
StdInternationalInfo=TRUE This setting allows the operating system settings for date, time, and currency formatting to be overridden.
TRUE = Use Dexterity standard formats for date, time, and currency values mm/dd/yy.
FALSE = Use control panel settings for date, time, and currency values

StdInternationalInfoDateCentury= This setting allows control over the year portion of the date values used by StdInternationalInfo
TRUE = Four digits will be used for the year portion of date values
FALSE = Two digits will be used for the year portion of date values

StdInternationalInfoDateZeroPrefix This setting allows control over the date format for SdtInternationalInfo
TRUE = Single-digit day and month values will be prefixed with a 0 (zero)
FALSE = Single-digit day and month values will not be prefixed

SuppressChangeDateDialog=True Use this to prevent the dialog from opening asking you if you want to change the date when it hits midnight. The problem was that the dialog would open and crash any integrations you were running overnight. Be careful with this one, not only does the dialog not display, but the computer date doesn’t change either – so be sure to watch this if running overnight integrations.
SuppressSound=TRUE Stop Dexterity and Dynamics from generating any sounds. This is popular if you don’t want the whole office to hear the computer ‘beeping’ when you make mistakes. It was also popular back in the ‘Welcome to Dynamics’ .wav file days.
Synchronize=FALSE Indicates whether Dynamics Utilities has synchronized the Dynamics.dic to the account framework that is defined in Dynamics Utilities. FALSE signifies that the Dynamics.dic has been synchronized. If a user needs to resynchronize the dictionary, this line should be modified to equal TRUE and then launch Dynamics Utilities.
taShipmentNotificationAllowVoids = true If this switch exists in the dex.ini and is set to true, invoices will be able to be voided, even if they have Purchase Order Commitments.
taShipmentNotificationAlwaysPost = true If this switch exists in the dex.ini and is set to true, invoices will always be allowed to post, even if the Shipped flag is not marked.
taShipmentNotificationAlwaysTransfer = true If this switch exists in the dex.ini and is set to true, orders will always be allowed to be transferred to invoices, even if the Shipped flag in the taShipmentNotification table is not marked.
The following Additional Window is available if you do not want to use taShipmentNotificationAlwaysTransfer = true. If you want a user other then ‘sa’ to have access, you must set up security. The following example is one way to set up security
Go to Shortcuts and click Add >> Add Window. Click on Shipment Notification >> Purchasing >> Shipment Notification and click Add and then click Done.
clip_image008
1. You can now use the following window to specifically select which documents can transfer without doing a Purchase Invoice.
clip_image010

Tolerance=0 The Tolerance command will ignore the font defaults and force the system to use the font utilized in Great Plains.
Tolerance=-1 The Tolerance command will ignore the font defaults and force the system to use a true type font.
Tolerance=100 The Tolerance command will ignore the font defaults and force the system to use the default font set in Great Plains.
TPELogging=TRUE This is related to the new Word Template AddIn
Used to gather information where an exception has occurred. It points the combine process where I will go in and debug the TPE.”.
The log is created in the %temp% directory where the actual Word document is rendered and its content looks something like this:
10 hours. 57 minutes.13 seconds. 901 milliseconds. :20050: Combine.Unhandled
TPE was indicating that there was an issue with an exception not being handled when the XML data from Report Writer was being combined with the actual Word template.
This allowed Rob and his team to start tracking down the issue with my template from the source code and provide me with an alternate route to solve my problem.
As a final note, it seems there is an issue as well with TPE not clearing some process after choosing to remove the exception from the Report Processing Status window. In turn, this prevents shutting down GP via the Exit option, having to use the Windows Task Manager to force the termination of the DYNAMICS.EXE process. Rob’s team is on this too.

 
TXFileDate=31 Dec 2006 Indicates the date of the last payroll tax table update, information only. Only available from the machine on which the tax update was performed
UpdateLogin=https://mbsupdates.microsoft.com/taxupdate/login.aspx The entry that should be in the .ini file so the payroll tax updates will connect correctly.
UseUniqueHelp=FALSE This setting allows you to override the default value for the UseUniqueHelp property for fields when implementing context-sensitive online help. FALSE indicates that the UseUniqueHelp property will default to False for new fields.
WDC_DEBUG=LOG
Debug messages to Log file
WDC_DEBUG=TRUE
Debug messages to Screen
This will create a WDC_SDBG.log file in your local code folder to use debugging Advanced Security Issues
WDC_SecurityDisableWarning=TRUE This keeps GP from asking if you want to open advanced security instead of regular security when you select regular security from System setup
WindowGridHeight = height in pixels This setting allows you to define the height in pixels of a grid block in the Layout window.
WindowGridWidth = width in pixels This setting allows you to define the width in pixels of a grid block in the Layout window.
WindowHeight=n The height of the Main Window in Dynamics if WindowMax=FALSE
WindowMax=TRUE This parameter is used to verify the size of the Main Window in Dynamics. If the setting is set to TRUE, it is full screen. If the setting is FALSE, adjustments have been made and additional Window parameters will be listed below the WindowMax setting.
WindowPosX=n The X position of the Main Window in Dynamics if WindowMax=FALSE
WindowPosY=n The Y position of the Main Window in Dynamics if WindowMax=FALSE
WindowWidth=n The width of the Main Window in Dynamics if WindowMax=FALSE
Word Macro File=c:Program FilesMicrosoft DynamicsGPDataLettersWordIntegration.dot Sets the path to the WordIntegration.dot documents template that is used with the Letter Writing Assistant.
Workstation=location_translation_ID Location translation ID that is found in the Location Translation table. This line would be modified if a user has created an additional location translation in the Location Translation Setup window. This line will default as equal to WINDOWS.
Workstation2 = dictionary_location_ID The dictionary_location_ID indicates a set of dictionaries in the Dynamics.set file that you want a given workstation to use. Each set determines the location of the main dictionary and its forms and reports dictionaries.
WysiwygLayout=TRUE Saves the setting in Modifier as to whether the field names are displayed. TRUE means the field names are not displayed. FALSE means the field names are displayed.
ZoomFontColor=Green Saves settings in the Display area of the User Preference settings.
ZoomFontUnderline=True Saves settings in the Display area of the User Preference settings.

Until next post!
Leslie

View the original here:
Dex.ini switches – my complete list!

February 20, 2014 · Leslie Vail · No Comments
Tags: , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 589

The Dynamics GP Blogster: Microsoft's #Empowering Super Bowl …

The Dynamics GP Blogster. “Your Microsoft Dynamics GP world without barriers” Subscribe to: Post Comments (Atom) …. 13 hours ago. Dynamics Confessions Blogspot …. The new is is located at: http://saci.com/blogs/bel.

Visit link:
The Dynamics GP Blogster: Microsoft's #Empowering Super Bowl …

February 3, 2014 · Mariano Gomez · No Comments
Tags: , , , , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 192

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, they were 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

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

User date the invoice or pmt was fully applied, voided is fully applied, write-off can be fully applied

PSTGDATE

Posting date for the invoice or payment; set by user on batch window or doc date expansion window

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

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

User date the invoice or pmt was fully applied, voided is fully applied, write-off can be fully applied

PSTGDATE

Posting date for the invoice or payment; set by user on batch window or doc date expansion window

VOIDPDATE

The Posting Date (GL) 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. 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.

Until next post!

Leslie

Follow this link:
What’s in a date? PM Transactions

February 1, 2014 · Leslie Vail · No Comments
Tags: , , , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 287

TSQL – Fun with Dates!

clock_and_calendar_400_clr_9588

Are you constantly needing to come up with different relative dates in reports, SmartLists and the like? I found this great list of date calculations from Pinal Dave and Vivek Jamwal. I’m duplicating it here because 1) I’ll be able to find it, and 2) I wanted to share my find with the Dynamics GP community.

Please note: some of the formulas in the table can be replaced using the new functions in SQL 2012 – links below table.

At the end of this post, I have included several links to various DateTime related articles. Included are articles about the new DateTime functions in SQL 2012!

Enjoy, and thanks again to Pinal Dave and Vivek Jamwal.

DATE

CODE

RESULT ON 09/13/2010

Current date (and time)

select GETDATE()

09/13/2010

First day of current month

select DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)

09/01/2010

Last day of current month

select DATEADD(ms, -3, DATEADD(m, 0, DATEADD(m, DATEDIFF(m, 0, GETDATE())+1, 0)))

09/30/2010

First day of previous month

select DATEADD(m, -1, DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0))

08/01/2010

Last day of  previous month

select DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0))

08/31/2010

First day of  next month

select DATEADD(m, 1, DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0))

10/01/2010

Last day of  next month

select DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, DATEADD(m, 2, GETDATE())), 0))

10/31/2010

Last day of month 2  months ago

select DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, DATEADD(m, -1, GETDATE())), 0))

07/31/2010

Last day of previous month in the previous year

select DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, DATEADD(m, -12, GETDATE())), 0))

08/31/2009

Monday of current week

select DATEADD(wk, DATEDIFF(wk, 0, GETDATE()), 0)

09/13/2010

Sunday of current week

select DATEADD(wk, DATEDIFF(wk, 0, GETDATE()), 6)

09/19/2010

Fourth Monday of current month

select case when (2-DATEPART(dw, (DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)))) >=0 then DATEADD(wk, 3, (DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)) + (2-DATEPART(dw, (DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0))))) else DATEADD(wk, 4, (DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)) + (2-DATEPART(dw, (DATEADD (m, DATEDIFF(m, 0, GETDATE()), 0))))) end

09/27/2010

Second Thursday of current month

select case when (5-DATEPART(dw, (DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)))) >=0 then DATEADD(wk, 1, (DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)) + (5-DATEPART(dw, (DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0))))) else DATEADD(wk, 2, (DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)) + (5-DATEPART(dw, (DATEADD (m, DATEDIFF(m, 0, GETDATE()), 0))))) end

09/09/2010

First day of current year

select DATEADD(yy, DATEDIFF(yy, 0, GETDATE()), 0)

01/01/2010

Last day of current year

select DATEADD(ms, -3, DATEADD(yy, 0, DATEADD(yy, DATEDIFF(yy, 0, GETDATE())+1, 0)))

12/31/2010

First day of previous year

select DATEADD(yy, -1, DATEADD(yy, DATEDIFF(yy, 0, GETDATE()), 0))

01/01/2009

Last day of previous year

select DATEADD(ms, -3, DATEADD(yy, 0, DATEADD(yy, DATEDIFF(yy, 0, GETDATE()), 0)))

12/31/2009

First day of April in the current year

select DATEADD(m, 3, DATEADD(yy, DATEDIFF(yy, 0, GETDATE()), 0))

04/01/2010

First day of April in the previous year

select DATEADD(m, 3, DATEADD(yy, DATEDIFF (yy, 0, DATEADD(yy, -1, GETDATE())), 0))

04/01/2009

Here are some links to other helpful DateTime articles:

SQL datetime formatting function–convert to string

Part 1 Working with SQL Server DateTime Variables

Part 2 Displaying Dates and Times in Different Formats

Part 3 Searching for Particular Date Values and Ranges

Part 4 Date Math and Universal Time

SQL SERVER 2012 – Date and Time Functions

Until next post!

Leslie

Taken from:
TSQL – Fun with Dates!

February 1, 2014 · Leslie Vail · No Comments
Tags: , , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 314

There is an error with at lease one vendor record, print the customer/vendor record for details

This is an error I thought I’d add to our ‘When Things Go Wrong’ section. My thanks goes to Alaa Ramadan, who both identified the error and discovered its solution.  You can find the thread here.
The error presented itself when the user was attempting to complete a refund check transaction in the RM module. (Sales | Transactions | Refund Checks).

As it turned out, the associated vendor record had been put on hold thus preventing the refund check creation.  Clearing the hold checkbox on the Vendor Maintenance window solved the problem.
Thanks Alaa!

Until next post,

Leslie

Visit link:
There is an error with at lease one vendor record, print the customer/vendor record for details

January 12, 2014 · Leslie Vail · No Comments
Tags: , , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 276

Form W-2 Common Errors – Codes for Retirement Plans

This information comes straight from our friends at the IRS, it describes common mistakes made on Forms W-2. I have run into many of these as our clients begin to prepare their annual filings.

If you find that you are missing any of these items, be sure to modify the payroll card rather than just editing the W-2. If you need to change the W-2 (and W-3), you can re-create the year-end wage file.

If you have already loaded the 2014 tax tables, change the FICA table to reflect the 2013 amounts before re-creating the files. Change them back when you are done. Listed below are the rates for 2013 and 2014

Code Year Rate Limit
EFICM 2013 1.45% no limit
EFICS 2013 6.2% $113,700
FICAM 2013 1.45% no limit
FICAS 2013 6.2% $113,700
       
EFICM 2014 1.45% no limit
EFICS 2014 6.2% $117,000
FICAM 2014 1.45% up to $200,000
FICAM 2014 2.35% over $200,000
FICAS 2014 6.2% $117,000

Depending on how many you have to change, you could also edit the Year-end wage files.  Those files are:

Physical Name Technical Name
UPR10100

UPR_Year_End_WORK_HDR

UPR10101

UPR_Year_End_WORK_Wage

UPR10103

UPR_Year_End_WORK_Pension

UPR10104

UPR_Year_End_WORK_Special

UPR10105

UPR_Year_End_WORK_State

UPR10106

UPR_Year_End_WORK_Local

UPR10107

UPR_Year_End_WORK_Other

Here are the IRS rules:

You must ensure that the information on Form W-2, Wage and Tax Statement, and Form W-3, Transmittal of Wage & Tax Statements, you issue to your employees contains correct retirement plan information because:

  • employees need accurate information to determine the correct deductions and credits on their tax return, and
  • IRS agents use the information from these forms to determine whether employers are complying with income and employment tax reporting requirements.

Common mistakes
During Form 5500 examinations and EPCU projects, IRS agents found employers using incorrect codes in Box 12 of Form W-2, for example:

  • code D for 401(k) elective deferrals incorrectly included 403(b), 457, or non-qualified amounts.
  • code E for 403(b) contributions but did not have a 403(b) plan.
  • code H to incorrectly report health benefits; code H is for elective deferrals to a 501(c)(18)(D) tax-exempt organization plan. (In fact, a recent Employee Plan Compliance Unit project found that only 6 % of employers who used this code actually contributed to a 501(c)(18) plan.)
  • code S for a SIMPLE 401(k); the correct code for a SIMPLE 401(k) is code D.

Common codes used for Box 12

Letter code:
Used for:
Description:

D
401(k) contributions
Elective deferrals to a 401(k) cash or deferred arrangement, including SIMPLE 401(k)s

E
403(b) contributions
Elective deferrals made under a 403(b) salary reduction agreement

F
408(k)(6) contributions
Elective deferrals made under a SARSEP

G
457(b) contributions
Elective and nonelective deferrals made to a 457(b) deferred compensation plan

H
501(c)(18)(D) contributions
Elective deferrals to a Section 501(c)(18)(D) tax-exempt organization plan (Included in the “Wages, Tips, Comp.” amount in Box 1)

S
408(p) SIMPLE contributions
Deferrals made under a SIMPLE IRA plan

AA
Roth contributions
Designated Roth contributions under a 401(k) plan

BB
Roth contributions
Designated Roth contributions under a 403(b) plan

EE
Roth contributions
Designated Roth contributions under a governmental 457(b) plan (a tax-exempt organization’s 457(b) can’t have a designated Roth account)

See the Instructions for Forms W-2 and W-3 for a complete list of codes.

Form W-2, Box 13
The “Retirement plan” indicator in Box 13 shows whether an employee is an active participant in your company’s plan. If this box is checked, it lets the recipient know that depending on their filing status and modified adjusted gross income, they may not be entitled to a full deduction for their traditional IRA contributions. You should check the retirement plan box if an employee was an “active participant” for any part of the year in:

  • a qualified pension, profit-sharing, or stock-bonus plan under Internal Revenue Code Section 401(a) (including a 401(k) plan).
  • an annuity plan under IRC Section 403(a).
  • an annuity contract or custodial account under IRC Section 403(b).
  • a simplified employee pension (SEP) under IRC Section 408(k).
  • a SIMPLE retirement account under IRC Section 408(p).
  • a trust described in IRC Section 501(c)(18).
  • a plan for federal, state, or local government employees or by an agency or instrumentality thereof (other than a 457(b) plan).

Active participant
Generally, an employee is an active participant if covered by a:

  • defined contribution plan (for example, a 401(k) plan) for any tax year and is credited with any contributions or forfeitures, or
  • defined benefit plan for any tax year that the employee is eligible to participate.

Don’t check the retirement plan box if your company only has non-qualified or 457(b) plans.

Form W-3, Box b
Form W-3, Box b has checkboxes to specify the type of employer filing the form. You should check the appropriate box if you are a:

  • non-governmental tax-exempt 501(c) organization;
  • state or local government or instrumentality;
  • state or local government or instrumentality and have received a determination letter from the IRS indicating that you are also a 501(c)(3) tax-exempt organization; or
  • federal government entity or instrumentality.

Otherwise, you should check the “None apply” box. Only check one box.

Page Last Reviewed or Updated: 22-Nov-2013

Until next post!

Leslie Vail

Read the original:
Form W-2 Common Errors – Codes for Retirement Plans

January 8, 2014 · Leslie Vail · No Comments
Tags: , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 371