本文讨论了供应链系统中“获取电子面单”动态表单与快递100和快递管家接口对接时遇到的字段长度差异问题。由于物流公司众多,接口返回字段可能存在差异,系统默认文本字段长度为50字符,一般能满足大部分客户需求。在极端情况下,超长字段可能导致获取成功但数据未保存的问题,建议通过查看日志并调整数据库字段长度来解决。
供应链领域的'获取电子面单'动态表单是星空对接快递100和快递管家接口的最主要窗口,由于快递100和快递管家接口对接的物流公司比较多,且一些功能或接口返回的字段各个物流公司都可能存在差异,目前星空通版无法感知每个字段的长度或差异有哪些。默认出厂设置时大部分文本字段都是50个长度,这种配置足以满足95%以上的客户情况,默认长度为50个字符的字段如下图1-1所示:
图1-1
在极端情况下,可能存在部分字段返回超长情况,这时就可能存在'获取电子面单'界面提示成功,但星空的电子面单基础资料没保存成功的情况(这种情况也可能是客户二开的字段超长,根据客户提单反馈,二开字段超长还是比较常见的)。默认情况下,电子面单是不会提示为什么失败的,因为这个快递100以及快递管家电子面单接口和星空集成时没有做成事务一致性, 至于是哪个字段超长呢?这时就需要参照论坛:https://vip.kingdee.com/article/261534670876342272 启用日志,然后重新用相同数据去获取电子面单,最后日志文件中有类似图1-2所示的记录:
图1-2
从上面的日志文件中可以看出是集包名称字段超长了(壹米滴答特定物流公司的特定场景才会报这错),此时可以打开BOS,找到电子面单基础资料中的集包名称字段,可以看到对应的数据库字段名为:FPKGNAME,如下图1-3所示:
图1-3
然后在数据库中执行语句(注意其中的NVARCHAR(300)和 FPKGNAME是按实际情况替换的,替换前也要在上图中改变下编辑长度):
-- 电子面单 基础资料-'集包名称'字段长度改大 EXEC p_AlterColumn 'T_SAL_KUAIDIBILL', 'FPKGNAME', 'NVARCHAR(300)', 'NOT NULL', '0100', ''' ''';
推荐阅读