1/7用友股份-LE支持服务业务本部产品方案--《参照合同做销售订单不回写问题》建立日期:2013-07-01修改日期:xxxx-xx-xx文档属性:客户文控编号:LE-DY-CP-2013-05282/7文档控制创建记录适用范围审阅人日期审阅签字所属部门发布范围内部员工伙伴客户发布人姓名所属部门发布时间日期作者所属部门邮件地址版本2013-07-01徐建军产品支持部V1.0版本领域模块备注3/7目录参照合同做销售订单不回写问题............................................................................4一、问题描述............................................................................................................4二、问题分析及解决................................................................................................54/7参照合同做销售订单不回写问题一、问题描述描述如下:销售合同类型定义里的订单控制方式设置了:控制数量和金额。但发现这个控制失效了,订单可以超合同数量金额生成。销售合同都设置了控制数量或者控制数量和金额,但是做销售订单却可以超出合同数量与总额,截图如下5/7二、问题分析及解决这个问题,在标准环境中是没有问题的,于是将客户的代码和数据要过来恢复环境来看这个问题,发现在合同的执行情况中订单的执行数量为0?难道订单没有回写合同,这不应该出现,供应链单据上下游的传递和回写比较严格,这种数据不回写肯定是有问题的,求助与开发发现,6/7客户改过销售合同(Z4)到销售订单(30)的数据交换,在路径nchome\modules\so\META-INF\var\classes\nc\bs\pf\changedir下会有文件CHGZ4TO30.class在这个文件中可以发现,没有ct_managebid字段的信息,即合同的表体id没有传递到订单表体的pk_ct_manage_b字段上,即合同和订单的关联关系断开了,这也就导致了订单的数量、金额数据没有回写到合同的执行数量、金额上。后续测试发现,这竟然是个产品bug,即一旦在前台修改Z4到30的数据交换,在生成的新的交换文件中就会丢失"B_ct_managebid->B_pk_ct_manage_b"这个传递,请教开发后提供了如下脚本:insertintoDAP_DEFITEM(ATTRNAME,DR,HEADFLAG,ITEMNAME,ITEMTYPE,PK_BILLTYPE,PK_VOITEM,RESOURCEID,TS,PK_BDINFO,DESCRIPTION)values('ct_managebid',0,'N','合同行ID',0,'30','0001AA1000000zjhJY8R',null,'2011-06-1722:57:12',null,null);7/7在执行了这个脚本后,将一下路径的文件删除,再去修改Z4到30的数据交换即可。路径:modules\so\META-INF\var\classes\nc\bs\pf\changedir里面的class文件modules\so\client\extension\classes\nc\ui\pf\changedir里面的class文件注:此脚本为56通版问题,目前我已经有3个项目遇到这种问题了。