SAP Build 2-PDF数据提取与决策

0. 安装desktop agent

在后续过程中发现要预先安装desktop agent,否则没法运行自动化流程…

0.1 agent下载

参考官方文档说明
https://help.sap.com/docs/build-process-automation/sap-build-process-automation/create-user-in-rbsc-download-repository?locale=en-US
在这里插入图片描述
转到Control tower,选中agents update的磁贴在这里插入图片描述
go to rbsc portal
在这里插入图片描述
转到Control tower,选中agents的磁贴
在这里插入图片描述
点击go to download page,转到下载页面
在这里插入图片描述
官方文档是这么说的,但是跳转过后出现的是500页面没法配置,很奇怪
在这里插入图片描述
好恶心,最后根据这个QA找到了答案
https://community.sap.com/t5/sap-teched-discussions/sap-teched-2022-ai180-ad182-prerequisites-setup-desktop-agent-3-rbsc-portal/m-p/12624541
可以通过https://tools.hana.ondemand.com/#cloud 下载trial版本的desktop agent
用个人邮箱注册的BTP就没办法进入RBSC Portal,SID注册的根据上述QA所答应该可以进入Portal
在这里插入图片描述

0.2 agent安装

版本是3.24.54
在这里插入图片描述
直接就装了,也不问我装哪儿
在这里插入图片描述
在这里插入图片描述
装完就在右下角默认启动了
在这里插入图片描述

0.3 agent注册

回到SAP Build的control tower,选择agent desktop
点击register agent,随后copy and close注册链接
在这里插入图片描述
回到桌面右下角desktop agent图标,add tenant
在这里插入图片描述
输入描述信息和刚刚拷贝的链接并保存
在这里插入图片描述
最后注册完就这样,然后激活该tenant
在这里插入图片描述
随后跳转到登录页,登录BTP试用账号即可
在这里插入图片描述
登录完成会自动关闭页面,回到desktop agent发现已经Active了(没active等会,需要点时间去connect)
在这里插入图片描述
在这里插入图片描述
回到SAP Build也能看到连接的设备了
在这里插入图片描述

0.4 agent 拓展

安装完desktop agent后,会给浏览器安装一个拓展程序,注意查看右上角图标,要启用这个拓展程序
在这里插入图片描述
在这里插入图片描述

1. 数据提取

看了SAP Build的数据提取示例,用了一张PDF发票作为模板给SAP Build学习,后续同类型的发票SAP Build自己就能识别到发票内容

1.1 新建流程

新建一个process,不明白可以回头参考SAP Build 1的内容
(不知道为啥编辑页面变成中文了,但其他的都是英文,SAP Build的语言有点奇怪)
触发器还是使用表格,表格中提供文件的本地路径即可
在这里插入图片描述
在这里插入图片描述

1.2 新建自动化

新建自动化,代理版本不要选错了
在这里插入图片描述
代理版本选错了也可以通过设置修改
在这里插入图片描述
在这里插入图片描述
创建完成先保存一下
在这里插入图片描述

1.3 新建发票数据结构

转到概览,新建数据类型
在这里插入图片描述
在这里插入图片描述
参考电信发票,创建了如下数据结构
在这里插入图片描述
在这里插入图片描述

1.3 设置自动化传入传出参数

打开自动化流程
在这里插入图片描述
右侧设置输入输出,输入使用文件路径即可,输出选择自定义的发票类型
在这里插入图片描述
再次保存

1.4 新建发票模板

概览页面新建文件模板
在这里插入图片描述
创建新模板
在这里插入图片描述
选择待识别的发票文件作为模板,喂给SAP Build学习
在这里插入图片描述
SAP 应该是对发票有特殊扫描,直接选发票就好了
在这里插入图片描述
针对发票,SAP预先设置了发票的数据模式,字段结构可以直接使用
选择新建,把模式映射到我们之前定义的数据类型上
在这里插入图片描述
在这里插入图片描述
根据之前的数据结构,一个个把变量名填入就行,记得设置变量类型
在这里插入图片描述
最后一步点击添加即可
在这里插入图片描述
在这里插入图片描述

1.5 配置模板映射

打开模板编辑器,等待SAP 扫描完毕,扫描结束就是下面这样,点击编辑按钮进行mapping
在这里插入图片描述
SAP把所有有可能的文本都扫描出来了,选中需要的文本就会进行字段分配,编辑值获取需要的结果,这里本来SAP扫描的是【开票日期2022年10月02日】,我手工删除了不必要的字段,只保留了年月日
在这里插入图片描述
依葫芦画瓢一个个设置就好了
在这里插入图片描述
最后映射完结果就长这样,保存即可
在这里插入图片描述

1.6 编辑自动化

回到自动化页面
在这里插入图片描述
右侧搜索extract,找到extract data(template),拖拽至流程中
在这里插入图片描述
选中extract data(template),添加文档模板,选择从当前项目中选择模板
在这里插入图片描述
模式和模板都使用之前创建的
在这里插入图片描述
最后选择添加即可
在这里插入图片描述
输入参数是文件路径,默认会将提取的结果提取到输出参数extractData中
在这里插入图片描述
找到之前预定义的发票结构,拖拽至流程中
在这里插入图片描述
从提取到的数据中,找到需要的数据依次对抬头赋值即可
在这里插入图片描述
行项目有点难弄,我怎么也没办法通过for each直接对es_invoice-item的行项目直接通过index添加,所以最后新建了一个gs_invoice_item的变量,将for each的结果放到gs_invoice_item[0]中,再将gs_invoice_item[0]添加到es_invoice-item下
不知道是不是我的姿势不对,可能有其他我不知道的方法

下图不正确,可以使用add item 控件直接赋值
在这里插入图片描述
我之前把add item控件的输入输出弄反了,所以一直弄不出来
在这里插入图片描述
最后放一个log查看提取的结果
在这里插入图片描述

1.7 测试

点击左上角的三角形可以测试
在这里插入图片描述
输入参数,点击test测试即可
在这里插入图片描述
然后就到加载页面了,应该是要把云端的package下载到安装desktop agent的本地电脑上,然后下载巨慢巨慢巨慢
在这里插入图片描述
折腾了一晚上,完全没办法运行,一直报错无法下载,查看日志也不说到底啥原因,很无语
在这里插入图片描述
在这里插入图片描述
第二天,关闭科学上网软件,重新运行机器人成功
模板的识别率貌似有待提高,我做了两个pdf,一个是作为模板上传的pdf,一个是ps后的pdf
PS后的发票加了一行行项目,改了一个开票日期和合计金额
在这里插入图片描述
只识别第一张pdf发票的时候还算正常,行项目也取出来了,只是购方名称和开票日期这俩字段把不必要的汉字也取出来了
下面的json是第一个发票log的结果

{"type": "automationActivity","name": "irpa_core.log","label": "Log Message","inputs": [{"item": [{"desc": "*电信服务*电信业务使�费","unit": "项","quantity": 1,"price": 185}],"total_price": 185,"invoice_no": 36587586,"payer": "称:XX","invoice_date": "开票日期:2022年10月02日"},{"key": "Info","value": 0},null],"containerInstanceUid": "306d170e-95a5-4c59-ba32-12f93a372b4d","parentInstanceUid": "306d170e-95a5-4c59-ba32-12f93a372b4d","stepId": "13","line": 19,"file": "pDFInvoiceExtraction.js"
}

识别第二张ps的发票就有点问题了,行项目一个没取出来,其他的问题跟第一张发票一样,不知道是不是我ps水平有限

{"type": "automationActivity","name": "irpa_core.log","label": "Log Message","inputs": [{"item": [],"total_price": 585,"invoice_no": 36587586,"payer": "称:XX","invoice_date": "开票日期: 2023年10月02日"},{"key": "Info","value": 0},null],"containerInstanceUid": "cb2a76a5-d90a-4c34-8e61-f473b8003ffb","parentInstanceUid": "cb2a76a5-d90a-4c34-8e61-f473b8003ffb","stepId": "13","line": 19,"file": "pDFInvoiceExtraction.js"
}

即使我在模板处上传了第二张发票并做了标注,自动化的结果也没有发生改变,官方文档感觉不是很清楚,可能我自己也没读明白
https://help.sap.com/docs/build-process-automation/sap-build-process-automation/document-information-extraction-process-automation?locale=en-US&q=document%20template%20editor
在这里插入图片描述

2. 决策

决策是一个复杂的if-else 集合,相比嵌套的if-else使用决策可以简化显示,逻辑更清晰
下述场景使用决策表决定应收邮件的审批人

2.1 新建决策树

流程中插入决策树
在这里插入图片描述
在这里插入图片描述

2.2 添加输入输出参数

添加输入输出参数,输入为发票信息,输出为决策树判断后输出的审批人邮箱
在这里插入图片描述

2.3 新建规则

转到rule页签,添加规则
在这里插入图片描述
选择决策表,填写描述信息
在这里插入图片描述
假定价格和付款方作为条件
在这里插入图片描述
审批人作为结果
在这里插入图片描述
最后检查一下,没问题就创建
在这里插入图片描述
做了个简单的决策表
在这里插入图片描述
决策表的操作符官方文档如下:https://help.sap.com/docs/build-process-automation/sap-build-process-automation/operators?locale=en-US&q=document%20template%20editor
字符串用单引号括起来
在这里插入图片描述
对我来说决策表其实更像配置表,满足配置表条件时输出结果的数据
做完之后点击保存即可

2.4 测试

在流程中给决策添加输入输出的参数,输入来自上一步的发票提取结果,输出为新建的变量gv_approver
在这里插入图片描述
在这里插入图片描述
为了方便查看结果,结束之前发出邮件,在邮件中查看结果(此时会error,因为还没配置邮件服务)
配置好了就保存,然后发布,部署,部署完了从触发器获取表单的链接
在这里插入图片描述
填写文件路径,然后提交即可
在这里插入图片描述
问题又来了,流程监控器显示流程正在running而且流转到了启动自动化的步骤了,但是desktop agent丝毫没有反应
在这里插入图片描述
没有任何日志显示desktop agent接收到了流程
在这里插入图片描述
搞不明白了,切换到无人值守也无法启动,问题多多

3. 参考链接

教程(缺了sap agent的配置)
https://developers.sap.com/mission.invoice-processing-approval-spa.html
文档(不清不楚不明不白)
https://help.sap.com/docs/build-process-automation/sap-build-process-automation

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/27532.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ安装配置,封装工具类,发送消息及监听

1. Get-Started docker安装rabbitmq 拉取镜像 [rootheima ~]# docker pull rabbitmq:3.8-management 3.8-management: Pulling from library/rabbitmq 7b1a6ab2e44d: Pull complete 37f453d83d8f: Pull complete e64e769bc4fd: Pull complete c288a913222f: Pull complet…

C# Winform Chart图表使用和详解

Chart控件是微软自带的一种图形可视化组件,能展示种类丰富的图表形式。如曲线图,折线图,饼状图,环形图,柱状图,曲线面积图。 实例代码链接:https://download.csdn.net/download/lvxingzhe3/8943…

【wiki知识库】06.文档管理接口的实现--SpringBoot后端部分

目录 一、🔥今日目标 二、🎈SpringBoot部分类的添加 1.调用MybatisGenerator 2.添加DocSaveParam 3.添加DocQueryVo 三、🚆后端新增接口 3.1添加DocController 3.1.1 /all/{ebokId} 3.1.2 /doc/save 3.1.3 /doc/delete/{idStr} …

[Qt] Qt Creator 以及 Qt 在线安装教程

一、Qt Creator 下载及安装 1、从以下镜像源下载安装包常规安装即可 Qt Creator 也可以在第二步Qt 在线安装时一次性勾选安装,见后文 Qt Creator 中科大源下载地址 二、Qt 在线安装 1、根据所在平台选择对应的安装器下载 Qt 在线安装器下载 2、可能的安装报错…

云电脑有多好用?适合哪些人使用?

云电脑作为一种新型的计算模式,其应用场景广泛且多样,适合各类人群使用。云电脑适合什么人群使用?云电脑有哪些应用场景?有什么好的云电脑推荐?以下本文将详细探讨云电脑的主要应用场景及其适用人群的相关内容&#xf…

禁用PS/Photoshop等一系列Adobe旗下软件联网外传用户数据操作

方案一: 下载火绒杀毒,在联网请求上禁用Adobe软件的联网请求,甚至还可以额外发现哪些是它要想要偷偷摸摸干的。 方案二: 最后注意: 用盗版软件只是获得了使用权!

Docker系列.Docker Desktop中如何启用Kubernetes

Docker技术概论 Docker Desktop中如何启用Kubernetes - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.…

Linux编辑器 vim使用 (解决普通用户无法进行sudo提权问题)

文章目录 一.vim是什么命令模式底行模式 二.关于vim暂停问题三.注释批量化注释批量化去注释 四.解决普通用户无法进行sudo提权问题五.vim的配置 一.vim是什么 用过VS的都知道,拥有着编辑器编译器调试.编写C,C,python等的功能。就是集成 Linu…

LeetCode | 434.字符串中的单词数

这道题直接使用语言内置的 split 函数可直接分离出字符串中的每个单词,但是要注意区分两种情况:1、空串;2、多个空格连续,分割后会出现空字符的情况,应该舍弃 class Solution(object):def countSegments(self, s):&qu…

Dubbo3 服务原生支持 http 访问,兼具高性能与易用性

作者:刘军 作为一款 rpc 框架,Dubbo 的优势是后端服务的高性能的通信、面向接口的易用性,而它带来的弊端则是 rpc 接口的测试与前端流量接入成本较高,我们需要专门的工具或协议转换才能实现后端服务调用。这个现状在 Dubbo3 中得…

SVN 报错Error: Unable to connect to a repository at URL解决方法

1. 报错背景: 使用ssh 用svn拉取仓库代码时,出现如下报错: Can’t create session: Unable to connect to a repository at URL svn://127.0.0.1 …. Can’t connect to host ‘127.0.0.1’: Connection refused at C:/Program Files/Git/mi…

蓝牙耳机怎么连接电脑?轻松实现无线连接

蓝牙耳机已经成为许多人生活中不可或缺的一部分,不仅可以方便地连接手机,还能轻松连接电脑,让我们在工作和娱乐时享受无线的自由。然而,对于一些用户来说,将蓝牙耳机与电脑连接可能会遇到一些问题。本文将介绍蓝牙耳机…

从大型语言模型到大脑语言理解:探索话语理解的神经机制

随着科技的飞速发展,人工智能领域取得了令人瞩目的成就。在这其中,大型语言模型(LLMs)以其卓越的性能和广泛的应用前景,成为了当前研究的热点。然而,尽管LLMs在文本生成、语言翻译等领域展现出了惊人的能力…

镭速如何做到数据同步文件及文件夹的ACL属性?

数据文件同步时,除了要同步文件的内容,还要对文件的属性做同步。权限属性作为一个重要的文件属性,是属性同步的重中之重,控制着不同用户与用户组对文件和文件夹的访问权限。不同的操作系统有着自己不同的权限控制机制,…

第2章 Rust初体验6/8:Option枚举及其变体:能避免空指针异常问题:猜骰子冷热游戏

讲动人的故事,写懂人的代码 2.6 故事4: 一直让玩家不断猜 我们全班要一起用三种语言来写第4个故事啦。这可能是我们所有故事中最复杂的一个了。不过别担心,贾克强已经把这个故事的需求都用投影仪展示出来了。 程序会提示玩家猜两个骰子的点数之和。如果玩家第一次输入点数之…

byzer 笔记总结

1.总览(简单了解) 1.1 数据挖掘的定义 基于大数据技术,针对有价值是业务场景,对数据中台沉淀的大量数据进行探索,分析。寻找数据与数据之间潜藏的关系,转化为自动化的算法模型,从而获取有价值的…

python-jenkins调用流水线设置“丢弃旧的构建”(discard old builds)

背景 Jenkins任务执行,随之构建次数增多,构建日志所占磁盘大小不断增大,需要配置清除策略。 而 discard old builds 就是配置丢弃旧的构建;若是我们使用python-jenkins 调用修改配置该如何设置? 调用设置 这里是按…

C++ static关键字详解

背景 前段时间初步整理了C中static的相关知识点,以此做个记录。 在C中,static关键字是常见的修饰符。从大方向上static分为两类: 1.类或结构体外的static 2.类或结构体内的static 因此,本文内容的划分如下: 接下来会…

Day07-06_13【CT】LeetCode手撕—1. 两数之和

目录 题目1-思路2- 实现⭐1. 两数之和——题解思路 3- ACM实现 题目 原题连接:1. 两数之和 1-思路 哈希表 利用哈希表存储 key 数组元素值 ——> value 数组下标遍历数组 2- 实现 ⭐1. 两数之和——题解思路 class Solution {public int[] twoSum(int[] nums…

Linux实验八:流式套接字编程

目录 一、实验目的二、实验内容三、实验环境四、参考代码五、实验步骤步骤1. 编辑源代码blockserver.c和blockclient.c步骤2. 编译源代码blockserver.c和blockclient.c步骤3. 运行可执行程序blockserver和blockclient 六、实验结果七、实验总结 一、实验目的 1、深入理解 TCP/…