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.rhkb.cn/news/350537.html

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

相关文章

什么是无头浏览器以及其工作原理?

如果您对这个概念还不熟悉,那么使用无头网络浏览器的想法可能会让您感到不知所措。无头浏览器本质上与您熟悉的网络浏览器相同,但有一个关键区别:它们没有图形用户界面 (GUI)。这意味着没有按钮、选项卡、地址栏或视觉显示。 相反&#xff0c…

极致深耕,打造核心竞争壁垒——探寻蓝思科技穿越周期的密码

作者 | 曾响铃 文 | 响铃说 一家企业,如何才能在时代变幻的风云中不计较一时得失,长期稳健发展,穿越周期?本期主题就来探寻一家在湖南的国际化企业的发展密码。 穿越周期的企业,都在坚持一个驱动发展的“原点” 细…

Python虚拟环境的配置

前言: 本人一度被Python的虚拟环境的配置所困扰,前段时间抽空学习了一下,现在总结一下方法,供大家参考。 先使用winr打开命令行窗口。 展示所有虚拟环境 conda env list 创建虚拟环境 例如我们创建一个叫做py_sk的虚拟环境 …

Windows下的zip压缩包版Mysql8.3.0数据迁移到Mysql8.4.0可以用拷贝data文件夹的方式

Windows下的zip压缩包版Mysql8.3.0数据迁移到Mysql8.4.0可以用拷贝data文件夹的方式 拷贝后, 所有账户和数据都是一样的 步骤 停止MySQL服务 net stop mysql 或 sc.exe stop mysql net stop mysqlsc.exe stop mysql卸载 Mysql8.3.0 的服务 mysqld remove 或 mysqld remove m…

工资信息管理系统的设计

管理员账户功能包括:系统首页,个人中心,基础数据管理,公告管理,津贴管理,管理员管理,绩效管理 用户账户功能包括:系统首页,个人中心,公告管理,津…

MEMS:Lecture 17 Noise MDS

讲义 Minimum Detectable Signal (MDS) Minimum Detectable Signal(最小可检测信号)是指当信号-噪声比(Signal-to-Noise Ratio, SNR)等于1时的输入信号水平。简单来说,MDS 是一个系统能够分辨出信号存在的最低输入信号…

Opencv基本操作

Opencv基本操作 导入并使用opencv进行图像与视频的基本处理 opencv读取的格式是BGR import cv2 #opencv读取的格式是BGR import numpy import matplotlib.pyplot as plt %matplotlib inline图像读取 通过cv2.imread()来加载指定位置的图像信息。 img cv2.imread(./res/ca…

HAL库开发--串口

知不足而奋进 望远山而前行 目录 文章目录 前言 学习目标 学习内容 开发流程 串口功能配置 串口功能开启 串口中断配置 串口参数配置 查询配置结果 发送功能测试 中断接收功能测试 printf配置 DMA收发 配置 DMA发送 DMA接收(方式1) DMA接收(方式2) 总结 前言…

OPNsense 24.1 - 基于 FreeBSD 的开源防火墙和路由平台

OPNsense 24.1 - 基于 FreeBSD 的开源防火墙和路由平台 请访问原文链接:https://sysin.org/blog/opnsense/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 关于 OPNsense OPNsense 是一个开源、易于使用且易于构建…

进程的创建和管理

一. 实验内容 1. 编写一个程序,程序中创建一个子进程。然后父、子进程各自独立运行,父进程不断地在标准输出设备(即显示器)上输出字母p和回车(输出30次或以上),子进程不断地在标准输…

服务器远程桌面经常连接不上,造成远程桌面连接不上的原因都有哪些

服务器远程桌面连接不稳定或经常连接不上是一个较为常见的技术问题,其可能的原因涉及多个层面,包括网络设置、服务器配置、系统安全等方面。下面将详细探讨一些可能造成远程桌面连接问题的主要原因: 首先,网络连接不稳定是导致远…

电脑缺失d3dcompiler_47.dll会怎么样,该如何修复呢

在计算机使用过程中,我们常常会遇到一些错误提示,其中之一就是“缺少d3dcompiler47.dll文件”。那么,d3dcompiler47.dll到底是什么?为什么计算机会缺失它?它会对电脑产生什么具体影响?如何解决这个问题&…

【背包题】oj题库

目录 1282 - 简单背包问题 1780 - 采灵芝 1888 - 多重背包&#xff08;1&#xff09;​编辑 1891 - 开心的金明 2073 - 码头的集装箱 1905 - 混合背包 1282 - 简单背包问题 #include <bits/stdc.h> using namespace std; //二维数组:dp[i][j]max(dp[i-1][j],v[i]dp[…

父亲节马上到了-和我一起用Python写父亲节的祝福吧

前言 让我们一起用Python写一段父亲节的祝福吧 &#x1f4dd;个人主页→数据挖掘博主ZTLJQ的主页 个人推荐python学习系列&#xff1a; ☄️爬虫JS逆向系列专栏 - 爬虫逆向教学 ☄️python系列专栏 - 从零开始学python 话不多说先上代码 import tkinter as tk from doctest imp…

宠物健康顾问系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;顾问管理&#xff0c;用户管理&#xff0c;健康知识管理&#xff0c;管理员管理&#xff0c;论坛管理&#xff0c;公告管理 顾问账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;顾…

深入理解计算机系统 CSAPP 家庭作业6.36

A:100% 数组x的大小是缓存的两倍, x[0][0]-x[0][127]刚好存满512字节,那就意味着x[1][0]映射在缓存的组0,那就意味着x[0][i]和x[1][i]总是读到缓存后又互相替换. B:25% 缓存变为1024字节,意味着x[1][0]被映射在缓存的组128 (组0到127存放x[0][0]到x[0][127]),所以每次读一行…

企业网站建设方案

企业网站建设方案是企业推广和宣传的重要工具&#xff0c;可以帮助企业树立良好的形象&#xff0c;吸引更多的客户和合作伙伴。一个好的企业网站应该具备用户友好的界面设计、快速的加载速度、完善的信息分类和搜索功能、优质的内容和多样化的互动体验。下面将从以下几个方面介…

Python使用策略模式生成TCP数据包

使用策略模式&#xff08;Strategy Pattern&#xff09;来灵活地生成不同类型的TCP数据包。 包括三次握手、数据传输和四次挥手。 from scapy.all import * from scapy.all import Ether, IP, TCP, UDP, wrpcap from abc import ABC, abstractmethodclass TcpPacketStrategy(A…

flink standalone部署模式

standalone模式可以在单台机器以不同进程方式启动&#xff0c;也可以以多机器分布式方式启动。 任务的提交模式有三种&#xff1a;application mode、session model、per-job mode&#xff08;1.4x版本后过时&#xff09;。 注意区分任务的提交模式与集群的部署模式区别。 以…

C++语法05 浮点型/实数类型

什么是实数类型 实数类型是一种数据类型&#xff0c;实数类型变量里能存放小数和整数。 定义格式&#xff1a;double a; 赋值&#xff1a;a0.4; 输入&#xff1a;cin>>a; 输出&#xff1a;cout<<a; 训练&#xff1a;尺子的价格 小知在文具店买铅笔&#xff…