Microsoft Universal Print 与 SAP 集成教程

引言

从 SAP 环境打印是许多客户的要求。例如数据列表打印、批量打印或标签打印。此类生产和批量打印方案通常使用专用硬件、驱动程序和打印解决方案来解决。

Microsoft Universal Print 是一种基于云的打印解决方案,它允许组织以集中化的方式管理打印机和打印机驱动程序。通过与 SAP 集成,用户可以简化打印流程,减少设备管理开销,并消除对打印驱动程序的需求。

前端打印 (Frontend Printing)

前端打印指的是通过 SAP GUI、Web 浏览器或基于 Web 的 SAP 前端应用程序进行的用户打印操作。

准备工作

在开始之前,请确保您已经拥有以下条件:

  • 有效的 Microsoft 365 订阅,包含Universal Print功能。
  • 访问您的 SAP 系统 的权限。
  • 与SAP系统兼容的打印机,已连接到网络。

步骤 1: 配置 Microsoft Universal Print

  1. 登录到 Microsoft 365 管理中心
  2. 导航到 设置” > “Universal Print”
  3. 添加并注册您的打印机。
  4. 分配 打印机权限 给需要打印的用户。

步骤 2: 在 SAP 中配置打印机

  1. 登录到您的 SAP 系统
  2. 打开 SPAD 打印机配置工具。
  3. 创建一个新的打印机队列,选择 远程打印机”
  4. 输入通过Universal Print注册的打印机的详细信息。

步骤 3: 管理打印作业

  1. 在SAP中发送打印作业。
  2. 使用 Microsoft 365 管理中心 监控打印作业状态。
  3. 如有需要,可暂停、取消或重新排列打印作业。

后端打印 (Backend Printing)

后端打印指的是由应用程序而非用户发起的无人值守的批量打印作业。

前提条件

  1. Azure Entra ID 租户 ID
  2. Azure 订阅 ID
  3. Microsoft Universal Print 许可证
  4. 至少一个在 Microsoft Universal Print 中注册的物理打印机
  5. SAP NetWeaver:最低 SAP_BASIS 发布 7.57 或以上版本
  6. SAP Print Queue Management:在 SAP 中激活此功能
  7. 授权的 SAP 用户:有权生成和监督假脱机请求和打印队列的个人

集成方案设计

配置后端打印解决方案:

后端打印解决方案运行得就像一个润滑良好的机器,有两个主要组件和谐地工作:

  1. 部署基础设施(控制面板):可以将其想象为乐队的指挥,监督设置并确保打印过程的所有部分都调整得恰到好处,随时准备行动。
  2. 后端打印工作者(工作负载面板):这是团队中的音乐家,勤奋地阅读乐谱(假脱机请求)并精确小心地演奏音符(发送打印作业)给 Universal Print 设备。

控制面板

控制面板主要负责管理后端打印辅助角色和 Azure 资源的基础结构状态。控制面板使用安装脚本进行部署,由以下组件组成:

  1. 持久性存储:所有 Terraform 状态文件的安全位置,可跟踪基础结构的蓝图。
  2. Container Registry:一个数字库,用于存储后端打印工作线程的映像,随时可以部署。

工作负载面板

工作负载面板是执行操作的位置。这一切都与处理这些打印作业有关,并且是使用 Terraform 设置的。以下是它的内容:

  • 应用服务计划和函数应用:后端打印辅助角色执行的阶段。
  • Application Insights:一个可选但敏锐的观察者,用于监视后端打印工作人员的性能。
  • Key Vault:用于存储所有机密和敏感信息的安全保管库。
  • 存储帐户:用于管理打印作业的仓库。
  • 逻辑应用和自定义连接器:确保打印作业传送到通用打印设备的信使。
  • API 连接:将逻辑应用连接到通用打印 API 的网桥。
  • 托管标识:函数应用的后台阶段阶段,授予对 Key Vault 和存储帐户的访问权限。

部署后端打印解决方案

1. 从 Azure 门户中打开 Azure Cloud Shell (Powershell)。

2. 在 Cloud Shell 编辑器中创建新文件。将以下脚本复制并粘贴到其中,并使用 ps1 扩展名保存(例如:setup.ps1)。保存文件后,您可以单击刷新按钮并在根目录上找到该文件。打开文件,然后调整参数(说明如下),使其适合你的 SAP 环境。

$Env:CONTROL_PLANE_ENVIRONMENT_CODE="CTRL"$Env:WORKLOAD_ENVIRONMENT_CODE="TEST"$Env:LOCATION=""$Env:ENTRA_ID_TENANT_ID = ""$Env:AZURE_SUBSCRIPTION_ID = ""$Env:SAP_VIRTUAL_NETWORK_ID = ""$Env:BGPRINT_SUBNET_ADDRESS_PREFIX = ""$Env:ENABLE_LOGGING_ON_FUNCTION_APP = "false"$Env:CONTAINER_REGISTRY_NAME = ""$Env:HOMEDRIVE = ""$UniqueIdentifier = Read-Host "Please provide an identifier that makes the service principal names unique, for example (MGMT/CTRL)"$confirmation = Read-Host "Do you want to create a new Application registration for Control Plane y/n?"if ($confirmation -eq 'y') {$Env:CONTROL_PLANE_SERVICE_PRINCIPAL_NAME = $UniqueIdentifier + "-SAP-PRINT-APP"}else {$Env:CONTROL_PLANE_SERVICE_PRINCIPAL_NAME = Read-Host "Please provide the Application registration name"}$ENV:SAPPRINT_PATH = Join-Path -Path $Env:HOMEDRIVE -ChildPath "SAP-PRINT"if (-not (Test-Path -Path $ENV:SAPPRINT_PATH)) {New-Item -Path $ENV:SAPPRINT_PATH -Type Directory | Out-Null}Set-Location -Path $ENV:SAPPRINT_PATHGet-ChildItem -Path $ENV:SAPPRINT_PATH -Recurse | Remove-Item -Force -Recurse$scriptUrl = "https://raw.githubusercontent.com/Azure/universal-print-for-sap-starter-pack/main/deployer/scripts/install_backend_printing.ps1"$scriptPath = Join-Path -Path $ENV:SAPPRINT_PATH -ChildPath "install_backend_printing.ps1"Invoke-WebRequest -Uri $scriptUrl -OutFile $scriptPathInvoke-Expression -Command $scriptPath

脚本参数

名字

描述

类型

CONTROL_PLANE_ENVIRONMENT_CODE

控制平面环境代码用于为控制平面资源创建唯一名称。

字符串

“CTRL”, “管理”

WORKLOAD_ENVIRONMENT_CODE

工作负载环境名称用于为工作负载资源创建唯一名称

字符串

“PROD”、“TEST”、“DEV”

ENTRA_ID_TENANT_ID

Entra ID 租户 ID

字符串

“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”

AZURE_SUBSCRIPTION_ID

Azure Subcription ID

字符串

“yyyy-yyyy-yy-yy

SAP_VIRTUAL_NETWORK_ID

部署了 SAP 系统的虚拟网络的资源 ID。

字符串

BGPRINT_SUBNET_ADDRESS_PREFIX

将在其中部署后端打印服务的子网的地址前缀

字符串

"10.10.10.10/25"

ENABLE_LOGGING_ON_FUNCTION_APP

在 Azure 函数应用上启用日志记录

布尔字符串

真”/“假”

家庭驱动器

Azure 用户的驱动器。这是你在 Azure Cloud Shell 中看到的位置。示例:/home/john

字符串

“/家/约翰”

3. 在 PowerShell 上,执行命令:

./setup.ps1

4. 脚本执行完毕后,您将在您的 Azure 订阅中整齐地部署了控制面板和后端打印工作者。

授权 API 连接到 Universal Print

5. 跳转到 Azure 门户中的工作负载平面资源组。

6. 找到 API 连接资源并点击“编辑 API 连接”按钮。

7. 点击“授权”以与 Universal Print API 建立连接。弹出窗口关闭后,记得点击“保存”按钮以保存授权连接。

将 SAP 打印队列配置添加到函数应用

8. 打开函数应用并在概览屏幕上找到验证器函数。

9. 点击“代码 + 测试”。

10. 点击“测试/运行”按钮。

11. 在正文部分,放入下面提供的 JSON 负载并按“运行”。如果你看到一个愉快的“200 OK”响应代码,你就准备好了!如果不是,错误信息将为你提供修复任何小问题的线索。

通过 Powershell 或图形 API 从 Azure 门户获取打印机共享 ID。

通过重复上述配置步骤添加更多队列或 SAP 环境。

{"sap_environment" : "PROD","sap_sid": "SID","sap_hostname": "http://10.186.102.6:8001","sap_user": "sapuser","sap_password": "sappassword","sap_print_queues": [{"queue_name":"ZQ1","print_share_id": "12345678-1234-1234-1234-123456789012"},{"queue_name":"ZQ2","print_share_id": "12345678-1234-1234-1234-123456789012"}]}

附录

  1. 部署指南、SAP 特定 FAQ 和社区讨论可在 GitHub 上找到。
  2. 通用打印的一般 FAQ 可在 Microsoft Learn 上找到。
  3. 如果您希望集成特殊标签打印机,请参阅相关文档。

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

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

相关文章

Shell变成规范与变量

目录 1. Shell脚本 1.1 Shell脚本概述 1.2 Shell的作用 1.3 Shell脚本的构成 2. 重定向与管道操作 2.1 交互式硬件设备 ​ 2.2 重定向操作 3. shell变量 3.1 自定义变量 3.2 变量的作用范围​编辑 3.3 整数变量的运算 4. 环境变量 4.1 特殊的Shell变量 4.2 只读变…

【Flask 系统教程 5】视图进阶

类视图 在 Flask 中,除了使用函数视图外,你还可以使用类视图来处理请求。类视图提供了一种更为结构化和面向对象的方式来编写视图函数,使得代码组织更清晰,并且提供了更多的灵活性和可扩展性。 创建类视图 要创建一个类视图&am…

家用洗地机应该怎么选?哪个牌子好?市场上主流洗地机品牌推荐

洗地机的出现,让越来越多的家庭享受清洁的过程,给人们腾出来更多的时间陪伴家人和休息。但是在选购一台洗地机前,大家多多少少肯定有些疑问,洗地机到底实不实用?好不好用?能扫干净吗?还有哪些好…

什么样的行业适合做私域?

私域营销适用于各种行业,但以下几个行业尤其适合进行私域营销: 1、零售行业:私域营销可以帮助零售企业建立与顾客的直接联系,提高顾客忠诚度和复购率。通过私域营销,零售企业可以进行个性化推荐、定制化服务&#xff…

Konga域名配置多个路由

云原生API网关-Kong部署与konga基本使用 Nginx server{listen 443 ssl;location / {proxy_pass http://127.0.0.1:8100;}location /openApi {proxy_pass http://172.31.233.35:7100/openApi;} } Kong {"id": "f880b21c-f7e0-43d7-a2a9-221fe86d9231&q…

vue视图不刷新强制更新数据this.$forceUpdate()

在vue中,更新视图数据,不刷新页面,需要强制更新数据才可以 前言 在对数据就行添加和删除时,发现页面视图不更新,排除发现需要强制更新才可以 点击添加或删除,新增数据和删除就行,但在不使用fo…

指定地区|CSC高级研究学者赴澳大利亚访学交流

CSC高级研究学者均是正高或博导级的,学术背景较强,多数能DIY联系到国外合作机构。但也有些申请者因指定地域或学校,或须在短期内获取邀请函故而求助于我们。本案例D教授就指定澳大利亚的墨尔本地区,我们最终用维多利亚大学的邀请函…

智能化采购管理系统助力光伏行业提高效率

光伏行业是指太阳能电池板的制造、安装和维护等相关产业,是新能源领域的重要组成部分。近年来,随着全球对于环保和可持续发展的重视,光伏行业进入全球化和智能化的新阶段。光伏企业开始加强国际合作,推广智能化技术,提…

vue3+ts+vant选择器选中文字效果

所需要的样式: 选中某个选项后文字有放大和改变颜色的效果 主要就是在van-picker上加class, 给对应的style样式即可 <van-pickerclass"custom-picker":title"pickerData.titleText"v-if"pickerData.ispicker"show-toolbar:columns"col…

数据结构——排序算法分析与总结

一、插入排序 1、直接插入排序 核心思想&#xff1a;把后一个数插入到前面的有序区间&#xff0c;使得整体有序 思路&#xff1a;先取出数组中第一个值&#xff0c;然后再用tmp逐渐取出数组后面的值&#xff0c;与前面的值进行比较&#xff0c;假如我们进行的是升序排序&…

代谢组数据分析七:从质谱样本制备到MaxQuant搜库

前言 LC-MS/MS Liquid Chromatography-Mass Spectrometry&#xff08;LC-MS/MS &#xff0c;液相色谱-质谱串联&#xff09;可用于残留化合物检测、有机小分子检测、鉴定和定量污染物以及在医药和食品领域添加剂检测和生物小分子等检测。 LC-MS/MS一般包含五个步骤&#xff…

熟悉Redis吗,那Redis的过期键删除策略是什么

对于Redis&#xff0c;我们业务开发一般都只关心Redis键值对的查询、修改操作&#xff0c;可能因为懒或者只想能用就行&#xff0c;呵呵。很少关心键值对存储在什么地方、键值对过期了会怎么样、Redis有没什么策略处理过期的键、Redis处理过期键又有什么作用&#xff1f;但这些…

LabVIEW智能变电站监控系统设计与实现

LabVIEW智能变电站监控系统设计与实现 随着电力系统和智能化技术的快速发展&#xff0c;建立一个高效、可靠的变电站监控系统显得尤为重要。通过分析变电站监控系统的需求&#xff0c;设计了一个基于LabVIEW软件的监控平台。该平台利用虚拟仪器技术、传感器技术和无线传输技术…

5W 1.5KVDC 隔离 宽电压输入 DC/DC 电源模块——TP05DB 系列

TP05DB系列电源模块额定输出功率为5W&#xff0c;应用于2:1及4:1电压输入范围 4.5V-9V、9V-18V、18V-36V、36V-72V、9V-36V和18V-72V&#xff0c;40-160VDC的输入电压环境&#xff0c;输出电压精度可达1%&#xff0c;具有输出过流保护等功能。可广泛应用于通信、铁路、自动化以…

机器学习 | 时间序列预测中的AR模型及应用

自回归模型&#xff0c;通常缩写为AR模型&#xff0c;是时间序列分析和预测中的一个基本概念。它们在金融、经济、气候科学等各个领域都有广泛的应用。在本文中&#xff0c;我们将探索自回归模型&#xff0c;它们如何工作&#xff0c;它们的类型和实际例子。 自回归模型 自回…

【小迪安全2023】第61天:服务攻防-中间件安全CVE复现K8sDockeruettyWebsphere

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

IaC实战指南:DevOps的自动化基石

基础设施即代码&#xff08;Infrastructure as Code&#xff0c;IaC&#xff09;是指利用脚本、配置或编程语言创建和维护基础设施的一组实践和流程。通过IaC&#xff0c;我们可以轻松测试各个组件、实现所需的功能并在最小化停机时间的前提下进行扩展。更值得一提的是&#xf…

STM32单片机实战开发笔记-独立看门狗IWDG

嵌入式单片机开发实战例程合集&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/11av8rV45dtHO0EHf8e_Q0Q?pwd28ab 提取码&#xff1a;28ab IWDG模块测试 1、功能描述 STM32F10X内置两个看门狗&#xff0c;提供了更高的安全性&#xff0c;时间的精确下性和使用的灵活性…

聊聊BitLocker

最近有消息称微软决定在Windows 11 24H2中默认开启BitLocker&#xff0c;这个消息在网上引起了不小的波澜。有人说&#xff0c;对于我们这些普通用户来说&#xff0c;BitLocker真的有必要吗&#xff1f; 什么是BitLocker BitLocker 是一项 Windows 安全功能&#xff0c;可为整…

Qt与MySQL连接

QT连接Mysql数据库&#xff08;详细成功版&#xff09;-CSD N博客 我的MySQL是64位的&#xff0c;所以我的Qt的套件也需要是64位的 遇到的问题&#xff1a; &#xff08;available drivers中已经有QMYSQL QMYSQL3&#xff0c;还是not loaded&#xff09; QSqlDatabase: QMYS…