51Testing软件测试论坛

标题: 紧急求助!和关联有关系!我实在没办法了! [打印本页]

作者: soerd    时间: 2008-6-12 20:13
标题: 紧急求助!和关联有关系!我实在没办法了!
我们这个系统的业务是这样的:第一个节点一个用户提交一个流程,注销,然后分公司经理登陆,审批,按“提交”,流程再流到下一个节点,如此...

用户登陆—提交流程—注销—分公司经理登陆—审批流程(动作为“提交”)—注销—片员登陆—审批—........


每提交一个流程会产生一个新的 workflowid

我在如下用关联将workflowid代替成{workflowid}
web_reg_save_param("workflowid",
"LB=/vworkflow/workflow/workflow.jsp?workflowid=",
"RB=\r",
"NotFound=EMPTY",
LAST);
这个时候发现第一个节点提交流程可以顺利提交成功,而且一次提交10个用户也可以成功

另外有个地方要说明下,提交流程的时候,可以填写流程名,但是在提交之后,系统会自动加上一串业务数字,如,我填写HDYK,最后流程名就变成,如:HDYK22108060035

为了避免麻烦,开始我将脚本里,分公司经理登陆之后打开流程页面的部分(本来是从“待办任务”里点名字连接),
直接替换成“开新窗口直接输入IP地址”的方法打开流程页面
这样就避免了从“待办任务”里打开(不用产生根据连接名来点开连接的事件),就做了一定的规避

这个时候奇怪的事情发生了
报错:
Action.c(917): Error -26612: HTTP Status-Code=500 (Internal Server Error) for "http://192.168.2.51:8082/vworkflow/workflow/workflow.jsp?workflowid="

而且从报错信息看,{workflowid}似乎被忽略了,脚本里走到这里是:
web_url("workflow.jsp",
"URL=http://192.168.2.51:8082/vworkflow/workflow/workflow.jsp?workflowid={workflowid}",

为证明脚本的可行性,我把脚本的{workflowid}替换成真实存在的workflowid,单用户跑,可以走完流程!

后来有试验了好多方法,不行


这个时候我将脚本还原,将流程名那里做了关联
web_reg_save_param("date",
"LB=value=\"HDYK",
"RB="" onChange=",
"NotFound=EMPTY",
LAST);

结果仍然是第2个节点分公司经理登陆之后,走到相同的地方
web_link("HDYK{date}",
"Text=HDYK{date}",
"Snapshot=t71.inf",
EXTRARES,
"Url=/vjs/src/widget/TabContainer.js", "Referer=http://192.168.2.51:8082/vworkflow/workflow/workflow.jsp?workflowid={workflowid}", ENDITEM,
提示说找不到“HDYK”,很显然,前面的关联在这里又没起作用


这是咋回事呢?弄了快一天了,我都快疯了

脚本送上,两个,两种方法,几乎同样的问题:[attach]42779[/attach]

[ 本帖最后由 soerd 于 2008-6-12 20:15 编辑 ]
作者: soerd    时间: 2008-6-13 15:26
问题已经解决:
原因是第一个用户注销,导致第一个用户获取到的关联不能在第2个用户使用

在第一次获取到workflowid关联那部分脚本之后,立即加上

lr_save_string(lr_eval_string("{workflowid}"),"wf2");      令获取到的关联马上保存

保存到一个变量中,后面再调用

从第2个用户开始,{workflowid}全部换成{wf2}

效果如下,
中间脚本省略:


web_reg_save_param("workflowid",
"LB=/vworkflow/workflow/workflow.jsp?workflowid=",
"RB=\r",
"NotFound=EMPTY",
LAST);

web_submit_data("com.velcro.workflow.workflow.servlet.WorkflowAction",
                .......LAST);

lr_save_string(lr_eval_string("{workflowid}"),"wf2");
作者: hmilyjch    时间: 2008-6-13 15:41
恩~  真好~~   恭喜~
作者: tsxm    时间: 2011-2-14 17:46
请问这个oa是什么oa啊?我也想研究研究
作者: msnshow    时间: 2011-2-14 22:07
解决了就好
作者: LittleJuanLin    时间: 2011-2-16 14:24
“原因是第一个用户注销,导致第一个用户获取到的关联不能在第2个用户使用”这句话没看懂,
业务的逻辑大致明白了,
但是脚本的逻辑是怎样的呢?
作者: 蚂蚁吞大象    时间: 2011-2-16 15:19
web工作流一般业务逻辑就是,A用户(申请人)发起一个文,后台就会生成一个公文的id(就是上面的workflowID),审批人在进行审批的时候,系统就会根据这个ID找到这个文,才能对这个文进行后续操作,以此类推,直到处理结束,所以此处关联获取到的参数应该就是所谓的公文id;
另外,那个提交流程后,系统自动加上的那串数字,应该就是所谓的流水号之类的东西
不知我理解的对不对?




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2