云之家消息Id查询Python脚本实现【分享】
金蝶云社区-云社区用户4u731234
云社区用户4u731234
2人赞赏了该文章 2711次浏览 未经作者许可,禁止转载编辑于2017年12月04日 23:48:51

写本帖子目的是为了快速定位金蝶云(原K/3 Cloud)发送云之家待办消息问题,达到用户可先自行分析的目的。

本帖子主要解决,金蝶云金蝶云工作流【待办任务】发送云之家待办消息Id查询,
整理了可直接配置使用的Python脚本排查脚本。

我们在处理金蝶云工作流【待办任务】时,
如果已经与云之家做了消息集成后,
可以在云之家业务审批公众号“待办通知”里面会收到待办提醒,
以方便我们快速及时的处理工作流任务,
极大的提高了处理工作流任务效率,
如下图。是收到的一条金蝶云的云之家消息待办消息提醒通知,

但有时流程已经发起了,本该发送云之家消息,云之家里面会收不到待办提醒,这时我们该如何排查呢?
最关键的一个节点就是金蝶云的待办任务云之家消息Id的查询,如果发送云之家消息提醒,金蝶云【待办任务】会需要先生成一个云之家的消息Id,会以这个消息Id发送给云之家,进行相关处理,包括待办转已办
如果【待办任务】信息数据库表中,有关联生成的云之家消息Id,一般说明就有向云之家发送过待办消息提醒。

实际查询云之家消息Id的运行的效果:
【信息中心】点击“待办任务”节点,选中一行待办任务记录,
点击菜单“云之家消息Id”既可以查询到生成的云之家消息id,会提示给出已经生成的云之家消息Id。

具体配置过程:
查询到“信息中心的_待办任务”,业务对象唯一标识:“WF_AssignmentBill”,


配置菜单:云之家消息Id,关键是增加的列表菜单Key判断,要与写的Python脚本中的菜单Key匹配“tbYZJMSGID”。


关键查询数据的Python脚本:

注意:这里的脚本保存,一般会出现如下提示,


提示原因是我们的脚本里有用到App层查询数据库的Kingdee.BOS.App.dll,
这个dll在BOS IDE设计时的目录是不存在的,
设计时可以忽略此异常消息提醒,
因为实际运行时服务端目录是存在此组件的,运行时会正常的,因此直接保存即可。

附上Python脚本:
[code]'''
YZJMSGID
说明:查询待办任务生成的云之家消息Id
by wanghl 2017-12-4
'''

clr.AddReference('Kingdee.BOS.App')
from Kingdee.BOS.App.Data import *

def BarItemClick(e):
if e.BarItemKey <> "tbYZJMSGID":
return;
if this.ListView.CurrentSelectedRowInfo == None:
this.View.ShowMessage("未选择数据行");
return;
assignId = this.ListView.CurrentSelectedRowInfo.PrimaryKeyValue;
sql = "select FYZJMSGID from T_WF_ASSIGN where FASSIGNID = '"+assignId+"'";
YZJMSGID = DBUtils.ExecuteScalar(this.Context, sql, None);
if YZJMSGID.strip() == "":
this.View.ShowMessage("未查询到云之家消息Id");
this.View.ShowMessage("生成的云之家消息Id: "+ YZJMSGID);[/code]