使用插件开发,保存付款单时报错 接口报错,生成【付款单】需要进行支付准入注册,未进行支付准入注册时,不允许生成资金业务单

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

使用插件开发,保存付款单时报错
接口报错,生成【付款单】需要进行支付准入注册,未进行支付准入注册时,不允许生成资金业务单

引入支付准入的原因 通常,当一个应用app从源系统A获取数据后调用目标系统B提供的api接口写入业务数据, 一般分为如下几个步骤: 1、 数据适配: 应用app从源系统A直接或间接获取业务数据后需要将数据进行转换以适配B系统提供的api接口。 2、 唯一性映射:应用app必须将转换后的源数据唯一的映射为目标数据,即源单1 -> 目标单1。为步骤3的重复性校验做好准备。 3、 重复性校验: 应用app调用B系统提供的api接口保存数据前, 必须校验源数据是否已经在目标系统B存在, 防止源系统A的同一份数据在B系统出现多份, 造成业务混乱。 4、 保存数据。 对于步骤3的校验, 可能会有多种方案, 但基本可以分为客户端校验和服务端校验。 但是如果校验是放在客户端(应用app)而不是服务端(目标系统B), 则需要服务端提供个性化的数据查询接口来确定从源系统A来的数据在目标系统B中是否存在,以免造成业务数据重复(协调、开发都是成本)。但客户端防重校验方案的一个重大缺陷是:无法真正解决数据在传输的过程中由于断网或并发等原因造成的业务数据在服务端重复的问题。而旗舰版的支付准入和支付防重本质上是一种服务端的通用数据防重校验手段,更利于前述问题的解决,是大大优于客户端校验的一种解决方案。 “支付准入”定义了从源单到目标单的一种映射关系, 对应了上述的步骤2。而“支付防重”则定义了对目标单的校验方式, 对应了上述的步骤3。 支付准入设置 1、 菜单:财务会计->出纳管理->支付安全设置->支付准入 2、 新建“支付准入”单据。 ![1.webp](/download/0100363ce9734ac04a369016ef1b614a77c7.webp) 1、 选择“自定义源单”。 2、 填写“自定义实体”: 对应源系统的单据名,在自定义插件里会用到这个字段, 所以要简单明确且使用英文。 3、 目标存储的源单唯一主键: 源单唯一主键,自定义插件创建单据实体的时候需要给值, 目前数据类型必须是整数。(外部系统的单据ID-ida) 4、 自定义源单id: 源单单头id、源单分录id,标识源单唯一主键的来源。(旗舰的单据ID) 5、 目标关联字段: 选自目标单的单据头或单据体, 要具有唯一性。 6、 其他参数参照配置。 支付防重设置 1、 菜单:财务会计->出纳管理->支付安全设置->支付防重。 2、 新建“支付防重”单据。 ![2.webp](/download/01009fb33c74582d445e95f0e88a2f6a9b15.webp) 插件设置 关键插件代码入下: 1) 根据api创建单据实体, 需要特别赋值的字段有支付准入的“目标存储的源单唯一主键”和支付防重配置的“源单唯一值保存字段”(如果不按照支付链路防重) 启用支付链路时:paybillObject.setValue(“目标存储的源单唯一主键”, 字段值); 不启用支付链路,使用源单唯一值保存字段时:paybillObject.setValue(“源单唯一值保存字段”, 字段值); 以上需要替换为实际的字段和值。 PS: 1. 目标存储的源单唯一主键:例如旗舰付款单存上游单据id的字段sourcebillid 2. 源单唯一值保存字段:例如在旗舰付款单上选择sourcebillid保存外部系统单据唯一值 2) 自定义插件的保存操作的操作选项选项 OperateOption option = OperateOption.create(); option.setVariableValue("customsign", "paybillfromk3cloud"); //支付准入的源单自定义标识 OperationResult operateResult = OperationServiceHelper.executeOperate("save", "cas_paybill", new DynamicObject[] {paybillObjects}, option); 对于openapi, 配置参考如下图: ![aaa.webp](/download/01001df23306b3d741ce8e22955496086f06.webp) **注意:“目标存储的源单唯一主键”和“源单唯一值保存字段”必须为用户扩展字段, 不能使用可能被其他业务使用的字段,因为不同业务使用同一个字段可能造成数据互相被串改。切记!!!**

使用插件开发,保存付款单时报错 接口报错,生成【付款单】需要进行支付准入注册,未进行支付准入注册时,不允许生成资金业务单

引入支付准入的原因通常,当一个应用app从源系统A获取数据后调用目标系统B提供的api接口写入业务数据, 一般分为如下几个步骤:1、 数据适...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息