Exporting a PDXpert PLM bill of materials to Fishbowl Inventory
Last update 2011-07-03
Fishbowl Inventory® for QuickBooks® requires two separate identifiers to transform a collection of components into an assembled product. This is different from PDXpert PLM software, which directly associates the parent assembly number with its child parts. This note describes one method for transforming a PDXpert PLM assembly to Fishbowl Inventory using Microsoft® Excel®.
Topic contents
- Fishbowl Inventory for QuickBooks: the Bill of Materials record
- Fishbowl Inventory's import file formats
- Modeling the Fishbowl BOM within PDXpert
How one PDXpert export creates two Fishbowl import files - Setting up the PDXpert PLM collections
- Setting up the export/import workspace
- Creating your assembly in PDXpert
- Processing your assembly files
- Final comments
Fishbowl Inventory for QuickBooks: the Bill of Materials record
Fishbowl Inventory collects and displays pre- and post-production information about an assembly in two sections under a single BOM record.
- The first section contains the output of the manufacturing process, the Finished Good, which is assigned a physical part number that's distinct from the BOM record number.
- The second section contains the set of individual items (Raw Good) that are required to construct the Finished Good.
The example below shows that shippable product 1234 (a Finished Good) is produced from two components (Raw Good numbers 2345 and 4567) and an assembly (Raw Good 3456). These are shown on the Fishbowl bill of materials record 5678, which is of type Manufacture.
Fishbowl Inventory's import file formats
There are two Fishbowl import files of interest, each containing a set of properties in standard comma-separated value (.csv) format.
Item Import CSV file
The item file contains all items that will be consumed or produced. It doesn't include the BOM Manufacture record, which appears only in the BOM Import file.
| PartNumber | PartDescription | UOM | PartType |
|---|---|---|---|
| Text: max 70 | Text: max 252 | Text: max 10 | Inventory |
BOM Import CSV file
Each BOM file has one BOM row, which contains the BOM Manufacture record.
| Flag | Number | Description | Type | Revision | AutoCreateType |
|---|---|---|---|---|---|
| BOM | Text: max 70 | Text: max 252 | Manufacture | Integer | Never |
The BOM file also includes Item rows that contain any number of Raw Good components as well as the Finished Good. Each BOM Import file's item Description and Part must match, respectively, the Part Import file's item PartDescription and PartNumber text.
| Flag | Description | Type | Part | Quantity | UOM |
|---|---|---|---|---|---|
| Item | Text: max 252 | Raw Good | Text: max 70 | Real number | Text: max 70 |
| Item | Text: max 252 | Finished Good | Text: max 70 | 1 | each |
Combining these, the data headers are in the first two rows and all data follows. For example:
| Flag | Number | Description | Type | Revision | AutoCreateType |
|---|---|---|---|---|---|
| Flag | Description | Type | Part | Quantity | UOM |
| BOM | 5678 | BOM: Model 55, Shippable | Manufacture | 1 | Never |
| Item | User Guide, 55 Series | Raw Good | 2345 | 1 | each |
| Item | Shipping Carton | Raw Good | 4567 | 1 | each |
| Item | Model 55, Final Assembly | Raw Good | 3456 | 1 | each |
| Item | Model 55, Shippable | Finished Good | 1234 | 1 | each |
Modeling the Fishbowl BOM within PDXpert
The PDXpert export file must contain two distinct records for each Fishbowl assembly, the Finished Good item and the Manufacture record.
The PDXpert assembly shares its part number with the Fishbowl Finished Good (1234 in our example). Along with the individual components and any lower-level Finished Good subassemblies, the PDXpert structure must include exactly one Fishbowl Manufacture record, 5678.
The practical consequence is that the physical assembly located in a warehouse location is the same as the PDXpert assembly number. It seems intuitive that the same PDXpert and Fishbowl items should have identical physical attributes like unit of measure, cost, mass and materials.
In practice, you can search for either record to find its complement: the Manufacture record appears on the Finished Good item's Structure, while the Finished Good is displayed on the Manufacture record, on the Appears On tab's Structure list.
There are other schemes for relating the single PDXpert assembly to the pair of Fishbowl records. For example, a separate number could be entered into the assembly's Global number or a custom attribute could be created. These have the benefit of being more tightly coupled to the assembly, and not requiring a separate structure record. The disadvantages are that the virtual component can't have a distinct Description, and the record identifier can't be auto-generated (although a simple rule could be, say, to replace manually the first character in the assembly part number with "9" or append a suffix).
How one PDXpert export creates two Fishbowl import files
The Excel macro PDXpertToFishbowl processes the PDXpert export file, which is created using the Data Transformation collection's Export Structure (Current) member.
- To create the Fishbowl item import CSV file from the PDXpert file, each item is copied unless it's a document or is of the type Manufacture.
- Creating the Fishbowl BOM import CSV file is a bit more complex.
With the PDXpert parent assembly as the Fishbowl
Finished Good:
-
The PDXpert items are scanned for the Manufacture record that's copied to the BOM row.
The Excel macro assigns the PDXpert assembly's revision, not the PDXpert Manufacture document revision, to the Fishbowl Manufacture record. It's the assembly's list of components that is revised, and there's no particular benefit to keeping the Manufacture record's revision in lockstep with the assembly's revision.
All items on the list that are neither documents nor the Manufacture record are copied to the BOM import file.
The PDXpert parent assembly is copied to the final row as the Fishbowl Finished Good.
-
Setting up the PDXpert PLM collections (once)
-
Add a new Document Type named Manufacture and use BOM as the Abbreviation.
On the General tab, the Markup will accept parts checkbox should remain cleared. To avoid confusing this with the physical assembly record, don't accept documents or parts on the Markup, or any file attachments.
On the Attributes tab, assign new document numbers from (a) the same Identifier sequence collection member as the parts use (e.g., Part number), or (b) a special sequence for BOM records. It may be useful to assign something like BOM: [assembly name] to the Document title template.
-
Open the existing Part Type collection's Assembly member, and edit the Name to Finished Good, and update the Abbreviation to FG. The Markup will accept parts checkbox should remain marked.
This step is entirely optional. The Excel macro will convert any assembly part type into a Fishbowl Finished Good type. You can edit the Assembly record if you prefer PDXpert to display Finished Good to match Fishbowl's record.
-
Ensure that the PDXpert's Units of Measure members match the Fishbowl units of measure. The primary UOM is each or ea but also review other Count members, as well as the Length, Area, Volume and Mass categories. Fishbowl's UOM matching is case-sensitive.
Setting up the export/import workspace (once)
Using Windows Explorer, create a new folder on one of your computer's local drives. Let's call this the \Working folder. Download the PDXpert-PLM-Tools.zip file, extract the Excel PDXpert-PLM-Tools.xls file, and save it in your \Working folder.
The following steps 2 & 3 will be performed automatically if you run the Excel ThisWorkbook.PDXpertToFishbowl macro immediately after this step.
-
Create a folder immediately under your \Working folder called \PDXpertOut, so you now have a folder \Working\PDXpertOut. This is where the Excel macro will look for the PDXpert assembly export file(s).
-
Create another folder under your \Working folder called \FishbowlIn. The Excel macro will save all Fishbowl import files in the \Working\FishbowlIn folder.
Creating your assembly in PDXpert (each assembly)
-
Create your parent assembly as a Finished Good item.
-
Add child documents and parts (which may include other Finished Good items) to the assembly Structure tab's Markup list.
-
Add one Manufacture record to the Markup list.
A source file will not be converted if it doesn't have any, or has more than one, Manufacture record.
This Manufacture record can be at any Find location on the assembly's Structure list.
-
Release the assembly.
Processing your assembly files (each export/import)
Before proceeding, you may want to delete any existing files in the \Working\PDXpertOut and \Working\FishbowlIn folders.
-
From within the PDXpert client:
-
On the Tools menu, select Report/Export Wizard...
-
Click on the Export table-formatted data button.
-
Select the Export Structure (Current) report. Click the Next button.
A source file will not be converted if it has any pending or canceled items.
-
From the PDXpert Item Explorer, drag a released assembly (which contains the components and virtual item record) onto Report/Export Wizard window. Click the Finish button.
-
Navigate to your export subfolder \Working\PDXpertOut and save the file.
-
-
Open the PDXpert-PLM-Tools.xls file in Excel. Run the macro ThisWorkbook.PDXpertToFishbowl (for example, in Excel 2010, click the Developer tab and then the Macros button). This macro processes one or more files in the \Working\PDXpertOut folder and creates the related Fishbowl files in the \Working\FishbowlIn folder.
You may need to enable macros; for instructions, search for "enable macro" in the Excel Help file.
The Fishbowl filenames use the BOM number, not finished good number.
-
From within the Fishbowl Inventory application, first import the item import file \Working\FishbowlIn\Item-number.csv and then the BOM import file \Working\FishbowlIn\BOM-number.csv. If you've created multiple item and BOM files, import all item files before importing the BOM files. Refer to the Fishbowl Inventory user documentation Steps to Import a CSV File for detailed instructions.
Final comments
The PDXpert-PLM-Tools.xls file offers several options on the FishbowlRules tab. You can identify alternative working folders, set file processing limits, and choose whether to auto-delete a source file in the \PDXpertOut folder after it's been converted.
In the BOM import file, the Finished Good item is always assigned a quantity of 1 and unit of measure of each.
Before each run, ensure that your working folders contain only those files that you want processed. During the Fishbowl import, you can mark the Delete file from the file system after successful import checkbox which can be used to automatically clean up the \FishbowlIn folder after the import is finished.
Because the Inventory items must be imported before the BOMs can be constructed, import of a multi-level product structure requires items to be imported "bottom up".
Excel® and Microsoft® are registered trademarks of Microsoft Corp. Fishbowl® and Fishbowl Inventory® are registered trademarks of Fishbowl. Intuit® and QuickBooks® are registered trademarks of Intuit, Inc.
This application note was relevant to the PDXpert software release that was current at time of publication. Product changes since that time may affect its utility. We'd be happy to assist you in assessing the applicability of this note to your situation.
Application Notes
- Engineering process design
- Item Revision State and Item Lifecycle Phase
- File searches using IFilters
- Automated PDXpert backup
- Multiple PDXpert servers
- Comparing BOMs in Excel
PDXpert & other software
- Importing a CAD BOM
- Integrating Altium Designer
- Integrating Cadence OrCAD
- Using an MRP/ERP system
- Fishbowl Inventory/QuickBooks
- Preprocessing a BOM file
- Graphical BOM in Visio
