问题标签 [s4sdk]

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 回答
108 浏览

java - 尝试检索 BusinessPartnerUUID 时出错

我已经关注了这个深潜博客 12。 深潜 12 它运行良好。而且我对BusinessPartnerUUID更感兴趣,所以我修改了文件service-model.cds。

但是,当我这次运行时,服务返回

当我进行一些谷歌搜索时,它引导我使用这个方法 Method internalValueToString

这是由应用程序编程模型处理的 在这种情况下我可以做些什么来解决错误?谢谢

0 投票
1 回答
130 浏览

java - 应用程序编程模型 $filter 操作

在实现了 Deep Dive 12 中的所有步骤之后,我一直在尝试使用 $filter 操作,就像普通的 oData 服务应该做的那样。

深潜 12

https://baseurl/odata/v2/CrudService/BusinessPartner ?$filter=BusinessPartnerCategory eq 'abc'。

但是,它不起作用。它总是返回相同的实体集。我看过它的javadoc。似乎没有检索过滤器的方法。我看到有 getTopOptionValue、getSkipOptionValue、getSelectProperties 和 getOrderByProperties。

获取 $fitler 操作值的选项有哪些?

另一件事是在深潜 4 中。我看到过滤器是硬编码的。

深潜4

我需要什么来构建可能包含多个过滤器的动态过滤器语句?

谢谢

0 投票
1 回答
288 浏览

java - 如何保护 CF 中的应用程序编程模型

在完成深入研究 12 Deep Dive 12之后,我尝试使用 SAP S/4HANA Cloud SDK 的第 7 步系列中第 7 步的说明保护应用程序:在 SAP Cloud Platform, CloudFoundry 上保护您的应用程序

我对获取用户感兴趣,所以我修改了查询服务

但是,在我通过 approuter 登录后,输入我的凭据,它会显示错误无法获取当前用户:用户未通过身份验证。

为什么虽然我登录 approuter 却不允许我获取 UserAccessor.getCurrentUser()?

这是我的 github 链接:深潜 git

更新:添加了日志

更新:添加 Java 应用程序日志

Java 日志

更新:添加依赖树文件 依赖树文件

0 投票
1 回答
644 浏览

java - 如何在不更新或创建根节点的情况下通过 oData 创建新的子节点实体

我在 S/4HANA Cloud 中创建了一个自定义业务对象,它包括一个父节点和一个子节点,还为 S/4HANA 自定义 OData 服务生成了 Java VDM。我将它与 SAP Cloud Platform SDK 结合起来进行服务开发(我再也找不到它的 SAP 帮助页面了)。

该方案是能够仅将新的子节点添加到现有的根节点。

当我尝试使用其他字段值对 ParentEntitySet()/childNavigation 执行 POST 操作时,我收到一条错误消息“方法调用无效:在非根实体 'YY1_CHILD_ENTITY' 上调用了 'CREATE' 方法。

我能做些什么来解决这个错误?

更新:

正如我所描述的,旧代码导致了错误

新代码:错误消失了,但当我尝试使用导航发布子实体时出现新错误。

Inavalid Entity name: No entity with name ParentClass(guid'<parentKey>')/to_ChildEntity in the OData service

但是,当我使用与上述相同的 url 进行导航查询时,它工作得很好。只有用导航创建才有这个问题。

下面的方法属于 ParentClass

我在用着

0 投票
1 回答
176 浏览

s4sdk - 通过 API_MATERIAL_DOCUMENT_SRV 发布 311 运动

我正在尝试使用 API 将库存从无限制库存转移到冻结库存。我使用的 API 是 API_MATERIAL_DOCUMENT_SRV。我收到以下错误:

“无法在项目级别为此操作设置字段 InventoryStockType”

我通过 Postman 发布的消息如下:

谁能建议这条消息应该是什么样子?

0 投票
1 回答
457 浏览

s4sdk - 在 Cloud Foundry 上使用 SAPOfflineTokenServices 时 JWT 令牌验证出错

我们使用 S4HANA Cloud SDK 并将服务部署到 SAP Cloud Platform、Cloud Foundry 环境。

该服务绑定到 Cloud Foundry UAA。使用 @sap/approuter 执行身份验证,然后在 Authorization Header 中转发 JWT 令牌。

它在大多数情况下都可以正常工作,但似乎在随机一段时间后令牌验证失败:

从调用堆栈中可以看出,我们使用 com.sap.xs2.security 0.22.2 和 com.sap.security.nw.sso.linuxx86_64.opt 1.0.0 进行令牌验证。

知道可能导致此问题的原因是什么吗?

0 投票
1 回答
651 浏览

s4sdk - 使用 Gradle 时,依赖项两次放入 Spring Boot (>2.x) jar

像这样为 CF 添加 Cloud SDK: compile "com.sap.cloud.s4hana:s4hana-all:${cloudSDKVersion}" compile ("com.sap.cloud.s4hana.cloudplatform:scp-cf:${cloudSDKVersion}") 会导致部署到 CF 的 spring boot jar 中出现重复的 jar。例子: core-2.3.1.jar connectivity-2.3.1.jar

  • 这将导致 :
    • 运行时的 ClassNotFoundExceptions
    • 防止 cf push 命令出错: Comparing local files to remote cache... Aborting push: File BOOT-INF/lib/core-2.3.1.jar has been modified since the start of push. Validate the correct state of the file and try again. FAILED
0 投票
1 回答
90 浏览

s4sdk - Problem running project from s4sdk archtypes with artifact id: scp-cf-spring

I'm getting issues in running hello world project when I created it from below command:

#xA;

The project gets created fine but when I'm running the application I get an error in creating beans, the error looks something like this:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.sap.cloud.sdk.cloudplatform.cache.CacheMonitor': Cannot create inner bean '(inner bean)#630d4350' of type [com.sap.cloud.sdk.cloudplatform.cache.CacheMonitor] while setting bean property 'listener'; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [com.sap.cloud.sdk.cloudplatform.cache.CacheMonitor] for bean with name '(inner bean)#630d4350' defined in URL [jar:file:/Users/setup/.m2/repository/com/sap/cloud/s4hana/cloudplatform/caching/2.4.2-SNAPSHOT/caching-2.4.2-SNAPSHOT.jar!/com/sap/cloud/sdk/cloudplatform/cache/CacheMonitor.class]: problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError: com/sap/cloud/sdk/cloudplatform/monitoring/JmxMonitor . . .

Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [com.sap.cloud.sdk.cloudplatform.cache.CacheMonitor] for bean with name '(inner bean)#630d4350' defined in URL [jar:file:/Users/setup/.m2/repository/com/sap/cloud/s4hana/cloudplatform/caching/2.4.2-SNAPSHOT/caching-2.4.2-SNAPSHOT.jar!/com/sap/cloud/sdk/cloudplatform/cache/CacheMonitor.class]: problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError: com/sap/cloud/sdk/cloudplatform/monitoring/JmxMonitor . . .

Caused by: java.lang.ClassNotFoundException: com.sap.cloud.sdk.cloudplatform.monitoring.JmxMonitor

Please let me know if I should furnish more details.

0 投票
2 回答
222 浏览

s4sdk - 无法在具有 oAuth2SAMLBearerAssertion 身份验证的云代工环境中使用 S4Hana SDK 执行 odata 调用

我正在尝试使用 s4 sdk 连接到 s4 hana 系统。在云代工环境中通过 .execute() 方法执行调用时,我看到以下错误日志:

注意:我已经在子账户和 S4Hana 系统之间配置了信任,并创建了各自的通信和业务用户。目标中使用的关联身份验证方法是 oAuth2SamlBearerAssertion。注意:调用在本地和云代工环境中都可以通过基本身份验证正常执行。

有人可以建议这里有什么问题。

0 投票
1 回答
106 浏览

s4sdk - DestinationAccessException 在 Cloud Foundry 环境中使用 S4 SDK 执行 ODATA V2 调用时出错

用于执行调用的目的地被配置为身份验证类型为oAuth2SAMLBearerAssertion,业务用户已经在系统中使用用户 ID、电子邮件和其他基本详细信息。从 SDK 调用执行方法时,出现以下错误: