问题标签 [s4hana]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
reactjs - 如何将 React Web 应用程序部署到 Fiori Launchpad?
我有一个使用ui5-webcomponents-react
SAP https://github.com/SAP/ui5-webcomponents-react库创建的 React Web 应用程序。
我希望通过 SAP Fiori Launchpad(作为磁贴)使该应用程序可用。
我怎样才能做到这一点?
我已build
通过此处概述的方法成功将“构建”应用程序(文件夹的内容)上传到 SAP:
https ://blogs.sap.com/2019/11/27/how-to-run-reactjs-web- apps-in-sap/
(本质上是在 SE80 中创建了一个定制的Z
BSP 应用程序并手动上传和链接所有相关的“缩小”文件)
我可以通过 SAP 中的开放式 Web 服务访问该应用程序。
但我不确定如何继续?
上述方法是否正确?必须有一个更简单的方法来做到这一点?
我使用的是最新版本的 S/4 HANA,不希望使用 Eclipse 或 WebIDE(主要是因为我使用的是本地版本,而且我不是 Eclipse IDE 的忠实粉丝,因为它是与 VSCode 相比,速度要慢得多,资源也更多)。
sap-cloud-platform - 在事件触发器上将数据从 SAP S/4HANA 发送到 SAP 数据中心
每当创建采购订单时,我都想将我的数据从 SAP S/4HANA 传输到 SAP 数据中心。这些似乎是消息队列问题,但我不确定该使用什么。
因此,每当有订单创建时,S/4HANA 都会发送通知,SAP 企业消息队列可以接收到该通知,但我不确定如何从该队列将数据发送到 datahub。datahub 能否提供一个 SAP EM 消费者,该消费者将从 EM 队列中获取消息。我可以看到 datahub 有 kafka 消费者,但它是否支持 SAP 企业消息传递?
sap-cloud-sdk - SAP Cloud SDK for javascript 使用目标
我已经按照教程构建了基于 CF 的基本 nodejs 应用程序,以显示来自我的 S/4HANA 本地目标的所有 BusinessPartners。
目标配置有来自云连接器的虚拟主机。
但是在部署到 Cloud Foundry 之后,我收到了 GET 请求的以下错误
{"message":"不支持destination类型的服务!考虑在调用destinationForServiceBinding时提供自己的转换函数,如下所示:\n destinationServiceForBinding(yourServiceName, { serviceBindingToDestination: yourTransformationFunction });","level":"warn", "custom_fields":{"package":"core","messageContext":"destination-accessor"},"logger":"sap-cloud-sdk-logger","timestamp":"2020-03-09T18:15 :41.856Z","msg":"不支持destination类型的服务!考虑在调用destinationForServiceBinding时提供自己的转换函数,如下所示:\n destinationServiceForBinding(yourServiceName, { serviceBindingToDestination: yourTransformationFunction });",“written_ts”:1583777741856,“written_at”:“2020-03-09T18:15:41.856Z”}
该应用程序也已绑定到目标服务。
有人可以在这里帮助我吗,出了什么问题?还是新版 Cloud-SDK 使用destination的方式不同?
abap - SAP 灵活工作流前置条件下拉文本未填充
我创建了一个新的灵活工作流场景并添加了一些先决条件。其中一个条件只有一个参数,数据元素的域具有固定值(YES 和 NO)。
问题是,在 Fiori 应用程序“管理工作流程”中,当我使用此前提条件时,值字段显示为自由文本输入字段,而不是域值的下拉列表。
但是,如果我将条件参数更改为 XFELD,我可以看到应用程序中的相同条件显示为带有“是”和“否”选项的下拉列表。不过,由于业务需求,我不想使用 XFELD。
任何想法如何获得具有固定值的域的下拉列表?
PS:我还尝试将 CDS 视图 VH(表 dd07l 上的视图)附加到条件参数。但该字段仍显示为自由文本字段。
sap-cloud-platform - 使用 Cloud SDK 定义 S4HANA BAPI 调用的 SCP 目标
我正在寻找一种在本地和使用 Cloud SDK 在 SAP Cloud Platform 上调用 S4HANA 本地 BAPI 的方法。问题是如何定义 RFC 目标,就像 HTTP 目标一样。
我还遇到了 JCo class not found 异常,找不到合适的解决方法。
本地
在 HTTP 目标中,我可以提供如下环境变量:
但不清楚如何定义 RFC 目标,哪些属性是必需的,如 jco 属性。
SCP云铸造厂
我在 SAP Cloud Platform 上创建了一个 RFC 目标。
但是我找不到一种方法来装饰这个目的地以涉及 Cloud SDK 中的其他属性,就像 HTTP 目的地一样。
请注意,当我进行 bapi 调用时,RfcDestination 是不可接受的,仅需要类型 Destination。RfcDestination 不是接口 Destination 的实现类。
JCO 类未找到异常
java.lang.NoClassDefFoundError: com/sap/conn/jco/JCo
将 SAP Java Build Pack 与 Spring 引导一起使用时存在一个已知问题。我手动将 jar 文件 sapjco3.jar 添加到项目类路径中。但它仍然没有工作。
https://answers.sap.com/questions/12935437/call-op-bapi-using-cloud-sdk.html
更新
运行时未找到 JCO 类异常
- 你说的对。我在 SCP 上部署了应用程序,然后调用我提供的其余 API 来调用 S4HANA On-premise 系统的 BAPI。然后我在运行时得到了这个异常。
- 我正在使用 Spring Boot 应用程序。
- Spring boot 项目由 SAP Cloud SDK spring archetype 生成。
- 请参阅下面的错误堆栈跟踪。
- 右键单击我的项目->构建路径->配置构建路径->选择库选项卡->添加外部jar
- 我将我的应用程序部署为 Jar 文件。
异常堆栈跟踪
我要强调的一件事是 SAP 提供的官方文档说“无法将 SAP Java 连接器与 Spring Boot 应用程序一起使用”。
具有非 Spring Boot 应用程序的 SAP Java 连接器
我基于 SAP Cloud SDK 原型 scp-cf-tomee 创建了一个新项目,并尝试调用 bapi。我认为 JCo 问题已经消失,但是在调用 Bapi 时我得到了一个新的异常“未设置用户信息”。有人有类似的问题,但似乎还没有解决方案。
https://answers.sap.com/questions/12969692/getting-access-to-the-sap-java-connector-in-cloud.html
装饰目的地
我同意你的解释。也许不需要将其作为 Http 目的地。但由于 SAP Java 连接器问题,我被卡住了。
本地 RFC 目标定义
实际上我不知道 RFC 目标需要哪些属性。如果我只使用 HTTP,我会得到 http 状态 404 和服务未找到异常。
automation - SAP4HANA UI 自动化。如何?
我的公司通过他们的公司门户(而不是 SAPGui)为我们提供了访问 SAP for HANA 的权限。我猜是出于安全原因。不确定它是如何让我们登录的,可能是 SSO 或在后台有某种会话密钥,但我尝试了下面的脚本来自动化一些 SAP 流程,但它没有播放。
如果我转到脚本文件并双击它,我会在第 2 行收到语法错误。我认为由于无法通过 GUI 访问 SAP,它会要求我提供凭据(在门户中我通过 SSO 登录)。
这是错误的原因吗?
sap-cloud-platform - 使用 SAP Cloud SDK 时如何处理对 CSFR 令牌的需求?
我正在使用 SAP Cloud SDK for Java 在 S/4 的 SalesOrder API 上执行 CRUD。一切都很好,因为我可以从 Postman 执行这些操作。但是,只有在我包含预请求脚本以获取本博文中所述的 csrf 令牌时,来自 Postman 的这些请求才有效
如果我在没有博客文章中概述的预请求脚本的情况下运行请求,我会收到“403 Forbidden”。正如我所说,它适用于 Postman,但我想了解如何在不需要此脚本的情况下处理它,例如,如果我从另一个应用程序发出请求。SDK是否允许我以某种方式从应用程序代码处理这个问题。也许我错过了一些东西。
谢谢你的时间。
编辑:我不是直接从 Postman 向 S/4 提出请求。我部署了一个应用程序,它使用 Cloud SDK 向 S/4 发出请求。如果我在发送之前使用预请求脚本获取 CSFR 令牌并将其附加到请求中,则它可以工作,但如果我不使用,则为 403。所以,如果我们想象我不是在使用 Postman,而是在某个地方使用一些 ui 来填写表格并发送这个请求,我的理解是,我不应该像你建议的那样担心这个令牌,我的中间服务使用SDK 和 VDM 应该为我处理这个问题。这是我很难理解的。
这是servlet代码:
和 CreateSalesOrder 命令:
我正在使用 SDK 的 3.16.1 版本,并在清单中将 SDK 的日志记录级别设置为 DEBUG:
并将日志级别记录到 logback 中的 DEBUG
如果我从请求中删除预请求脚本并发送它,我会收到 403 响应,并且日志会显示以下消息:
"logger":"com.sap.cloud.sdk.service.prov.api.security.AuthorizationListener","thread":"http-nio-0.0.0.0-8080-exec-4","level":"DEBUG ","categories":[],"msg":"读取用户主体"
"logger":"com.sap.cloud.sdk.service.prov.api.security.AuthorizationListener","thread":"http-nio-0.0.0.0-8080-exec-4","level":"DEBUG ","categories":[],"msg":"在请求结束时破坏授权。" }
"logger":"com.sap.cloud.sdk.service.prov.api.security.AuthorizationService","thread":"http-nio-0.0.0.0-8080-exec-4","level":"DEBUG ","categories":[],"msg":"销毁授权 JWT 令牌。" }
sap - 如何安全地使用 S/4HANA 中的 API?
我知道如何在 S/4HANA Cloud Essentials 中启用通信系统、安排等以与 OData API 进行通信。我喜欢这里的过程。
现在我有一个 S/4HANA 单租户版,它的行为更像一个 OnPrem 系统。我并没有真正找到如何设置通信以使用来自 SCP 的 API 的指南。似乎人们正在使用具有基本身份验证的标准用户,这似乎有点不安全。
S/4Hana onPrem 或 STE 中的通信系统和安排是否有相同的概念?或者如何在不使用标准用户的情况下使用 API?这里的最佳做法是什么?例如,是否有 OAuth 服务器?
先感谢您!
sql - 尝试从服务端调用 SAP HANA 存储过程时出错
我正在尝试使用以下代码从我的服务端调用 SAP HANA hdbprocedure。
该过程将以下参数作为输入。
in_table_data 在 hdbdd_file_name.hdbdd 文件中定义如下。
当我从我的服务端调用该过程时,我遇到了错误。
您能否建议在数据库端或服务端需要更改哪些内容以解决此问题。
先感谢您。