Showing results for 
Search instead for 
Did you mean: 

PLMXML Import generating new IDs

Siemens Experimenter Siemens Experimenter
Siemens Experimenter

Hi everyone,

we are trying to import a PLMXML from a TC 10.1.5 installation to a TC 11.2.1; this PLMXML is an export of a CC from MPP containg a BOP, a BOM and a Plant.


Unfotunately, most of the items in the exported CC have the same IDs of other items already existing in the target machine and when we import the PLMXML using "ConfigureDataImpotDefault" or "incremental impor" transfer modes, TC does not import them. 


I know we can force the transfer mode to override existing objects but this is not what we need.

Is there any way to let the import  autogerate new IDs ?


Thanks !


Re: PLMXML Import generating new IDs



From memory, you would have to nullify the UID, this would force it create a new one. If you also remove the item id and your naming rule is set to generate an ID this might work?  Else you would have to replace all the item ids with some VB or other code in the xml file prior to upload.



Richard Bennett
Prospect PLM

Re: PLMXML Import generating new IDs

Siemens Experimenter Siemens Experimenter
Siemens Experimenter

Thanks Richard and sorry for the late replay.


Following your suggestion, we did a simple c# app that replaces all the item ids and than invoke the TC import.




Re: PLMXML Import generating new IDs

Siemens Genius Siemens Genius
Siemens Genius

if possible can you please share the C# app that you talked about?

Re: PLMXML Import generating new IDs

You can also use a simple transform (file name PLMXMLRemoveAccessAndApplicationRef.xsl):


<xsl:stylesheet version="1.0" xmlns:xsl="" xmlns:PLMXML="" >
<!--empty template suppresses this attribute-->
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*" />
<xsl:template match="@accessRefs" />
<xsl:template match="PLMXML:ApplicationRef" />
<xsl:template match="PLMXML:AccessIntent" />
<xsl:template match="PLMXML:Site" />
<!--identity template copies everything forward by default-->
<xsl:template match="@*|node()">
<xsl:apply-templates select="@*|node()"/>


Using the following java comand:


java -classpath C:\Siemens\TCRoot\portal\plugins\org.apache.fop\xalan-2.7.2.jar";"C:\Siemens\TCRoot\portal\plugins\org.apache.fop\serializer-2.7.2.jar";"C:\Siemens\TCRoot\portal\plugins\org.apache.fop\xml-apis-1.3.04.jar";"C:\Siemens\TCRoot\portal\plugins\org.apache.fop\xercesImpl-2.9.1.jar org.apache.xalan.xslt.Process -IN foo.Xaccess.xml -XSL C:\Temp\PLMXMLRemoveAccessAndApplicationRef.xsl -OUT foo.Xid.xml