在没有外部交换规则的情况下如何实现导入NC.doc
上传人:sy****28 上传时间:2024-09-11 格式:DOC 页数:5 大小:191KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

在没有外部交换规则的情况下如何实现导入NC.doc

在没有外部交换规则的情况下如何实现导入NC.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

在没有外部交换规则的情况下如何实现导入NC需求背景某项目需求,Nc供应链与第3方物流系统接口。物流系统发生封仓业务,需要产生Nc相应的冻结。相应的解仓业务,需要产生Nc的解冻。难点黑盒子,入口在哪?直接跟SQL语句,然后直接操作数据表。正确性风险太大。标准产品的逻辑分支成百上千,通过跟踪SQL语句的方式,只是其中的一种。以此作为统一标准,风险巨大。且测试时,只会测试关心的内容,对后续的影响难以估计。有没有一种办法,切入三层结构的展现层与中间层之间。类似前台调用完整的产品逻辑步骤定位UI类。步骤1:通过客户化/二次开发工具/UAP集成开发工具步骤二:组件导航/新建业务组件/选择由已有节点创建点击确定后,将在业务组件导航树中,将产生节点“冻结/解冻/校验库存”。右键“切换到资源管理区”进入资源管理页面,选择Ui组装/如下图:如上图:我们找到了Ui类名。另外一种快速定位Ui类名的方法:找到相应功能节点,查看[对应文件名或控件名](2)确定实现代码骨架这一步比较痛苦。查看源码或反编译。查看相应的前后台逻辑。如冻结功能:跟踪到点击按钮关键的方法如下图分析:整体分为两部分。1:准备前后台传递的Vo对象集合;2:调用冻结逻辑。考虑到事务的完整性。前台代码,只应该1个方法,涉及到具体的DML操作逻辑。推断afterFreeze,不是核心方法。经查看代码,证实其只是做一些更新Ui的善后动作。至此:生成Nc冻结的代码骨架有了:准备FreezeVO集合调用FreezeHelper.freeze()方法。(疑问:对外提供的服务或者定时调度的实现逻辑大多是private后台的代码,能调用Ui的代码吗?FreezeHelper类课时Ui的)。别急:试试再说。(3)代码具体实现准备Freezevo,看起来简单。其实不容易,要了解清楚标准产品的Vo是怎么产生的?各个字段的含义是什么?读反编译代码,可能难度就更大了。如上功能,前台Vo是通过界面功能,可冻结量查询产生的Vo,经过用户Ui交互后至此:调整代码骨架为:按外部传入的公司,仓库,存货,执行可冻结量查询。FreezeHelper.query(voCond);将返回结果,模拟前台录入冻结量的操作,设置vo的冻结量。调用:冻结逻辑:FreezeHelper.freeze()注意:设置vo的状态为新增。(原有状态默认为未改变,导致无效)。这个设置,我查了近3个小时的代码才发现问题。经验证。Ok;大功告成。