Hansky/HBP/Server/rsrc/rsrc/chtml/uiext/udb.uuid/sfo.name/sf.name/ 目录下
/show/
+/sf_show.bsh
+/${state_name}.bsh
/trshow/
+/${state_name}-{transition_name}.bsh
+/submit.bsh ■
如上所示,需在HBP安装路径下/server/rsrc/chtml/uiext文件夹内找到文件名为需要添加UI的UDB_UUID的文件夹,在该文件夹内找到对应的${SFO_NAME}/${SF_NAME},里面有两个文件夹,show和tr_show,分别对应的状态和转换,在这下面存放需要添加的页面代码,文件名称有严格规定,状态页面文件名为“状态名”或sf_show.bsh(如果是sf_show.bsh则每个状态页均显示),转换页面文件名为“状态名-转换名”或submit.bsh(如果是submit.bsh则对应流程的第一个转换),添加新UI后一般不需要重启服务。
BO的新建transition 只能写成 submit.bsh 不能写成 “状态名-转换名.bsh" ,其他的如编辑transition则可以。
下面是某2个bsh的例子,有知识点。
1.bsh
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.hansky.intf.stateflow.*;
import com.hansky.intf.sat.*;
import com.hansky.apps.butterfly.intf.*;
import com.hansky.intf.butterfly.*;
import com.hansky.apps.butterfly.util.*;
sourceRelative("loadData.bsh"); //这个方法作用:引用当前目录下的loadData.bsh 文件内的方法,相当于import方法,属于beanshell的知识点。
String sfoUUID = request.getParameter("sfoUUID");
IButterflyContext ctx = (IButterflyContext) request.getAttribute("hs.butterfly.context");
ISession session = ctx.createSession();
List runList = new ArrayList();
List optionList = new ArrayList();
try {
session.txBegin();
IStateflowObject sfo = ctx.retrieveStateflowObject(session, "pmsfhzgszb", sfoUUID);
runList = getRunList(ctx, session, sfo);
System.out.print("====="+runList.size+"aa======");
String curOid = ctx.getUser().getOID();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
session.txClose();
} catch (PersistenceException e) {
e.printStackTrace();
}
}
request.setAttribute("sfo", sfoUUID);
request.setAttribute("runList", runList);
request.getRequestDispatcher("scoreMain.ftl").forward(request, response);
loadData.bsh 内容如下
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.hansky.intf.stateflow.*;
import com.hansky.intf.sat.*;
import com.hansky.apps.butterfly.intf.*;
import com.hansky.intf.butterfly.*;
import com.hansky.apps.butterfly.util.*;
public static List getRunList(IButterflyContext ctx, ISession session, IStateflowObject sfo) throws Exception{
Map mapa = new HashMap();
List list = new ArrayList();
mapa.put("name",sfo.getOID());
mapa.put("no", sfo.getStringField("hs_serial_no"));
list.add(mapa);
return list;
}