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_PATH



Get-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 $scriptPath



Invoke-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. 如果您希望集成特殊标签打印机,请参阅相关文档。

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

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

相关文章

python u是什么意思

u:表示unicode字符串,默认模式,里边的特殊字符会被识别。 作用:后面字符串以unicode格式进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。 用法&#xff…

基于springboot实现迪迈手机商城设计系统项目【项目源码+论文说明】

基于springboot实现迪迈手机商城设计系统演示 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管理。…

【RAG 博客】RAG-Fusion:引入 Multi-Query 来丰富用户查询的结果

Blog:Forget RAG, the Future is RAG-Fusion ⭐⭐⭐⭐ Code:github.com/Raudaschl/rag-fusion 文章目录 一、RAG-Fusion 的工作机制二、实现细节2.1 Multi-Query Generation2.2 Reciprocal Rank Fusion(RRF)2.3 Generative Output…

JSON教程(非常详细)

参考文章来源:JSON教程(非常详细) 目录 JSON JSON 发展史 为什么要使用 JSON? JSON 的不足 存储格式 使用场景 1) 定义接口 2) 序列化 3) 生成 Token 4) 配置文件 JSON语法规则 JSON 与 JavaScript 对象的区别 JSON数…

小浪助手:下载学浪视频的最佳助手

小浪助手我已经打包好了,有需要的自己下载一下 学浪下载器链接:百度网盘 请输入提取码 提取码:1234 --来自百度网盘超级会员V10的分享 1.首先解压好我给大家准备好的压缩包 2.打开小浪助手.exe 3.选择一种登录方式,扫码登录或者手机号…

python实现的基于单向循环链表插入排序

相比于定义一个循环双向链表来实现插入排序来说,下面的实现采用一个单向循环链表来实现,并且不需要定义一个单向循环链表类,而是把一个list(数组/顺序表)当成单向循环链表来用,list的元素是一个包含两个元素…

监控操作台为生活提供安全保障

在科技日新月异的现代社会,监控操作台已成为我们生活中不能缺少的一部分。它犹如一座城市的守护神,默默无闻地守护着我们的安全,确保着每一刻的平安。今天,和北京嘉德立一同走进这个神秘的世界,揭开监控操作台的神秘面…

知识产权 | 守护科技创新之光,共筑知识产权长城

2024年4月26日,迎来了一年一度的世界知识产权日,今年的主题是:“立足创新创造,构建共同未来。” 易我科技是一家专注于数据安全产品研发、生产、销售、服务一体化的高新技术软件企业。易我科技自成立以来,始终秉持尊重…

今日arXiv最热联邦学习论文:通信成本降低94%,中科院计算所发布个性化联邦学习方法

引言:你的隐私,联邦来守护! 想象一下,未来你的手机就像一位贴心的私人助理,能够洞察你的喜好、日程,甚至预测你的情绪。听起来很棒,但你可能会担心隐私泄露的问题。别担心,最近一种…

macOS系统下载安装Apifox

官网链接:Apifox下载 点击苹果,再根据自己的芯片类型选择版本 确认芯片类型的方法 我的是apple芯片,下载完拖动安装包安装就可以了

SpringWebFlux RequestBody多出双引号问题——ProxyPin抓包揪出真凶

缘起 公司有个服务做埋点收集的,可以参考我之前的文章埋点日志最终解决方案,今天突然发现有些数据日志可以输出,但是没法入库。 多出的双引号 查看Flink日志发现了JSON解析失败,Flink是从Kafka拿数据,Kafka本身不处…

吴恩达深度学习笔记:深度学习的 实践层面 (Practical aspects of Deep Learning)1.11-1.12

目录 第二门课: 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第一周:深度学习的 实践层面 (Practical aspects of Deep Learning)1.11 神经网络的权重…

C++——STL容器——vector

vector是STL容器的一种,和我们在数据结构中所学的顺序表结构相似,其使用和属性可以仿照顺序表的形式。vector的本质是封装了一个动态大小的数组,支持动态管理容量、数据的顺序存储以及随机访问。 1.前言说明 vector作为容器,应该…

银行核心背后的落地工程体系丨Oracle - TiDB 数据迁移详解

本文作者: 张显华,孟凡辉,庄培培 系列导读:徐戟(白鳝)数据库技术专家,Oracle ACE,PostgreSQL ACE Director 当前,国内大量的关键行业的核心系统正在实现国产化替代&…

智能手机加速度计和陀螺仪进行心律不齐以及心衰的检测

期刊地址,希望那位大佬根据这个期刊进行创业 ,拿到NMPA证书,造福中国人!太简便了这个方案。https://www.jacc.org/doi/full/10.1016/j.jchf.2024.01.022https://www.jacc.org/doi/full/10.1016/j.jchf.2024.01.022 背景与目的&…

【STM32F407+CUBEMX+FreeRTOS+lwIP netconn UDP TCP记录】

STM32F407CUBEMXFreeRTOSlwIP netconn UDP TCP记录 注意UDPUDP1UDP2 TCPTCP clientTCP server图片 注意 1、超时 #include “lwipopts.h” #define LWIP_SO_RCVTIMEO 12、先保证能ping通 3、关于工程创建可参考 【STM32F407CUBEMXFreeRTOSlwIP之UDP记录】 4、…

探索Plotly交互式数据可视化

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 探索Plotly交互式数据可视化 在数据科学和数据分析领域,可视化是一种强大的工具…

2024年第二十一届 五一杯 (C题)大学生数学建模挑战赛 | 多目标优化问题,深度学习分析 | 数学建模完整代码解析

DeepVisionary 每日深度学习前沿科技推送&顶会论文&数学建模与科技信息前沿资讯分享,与你一起了解前沿科技知识! 本次DeepVisionary带来的是五一杯的详细解读: 完整内容可以在文章末尾全文免费领取&阅读! 首先&…

【20】JAVASE-网络编程【从零开始学JAVA】

Java零基础系列课程-JavaSE基础篇 Lecture:波哥 Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。…

从NoSQL到NewSQL——10年代大数据浪潮下的技术革新

引言 在数字化浪潮的推动下,数据库技术已成为支撑数字经济的坚实基石。腾讯云 TVP《技术指针》联合《明说三人行》特别策划的直播系列——【中国数据库前世今生】,我们将通过五期直播,带您穿越五个十年,深入探讨每个时代的数据库演…