<%@ page import="com.savvion.sbm.bizmanage.api.*"%> <%@ page import="com.savvion.sbm.bizmanage.bscdesigner.*"%> <%@ page import="com.savvion.sbm.bizmanage.bscdesigner.adapters.*"%> <%@ page import="com.savvion.sbm.bizmanage.util.*"%> <%@ page import="com.savvion.sbm.bizmanage.aim.*"%> <%@ page import="com.savvion.sbm.bizlogic.server.svo.*"%> <%@ page import="com.savvion.sbm.bpmportal.util.DateTimeUtils"%> <%@ page import="com.savvion.sbm.bpmportal.util.PortalNumberFormatUtil"%> <%@ page import="java.text.SimpleDateFormat" %> <%@ page import="java.math.BigDecimal" %> <%@ page import="java.util.*"%> <%@ page import="java.text.*"%> <%@ page import="com.savvion.sbmadmin.bean.SBMAdminBean" %> <%@ page import="com.savvion.acl.impl.SBMACLUser" %> <%@ page import="com.savvion.acl.ACLManager" %> <%@ page import="com.savvion.sbm.bpmportal.util.ServletUtilities" %> <%@ page import="com.savvion.sbm.bpmportal.util.PortalDateFormatter" %> <%@ page import="com.savvion.sbm.bpmportal.util.PortalUtil" %> <%@ page import="com.savvion.sbm.bpmportal.util.PortalConstants" %> <%@ page errorPage = "mgmnt_error.jsp"%> <%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %> <% bizManage.setRequest(request); bizManage.setResponse(response); String w_entity = request.getParameter("entity"); SBMAdminBean adminBean = (SBMAdminBean) session.getAttribute("adminBean"); SBMACLUser user = BizManageBean.getSBMACLUser(request, adminBean.getUserName()); TimeZone timeZone = UserManager.getUserTimeZone(PortalUtil.getSessionId(session)); if(w_entity == null || "instance".equals(w_entity)) { HashMap hMap = (HashMap)session.getAttribute("InstanceResult"); ArrayList attrList = (ArrayList)session.getAttribute("InstanceAttrList"); String appName = (String)session.getAttribute("AppliName"); String strInstances = ""; if("save".equals(request.getParameter("actionToPerform"))) { if(hMap != null && attrList != null && appName != null) { Map> piDataslots = new HashMap>(); int rowSize = hMap.size(); for(int i=0;i dataslots = new HashMap(attrList.size()); for(int j=0;j 0) { for(int i=0;i < attrList.size();i++) { Dataslot w_ds = (Dataslot)attrList.get(i); if(w_ds != null) { String dsName = w_ds.getName(); String strParam = (String)reqObjhashtable.get(dsName); if(strParam != null && !"".equals(strParam) && piid != null) { if(!(w_ds.hasChoices() && "-1".equals(strParam.trim()))) { if(w_ds.getType().equals(Dataslot.DATETIME)) { strParam = strParam.trim(); Date dateValue = PortalDateFormatter.self().getFormattedDate(strParam,bizManage.getLocale(),w_ds.isDateOnly()); DateTime dueDt = new DateTime(dateValue.getTime()); dataslots.put(w_ds.getName(), dueDt); } else if(w_ds.getType().equals(Dataslot.BOOLEAN)) { if("TRUE".equals(strParam.trim().toUpperCase())){ dataslots.put(w_ds.getName(), Boolean.TRUE); } else { dataslots.put(w_ds.getName(), Boolean.FALSE); } } else if(Dataslot.LONG.equals(w_ds.getType())) { dataslots.put(w_ds.getName(), String.valueOf(PortalNumberFormatUtil.parseLocalizedLong(strParam.trim(), bizManage.getLocale()))); } else if(Dataslot.DOUBLE.equals(w_ds.getType())) { dataslots.put(w_ds.getName(), String.valueOf(PortalNumberFormatUtil.parseLocalizedDouble(strParam.trim(), bizManage.getLocale()))); } else if(Dataslot.DECIMAL.equals(w_ds.getType())) { dataslots.put(w_ds.getName(), PortalNumberFormatUtil.parseLocalizedBigDecimal(strParam.trim(), bizManage.getLocale()).toPlainString()); } else { dataslots.put(w_ds.getName(), strParam.trim()); } } } for(int j=0;jwsAttrMap = null; Map wsStatusMap = null; List>wsSuspendList= null; List>wsActiveList= null; List> wsSkipList= null; List>wsAttrsList= null; //boolean variable added to prevent Suspended and Skipped workstep to get updated boolean flag = false; if("save".equals(request.getParameter("actionToPerform"))) { //Get the information from the table if(hMap != null && attrList != null && appName != null) { int rowSize = hMap.size(); wsAttrsList = new ArrayList>(); for(int i=0;i(); String strPiid = request.getParameter("tbl_"+i+"_instance"); if(strPiid != null) { strInstances += strPiid+","; String piid = request.getParameter("tbl_"+i+"_PROCESS_INSTANCE_ID"); String wsid = request.getParameter("tbl_"+i+"_WORKSTEP_ID"); String dueDate = ""; String dueDateInMillis = null; DateTime dueDt = null; flag = false; for(int j=0;j0) { long timeInMillis = 0; if("-1".equals(dueDateInMillis) || null == dueDateInMillis){ SimpleDateFormat formatter = BizManageConfiguration.BizManageResources.getDateFormat(bizManage.getLocale(),timeZone); Date dateValue = formatter.parse(dueDate); dueDt = new DateTime(dateValue.getTime()); timeInMillis = dueDt.getTime(); }else{ timeInMillis = Long.parseLong(dueDateInMillis); } wsAttrMap.put(WorkstepListView.DUE_DATE, timeInMillis); } } else if(WorkstepListView.STATUS.equals(strArray[0])) { String status = strParam.trim(); if(status!=null && status.length() > 0 && !"-1".equals(status)) { wsStatusMap = new HashMap(); wsStatusMap.put(WorkstepListView.PROCESSINSTANCEID,Long.valueOf(piid)); wsStatusMap.put(WorkstepListView.WORKSTEPID, Long.valueOf(wsid)); if(bizManage.SUSPENDED.equals(status)) { if(wsSuspendList == null) { wsSuspendList = new ArrayList>(); } wsSuspendList.add(wsStatusMap); flag = true; } else if(bizManage.ACTIVE.equals(status)){ if(wsActiveList == null) { wsActiveList = new ArrayList>(); } wsActiveList.add(wsStatusMap); } else if(bizManage.SKIPPED.equals(status)){ if(wsSkipList == null) { wsSkipList = new ArrayList>(); } wsSkipList.add(wsStatusMap); flag = true; } } } } } if(wsAttrMap != null && wsAttrMap.size() > 0 && !flag){ wsAttrMap.put(WorkstepListView.PROCESSINSTANCEID,Long.valueOf(piid)); wsAttrMap.put(WorkstepListView.WORKSTEPID,Long.valueOf(wsid)); wsAttrsList.add(wsAttrMap); } } } bizManage.updateWorkstepAttrs(wsAttrsList,wsActiveList,wsSuspendList,wsSkipList,true); } response.sendRedirect("../management/wrkstep_cnf.jsp?appname="+appName+"&instancelist="+strInstances.substring(0,strInstances.length()-1)); } else if("okclicked".equals(request.getParameter("actionToTaken"))) { Hashtable reqObjhashtable = (Hashtable)session.getAttribute("ReqObjForUpdate"); //Get the information from the table if(hMap != null && attrList != null && appName != null) { wsAttrsList = new ArrayList>(); Set keys = hMap.keySet(); Iterator itr = keys.iterator(); while(itr.hasNext()) { wsAttrMap = new HashMap(); String key = (String)itr.next(); StringTokenizer strTok = new StringTokenizer(key,"|"); String w_key = strTok.nextToken(); String wkstepName = strTok.nextToken(); Workstep ws = (Workstep)hMap.get(key); if(ws != null) { int aNameIdx = w_key.indexOf("#"); int aPiidIdx = w_key.lastIndexOf("#"); String aName = w_key.substring(0,aNameIdx); String piid = w_key.substring(aPiidIdx+1); String priority = (String)reqObjhashtable.get(WorkstepListView.PRIORITY); flag = false; if(priority != null && priority.length() > 0 && !"-1".equals(priority)) { wsAttrMap.put(WorkstepListView.PRIORITY,priority); } String status = (String)reqObjhashtable.get(WorkstepListView.STATUS); if(PortalConstants.STATUS_NOT_SELECTED.equals(status)) { status = (String)reqObjhashtable.get("wsStatus"); } if(!PortalUtil.isEmpty(status)) { wsStatusMap = new HashMap(); wsStatusMap.put(WorkstepListView.PROCESSINSTANCEID, Long.valueOf(piid)); wsStatusMap.put(WorkstepListView.WORKSTEPNAME, wkstepName); if(bizManage.SUSPENDED.equals(status)) { if(wsSuspendList == null) { wsSuspendList = new ArrayList>(); } wsSuspendList.add(wsStatusMap); flag = true; } else if(bizManage.ACTIVE.equals(status)){ if(wsActiveList == null) { wsActiveList = new ArrayList>(); } wsActiveList.add(wsStatusMap); } else if(bizManage.SKIPPED.equals(status)){ if(wsSkipList == null) { wsSkipList = new ArrayList>(); } wsSkipList.add(wsStatusMap); flag = true; } } String performer = (String)reqObjhashtable.get(WorkstepListView.PERFORMER); if(performer != null && performer.length() > 0) { wsAttrMap.put(WorkstepListView.PERFORMER,performer); } String dueDate = (String)reqObjhashtable.get(WorkstepListView.DUE_DATE); DateTime dueDt = null; if(dueDate != null && dueDate.trim().length()>0) { SimpleDateFormat formatter = BizManageConfiguration.BizManageResources.getDateFormat(bizManage.getLocale(), timeZone); Date dateValue = formatter.parse(dueDate.trim()); dueDt = new DateTime(dateValue.getTime()); wsAttrMap.put(WorkstepListView.DUE_DATE, dueDt.getTime()); } if(wsAttrMap != null && wsAttrMap.size() > 0 && !flag) { wsAttrMap.put(WorkstepListView.WORKSTEPNAME,wkstepName); wsAttrMap.put(WorkstepListView.PROCESSINSTANCEID,Long.valueOf(piid)); wsAttrsList.add(wsAttrMap); } } } bizManage.updateWorkstepAttrs(wsAttrsList,wsActiveList,wsSuspendList,wsSkipList,true); } session.removeAttribute("ReqObjForUpdate"); response.sendRedirect("../management/wrkstep_cnf.jsp?appname="+appName); } else if("update".equals(request.getParameter("actionToPerform"))) { pageContext.forward("/bpmportal/management/wrkstep_warn.jsp?appname="+appName); } } else if(w_entity != null && "assigntask".equals(w_entity)) { ArrayList tList = (ArrayList)session.getAttribute("AssignedTaskList"); String appName = (String)session.getAttribute("AppliName"); String strInstances = ""; if("save".equals(request.getParameter("actionToPerform"))) { //Get the information from the table if(tList != null && appName != null) { Hashtable wiids = new Hashtable(); int rowSize = tList.size(); for(int i=0;i wiids = new HashMap(); int rowSize = tList.size(); for(int i=0;i