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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI 一键换脸,背景替换,ioDraw让图片更有趣

还在为繁琐的图片处理而烦恼吗?快来试试ioDraw的AI图片工具! 它集图像识别、图像生成、智能换脸、背景替换、图像融合、肖像风格化、空间风格化、智能扩图、智能抠图、画质提升、美颜、拉伸修复、透视校正等功能于一身,为你提供前所未有的图…

网络攻击第二节考题有问题的

这个选ab,不懂a是啥这俩是啥 DHCP欺骗-教程详解-CSDN博客 OSI七层网络攻击行为及防范手段_物理层的攻击方式-CSDN博客 这选项讲了吗 选abc 假消息攻击-CSDN博客 啥是ips防护 12题选adcd 为啥连接别人的wifi会被dns欺骗?? 连接的那个wifi…

appproxy 一个轻量级的VPN代理工具,支持HTTP, SOCKS5协议

appproxy 项目背景 在分析app的时候,偶尔需要抓包,尝试了目前比较常见的代理工具Drony Postern ProxyDroid 发现都有一个相同的问题,对于较新的Android系统不太友好,要么app列表显示不正常,或者界面过于复杂,往往设置之后经常会失效,偶然在play上发现一个比较新的代理工具,界…

I/O Stream设计实验

实验要求和目的 深入理解java输入输出流相关类的基本用法,并且可以掌握Java程序的编写和调试。 实验环境 Java语言,PC或android平台 实验具体内容 设计和编写以下程序: 程序1: 从键盘读入多行字符串(英文&#xf…

终于把AUC的计算方式搞懂了!

1. 横纵坐标 纵坐标:sensitivity或者TPR 横坐标:FPR 或者 1-Specificity 2. 计算方法 2.1 方法1 def get_roc_auc(y_true, y_score):"""正样本得分大于负样本得分的概率,需要遍历每个正样本和每个负样本1. 选取所有正样本与…

蓝牙资讯|苹果iOS 18增加对AirPods Pro 2自适应音频的更多控制

苹果 iOS 18 系统将为 AirPods Pro 2 用户带来一项实用功能 —— 更精细的“自适应音频”控制。AirPods Pro 2 的“自适应音频”功能包含自适应降噪、个性化音量和对话增强等特性,可以根据周围环境自动调节声音和降噪效果。 当更新至最新测试版固件的 AirPods Pro 2…

小白跟做江科大32单片机之定时器

原理部分 1. 计数器每遇到一个上升沿就会计数值1,。 72MHZ72000000 72000000/65536/655360.0167638063430786132812559.652323555555554 (s) 2. 3. 计数时钟每来一个上升沿,计数值1,自动运行。如果计数值与存储在自动重装载寄存器中的值相等&#…

养猫发现猫毛过敏?宠物空气净化器真的能拯救猫毛过敏吗?

广东省 猫咪是许多人梦寐以求的伴侣,但对于轻度猫毛过敏和鼻炎患者来说,养猫似乎是个遥不可及的梦想。我常在社交媒体上羡慕地观看朋友们的吸猫日常,却因过敏无法亲自养猫。这种遗憾驱使我寻找解决方案,从研究低过敏猫种到尝试空气…

通过语言大模型来学习LLM和LMM(四)

一、大模型学习 新的东西,学习的东西就是多,而且最简单最基础的都需要学习,仿佛一点基础知识都要细嚼慢咽,刨根问底,再加上一顿云里雾里的吹嘘,迷迷糊糊的感觉高大上。其实就是那么一回事。再过一段时日&a…

注解 - @ResponseStatus

注解简介 在今天的每日一注解中,我们将探讨ResponseStatus注解。ResponseStatus是Spring框架中的一个注解,用于为控制器方法指定HTTP响应状态码和理由短语。 注解定义 ResponseStatus注解用于标记控制器方法或异常类,以指示HTTP响应的状态码…

R语言数据分析案例28-对数据集可视化和T检验

一、分析主题: 本分析旨在对数据集进行可视化和 T 检验,以探索数据集中的变量之间的关系和差异。通过可视化数据,我们可以直观地了解数据的分布和趋势,而 T 检验则可以帮助我们确定这些差异是否具有统计学意义。 二、具体分析 …

pyrouge(ROUGE-1.5.5)的安装步骤和使用说明(适用于Linux 系统)

摘要:本文讲解了如何配置和使用文本摘要的评价指标ROUGE(linux 系统)。 ✅ NLP 研 1 选手的学习笔记 简介:小王,NPU,2023级,计算机技术 研究方向:摘要生成、大语言模型生成 文章目录 一、为啥要写这篇博客&…

uniapp 开发版小程序之间跳转

uni.navigateToMiniProgram({appId: urL,path: patH,envVersion: release,//我使用develop会给我返回:开发版小程序已过期,请在开发者工具重新扫码确定success(res) {console.log(res);// 打开成功uni.showToast({title: 跳转成功})},fail(err) {console…

【CS.AL】算法核心之贪心算法:从入门到进阶

文章目录 1. 概述2. 适用场景3. 设计步骤4. 优缺点5. 典型应用6. 题目和代码示例6.1 简单题目:找零问题6.2 中等题目:区间调度问题6.3 困难题目:分数背包问题 7. 题目和思路表格8. 总结References 1000.1.CS.AL.1.4-核心-GreedyAlgorithm-Cre…

Linux Source命令及脚本的执行方式解析

Linux Source命令及脚本的执行方式解析 当修改了/etc/profile文件,想让它立刻生效,而不用重新登录,这时就想到用source命令,如:source /etc/profile source命令: 也称为“点命令”,也就是一个点符号&…

显著提高iOS应用中Web页面的加载速度 - 提前下载页面的关键资源(如JavaScript、CSS和图像)

手动下载并缓存资源是一种有效的方式,可以确保在需要时资源已经在本地存储,这样可以显著提高加载速度。 缓存整个 web 页面的所有资源文件 具体实现步骤 下载和缓存资源:包括 HTML 文件、CSS、JavaScript 和图像。在应用启动时预加载资源。…

鸿蒙 游戏来了 鸿蒙版 五子棋来了 我不允许你不会

团队介绍 作者:徐庆 团队:坚果派 公众号:“大前端之旅” 润开鸿生态技术专家,华为HDE,CSDN博客专家,CSDN超级个体,CSDN特邀嘉宾,InfoQ签约作者,OpenHarmony布道师,电子发烧友专家博客,51CTO博客专家,擅长HarmonyOS/OpenHarmony应用开发、熟悉服务卡片开发。欢迎合…

【复旦邱锡鹏教授《神经网络与深度学习公开课》笔记】梯度的反向传播算法

矩阵微积分(Matrix Calculus) 在开始之前,需要先了解矩阵微积分的一些计算规则。 首先,对于矩阵微积分的表示,通常由两种符号约定: 分母布局 标量关于向量的导数为列向量 向量关于标量的导数为行向量 N维…

如何应对pcdn的流量攻击?

面对PCDN的流量攻击,可以采取以下措施来应对: 一.配置防火墙: 1.禁止未授权的PCDN域名访问:根据网络需求,配置防火墙规则,只允许特定的PCDN域名进行访问,从而防止未经授权的PCDN节…

shell编程基础(第16篇:命令是什么?有哪些注意事项)

前言 前面我们已经使用过各种各样的命令,那么命令到底是什么呢?我们又该怎么理解该术语? 什么是命令? 命令是command的中文翻译,能在命令行中执行的是命令。因为早期的计算机只有文字界面,命令是程序&#…