问题标签 [sap-cloud-sdk]

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

sapui5 - 应用内可扩展性和并行可扩展性之间的区别?

谁能解释 SAP 中关键用户可扩展性和并行可扩展性之间的主要区别?

0 投票
1 回答
117 浏览

sap-cloud-sdk - 模拟 Https 目标以连接到 OAuth2 身份验证后面的系统

用例 :: 试图模拟一个目标,该目标将帮助我们连接到 IDP 后面的云 S4 系统,并且需要 Oauth2 身份验证。

我已经能够模拟本地目的地以连接到基本身份验证后面的系统。我们正在尝试了解如何模拟需要我们生成令牌的附加组件,例如 XSUAA 服务。我们希望使用此目标来使我们能够在本地连接到远程系统,而无需修改为云环境开发的代码。

0 投票
2 回答
193 浏览

sap-cloud-sdk - 可以在 docker 中将工件的默认存储库配置为 Nexus 吗?

我们的项目启用了 Cloud SDK Pipeline。根据拉取请求,触发了来自 Pipeline 的 pr 作业,并尝试使用从以下网址下载的工件进行构建:https ://repo.maven.apache.org/maven2 。但是,该项目的某些依赖项在该存储库中不可用。我们希望默认连接到 Nexus 存储库,因为所有依赖项都在那里可用。是否可以以这种方式配置 docker?

12:46:45 [错误] 无法解析的导入 POM:找不到工件 com.sap.sgs:security-patched-spring-boot-dependencies:pom:2.1.7.RELEASE-sap-06 在中央(https: //repo.maven.apache.org/maven2 ) @ 第 28 行,第 22 列

12:46:45 [错误] org.springframework.boot:spring-boot-starter-test:jar 的“dependencies.dependency.version”缺失。@ 第 183 行,第 19 列

12:46:45 [错误] org.springframework.boot:spring-boot-starter-actuator:jar 的“dependencies.dependency.version”丢失。@ 第 187 行,第 19 列

12:46:45 [错误] org.springframework.boot:spring-boot-starter-aop:jar 的“dependencies.dependency.version”丢失。@ 第 191 行,第 19 列

0 投票
1 回答
225 浏览

sap-cloud-sdk - 如何覆盖通用 ODATA 扩展处理功能

我们目前正在处理我们提供的 OData 接口的性能问题,因为 UI5 发出带有多个扩展路径的读取请求。由于框架对请求的通用处理,这会导致每个扩展选项的额外处理,我们需要防止这种情况发生。

阅读有关此主题的博客似乎有一种方法可以以某种方式覆盖通用处理:

https://blogs.sap.com/2018/03/19/sap-cloud-platform-sdk-for-service-development-create-odata-service-7-more-navigation-read-create-expand-sqo/

在这种情况下,我们需要决定是否有能力依赖 FWK 功能。当然,这样的通用支持不可能是高性能的。但是对于少量数据,免费获得它是一件好事。请继续关注以了解如何使用自己的特定实现来覆盖此类通用 FWK 功能。

但是,没有关于此的进一步博客文章并查看框架,我唯一的想法是覆盖它是配置和使用自己的 com.sap.gateway.core.api.provider.data.IDataProvider 实现来处理请求以自定义方式,尽管这将是一个巨大的解决方法。

所以问题是是否有一些更精简或更简单的方法来覆盖我错过的这个功能?

更新: 我更新以创建自定义数据提供程序并在 servlet 初始化后将其注册到 RuntimeDelegate。然后,此自定义数据提供程序将检查映射方法处理程序上的自定义注释,以查看是否应处理扩展。如果不是,它只会读取实体,但不会执行通用扩展读取。这或多或少都很好,但当然缺少的是一种在 ReadRequest 中传递要扩展的属性的方法。到目前为止,只有一个静态实现可能解决我们的性能问题,但如果有另一个更好的解决方案,我很乐意提供提示......

0 投票
0 回答
112 浏览

sap-fiori - 自定义 OData 服务在 iOS SAP Cloud Platform 应用程序上缺少属性

为了理解 OData <-> SAP Cloud Platform 链接,我使用适用于 Node.js 的 Jaystack OData V4 服务器 ( https://jaydata.org/jaystack-odata-v4-server ) 库开发了自己的最小 OData 服务.

首先,我添加了一个属性 - “ID”。

这是元数据文件:

当我使用此服务作为目标生成应用程序时,一切正常:

生成的应用程序的屏幕截图,显示具有单个“ID”属性的所有实体

一旦我尝试向我的 OData 模型添加另一个属性 - 例如“myOtherProperty”,我在重新生成和运行应用程序时收到以下消息:

运行重新生成的应用程序时缺少属性错误

当我查看服务中的原始 JSON 时,它抱怨缺少的属性“myOtherProperty”显然在那里:

这是更新的架构:

知道为什么 SDK 会抱怨缺少属性吗?似乎对于其他示例 OData 服务,这似乎不是问题,所以我猜它与操纵杆库有关,或者可能是一个小怪癖。

任何帮助将不胜感激!

0 投票
1 回答
397 浏览

odata - 如何使用 SAP Cloud SDK 执行深度更新

目前,出于性能原因,我们正在尝试使用 SAP Cloud SDK 对作为 OData 服务公开的实体结构执行深度更新。根据我们对更新请求使用 replaceEntity() 策略的理解,我们希望将完整的结构发送到 OData 服务,类似于此处对深度插入用例的描述:

https://blogs.sap.com/2017/12/07/step-20-with-s4hana-cloud-sdk-create-and-deep-insert-with-the-virtual-data-model-for-odata/

但是,这样做时,我们注意到仅发送实体字段,而没有发送任何导航属性。通过 SDK 调试/浏览后,这似乎是预期的行为,如以下方法所示:

请求进行深度更新时是否有一些配置选项?还是应该退回到后端的批处理请求?如果这不是一个支持的评论,是否在路线图上也将不胜感激!

0 投票
1 回答
522 浏览

sap-cloud-sdk - 将 OData 结果传输到销售订单模拟实体时,销售订单模拟实体中缺少导航值 to_ScheduleLine

我正在使用 SAP Cloud SDK 调用 OData 服务 API_SALES_ORDER_SIMULATION_SRV 来进行销售订单模拟。

我使用的有效载荷如下:

我从 S/4HANA 得到的回复。

它在 SAP Gateway Client 中运行良好,它返回我想要的所有数据,包括项目中的 to_ScheduleLine 导航数据。

但是当我使用 Cloud SDK 调用 API 并设置相同的有效负载时,返回的销售订单模拟数据没有 to_ScheduleLine 导航数据。

我深入查看了SDK的源码,发现响应中包含了这部分数据。但是在将odata结果传输到销售订单模拟实体时,数据会丢失。

OData 响应

使用类 FluentHelperCreate.class 中的属性构造 EntityT 时,计划行属性会丢失。

to_ScheduleLine 数据对我们的业务工作流程非常重要。因为客户在模拟销售订单并提供item的RequestedQuantity时,需要知道存储是否足够。

你能帮忙看看这个问题吗?

SAP Cloud SDK 版本:3.3.1 S/4HANA 本地版本:1909

==================================================== ============================

更新

根项目中的 pom.xml

应用程序项目中的 pom.xml

谢谢,

杰瑞

0 投票
1 回答
286 浏览

javascript - SAP Cloud SDK JavaScript:具有位置 ID 的 onPremise 目的地没有 CSRF 令牌

我在 SAP Cloud Platform 上有一个应用程序,它使用 SAP Cloud SDK JavaScript(版本 1.11.3)与具有相应云连接器的 OnPremise 目标进行通信。当目标和云连接器上的属性“位置 ID”为空时,请求工作正常。

但是,当指定位置 ID 的值(在目标和云连接器上)时,只有 GET 请求有效。

其他请求(例如 PATCH、POST)失败并显示以下错误消息:

使用 SAP Cloud SDK for Java 时不会发生这种情况。

我错过了什么吗?我应该手动设置“x-csrf-token”标头吗?

0 投票
1 回答
274 浏览

jenkins-pipeline - SAP Cloud SDK Jenkins 管道 s4sdk-pipeline.groovy - 跳过生产部署步骤

我已经设置了 Jenkins 项目吹笛者(https://sap.github.io/jenkins-library/)。然后,我设置了一个基本的 SAP Cloud Application Programming 模型应用程序,该应用程序集成了具有默认配置的 SAP Cloud SDK 管道,并取消了“productionDeployment”阶段的注释并完成了 Cloud Foundry 端点/组织/空间等。我已将应用程序提交给主分支在 git 存储库中。

管道成功执行,但正在跳过生产部署步骤。

管道执行结果

检查日志时,我看到:

当我查看脚本(https://github.com/SAP/cloud-s4-sdk-pipeline/blob/master/s4sdk-pipeline.groovy)时,我看到:

谁能解释通过commonPipelineEnvironment.configuration.runStage.PRODUCTION_DEPLOYMENT检查以执行 stageProductionDeployment 脚本需要什么?

我的 pipeline_config.yml 文件(匿名)是:

我的 Jenkins 文件没有改变:

任何想法我在生产部署中缺少什么以及如何通过脚本中的此检查进行生产部署?

问候尼尔

0 投票
1 回答
66 浏览

sap-cloud-sdk - 使用为自定义 odata 服务生成的 java vdm 更新价格后返回的结果为 null

我们有一个自定义 OData 服务(功能导入)来更新 S/4HANA 本地系统 (1909) 中的价格。我使用 Java VDM Generator 为这个 OData 服务生成 VDM。

OData 服务更新价格

/sap/opu/odata/SAP/ /ChangePrice?SalesOrganisation=' '&Plant=' '&MaterialNumber=' '&ConditionAmount=2100&ConditionUnit='EUR'&ValidFrom=datetime'2019-01-01T00:00:00'&ValidTo=datetime'2019 -12-31T00:00:00'

在我调用 changePrice 方法并在 S/4HANA 系统中更新价格但返回的实体 (priceCondUpdated) 为空之后。

我调试了 SAP Cloud SDK 的源代码,发现 OData 服务给出了正确的响应。

OData 响应

{"__metadata":{"id":" http://host:port/sap/opu/odata/sap/ /TransferPriceCondition(SalesOrganisation=' ',Plant=' ',MaterialNumber=' ')","uri" :" http://host:port/sap/opu/odata/sap/ /TransferPriceCondition(SalesOrganisation=' ',Plant=' ',MaterialNumber=' ')","type":" .TransferPriceCondition"},"SalesOrganisation ":"1709","Plant":" ","MaterialNumber":"***","ConditionAmount":"123.000","ConditionUnit":"EUR","ValidFrom":"/Date(1546346659000)/ ","ValidTo":"/日期(1577796259000)/"}

当它要从 SDK 中的响应中获取实体时,请参阅下面的源代码 responseJsonObject 不包含 edmFunctionImportName(changePrice)。所以它会返回null。

Cloud SDK 中 FunctionImportResponseParser.java 的源代码

你能帮忙看看这个问题吗?

SAP Cloud SDK 版本:3.3.1 S/4HANA 内部部署:1909

谢谢,杰瑞