public IDfSessionManager getMrcsSystemUserSessionFromObjectId(Map parameters, String objectid) throws Exception { /*-CONFIG-*/ String m = "getMrcsSystemUserSessionFromFirstAttachment - "; /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "getting docbase from parameters", null, null); String docbase = ((String[]) parameters.get("docbase_name"))[0]; /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "getting user session", null, null); IDfSessionManager usersessionmgr = getUserSession(parameters); IDfSession usersession = usersessionmgr.getSession(docbase); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "getting first attachment via user session", null, null); IDfSysObject attachment = (IDfSysObject) usersession.getObject(new DfId(objectid)); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "getting mrcsapp from first attachment", null, null); String mrcsapp = attachment.getString("mrcs_application"); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "mrcsapp: " + mrcsapp, null, null); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "releasing session", null, null); usersessionmgr.release(usersession); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "session released", null, null); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "getting mrcs system session", null, null); IDfSessionManager syssession = getMrcsSystemUserSession(parameters, mrcsapp); return syssession; }
/** * Retrieve all the documents from the virtual folder * * @param session The session used to retrieve the folder documents * @return A list of all documents in the folder * @throws DfException */ public List<IDfDocument> getAllDocuments(IDfSession session) throws DfException { List<IDfDocument> returnVal = new ArrayList<IDfDocument>(); logger.debug("Retrieving all documents from the virtual folder"); for (DocumentumIdentifier ident : this.documents) { returnVal.add((IDfDocument) session.getObjectByQualification(ident.getQualification())); } return returnVal; }
@Override public void execute(final IDfSession session) throws DfException { LOGGER.debug("AddGrouptoACL.execute()"); final IDfACL acl = (IDfACL) session.getObjectByQualification("dm_acl where object_name = 'ajwf_acdc_default_acl'"); acl.grant(GROUP_NAME, 7, null); acl.save(); }
public IDfWorkitem getWorkitem(IDfSessionManager sessionmgr, Map parameters) throws Exception { /*-CONFIG-*/ String m = "getWorkitem - "; /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "get session", null, null); String docbase = ((String[]) parameters.get("docbase_name"))[0]; IDfSession session = sessionmgr.getSession(docbase); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "get workitemid ", null, null); String workitemid = ((String[]) parameters.get("packageId"))[0]; /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "get object from db", null, null); IDfWorkitem wi = (IDfWorkitem) session.getObject(new DfId(workitemid)); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "releasing session", null, null); sessionmgr.release(session); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "session released", null, null); return wi; }
public IDfSysObject getFirstAttachment(IDfSessionManager sessionmgr, Map parameters) throws Exception { /*-CONFIG-*/ String m = "getFirstAttachment - "; /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "get session", null, null); String docbase = ((String[]) parameters.get("docbase_name"))[0]; IDfSession session = sessionmgr.getSession(docbase); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "get workitem interface", null, null); IDfWorkitem wi = getWorkitem(sessionmgr, parameters); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "iterate through packages", null, null); IDfCollection packages = wi.getPackages(""); IDfSysObject pkg = null; if (packages.next()) { /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug( this, m + "check if there are packages in the r_component_id multivalue attr", null, null); if (packages.getValueCount("r_component_id") > 0) { /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "getting the first component id", null, null); IDfId id = packages.getRepeatingId("r_component_id", 0); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "retrieving component " + id, null, null); pkg = (IDfSysObject) session.getObject(id); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "component: " + pkg, null, null); } } packages.close(); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "releasing session", null, null); sessionmgr.release(session); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "session released", null, null); return pkg; }
public void setAttachmentsContentTypeForElf( IDfSession idfSession, String[] attachmentIds, String strArticleFolderPath, String strStageName) throws DfException, XPathExpressionException, ParserConfigurationException, SAXException, IOException { DfLogger.debug( this, utilObj.getSpaces() + "setAttachmentsContentType :::: Length of Attachments : " + attachmentIds.length, null, null); String strDeliveryFolderName = ""; String strStageFolderName = ""; if (IConstants.ATTR_STAGE_NAME_200.equalsIgnoreCase(strStageName)) { strDeliveryFolderName = IConstants.PATH_AMPP_COPY_EDITING; // IConstants.PATH_AMPP_DELIVERY_FOLDER; strStageFolderName = IConstants.FOLDER_NAME_STAGE_200; } else { strDeliveryFolderName = IConstants.PATH_AMPP_COPY_EDITING; // IConstants.PATH_AMPP_DELIVERY_FOLDER; strStageFolderName = IConstants.FOLDER_NAME_STAGE_300; } for (int i = 0; i < attachmentIds.length; i++) { if (DfId.isObjectId(attachmentIds[i])) { DfLogger.debug( this, utilObj.getSpaces() + "Attachment ID : " + attachmentIds[i], null, null); IDfDocument idfDocument = (IDfDocument) idfSession.getObject(new DfId(attachmentIds[i])); if (idfDocument != null) { setContentTypeFromName(idfSession, idfDocument); idfDocument.fetch(null); setAttachmentToArticleForElf( idfSession, idfDocument, strArticleFolderPath, strStageFolderName, strDeliveryFolderName); } } } }
public void convert() throws Exception { // EFS: // r_current_state: 2 == In-Approval, so 3 == Approved, 4 == ?Effective? // a_content_type = 'pdf' IDfSession session = null; IDfSessionManager sMgr = null; try { IDfClientX clientx = new DfClientX(); IDfClient client = clientx.getLocalClient(); sMgr = client.newSessionManager(); IDfLoginInfo loginInfoObj = clientx.getLoginInfo(); loginInfoObj.setUser("mradmin"); loginInfoObj.setPassword("mr2006"); loginInfoObj.setDomain(null); sMgr.setIdentity("MRCS_Dev", loginInfoObj); } catch (DfException dfe) { dfe.printStackTrace(); } // don't want to convert approved/effective copies...crap... // - must not be in an "Approved" or "Effective" folder? // SELECT count(*) FROM m_mrcs_central_document WHERE a_content_type = 'pdf' AND any i_folder_id // NOT IN (SELECT r_object_id FROM dm_folder WHERE object_name = 'Effective'); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, " ", null, null); session = sMgr.getSession("MRCS_Dev"); // get list of objects that are pdfs... // - should try folder clauses too... // - previous versions???? String pdfdocs = "SELECT r_object_id FROM m_mrcs_central_document WHERE a_content_type = 'pdf' and object_name like '--test--%'"; IDfQuery qry = new DfQuery(); qry.setDQL(pdfdocs); IDfCollection myObj1 = (IDfCollection) qry.execute(session, IDfQuery.DF_READ_QUERY); while (myObj1.next()) { sMgr.beginTransaction(); try { String curid = myObj1.getString("r_object_id"); // look up object IDfDocument doc = (IDfDocument) session.getObject(new DfId(curid)); String objname = doc.getObjectName(); String fullpath = doc.getPath(0); String format = doc.getFormat().getName(); String doctype = doc.getTypeName(); // check that it's not a popped off copy (i_folder_id[0] != 'Approved') seems to be the only // indicator of this... IDfFolder folder = (IDfFolder) session.getObject(doc.getFolderId(0)); String foldername = folder.getObjectName(); if (!"Approved".equals(foldername)) { // check it's state String statename = doc .getCurrentStateName(); // Approved or Effective are only active docs with // renditions String filename = doc.getFile(null); // if In-Progress: simply switch the content type if ("In-Progress".equals(statename) || "Approved".equals(statename) || "Effective".equals(statename)) { // change format - make sure this doesn't "zero out" the content or something else // weird. doc.setContentType("acro"); doc.setFile(filename); } // clone content as rendition for approved and effective if ("Approved".equals(statename) || "Effective".equals(statename)) // In-Approval too? { doc.addRendition(filename, "pdf"); } doc.save(); } } catch (Exception e) { sMgr.abortTransaction(); throw e; } sMgr.commitTransaction(); } myObj1.close(); sMgr.release(session); }
/** * This is the main method which processes AMPP received documents. * * @param idfSession * @param attachmentIds * @param strArticleFolderPath * @throws DfException */ public void setAttachmentsContentTypeForAMPP( IDfSession idfSession, String[] attachmentIds, String strArticleFolderPath, String strStageName) throws DfException { DfLogger.debug(this, utilObj.getSpaces() + "setAttachmentsContentType ::::", null, null); String strDeliveryFolderName = ""; String strStageFolderName = ""; if (IConstants.ATTR_STAGE_NAME_200.equalsIgnoreCase(strStageName)) { strDeliveryFolderName = IConstants.PATH_AMPP_COPY_EDITING; // IConstants.PATH_AMPP_DELIVERY_FOLDER; strStageFolderName = IConstants.FOLDER_NAME_STAGE_200; } else { // Pramod | 30 Oct 2014 | All files will be stored under // Stage/Delivery Folder // strDeliveryFolderName = IConstants.PATH_AMPP_300_DELIVERY_FOLDER; strDeliveryFolderName = IConstants.PATH_AMPP_COPY_EDITING; // IConstants.PATH_AMPP_DELIVERY_FOLDER; strStageFolderName = IConstants.FOLDER_NAME_STAGE_300; } for (int i = 0; i < attachmentIds.length; i++) { if (DfId.isObjectId(attachmentIds[i])) { DfLogger.debug( this, utilObj.getSpaces() + "Attachment ID : " + attachmentIds[i], null, null); IDfDocument idfDocument = (IDfDocument) idfSession.getObject(new DfId(attachmentIds[i])); if (idfDocument != null) { DfLogger.debug( this, "File Path before setting content type : " + idfDocument.getFile(null), null, null); setContentTypeFromName(idfSession, idfDocument); idfDocument.save(); idfDocument.fetch(null); setAttachmentToArticleForAMPP( idfSession, idfDocument, strArticleFolderPath, strStageFolderName, strDeliveryFolderName); if (idfDocument.isDeleted() != true) { idfDocument.save(); DfLogger.debug( this, utilObj.getSpaces() + "Attachment " + idfDocument.getObjectName() + " Processed and Saved successfully ", null, null); } } } } }
private void setAttachmentToArticleForElf( IDfSession idfSession, IDfDocument idfAttachmentDocObj, String strArticleFolderPath, String strStageFolderName, String strDeliveryFolderName) { DfLogger.debug( this, utilObj.getSpaces() + "Inside method setAttachmentToArticleForElf.", null, null); Boolean isCheckedOut = false; IDfDocument docObj = null; String strObjectName = ""; boolean isLogObject = false; boolean isImageObject = false; String strObjectType = ""; String strItemType = ""; String strLogCategory = ""; String strLogType = ""; StringBuilder strFolderPah = new StringBuilder(strArticleFolderPath + "/" + strStageFolderName); try { strObjectName = idfAttachmentDocObj.getObjectName(); DfLogger.debug(null, "strObjectName-->" + strObjectName, null, null); if (strObjectName.toLowerCase().contains(IConstants.STR_CHECK_PDF_ONLINE) && strObjectName.toLowerCase().endsWith(".pdf")) { strItemType = IConstants.ITEM_TYPE_CHECK_PDF_ONLINE; strObjectType = IConstants.TYPE_WORKITEM_OBJECT; strFolderPah.append(IConstants.PATH_GRAPHICS_FOLDER); } else if (strObjectName.toLowerCase().contains(IConstants.STR_CHECK_PDF_PRINT) && strObjectName.toLowerCase().endsWith(".pdf")) { strItemType = IConstants.ITEM_TYPE_CHECK_PDF_PRINT; strObjectType = IConstants.TYPE_WORKITEM_OBJECT; strFolderPah.append(IConstants.PATH_GRAPHICS_FOLDER); } else if (strObjectName.toLowerCase().contains(IConstants.STR_COLOR_ON_PAGE_PRINT) && strObjectName.toLowerCase().endsWith(".pdf")) { strItemType = IConstants.ITEM_TYPE_COLOR_ON_PAGE_PRINT; strObjectType = IConstants.TYPE_WORKITEM_OBJECT; strFolderPah.append(IConstants.PATH_GRAPHICS_FOLDER); } else if (strObjectName.toLowerCase().contains(IConstants.ELF_FILE_PREFIX_METADATA_XML) && strObjectName.endsWith(".xml")) { strObjectType = IConstants.TYPE_LOG_OBJECT; strLogCategory = IConstants.ATTR_LOG_CATEGORY_ELF_METADATA; isLogObject = true; strFolderPah.append(IConstants.PATH_GRAPHICS_FOLDER + "/" + IConstants.FOLDER_NAME_LOGS); } else if (strObjectName.toLowerCase().contains(IConstants.IMAGE_RENDITION_HTML) && (strObjectName.toLowerCase().endsWith(".jpg") || strObjectName.toLowerCase().endsWith(".gif"))) { strItemType = IConstants.ITEM_TYPE_ONLINE_IMAGE; strObjectType = IConstants.TYPE_WORKITEM_OBJECT; strFolderPah.append(IConstants.PATH_GRAPHICS_FOLDER + "/" + IConstants.ONLINE_FOLDER); isImageObject = true; DfLogger.debug(this, "isImageObject : " + isImageObject, null, null); } else if (strObjectName.toLowerCase().contains(IConstants.ELF_FILE_PREFIX_ERROR_XML) && strObjectName.endsWith(".xml")) { strObjectType = IConstants.TYPE_LOG_OBJECT; strLogCategory = IConstants.ATTR_LOG_CATEGORY_ELF_MESSAGES; isLogObject = true; strFolderPah.append(IConstants.PATH_GRAPHICS_FOLDER + "/" + IConstants.FOLDER_NAME_LOGS); } else { // idfAttachmentDocObj.destroy(); idfAttachmentDocObj.mark("DELETE"); idfAttachmentDocObj.save(); DfLogger.warn( this, "Unexpected file received : " + strObjectName + " | no operations required on Object.. ", null, null); return; } DfLogger.debug(this, "setAttachmentToArticle folder path : " + strFolderPah, null, null); if (!isLogObject) { docObj = (IDfDocument) idfSession.getObjectByQualification( strObjectType + " where Folder('" + strFolderPah + "') " + " and object_name = '" + idfAttachmentDocObj.getObjectName() + "' and item_type='" + strItemType + "'"); DfLogger.debug( this, strObjectType + " where Folder('" + strFolderPah + "') " + " and object_name = '" + idfAttachmentDocObj.getObjectName() + "' and item_type='" + strItemType + "'", null, null); } else { docObj = (IDfDocument) idfSession.getObjectByQualification( strObjectType + " where Folder('" + strFolderPah + "') " + " and " + IConstants.ATTR_LOG_CATEGORY + " = '" + strLogCategory + "'"); DfLogger.debug( this, strObjectType + " where Folder('" + strFolderPah + "') " + " and " + IConstants.ATTR_LOG_CATEGORY + " = '" + strLogCategory + "'", null, null); } if (docObj != null) { DfLogger.debug( this, utilObj.getSpaces() + "Existing version found.Creating new version inside Article Folder", null, null); // [TODO] see if checking of "if checked out" can be added in // executeCheckoutOperation if (docObj.isCheckedOut()) { docObj.cancelCheckout(); } isCheckedOut = utilObj.executeCheckoutOperation(docObj); if (isCheckedOut) { IDfDocument idfNewVersion = utilObj.executeCheckinOperation(idfSession, docObj, idfAttachmentDocObj); if (idfNewVersion != null) { idfNewVersion.save(); // idfAttachmentDocObj.destroy(); // Pramod | Attachment object is no longer required on // creation of new version so it will be marked as // DELETE and will be deleted at the end of the // processing idfAttachmentDocObj.mark("DELETE"); idfAttachmentDocObj.save(); DfLogger.info( this, " ---------------------- " + idfAttachmentDocObj.getObjectName() + " Marked as to be deleted ", null, null); } } } else { DfLogger.debug( this, utilObj.getSpaces() + "New document processing. Linking to article folder", null, null); if (isLogObject == true) { DfLogger.debug(this, "Object Name of log file : " + strObjectName, null, null); IDfQuery qry = new DfQuery(); String strObjId = idfAttachmentDocObj.getObjectId().getId(); qry.setDQL( "change " + IConstants.TYPE_WORKITEM_OBJECT + " objects to dm_document where r_object_id='" + strObjId + "'"); IDfCollection idfColl1 = qry.execute(idfSession, IDfQuery.DF_EXEC_QUERY); if (null != idfColl1 && IDfCollection.DF_CLOSED_STATE != idfColl1.getState()) { idfColl1.close(); } qry.setDQL( "change dm_document objects to " + IConstants.TYPE_LOG_OBJECT + " where r_object_id='" + strObjId + "'"); IDfCollection idfColl2 = qry.execute(idfSession, IDfQuery.DF_EXEC_QUERY); if (null != idfColl2 && IDfCollection.DF_CLOSED_STATE != idfColl2.getState()) { idfColl2.close(); } idfAttachmentDocObj.fetch(null); idfAttachmentDocObj.setString(IConstants.ATTR_LOG_TYPE, strLogType); idfAttachmentDocObj.setString(IConstants.ATTR_LOG_CATEGORY, strLogCategory); idfAttachmentDocObj.setObjectName(strObjectName); idfAttachmentDocObj.save(); } IDfACL folderAcl = idfSession.getFolderByPath(strFolderPah.toString()).getACL(); if (isImageObject && strObjectName.split("_").length == 5) { idfAttachmentDocObj.setTitle(strObjectName.split("_")[3]); } idfAttachmentDocObj.setACL(folderAcl); idfAttachmentDocObj.unlink(idfAttachmentDocObj.getFolderId(0).toString()); idfAttachmentDocObj.link(strFolderPah.toString()); setWorkitemMetadata(idfAttachmentDocObj); idfAttachmentDocObj.save(); } DfLogger.debug( this, utilObj.getSpaces() + "Method processAttachments completed successfully.", null, null); } catch (RuntimeException ex) { DfLogger.error(this, ex.getMessage(), null, null); throw ex; } catch (DfException e) { DfLogger.error(this, "Error occured in processing attachment: " + e.getMessage(), null, e); } }
/** * Handles versioning for AMPP documents. Major version will be created if document of particular * type already exists in Article Delivery Folder. * * @param idfSession * @param idfAttachmentDocObj * @param strArticleFolderPath */ private void setAttachmentToArticleForAMPP( IDfSession idfSession, IDfDocument idfAttachmentDocObj, String strArticleFolderPath, String strStageFolderName, String strDeliveryFolderName) { DfLogger.debug(this, utilObj.getSpaces() + "Inside method processAttachments.", null, null); Boolean isCheckedOut = false; IDfDocument docObj = null; String strObjectName = ""; boolean isLogObject = false; String strObjectType = ""; String strItemType = ""; String strLogCategory = ""; String strLogType = ""; StringBuilder strFolderPah = new StringBuilder(strArticleFolderPath + "/" + strStageFolderName); try { strObjectName = idfAttachmentDocObj.getObjectName(); if (strObjectName.toLowerCase().contains(IConstants.AMPP_FILE_SUFFIX_ARTICLE_XML)) { strItemType = IConstants.AMPP_WORKITEM_VALUE_XML; strObjectType = IConstants.TYPE_WORKITEM_OBJECT; strFolderPah.append(IConstants.PATH_AMPP_COPY_EDITING); } else if (strObjectName.toLowerCase().contains(IConstants.FILE_SUFFIX_ARTICLE_PDF)) { strItemType = IConstants.AMPP_WORKITEM_VALUE_ONLINE_PDF; strObjectType = IConstants.TYPE_WORKITEM_OBJECT; strFolderPah.append(IConstants.PATH_AMPP_COPY_EDITING); } else if (strObjectName .toLowerCase() .contains(IConstants.AMPP_FILE_SUFFIX_VALIDATION_LOGL)) { strObjectType = IConstants.TYPE_LOG_OBJECT; strLogCategory = IConstants.ATTR_LOG_CATEGORY_AMPP_CC; isLogObject = true; strFolderPah.append(IConstants.PATH_COPY_EDITING_LOG_FOLDER); } else if (strObjectName.toLowerCase().contains(IConstants.AMPP_FILE_PREFX_ERROR_LOG) && strObjectName.endsWith(".xml")) { strObjectType = IConstants.TYPE_LOG_OBJECT; strLogCategory = IConstants.ATTR_LOG_CATEGORY_AMPP_MESSAGES; strLogType = IConstants.LOG_TYPE_FAILURE; isLogObject = true; strFolderPah.append( IConstants.PATH_COPY_EDITING_FOLDER + "/" + IConstants.FOLDER_NAME_LOGS); } else if (strObjectName.toLowerCase().contains(IConstants.BREEZE_FILE_SUFFIX_ERROR_LOG) && strObjectName.endsWith(".txt")) { strObjectType = IConstants.TYPE_LOG_OBJECT; strLogCategory = IConstants.ATTR_LOG_CATEGORY_BREEZE; isLogObject = true; strFolderPah.append( IConstants.PATH_COPY_EDITING_FOLDER + "/" + IConstants.FOLDER_NAME_LOGS); } else if (strObjectName.toLowerCase().contains(IConstants.BREEZE_FILE_SUFFIX_SUCCESS_LOG) && strObjectName.endsWith(".txt")) { strObjectType = IConstants.TYPE_LOG_OBJECT; strLogCategory = IConstants.ATTR_LOG_CATEGORY_BREEZE; isLogObject = true; strFolderPah.append( IConstants.PATH_COPY_EDITING_FOLDER + "/" + IConstants.FOLDER_NAME_LOGS); } else if (strObjectName.toLowerCase().contains(IConstants.AMPP_FILE_SUFFIX_STYLED_DOC)) { for (String strExtensions : IConstants.AMPP_FILE_EXT_STYLED_DOC) { if (strObjectName.contains("." + strExtensions)) { strItemType = IConstants.AMPP_WORKITEM_VALUE_DOC; strObjectType = IConstants.TYPE_WORKITEM_OBJECT; strFolderPah.append(IConstants.PATH_COPY_EDITING_FOLDER); break; } } } else { idfAttachmentDocObj.destroy(); throw new RuntimeException( "Unexpected file received : " + strObjectName + " | Destroyed Object.. "); } DfLogger.debug(this, "setAttachmentToArticle folder path : " + strFolderPah, null, null); if (!isLogObject) { docObj = (IDfDocument) idfSession.getObjectByQualification( strObjectType + " where Folder('" + strFolderPah + "') " + " and item_type='" + strItemType + "'"); } else { docObj = (IDfDocument) idfSession.getObjectByQualification( strObjectType + " where Folder('" + strFolderPah + "') " + " and " + IConstants.ATTR_LOG_CATEGORY + " = '" + strLogCategory + "'"); } idfAttachmentDocObj.getFile(null); if (docObj != null) { DfLogger.debug( this, utilObj.getSpaces() + "Existing version found.Creating new version inside Delivery Folder", null, null); // [TODO] see if checking of "if checked out" can be added in // executeCheckoutOperation if (docObj.isCheckedOut()) { docObj.cancelCheckout(); } isCheckedOut = utilObj.executeCheckoutOperation(docObj); if (isCheckedOut) { utilObj.executeCheckinOperation(idfSession, docObj, idfAttachmentDocObj); } } else { DfLogger.debug( this, utilObj.getSpaces() + "New document processing. Linking to article folder", null, null); if (isLogObject == true) { DfLogger.debug(this, "Object Name of log file : " + strObjectName, null, null); IDfQuery qry = new DfQuery(); String strObjId = idfAttachmentDocObj.getObjectId().getId(); qry.setDQL( "change " + IConstants.TYPE_WORKITEM_OBJECT + " objects to dm_document where r_object_id='" + strObjId + "'"); DfLogger.debug(this, qry.getDQL(), null, null); IDfCollection idfColl1 = qry.execute(idfSession, IDfQuery.DF_EXEC_QUERY); if (null != idfColl1 && IDfCollection.DF_CLOSED_STATE != idfColl1.getState()) { idfColl1.close(); } qry.setDQL( "change dm_document objects to " + IConstants.TYPE_LOG_OBJECT + " where r_object_id='" + strObjId + "'"); DfLogger.debug(this, qry.getDQL(), null, null); IDfCollection idfColl2 = qry.execute(idfSession, IDfQuery.DF_EXEC_QUERY); if (null != idfColl2 && IDfCollection.DF_CLOSED_STATE != idfColl2.getState()) { idfColl2.close(); } idfAttachmentDocObj.fetch(null); idfAttachmentDocObj.setString(IConstants.ATTR_LOG_TYPE, strLogType); idfAttachmentDocObj.setString(IConstants.ATTR_LOG_CATEGORY, strLogCategory); idfAttachmentDocObj.setObjectName(strObjectName); idfAttachmentDocObj.save(); } IDfACL folderAcl = idfSession.getFolderByPath(strFolderPah.toString()).getACL(); DfLogger.debug(this, folderAcl.getObjectName(), null, null); idfAttachmentDocObj.setACL(folderAcl); idfAttachmentDocObj.unlink(idfAttachmentDocObj.getFolderId(0).toString()); idfAttachmentDocObj.link(strFolderPah.toString()); setWorkitemMetadata(idfAttachmentDocObj); } DfLogger.debug( this, utilObj.getSpaces() + "Method processAttachments completed successfully.", null, null); } catch (DfException e) { DfLogger.error(this, "Error occured in processing attachment: " + e.getMessage(), null, e); } }
public void convert() throws Exception { // select all documents and look for retired and obsolete versions // eff = 3 obs = 4 ret = 6 for NPP // app = 2 for efs? String query = "SELECT r_object_id FROM m_mrcs_efs_central_document WHERE r_current_state = 4 OR r_current_state = 6"; IDfSession session = null; IDfSessionManager sMgr = null; try { IDfClientX clientx = new DfClientX(); IDfClient client = clientx.getLocalClient(); sMgr = client.newSessionManager(); IDfLoginInfo loginInfoObj = clientx.getLoginInfo(); loginInfoObj.setUser("mradmin"); loginInfoObj.setPassword("mr2006"); loginInfoObj.setDomain(null); sMgr.setIdentity("MRCS_Dev", loginInfoObj); } catch (DfException dfe) { dfe.printStackTrace(); } /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, " ", null, null); // get list of objects that are pdfs... IDfQuery qry = new DfQuery(); qry.setDQL(query); IDfCollection myObj1 = (IDfCollection) qry.execute(session, IDfQuery.DF_READ_QUERY); IDfTypedObject serverConfig = session.getServerConfig(); String aclDomain = serverConfig.getString("operator_name"); IDfACL obsoleteacl = session.getACL(aclDomain, "mrcs_central_archived"); IDfACL retiredacl = session.getACL(aclDomain, "mrcs_central_retired_doc"); while (myObj1.next()) { String curid = myObj1.getString("r_object_id"); // look up object IDfDocument doc = (IDfDocument) session.getObject(new DfId(curid)); // check that it's not a popped off copy (i_folder_id[0] != 'Approved') seems to be the only // indicator of this... IDfFolder folder = (IDfFolder) session.getObject(doc.getFolderId(0)); String foldername = folder.getObjectName(); // don't do this for approved copies... if (!"Approved".equals(foldername)) { // check it's state String statename = doc.getCurrentStateName(); String chronicleid = doc.getChronicleId().getId(); // if In-Progress: simply switch the content type if ("Obsolete".equals(statename)) { String previousquery = "SELECT r_object_id FROM dm_document(all) where i_chronicle_id = '" + chronicleid + "'"; IDfQuery prevqry = new DfQuery(); prevqry.setDQL(previousquery); IDfCollection previousversions = (IDfCollection) prevqry.execute(session, IDfQuery.DF_READ_QUERY); while (previousversions.next()) { String previd = previousversions.getString("r_object_id"); // look up object IDfDocument prevdoc = (IDfDocument) session.getObject(new DfId(previd)); // unlock sMgr.beginTransaction(); try { prevdoc.setString("r_immutable_flag", "FALSE"); prevdoc.save(); prevdoc.fetch(prevdoc.getTypeName()); // necessary? // set flags obsolete = true,retired = false prevdoc.setBoolean("retired", false); prevdoc.setBoolean("obsolete", true); // set acl prevdoc.setACL(obsoleteacl); prevdoc.setString("r_immutable_flag", "TRUE"); prevdoc.save(); } catch (Exception e) { sMgr.abortTransaction(); throw e; } sMgr.commitTransaction(); } previousversions.close(); } if ("Effective".equals(statename)) { String previousquery = "SELECT r_object_id FROM dm_document(all) where i_chronicle_id = '" + chronicleid + "'"; IDfQuery prevqry = new DfQuery(); prevqry.setDQL(query); IDfCollection previousversions = (IDfCollection) qry.execute(session, IDfQuery.DF_READ_QUERY); while (previousversions.next()) { String previd = previousversions.getString("r_object_id"); // look up object IDfDocument prevdoc = (IDfDocument) session.getObject(new DfId(previd)); // unlock String currentstate = prevdoc.getCurrentStateName(); if ("Retired".equals(currentstate)) { sMgr.beginTransaction(); try { prevdoc.setString("r_immutable_flag", "FALSE"); prevdoc.save(); prevdoc.fetch(prevdoc.getTypeName()); // necessary? // set flags obsolete = true,retired = false prevdoc.setBoolean("retired", true); prevdoc.setBoolean("obsolete", false); // set acl prevdoc.setACL(retiredacl); prevdoc.setString("r_immutable_flag", "TRUE"); prevdoc.save(); } catch (Exception e) { sMgr.abortTransaction(); throw e; } sMgr.commitTransaction(); } } previousversions.close(); } } } myObj1.close(); sMgr.release(session); }
// implement the default configurable method - execute listed actions in workflow task public void execute(Map parameters, OutputStream outputstream) throws Exception { /*-CONFIG-*/ String m = "MrcsConfigurableMethod.execute - "; /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "getting docbase from JSM parameters", null, null); String[] paramvals = (String[]) parameters.get("docbase_name"); String docbase = paramvals[0]; /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + " ~~docbase: " + docbase, null, null); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "getting packageId from JSM parameters", null, null); paramvals = (String[]) parameters.get( "packageId"); // OOTB docbasic promote method thinks this is workitemid... String packageid = paramvals[0]; /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + " ~~packageId: " + packageid, null, null); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "getting 'mode' from JSM parameters", null, null); paramvals = (String[]) parameters.get("mode"); String mode = paramvals[0]; /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + " ~~MODE: " + mode, null, null); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "getting mrcs system session", null, null); IDfSessionManager sessionmgr = getMrcsSystemUserSessionFromFirstAttachment(parameters); IDfSession session = sessionmgr.getSession(docbase); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "session DMCL id: " + session.getDMCLSessionId(), null, null); // get workitem /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "retreive workitem (the 'packageid')", null, null); IDfWorkitem workitem = (IDfWorkitem) session.getObject(new DfId(packageid)); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug( this, m + "...retrieved workitem " + packageid + "? " + (workitem != null), null, null); // acquire if not mode 0. ?what? - it's what the docbasic thingy does if ("0".equals(mode)) { /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "mode is 0, acquiring workitem...", null, null); workitem.acquire(); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "...acquired", null, null); } try { /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "get attachment", null, null); IDfSysObject attachment = getFirstAttachment(sessionmgr, parameters); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "mrcsapplication of attachment", null, null); String mrcsapp = attachment.getString("mrcs_application"); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + " -- is: " + mrcsapp, null, null); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "get workflow object " + workitem.getWorkflowId(), null, null); IDfWorkflow workflow = (IDfWorkflow) session.getObject(workitem.getWorkflowId()); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "get process object " + workflow.getProcessId(), null, null); IDfProcess process = (IDfProcess) session.getObject(workflow.getProcessId()); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "workflow process name and task name", null, null); String workflowname = process.getObjectName(); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "-- workflow process name: " + workflowname, null, null); String taskname = workitem.getActivity().getObjectName(); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "-- workitem activity name: " + taskname, null, null); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "locate configuration of task in mrcs config", null, null); StateTransitionConfigFactory stconfig = StateTransitionConfigFactory.getSTConfig(); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "look up MRCS task definition", null, null); MrcsWorkflowTask mrcstask = stconfig.getMrcsWorkflowTask(mrcsapp, workflowname, taskname); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug( this, m + "getting server plugins list (ServerPlugins key in the MethodConfiguration)", null, null); List actionlist = (List) mrcstask.MethodConfiguration.get("ServerPlugins"); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "EXEC plugins", null, null); if (actionlist != null) { Map context = new HashMap(); for (int i = 0; i < actionlist.size(); i++) { /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "running plugin #" + i, null, null); MrcsPlugin plugin = (MrcsPlugin) actionlist.get(i); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "-- instantiating - " + plugin.PluginClassName, null, null); IMrcsWorkflowServerPlugin doit = (IMrcsWorkflowServerPlugin) Class.forName(plugin.PluginClassName).newInstance(); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "-- doit!", null, null); doit.execute( sessionmgr, docbase, workitem, workflow, process, mrcsapp, plugin.PluginConfiguration, context); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "-- done!", null, null); } } } catch (Exception e) { /*-ERROR-*/ DfLogger.error(this, m + "error in promoting workitem packages...", null, e); sessionmgr.release(session); throw e; } /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "completing workitem...", null, null); workitem.complete(); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "releasing session", null, null); sessionmgr.release(session); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "session released", null, null); }
public IDfSessionManager getDBOSession() throws Exception { // this uses the user to get Mrcs Config to look up the DBO! /*-CONFIG-*/ String m = "getDBOSession - "; /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "ST Config lookup...", null, null); StateTransitionConfigFactory sts = StateTransitionConfigFactory.getSTConfig(); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug( this, m + "getting config session so we can query for the dbo's name", null, null); IDfSessionManager usersessionmgr = sts.cfgSession(); IDfSession usersession = usersessionmgr.getSession(sts.cfgDocbase()); String docbase = usersession.getDocbaseName(); String dbo = usersession.getDocbaseOwnerName(); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "quick dbo name: " + dbo, null, null); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "create query objects for lookup", null, null); String dboquery = "select r_install_owner from dm_server_config"; IDfCollection col = null; IDfQuery q = new DfQuery(); q.setDQL(dboquery); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "executing " + dboquery, null, null); col = q.execute(usersession, IDfQuery.DF_READ_QUERY); if (col.next()) { /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "query successful, reading dbo's name", null, null); dbo = col.getString("r_install_owner"); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "DBO name via query: " + dbo, null, null); col.close(); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "releasing user session", null, null); usersessionmgr.release(usersession); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "user session released", null, null); } else { col.close(); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "releasing user session", null, null); usersessionmgr.release(usersession); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "user session released", null, null); throw new RuntimeException("r_install_owner not retrievable from docbase"); } /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "creating DCTM client object", null, null); IDfClient client = DfClient.getLocalClient(); IDfSessionManager sMgr = null; DfLoginInfo loginInfo = new DfLoginInfo(); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "setting identity to dbo user " + dbo, null, null); loginInfo.setUser(dbo); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "getting DBO session", null, null); sMgr = client.newSessionManager(); sMgr.setIdentity(docbase, loginInfo); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "returning", null, null); return sMgr; }
public IDfSessionManager getDBOSession(Map parameters) throws Exception { /*-CONFIG-*/ String m = "getDBOSession - "; String docbase = ((String[]) parameters.get("docbase_name"))[0]; /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug( this, m + "getting user session so we can query for the dbo's name", null, null); IDfSessionManager usersessionmgr = getUserSession(parameters); IDfSession usersession = usersessionmgr.getSession(docbase); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "quick dbo name: " + usersession.getDocbaseOwnerName(), null, null); String dbo = usersession.getDocbaseOwnerName(); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "create query objects", null, null); String dboquery = "select r_install_owner from dm_server_config"; IDfCollection col = null; IDfQuery q = new DfQuery(); q.setDQL(dboquery); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "executing " + dboquery, null, null); col = q.execute(usersession, IDfQuery.DF_READ_QUERY); if (col.next()) { /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "query successful, reading dbo's name", null, null); dbo = col.getString("r_install_owner"); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "DBO name via query: " + dbo, null, null); col.close(); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "releasing user session", null, null); usersessionmgr.release(usersession); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "user session released", null, null); } else { col.close(); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "releasing user session", null, null); usersessionmgr.release(usersession); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "user session released", null, null); throw new RuntimeException("r_install_owner not retrievable from docbase"); } /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "creating DCTM client object", null, null); IDfClient client = DfClient.getLocalClient(); IDfSessionManager sMgr = null; DfLoginInfo loginInfo = new DfLoginInfo(); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "setting identity to dbo user " + dbo, null, null); loginInfo.setUser(dbo); // loginInfo.setPassword(""); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "getting DBO session", null, null); sMgr = client.newSessionManager(); sMgr.setIdentity(docbase, loginInfo); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "returning", null, null); return sMgr; }
public void execute( IDfSessionManager sMgr, String docbase, IDfWorkitem task, IDfWorkflow workflow, IDfProcess process, String mrcsapp, Map config, Map context) { /*-CONFIG-*/ String m = "QADocFormGenerateAcrobatRenditionOnServer.execute - "; GenerateAcrobatRendition gar = new GenerateAcrobatRendition(); IDfSession session = null; try { session = sMgr.getSession(docbase); // get attachment... /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "getting ATTACHMENT collection for workitem", null, null); IDfCollection attachments = task.getAttachments(); while (attachments.next()) { /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "--NEXT ATTACHMENT--", null, null); for (int i = 0; i < attachments.getAttrCount(); i++) { /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "attr: " + attachments.getAttr(i).getName(), null, null); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug( this, m + "type: " + attachments.getAttr(i).getDataType(), null, null); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug( this, m + "repeats: " + attachments.getAttr(i).isRepeating(), null, null); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug( this, m + "val: " + attachments.getValueAt(i).asString(), null, null); } String compid = attachments.getString("r_component_id"); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "--ATTACHMENT id: " + compid, null, null); if (compid != null) { /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "--getting ATTACHMENT from docbase", null, null); IDfDocument attacheddoc = (IDfDocument) session.getObject(new DfId(compid)); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug( this, m + "--pkgdoc retrieved: " + attacheddoc.getObjectName() + " - " + attacheddoc.getObjectId().getId(), null, null); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "--getting most recent version of attachment", null, null); IDfDocument pkgdoc = (IDfDocument) session.getObjectByQualification( "dm_document where i_chronicle_id = '" + attacheddoc.getChronicleId().getId() + "'"); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug( this, m + "--most recent retrieved: " + pkgdoc.getObjectName() + " - " + pkgdoc.getObjectId().getId(), null, null); try { /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "CALLING render plugin", null, null); gar.render(session, pkgdoc, config); // need to save...this may cause deadlock errors if in a transaction? /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "saving doc changes", null, null); pkgdoc.save(); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "doc save complete", null, null); } catch (Exception e) { /*-ERROR-*/ DfLogger.error( this, m + "error while loading or executing promotion service module", null, e); throw e; } } } } catch (Exception dfe) { /*-ERROR-*/ DfLogger.error(this, m + "ERROR in generate rendtion on server event", null, dfe); throw new RuntimeException( "Error in workflow plugin - generate rendition on server event plugin", dfe); } finally { sMgr.release(session); } }
/** * Execute the method task and all defined {@link fi.sardion.dctm.deploy.job.Job job} subtasks. * * <ul> * <li>Created: 18 Sep 2010 19:10:07 * <li>Author: Christopher Harper, account: dmadmin * </ul> * * @since %since% */ @Override public void execute() { final IDfSession session = getSession(); try { if (isForThisRepository(session.getDocbaseName())) { final String qualification = new StringBuilder() .append(DCTMTask.DM_METHOD) .append(" where ") .append( //$NON-NLS-1$ DCTMTask.OBJECT_NAME) .append(" = '") // $NON-NLS-1$ .append(getMethodName()) .append('\'') .toString(); IDfMethodObject method = (IDfMethodObject) session.getObjectByQualification(qualification); if (method == null) { log( String.format( "Qualification %s din't return a method. Creating a new one.", //$NON-NLS-1$ new Object[] {qualification})); method = (IDfMethodObject) session.newObject(DCTMTask.DM_METHOD); method.setObjectName(getMethodName()); method.grant(DCTMTask.DM_WORLD, IDfACL.DF_PERMIT_READ, ""); // $NON-NLS-1$ // method.link(Method.METHOD_FOLDER); setReaplySettings(String.valueOf(true)); } else { log( String.format( "Found method with qualification %s.", //$NON-NLS-1$ new Object[] {qualification})); } if (reaplySettings()) { if (!method.isDirty()) { method.checkout(); log( String.format( "Modifying existing method %s values.", //$NON-NLS-1$ new Object[] {getMethodName()})); } method.setMethodVerb(getMethodVerb()); method.setTimeoutMin(getTimeoutMin()); method.setTimeoutMax(getTimeoutMax()); method.setTimeoutDefault(getTimeoutDefault()); method.setLaunchDirect(getLaunchDirect()); method.setLaunchAsync(getLaunchAsync()); method.setTraceLaunch(getTraceLaunch()); method.setRunAsServer(getRunAsServer()); method.setUseMethodContent(getUseMethodContent()); method.setMethodType(getMethodType()); method.setUseMethodServer(getUseMethodServer()); method.setSuccessStatus(getSuccessStatus()); method.setBoolean(DCTMTask.IS_RESTARTABLE, getIsRestartable()); method.removeAll(DCTMTask.SUCCESS_RETURN_CODES); for (final Integer successReturnCode : getSuccessReturnCodes()) { method.appendInt(DCTMTask.SUCCESS_RETURN_CODES, successReturnCode.intValue()); } method.removeAll(DCTMTask.METHOD_ARGS); for (final String methodArgument : getMethodArguments()) { method.appendString(DCTMTask.METHOD_ARGS, methodArgument); } method.removeAll(DCTMTask.A_EXTENDED_PROPERTIES); for (final String extededProperty : getExtendedProperties()) { method.appendString(DCTMTask.A_EXTENDED_PROPERTIES, extededProperty); } } if (method.isDirty()) { if (method.isCheckedOut()) { method = (IDfMethodObject) session.getObject(method.checkin(false, "")); // $NON-NLS-1$ } else { method.save(); } } if (isVerbose()) { log( String.format( "########## METHOD OBJECT DUMP START ##########\n%s\n########### METHOD OBJECT DUMP END ###########", //$NON-NLS-1$ new Object[] {method.dump()}), Project.MSG_INFO); } } else { log( String.format( "This method %s was only defined for repositories %s and the current repository is %s.", //$NON-NLS-1$ new Object[] {getMethodName(), getRepositories(), session.getDocbaseName()})); } } catch (final Throwable t) { printStack(t); log( String.format( "Shit!:\nclass: %s\nmessage: %s\nstack: %s", //$NON-NLS-1$ new Object[] { t.getClass().getName(), t.getMessage(), t.getStackTrace()[0].toString() })); } for (final Job job : getJobs()) { job.setSession(session); job.setMethodname(getMethodName()); job.execute(); } }