This article was written to document tips and tricks when creating Part records to PDMLink from Excel. It is fairly easy to create a load file but for large loads, this process can be very slow. If there is one tiny error, the entire load file is canceled.
Cell A1 should contain the phrase "ImportSheetType=PART". This indicates what type of import this is. Below are the columns headings (exactly) starting with row 6. Part data should exist from row 7 and below.
This is the logical name of the Part soft type. For normal parts, use "wt.part.WTPart". For example, a CIS Resistor type is "local.root.goodrich.Resistors".
Part Name/Description. 60 Characters.
Part Number. 40 Characters
This is a field in PDMLink. Choices are "component", "separable" or "inseparable". Case sensitive.
This is a folder location but it can be blank.
This is an organization of the Part but it can be blank.
This is the initial revision of the Part but it can be left blank.
This should be set to "Design".
Lifecycle State. For Library parts, use "RELEASED".
"make" or "buy". Case sensitive.
Steps to Import: User Interface
Select Import File
Using the file browser or drag 'n drop icon, provide the path to the import file that will be loaded in. See sample file here. More information about formatting is detailed below. Click Next or Finish.
This is an optional step. Depending on your confidence with the import file, you may want to have PDMLink check the data before trying to import it. This can take a long time so it may make sense to try small dataset to make sure you have the column headings correct. In some cases, you can skip validation since the time it take to validate file is just as long as letting the import file fail.
Once you click Finish, PDMLink will email you when the import process has started and again when it completes or fails due to an error. See common issues below to assist you in known problems.
Common Issues and Tips
Loading Attribute Data
If there any custom attributes (IBA) added to Parts or soft types of Parts, these can be loaded by specifying the attribute name on the column header to the right of "Source". The value can be added for each part row below this.
Formatting Attributes With Units
Attribute values must be in equivalent units for the attribute definition. Units must follow the value by a space. For example, resistance in "ohms" can be written as "5 ohms", 40 "Kohms" or "3 Mohms". Prefixes are documented in PDMLink and can be used to scale unit values.
Attributes with Discrete Sets
Attributes that are controlled by discrete sets must adhere to those sets. These are case sensitive. Violations will be noted as an error like this:
wt.ixb.publicforhandlers.ixbResource/8) wt.ixb.publicforhandlers.LogHelper$IxbException: Unexpected problem in export/import process. Nested exception is: com.ptc.core.meta.container.common.ConstraintException: The value for attribute Material must be one of the following: FILM;METAL FILM;WIRE WOUND;THICK FILM;THIN FILM;CARBON COMP;CERMET;CARBON FILM;FOIL Constraint Violation in isValid()
Unfortunately, no line item is given in error log. It is recommended to check values for these attribute before submitted load file.
Bad Attribute Names
If the attribute column header does not match any known attributes for that Part type, you will see an error like this:
Message: Resource bundle/Message key = com.ptc.windchill.ixb.importer.importerResource/154(com.ptc.windchill.ixb.importer.importerResource/154) wt.util.WTException: Could not find the iba attribute with path "MFG_NAME"
Working with Part Types
Part soft types can be loaded by specifying the part type in the first column. If the part exists, it must match this type already. The TypeChangeTool can be used to change the part type ahead of the load file. Load will fail if this does not match. Value in this column should match the logical name of the soft type but not the entire path. For example, "local.root.goodrich.Resistor". If the type is not correct, you will receive an error message like this:
Message: Resource bundle/Message key = wt.ixb.publicforhandlers.imp.IXBImpConflictRB/incompartible_type_id(wt.ixb.publicforhandlers.imp.IXBImpConflictRB/incompartible_type_id) wt.ixb.util.IXBConflictException: Object existed with a different type. Existed type: WCTYPE|wt.part.WTPart; expected type: WCTYPE|wt.part.WTPart|com.goodrich.eos.CISPart|com.goodrich.eos.Resistors.
NOTE: The log file shows the "Name" path value of the soft-type yet the input file give the logical identifier value.
Converting Number to Text in Excel
When loading numeric values as Strings or unit attributes, make sure that Excel does not convert them to numbers. You might end up with values with decimal points like 245.0 or it could fail to load. Add an apostrophe (') to the beginning of the cell value to have Excel treat it like text.
Load failures and successes will be logged to the following folder on the PDMLink server: Windchill/tmp/IxbLog and noted with an ImportJob number. Log files of failures will contain the first error that was encountered and stop. If the load was a success, its file size should be 316 byes which is a visual indicator or success. Anything larger indicates an error occurred.