数据操作相关流程的日志记录经验分享

项目简要介绍

主要流程为从 OA 系统流程中获取数据,进入另外一个系统进行业务处理,最后在 OA 流程中根据处理结果输入审批意见,并提交 OA 审批流程。

用户要求有严格的数据准确性,避免流程漏处理

对此,进行了一些数据日志记录

首先将 OA 流程中的待处理数据保存到全局变量后同时写入到 EXCEL 文件:
数据操作相关流程的日志记录经验分享

当业务系统处理成功后,将操作日志写入数据库日志表中。
数据操作相关流程的日志记录经验分享

结合用户方的报表系统,对两份数据生成匹配报表,当数据库操作成功日志与待处理数据日志存在无法匹配的值时,用户手动运行流程的后半部分,从 EXCEL 读取数据再次进行业务处理

因为使用的是 MS SQL,简单的手写了数据库操作代码,如下:
def conn(addr,count,password,dbname):
connect = pymssql.connect(addr,count,password,dbname) #服务器名, 账户, 密码, 数据库名
if connect:
print(“数据库连接成功!”)
return connect

connect = conn(‘XX.XXX.XXX.XXX’, ‘XXXX’, ‘XXXX’, ‘XXXXX’)
cursor = connect.cursor() #创建一个游标对象,python 里的 sql 语句都要通过 cursor 来执行

flowid = ‘xxxxxx’ # 当前流程编号
status = self.status # 运行状态
stime = self.begintime # 流程开始运行时间
etime = self.endtime # 流程运行结束时间
if status == ‘S’:
msg = ‘{},{}’.format() # 运行信息
else:
msg = ‘{},{}’.format()

#插入运行日志记录
cursor.execute(“INSERT INTO FLOW_DETAIL (FLOWID,STATUS,MSG,BTIME,ETIME) VALUES(‘{0}’,‘{1}’,‘{2}’,‘{3}’,‘{4}’)”.format(flowid,status,msg,stime,etime))

connect.commit() #提交
cursor.close() #关闭游标
connect.close() #关闭连接