影刀RPA 流程结果的数据校验:从格式检查到业务逻辑验证

影刀RPA 流程结果的数据校验:从格式检查到业务逻辑验证 影刀RPA 流程结果的数据校验从格式检查到业务逻辑验证作者林焱什么情况用这个流程跑完了Excel也生成了数据看起来也正常——直到有人发现里面有负数金额、有重复订单、有2025年13月32日这种不存在的日期。流程不报错不等于结果正确。很多数据问题是静默的——流程顺利跑完了但数据是错的。你需要一套结果校验机制在数据对外使用之前把关。拼多多店群自动化报活动上架怎么做格式校验defvalidate_output_format(df):errors[]# 检查必填字段不为空required_cols[订单号,金额,日期]forcolinrequired_cols:ifcolnotindf.columns:errors.append(f缺少列:{col})else:empty_countdf[col].isna().sum()ifempty_count0:errors.append(f列{col}有{empty_count}个空值)# 检查数据类型if金额indf.columns:non_numericdf[pd.to_numeric(df[金额],errorscoerce).isna()]iflen(non_numeric)0:errors.append(f金额列有{len(non_numeric)}个非数字值)returnerrors业务逻辑校验defvalidate_business_rules(df):errors[]# 金额不能为负if金额indf.columns:negativedf[df[金额].astype(float)0]iflen(negative)0:errors.append(f发现{len(negative)}条负金额)# 日期合理性if日期indf.columns:futuredf[pd.to_datetime(df[日期])datetime.now()]iflen(future)0:errors.append(f发现{len(future)}条未来日期)# 唯一性if订单号indf.columns:dupesdf[df[订单号].duplicated()]iflen(dupes)0:errors.append(f发现{len(dupes)}条重复订单号)# 合计校验if金额indf.columnsandhasattr(df,expected_total):actual_totaldf[金额].astype(float).sum()ifabs(actual_total-df.expected_total)0.01:errors.append(f合计不匹配: 实际{actual_total}vs 预期{df.expected_total})returnerrors比对校验defcompare_with_previous(file_new,file_old):与上一次结果比对——异常波动检测df_newpd.read_excel(file_new)df_oldpd.read_excel(file_old)# 数量对比diff_pctabs(len(df_new)-len(df_old))/len(df_old)ifdiff_pct0.3:# 30%以上波动print(f⚠️ 数据量波动{diff_pct:.1%}:{len(df_old)}→{len(df_new)})有什么坑坑一校验太严格正常业务被误拦TEMU店群矩阵自动化运营核价报活动现象金额为0的免费商品被当成了异常。解决校验规则要区分一定是错的和可能有问题需要确认两级后者只告警不拦截。坑二校验代码本身有Bug现象校验代码的Bug导致正常数据被判定为异常流程白跑。解决校验逻辑本身也要测试——用一组包含各种边界情况的测试数据验证校验函数。总结结果校验的三个层次——格式对不对必填、类型→ 逻辑合不合理范围、唯一性→ 横向比一比与历史对比。上线前至少做格式校验和关键字段的业务逻辑校验。