nc二次开发作为国内软件的短板 在此补充 给其他正在挠头的小伙伴

此次单据修改开发入坑一周 终于出坑

单据执行动作

Object processAction_update = iIplatFormEntry_a.processAction("WRITE", ic_transOutHVO.getVtrantypecode(), null, transOutVO_a,null, null);

一般修改的时候需要把vo的状态 status 设置为1

注意  单据类型 

public String out(String operation,String orderform){///4YJSONObject resultJson=new JSONObject();JSONObject paramJson = JSON.parseObject(orderform);String vbillcode = paramJson.getString("vbillcode");//出库单好try {BaseDAO bd = new BaseDAO();nc.vo.ic.m4y.entity.TransOutHeadVO ic_transOutHVO = new nc.vo.ic.m4y.entity.TransOutHeadVO();//ic_transOutHVO = (nc.vo.ic.m4y.entity.TransOutHeadVO) bd.executeQuery("select * from ic_transout_h where dr=0 and vbillcode ='"+vbillcode+"'", new BeanProcessor(nc.vo.ic.m4y.entity.TransOutHeadVO.class));if (ic_transOutHVO != null){JSONArray bjsonarr = new JSONArray();String ic_transout_pk = ic_transOutHVO.getAttributeValue("cgeneralhid").toString();//主键//SuperVO[] ic_transOutBVO = HYPubBO_Client.queryByCondition(nc.vo.ic.m4y.entity.TransOutBodyVO.class,  " cgeneralhid = '"+ic_transout_pk+"'");List<nc.vo.ic.m4y.entity.TransOutBodyVO> ic_transOutBList = (List<nc.vo.ic.m4y.entity.TransOutBodyVO>) bd.executeQuery("select * from ic_transout_b where dr=0 and  cgeneralhid ='"+ic_transout_pk+"'", new BeanListProcessor(nc.vo.ic.m4y.entity.TransOutBodyVO.class));//给交换平台数据准备List<nc.vo.ic.m4y.entity.TransOutBodyVO> ic_transOutBList_new = new ArrayList<nc.vo.ic.m4y.entity.TransOutBodyVO>();JSONArray body = (JSONArray) paramJson.get("body");for (int j = 0;j<ic_transOutBList.size();j++) {nc.vo.ic.m4y.entity.TransOutBodyVO transOutBodyVO = ic_transOutBList.get(j);for (int i = 0;i<body.size();i++){JSONObject tmpb = body.getJSONObject(i);String crowno = tmpb.getString("crowno") ==null ?"":tmpb.getString("crowno"); // 行号if(transOutBodyVO.getCrowno().equals(crowno)){String nnum  = tmpb.getString("nnum") ==null ?"":tmpb.getString("nnum"); //实发主数量nc.vo.ic.m4y.entity.TransOutBodyVO transOut_new = new nc.vo.ic.m4y.entity.TransOutBodyVO();transOut_new = transOutBodyVO;if(StringUtils.isNotBlank(nnum)){UFDouble d_nnum = new UFDouble(Double.parseDouble(nnum));transOut_new.setNnum(d_nnum);transOut_new.setNassistnum(d_nnum);transOut_new.setStatus(1);transOut_new.setDbizdate(new UFDate());//transOut_new.setTs(new UFDateTime());ic_transOutBList_new.add(transOut_new);}}}}try {IplatFormEntry iIplatFormEntry_a = (IplatFormEntry) NCLocator.getInstance().lookup(IplatFormEntry.class.getName());InvocationInfoProxy.getInstance().setGroupId("00013910000000000N4S"); //这个字段很重要InvocationInfoProxy.getInstance().setUserId(ic_transOutHVO.getCreator());//用户nc.vo.ic.m4y.entity.TransOutBodyVO[] outsvo_a = new nc.vo.ic.m4y.entity.TransOutBodyVO[ic_transOutBList.size()];AggregatedValueObject transOutVO_a = new nc.vo.ic.m4y.entity.TransOutVO();ic_transOutHVO.setStatus(1);transOutVO_a.setParentVO(ic_transOutHVO);transOutVO_a.setChildrenVO(ic_transOutBList_new.toArray(outsvo_a));//调拨出库单  执行动作 ,单据类型 , null ,billvo,null, 环境  , WRITE   PUSHOUTSAVE  推式保存(实收) 4Y-Cxx-002 vtrantypecode Object processAction_update = iIplatFormEntry_a.processAction("WRITE", ic_transOutHVO.getVtrantypecode(), null, transOutVO_a,null, null);System.out.println(processAction_update);} catch (Exception e1) {e1.printStackTrace();resultJson.put("$successful", "N");resultJson.put("sendresult", e1.getMessage());return resultJson.toString();}//开始签字nc.vo.ic.m4y.entity.TransOutBodyVO[] insvo = new nc.vo.ic.m4y.entity.TransOutBodyVO[ic_transOutBList.size()];List<nc.vo.ic.m4y.entity.TransOutBodyVO> ic_transInBList2 = (List<nc.vo.ic.m4y.entity.TransOutBodyVO>) bd.executeQuery("select * from ic_transout_b where dr=0 and cgeneralhid ='"+ic_transout_pk+"'", new BeanListProcessor(nc.vo.ic.m4y.entity.TransOutBodyVO.class));IplatFormEntry iIplatFormEntry = (IplatFormEntry) NCLocator.getInstance().lookup(IplatFormEntry.class.getName());//这是集团ID 一般每个表都有 随便找 pk_group 字段InvocationInfoProxy.getInstance().setGroupId("00013910000000000N4S"); //这个字段很重要AggregatedValueObject transOutVO= new nc.vo.ic.m4y.entity.TransOutVO();transOutVO.setParentVO(ic_transOutHVO);transOutVO.setChildrenVO(ic_transInBList2.toArray(insvo));HashMap map = new HashMap();map.put("notechecked", "notechecked");//签字动作 ,签字单据类型 , null ,billvo,null, 环境  ,Object processAction = iIplatFormEntry.processAction("SIGN", "4Y", null, transOutVO,null, map);//headresultJson.put("vbillcode",vbillcode);//boydList<nc.vo.ic.m4y.entity.TransOutBodyVO> ic_transinBList = (List<nc.vo.ic.m4y.entity.TransOutBodyVO>) bd.executeQuery("select * from ic_transout_b where dr=0 and  cgeneralhid ='"+ic_transout_pk+"'", new BeanListProcessor(nc.vo.ic.m4y.entity.TransOutBodyVO.class));for (int i=0;i < ic_transinBList.size();i++){String crowno = (String) ic_transinBList.get(i).getAttributeValue("crowno") == null?"": ic_transinBList.get(i).getAttributeValue("crowno").toString() ;//行号//应收数量String nshouldassistnum = ic_transinBList.get(i).getAttributeValue("nshouldassistnum") == null?"": String.valueOf((UFDouble) ic_transinBList.get(i).getAttributeValue("nshouldassistnum"));//实收数量String nassistnum = ic_transinBList.get(i).getAttributeValue("nassistnum") == null?"": String.valueOf((UFDouble) ic_transinBList.get(i).getAttributeValue("nassistnum"));//bodyJSONObject bjson = new JSONObject();bjson.put("crowno",crowno);//行号bjson.put("nshouldassistnum",nshouldassistnum);//应收数量bjson.put("nassistnum",nassistnum);//实收数量bjsonarr.add(bjson);}if(null != ic_transinBList && ic_transinBList.size() > 0 ){resultJson.put("$successful", "Y");resultJson.put("sendresult", bjsonarr);}else{resultJson.put("$successful", "N");resultJson.put("sendresult", "无调拨出库单");}

祝你好运

NC63 后端通过单据执行动作 修改单据详细解读相关推荐

  1. SAP WM 确认TO单据的时候修改目的地Storage Bin

    SAP WM 确认TO单据的时候修改目的地Storage Bin SAP WM里创建TO单据的时候,SAP系统可以根据系统设置的参数和策略,自动建议目的地货架.而这些目的地货架,在仓库业务人员去上架的 ...

  2. linux条件表达式例子,Linux的Iptables命令的基本知识(三)-常用匹配条件示例和执行动作...

    上一期给大家简单讲解了Linux的Iptables命令的常用命令示例,本期给大家讲解一下Linux的Iptables命令的基本知识-常用匹配条件示例和执行动作. 五.常用匹配条件示例: 1.-i:流出 ...

  3. 如何通过插件携带第二个单据体到下游单据

    背景说明: K/3 Cloud 不支持在下推时,同时携带两个单据体的数据: 因此,需要在转换规则上,配置好携带主单据体: 而辅助单据体的数据,需要在插件中自行携带: 案例说明: 本案例,设计了两张单据 ...

  4. 操作系统例题:某文件系统中,针对每个文件,用户类别分为4类:安全管理员、文件主、文件主的伙伴、其他用户;访问权限分为5种:完全控制、执行、修改、读取、写入。若文件控制块中用二进制位串表示文件权限,为表

    题目 某文件系统中,针对每个文件,用户类别分为4类:安全管理员.文件主.文件主的伙伴.其他用户:访问权限分为5种:完全控制.执行.修改.读取.写入.若文件控制块中用二进制位串表示文件权限,为表示不同类 ...

  5. 在Safari里也能像Chrome里一样,通过执行js修改变量的值,在debugger里立即生效

    在Safari里也能像Chrome里一样,通过执行js修改变量的值,在debugger里立即生效. 和Chrome里的network tab一样,Safari里通过network request一样能 ...

  6. 金蝶k3单据编码规则_金蝶K3 Wise 用SQL生成单号(单据编号)及单据内码(单据ID) -...

    一生成各种单据的编号 详细实现过程参见存储过程p_BM_GetBillNo ICBillNo表存放所有单据的编码信息,其中FBillID用于p_BM_GetBillNo的第一个参数 以采购申请单为例, ...

  7. 金蝶K3 Wise 用SQL生成单号(单据编号)及单据内码(单据ID)

    很多开发会自己用数据库跟踪去分析实现原理或步进脚本其实大可不必这么麻烦, 因金蝶K3Wise后台数据库本身有自就有已写好的存储过程,我们可以直接调用的. 1.生成单据编号 --存储过程 p_BM_Ge ...

  8. EAS判断单据是否存在下游单据

    /** 单据是否存在下游单据*/@Overrideprotected boolean _isExistDownstreamBill(Context ctx, String id) throws BOS ...

  9. 金蝶云星空与金蝶云星空对接集成逐个单据查询打通审核单据

    金蝶云星空与金蝶云星空对接集成逐个单据查询打通审核单据 对接系统金蝶云星空 金蝶K/3Cloud结合当今先进管理理论和数十万家国内客户最佳应用实践,面向事业部制.多地点.多工厂等运营协同与管控型企业及 ...

最新文章

  1. SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM
  2. 几种常见的攻击方式扫盲(一)——NTP反射放大
  3. 9.STM32中对SysTick_Init()函数(sysTick_Config()、TimingDelay_Decrement()自定义)和Delay_us()的理解
  4. Kotlin实战指南十九:use 函数魔法
  5. 现代软件工程课件 需求分析 如何提出靠谱的项目建议 NABCD
  6. LeetCode 61. Rotate List
  7. HBase核心知识和应用案例
  8. 梯度、散度、旋度、拉普拉斯算子
  9. 图像处理叶片面积matlab,基于Matlab图像处理求植物叶片面积
  10. 由魅族16到Reno5新机的转变!绿厂凭这几点吸引了我
  11. springboot 发送邮件问题(阿里云企业邮箱)
  12. 如何配置 uboot
  13. Python Flask框架-开发简单博客-项目布局、应用设置
  14. 《JavaScript百炼成仙》续集01. let强者,竟恐怖如斯
  15. 我的世界(二)之奇点
  16. 转行程序员日记---2020-10-16【最近有点累】
  17. 耳机接口pin脚定义
  18. 聊一聊IT培训机构的那些事!
  19. 【我的Latex学习之路】转载自:E喵的LaTeX新手入门教程(1)准备篇
  20. 校园网自动登陆(河南科技学院)

热门文章

  1. Mybatis配置文件resultMap映射啥时候可写可不写?
  2. [转载] java常量池-字符串常量池、class常量池和运行时常量池
  3. composer 检查镜像_检查N元树中的镜像
  4. ruby 集合 分组_在Ruby中打印集合的元素
  5. gettimezone_Java日历getTimeZone()方法与示例
  6. win10虚拟网络服务器,win10 虚拟专用网络服务器配置
  7. scala中字符串计数_如何在Scala中创建一系列字符?
  8. Java ObjectInputStream readDouble()方法与示例
  9. Python获取硬件信息(硬盘序列号,CPU序列号)
  10. Kubernetes 部署 Ingress 控制器 Traefik v2.1