法人购销流程自动化生成采购订单时校验物料是否分配给了目标组织
@[TOC](目录)
### 背景
法人组织间购销自动化流程在生成下游单据(例如采购订单)时,当所有的物料都未分配给目标组织时不会生成下游单据,并且会提示采购订单保存失败,而当只存在部分物料分配给了目标组织时,自动生成成功,并生成了部分符合条件的物料的分录。有客户想强制控制要么全部生成,要么就都不生成。
### 方案
鉴于法人组织间购销自动化流程在自动生成采购订单时不存在分录合并拆分的情况,因此如果想校验当前单据是否全部生成目标单据的话,只需要校验自动生成的下游单据的分录行数是否等于上游单据的分录行数即可。
### 步骤(以销售订单审核自动生成采购订单为例)
1. **销售订单**上新增一个整数字段,标识、名称、字段名随意,但尽量取有意义的名字,然后可以默认不可见和锁定
![1、销售订单新增行数字段.webp](/download/0100f9985a2e97fb4741bf6c0dde6def3c37.webp)
2. (建议使用第3步注册插件方式)~~销售订单保存按钮计算销售明细行数~~ ==(两个保存按钮都需要加)==
![2、计算明细行数.webp](/download/0100db6d38904f8040e7b10d8f37fe836811.webp)
![3、两个保存按钮都要同步加.webp](/download/0100fcee940c7a4c409c8a87e2b1838bdada.webp)
==计算销售明细行数加好后一定要上移到保存操作之前,只有这样计算的行数数据才会保存==
3. 销售订单保存操作通过Python脚本计算分录行数(推荐)
有很多客户不会点击保存按钮,而是直接点击提交按钮。上面第2的方式无法避免这种情况,建议用第3点这种插件方式处理
```python
import clr
clr.AddReference('System')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
from System import *
from Kingdee.BOS.Core import *
def OnPreparePropertys(e):
e.FieldKeys.Add("F_SXIM_Integer")
def BeginOperationTransaction(e):
if e.DataEntitys == None:
return
for entity in e.DataEntitys:
entity["F_SXIM_Integer"] = len(entity["SaleOrderEntry"])
```
4. **采购订单**上同样新增一个整数字段,标识、名称、字段名随意,但尽量取有意义的名字,然后可以默认不可见和锁定
![4、采购订单同样增加行数.webp](/download/0100dc155036c38741afbd85eb9ad9fb044f.webp)
5. **单据转换**字段映射做好这两个字段的映射
![5、单据转换做好映射.webp](/download/0100e762607305ec400d8dc78ae21b29e4a0.webp)
6. **采购订单**保存操作上增加一个**校验规则**
![6、采购订单新增保存校验.webp](/download/0100e615623ffda04357a29e2418bde2e4b7.webp)
==设置前置条件==
![7、设置前置条件.webp](/download/01009993dc52c7864bcd9dd9ddebaca563d1.webp)
==设置校验检查公式==:FInteger <> len(filter(lambda x:x.FMaterialId<>null,FPOOrderEntry ))
![8、校验公式.webp](/download/0100ad3ecb233ab44d8382776edbb43c1e50.webp)
### 效果展示
1. 销售订单保存时自动计算明细行数
![9、销售订单保存触发行数计算.webp](/download/01001997fbcdfc2f4aefaa4dc15a78ac1f51.webp)
2. 采购订单**没加校验时**销售订单审核生成情况
![10、没加校验时是这样的.webp](/download/0100434469e310e74e07821ab10b9897bb58.webp)
![10-1没加校验会生成可行的两行.webp](/download/010095bc83865df94566922f52a11e76ee0d.webp)
==没加校验时四行销售订单会生成两行符合条件的采购订单==
3. **加了校验后的最终效果**
![11、审核时的提示.webp](/download/01002823768fe9ab482bb792628b50ebbb27.webp)
4. 也不会影响正常手工新增其他类型的采购订单
![12、手工正常做单正常.webp](/download/010014de26da79244db499b0a972a85d7016.webp)
**其他更多文章入口:**[https://vip.kingdee.com/link/s/lbRPP](https://vip.kingdee.com/link/s/lbRPP)
法人购销流程自动化生成采购订单时校验物料是否分配给了目标组织
@[TOC](目录)### 背景法人组织间购销自动化流程在生成下游单据(例如采购订单)时,当所有的物料都未分配给目标组织时不会生成下游单据,...
点击下载文档
本文2024-09-23 02:43:16发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-154267.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章