BlanketPO 2023-11-03

Release Date: 3-NOV-2023
GP Versions: 12/14/16/18
BlanketPO Build: 1.44
* Updates for GP18.6
* The updates to internal resources apply to all supported versions of GP and include performance improvements, updates to error reporting and version management, and other enhancements. Please update BlanketPO even if you are not upgrading to GP18.6 at this time.

CompleteCount 2023-11-02

Release Date: 2-NOV-2023
GP Versions: 12/14/16/18
CompleteCount Build: 4.60
* Updates for GP18.6
* The updates to internal resources apply to all supported versions of GP and include performance improvements, updates to error reporting and version management, and other enhancements. Please update CompleteCount even if you are not upgrading to GP18.6 at this time.

GPPowerPack 2023-11-02

Release Date: 2-NOV-2023
GP Versions: 12/14/16/18
GP PowerPack Build: 7.170
* Updates for GP18.6
* The updates to internal resources apply to all supported versions of GP and include performance improvements, updates to error reporting and version management, and other enhancements. Please update GP PowerPack even if you are not upgrading to GP18.6 at this time.

 

Customization DS1115- WIP Cost Reversal

Customization DS1115

WIP Cost Reversal

Problem Definition:

ACME builds water dispensers. Some units contain high value assemblies which are treated as capital equipment, so the value is not in an inventory account. When these assemblies are used on a manufacturing order, the normal posting process will adjust the value of the item out of the capital equipment GL account and into the WIP account of the finished good.

When Manufacturing posts the Actual Cost finished good into inventory, it uses the value in WIP to determine the cost of the finished good.

ACME needs the value of these capital items to remain in the capital equipment GL account and not get added to the final cost of the finished good.

Design Features:

Reversing WIP

The customization will monitor the Manufacturing Issue and Reverse Issue posting process. When it detects certain capital items in the resulting Inventory Adjustment, it will create and post a Journal Entry to reverse the GL effects of the Inventory Adjustment.

An Issue transaction credits Inventory and debits WIP. In this case the Inventory account will be a capital equipment account (a regular inventory account is shown below):

A screenshot of a computer

Description automatically generated

The reversing transaction will debit Inventory and credit WIP for the value of the inventory item (using the same GL accounts as the original transaction).

The reversing entry will also show the Item Number in the Distribution Reference field.

A screenshot of a computer

Description automatically generated

A Reverse Issue with a capital item will cause the transaction above to occur in reverse. Manufacturing will Debit the Inventory Account and Credit the WIP Account, and the customization will reverse that.

Assumptions/Requirements:

  • The functionality described in this document is intended for the Dynamics GP desktop client. Unless specified otherwise, all testing will occur in the desktop client only. Projects created in Dexterity should have a very high level of compatibility with the Web Client, but cannot be guaranteed without explicitly including additional time in the estimate for testing in the Web Client.

 

MFG PowerPack Buy Picklist

Price $2000 Demo Manual

Buy Picklist is ideal for a Make to Order or Engineer to Order environment where you need to purchase the materials needed for a job, it is also useful for purchasing to address shortages on a job.  Buy Picklist creates a link between the Manufacturing Picklist window and Purchase Request Resolution.  With one click the Picklist requirements can be easily sent to Purchase Request Resolution where you can select Vendors and create Purchase Orders.

The link calculates the quantity to order by looking at the Item Resource Planning values (Order Quantity Modifiers), and if a Primary Vendor is assigned on the Item Quantities window it looks at the Minimum, Maximum and Order Increment from the Item-Vendor window.

MFGPowerPack 2023-10-17

Release Date: 16-OCT-2023
GP Versions: 12/14/16/18
MFG PowerPack Build: 13.225
* NEW – Buy Picklist: create purchase orders for everything on a picklist, or for shortages on a picklist.
* NEW – Tweak: Default MO Entry Date: when creating new MOs the MO Entry window defaults to a blank (zeros) date. The Default MO Entry Date tweak uses the Planning Time Fence to set the default dates to the User Date + Planning Time Fence Days from Item Resource Planning (Item-Site). Or you can customize the Tweak so use any value other than Planning Time Fence.
* FULL INSTALLATION ROUTINE REQUIRED

 

MFGPowerPack 2023-10-05

Release Date: 5-OCT-2023
GP Versions: 12/14/16/18
MFG PowerPack Build: 12.224
* Vendor Pricing: fixed issue with the Custom pricing method in the MOP-POP (Outsourcing) window that caused it to not set the price.
* MO SPLIT: Prior to this release, MO Split would lock all splits to receive one because it needed to change the CMPNTSEQ back to zero so that MFG will auto-allocate it.  Normally GP only allows linking one MO to a SOP Line.  MO Split is linking multiple MOs to a SOP line by incrementing the CMPNTSEQ.  When a Split is being received it would lock all of the splits for that MO, change the MOP-SOP Link record so that the CMPNTSEQ was zero again, and then allow MFG to post the receipt and update the SOP line.  In a high volume environment with large MOs the time to post the receipt blocked receiving other Splits for the same MO until receipt posting completed.  This release replaces the MFG code that allocates a receipt to a SOP Line with our own routine that recognizes the CMPNTSEQ of Splits and can correctly apply a receipt to the parent Sales Lines (CMPNTSEQ = 0) without locking the other Splits.
* MFG Note Fix: NEW TWEAK – The MFG module has two procedures for getting the “next note index” when you add notes in different locations.  Depending on which window you are on this will create a duplicate note index.  The MFG Note Fix ensures that the MFG module always uses the correct method to get the next note index and therefore prevents creating duplicate notes.
The following windows can create duplicate MFG note indexes:
BOM Copy (BOM_Configure)
Routing Sequence Entry (mfg_router)
Sequences Copy (mfg_router_edit_Copy)
Routing Duplicate (mfg_router_edit_Duplicate)
Option Category Maintenance (Option_Category_Maintenance)
Sales Configurator (Sales_Configurator)
Manufacturing Order Routing Sequence Edit (WO_Edit)
Additionally, the MFG code for creating an MRP Routing, Working Routing, and Configured Routing all can create duplicate MFG Note Indexes.
* MFG Interface: this release includes an additional dexterity dictionary (7159W.DIC) that contains integration functionality between our modules and GP Manufacturing.

Customization DS1452 Lot Adjustment

Customization DS1452

Lot Adjustment

Problem Definition:

ACME uses Dynamics GP lot tracking on their inventory items. Sometimes during stock counts they will find that a Lot Number is incorrect in GP for the physical inventory counted, so they need to adjust inventory to put the “correct” Lot Number in and remove the “incorrect” Lot Number. They are currently doing this manually with an Inventory Adjustment and would like a more automated way to do this.

The adjustment needs to retain the same Receipt Date, Cost, MFG Date, EXP Date and Lot Attributes.

Solution Overview:

WilloWare will create a dexterity enhancement for Dynamics GP that allows users to find a lot in the Lot Inquiry window and automatically create the complete IV Adjustment to adjust the lot number.

Design Features:

Navigation: Inquiry>> Inventory>>Lots

Table

Description automatically generated

The Lot Number Inquiry window is used as a “lookup” window to locate a specific lot receipt that needs to be adjusted. Enter the Item Number and find the Lot that needs to be adjusted. Select the row as shown above, then go to Additional >> Adjust Lot.

Graphical user interface, text

Description automatically generated

Field Function
Item Number Displays the Item Number
Description Displays the Item Description
Receipt Date Displays the Receipt Date for the Lot Number. This will be the IV Adjustment
Lot Number Displays the selected Lot Number
New Lot Number Enter the new Lot Number. For example, the adjustment will change TEST-A to TEST-AA
QTY Available Displays the QTY Available for the Lot Number
New Lot QTY Enter the adjustment quantity. This can be up to the QTY Available. New Lot QTY defaults to the QTY Available
Reason Code Enter an IV Adjustment Reason Code, or select one from the Lookup. This will be used on the lines of the Inventory Adjustment. A Reason Code is required
Lot Adj Note Enter text description explaining the Lot Number Adjustment. This will become the Inventory Adjustment document note. The Note is not required

ADJUST: Click the Adjust button to create an inventory adjustment. You will be asked to confirm you are ready to adjust the lot number. If YES, the following will occur:

  • And inventory adjustment will be created and saved in a Batch. The Batch ID will be up to 15-characters of the User ID.
  • The Transaction Date will be set to the Lot Receipt Date. NOTE: it will be possible to create a transaction for a Closed Period. No warnings will be given, but it will not be possible to post the transaction without addressing the issue.
  • The first line will be negative and adjust OUT the selected Lot and Quantity using the Site and Bin from the selected lot record.
  • The second line will be positive and adjust IN the New Lot Number using the Site, Bin and Cost from the selected lot record.
    • The MFG Date and EXP Date of the New Lot Number will be set based on the old Lot Number.
    • If a Lot Attribute record does not exist for the New Lot, one will be created and the Attributes will be copied from the old lot. If a Lot Attribute record exists for the New Lot, it will NOT be changed based on Attributes from the Old Lot.
  • If the user has security rights, the Item Transaction Entry window will open and display the transaction.

The net effect will be an Inventory Adjustment, as shown below, in and out on the original receipt date that results in a change to the Lot Number on that date, but the quantity and cost stay the same.

Graphical user interface, application, table

Description automatically generated

Assumptions/Requirements:

  1. The functionality described above will not work with eConnect, any software that uses eConnect, or any software that directly writes to, updates, or deletes from SQL tables.
  2. The functionality described above is intended for the GP Desktop client.
  3. National Accounts functionality is NOT used.
  4. Advanced Distribution functionality is NOT used.
  5. Unless otherwise noted in this document, reporting is not included in this estimate.
  6. Unless otherwise noted in this document, Word Template functionality is not addressed.
  7. Unless otherwise noted in this document, the enhancement will not integrate with 3rd party products. Some examples of 3rd party products would be:
  • An ISV plug-in product including WilloWare products
  • A dexterity customization designed by another developer
  • Dynamics GP Modules including, but not limited to:
  • Project Accounting
  • MDA
  • Analytical Accounting
  • Copy functionality found in SOP, POP and Inventory
  • Field Service
  • Extended Pricing
  • Manufacturing

For information on this design, or any other WilloWare customization or product, please contact us:

www.willoware.com/contact-me/

 

CompleteCount 2023-09-21

Release Date: 21-SEP-2023
GP Versions: 12/14/16/18
CompleteCount Build: 4.59
* Stock Count Maintenance: CompleteCount now has a replacement for the GP Stock Count Schedule window that significantly improves performance. The CC Stock Count Schedule window performs the same function as the GP Stock Count Schedule window but has been optimized for large amounts of data. Plus it has speedy filters for quickly restricting the window using a “contains” search on Item Numbers, Bins, Location Codes and Item Descriptions.
*COMPLETE INSTALLATION ROUTINE REQUIRED! This release includes a new window, CC Stock Count Schedule. Security settings will be updated during the installation to add the window.

This is a quick demonstration of the new window showing how much faster it is than the GP window even with just 300 rows.

 

MOGenerator 2023-09-07

Release Date: 7-SEP-2023
GP Versions: 12/14/16/18
MOGenerator Build: 4.128
* MORI: fixed issue where the Location Code in MOHdr was not overriding the defaults from the Scheduling Preference. The logic for retrieving sites has been modified slightly to fit how users assumed it would work, in the order shown:
–Draw From and Post To Sites are retrieved from the original MO (for partial receipts)
–If a site is missing, use the Default Scheduling Preference to find a site
–If a site is missing, and if MOHdrOpt has a Scheduling Preference, use to find a site
–If MOHdr has a Location Code, use that for the PostTo

If you need to do a single complete receipt on an existing MO and change the Post To site, mark the “Auto Close/Cancel MO” option and do a single receipt for the entire qty. MORI will create a “split” MO for the entire QTY, use the PostTo specified in MOHdr, and cancel the original MO.

GPPowerPack 2023-08-03

Release Date: 3-AUG-2023
GP Versions: 12/14/16/18
GP PowerPack Build: 7.169
* Tweaks: Purchasing Distribution Override-changed timing of when the GL account validations run so that if the default POP distributions contain an inactive account or account that does not allow account entry, the POP Distribution Override window does not run the validations on the default account but only when the user enters a new account.

CompleteCount 2023-07-20

Release Date: 20-JUL-2023
GP Versions: 12/14/16/18
CompleteCount Build: 3.58
* Tag Printing: the option to “Print Tags for On Hand Quantities Only” was only considering the Item-Site table quantities so bin-level tags were printing that had no inventory. This build alters the tag printing when multi-bins is enabled and this option is marked so it only prints tags if the bin has On Hand inventory.

GPPowerPack 2023-07-10

Release Date: 10-JUL-2023
GP Versions: 12/14/16/18
GP PowerPack Build: 7.168
* Tweaks: Lock POP Cost Fields – added a password override so that an admin user can enter these values when they must be changed.  All windows where costs can be locked now have an Additional Menu (Additional >> Unlock Costs) to unlock the fields.

Manufacturing Scheduling Bug

We recently received a support case regarding the MO Scheduler utility in the MO Generator Suite.  The consultant reported that when attempting to reschedule an MO they received a SQL error:

Conversion failed when converting the varchar value ‘50.01’ to data type int.

Since all WilloWare code has custom error handling (we have our own window for displaying errors) it was immediately clear the error was coming from GP Manufacturing.

“50.01” is a Routing Sequence.  We set up a routing with a similar sequence, but the MO Scheduler ran fine.  We couldn’t duplicate the issue.  The usual suspects for an error like this are either a VBA customization or a SQL table trigger, but neither of those were present.

The consultant provided a SQL trace that showed the scheduling process was failing on a stored procedure called mmopUpdatePicklist.  It has three input parameters:

  • MO Number
  • First Routing Sequence
  • End Routing Sequence

The trace also showed that “50.01” was the First Routing Sequence.  We changed our routing to make it the first sequence, ran MO Scheduler…and got the error!

Our code was calling the stored procedure through the manufacturing module, and it was (1) correctly finding the first and last sequences, and (2) passing everything in correctly.  We then executed the stored procedure in SQL Management Studio:

That also generated the error, so we knew it was not MO Scheduler causing the problem.

A trace of rescheduling an MO in the MO Entry window, which uses mmopUpdatePicklist but does not create an error, produced something odd.  The call to the stored procedure looked like this:

mmopUpdatePicklist “MO0196”, “-1”, “-1”

“-1”?  Those two fields are supposed on contain the first and last routing sequences.  In this case we expected it to look like this:

mmopUpdatePicklist “MO0196”, “50.01”, “900”,

Digging into the Manufacturing source code revealed that mmopUpdatePicklist is used in six different places in the code and five of them do NOT pass in the routing sequence, they pass in a hard-coded value of “-1”!  However, the Manual Scheduling window does use the First and Last Routing sequences.  We tried rescheduling from that window and got the same error:

Digging further, we investigated the mmopUpdatePicklist stored procedure and discovered that it is hard-coded to recognize “-1” as a magic value.

A “magic value” is a parameter you pass into code to make something happen, and it is a very bad idea.  In this case since the input parameters for mmopUpdatePicklist are MO Number, First Routing Sequence and Last Routing Sequence, you should expect those are the values used by the code.  Instead, it is using the magic value of “-1” to determine if it should schedule a specific sequence/range (the top case) or all sequences (the bottom case).  However, since the magic value of “-1” is an integer and FirstSeq is a string, the IF statement requires SQL Server to do an implicit data type conversion from string (varchar) to integer, and that means if you have routing sequences with letters, or decimal places, it will create an error because there is no way for it to compare “A001” to “-1”.

What would be preferable is to have the code always expect and use two inputted routing sequences.  If you give it the first and last it reschedules everything.  Or you could give it the 1st and 2nd, or 3rd and 7th to reschedule that range.  It would even be reasonable to allow passing in blanks to have it reschedule the entire MO.

If you have routing sequences with letters (or other characters) and you have encountered this issue, there is a relatively simple fix.  Just edit the stored procedure to replace -1 with ‘-1’, SQL will treat it as a string (varchar) and everything works fine.

 

 

 

MOGenerator 2023-07-03

Release Date: 3-JUL-2023
GP Versions: 12/14/16/18
MOGenerator Build: 4.127
* MO Scheduler: changed how our scheduling code works to accomodate a bug in a manufacturing stored procedure called mmopUpdatePicklist. If the first routing sequence is not an integer, attempting to reschedule the MO would result in a SQL error from Manufacturing (“Conversion failed when converting the varchar value ‘50.01’ to datatype int”).

MFGPowerPack 2023-06-26

Release Date: 26-JUN-2023
GP Versions: 12/14/16/18
MFG PowerPack Build: 12.222
* MRP Alternates: fixed case sensitivity issue with binary sort databases (#202300922)
* Item Copy: added nolock hint to source record selection query of the TableCopy routine

MFGImport 2023-06-22

Release Date: 22-JUN-2023
GP Versions: 12/14/16/18
MOGenerator Build: 4.126
* MO Scheduler: fixed issue that could result in changing the MO Header “Routing Name” field to be the MO Number (#202300902)

MFGImport 2023-06-20

Release Date: 20-JUN-2023
GP Versions: 12/14/16/18
MFG Import Build: 4.69
* FULL INSTALLATION ROUTINE REQUIRED
* Creates in the company database: W7048BOMLoadTemp, wspBOMImportPRE, wspBOMImportPOST, wspImportErr, W7048RouteLoadTemp, wspRTImportPRE, wspRTImportPRE
* BOM & Routing Imports: NEW- custom business logic. ImportPRE: After reading the Excel file, but before processing begins, run SQL update scripts on the imported data. Use this to add Template Items, set default values based on rules rather than a fixed value, set unit of measure, and more. ImportPOST: perform additional post integration updates, such as clearing certain fields.
* Enable Debug Mode with this dex.ini setting: MFGImportDebug=true. This will add several break points to the import routines where the process stops so you can verify what has occurred at the SQL level before proceeding.
* BOM & Routing Imports: added multi-user control to prevent to concurrently run imports from attempting to create the same records

MOGenerator 2023-06-20

Release Date: 20-JUN-2023
GP Versions: 12/14/16/18
MOGenerator Build: 4.125
* MORI: fixed issue with partial receipts where the rescheduling of the parent MO could remove the routing sequences from the parent MO without rebuilding/rescheduling the parent MO (#202300878)

Customization DS1446 Add Rebuild Kits to Sales Quotes

Customization DS1446

Add Rebuild Kits to Sales Quotes

Problem Definition:

ACME makes engines. After the sale, ACME generates a quote for service packages that contain one or more rebuild kits. Each kit could include up to 20-30 parts, and not all parts to rebuild the kit are always included in the quote. ACME needs a way to quickly and easily enter a sales quote for the service package.

Solution Overview:

ACME will create the service packages and the rebuild kits into the GP item master as Make items. All service packages will belong to the Item Class Code {CLASS ID}. A multi-level GP BOM will then be created with the service package as the finished good, the first component level will be the rebuild kit and then all possible parts that could appear below the rebuild kit as the second level components:

Package 1 (BOM)

         – R123 (rebuild kit assembly)

               -ABC (assembly component)

               -XYZ (assembly component)

         – R456 (rebuild kit assembly)

               -DEF (assembly component) 

               -XYZ (assembly component)

Design Features:

Sales Transaction Entry

From a sales quote, the user will place the cursor into a new line and type {“R-“} and press the TAB key.

A screenshot of a computer

Description automatically generated with medium confidence

The enhancement will recognize this as a service package and a custom lookup window will pop open for the user to search for the desired service package.

If the service package item number is known, and the entire rebuild item number is entered (ie: SERVICEPACK123), the custom lookup window will be bypassed and the Component Selection window will open instead. The Component Selection window will only open if the item belongs to the Service Pack Item Class AND has a GP Bill of Material. ACME will provide WilloWare with the name of the Item Class upon project approval.

The service pack item number itself will not be added to the sales transaction.

Service Package Lookup

The Service Package Lookup window will be similar to the existing Items lookup that opens when searching for an item to add to a sales document. The main differences will be:

  1. The window title will read “Service Pack Items”
  2. The scrolling window will only display items that belong to the Service Pack Item Class AND have a GP Bill of Material.
  3. The GoTo button in the top right will open the Bill of Material Entry window for reference.
  4. When a line item is selected, instead of returning it to Sales Transaction Entry, The Component Selection window will open.

A picture containing table

Description automatically generated

Component Selection

Graphical user interface, text

Description automatically generated

Field

Function

ADD

Adds all marked components without warnings to the sales quote. The item will be added using the unit of measure from the bill of material

CANCEL

Closes the window and returns to the sales quote without adding any components

REFRESH

Refreshes the tree view after correcting errors (see below) or selecting a BOM Type/BOM Name combination

Tree View

Displays all the Rebuild Kits found on the service pack and each component in the rebuild kit.

Each rebuild kit can be expanded or minimized to show or hide the components.

A rebuild kit can be marked or unmarked. Using the checkbox at the rebuild kit level will mark/unmark all components within it.

If there is an issue with the component that will prevent the component from being added to the sales quote, a warning icon will display (displayed as * in the mockup)

Service Pack

Displays the Service Pack Item Number and description

BOM Type

A drop down to select the BOM Type to use for the tree view. The options are:

  • MFG BOM
  • ENG BOM
  • ARCH BOM
  • CONFIG BOM
  • SUPER BOM

If a BOM Name is not required, click REFRESH to build the tree view.

BOM Name

When the BOM Type is either ARCH BOM or CONFIG BOM, the BOM Name will become enabled and the user can enter or lookup a BOM Name.

After selecting a BOM Name, click REFRESH to build the tree view.

Item Number

When a component is selected in the tree view, its item number will be displayed.

Description

Displays the selected component description.

Quantity

Displays the BOM quantity of the component. If there is more than one of the rebuild kit in the service package, this quantity will be the total required, not the per rebuild kit quantity. If a different quantity needs to be added to the quote, enter it here and click UPDATE to update the tree view.

Warnings

Any warnings associated with the item will be listed here. Warnings displayed here are the same warnings that GP will display when adding the item to the sales quote from the UI. (i.e. Item isn’t assigned to the Default Site ID, etc.)

The user can choose to correc the issues and then click REFRESH to refresh the tree view and re-validate the components.

Assumptions/Requirements:

  1. The functionality described above will not work with eConnect, any software that uses eConnect, or any software that directly writes to, updates, or deletes from SQL tables.
  2. The functionality described above is intended for the GP Desktop client.
  3. National Accounts functionality is NOT used.
  4. Advanced Distribution functionality is NOT used.
  5. Unless otherwise noted in this document, reporting is not included in this estimate.
  6. Unless otherwise noted in this document, Word Template functionality is not addressed.
  7. Unless otherwise noted in this document, the enhancement will not integrate with 3rd party products. Some examples of 3rd party products would be:
  • An ISV plug-in product including WilloWare products
  • A dexterity customization designed by another developer
  • Dynamics GP Modules including, but not limited to:
  • Project Accounting
  • MDA
  • Analytical Accounting
  • Copy functionality found in SOP, POP and Inventory
  • Field Service
  • Extended Pricing
  • Manufacturing

For information on this customization, or any other WilloWare design or product, please contact us:

www.willoware.com/contact-me/

MOGenerator 2023-06-13

Release Date: 13-JUN-2023
GP Versions: 12/14/16/18
MOGenerator Build: 4.124
* MORI: changed method used to set default BIN in MOHdrOpt to address a sporadic issue where it was failing to find the Material Receipt Bin at the Item Site even though it exists (#202300827)

Manufacturing Revaluation Aborted

 

Keywords: Manfacturing, Standard Cost, Revaluation, Replace Costs

A client recently encountered the error below after updating pending cost changes (using WilloWare’s Proposed Cost Update), then doing the Roll Up and Replace Costs routines on the Standard Cost Changes window in GP Manufacturing.

Problems were encountered while creating batch header information.  Revaluation aborted.

The Roll Up routine ran OK.  Clicking the Replace Costs button resulted in the error.

A Dexterity Script Log showed that the process stopped at a call to Init_GL_Post_Headers.  This manufacturing routine creates a Batch Header record and a Batch Activity record.

The Manufacturing Module creates Batch IDs in a format similar to this: dsmithGL_0.

The SY00500 (Batch Headers) table did not contain the Batch ID (i.e. dsmith GL_0) but it did exist in DYNAMICS..SY00800 (Batch Activity).

Further investigation found a SQL table trigger on SY00500 (Company Database) related to an auditing product.  The trigger was writing batch headers to a table belonging to the auditing product.

The conclusion was that as part of a test migration from Actual to Standard Cost, some bad data had been created in the inventory module.  This caused the first attempt to “Replace Costs” to fail.  The data issues were then fixed.

However, the audit software (trigger) had already captured the Batch Number and then failed to clear the record from its table because the Replace Costs posting routine failed.

Subsequent attempts to re-run “Replace Costs” caused Manufacturing to generate the same Batch Number (i.e. dsmithGL_0), and when it tried to add that record to the Batch Headers table the auditing trigger created a duplicate key error on its own table which in turn caused GP to fail to create the Batch Header record.

This case highlights the troublesome nature of SQL table triggers.  First, they can cause GP to fail with unhelpful error messages.  The GP application doesn’t know source of failure, so it doesn’t know how to respond to it.  Second, table triggers are often undocumented, and nobody remembers which tables have them, which makes troubleshooting complicated.

MOGenerator 2023-06-078

Release Date: 8-JUN-2023
GP Versions: 12/14/16/18
MOGenerator Build: 4.123
* NEW: added setup option on the MOGen window to “Auto-start after login”. When enabled MOGen will open automatically after logging-in and start processing records.
* Create Child MOs: fixed issue with the setup option to Create Child MOs from MO Entry that did not actually activate the feature

MFGImport 2023-06-07

Release Date: 7-JUN-2023
GP Versions: 12/14/16/18
MFG Import Build: 3.68
* Routing Import: fixed issue when a routing is imported with Default Values for Concurrent Sequence and Next Sequence where they populate with zeros instead of blanks.

MFGPowerPack 2023-06-06

Release Date: 6-JUN-2023
GP Versions: 12/14/16/18
MFG PowerPack Build: 12.221
* Item Copy: fixed case sensitivity issue with binary sort databases when using the Item Copy Table based integration (#202300742)
* Actual Cost Rollup: The MFGPP installation routine now checks if the GP MFG module is installed before attempting to add the Actual Cost Rollup resources that depend on MFG tables (#202300620)

Customization DS1422 Autofill Lot Numbers in MFG PowerPack/Quick Disassembly

Customization DS1422

Autofill Lot Numbers in MFG PowerPack/Quick Disassembly

Problem Definition:

ACME manufactures airplanes. They package the various assemblies of a plane into kits that will be shipped to the customer. At times, ACME needs to disassemble the kits in order to use one or more components in another kit.

All of the components of the kits are lot controlled and ACME uses Serial-Lot Linking during the MO receipt process, to link the parent and component lot numbers.

ACME will be using WilloWare’s Quick Disassembly module in MFG PowerPack. This module provides the means to quickly disassemble the kit, however it does not automatically assign lot numbers to the kit components.

ACME needs an automated approach to selecting the lot numbers.

Solution Overview:

This solution has no user interface and it is build upon the Quick Disassembly module in MFG PowerPack. Quick Disassembly must be purchased separately. This estimate does not include the cost of Quick Disassembly.

Design Features:

Quick Disassembly

Navigation: Transactions >> Inventory >> Transaction Entry

A new Item Transaction will be set up in Item Transaction Entry as per standard QD functionality.

  1. Enter the item number of the kit to disassembly and select the quantity to disassemble. This should be a negative number.
  2. After tabbing out of the line, the Item Lot Number Entry window will open. Select the lot number to disassemble.

Table

Description automatically generated

  1. Open Quick Disassembly from Additional >> Quick Disassembly
  2. Enter a Reason Code if applicable and choose Components From: Manufacturing Order
  3. Enter or select from the lookup to select the MO to disassemble.

    1. If the lot number chosen previously does not belong to the MO, a warning will appear and the user cannot continue.
    2. If the specific lot number has a quantity greater than 1 on the MO, a warning will appear notifying the user of this condition. The user will be able to choose how they want to proceed. The options are:

      1. Do not auto select the lots (current functionality of QD)
      2. Choose the first instance the lot numbers.

See the Important Considerations Regarding Serial-Lot Linking section for more information about this warning condition.

Table

Description automatically generated

  1. Click Process to add the components to the transaction.

After the components are added, the customization will locate the MO Serial Lot Linking information for the parent Item-Lot and, if possible, add the Component Lot Number(s) to the transaction.

The enhancement will use a hard-coded Bin Location. This Bin Location will be provided by ACME upon project approval. If the bin record for Item-Site does not exist, it will be added.

Important Considerations Regarding Serial-Lot Linking

Quick Disassembly does not validate if a lot number has been previously disassembled or not. Neither will this enhancement. It will not prevent a lot number from being disassembled multiple times, and therefore the same component lot from being added back into inventory.

If a finished good lot has a quantity greater than 1, MFG Lot Linking does not specify which child lot is linked to a specific parent. If the auto-lot selection process encounters the scenario, the component lot numbers will be selected in the order which they were linked to the parent. This may result in lot numbers being selected that are not necessarily on the parent. EIS has indicated this is not a normal instance, so should not be encountered.

Assumptions/Requirements

  1. The functionality described above will not work with eConnect, any software that uses eConnect, or any software that directly writes to, updates, or deletes from SQL tables.
  2. The functionality described above is intended for the GP Desktop client.
  3. National Accounts functionality is NOT used.
  4. Advanced Distribution functionality is NOT used.
  5. Unless otherwise noted in this document, reporting is not included in this estimate.
  6. Unless otherwise noted in this document, Word Template functionality is not addressed.
  7. Unless otherwise noted in this document, the enhancement will not integrate with 3rd party products. Some examples of 3rd party products would be:
  • An ISV plug-in product including WilloWare products
  • A dexterity customization designed by another developer
  • Dynamics GP Modules including, but not limited to:
  • Project Accounting
  • MDA
  • Analytical Accounting
  • Copy functionality found in SOP, POP and Inventory
  • Field Service
  • Extended Pricing
  • Manufacturing

For information regarding this design, or any other WilloWare customization or product, please contact us:

www.willoware.com/contact-me

CompleteCount 2023-05-31

Release Date: 31-MAY-2023
GP Versions: 12/14/16/18
CompleteCount Build: 3.57
* Value Code Assignment (ABC Codes): addressed error (cannot insert the value NULL into column QUANTITY) when updating ABC Codes by Unit Cost (#202300753). This is caused by bad data in IV00101 where items do not have a Valuation Method assigned (Valuation Method = 0). Also added a check for another possible error condition where no inventory items have been assigned a Current or Standard Cost.

MFGPowerPack 2023-05-31

Release Date: 31-MAY-2023
GP Versions: 12/14/16/18
MFG PowerPack Build: 12.220
* Serial Number Mass Entry: fixed issue that would cause the window to reject serial numbers in the following scenario–Component serial numbers are issued to a manufacturing order on an MCTE Issue and then “selected” during a partial receipt. The serial number selection of already issued serials resulted in SNME thinking the SN does not exist and adding it to the rejects list.

D365 Is Dead

It is hard to be alive if it never existed in the first place.  D365 does not exist.   D365 is a marketing umbrella term for two completely separate online ERP software packages provided by Microsoft.  The two separate ERP packages were purchased by Microsoft back in 2000 and at that time were called Navision and Axapta.  These are now confusingly referred to as Business Central (BC) and Finance & Operations (F&O), both under the even more confusing D365.

Here is the straight scoop on common beliefs about D365 and GP.

D365 is the next version of GP. No.  D365 is two completely separate online ERP packages (see above) that are in no way related to each other or to Dynamics GP.

GP migration to D365 is simple.  Probably not.  It might be easy if you are a very simple, financials only Dynamics GP deployment, with no 3rd party products, no report modifications and no window modifications.  Even with all of those restrictions, you are still implementing a completely new, completely unrelated piece of software so there will not be a direct migration for everything.

Dynamics GP turns off soon.  Absolutely not.  We recently did a custom project for somebody still using GP 2010.  If you own your GP license, it does not “turn off” because “support” ends.  There is no rush to do anything.  If you feel there is a strong business case for implementing new ERP software you can take your time to make a careful decision.  Do you know what can shut off at any time?  Software that you pay for on a monthly basis.

D365 is my logical migration path. Maybe?  Since BC and F&O are in no way related to Dynamics GP or each other, you might as well consider all of your ERP options.  Why not also look at SAP, Oracle, Infor, Netsuite or others?

Dynamics GP is slow. No.  This is a resource issue.  GP can be as quick and snappy as anything else.  If it is slow look at resources (hardware).  Also make sure there isn’t a 3rd party product that is killing performance.

D365 can do everything GP does.  If you already asked questions to confirm that “D365” can do what you need, make sure you know if the “yes” refers to BC or F&O.  Honestly, F&O is amazing and if you can afford it, go for it!

We need ERP online.  Dynamics GP can easily be moved to Microsoft Azure.  If you are not familiar with what Azure is, just think “server that lives at Microsoft”.  What is cool about Azure is you can add more RAM and CPUs at any time.  Better performance is just a few clicks away, then a couple minutes later GP is even faster!

Microsoft support for GP is ending.  Yup.  How much support do you get from Microsoft?  If you need support who do you actually turn to?  What you need is a good Dynamics GP partner who is committed to helping you.  WilloWare is still developing for, and supporting our products on, every version of Dynamics GP from 2010 and up.

Lastly, a question that you can probably answer by this point:

Will my (3rd party product/Excel report/Web-store integration/etc) work with D365?  No, because D365 does not exist.  How about with BC or F&O?  Probably not, but the details are important:

  • Is it “part of” GP?  Modified windows, reports, 3rd party products, customizations.  NO.
  • Is it external to GP and integrates data into GP.  MAYBE.  It depends on whether an integration into BC or F&O has already been created.
  • Custom Reports (SSRS, Excel, other).  NO.  These depend on the specific database tables of the ERP system.

MFGImport 2023-05-24

Release Date: 24-MAY-2023
GP Versions: 12/14/16/18
MFG Import Build: 3.66
* Routing Import: (1) added Excel file zoom button, (2) fixed issue with importing notes where some non-alphanumeric characters were stripped from the note (3) Now display “Done” or “Error” at end of process in the Status Message box
* BOM Import: (1) added Excel file zoom button, (2) Now display “Done” or “Error” at end of process in the Status Message box

GP Manufacturing Prevents Deleting Item-Site or Site

Keywords: Manufacturing, Item Delete, Item-Site Delete, Site Delete

You may have tried to clean up data in GP and were prevented from removing an unused or obsolete Item, Item-Site or Site because of a warning message from Dynamics GP Manufacturing such as:

“This site is used in Manufacturing, and can’t be deleted.”

“This item is a component on one or more bills of material. It can’t be deleted until you remove it from those bills of materials.”

If you are trying to remove an Item-Site record, in addition to controls from the Inventory Module (such as there cannot be inventory quantities of the Item), the Manufacturing Module can prevent the delete.

If you are trying to delete an Item-Site, the Manufacturing Module checks the following tables:

  • Work Orders (WO010032)-all MO Statuses except Hold/Canceled, those are ignored, which means the Item-Site combination can be on an MO if the Status is Hold or Canceled.
  • Picklists (PK010033)-unless the MO is Hold/Canceled.
  • BOM Lines (BM010115)
  • Pick Doc Line (MOP1210)-unless the MO is Hold/Canceled.

 

If you are trying to delete a Site, in addition to the tables above, it also checks:

  • Sales Preferences (ISSP0201)
  • Scheduling Preferences (SP010016)
  • MPS Lines (MF010130)
  • QA Preferences (QAPS0032)

 

Deleting an Item checks the following:

  • Work Orders (WO010032)-all MO Statuses
  • Picklists (PK010033)- all MO Statuses
  • BOM Lines (BM010115) – parent or child item

 

A significant hurdle to removing an Item-Site or Site is the fact that Complete and Closed Manufacturing transactions exist that have the Item-Site or Site.

MFG Data Archive can move historical manufacturing data to an archive company database and REMOVE those same records from the live company.  The complete list of tables covered by MFG Data Archive is available at the link below.

Archived Tables (willoware.com)

Additional benefits of archiving data are:

  • Faster lookups
  • Faster reports
  • Faster posting
  • Faster backups

Read more about MFG Data Archive here.

 

MOGenerator 2023-05-19

Release Date: 19-MAY-2023
GP Versions: 12/14/16/18
MOGenerator Build: 4.122
* MOGenV2: Changed timing of when MOP-SOP links are created so that it occurs immediately after adding a record to WO010032. This ensures that the MO is linked to the SOP Line even if other steps in creating the MO fail (such as building the picklist) (#202300681)
* Updated MOP-SOP link routine to subtract Qty Received on MO from the Available Qty To Link

Customization DS0835 Return Item Number Swap

Customization DS0835

Return Item Number Swap

Problem Definition:

ACME has a Salesforce.com integration into GP.  When a piece of equipment is pulled from a customer‘s home and returned, it is currently coming back into the system as the same Item Number used when it was sold.  This causes it to come back in with the cost associated with the original Item Number.  ACME needs to change the Item Number to a “Refurbished” Item Number, which has no cost (or a lesser cost). 

The sales Return makes use of Quantity Types (i.e. On Hand, Returned, Damaged, etc).  Only when the line is returning the quantity to the DAMAGED Quantity Type should the item number be swapped to the Refurbished Item. 


A screenshot of a computer

Description automatically generated with medium confidence

Each sales line will return inventory to only ONE of the available Quantity Types (i.e. the entire returned quantity will be in either On Hand, or Damaged, but not split between both). 

At some point after the Salesforce.com integration creates Sales Returns (Sales Transaction Entry), ACME needs a way to swap the Item Number on the Returns to “Refurbished” Item Numbers, and recalculate the documents.

Solution Overview:

The Refurbished Item Number will be stored as “Substitute Item 1” on the Item Maintenance Options window. 

A utility will be added to GP which a user can run to process all open (unposted) Sales Returns.  The utility will swap the Item Number to its Substitute Item, only when the Return Quantity is in the Damaged Quantity Type, update the Item’s Cost on the SOP line with the Cost from the Item Maintenance window, and recalculate the document. 

Design Features:

Recording Refurbished Item Numbers:

If an Item Number has a “Refurbished” Item Number, it will be stored in the Substitute Item 1 field, as shown below. 

A screenshot of a computer

Description automatically generated

Refurbished Item Utility:

Navigation: Tools >> Utilities >> Sales >> Refurb Item Update 

A screenshot of a system update

Description automatically generated with medium confidence

When the PROCESS button is clicked, the user will be asked:

“This utility changes Item Numbers to Refurbished Item Numbers 

On all unposted Sales Returns.  Continue?” 

If the user answers YES, the utility will: 

  1. Retrieve a list of all unposted Sales Returns.  For each Return: 
  2. Check if the document is currently open by another user.  If so, it will be reported on an Error Log at the end of the process.  If a document is open by another user, it cannot be updated, and will be skipped by the utility. 
  3. For each line on the return, it will check if the Returned Quantity is in the Damaged Quantity Type, and that the Item Number has a Refurbished Item Number in “Substitute Item 1”.  If so it will confirm that Refurbished Item 
  4. Has the same Unit of Measure Schedule 
  5. Has the same Quantity Decimals 
  6. Has the same Currency Decimals 
  7. Is assigned to the Site ID assigned to the Sales Line 
  8. Has the Price Level assigned on the Sales Line in its Price List 
  9. The Refurbished Item has a “Damaged” GL Account on Item Account Maintenance. 
  10. If any of the validations fail in Step #3, that Item Number will NOT be swapped.  It will be reported on the Error Log at the end of the process.  This will not prevent other lines on the same Return from being swapped. 
  11. If the validations pass in Step #3, the Item Number will be changed.  This will have the same effect as if the original Item Number had been deleted from the document, and the Refurbished Item Number added to the document using the same Quantity.  However, the Unit Price of the original Item will remain on the Sales Line. 
  12. The document totals and distributions will be recalculated. 

As documents are being processed, the Status Message at the bottom of the window will display the current document number. 

 

For information on this customization, or any other WilloWare design or product, please contact us at:

www.willoware.com/contact-me/

MOGenerator 2023-05-10

Release Date: 10-MAY-2023
GP Versions: 12/14/16/18
MOGenerator Build: 4.121
* MORI Excel: fixed issue where it was not automatically setting the ImportBOM/ImportRoute flags when the file contained multiple receipts of the same MO (#202300630)

Prorate Setup Time

Keywords: Prorate Setup Time, Prorate Quantity, Standard Cost (FIFO/LIFO Periodic), Actual Cost (FIFO/LIFO Perpetual), Backflush

Summary

When Prorate Setup Time is marked and Setup Labor is backflushed, the MO Receipt applies an incorrect amount of Setup Cost to each piece.

Overview

The online help for Costing Preference Defaults has the following to say about Prorate Setup Time:

Prorate Setup Time

Mark to distribute setup costs for standard cost items, and then select the quantity to use for calculating setup costs for standard cost items.

    • Average Quantity – The setup costs of an item (setup time multiplied by setup labor rate) will be divided by the average quantity of the item. You specify the average quantity of an item in the Item Engineering Data window. 
    • Standard Quantity – The setup costs of an item will be divided by the standard quantity of the item. You specify the standard item quantity in the Standard Cost Changes window. 

Standard Quantity can only be set on the Standard Cost Changes window, so it necessarily can only be used for Standard Cost items.  Average Quantity is set on the Item Engineering window.

The documentation for the Standard Cost Changes window says this about Standard Quantity:

If the item is a finished good, enter a standard quantity for finished good. When you set up preferences for how setup time is prorated for standard cost items, you can choose to use either the average quantity or the standard quantity.

And the documentation for the Item Engineering window says this about Average Quantity:

Optional. The Average Quantity is the default manufacturing order quantity, and is used in calculations if setup costs of standard cost items are prorated by the average quantity.

The only other reference to Setup Costs is on the MO Receipt Entry window.

Use all remaining setup costs

Mark this option to apply all remaining labor and machine setup costs – regardless of whether the labor and machine costs are marked to backflush or not – to the manufacturing order receipt. Setup costs that were previously applied to posted receipts will be deducted from the total setup costs for the manufacturing order. The default setting was set up in the Manufacturing Order Preference Defaults window, but you can change it when entering a manufacturing order. This option is not available if you are reversing a manufacturing order receipt.

Does all of this sound like the Prorate Setup Costs setting, and Standard/Average Quantity, only impact Standard Cost Rollup/Revaluation?

These settings also impact cost CONSUMPTION when backflushing, which with Actual Costing can significantly under-cost the finished good.  With Standard Cost it can result in a Variance.

Example

NOTE: everything below ONLY occurs if the Prorate Setup Time checkbox is marked.

CHAIR-ACTUAL is an actual cost item.  Item Engineering has Average Quantity of 20.

The Routing has one sequence with 1-hour of Setup and 1-hour per piece of Labor Time.  The Labor Cost for both Labor Codes is $40/hour.  Auto-Backflush Labor is marked.

We’ve created an MO for 24 and received one piece.  The Production Costs Labor field is $1000, which is correct.

  • Setup: 1 hour * $40/hour = $40
  • Labor: 24 pieces * 1 hour * $40/hour = $960
  • Total: $40 + $960 = $1000

We’ve received one piece and backflushed labor for $40.08.

  • Setup: We would expect to consume 1/24th of the Setup Cost.  This is one hour of Setup Cost divided by the End Quantity on the MO.  This should be $1.66667
  • Labor: We made one piece, which should take one hour, so this should be $40.
  • Total Labor should be $41.66667 not $40.08.

What is actually happening is the Prorate Setup setting and the Average Quantity are causing the MO Receipt to consume 1/20th of the Setup Cost per piece (remember the Average Quantity setting above?).

  • Setup: (1 hour * $40/hour) / 20 = $2.  So, our starting point for consuming Setup Time is $2 instead of $40.  Manufacturing then takes 1/24th of that (it divides by the MO End Quantity), which results in $0.08333 per piece.
  • Labor: this calculation is correct, which adds $40 in labor.
  • Total: $0.08333 + $40 = $40.08 (rounded to 2-decimals).

The MO Variance screen now shows the numbers after received 23 of 24 pieces.  The total labor consumed is now $921.91, which is 23  * $40.08333.

When we receive the final piece, we will have either (1) undervalued the actual cost inventory, or (2) created a cost variance with standard cost inventory.

Standard Cost

This is the MO Variance for an MO for 24 of CHAIR (standard cost item).  The Routing has the same setup described above.  Note that the Cost Put into WIP ($42) is not what we’d expect (and it is different than what happened with the actual cost item).  In this case it is used 1/20th of the Setup Time per piece and is ignoring the MO End Quantity.

After receiving 23 of 24 pieces, we can see that it is using $42/piece.

  • $42 * 23 = $966

And finally, with the MO complete and all pieces received, we can see that the Costs Put into WIP holds $8 more than Standard.  If we had produced exactly 20 pieces the math would have been correct, if we produced much more than 20 the variance would be even larger.

 

Conclusion

With Actual Cost items the calculation is wrong and significantly under applies Setup Cost.  With Standard Cost items there might be a weak argument in favor of always adding Setup Cost at the prorated value (a kind of “setup overhead”), but even here it would make more sense to apply the full Setup Cost (i.e. Cost/End Qty) to the items produced.

The Prorate Setup Costs setting makes sense when calculating the standard cost of an item during a cost roll-up and revalue, but it should not impact how setup costs are calculated and applied on a Manufacturing Order.

For Actual Cost, it makes sense to NOT have Prorate Setup Costs marked.  Average Quantity on Item Engineering can then be set, if needed, and it will not impact manufacturing orders.

For Standard Cost, you may want to consider only marking the Prorate Setup Costs box immediately BEFORE doing a Roll-up and Revalue, then unmarking it.  It would be important to not process any MO Receipts while the setting is enabled.

 

 

PSTL Combiner Duplicate Key Error

Keywords: PSTL, Professional Services Tool Library, Duplicate Key

When using PSTL Combiner (i.e. combining Items, Customers or Vendors), you can get a duplicate key error:

[Microsoft][SQL Server Native Client 11.0][SQL Server]Violation of PRIMARY KEY constraint ‘PK-tablename-‘. Cannot insert duplicate key in object ‘dbo.-tablename-‘.  The duplicate key value is (AAAAAAA, BBBBB)

This is usually caused by a table that has multi-part key, such as a pricing table where the key fields are:

  • Item Number
  • Vendor ID
  • U of M
  • Date
  • Qty

In such a table if there is pricing for Item A and Item B, and you are combining B into A, there is no way for PSTL to “combine” two price lists.  The same would be true for changing Vendor X to Vendor Y…it would create duplicate price lists and the software has no way to figure out which one to keep.

DO NOT FOLLOW THE STEPS BELOW IN A LIVE COMPANY DATABASE!  MAKE SURE YOU HAVE TESTED AND VALIDATED BEFORE DOING THIS IN LIVE.

For the table getting the error, delete either the A or B set of records.  You need to make a choice of which “source” will be the master record going forward, is it the records from A or from B?  Then run the query below:

delete [tablename] where [ITEMNMBR/VENDORID/CUSTNMBR] = ‘A’

9MAY2023: Update: John Arnold at US Digital shared the script below (link is a text file) he created to identify problems with Customer Combiner prior to running the tool.  Download Script

 

MFGPowerPack 2023-05-02

Release Date: 2-MAY-2023
GP Versions: 12/14/16/18
MFG PowerPack Build: 12.218
* SVC Equip Suite: (1) Equipment Customer Change now works with the RMA Receiving window, (2) In the RMA Line Serial Numbers window when the software detects that the SN being returned does not belong to the Customer on the RMA it will ask if you want to change the customer, and if you answer YES it will automatically do the change without opening the Equipment Customer Change window.

 

MOGenerator 2023-05-01

Release Date: 1-MAY-2023
GP Versions: 12/14/16/18
MOGenerator Build: 4.120
* MOGenV2: (1) fixed issue in Excel import that caused Post To to be blank (#202300567), (2) MO Rescheduling can now be done with all MO Statuses other than Complete and Closed.  NOTE: The MO Entry window requires that MOs be in Open or Quote status to be rescheduled, but the Batch Reschedule window does not have this same restriction.  Rescheduling a Released or Partially Received MO behaves as you would expect–it changes the required dates on Picklist components and the Start/Stop date/time on Routing Sequences.
* Updated Excel imports to use a different excel api property that is not affected by spreadsheet formatting

 

MFGPowerPack 2023-04-20

Release Date: 18-APR-2023
GP Versions: 12/14/16/18
MFG PowerPack Build: 12.217
* Serial/Lot Auto Generate: added support for WilloWare’s LeanMFG module (requires updating to the lastest LeanMFG build)
* NEW TWEAK: Force Reschedule- The MO Entry window does not allow rescheduling released (or above) status MOs even though they can be rescheduled from the Batch Reschedule window. This Tweak adds an Additional Menu item to MO Entry that bypasses controls on that window which prevent rescheduling a Released (or above) MO.

GP Manufacturing Multi-Product/By-Product

Keywords: Dynamics GP Manufacturing, multi-product, co-product, by-product

A GP Manufacturing Order can only produce one item.  Right?

This may surprise you, but a GP Manufacturing Order can produce multiple items at once.  This is often referred to as By-Products, but it can be used for any scenario where you need to make multiple items at once.  Here’s how.

In this scenario we are producing cuts out of a roll of steel.  When we create an MO for 2×8 cuts we could also produce 2×4 and 2×6 cuts.

Additionally, we track lot numbers of the steel rolls so that we can always tell how much of a roll remains by looking at the lot quantity.

When we create a manufacturing order that needs a steel roll we issue the ENTIRE ROLL to the MO, and then return to stock the remainder of the roll.  This could be done by an Issue and Reverse Issue, however we’re doing to do it as a by-product (more on this later).

As shown above, the BOM for the 2×8 SHEET has both of the other possible cuts that could be produced AND the STEEL ROLL all at zero quantity.  It is not necessary to do this, the BOM could have only the STEEL ROLL, but we’ll see later that the extra setup at this point makes it easier to record production.

We have a Manufacturing Order to make 4 of the 2×8 SHEET.   The Picklist includes the “zero quantity” items:

The MO requires 0.12 FEET of STEEL ROLL, but when we check inventory we find that the smallest lot quantity is 20, so we change the Issue Transaction to 20 and post it.

MO Receipts can be posted as needed on the MO, recording additional production of “other” items at the same time.

At this point you could manually add By-Products/Co-Products/Multi-Products manually by clicking the Add Component button and entering the Quantity Produced as a NEGATIVE.  The benefit of adding the POSSIBLE other items to the BOM with zero quantity is you just need to enter the quantity next to each item.  It is much faster.  As shown above the other items that COULD BE produced are shown on the MO Receipt Entry window.  We will produce some of each item.

The software does not calculate the quantity of STEEL ROLL consumed by the co-products so that needs to be done manually.  However, the same would apply when doing a Reverse Issue transaction, and recording it as another co-product eliminates the need to create a separate Reverse Issue transaction.

Posting the MO Receipt will first post “production” of the co-products:

Followed by the normal finished good receipt:

With Actual Cost inventory the by-products go into stock at the last cost (i.e. the Current Cost shown on Item Maintenance).  There isn’t an opportunity to enter a Unit Cost, so costs would need to be adjusted after the fact using the Inventory Adjust Costs utility.

(WilloWare can customize the MO Receipt process for Actual Cost items to perform a cost allocation calculation that apportion the input costs (inventory, labor, machine, etc)  correctly over the items produced.)

When the Actual Cost finished good posts, its cost is the REMAINING costs in WIP (i.e. total cost put into WIP minus By-Product Cost).

With Standard Cost inventory the by-product go into inventory at its Standard Cost, as does the finished good.  The Standard Cost Roll-up routine does not include By-Product costs even if they are included on the BOM, so by-products/co-products when used with Standard Costing will always result in a Variance.