WebAPI对接分步式调入单BOM版本问题处理案例

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

WebAPI对接分步式调入单BOM版本问题处理案例

一、【业务问题】

第三方系统通过星空系统WebAPI对接分步式调出单、分步式调入单,保存分步式调出单,物料启用了BOM且系统配置有该物料清单,默认会携带一个最新的bom版本赋值到分步式调出单的BOM版本字段。通过接口保存生成的分步式调入单如何自动调用最新的bom版本号,当前写入分步式调入单保存提示"调出物料启用BOM管理,BOM不允许为空"


image.webp


二、【分析解决】

系统的设计中分步式调入单不允许手工新增,均是由分步式调出单下推生成,由于上游分步式调出单针对调入调出的数据都已填写完整,下推分步式调出,通过单据转换的字段映射携带,BOM相关赋值没有问题。客户直接对接写入分步式调入单,按理说数据包中调出调入BOM都有值,调用保存依然提示"调出BOM为空"。


分步式调出单插件赋值逻辑:物料 --值更新触发--> 加载,赋值调出BOM, 物料 --值更新触发--> 同步赋值调入物料 --值更新触发--> 加载,赋值调入BOM


参考分步式调出单的赋值逻辑,分析定位问题,查看分步式调入单的表单插件,要满足BOM的赋值,几个地方需要做修改

反编译组件Kingdee.K3.SCM.Stock.Business.PlugIn.dll,定位分步式调入单表单插件

image.webp


调试分析定位问题,查看分步式调入单的表单插件,要满足BOM的赋值,几个地方需要做修改。

1、物料赋值时,默认会触发对BOM版本的赋值,在BOM版本添加值更新,触发调出BOM的赋值

image.webp


调用报错,未解决问题。定位调入物料配置有值更新,导致调出BOM被清空,将值更新服务修改为"引入和WEB API禁用"

image.webp


调用报错,未解决问题。发现DataChanged事件中,this.View.Model.SetValue("FBOMID")操作没有触发"BOM版本"字段的值更新,二开表单插件,通过this.View.InvokeFieldUpdateService("FBOMID", e.Row)强制触发字段更新服务

image.webp

import clr
clr.AddReference("System")
clr.AddReference("System.Core")
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.K3.SCM.Business")

from System import *
from System import StringComparison
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
from Kingdee.K3.SCM.Business import *

def DataChanged(e):
    if e.Field.Key.Equals("FMATERIALID", StringComparison.OrdinalIgnoreCase):
        bomOrgId = 0
        bomOrgIdObj = this.View.Model.GetValue("FStockOrgId")
        if bomOrgIdObj != None:
            bomOrgId = Convert.ToInt64(bomOrgIdObj["Id"])
            materialObj = this.View.Model.GetValue("FMATERIALID", e.Row)
            this.View.Model.SetValue("FBOMID", SCMCommon.GetBomDefaultValueByMaterial(this.Context, materialObj, 0, False, bomOrgId), e.Row)
            this.View.InvokeFieldUpdateService("FBOMID", e.Row)



说明:

1、系统的设计中分步式调入单不允许手工新增,必须有源单信息,对接API时FSTKTSTKRANSFERINENTRY_Link需要对应赋值

BOM版本赋值触发值更新.rar

WebAPI对接分步式调入单BOM版本问题处理案例

一、【业务问题】第三方系统通过星空系统WebAPI对接分步式调出单、分步式调入单,保存分步式调出单,物料启用了BOM且系统配置有该物料清单...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息