How java code to create WTDocument from template in Project Content
It posible to create WTDocument from Template from same Project?
It posible to create WTDocument from Template from same Project?
Create Java Class ext.tpolis.WTDocumentHelper.java
package ext.tpolis;
import java.util.ArrayList;
import wt.content.ContentHelper;
import wt.content.ContentHolder;
import wt.doc.WTDocument;
import wt.enterprise.TemplatesUtility;
import wt.fc.PersistenceHelper;
import wt.fc.ReferenceFactory;
import wt.folder.FolderHelper;
import wt.folder.FolderingInfo;
import wt.inf.container.WTContainer;
import wt.inf.container.WTContainerRef;
import wt.util.WTException;
import wt.vc.VersionControlHelper;
/**
* @author Ostapenko Vitaliy
* @version 1.0
*/
public class WTDocumentHelper {
/*
* getDocumentTemplate
* Return Template WTDocument of WTContainerRef
*/
public static WTDocument getDocumentTemplate(String paramDocTemplateName, WTContainerRef paramDocTemplateContainerRef){
WTDocument docTemplate = null;
ReferenceFactory refFact = new wt.fc.ReferenceFactory();
try {
ArrayList asd = wt.doc.WTDocumentHelper.service.getTemplates(paramDocTemplateContainerRef);
for(int i = 0; i < asd.size(); i++){
String[] tpl = (String[]) asd.get(i);
if (tpl[1].equals(paramDocTemplateName)){
docTemplate = (WTDocument) refFact.getReference(tpl[4]).getObject();
break;
}
}
//Get latest revision of template
docTemplate=(WTDocument) VersionControlHelper.service.getLatestIteration(docTemplate, true);
if (docTemplate==null)
throw new WTException("Not found WTDocument Template :" + paramDocTemplateName);
} catch (WTException e) {
e.printStackTrace();
}
return docTemplate;
}
/*
* createDocumentFromTemplate
* Return WTDocument create from Template
*/
public static WTDocument createDocumentFromTemplate(String paramDocName,String paramDocTemplateName, WTContainer paramDocContainer) throws WTException {
WTDocument doc = null;
WTContainerRef contRef = WTContainerRef.newWTContainerRef(paramDocContainer);
try {
WTDocument docTemplate = getDocumentTemplate(paramDocTemplateName,contRef);
doc = WTDocument.newWTDocument();
doc.setName(paramDocName);
doc.setTypeDefinitionReference(docTemplate.getTypeDefinitionReference());
doc.setContainerReference(contRef);
doc.setDomainRef(paramDocContainer.getDefaultDomainReference());
doc.setFormat(docTemplate.getFormat());
PersistenceHelper.manager.save(doc);
//Copy primary content file from Template
ContentHelper.service.copyContent((ContentHolder) docTemplate, (ContentHolder) doc);
//Rename primary content file
doc = (WTDocument)TemplatesUtility.setFilename((WTDocument)doc);
} catch (Exception e) {
e.printStackTrace();
}
return doc;
}
}
Compile Class.
Put WTDocumentHelper.class in to %WT_HOME%\codebase\ext\tpolis
In Template Workflow create Expression and add java code:
wt.doc.WTDocument document = (wt.doc.WTDocument)primaryBusinessObject;
wt.inf.container.WTContainer container = document.getContainer();
// Set Doc Name
String paramDocName = "TestDoc";
// Set Doc Template Name that is locate in Project
String paramDocTemplateName = "Test Template";
wt.doc.WTDocument docFromTemplate = null;
try{
docFromTemplate= ext.tpolis.WTDocumentHelper.createDocumentFromTemplate(paramDocName, paramDocTemplateName, container);
}catch (Exception e) {
e.printStackTrace();
}
Then in Project run Route Document after finish WfProcess in folder /Default of Project was created TestDoc from Document Template.
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.