cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Want the oppurtunity to discuss enhancements to PTC products? Join a working group! X

Translate the entire conversation x

How can we get the enditem of wtpart subtype?

CH_10078393
6-Contributor

How can we get the enditem of wtpart subtype?

How can we get the enditem of wtpart subtype?

 

 

 

5 REPLIES 5
HelesicPetr
22-Sapphire II
(To:CH_10078393)

Hi @CH_10078393 

What do you need?

 

Search for specific subtype and all enditems in that subtype? 

 

if yes, then this code will search for the subtype and enditem 

 

final IdentifierFactory IDENTIFIER_FACTORY = (IdentifierFactory) DefaultServiceProvider.getService(IdentifierFactory.class, "logical");
try
{
	TypeIdentifier tid = (TypeIdentifier) IDENTIFIER_FACTORY.get("com.aveng.SubType"); // Example: subtype=com.ptc.ElectricalPart
	SearchCondition sc = TypedUtilityServiceHelper.service.getSearchCondition(tid, true);
	QuerySpec queryspec = new QuerySpec();
	int idWTPartObject = queryspec.appendClassList(WTPart.class, true);
	// definice typu v sc (andCondition zamenena za sc)
	queryspec.appendWhere(sc, new int[]{idWTPartObject, idWTPartObject});
	queryspec.appendAnd();
	queryspec.appendWhere(new SearchCondition(WTPart.class, WTPart.END_ITEM, SearchCondition.IS_TRUE), new int[]{idWTPartObject});
	queryspec.appendOrderBy(new OrderBy(new ClassAttribute(WTPart.class, WTPart.NUMBER), false), new int[]{0});

	QueryResult resultDocument = PersistenceHelper.manager.find((StatementSpec) queryspec);

	while (resultDocument.hasMoreElements())
	{

		Object obj[] = (Object[]) resultDocument.nextElement();
		if (obj[0] instanceof WTPart)
		{
			WTPart wtp = (WTPart) obj[0];
			System.out.printf("endItem: %s", wtp.getNumber());
		}
	}
} catch (WTException e)
{
	e.printStackTrace();
}

 

PetrH

Hi PetrH, 

-> We have PartA , PartB and PartC as sube types of wt part.

-> I want check whether PartC is a enditem or not ?.

 

 

How can I do this ?.

 

Thanks, 

Chandra

 

HelesicPetr
22-Sapphire II
(To:CH_10078393)

Hi @CH_10078393 

If you have the WTPart object then use simple method on that WTPart

WTPart wtp = (WTPart) primaryBussinessObject;
boolean endItem = wtp.isEndItem();

 

Or use the previous example to search a specific WTPart number .

You just need to add additional condition with a NUMBER.

If the queryresult contains any results, it means that the wtpart number is enditem...

 

PetrH

Hi PetrH, 

Still doesn't works, 

How Can I get the subtype of WTPart ?

 

 

Thanks, 

Chandra

 

To clarify, you are not asking how to figure out if something is an end item. You are trying to determine if its the type you are looking for.

String type = TypedUtilityServiceHelper.service.getExternalTypeIdentifier(part);

I've used this line above which should show you the soft-type of the part. You can then compare to the logical name part "PartC" matches.

Announcements
Top Tags