金蝶的事件python脚本触发主动写入到轻易云数据如何操作?
本文将介绍通过Python脚本,实现在金蝶点击按钮,对应的轻易云方案自动生成一条请求队列的方法。
1.启动金蝶的BOS设计器
2.通过云之家账号登录BOS设计器
3.创建应用
4.选择应用
5.选择单据模块
6.引入该目标单据
7.扩展并迁出表单
8.注册python脚本
点击编辑-批量设置字段属性
依次打开:表单属性-操作列表-选择需要实现该功能的按钮(或新建一个列表按钮)-编辑
依次打开:其他控制-服务插件-注册python脚本
填入以下内容并确认,确认语法报错提示,退回主界面保存;以下为python脚本,对于不同的方案,我们修改脚本中的轻易云HOST和方案ID即可,即QEASY_HOST
和QEASY_STRATEGY_ID
两个值。
# -*- coding: utf-8 -*-
# from Newtonsoft.Json import JsonConvert # SerializeObject
# from Newtonsoft.Json.Linq import *
# from Kingdee.BOS.ServiceHelper import *
# from System.Collections.Generic import List
# from Kingdee.BOS.App.Data import *
from System.IO import *
from System.Text import *
from System.Net import *
from System.Data import *
# from System import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Core import *
from Kingdee.BOS import *
import clr
# 添加对cloud插件开发的常用组件的引用
clr.AddReference('System')
clr.AddReference('System.Data')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
# clr.AddReference('Kingdee.BOS.App')
# clr.AddReference('Kingdee.BOS.ServiceHelper')
clr.AddReference('Newtonsoft.Json')
# 导入cloud基础库中的常用实体对象(分命名空间导入,不会递归导入)
# from System.String import *
# 开启debug调试消息
SHOW_DEBUG = True
# 轻易云集成平台服务器主机
QEASY_HOST = 'https://pro-service.qliang.cloud'
# 集成方案的ID
QEASY_STRATEGY_ID = ['97ac4289-616d-3d7-86a2-760', '97ac4289-66d-39d7-862-70','97a289-616d-3d7-86a2-7e0']
# 操作完成后需要弹出的提示
QEASY_MESSAGE = False
def OnPrepareOperationServiceOption(e):
e.SupportTransaction = True # 是否启动事务,默认true
e.SurportBatchTransaction = True # 是否支持批量处理,默认true
#字段预加载事件,这是一个非常必要使用的事件
#出于性能考虑,服务插件并不会加载单据完整的数据包,只有默认加载单据编号、单据ID等一些关键字段
#在插件中需要读取的其他字段信息,需要在此事件中先加载,方法也很简单。
#如果在后续事件中取单据字段时,报错提示字段标识不存在时,可以看是否在这里进行预加载
def OnPreparePropertys(e):
# e.FieldKeys.Add("字段标识");#这里使用的是字段标识,后面从数据包取值用的是绑定实体属性
# e.FieldKeys.Add("F_ZOHO_ID")
pass
def AfterExecuteOperationTransaction(e):
for STRATEGY_ID in QEASY_STRATEGY_ID:
url = QEASY_HOST + "/v2/open/"+STRATEGY_ID+'/dispatch-source'
HttpPost(url,'')
def HttpPost(Url, Content):
httpRequest = HttpWebRequest.Create(Url)
httpRequest.Method = "POST"
httpRequest.ContentType = "application/json"
httpRequest.Timeout = 1000 * 60 * 10
reqStream = httpRequest.GetRequestStream()
sContent = Content
bytes = Encoding.UTF8.GetBytes(sContent)
reqStream.Write(bytes, 0, bytes.Length)
reqStream.Flush()
repStream = httpRequest.GetResponse().GetResponseStream()
reader = StreamReader(repStream)
return ValidateResult(reader.ReadToEnd())
def ValidateResult(responseText):
s = ('{0}').format(responseText)
# if (s.find("response_error:")>=0):
# failText = s.TrimStart("response_error:".ToCharArray());
return s
可在方案的链接中获取到 QEASY_HOST
和 QEASY_STRATEGY_ID
,以测试方案的链接为例 https://pro.qliang.cloud/strategy/detail/260ccb96-46cc-39d4-b54d-fe67ce6f3fb1#BasicSummary
,其中 https://pro.qliang.cloud
为轻易云的HOST,路径的后半段为方案ID 260ccb96-46cc-39d4-b54d-fe67ce6f3fb1
(注意方案ID不包含网页的定位锚点 #BasicSummary
)
9.功能测试
2023-01-23 03:35:41 | |
2024-07-28 09:14:29 | |
2022-12-25 17:02:21 | |
2023-03-07 23:02:51 | |
2021-07-08 13:10:08 | |
2024-05-08 02:53:03 | |
2024-01-12 23:10:46 | |
2021-02-01 18:22:45 | |
2021-03-21 12:32:00 | |
2021-05-25 01:29:34 | |
2023-03-05 18:31:58 | |
2024-10-30 11:47:47 | |
2024-11-01 00:08:58 | |
2024-12-19 08:35:23 | |
2024-11-24 09:30:23 | |
2024-10-31 18:15:40 | |
2024-11-23 04:45:47 | |
2024-12-22 11:23:14 | |
2024-12-24 04:17:12 | |
2024-12-11 22:56:58 | |
2024-02-20 13:11:08 | |
2024-02-20 12:51:37 | |
2024-02-20 12:41:16 | |
2024-02-20 12:32:52 | |
2024-02-20 12:26:50 |
胡秀丛 15813570600
数据集成顾问 项目总监 她以卓越的数据集成专长,精通ERP、MES系统,以及数据中台的构建与优化。通过创新的一站式解决方案,她助力企业实现数据的无缝对接,提升业务流程效率,确保信息流通无障碍,为企业的数字化转型提供强有力的支持。
卢剑航 13760755942
数据集成专家 拥有十多年丰富的经验,擅长ERP、MES、数据中台、营销云中台等集成。他能够根据客户需求,为其提供一站式集成解决方案,帮助企业快速实现各类系统数据集成服务。
黄宏棵 13286997615
数据集成顾问 资深系统集成顾问,专长于ERP、电商OMS、钉钉及CRM系统。他能提供高效的集成方案,优化企业运营流程,提升业务效率和决策智能化。