Hi All,
I am trying to create a document using groovy script. Below is the code. when i tried executing the script, it throws constraint violation exception. Could you please suggest me what went wrong ?
Error details:
Failed to save session - javax.jcr.nodetype.ConstraintViolationException: /content/documents/riversource/experience-pages/onecolumn/xpage/xpage[2]: mandatory property {http://www.onehippo.org/jcr/hippostdpubwf/nt/1.0}lastModificationDate does not exist
Groovy Script
package org.hippoecm.frontend.plugins.cms.admin.updater
import org.onehippo.repository.update.BaseNodeUpdateVisitor
import javax.jcr.Node
import javax.jcr.RepositoryException
import javax.jcr.Session
class UpdaterTemplate extends BaseNodeUpdateVisitor {
boolean logSkippedNodePaths() {
return false // don’t log skipped node paths
}
boolean skipCheckoutNodes() {
return false // return true for readonly visitors and/or updates unrelated to versioned content
}
Node firstNode(final Session session) throws RepositoryException {
return null // implement when using custom node selection/navigation
}
Node nextNode() throws RepositoryException {
return null // implement when using custom node selection/navigation
}
boolean doUpdate(Node node) {
log.debug "Updating node ${node.path}"
Node draft = node.addNode("xpage","riversource:SimpleDocument")
if(hasMixin(draft, “hippostd:publishableSummary”)) {
log.debug “hippostd:publishableSummary Already added”
} else {
draft.addMixin(“hippostd:publishableSummary”)
}
if(hasMixin(draft, “hippostd:publishable”)) {
log.debug “hippostd:publishable Already added”
} else {
draft.addMixin(“hippostd:publishable”)
}
if(hasMixin(draft, “hippostd:container”)) {
log.debug “hippostd:container Already added”
} else {
draft.addMixin(“hippostd:container”)
}
if(hasMixin(draft, “hippo:derived”)) {
log.debug “hippo:derived Already added”
} else {
draft.addMixin(“hippo:derived”)
}
if(hasMixin(draft, “hippo:container”)) {
log.debug “hippo:container Already added”
} else {
draft.addMixin(“hippo:container”)
}
if(hasMixin(draft, "hippostdpubwf:audittrace")) {
log.debug "hippostdpubwf:audittrace Already added"
} else {
draft.addMixin("hippostdpubwf:audittrace")
}
if(hasMixin(draft, “hippotranslation:translated”)) {
log.debug “hippotranslation:translated Already added”
} else {
draft.addMixin(“hippotranslation:translated”)
}
if(hasMixin(draft, “mix:referenceable”)) {
log.debug “mix:referenceable Already added”
} else {
draft.addMixin(“mix:referenceable”)
}
if(hasMixin(draft, "hippostdpubwf:document")) {
log.debug "document Already added"
} else {
draft.addMixin("hippostdpubwf:document")
}
if(hasMixin(draft, "hst:xpagemixin")) {
log.debug "hst:xpagemixin Already added"
} else {
draft.addMixin("hst:xpagemixin")
}
if(hasMixin(draft, "hippostd:relaxed")) {
log.debug "hippostd:relaxed Already added"
} else {
draft.addMixin("hippostd:relaxed")
}
if(hasMixin(draft, "hippo:named")) {
log.debug "hippo:named Already added"
} else {
draft.addMixin("hippo:named")
}
draft.setProperty("hippostd:state","draft")
draft.setProperty("hippostd:stateSummary","live")
draft.setProperty("hippostdpubwf:createdBy","admin")
draft.setProperty("hippostdpubwf:creationDate","2021-12-06T06:51:21.626Z")
draft.setProperty("hippostdpubwf:lastModificationDate","2021-12-06T06:51:21.626Z")
draft.setProperty("hippostdpubwf:lastModifiedBy","admin")
draft.setProperty("hippotranslation:locale","en")
draft.setProperty("hippotranslation:id","")
return false
}
boolean undoUpdate(Node node) {
throw new UnsupportedOperationException(‘Updater does not implement undoUpdate method’)
}
boolean hasMixin(Node node, String type) throws RepositoryException {
if (!node.hasProperty("jcr:mixinTypes")) {
return false;
}
NodeTypeManager ntMgr = node.getSession().getWorkspace().getNodeTypeManager();
for (Value value : node.getProperty("jcr:mixinTypes").getValues()) {
NodeType nt = ntMgr.getNodeType(value.getString());
if (nt.isNodeType(type)) {
return true;
}
}
return false;
}
}
Thanks,
Yeshwanth.