使用SCP SDK requestBuilder中的子帐户目标

2020-08-23 18:28发布

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

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


大家好,

我已经完成了指南 最好在我的Successfactors系统之一而不是S/4上运行它。

由于SF没有任何现成的API,我使用此教程。 在我的cf全局帐户中,我将我的SF租户连接为一个系统,该系统在我的子帐户中创建了一个随时可用的目的地。

在我的requestBuilder中,我现在想使用此目标,但是它不允许我使用。 我得到的错误是:

 019-11-15T14:36:35.94 + 1100 [APP/PROC/WEB/0]错误设置了环境变量"目的地"。 将从此变量读取目标。 不建议将其用于生产性应用! 取消设置变量以从SAP Cloud Platform上的目标服务读取目标。
    2019-11-15T14:36.35 + 1400 [APP/PROC/WEB/0]错误无法为服务绑定建立目标:无法为给定名称" sfdemo"找到服务绑定! 找到以下绑定:myuaa。
    2019-11-15T14:36:35.94 + 1100 [APP/PROC/WEB/0]错误无法将特定的XSUAA服务实例与给定的JWT匹配。 绑定了以下XSUAA实例:myapp!t594。 将选择以下一项:myapp!t594。 这可能会在系统的其他部分产生错误!
    2019-11-15T14:36:35.94 + 1100在[VCAP_SERVICES]中找不到[APP/PROC/WEB/0] ERR服务'目标'。
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0] ERR(节点:81)UnhandledPromiseRejectionWarning:错误:找不到名称为" sfdemo"的目的地! 无法执行请求。
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]在Object.errorWithCause(/home/vcap/app/node_modules/@sap/cloud-sdk-util/dist/error.js:  14:20)
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]错误位于/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/request-builder/request-builder-  base.js:125:78
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]在process._tickCallback(内部/process/next_tick.js:68:7)出现ERR
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]错误引起原因:
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0] ERR错误:找不到与目标服务实例的绑定。 请将目标服务实例绑定到您的应用程序!
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]在getDestinationServiceCredentials(/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/scp-cf/destination-  accessor.js:394:15)
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]错误在getAccessToken(/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/scp-cf/destination-  accessor.js:327:60)
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]错误位于/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/scp-cf/destination-accessor。  js:172:42
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]错误在步骤(/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/scp-cf/destination-  accessor.js:46:23)
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]在Object.next(/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/scp-cf/destination-accessor.js:27:53)
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]错误位于/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/scp-cf/destination-accessor。  js:21:71
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]在新的Promise中出现错误()
    2019-11-15T14:36:36.04 + 1100 __awaiter处的[APP/PROC/WEB/0]错误(/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/scp-cf/destination-  accessor.js:17:12)
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]在getDestinationFromDestinationService(/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/scp-cf/destination-  accessor.js:149:12)
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]错误位于/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/scp-cf/destination-accessor。  js:131:107
    2019-11-15T14:36.04 + 1100 [APP/PROC/WEB/0]错误(节点:81)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。 该错误是由于在没有catch块的情况下抛出异步函数而引起的,或者是由于拒绝了未使用.catch()处理的诺言而引起的。  (拒绝ID:3)
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0] ERR(节点:81)[DEP0018] DeprecationWarning:已弃用未处理的承诺拒绝。 将来,未处理的承诺拒绝将以非零退出代码终止Node.js进程。
 

这是我的电话。 在requestBuilder的ts描述中,它描述了使用子帐户目标时jwt是必需的。 如何检索jwt并将其传递给这里? 有没有人有关于如何从节点应用程序使用子帐户目标的文档?

 var req = Candidate.requestBuilder()
     。得到所有()
     .top(20)//仅查看排名前20位的候选人
     .select(候选.FIRST_NAME,候选.LAST_NAME)
     。执行({
       jwt:?????,
       destinationName:" sfdemo"
     });

     返回要求
 }
 

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

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


大家好,

我已经完成了指南 最好在我的Successfactors系统之一而不是S/4上运行它。

由于SF没有任何现成的API,我使用此教程。 在我的cf全局帐户中,我将我的SF租户连接为一个系统,该系统在我的子帐户中创建了一个随时可用的目的地。

在我的requestBuilder中,我现在想使用此目标,但是它不允许我使用。 我得到的错误是:

 019-11-15T14:36:35.94 + 1100 [APP/PROC/WEB/0]错误设置了环境变量"目的地"。 将从此变量读取目标。 不建议将其用于生产性应用! 取消设置变量以从SAP Cloud Platform上的目标服务读取目标。
    2019-11-15T14:36.35 + 1400 [APP/PROC/WEB/0]错误无法为服务绑定建立目标:无法为给定名称" sfdemo"找到服务绑定! 找到以下绑定:myuaa。
    2019-11-15T14:36:35.94 + 1100 [APP/PROC/WEB/0]错误无法将特定的XSUAA服务实例与给定的JWT匹配。 绑定了以下XSUAA实例:myapp!t594。 将选择以下一项:myapp!t594。 这可能会在系统的其他部分产生错误!
    2019-11-15T14:36:35.94 + 1100在[VCAP_SERVICES]中找不到[APP/PROC/WEB/0] ERR服务'目标'。
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0] ERR(节点:81)UnhandledPromiseRejectionWarning:错误:找不到名称为" sfdemo"的目的地! 无法执行请求。
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]在Object.errorWithCause(/home/vcap/app/node_modules/@sap/cloud-sdk-util/dist/error.js:  14:20)
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]错误位于/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/request-builder/request-builder-  base.js:125:78
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]在process._tickCallback(内部/process/next_tick.js:68:7)出现ERR
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]错误引起原因:
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0] ERR错误:找不到与目标服务实例的绑定。 请将目标服务实例绑定到您的应用程序!
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]在getDestinationServiceCredentials(/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/scp-cf/destination-  accessor.js:394:15)
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]错误在getAccessToken(/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/scp-cf/destination-  accessor.js:327:60)
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]错误位于/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/scp-cf/destination-accessor。  js:172:42
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]错误在步骤(/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/scp-cf/destination-  accessor.js:46:23)
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]在Object.next(/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/scp-cf/destination-accessor.js:27:53)
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]错误位于/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/scp-cf/destination-accessor。  js:21:71
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]在新的Promise中出现错误()
    2019-11-15T14:36:36.04 + 1100 __awaiter处的[APP/PROC/WEB/0]错误(/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/scp-cf/destination-  accessor.js:17:12)
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]在getDestinationFromDestinationService(/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/scp-cf/destination-  accessor.js:149:12)
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0]错误位于/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/scp-cf/destination-accessor。  js:131:107
    2019-11-15T14:36.04 + 1100 [APP/PROC/WEB/0]错误(节点:81)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。 该错误是由于在没有catch块的情况下抛出异步函数而引起的,或者是由于拒绝了未使用.catch()处理的诺言而引起的。  (拒绝ID:3)
    2019-11-15T14:36:36.04 + 1100 [APP/PROC/WEB/0] ERR(节点:81)[DEP0018] DeprecationWarning:已弃用未处理的承诺拒绝。 将来,未处理的承诺拒绝将以非零退出代码终止Node.js进程。
 

这是我的电话。 在requestBuilder的ts描述中,它描述了使用子帐户目标时jwt是必需的。 如何检索jwt并将其传递给这里? 有没有人有关于如何从节点应用程序使用子帐户目标的文档?

 var req = Candidate.requestBuilder()
     。得到所有()
     .top(20)//仅查看排名前20位的候选人
     .select(候选.FIRST_NAME,候选.LAST_NAME)
     。执行({
       jwt:?????,
       destinationName:" sfdemo"
     });

     返回要求
 }
 
付费偷看设置
发送
3条回答
Bunny_CDM
1楼 · 2020-08-23 19:11.采纳回答

对于其他试图弄清楚这一点的人来说,几天前已经发布了有关该主题的一系列教程。

此处

SAP小菜
2楼-- · 2020-08-23 19:14

嗨弗洛里安,

我今天刚收到您发表评论的电子邮件通知,然后我说出那个日期……我不确定这里出了什么问题,但是对于您未回答您的问题我感到非常抱歉 太长。 现在要解决的问题:

1。 我在最初的响应中没有提供此功能:您可以使用 retrieveJwt 函数。 这适用于Node的IncomingMessage抽象,因此它可以与任何类型的服务器库/框架一起使用。

2。 据我了解,您正在尝试从订户的子帐户获取目的地,但日志显示用户令牌授予失败,并显示403:禁止错误。 我以前从未经常遇到此错误,但是我可以想到两个可能的原因:a)您的订阅设置无法正常工作,这意味着XSUAA服务无法识别您要传递的JWT用户。 允许您的应用代表其访问令牌的用户,或者b)首先您没有传递正确的JWT。

很抱歉再次延迟! 我希望这仍然可以帮助您解决问题,请随时提出任何后续问题。

最好的问候,
丹尼斯

三十六小时_GS
3楼-- · 2020-08-23 19:15

嗨弗洛里安,

我建议在这里做两件事:

a)您发布的日志的第一行提到您已设置了环境变量"目的地"。 我假设您的应用程序在CF上运行,因此manifest.yml中可能有一个条目。 如果未通过该变量找到目标,则SDK会尝试从其他地方获取目标,但通常不建议将此变量用于生产用途。

b)日志中还显示错误"未找到与目标服务的绑定"。 我假设您已经使用Extension Factory来连接S/4和SFSF系统? 在这种情况下:您当前可以通过XF连接到S/4系统,而无需使用目标服务,但是您现在无法对SFSF执行相同的操作。 因此,为了使用XF在子帐户中创建的目标,您需要将目标服务的实例和XSUAA服务都绑定到您的应用程序。

这应该可以解决您当前遇到的错误,并使您的应用可以从子帐户获取目的地。

最后,请注意jwt和子帐户:如果目标位于与应用程序运行所在的子帐户相同,则无需在此处传递JWT。 但是,如果您要编写多租户应用程序并需要从订户的子帐户获取目的地,则需要在此处传递JWT。 此处需要的JWT是XSUAA服务在用户登录到您的应用程序时(通过approuter/IdP)生成的令牌。

我同意这里缺少文档,至少在您正在查看execute函数的文档的情况下。 通常,您可以在此处找到有关用于获取目标的功能的文档: https://help.sap.com/doc/9dbcab0600b346c2b359a8c8978a45ba/1.0/en-US/modules/_sap_cloud_sdk_core.html#getdestinationfromdestinationservice

希望有帮助! 如果您还有其他问题,请随时与我们联系!

最好的问候

丹尼斯

一周热门 更多>