之前在飞书多维表格搭了一套仓库管理应用,跑了大半年,出入库有账可查了,但是入库这个操作还是有点麻烦。
仓库那边经常催个好几次,发货单堆在桌上,全靠人肉搬运,仓管对着纸质发货单一行一行的把把物品编号、名称、数量敲进多维表格。
发货单大概是这样的

明细行就是物料,要对着一行行录到多维表格。
后来我就在想,这一步咱们能不能交给AI?
让AI来识别发货单上的物料明细信息,然后自动写到多维表格?但是这一步误差太大,毕竟发货单上的明细本就不清晰,甚至还会粘上污渍,准确率太低了。
于是我们换个方式,发货单上有一串数字:SAP交货单号(上面截图右上部分)。只要用这串数字去SAP查询,就可以把对应的物料明细全都带出来了,这样再写到多维表就顺理成章。
而且,让AI来识别发货单上的一串数字单号,这个就简单很多,准确率也很高了。
所以我们把这个AI拍照入库的流程接进了库存管理系统,现在仓库那边用手机拍一下发货单,等个十几秒,物料信息就自动出现在库存表里了。
这篇就聊聊这套东西是怎么接起来的:AI具体干了什么、SAP那边怎么对接,最后是怎么入进库存的。
库存管理表这块我们就不详细说了,重点聊聊拍照入库这功能。

我们做一张表单,只留上传交货单的地方。

提交后,触发工作流的前面三个节点

简单来说就是让豆包识别图片中的发货单号,返回这串数字给我们,并且记录到表格里,如下:

所以AI就做这个事情,帮我们把发货单里的单号识别出来。
当然你也可以直接让AI是被发货单上的物料明细,但这个我们上面说过,内容太多,不清晰,有损坏,都会影响结果,准确率太低。
所以我们的思路就换了个方向:AI只认出发货单上那个SAP交货单号。剩下的物料明细不用AI猜,直接拿这个单号去问SAP系统的接口,让系统把真实数据返回回来。
二、获取物料明细
这一步是这套东西和普通”AI识图填表”最大的区别:靠的不是AI,是一个HTTP请求节点,拿AI认出来的单号,去调内部SAP系统开出来的一个查询接口,把这张交货单底下所有物料的明细取回来,物料编号、名称、数量、单位等。
这一步我们在多维表格的工作流里用http节点来实现,这里就需要公司的it来配合了,把SAP获取信息的接口要给到,然后在工作流里配置。

接口会返回一堆物料行,接下来需要用JavaScript等节点拆成一条条明细,加工数据格式,然后循环写进”交货单物料明细”这张台账表
类似下图

三、入库
我们不是有一个库存信息表和一个入库表么,入库表的物料名称,是从库存信息表里来选择的。
所以,这个逻辑就要求我们在入库前需要有个判断:这个物料编号,库存表里之前有没有?
库存表里已经有,说明是老物料,直接找到那条记录,往”库存入库管理”表新建一条入库记录,填上入库数量,关联到已有的那条物料就行。要是查不到,那就是头一次进货的新物料,先在”库存信息表”里新建一条记录,把编号和名称落上,再拿这条刚新建的记录去建入库记录。
这个逻辑我们就在工作流里”查找记录+分支”两个动作串起来

按物料编号去库存表里查一遍,查到的条数是0还是大于0,分两个分支走
查找 1.库存信息表,条件:物品编号 = 明细编号
分支A(查到0条,新物料):
新增 1.库存信息表 记录(物品编号,物品名称)
新增 2.库存入库管理 记录(入库物品编号=刚新建的记录,入库数量)
分支B(查到>0条,老物料):
新增 2.库存入库管理 记录(入库物品编号=查到的记录,入库数量)

最终入库完成,飞书消息提醒一下。 我们在最后加一个飞书提醒的节点,每条明细处理完,把台账表那条状态改成”已写入”。全部处理完之后,给提交发货单的那个人发一条飞书消息,”物料已入库”。这样就知道是否已经入库完成了。
这就是拍照入库的全流程了。以前仓库那边照着发货单,一行一行把物品编号、名称、数量抄进多维表格,还得对好几遍。
现在拍照上传,等一会儿刷新库存表,物料已经自己躺在表格里面了,编号跟SAP系统里的一字不差。这套东西在库存系统里跑了一段时间,最直观的感受是仓库那边不用再对着数字抄了。出错的地方基本就剩”AI有没有认对那个单号”这一个点,比起以前六七个字段全靠人抄,风险面小了一大截。
最后
当然了最后还是要提醒一下,它并不是100%省心。AI认单号这一步,如果发货单拍得歪了、反光挡住了几个数字,认出来的号码是错的,后面查SAP接口自然也查不到东西。这时候还是得回到”交货单清单”表里,把单号手动改一下,再触发一次流程。当然这种情况不算频繁,出了问题一眼就能看出来,查不到数据,也不会把错的东西写进库存表。
另外这套流程本身配起来也不轻,HTTP请求、JS脚本解析、循环、分支,这几个动作串下来,对不熟悉自动化的人门槛不低。


