Skip to main content
1-Visitor
September 8, 2016
Question

How to link WTPart to EPMDocument without checkout of WTPart

  • September 8, 2016
  • 3 replies
  • 5301 views

Please let me which API to use to create link between WTPart and EPMDocument without checking out the WTPart..

Thanks in advance

3 replies

1-Visitor
September 8, 2016

About which API are you talking?

With Java code you can do something like this:

EPMDescribeLink describeLink = EPMDescribeLink.newEPMDescribeLink(wtPart, epmDocument);

PersistenceServerHelper.manager.insert(describeLink);

1-Visitor
September 9, 2016

Hi Fabian,

Actually I was trying to link WTPart and EPMDocument, I was successful in doing so but it requires a check out of WTPart which I dont want, so asked this to get the answer.

The above code will require the WTPart Check out

20-Turquoise
September 8, 2016

chetan deshpandey wrote:

Please let me which API to use to create link between WTPart and EPMDocument without checking out the WTPart..

Thanks in advance

You can use something like the following:

EPMBuildRule buildRule = EPMBuildRule.newEPMBuildRule(epmDoc, wtPart, EPMBuildRule.BUILD_ATTRIBUTES | EPMBuildRule.BUILD_STRUCTURE | EPMBuildRule.CAD_REPRESENTATION);

WTCollection byPassIterationModifierSet = new WTHashSet();

byPassIterationModifierSet.add(buildRule);

byPassIterationModifierSet.add(wtPart);

WorkInProgressServerHelper.putInTxMapForValidateModifiable(byPassIterationModifierSet);//allows modification without checkout

buildRule = (EPMBuildRule)PersistenceHelper.manager.save(buildRule);

See also this post:

Re: Java Code to add Windchill IBA Values to WTPart Object

and this article:

https://support.ptc.com/appserver/cs/view/solution.jsp?n=CS188209

9-Granite
September 9, 2016

Hi Chetan,

When ever we perform some operation, pre-events will be triggers which acts as check before actually performing the actual operation. Similarly, when we perform a save of EPMDescribeLink, the pre-event will check for certain conditions like whether WTPart is a working copy or not.

In order to by-pass these pre-events, use the below code which will perform the actual save operation.

EPMDescribeLink epmLink = EPMDescribeLink.newEPMDescribeLink(part, epmDoc);

Transaction localTransaction = new Transaction();

try{

  localTransaction.start();

  PersistentObjectManager.getPom().insert(epmLink, null, null);

  localTransaction.commit();

}catch(Exception e){

}

Regards

Srikanth