问题标签 [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.

0 投票
1 回答
874 浏览

reactjs - 如何将 React Web 应用程序部署到 Fiori Launchpad?

我有一个使用ui5-webcomponents-reactSAP 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 中创建了一个定制的ZBSP 应用程序并手动上传和链接所有相关的“缩小”文件)

我可以通过 SAP 中的开放式 Web 服务访问该应用程序。

但我不确定如何继续?

上述方法是否正确?必须有一个更简单的方法来做到这一点?

我使用的是最新版本的 S/4 HANA,不希望使用 Eclipse 或 WebIDE(主要是因为我使用的是本地版本,而且我不是 Eclipse IDE 的忠实粉丝,因为它是与 VSCode 相比,速度要慢得多,资源也更多)。

0 投票
0 回答
109 浏览

sap-cloud-platform - 在事件触发器上将数据从 SAP S/4HANA 发送到 SAP 数据中心

每当创建采购订单时,我都想将我的数据从 SAP S/4HANA 传输到 SAP 数据中心。这些似乎是消息队列问题,但我不确定该使用什么。

因此,每当有订单创建时,S/4HANA 都会发送通知,SAP 企业消息队列可以接收到该通知,但我不确定如何从该队列将数据发送到 datahub。datahub 能否提供一个 SAP EM 消费者,该消费者将从 EM 队列中获取消息。我可以看到 datahub 有 kafka 消费者,但它是否支持 SAP 企业消息传递?

0 投票
2 回答
286 浏览

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的方式不同?

0 投票
1 回答
581 浏览

abap - SAP 灵活工作流前置条件下拉文本未填充

我创建了一个新的灵活工作流场景并添加了一些先决条件。其中一个条件只有一个参数,数据元素的域具有固定值(YES 和 NO)。

问题是,在 Fiori 应用程序“管理工作流程”中,当我使用此前提条件时,值字段显示为自由文本输入字段,而不是域值的下拉列表。

但是,如果我将条件参数更改为 XFELD,我可以看到应用程序中的相同条件显示为带有“是”和“否”选项的下拉列表。不过,由于业务需求,我不想使用 XFELD。

任何想法如何获得具有固定值的域的下拉列表?

PS:我还尝试将 CDS 视图 VH(表 dd07l 上的视图)附加到条件参数。但该字段仍显示为自由文本字段。

0 投票
2 回答
486 浏览

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 类异常

  1. 你说的对。我在 SCP 上部署了应用程序,然后调用我提供的其余 API 来调用 S4HANA On-premise 系统的 BAPI。然后我在运行时得到了这个异常。
  2. 我正在使用 Spring Boot 应用程序。
  3. Spring boot 项目由 SAP Cloud SDK spring archetype 生成。
  4. 请参阅下面的错误堆栈跟踪。
  5. 右键单击我的项目->构建路径->配置构建路径->选择库选项卡->添加外部jar
  6. 我将我的应用程序部署为 Jar 文件。

异常堆栈跟踪

我要强调的一件事是 SAP 提供的官方文档说“无法将 SAP Java 连接器与 Spring Boot 应用程序一起使用”。

https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/3cee866c27ec4492b789b10c5d52d94b.html

具有非 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 和服务未找到异常。

0 投票
1 回答
1040 浏览

automation - SAP4HANA UI 自动化。如何?

我的公司通过他们的公司门户(而不是 SAPGui)为我们提供了访问 SAP for HANA 的权限。我猜是出于安全原因。不确定它是如何让我们登录的,可能是 SSO 或在后台有某种会话密钥,但我尝试了下面的脚本来自动化一些 SAP 流程,但它没有播放。

如果我转到脚本文件并双击它,我会在第 2 行收到语法错误。我认为由于无法通过 GUI 访问 SAP,它会要求我提供凭据(在门户中我通过 SSO 登录)。

这是错误的原因吗?

0 投票
3 回答
948 浏览

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 令牌。" }

0 投票
1 回答
513 浏览

sap - 如何安全地使用 S/4HANA 中的 API?

我知道如何在 S/4HANA Cloud Essentials 中启用通信系统、安排等以与 OData API 进行通信。我喜欢这里的过程。

现在我有一个 S/4HANA 单租户版,它的行为更像一个 OnPrem 系统。我并没有真正找到如何设置通信以使用来自 SCP 的 API 的指南。似乎人们正在使用具有基本身份验证的标准用户,这似乎有点不安全。

S/4Hana onPrem 或 STE 中的通信系统和安排是否有相同的概念?或者如何在不使用标准用户的情况下使用 API?这里的最佳做法是什么?例如,是否有 OAuth 服务器?

先感谢您!

0 投票
1 回答
590 浏览

sql - 尝试从服务端调用 SAP HANA 存储过程时出错

我正在尝试使用以下代码从我的服务端调用 SAP HANA hdbprocedure。

该过程将以下参数作为输入。

in_table_data 在 hdbdd_file_name.hdbdd 文件中定义如下。

当我从我的服务端调用该过程时,我遇到了错误。

您能否建议在数据库端或服务端需要更改哪些内容以解决此问题。

先感谢您。

0 投票
1 回答
2755 浏览

user-interface - 使用 GUI_DOWNLOAD 将标题行下载到 TXT

使用函数'GUI_DOWNLOAD'遇到了一个小问题。试图在我创建的 .txt 文件的顶部附加一个标题行。我的解决方案是:

该代码有效。但是格式很糟糕,因为长度不同(标题行和数据)

我的文件格式

在 it_outh 中使用较短的描述是解决该问题的唯一方法吗?或者你们中有人对我有更好的想法吗?

祝你今天过得愉快。

问候,丹尼斯