从SCP中的ABAP调用业务规则时出错

2020-08-18 16:33发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我们无法从SAP Cloud P...

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

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


我们无法从SAP Cloud Platform中的ABAP调用业务规则API。 请注意-使用我们的客户端ID,机密和令牌URL,我们可以从API Business Hub调用它而不会出现问题。

这是我们从ABAP(在Eclipse中)运行它时遇到的错误:

响应:{"错误":"未经授权","错误说明":"需要完全身份验证才能访问此资源"}

这是我们的源代码:

尝试。
         DATA(lo_http_destination)=
              cl_http_destination_provider => create_by_url('https://bpmruleruntime.cfapps.us10.hana.ondemand.com/rules-service/rest/v2/workingset-rule-services')。

         "可用的API端点
         " https://{runtimeurl}/rules-service/rest


         "按目标创建HTTP客户端
         DATA(lo_web_http_client)= cl_web_http_client_manager => create_by_http_destination(lo_http_destination)。


         "使用API​​沙箱的API密钥添加标头
         DATA(lo_web_http_request)= lo_web_http_client-> get_http_request()。
         lo_web_http_request-> set_header_fields(VALUE#(
         (name ='Content-Type'值='application/json')
         (name ='Accept'值='application/json')
         (名称='APIKey'值='我们来自Business Hub的API密钥')
          ))。


         "用于生产性API端点的可用安全方案
         " OAuth 2.0
         lo_web_http_request-> set_text('{" RuleServiceId":"我们的规则服务ID","词汇":[{" ProfitCenterCompanyCode":{" BUKRS":" testCC"," PRCTR":" ourPR"}}}}'')  。


         "设置请求方法并执行请求
         DATA(lo_web_http_response)= lo_web_http_client->执行(if_web_http_client => post)。
         DATA(lv_response)= lo_web_http_response-> get_text()。


       捕获cx_http_dest_provider_error cx_web_http_client_error cx_web_message_error。
         "错误处理
     ENDTRY。


     "取消注释以下行以进行控制台输出;先决条件:代码段是if_oo_adt_classrun〜main的实现
     out-> write(| response:{lv_response} |)。
   终结法。