CET 17.0 extracts the reusable PMX runtime surface from cm.abstract.pmx into the new shared package cm.core.pmx.
This is now the package that owns the PMX data model (ItemData, OptionData, PartDetails, and related records), the PMX database wrapper (Database), the PMX file constants, and the PMXNetObj/DataDefinition bridge layer.
The move makes PMX functionality available to both exporter code and generic part-import code without forcing those consumers to depend on the abstract exporter package. It also broadens the PMX database/export payload to include project-level metadata such as notes, order info, and sold-to/ship-to records.
Because the package is new, migration work is mostly straightforward namespace replacement: code that previously instantiated PMX data/database types from cm.abstract.pmx should now import cm.core.pmx and use the same type names there.
cm.core.pmxThe PMX core/runtime interfaces now live in a new package. Import it anywhere you construct PMX record objects, talk to the PMX database wrapper, or need PMX constants.
Added: package cm.core.pmx : 17.0.100; Added: use cm.core.pmx;
cm.abstract.pmxThese public types keep the same names but now come from cm.core.pmx.
Old: cm.abstract.pmx.AttributeData New: cm.core.pmx.AttributeData Old: cm.abstract.pmx.Database New: cm.core.pmx.Database Old: cm.abstract.pmx.ItemData New: cm.core.pmx.ItemData Old: cm.abstract.pmx.itemDataStatus New: cm.core.pmx.itemDataStatus Old: cm.abstract.pmx.OptionData New: cm.core.pmx.OptionData Old: cm.abstract.pmx.PartDetails New: cm.core.pmx.PartDetails Old: cm.abstract.pmx.PictureData New: cm.core.pmx.PictureData Old: cm.abstract.pmx.ProjectInformation New: cm.core.pmx.ProjectInformation
The following previously-abstract support types also moved into the new package:
Old: cm.abstract.pmx.DataDefinition New: cm.core.pmx.DataDefinition Old: cm.abstract.pmx.PMXNetObj New: cm.core.pmx.PMXNetObj
cm.core.pmx exposes additional PMX record objects that can now be created and inserted explicitly.
Added: public class NotesTable Added: public class OrderInformation Added: public class ShipToInformation Added: public class SoldToInformation
These are the types now used by cm.abstract.pmx.PMXExporter when exporting project-level PMX metadata.
Database has new schema-update and metadata insertion APIsIf you subclass, wrap, or call Database directly, update your code for the broader 17.0 surface.
Added: extend public void makeDatabaseStructureUpdates() Added: final public bool checkIfColumnExists(str tableName, str columnName) Added: final public void alterProjectInformationTableAddNewColumns(str oldTblName) Added: final public int64 insertNotesInfo(NotesTable in_notesInfo) Added: final public int insertOrderInformation(OrderInformation in_orderInfo) Added: final public int insertShipToInformation(ShipToInformation in_shipToInfo) Added: final public int insertSoldToInformation(SoldToInformation in_soldToInfo)
The constructor now also performs structure updates when opening an existing PMX database file.
ProjectInformation constructor now accepts ProjectInfoProjectInformation still takes the PMX target path, but it now also accepts the source ProjectInfo object so it can populate the expanded project metadata.
Old: public constructor(Url pmxTargetPath) New: public constructor(Url pmxTargetPath, ProjectInfo projInfo=null)
PartDetails has a new package-count propertyPartDetails now carries package-count data.
Added: final public int packageCount() Added: final public int packageCount=(int value)
cm.core.pmxcReconfigCategory was moved out of cm.abstract.pmx and is now public in cm.core.pmx.
The shared PMX file filter is also now exposed from cm.core.pmx for importer/exporter code.
Old: cm.abstract.pmx.cReconfigCategory New: cm.core.pmx.cReconfigCategory Added shared constant in cm.core.pmx: public str[] pmxFileFilter
Any package that only needs PMX constants or the PMX file-extension filter should depend on cm.core.pmx instead of cm.abstract.pmx.