S/4 HANA Cloud SDK JavaScript代码

2020-09-04 06:19发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


丹尼斯,你好

为了在此进行有关JavaScript代码的讨论,需要在此处启动一个新线程。

我的完整代码如下-

const express = require(" express");

const BusinessPartners = require(" @ sap/cloud-sdk-vdm-business-partner-service");

exports.businessPartners =函数(req,res){

getAllBusinessPartners()。

然后(businessPartners => {res.status(200).send(businessPartners);})

.catch(error => {res.status(500).send(error.message);

});;

}

函数getAllBusinessPartners(){

返回BusinessPartner.requestBuilder()

.getAll()

.withCustomHeaders({'APIKey':'mcJX5Yp6iMh3jXlGbDt17vNzyWgARQ1E'}).select(BusinessPartner.FIRST_NAME,BusinessPartner.LAST_NAME).filter(BusinessPartner.FIRST_NAME.equals(" John"))

.top(5)

.skip(0)

.execute({destinationName:'SAPS4HANASandBox'});

}

请让我知道是否要在此处进行任何更正?

谢谢

Mahesh Z。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


丹尼斯,你好

为了在此进行有关JavaScript代码的讨论,需要在此处启动一个新线程。

我的完整代码如下-

const express = require(" express");

const BusinessPartners = require(" @ sap/cloud-sdk-vdm-business-partner-service");

exports.businessPartners =函数(req,res){

getAllBusinessPartners()。

然后(businessPartners => {res.status(200).send(businessPartners);})

.catch(error => {res.status(500).send(error.message);

});;

}

函数getAllBusinessPartners(){

返回BusinessPartner.requestBuilder()

.getAll()

.withCustomHeaders({'APIKey':'mcJX5Yp6iMh3jXlGbDt17vNzyWgARQ1E'}).select(BusinessPartner.FIRST_NAME,BusinessPartner.LAST_NAME).filter(BusinessPartner.FIRST_NAME.equals(" John"))

.top(5)

.skip(0)

.execute({destinationName:'SAPS4HANASandBox'});

}

请让我知道是否要在此处进行任何更正?

谢谢

Mahesh Z。

付费偷看设置
发送
3条回答
95年老男孩
1楼 · 2020-09-04 06:54.采纳回答

嗨,Mahesh,

skip(0)是多余的,我将忽略它。
执行以下操作:

 const BusinessPartners = require(" @ sap/cloud-sdk-vdm-business-partner-service"); 

然后,BusinessPartners将是一个对象,其中包含业务伙伴服务包导出的所有内容。

您可能想要的是以下内容:

 const BusinessPartners = require(" @ sap/cloud-sdk-vdm-business-partner-service")。BusinessPartner;

 BusinessPartner.requestBuilder()... 

或者,您也可以这样做:

 const BusinessPartners = require(" @ sap/cloud-sdk-vdm-business-partner-service");

 BusinessPartners.BusinessPartner.requestBuilder()... 

虽然功能上相同,但建议您采用第一种方法以提高可读性。

顺便说一句,如果您使用像VSCode这样的现代编辑器,则应该获得完全自动补全功能,向您显示从哪个对象可以使用哪些属性和/或功能。

最好的问候

丹尼斯

hongfeng1314
2楼-- · 2020-09-04 07:02

嗨,Mahesh,

我只是想了解有关您的S4/HANA云环境的更多信息。 它在哪里托管? 我想做类似的事情,但无法使用云SDK来访问S4/HANA云。

希望很快能收到您的来信。

此致

Aniruddh Mathur

clasier
3楼-- · 2020-09-04 07:15

您在此处提到的消息不是每条错误,而是一条警告。 标头并非在所有情况下都是必需的。

为了获得JWT,您将需要设置一个approuter。 JWT是Cloud Foundry上授权的基本机制。 对于安装程序,我建议此博客文章。 虽然介绍了如何保护Java应用的安全,但approuter的设置和JS的概念都是相同的。

如果您有一个approuter设置,则应该可以通过执行以下操作(假设您使用的是express.js或基于express.js的东西)从传入请求的Authorization标头中获取JWT:

 const jwt:字符串=/^ Bearer(。*)$/。exec(req.headers.authorization)[1]; 

最后,您可以在进行如下VDM调用时使用它:

 BusinessPartner.requestBuilder()
     。得到所有()
     ...
     .execute({destinationName:'YourDestination',jwt:'yourjwt'});

 


现在,从理论上讲,只要您使用技术用户(?),就不需要将其与本地系统集成。
但是,您需要的是Cloud Connector。 你设置好了吗?

一周热门 更多>