flyven 发表于 2010-11-18 10:53:00

关于删除操作相关的web_reg_save_param()的手工关联

本帖最后由 flyven 于 2010-11-18 11:41 编辑

下面是删除一条记录的操作脚本,第一个web_submit_data()是删除操作,第二个web_submit_data()我不知道是怎么来的,如脚本中,在第一个web_submit_data()前插入关联函数web_reg_save_param(),运行脚本后,在日志中可以看到TASKID找到了一个值,但是进入到系统中,其实没有记录被删除,为什么呢?因为这条记录在录制脚本时已经被删除了,如果我们要想删除下一条记录,怎么办呢?我在跟贴里再告诉大家,这样做不是故弄弦虚,是为了让大家更好看到操作步骤,这样就不混乱。


Action()
{

    lr_start_transaction("删除任务");

    web_reg_save_param("TASKID",
      "LB=\"taskId\":\"",
      "RB=\",\"taskName\"",
      "Ord=1",
      "Search=Body",
      LAST);

\\下面是第一个web_submit_data()
   web_submit_data("maintainTaskAC!changeTaskState.action", \\第一个web_submit_data
      "Action=http://s.sipo/neusipo/siposearch/maintainTaskAC!changeTaskState.action",
      "Method=POST",
      "RecContentType=application/json",
      "Referer=http://s.sipo/neusipo/siposearch/direct_login_success.action#",
      "Snapshot=t8.inf",
      "Mode=HTML",
      ITEMDATA,
      "Name=submit-type","Value=ajax",ENDITEM,
      "Name=taskInfo", "Value={\"taskId\":\"7c1545c2404e4f0bb748da943f3a4bca\",\"deleteFlag\":true}", ENDITEM, \\将“7c1545c2404e4f0bb748da943f3a4bca”用TASKID参数化,运行后,TASKID变成空值,进一步说明,这条记录已经被删除了,是一条不存在的数据
      "Name=ess.bizlog.modulelevel", "Value=102.10201.1020105", ENDITEM,
      LAST);
\\下面是第二个web_submit_data()
    web_submit_data("showSearchTaskListAC!showSearchTaskListByDirect.action_2", \\第二个web_submit_data
      "Action=http://s.sipo/neusipo/siposearch/showSearchTaskListAC!showSearchTaskListByDirect.action",
      "Method=POST",
      "RecContentType=application/json",
      "Referer=http://s.sipo/neusipo/siposearch/direct_login_success.action#",
      "Snapshot=t9.inf",
      "Mode=HTML",
      ITEMDATA,
      "Name=start", "Value=0", ENDITEM,
      "Name=limit", "Value=20", ENDITEM,
      "Name=ess.bizlog.modulelevel", "Value=102.10201.1020101", ENDITEM,
      LAST);

       lr_end_transaction("删除任务",LR_AUTO);

    return 0;
}

flyven 发表于 2010-11-18 11:02:07

本帖最后由 flyven 于 2010-11-18 11:11 编辑

解决方法:

将web_reg_save_param()放到第二个web_submit_data()前,运行,发现TASKID找了一个值,这个值跟上次找到的值不一样,说明这个值就是下一条记录的标志,那么要删除的就是这条,但是删除操作的脚本是第一个web_submit_data(),怎么办?那就将第一个web_submit_data()放到第二个web_submit_data()后面,这样就OK了,关联上了,删除也有了,先关联后删除,调整后的脚本就如下:
Action()
{

    lr_start_transaction("删除任务");

    web_reg_save_param("TASKID",
      "LB=\"taskId\":\"",
      "RB=\",\"taskName\"",
      "Ord=1",
      "Search=Body",
      LAST);


\\下面是第二个web_submit_data()
    web_submit_data("showSearchTaskListAC!showSearchTaskListByDirect.action_2",
      "Action=http://s.sipo/neusipo/siposearch/showSearchTaskListAC!showSearchTaskListByDirect.action",
      "Method=POST",
      "RecContentType=application/json",
      "Referer=http://s.sipo/neusipo/siposearch/direct_login_success.action#",
      "Snapshot=t9.inf",
      "Mode=HTML",
      ITEMDATA,
      "Name=start", "Value=0", ENDITEM,
      "Name=limit", "Value=20", ENDITEM,
      "Name=ess.bizlog.modulelevel", "Value=102.10201.1020101", ENDITEM,
      LAST);

\\下面是第一个web_submit_data()

    web_submit_data("maintainTaskAC!changeTaskState.action",
      "Action=http://s.sipo/neusipo/siposearch/maintainTaskAC!changeTaskState.action",
      "Method=POST",
      "RecContentType=application/json",
      "Referer=http://s.sipo/neusipo/siposearch/direct_login_success.action#",
      "Snapshot=t8.inf",
      "Mode=HTML",
      ITEMDATA,
      "Name=submit-type","Value=ajax",ENDITEM,
      "Name=taskInfo", "Value={\"taskId\":\"{TASKID}\",\"deleteFlag\":true}", ENDITEM, //7c1545c2404e4f0bb748da943f3a4bc用TASKID参数化
      "Name=ess.bizlog.modulelevel", "Value=102.10201.1020105", ENDITEM,
      LAST);

    lr_end_transaction("删除任务",LR_AUTO);

    return 0;
}

flyven 发表于 2010-11-18 11:18:27

本帖最后由 flyven 于 2010-11-18 11:40 编辑

同志们,看完后要给出评论呀,特别是有什么想法或以前也碰到过似的问题,请大家共享出来,只有共享知识,大家才能进步

msnshow 发表于 2010-11-19 21:42:46

原理很简单,通过关联函数从要删除的对像的列表找到这个对像,然后再删除就OK了
页: [1]
查看完整版本: 关于删除操作相关的web_reg_save_param()的手工关联