起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7584|回复: 5

[结贴] 回调反复执行是什么原因

[复制链接]

10

主题

35

帖子

135

积分

初级会员

Rank: 2

积分
135
QQ
发表于 2021-10-22 16:22:42 | 显示全部楼层 |阅读模式
ecmActivity.mainDataBeforeSave = function(event){
        var dateStr = formatDate(new Date().getTime());
        var date= new Date(Date.parse(dateStr.replace(/-/g,   "/")));
    var id = event.source.getCurrentID();
    var mainData = justep.xbl('mainData');
    var entityType = mainData.getValue("ENTITY_TYPE", id);
    var wmsCode = mainData.getValue("WMS_CODE", id);
    var options = {};
        var param = new justep.Request.ActionParam();
        options.contentType = 'application/json';
        options.process = justep.Context.getCurrentProcess();
        options.activity = justep.Context.getCurrentActivity();
        options.dataType = "json";
        param.setString('id', id);
        options.parameters = param;
        options.action = "isExistByIdRecordAction";
        options.callback = function(result) {
                if (result.state == true) {
                    if(result.response.isExistFlag) {// 修改
                         // 查看类型,若类型为某一类型则不允许修改
                        if(entityType == 8) {
                                alert('部门类型数据不允许修改');
                            return;
                        };
                         // 校验对应类型、WMS编码、id数据是否存在
                            var options = {};
                                var param = new justep.Request.ActionParam();
                                options.contentType = 'application/json';
                                options.process = justep.Context.getCurrentProcess();
                                options.activity = justep.Context.getCurrentActivity();
                                options.dataType = "json";
                                param.setInteger('entityType', entityType);
                                param.setString('wmsCode', wmsCode);
                                param.setString("id", id);
                                options.parameters = param;
                                options.action = "isExistRecordForUpdateAction";
                                options.callback = function(result) {
                                        if (result.state == true) {
                                             isExistFlagForUpdate = result.response.isExistFlag;
                                             if (isExistFlagForUpdate) {
                                             alert('存在同类型、同WMS编码的数据不允许修改,请重新输入');
                                             return;
                                         }
                                         // 不存在则进行下一步操作,修改之前设置相应值后保存、刷新
//                                             mainData.setValue("START_TIME", date, id);
                                         mainData.setValue("STATE", 1, id);
                                         mainData.setValue("WMS_ID", '1', id);
                                         mainData.setValue("ERP_ID", '1', id);
                                        
                                         mainData.saveData();
                                         mainData.refreshData();
                                        }
                                };
                                justep.Request.sendBizRequest2(options);
                    } else {// 新增
                        // 校验对应类型、WMS编码数据是否存在
                            var options = {};
                            var param = new justep.Request.ActionParam();
                            options.contentType = 'application/json';
                            options.process = justep.Context.getCurrentProcess();
                            options.activity = justep.Context.getCurrentActivity();
                            options.dataType = "json";
                            param.setInteger('entityType', entityType);
                            param.setString('wmsCode', wmsCode);
                            options.parameters = param;
                            options.action = "isExistRecordAction";
                            options.callback = function(result) {
                                    if (result.state == true) {
                                        isExistFlagForCreate = result.response.isExistFlag;
                                        if (isExistFlagForCreate) {
                                             alert('存在同类型、同WMS编码的数据不允许新增,请重新输入');
                                             return;
                                         }
                                         // 不存在则进行下一步操作,新增之前设置相应值后保存、刷新
//                                         mainData.setValue("CREATED_TIME", date, id);
//                                         mainData.setValue("START_TIME", date, id);
                                         mainData.setValue("STATE", 1, id);
                                         mainData.setValue("WMS_ID", '1', id);
                                         mainData.setValue("ERP_ID", '1', id);
                                        
                                         mainData.saveData();
                                         mainData.refreshData();
                                    }
                            }
                            justep.Request.sendBizRequest2(options);
                    }
                }
        };
        justep.Request.sendBizRequest2(options);
};

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2021-10-26 16:46:41 | 显示全部楼层
本来就是在保存前事件中调用的action,在action的回调中再调用保存就又会执行保存前事件生成了死循环了
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

10

主题

35

帖子

135

积分

初级会员

Rank: 2

积分
135
QQ
 楼主| 发表于 2021-10-28 16:16:52 | 显示全部楼层
jishuang 发表于 2021-10-26 16:46
本来就是在保存前事件中调用的action,在action的回调中再调用保存就又会执行保存前事件生成了死循环了 ...

感谢解答,但是我是直接接管了保存方法啊,并不是保存前的事件,只是懒得改函数名,就挺费解
1635408860(1).png
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2021-10-29 17:38:36 | 显示全部楼层
F12打开浏览器的开发人员调试工具,看请求的具体堆栈看代码具体从什么地方调入的
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

10

主题

35

帖子

135

积分

初级会员

Rank: 2

积分
135
QQ
 楼主| 发表于 2021-11-2 09:54:53 | 显示全部楼层
谢谢已解决,发现直接这样接管Data的保存方法是不可以的,添加个按钮在按钮的点击事件中处理就可以了
回复 支持 反对

使用道具 举报

33

主题

373

帖子

916

积分

高级会员

Rank: 4

积分
916
QQ
发表于 2021-12-8 16:24:32 | 显示全部楼层
学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-3 14:33 , Processed in 0.080460 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表