/** * @see * org.kuali.rice.krad.service.DocumentService#getByDocumentHeaderIdSessionless(java.lang.String) */ @Override public Document getByDocumentHeaderIdSessionless(String documentHeaderId) throws WorkflowException { if (documentHeaderId == null) { throw new IllegalArgumentException("invalid (null) documentHeaderId"); } WorkflowDocument workflowDocument = null; if (LOG.isDebugEnabled()) { LOG.debug("Retrieving doc id: " + documentHeaderId + " from workflow service."); } Person person = getPersonService().getPersonByPrincipalName(KRADConstants.SYSTEM_USER); workflowDocument = workflowDocumentService.loadWorkflowDocument(documentHeaderId, person); Class<? extends Document> documentClass = getDocumentClassByTypeName(workflowDocument.getDocumentTypeName()); // retrieve the Document Document document = getLegacyDataAdapter().findByDocumentHeaderId(documentClass, documentHeaderId); return postProcessDocument(documentHeaderId, workflowDocument, document); }
/** * Overridden to guarantee that form of copied document is set to whatever the entry mode of the * document is * * @see org.kuali.rice.kns.web.struts.action.KualiTransactionalDocumentActionBase#copy * (org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, * javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ @Override public ActionForward copy( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { ActionForward forward = null; String docID = "docId"; if (request.getParameter(docID) == null) { forward = super.copy(mapping, form, request, response); } else { // this is copy document from Procurement Gateway: // use this url to call: // http://localhost:8080/kfs-dev/purapRequisition.do?methodToCall=copy&docId=xxxx String docId = request.getParameter(docID); KualiDocumentFormBase kualiDocumentFormBase = (KualiDocumentFormBase) form; CuRequisitionDocument document = null; document = (CuRequisitionDocument) getDocumentService().getByDocumentHeaderId(docId); document.toCopyFromGateway(); kualiDocumentFormBase.setDocument(document); WorkflowDocument workflowDocument = document.getDocumentHeader().getWorkflowDocument(); kualiDocumentFormBase.setDocTypeName(workflowDocument.getDocumentTypeName()); SpringContext.getBean(SessionDocumentService.class) .addDocumentToUserSession(GlobalVariables.getUserSession(), workflowDocument); forward = mapping.findForward(RiceConstants.MAPPING_BASIC); } return forward; }
/** * This is temporary until workflow 2.0 and reads from a table to get documents whose status has * changed to A (approved - no outstanding approval actions requested) * * @param documentHeaderId * @return Document * @throws WorkflowException */ @Override public Document getByDocumentHeaderId(String documentHeaderId) throws WorkflowException { if (documentHeaderId == null) { throw new IllegalArgumentException("invalid (null) documentHeaderId"); } boolean internalUserSession = false; try { // KFSMI-2543 - allowed method to run without a user session so it can be used // by workflow processes if (GlobalVariables.getUserSession() == null) { internalUserSession = true; GlobalVariables.setUserSession(new UserSession(KRADConstants.SYSTEM_USER)); GlobalVariables.clear(); } WorkflowDocument workflowDocument = null; if (LOG.isDebugEnabled()) { LOG.debug("Retrieving doc id: " + documentHeaderId + " from workflow service."); } workflowDocument = getWorkflowDocumentService() .loadWorkflowDocument(documentHeaderId, GlobalVariables.getUserSession().getPerson()); UserSessionUtils.addWorkflowDocument(GlobalVariables.getUserSession(), workflowDocument); Class<? extends Document> documentClass = getDocumentClassByTypeName(workflowDocument.getDocumentTypeName()); // retrieve the Document Document document = getLegacyDataAdapter().findByDocumentHeaderId(documentClass, documentHeaderId); return postProcessDocument(documentHeaderId, workflowDocument, document); } finally { // if a user session was established for this call, clear it out if (internalUserSession) { GlobalVariables.clear(); GlobalVariables.setUserSession(null); } } }