V12.0.115 / 14.0.58 /16.0.26
* NEW System Tweak: Password Expiration Alert-provides an alert to users x-days ahead of when the password will expire.
* Alert Builder: made Product ID field editable
* Alerts: Addressed issue that occurred when switching users that resulted in the warning “Your attempt to log out of Microsoft Dynamics GP failed because one or more tables are open.” #20176339
MORI WIP Transfers
We just released (3-OCT-2017) a new build of MOGenerator’s MO Receipt Integration (MORI) that now has support for WIP Inventory. This new functionality provides the ability to record usage of raw materials as it happens. There are two components of the new functionality: (1) adjusting Picklists for WIP transfers, and (2) forcing consumption of components from the WIP Site.
WIP Transfers
The process is tailored for an external application integrating into GP, such as a Warehouse Management package, or Shop Floor Control software. We designed this approach in consultation with Without Wire Inventory Sciences.
After creating a Manufacturing Order in GP, the external software retrieves the Picklist from GP and uses it to create one or more Inventory Transfers to move inventory from stock to WIP.
The Inventory Transfer is a “picking transaction” for a Manufacturing Order. The external software tells MORI about the transfer by adding a record to the MOIVTrx table.
When the MORI processor runs, the first step is now to check the MOIVTrx table for new transfers. As shown above, there are two transfers for MO0017.
It processes transfers IN to the WIP Site first, then transfers OUT of WIP. The items transferred are matched to lines on the MO’s Picklist.
When inventory is transferred into WIP, the original Picklist line is decreased by the transfer quantity. A new Picklist line is added for the same item where the Issue From Site is the WIP Site. An example is shown above.
In the example, 0.75 FEET of WIRE100 have been transferred into WIP from WAREHOUSE. The original Picklist line with Issue From of WAREHOUSE, was decreased from 1.00 to 0.25, and a new Picklist line was added for 0.75 with an Issue From of WIP.
The original line will draw down until it reaches zero, but the WIP line will increase to show the entire quantity transferred into WIP. Likewise, if a transfer is posted OUT of WIP back into WAREHOUSE, the WIP line will be decreased until it reaches zero, and the original line will be increased until it reaches the original quantity.
There are several effects to note about this process.
First, inventory used by manufacturing can be put into WIP at the moment it is picked, and the MO does not need to be Released. This ensures the GP inventory quantities are current and accurate.
Second, by automatically adjusting the Picklist to reflect the transfer, Materials Requirements Planning (MRP) can detect the change in demand (i.e. decreasing need for WIRE100), and still see remaining demand.
Third, the Picklist becomes a live record providing a quick reference to inventory issued to an MO, and the inventory still required.
Lastly, by moving it into a WIP Site, rather than adjusting it out and tracking the dollar value, it is possible to perform a physical inventory on WIP.
WIP Consumption
Setup in MOGenerator creates a relationship between a main inventory site and a WIP Site. This is shown below:
When an MO Receipt is processed, MORI creates a “split-MO” off the parent, which it runs through as a QuickMO. When MORI builds the Picklist it forces the Issue From Site to be the WIP Site.
As shown above, if the original MO has a Draw Inventory From of WAREHOUSE, MORI will force the components to be consumed out of WIP.
The MOPick table can still be used to direct MORI to consume specific quantities of specific materials.
MOGenerator Release 2017-10-03
V12.0.74 / 14.0.49 / 16.0.27
* MORI: (1) Added support for WIP Site & WIP transfers. (2) Added check for duplicate SN when Ser/Lot is provided in MOHdr rather than MOSer table. (3) Added routine to process split MOs first so that as soon as a partial receipt creates a split (i.e. MO00123-001), it is immediately processed.(4) MOHdrOpt BINNMBR now defaults to the MO Receipt Bin specified on the Item-Site for the Made Item in the Post To Site, and if that is not populated, it uses the Site Default Bins
* Updated WW Internal Resources
Dynamics GP HEAP Tables
You may have looked into a GP performance issue and dug around a bit and discovered that you have high fragmentation in a large number of table indexes. After rebuilding indexes, a large number of indexes still have high fragmentation, and they all have an Index Type of HEAP. What is this and why does GP have messy HEAP tables?
First, let’s start by looking at your index fragmentation, and talking about indexes.
SELECT OBJECT_NAME(ind.OBJECT_ID) AS TableName, ind.name AS IndexName, indexstats.index_type_desc AS IndexType, indexstats.avg_fragmentation_in_percent FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, NULL) indexstats INNER JOIN sys.indexes ind ON ind.object_id = indexstats.object_id AND ind.index_id = indexstats.index_id WHERE indexstats.avg_fragmentation_in_percent > 30 ORDER BY indexstats.avg_fragmentation_in_percent DESC
Run the query above against your company database. Note the “avg_fragmentation_in_percent > 30” line. This restricts the query to only show results if the fragmentation is above 30%.
The link above is to an XLSX of IV00101 (the Item Master) which I’ll reference below. There are several tabs along the bottom of the workbook:
IV00101 shows the complete table, with the data as it could be arranged physically on the hard-drive. Note that it is not in order by Item Number. When the Primary Key is “non-clustered”, data is simply added to the table using the next empty row at the bottom of the SQL table. Think of “SQL Table” as a single Excel worksheet.
For IV00101 the Primary Key (Primary Index) is ITEMNMBR (Item Number). An Index on a table is like an additional tab in an excel workbook. For the Primary Key of ITEMNMBR, SQL creates a page of data that contains only ITEMNMBR, and the data on that page is ordered by ITEMNMBR. Click on the PrimaryKey tab in the workbook.
A Non-Clustered index is a HEAP. The data is physically recorded on the disk in the order it was added to the table, in other words, it’s sort of a “heap” of data with no organization.
When a new record is added to IV00101, it is added to the bottom of the IV00101 page. SQL then inserts it into the correct position in the ordered list of the PrimaryKey tab.
The Key2, Key3 and Key4 tabs are the actual Alternate Keys (Indexes) on IV00101. Key2 is ITEMDESC (Item Description) and ITEMNMBR (Item Number). The data on that page is ordered by ITEMDESC then ITEMNMBR.
Likewise for Key3, the data is ordered by ITMCLSCD (Item Class Code) and ITEMNMBR (Item Number).
Each time you add a record to the IV00101 table, SQL also adds records to the page for each Index.
Now imagine that the index page is actually written on a yellow notepad. If you hit the end of the page you need a new page, and you need to place the paper on an open space on your desk. Now your index is fragmented. SQL Database Maintenance can reorder the indexes so that the data pages are next to each other rather than scattered around your desk.
If you were able to run the query above on your own database, the %-Fragmentation is a measure of how scattered your yellow notepad pages are on your desk. If it’s above 90%, that index is on a bunch of separate pages all over your desk.
I’m simplifying a lot. If you want a more technical description of index and fragmentation, click here.
So, why does GP have HEAP tables? Wouldn’t it make more sense to arrange the data on the disk in order by the Primary Key?
Because it mostly doesn’t matter, and probably not.
A clustered index (aka not a HEAP) arranges the data on the drive in the physical order dictated by the Primary Key. To write a new record it needs to rearrange the data on the page so it can insert the new Item Number into the correct row in the table. This is time consuming. So there is an argument in favor of HEAPs–they offer better performance writing data to the disk.
The HEAP doesn’t make any difference for most tasks. If GP needs a list of Items between A and D, it can use the Primary Key page, which is in the correct order.
Ultimately the real performance question is: Does the table have Indexes that provide (1) the columns needed by a GP function, and (2) in the correct order? For example, if I want a list of all Items in Item Class ATT CORD, SQL Server can use Key3. If that key didn’t exist, SQL would either have to read through the table by the PrimaryKey, pulling out the needed records, or simply read from the disorganized physical table. Either way is not efficient.
For a much more technical discussion of HEAPS, click here.
SQL Server has several tools to help you optimize database performance. In particular, the Database Engine Tuning Advisor can suggest additional table indexes to help performance based on your usage. Read more here.
The Anti-Spec
If you feel too constrained by the standard software spec, which describes only the functionality that will be present in the proposed software, we are proud to now offer our exclusive Anti-Specification Service. Our ASS will identify everything that will NOT be in the software—the features, functionality, and performance characteristics that will not be included. By employing proprietary Broadly Intelligent Guesswork, we are able to anticipate everything you might have wanted, and document its absence in the BIG-ASS spec.
The scope of these projects is nearly unlimited, except for the small amount of time required to refrain from documenting what the software will actually do. The deliverable is one BIG-ASS document.
As the great Sherlock Holmes said, “When you have excluded the impossible, whatever remains, however improbable, must be the truth.”
In this manner, by enumerating all the unlikely possibilities that we intend to exclude during the software construction process, when you closely examine our BIG-ASS spec, you will find the only thing missing is your custom code. If you would like to engage us for a BIG-ASS project, we are offering a special discount to first-time clients in an even percentage amount greater than 14% and less than 16%.
MFG PowerPack Release 2017-09-29
V12.0.121 / 14.0.68 / 16.0.34
* MOSplit: added a check during MOP Receipt posting to remove from IS01001 any invalid records associated with the SOP Line linked to the MO being received (#20176257)
MFG PowerPack Release 2017-09-27
V12.0.120 / 14.0.67 / 16.0.33
* Vendor Pricing: (1) added PowerATP integration, (2) addressed issue with the Import utility where it incorrectly identified errors in decimal quantities.
* BOM Archive: addressed issue where the archive picked-up incorrect components when notes were attached to the BOM Component Line.
* PowerATP: (1) added option to use Order Point Qty rather than Safety Stock (#20175873), (2) Create PO utility now uses Vendor Pricing.
* Updated WW Internal Resources
MFG PowerPack Release 2017-09-05
V12.0.119 / 14.0.66 / 16.0.32
* Ser/Lot Pre-Assign: now also checks for and auto-generates ser/lot numbers when MO Status is changed.
* NEW TWEAK – Unlink MO from SOP: unlinks a single MO from a selected line, or all MOs from the selected document via an Additional Menu on Sales Transaction Entry.
GP PowerPack Release 2017-09-07
V12.0.114 / 14.0.57 /16.0.25 Changes 7-SEP-2017
* Login Monitor: (1) addressed issue with table key that prevent “During Login” from removing all inactive users, (2) changes in the 7-OCT-16 build to reduce load on server by disabling LogMon for “excluded” users also caused those users to not appear in the LogMon Inquiry window. Excluded users are again displayed in the Inquiry window, but since their activity is no longer tracked, tracking numbers will be zeros.
LabelLink Release 2017-09-13
V12.0.35 / 14.0.18 / 16.0.7
(1) SOP Order Fulfillment: added Additional menu to access LabelLink from this window
(2) Updated WW Internal Resources
GP PowerPack Release 2017-08-24
V12.0.113 / 14.0.56 /16.0.24
(1) Mass Batch Change: added additional selection criteria fields from the SOP Header table
(2) SOP Tweak-Customer PO Required: added check that SOP Entry is still open (#20173792)
(3) AP Templates: discontinued
MFG PowerPack Release 2017-08-17
V12.0.118 / 14.0.65 / 16.0.31
* Capable to Promise: (1) addressed sql error in Sales Unmet Demand calc, (2) Added Cancel button to stop long running SmartList item import, (3) Addressed issue that caused imported items to not display in the scrolling window, (4) If SmartList does not have a quantity column, the import now defaults to 1.
* Lead Time Inquiry: (1) addressed sql error in Sales Unmet Demand calc
* Tweak-Default Primary Routing: (1) addressed warning “No previous sequences exist” when zooming to routing from Std Cost Changes window.
SpellCheck Release 2017-08-04
V12.0.19 / 14.0.10 / 16.0.7
(1) SpellCheck now uses MS Word for desktop spelling (if MS Word is installed), and it switches to Bing SpellCheck API for the Web-client, or when Word is not installed.
(2) Addressed issue with Bing API Company Dictionary that prevented it from correctly detecting when words were in the Company Dictionary
MFG PowerPack Release 2017-08-04
V12.0.117 / 14.0.64 / 16.0.30
* Capable to Promise: (1) added Backorders to Sales Unmet Demand calc, (2) addressed issue in Sales Unmet Demand calc that caused it to not calculate Qty in Base
* Lead Time Inquiry: (1) Added sorting options, now defaults to sort by longest lead time first, (2) Added option to include sources of Unmet Demand from MFG Picklists, Sales, and Service.
* BOM Archive: addressed issue that caused it to loop thorough all BOMs for an Item
* Vendor Pricing: (1) Addressed issue that prevented correctly rolling a pending price list into the current price list, (2) Added controls to VP Maintenance to prevent viewing Historical price lists
MFG PowerPack Release 2017-07-31
V12.0.116 / 14.0.63 / 16.0.29
* Vendor Pricing: (1) addressed issue that caused cost to only use 2-currency decimals when Multi-Currency was disabled, (2) added Additional Menu on Item Vendors window to access Vendor Pricing Maintenance, (3) added GoTo on Vendor Pricing Inquiry to access Vendor Pricing Maintenance
MFG PowerPack Release 2017-07-20
V12.0.115 / 14.0.62 / 16.0.28
* PowerATP: Changed routine that retrieves SOP requirements so it uses In House Due Date (IS010001.SOITEMDUEDATE_I) when MFG is installed, and the SOP Line Requested Ship Date when MFG is not installed.
* TimeCard: (1) Addressed issue that prevented Machine ID from saving, (2) Transaction Number now displays after selecting the Routing Sequence rather than being generated at the moment the Time Entry is saved, (3) Added a Delete button on Time Card Entry, and a new Setup option to control whether the button is visible or not (defaults to not visible)
* SmartParts: (1) Fixed position of Help Button so it does not slide off screen after selecting a Mask ID, (2) Added trim spaces off front/end of Description
* SVC Equipment Suite: addressed issue building configurations during SOP Posting that resulted in a ‘cannot insert null’ error on SLRWEND (Seller Warranty End Date) when no Seller Warranty Code was present (#20174885)
MO Generator Release 2017-07-24
V12.0.73 / 14.0.48 / 16.0.26
* MORI: added routine to auto-create/update fields in MOHdrOpt if receiving an existing MO (integrations are no longer required to populate this table if receiving against existing MOs)
GP PowerPack Release 2017-07-13
V12.0.112 / 14.0.55 /16.0.23
(1) Bin-to-Bin Transfer: added additional error checking to trap an unknown event that caused an bin-to-bin transfer to post with QTYTYPE = 6 (#20173853)
MFG Data Archive Release 2017-07-17
V12.0.23 / 14.0.14 / 16.0.9
(1) MFGDA now keeps a record in the live company of the document numbers moved to the archive database, and uses that record to prevent re-use of document numbers. Users are no longer required to have read permissions (or any access to) the archive database. The tracking table will be updated automatically from the existing archive, if one exists.
SpellCheck Release 2017-07-06
V12.0.18 / 14.0.9 / 16.0.6 Changes
(1) Updated WW Internal Resources. SpellCheck can now be used without registration keys in <TEST> companies.
MO Generator Release 2017-07-06
V12.0.72 / 14.0.47 / 16.0.25
* Updated WW Internal Resources. MOGen can now be run without registration keys in <TEST> companies.
MFG Data Archive Release 2017-07-06
V12.0.22 / 14.0.13 / 16.0.8
(1) Updated WW Internal Resources. MFG Data Archive can now be run without registration keys in <TEST> companies.
GP PowerPack Release 2017-07-05
V12.0.111 / 14.0.54 /16.0.22 Changes
(1) Select Checks Filters: addressed issue that caused a ‘date/time conversion’ error when using a Receivings User Defined Date field in the selection query (#20173804)
MFG PowerPack Release 2017-07-03
V12.0.114 / 14.0.61 / 16.0.27
* Updated WW Internal Resources
LeanMFG Release 2017-06-30
V12.0.28 / 14.0.17 / 16.0.7 Changes
(1) Updated WW Internal Resources.
Item Process Tracking Release 2017-06-30
V12.0.34 / 14.0.17 / 16.0.6 Changes
(1) Updated WW Internal Resources. LabelLink can now be used without registration keys in <TEST> companies.
(2) POP Receiving Entry: LabelLink now auto-saves/reloads the document so the Receipt Header information is saved to table before printing
BlanketPO Release 2017-06-30
V12.0.32 / 14.0.21 / 16.0.7 Changes
* Updated WW Internal Resources. BlanketPO can now be used withour registration keys in <TEST> companies.
* Addressed ‘illegal address’ error caused by closing the PO Release Entry window while the treeview is filling (#20173626)
* Release Entry: Added delete row button to Planned Releases scroll
Item Process Tracking Release 2017-06-29
V12.0.11 / 14.0.6 / 16.0.2 Changes
(1) Updated WW Internal Resources. IPT can now be used without registration keys in all <TEST> companies.
(2) IPT can now be used without Manufacturing or Field Service.
GP PowerPack Release 2017-06-29
V12.0.110 / 14.0.53 /16.0.21 Changes
(1) Bin-to-Bin Xfer: (a) addressed registration issue that caused the Bin-to-Bin Transfer Inquiry window to be active when multi-bin was not enabled, (b) addressed issued that caused the Bin-to-Bin Inquiry window to open for non-Bin-to-Bin transactions.
(2) Updated WW Internal Resources
EZImport Release 2017-06-29
V12.0.11 / 14.0.4 / 16.0.2 Changes
(1) Updated WW Internal Resources. EZImport can now be used without registration keys in <TEST> company databases
Engineer to Order Release 2017-06-28
V12.0.28 / 14.0.11 / 16.0.4 Changes
(1) Added Routing Name to BOM Header (W6992BOMHeader). Table will be updated automatically during the installation routine. This change allows user to specify a Routing Name. Previously the MFG Routing Name was created from the ME BOMID.
(2) Addressed ‘illegal address’ error in AddChildren caused by closing window while it was filling (#20170700)
(3) Addressed ‘illegal address’ error caused by closing ME window while the UpgradeNotes routine is running (#20167976)
Consulting Toolkit Release 2017-06-28
V12.0.17 / 14.0.11 / 16.0.7 Changes
(1) Updated WW Internal Resources. CTK can now be used without registration keys in <TEST> companies.
CompleteCount Release 2017-06-28
V12.0.25 / 14.0.15 / 16.0.8 Changes
(1) Updated WW Internal Resources. CompleteCount can now be used without registration keys in <TEST> companies.
BOMImport Release 2017-06-27
V12.0.36 / 14.0.19 / 16.0.7 Changes
* Updated WW Internal Resources. BOMImport will now run without registration keys in <TEST> companies
Preactor Integration Release 2017-06-27
V12.0.14 / 14.0.10 / 16.0.8 Changes
* Updated WW Internal Resources. API will now work without reg keys in <TEST> Companies.
GP PowerPack Release 2017-06-27
V12.0.109 / 14.0.52 /16.0.20
(1) Updated WW Internal Resources to address ‘illegal syntax’ error during log-in with Server-Name based registration key.
WilloWare in TEST
During July (2017) we will be rolling out new builds of all of our software. This mid-year update addresses any open, low-priority issue reports, and adds a few helpful system features. If you are receiving our “software release” updates, you will receive a couple of emails listing a large number of releases as this roll-out occurs.
The first new system feature is that our Error Reporting window and About window can now create support case with WilloWare from inside GP.
The information displayed in the window will be added to a Support Ticket, and you will be provided the Ticket ID, as shown below:
The second new feature is something we are excited about. All of our software will now be fully functional, without registration keys, in <TEST> companies. There are two benefits from this:
First, you can download and test our software using your live data without needing a temporary, time-limited key.
Second, if you already have our software but are not registered for all of its features, you will be able to test ALL functionality in the <TEST> company without changing your registration key.
In short, all functionality of all of our modules is always available in a <TEST> company.
In case you are not familiar with a <TEST> company, here’s a quick overview.
Dynamics GP has a little feature that is not well documented, which provides support for Test and Historical company databases. To enable this feature, put <TEST> or <HISTORICAL> at the end of the Company Name, as shown below:
The primary effect of this is that it Zeros the Employee Count so the Employees in a TEST or HISTORICAL Company do not affect payroll.
It also causes a warning to pop-up during login to help alert users that they are not in the live company:
And, with the new builds of all WilloWare software, it causes the software to enable full functionality.
Lastly, our software can now automatically check to see if there are updates. The check is done when “SA” logs-in to GP. If there is a new build available you will see a window like this:
If you click the Do Not Remind Me link, it will turn off further notifications until a new build is installed. When a new build is installed it re-enables the Update Reminder.
Fun With Color Settings
Color Settings (in GP PowerPack), is (a) Awesome and (b) Free! It provides the ability to for users to edit their own settings, and for admins to apply a company-wide setting. With access to 26 user-interface elements, and 17 colors, Color Settings can create a whopping 5900 different colorful combinations.
Since only SA has access to the system-wide settings, end-users can play around with their personal Color Settings to create a GP look that makes them happy. Below is a quick highlight of each color setting.
Button And Label Text
Control Bar 3D Button Background
Control Bar 3D Button Hover Bottom
Control Bar 3D Button Hover Middle
Control Bar 3D Button Hover Top
Control Bar 3D Button Top/Middle/Bottom (Red/White/Blue)
Control Bar 3D Button Selected Bottom
Control Bar 3D Button Selected Middle
Control Bar 3D Button Selected Top
Control Bar 3D Button Selected Top/Middle/Bottom (Pink/Yellow/Green)
Control Bar Background Bottom
Control Bar Background Top
Control Bar Background Top/Bottom (Green/Yellow)
Disabled Button Highlights
Disabled Field Text
Drop Menu Background
Drop Menu Text
Editable Field Background
Field Text
Locked Field Label And Field Text
Scroll Window Column Headers
Scroll Window Column Header Text
Scroll Window Line One Background
Scroll Window Line One Text
Scroll Window Line Two Background
Scroll Window Line Two Text
Scroll Window Both Lines
Window Background
LeanMFG Release 2017-06-13
V12.0.27 / 14.0.16 / 16.0.6 Changes
(1) Updated WW Internal Resources. Product will now be fully functional in <TEST> company databases.
(2) Item Maintenance DELETE: added control on the Delete button to check for use of the Item in BOMs. User is warned and given option to view Item in the Where Used Inquiry window.
MFG PowerPack Release 2017-06-26
V12.0.113 / 14.0.60 / 16.0.26
* Vendor Pricing: added Import utility to bring Vendor Pricing in from an Excel spreadsheet.
* Setup window: changed how it reads setup to reduce requests to the database.
MOGenerator Release 2017-06-07
V12.0.71 / 14.0.46 / 16.0.24
* MORI: added new option “Auto-Close/Cancel MO”. When marked, MORI auto-cancels the original MO when a receipt takes the quantity remaining on the MO to zero (or below zero). When unmarked, MORI will reduce the quantity remaining on MO down to zero, but then not close/cancel the original MO. It stays open, allowing an unliminted number of receipts until a receipt is sent through with the LastReceipt flag set to TRUE.
MFG PowerPack Release 2017-06-08
V12.0.112 / 14.0.59 / 16.0.25
* Updated WW Internal Resources. The software now enables full functionality in any <TEST> company without requiring a registration key. Added a new Reg Key type to better support SaaS deployments.
Nigel Frank Honors WilloWare
WilloWare named one of the 70 best Dynamics add ons
WilloWare’s Dynamics GP products have been featured in a list of the 70 best Microsoft Dynamics add ons on the market.
The list from Nigel Frank International, the global leaders in Microsoft recruitment, features 70 of the most useful, functional, and reputable Dynamics add ons available, and we are proud to see our name featured in the compilation.
When compiling the list, Nigel Frank was conscious of the needs of modern businesses, with an emphasis placed on showcasing e-commerce, customer relationship management, and supply chain management software.
WilloWare products were identified for their customer-focused interface, where tweaks can be applied to ensure specific performance in areas such as general ledger, inventory, sales, and manufacturing.
Our inclusion on the list comes as great recognition, and adds to our accolades after receiving Microsoft’s President’s Club Award in 2016.
WilloWare’s VP of Development, Troy Gullacher, said “We’re thrilled to be a part of the Nigel Frank Best 70 Add Ons. Our goal has always been to provide helpful and useful software to Dynamics GP users, so we appreciate this recognition!”
GP PowerPack Release 2017-06-09
V12.0.108 / 14.0.51 /16.0.19 Changes
(1) Updated WW Internal Resources. GPPP will now be fully functional in <TEST> companies.
(2) SOP Transfer Settings: added check that SOP Xfer Document is still open before attempting to set options (#20172245)
(3) Shortage Inquiry: addressed ‘record locked’ error when opening Shortage Inquiry from the Item Inquiry Additional Menu, with the Shortage Inquiry window already open and an item displayed, and focus is in the Item Number field (#20172024)
Preactor Integration Release 2017-06-06
V12.0.13 / 14.0.9 / 16.0.7
* Added new column (Routing Seq Description) to the BOM Export file to support new functionality in Preactor. Preactor can now use BOM-Routing link information when scheduling MOs.
MOGenerator Release 2017-06-05
V12.0.70 / 14.0.45 / 16.0.23
* MORI: added a data validation to ensure a Draw From site is provided for Components in the MOPick table, or on the Scheduling Preference.
* Documentation: added a new page called “Error Messages” that lists all errors reported by MORI, a detailed description of what causes the error, and where/how to address it (//willoware.com/online/mo-generator-manual/#error-messages)
MFG Data Archive Release 2017-05-31
V12.0.21 / 14.0.12 / 16.0.7
(1) Added check during log-in that user has appropriate permissions on the Archive Database. User receives warning if the security check fails.
MFG Data Archive Release 2017-05-30
V12.0.20 / 14.0.11 / 16.0.6
(1) Peformance Improvement: added Setup option to control frequency of progress updates. Testing found eliminating all progress updates reduced time to archive each MO by about 21%, from 2.58 seconds to 2.03 seconds.
(2) Updated WW Internal Resources
MOGenerator Release 2017-05-25
V12.0.69 / 14.0.44 / 16.0.22
* ErrorLog: the Error Log window now shows errors from both the Core Utilities and MORI. The Error Note attached to a MO Receipt record in W7158MOHdr can be viewed, along with additional information from that table.
* MORI: Addressed issue that cause MORI to incorrectly calculate the available quantity of lot controlled items.
More Detail…
The updated Error Log window now includes a view that shows MO Receipt Integration Errors.
MORI performs a large number of validation checks and reports all errors in a Note attached to each Receipt Record in W7158MOHdr. Those Notes can be viewed by clicking a line in the Error Log window.
The window shows ONLY records that are currently in a error status (Status = 1).
The expanded view shows additional information from the MOHdr and MOHdrOpt tables.
Troubleshooting
Microsoft Dynamics GP Troubleshooting
Sometimes things go wrong. Is it something you can resolve yourself, or do you need expert help? Where do you start? There are as many troubleshooting techniques as there are unique problems. Here we provide some basic steps that can always be used to start the process, in the order they should be performed.
Basics
What Did I Just Do?
The moment you get an unusual error, stop. Take a moment to take some notes about what just happened. Take a “history” of the incident, recording as much pertinent information as you can recall, without touching GP.
- What was the document number/customer number/item number/etc?
- What were the last few things you did in GP prior to the error? Be specific. Which buttons, which fields, etc?
- Record the Date/Time. This is important because it could correspond to something else occurring on the computer/network at the same time.
Screen Capture
Make this a habit! When anything unusual happens in GP, press ALT+PrtScn. Do it the first time. Do it every time. If you do not capture these important messages, troubleshooting may be very difficult if you cannot reproduce the error.
Using ALT+PrtScn is different than pressing the just PrtScn (Print Screen)–pressing Alt+PrtScn takes a capture of the “active window”.
Capturing the Active Window gets just the error message:
While just PrtScn (Print Screen) captures the entire window:
A screen capture that includes all open applications on multiple monitors can be so difficult to read that it is not helpful.
Then open Word, or an Email, and press CTRL+V (paste).
Types of GP Messages
There are several different “message” boxes that GP can present, and they provide a hint about the issue you are experiencing. Being familiar with these may point you in a direction to find the solution.
An “ASK” dialog can have up to three buttons on it (such as Yes, No, Cancel). This is an informational message. This is a message coded by the developer, and might indicate setup is missing or incorrect.
A “WARNING”message has a single button: OK. A warning message may simply be important information (“you can’t do that!”), but it may also be reporting an error. We will look at a warning message presenting an error condition later in this post. A warning message is also coded by a developer, so when it appears you know, at a minimum, it was an event anticipated by the developer.
An “ERROR” message is generally more severe. An Error is usually presented when a problem has occurred with a table operation, or some fundamental software error has occurred. It may indicate there is something wrong with the data, or the table storing the data, or in a calculation. A developer can code an Error message, as shown below:
However, error messages are more often system generated:
If possible, scroll down in the error message and capture all of it. If the message has a scrolling window, like the one above, you can copy the text. Click into the message, then press CTRL+A (select all) and CTRL+C (copy). Then paste it (CTRL+V) into Word or an Email.
If the message has another button (i.e. Debug, More Info, etc), click it can capture that information too.
WilloWare uses our own error reporting throughout all products to provide more detailed information.
This window provides the name of the product (“TEST”), the build number, the location of the error, and the cause of the error. The window can also automatically generate a support case by clicking the email address.
Version Information
Depending on where the problem is occurring, you may not be able to even launch GP. The steps below provide several methods to retrieve version information.
During log-in, the Welcome screen displays the GP version information. This is read as Major Version 14, Minor Version 00, Build 0524.
If you can get logged-in to GP, go to Help >> About Microsoft Dynamics GP
The HELP button is the blue question mark in the upper-right corner
Take a screen capture of this window, and paste it into Word or an email.
Many 3rd Party Products will have “About” navigation on the first menu (where About Microsoft Dynamics GP is located), or off the Additional Menu on the About Microsoft Dynamics GP window.
The WilloWare About window (for all products) is off the Additional Menu (i.e. Additional >> About GP PowerPack).
Click into the window, press CTRL+A (select all), CTRL+C (copy), then paste it (CTRL+V) into Word, or an Email.
If you cannot launch GP because it crashes before you can even get to the login window, you can find version information on the application files themselves.
Open Windows Explorer, and navigate to the GP Program Folder. This is usually in the following path:
c:\Program Files (x86)\Microsoft Dynamics\GP2015 (or GP2016, etc)
Right-click on Dynamics.exe
The right-click menu can be rather large. Properties is normally at the bottom.
Click the DETAILS tab. Note the File Version/Product Version. This matches the Dexterity Version Information from the About window.
Steps To Reproduce
This might not be safe to do in the live company. See the section in Tools regarding Test Company versus Test Server.
If it is safe to do so, attempt to reproduce the issue. Write down the specific steps needed to reproduce the issue. Think of writing a recipe where ingredients need to be added in a certain order.
What if you cannot reproduce it? Computers are not random, so there is some logic to what happened, but it may not be possible to reproduce the issue. For example, it could depend on a certain number of users all doing the same task at approximately the same time. This would be extremely difficult to reproduce. An issue that cannot be reproduced may not be fixable.
User Specific
At this point you have gathered some information. You have tracked down version information, you may have screen captures, and you have determined how to reproduce the issue. If you cannot reproduce the issue, the following steps cannot be performed.
One of the first troubleshooting steps is to check whether or not the issue is user-specific.
- Can another user perform the same task and get the same error on a different machine? If not, the issue might be related to one User ID and/or computer.
- Eliminate all security issues and test again. Log-in to the computer as the Windows Domain Administrator, then log-in to GP as “SA”. Can you reproduce the issue? If not, the issue is related to security. It could be GP security (i.e. access to windows, reports, etc), or Windows Security (i.e. access to shared files, or appropriate access to the files in the GP program folder). NOTE: you must use the actual account called Administrator to ensure complete access to all computer and network resources.
- Can you reproduce the issue in another Company database (or Fabrikam)? If not, there may be a company setting causing the issue, or a company-specific data issue.
Tools
Test Environment
Test Company or Test Server? See our discussion of this question here:
//willoware.com/install/installation-best-practices/
In a nutshell, a Test Company is a safe place to test transactions. It is usually a good place to attempt to reproduce an issue. However, it is possible to create inter-company transactions, so a Test Company is not necessarily isolated from the Live Company. A Test Server is a separate, replica of the live server. This is a good place to test anything because there is no chance of impacting the live environment.
Log Files
Open Windows Explorer and navigate to the GP Program folder, which is typically:
c:\Program Files (x86)\Microsoft Dynamics\GP2015 (or GP2016, etc)
Go into the Data sub-folder. Locate DEX.INI, right-click, select EDIT.
If ScriptDebugger and ScriptLogEnhanced switches not in the file, add them as shown above.
The other “SQLLog” switches are normally in the file. Be sure to check the entire file before adding them.
Set all of the switches shown above to TRUE, then save the file and close it.
Log-in to GP. The SQLLog settings are active immediately and will begin logging. We’ll return to that log file in a moment. The ScriptDebugger setting adds a DEBUG menu to the top of every window, and ScriptLogEnhanced adds a time-stamp to each line in the file.
You want to keep the log files as small as possible so they contain only what occurs when the issue is reproduced.
For example, we have found that when we click the “end of file” scrolling button (the right-most scrolling button), we get an error message. The Sales Transaction Entry window is open, as shown above. Go to Debug >> Log Scripts. Save the file to an easy to find location, such as your Desktop.
WAIT! Before reproducing the error, delete the SQLLog file. Use Windows Explorer to navigate to the GP Program folder. In the Data subfolder, locate DEXSQL.LOG. Delete it. Keep Windows Explorer open on the Data folder.
Go back to GP and reproduce the error.
Go back into Windows Explorer and COPY DEXSQL.LOG. This will ensure nothing else gets written to the file. If possible, make a copy of the log file while the error message is displayed in GP.
Returning to GP, you may need to click on several messages before you can get back to the Debug menu to turn off script logging. Go to Debug >> Log Script to disable script logging.
Close GP. Go back to the DEX.INI file and set the logging switches to FALSE.
Save Dex.ini and close the file.
WilloWare’s Consulting Toolkit contains several free SQL Management tools, one of which is the SQL Trace utility. This utility can enable the SQLLog switches discussed above, from inside GP, so that SQL Logging can be enabled/disabled exactly when needed just like the Script Log. Read more about the SQL Trace utility here.
Interpreting Log Files
By copying DEXSQL.LOG at the moment the issue occurs, the last lines in the log file are what immediately preceded the issue. So begin by scrolling to the bottom and working up.
An example from the file:
{CALL TWO.dbo.zDP_CO40100F_1(NULL,NULL)}
TWO is the database, and CO40100 is the table.
Likewise, the end of the Script Log contains the last steps GP performed before the issue:
The key to reading this file is trying to get a general idea of what is happening without getting buried in the details. For example:
‘SetAttachmentButtons of form coAttachManagement‘, “0\Sales\Sales Order\2~”, DocumentsAttached, DocumentsNotAttached
The bold-red words are dexterity code and everything that follows that is input or output data. From this script we can see that something is happening with Attachments. We can also infer from this that the SQL log might be showing the tables involved in managing document Attachments. Retrieving table information is discussed below.
The time-stamp is useful when troubleshooting a long running process. Watch the time-stamp to see what process takes a long time to run.
Pay particular attention to entries in the script log that look like this:
‘Security’, 0, 2, 116, “”
The GP Security procedure checks to see if the user has access to the resource (a window or report). Scrolling backwards in the Script Log until you find an entry for Security can help identify which product is encountering the issue. The red number, in this case zero, is the Product ID. You can connect the Product ID to the Product Name through the Edit Launch File window (Tools >> Setup >> System >> Edit Launch File):
In this case we can see that Product ID = 0 is Microsoft Dynamics GP.
Table Information
A little known, but very useful tool in GP is the Table Information window. Go to Tools >> Resource Descriptions >> Tables.
Click the … button.
Select the Product (see the “Security” procedure in the previous section), and set View By to “By Table Physical Name”. Tables are grouped by Series (i.e. Financial, Inventory, etc). You can make an educated guess about the series, but sometimes tables are not where you would expect them to be and it requires a bit of searching.
SQL Profiler
SQL Profiler is a component of Microsoft SQL Server and is installed on the server. We are not going to go into depth on how to use Profiler, except to say that the SQLLog file captures information similar to what can be recorded in Profile, but Profile has many more options for what can be recorded and how the information is displayed.
Note the similarities in the Profiler log to the SQLLog file:
Sysinternals Process Monitor
This tool can be downloaded from:
//technet.microsoft.com/en-us/sysinternals/bb896645
If that link is not available, check www.sysinternals.com for “Process Monitor”.
Process Monitor can report on pretty much everything an application does, from reading Registration Key settings, to internet communication, to file access. It is this last task that can be helpful when there is a security related issue (i.e. there is tight network security and it is interfering with GP).
Begin by adding a couple of filters.
Filter 1: Process Name is dynamics.exe. Click ADD.
Filter 2: Operation is ReadFile
Click OK to close the window.
Perform the task in GP that is causing an issue. As an example, GP is generating a warning message shortly after launching the application, before reaching the login window:
As soon as the error appears, stop the Process Monitor. Scroll up from the bottom of the window.
There are a large number of reads on the Dynamics.dic file. An additional filter excluding these file reads would make the display easier to read. Scrolling up in the file we start to see reads from other dictionaries:
In this case, the last dictionary it reads (excluding Dynamics.dic) is BS71.DIC. Using the Edit Launch File window (discussed above), we could identify which product this is. With this type of login error, the next step would be to edit the Dynamics.SET file to remove this product, then relaunch GP to see if the warning disappears.
Editing Dynamics.Set
Editing the SET file should not be done on a terminal server if there are other users in the system (or who could be in the system). It is possible to launch GP using a separate SET file, but that is not covered here.
Dynamics.SET contains a list of the dexterity modules that comprise Dynamics GP. It is located in the GP Program Folder:
c:\Program Files (x86)\Microsoft Dynamics\GP2013 (or GP2015, GP2016, etc)
Make a copy of Dynamics.set before editing it.
Open it in Notepad. The file has three sections.
- The number of products installed (47)
- The product list (consisting of pairs of Product ID and Product Name)
- The pathnames list below the “Windows” line (consisting of three lines per product, list the path to the application dictionary, forms dictionary, and reports dictionary)
The forms and reports dictionary files are only present if a window or report has been modified.
To remove a product from the SET file, decrease the product count by one, remove the two lines that identify the product, and remove the three pathname lines for the product.
To remove Manufacturing from this SET file, the product count could be 46.
Remove the two lines highlighted above, leaving no blank rows (Fixed Assets should be followed by 414).
Remove the three lines highlighted above, leaving no blank lines between “R309.DIC” and “HR.DIC”.
Save the file.
An often overlooked troubleshooting tool is Google. Search for the error message, or the window involved and include the word “error”. If you have done some of the troubleshooting steps above you may have additional information such as a table name, or a script name from the script log.