%@ page import="com.savvion.sbm.bizmanage.aim.*"%>
<%@ 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.bpmportal.bizsite.util.PropsUtil" %>
<%@ page import="com.savvion.sbm.bizmanage.util.BizManageConfiguration" %>
<%@ page import="com.savvion.sbm.bpmportal.util.DateTimeUtils"%>
<%@ page import="com.savvion.sbm.bpmportal.util.PortalConfig"%>
<%@ page import="com.savvion.sbm.bpmportal.util.PortalNumberFormatUtil"%>
<%@ page import="com.savvion.sbm.bpmportal.util.UtilManager"%>
<%@ page import="com.savvion.sbm.bpmportal.bizsite.util.ServletUtil"%>
<%@ page import="java.math.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.text.*"%>
<%@ page errorPage = "mgmnt_error.jsp"%>
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib uri="/bpmportal/tld/bpmportal.tld" prefix="sbm" %>
<%@ include file="../common/include_tag.jspf" %>
<%!
public final static int COLUMN_INSTANCE_NAME = 0;
public static final int DESCENDING = -1;
public static final int ASCENDING = 1;
%>
<%
bizManage.setRequest(request);
bizManage.setResponse(response);
String srchBasedOn = "attrRadio";
boolean isReport = false;
srchBasedOn = request.getParameter("srchRadiobutton");
if(srchBasedOn != null && "repRadio".equals(srchBasedOn))
isReport = true;
else
isReport = false;
String appName = bizManage.getUTFString("appliSelect");
String reportName = "";
if(isReport)
{
reportName = bizManage.getUTFString("selReport");
}
HashMap w_instanceMap = null;
ArrayList attrList = null;
String instanceName = "";
String creatorName = "";
String priority = "";
String strFromStDt = "";
String strToStDt = "";
String strFromDueDt = "";
String strToDueDt = "";
if(appName != null && !"".equals(appName))
{
String ptId = bizManage.getPTIDFromPTName(appName);
//Get other filter parameters....
instanceName = bizManage.getUTFString("instanceName");
if(instanceName == null || "*".equals(instanceName))
instanceName = "";
creatorName = bizManage.getUTFString("creatorName");
if(creatorName == null || "*".equalsIgnoreCase(creatorName))
creatorName = "";
priority = bizManage.getUTFString("prioritySelect");
if(priority == null || "-1".equalsIgnoreCase(priority))
priority = "";
String strStDt = request.getParameter("startDateSelect");
strFromStDt = request.getParameter("startDateFrom");
strToStDt = request.getParameter("startDateTo");
strFromDueDt = request.getParameter("dueDateFrom");
strToDueDt = request.getParameter("dueDateTo");
//convert all dates to long....
long fromStDt = 0;
long toStDt = 0;
long fromDueDt = 0;
long toDueDt = 0;
try
{
if(strFromStDt != null && !"".equals(strFromStDt))
fromStDt = DateTimeUtils.getLong(bizManage.getDateFormatter(),strFromStDt.trim());
else
fromStDt = 0;
if(strToStDt != null && !"".equals(strToStDt))
toStDt = DateTimeUtils.getLong(bizManage.getDateFormatter(),strToStDt.trim());
else
toStDt = 0;
if(strFromDueDt != null && !"".equals(strFromDueDt))
fromDueDt = DateTimeUtils.getLong(bizManage.getDateFormatter(),strFromDueDt.trim());
else
fromDueDt = 0;
if(strToDueDt != null && !"".equals(strToDueDt))
toDueDt = DateTimeUtils.getLong(bizManage.getDateFormatter(),strToDueDt.trim());
else
toDueDt = 0;
}
catch(Exception e) {}
ArrayList w_DataSlotList = (ArrayList)session.getAttribute("AllDsList");
if(w_DataSlotList == null)
w_DataSlotList = new ArrayList();
String dsList = bizManage.getUTFString("selDataslots");
attrList = new ArrayList();
if(dsList != null)
{
StringTokenizer strTok = new StringTokenizer(dsList,"|");
while(strTok.hasMoreTokens())
{
String dsId = (String)strTok.nextToken();
if(dsId == null)
continue;
int idx = -1;
try
{
idx = Integer.parseInt(dsId.trim());
}
catch(Exception e) { }
if(w_DataSlotList != null && idx != -1)
{
Dataslot ds = (Dataslot)w_DataSlotList.get(idx+1);
if(ds != null)
{
attrList.add(ds);
}
}
}
}
if(!isReport)
{
//Call getInstanceList with default filter parameters
w_instanceMap = bizManage.getInstanceList(ptId,instanceName,creatorName,priority,fromStDt,toStDt,fromDueDt,toDueDt,attrList);
}
else
{
ArrayList reportparameter=bizManage.getReportParameters(appName,reportName,false);
HashMap newValues = new HashMap();
if(bizManage.reportHasParameters(appName,reportName,false))
{
for(int i=0 ;i < reportparameter.size() ;i++)
{
ParameterDesc paramdesc=(ParameterDesc)reportparameter.get(i);
String paramName = bizManage.getUTFString("param"+Integer.toString(i)+"name") ;
String paramValue = null;
if(paramdesc.isDate())
{
paramValue = bizManage.getUTFString("param"+String.valueOf(i)+"value");
}
else
{
paramValue = bizManage.getUTFString("param"+Integer.toString(i)+"value");
}
if(paramName != null)
newValues.put(paramName,(paramValue == null ? "" : paramValue));
}
}
w_instanceMap = bizManage.getInstanceList(appName, reportName,newValues);
//Set the attrList...
ArrayList tList = PIListView.getAttrFromReport(appName,reportName,ptId,bizManage);
attrList = (ArrayList)tList.get(0);
HashMap map = (HashMap)tList.get(1);
instanceName = (map.get("process_instance_name") == null ? "" : (String)map.get("process_instance_name"));
creatorName = (map.get("creator") == null ? "": (String)map.get("creator"));
priority = (map.get("priority") == null ? "" : (String)map.get("priority"));
String stdt = (map.get("STARTTIME") == null ? "" : (String)map.get("STARTTIME"));
String duedt = (map.get("DUEDATE") == null ? "" : (String)map.get("DUEDATE"));
fromStDt = 0;
toStDt = 0;
fromDueDt = 0;
toDueDt = 0;
}
String srchCriteria = appName+" ^"+ptId+" ^"+creatorName+" ^"+priority+" ^"+fromStDt+" ^"+toStDt+" ^"+fromDueDt+" ^"+toDueDt+" ^"+instanceName+" ^"+new Boolean(isReport).toString()+" ^"+reportName+" ";
session.setAttribute("InstanceSearchCriteria",srchCriteria);
session.setAttribute("InstanceResult",w_instanceMap);
session.setAttribute("InstanceAttrList",attrList);
session.setAttribute("AppliName",appName);
}
else
{
attrList = (ArrayList)session.getAttribute("InstanceAttrList");
appName = (String)session.getAttribute("AppliName");
if(request.getParameter("refresh") != null && "true".equals(request.getParameter("refresh"))
&& session.getAttribute("InstanceSearchCriteria") != null)
{
String crtieria = (String)session.getAttribute("InstanceSearchCriteria");
StringTokenizer strTok = new StringTokenizer(crtieria,"^");
ArrayList lst = new ArrayList();
while(strTok.hasMoreTokens())
{
String strVal = (String)strTok.nextToken();
if(strVal == null)
strVal = "";
lst.add(strVal.trim());
}
creatorName = (String)lst.get(2);
if(creatorName == null) creatorName = "";
priority = (String)lst.get(3);
if(priority == null) priority = "";
strFromStDt = (String)lst.get(4);
strToStDt = (String)lst.get(5);
strFromDueDt = (String)lst.get(6);
strToDueDt = (String)lst.get(7);
instanceName = (String)lst.get(8);
String isRpt = (String)lst.get(9);
if(isRpt != null && "true".equalsIgnoreCase(isRpt))
isReport = true;
else
isReport = false;
reportName = (String)lst.get(10);
if(reportName == null) reportName="";
reportName=reportName.trim();
if(!isReport)
{
w_instanceMap = bizManage.getInstanceList((String)lst.get(1),instanceName,creatorName,priority,Long.parseLong(strFromStDt.trim()),Long.parseLong(strToStDt.trim()),Long.parseLong(strFromDueDt.trim()),Long.parseLong(strToDueDt.trim()),attrList);
}
else
{
ArrayList reportparameter=bizManage.getReportParameters(appName,reportName,false);
HashMap newValues = new HashMap();
if(bizManage.reportHasParameters(appName,reportName,false))
{
for(int i=0 ;i < reportparameter.size() ;i++)
{
ParameterDesc paramdesc=(ParameterDesc)reportparameter.get(i);
String paramName = bizManage.getUTFString("param"+Integer.toString(i)+"name") ;
String paramValue = null;
if(paramdesc.isDate())
{
paramValue = bizManage.getUTFString("param"+String.valueOf(i)+"value");
}
else
{
paramValue = bizManage.getUTFString("param"+Integer.toString(i)+"value");
}
if(paramName != null)
newValues.put(paramName,(paramValue == null ? "" : paramValue));
}
}
w_instanceMap = bizManage.getInstanceList(appName, reportName,newValues);
}
session.setAttribute("InstanceResult",w_instanceMap);
}
else
{
w_instanceMap = (HashMap)session.getAttribute("InstanceResult");
}
if(w_instanceMap == null)
{
bizManage.log("Application selected is either null or blank");
}
}
int pageSize = PortalConfig.self().getConfig().getPageSize();
PIListView w_piListView = new PIListView(bizManage,pageSize,10,attrList);
String currPage = request.getParameter("currentPage");
String currSet = request.getParameter("currentSet");
String currSort = request.getParameter("currentSortCol");
String currSortOrder = request.getParameter("currentSortOrder");
Paginator w_paginator = null;
//Get Current page set details
int currSt = 1;
if(currSet == null || "".equals(currSet) || "0".equals(currSet))
{
currSt = 1;
}
else
{
try
{
currSt = Integer.parseInt(currSet.trim());
}
catch(Exception e)
{
currSt = 1;
}
}
//Get Current page details
int currPg = 1;
if(currPage == null || "".equals(currPage) || "0".equals(currPage))
{
if(currSt == 1)
currPg = 1;
else
currPg = (currSt - 1) * w_piListView.NO_ITEMS_PER_PAGE;
}
else
{
try
{
currPg = Integer.parseInt(currPage.trim());
}
catch(Exception e)
{
currPg = 1;
}
}
//Get Current sort details
int currSrt = COLUMN_INSTANCE_NAME;
if(currSort == null || "".equals(currSort))
{
currSrt = COLUMN_INSTANCE_NAME;
}
else
{
if("0".equals(currSort.trim()))
{
currSrt = COLUMN_INSTANCE_NAME;
}
}
//Get Current sort order details
int currSrtOrd = ASCENDING;
if(currSortOrder == null || "".equals(currSortOrder))
{
currSrtOrd = ASCENDING;
}
else
{
if("1".equalsIgnoreCase(currSortOrder))
currSrtOrd = ASCENDING;
else if("-1".equalsIgnoreCase(currSortOrder))
currSrtOrd = DESCENDING;
else
currSrtOrd = ASCENDING;
}
//Get pagination details from session
if (session.getAttribute("Paginator") != null)
{
w_paginator = (Paginator)session.getAttribute("Paginator");
}
else
{
w_paginator = new Paginator(new SearchResultData(),w_piListView.NO_ITEMS_PER_PAGE,w_piListView.NO_PAGES_PER_SET);
session.setAttribute("Paginator",w_paginator);
}
//Set the pagination
w_piListView.setPaginator(w_paginator);
w_piListView.setListItems(w_piListView.convertHashMap2ArrayList(w_instanceMap,attrList));
if (w_paginator != null)
w_paginator.sort(currSrt,ParameterDataType.VARCHAR,(currSrtOrd == DESCENDING ? false : true));
SearchResultData srchData = w_paginator.getPageItem(currPg);
Object[][] rowData = srchData.getRowData();
boolean recFound = true;
double d1 = new Double(w_piListView.NO_ITEMS_PER_PAGE).doubleValue();
double d2 = new Double(w_piListView.NO_PAGES_PER_SET).doubleValue();
double d3 = new Double(w_paginator.getCount()).doubleValue();
double d = d3/(d1* d2);
double w_lastSet = Math.ceil(d3/(d1* d2));
double w_lastPg = Math.ceil(d3/d1);
if(rowData == null || rowData.length == 0)
recFound = false;
%>
-
<%@ include file="../common/include_css_static.jsp" %>
<%@ include file="../common/include_top.jsp" %>