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

How to create subtype of WTDocument by API?

SOLVED
Highlighted
Participant

How to create subtype of WTDocument by API?

We can use API to create new WTDocument, but we have a subtype under WTDocument, how can I create a subtype by API? Who could help me? Thanks in advanced.

Tags (1)
1 ACCEPTED SOLUTION

Accepted Solutions

Re: How to create subtype of WTDocument by API?


@WhiteChen wrote:

We can use API to create new WTDocument, but we have a subtype under WTDocument, how can I create a subtype by API? Who could help me? Thanks in advanced.


I know of 2 ways to do this. Method 1 where you find the TypeDefinitionReference and set the doc type and method 2 by using the PersistableAdapter.

 

Method 1:

//find the TypeIdentifier
TypeIdentifier myCustomType = TypeHelper.getTypeIdentifier("WCTYPE|wt.doc.WTDocument|com.mydomain.Document.myCustom");

//cast to WCTypeIdentifier
WCTypeIdentifier myCustomWCType = (WCTypeIdentifier) myCustomType;

//find the TypeDefinitionReference
TypeDefinitionReference myCustomTDR = TypedUtilityServiceHelper.service.getTypeDefinitionReference(myCustomWCType.getTypename());

//create doc
WTDocument doc = WTDocument.newWTDocument();

//set the doc TypeDefinitionReference
doc.setTypeDefinitionReference(myCustomTDR);

 

Method 2:

//Use the PersistableAdapter
PersistableAdapter obj = new PersistableAdapter("com.mydomain.Document.myCustom", locale, new CreateOperationIdentifier());

3 REPLIES 3

Re: How to create subtype of WTDocument by API?


@WhiteChen wrote:

We can use API to create new WTDocument, but we have a subtype under WTDocument, how can I create a subtype by API? Who could help me? Thanks in advanced.


I know of 2 ways to do this. Method 1 where you find the TypeDefinitionReference and set the doc type and method 2 by using the PersistableAdapter.

 

Method 1:

//find the TypeIdentifier
TypeIdentifier myCustomType = TypeHelper.getTypeIdentifier("WCTYPE|wt.doc.WTDocument|com.mydomain.Document.myCustom");

//cast to WCTypeIdentifier
WCTypeIdentifier myCustomWCType = (WCTypeIdentifier) myCustomType;

//find the TypeDefinitionReference
TypeDefinitionReference myCustomTDR = TypedUtilityServiceHelper.service.getTypeDefinitionReference(myCustomWCType.getTypename());

//create doc
WTDocument doc = WTDocument.newWTDocument();

//set the doc TypeDefinitionReference
doc.setTypeDefinitionReference(myCustomTDR);

 

Method 2:

//Use the PersistableAdapter
PersistableAdapter obj = new PersistableAdapter("com.mydomain.Document.myCustom", locale, new CreateOperationIdentifier());

Re: How to create subtype of WTDocument by API?

Hi Randy,

Appreciate your answer, your code is worked for me. One more question, how can I fill up the attributes when the document is created? The cutomized attributes as picture show.

Thanks.

Re: How to create subtype of WTDocument by API?


@WhiteChen wrote:

Hi Randy,

Appreciate your answer, your code is worked for me. One more question, how can I fill up the attributes when the document is created?


Check out this PTC article and keep in mind that LWCNormalizedObject has been replaced with PersistableAdapter

https://www.ptc.com/en/support/article?n=CS135663