无法从ABAP执行用户注册服务(云身份服务)

2020-09-16 23:08发布

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

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

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


嗨,

我在Cloud Identity Service中有一个应用程序。 我已经提供了该服务的API身份验证。

我在HCP中创建了一个SAPUI5应用程序,并且能够使用REST API进行用户注册。

https://helphan。 .ondemand.com/cloud_identity/frameset.htm?e6bb70d5e43c4ff89ff700beb82b25fe.html#loio0aa433c741a24df9ac2b3a5faca202de

但是,当我从ABAP服务器或Boomerang之类的客户端调用相同的API URL时,它会给出以下响应

响应码:400-错误的请求-名称ID属性为必填项。

但是我提供了name_id和email属性。

4条回答
SAP砖家
2020-09-17 00:10
调用方法cl_http_client => create_by_destination
         出口
           目的地='HCP'
         输入
           客户端= http_client
 *例外情况
 * arguments_not_found = 1
 * destination_not_found = 2
 * destination_no_authority = 3
 * plugin_not_active = 4
 * internal_error = 5
 *其他= 6
               。
       如果sy-subrc <> 0。
 *在这里实施适当的错误处理
 *      万一。

 呼叫方法http_client-> REQUEST-> SET_HEADER_FIELD
      导出名称='name_id'
                VALUE = nameid
                 。


  呼叫方法http_client-> REQUEST-> SET_HEADER_FIELD
       出口名称='电子邮件'
                 VALUE =电子邮件。


  呼叫方法http_client-> REQUEST-> SET_HEADER_FIELD
       出口名称='first_name'
                 VALUE =第一。


  呼叫方法http_client-> REQUEST-> SET_HEADER_FIELD
       出口名称='姓氏'
                 VALUE =最后。


 呼叫方法http_client-> REQUEST-> SET_HEADER_FIELD
      导出名称='〜request_method'
                VALUE ='POST'
                 。


  呼叫方法http_client-> REQUEST-> SET_HEADER_FIELD
       出口名称="内容类型"
                 VALUE ='application/x-www-form-urlencoded'。




 清除单。
 CONCATENATE'name_id ='namid'&email ='mail'&first_name ='FIRST'&last_name ='LAST INTO成单身。


 呼叫方法http_client-> REQUEST-> append_cdata
   出口
     数据= w_single
 *偏移量= 0
 *长度= -1
     。
         呼叫方法http_client->发送
           例外情况
             http_communication_failure = 1
             http_invalid_state = 2。




         呼叫方法http_client-> receive
           例外情况
             http_communication_failure = 1
             http_invalid_state = 2
             http_processing_failed = 3。






 呼叫方法http_client-> RESPONSE-> GET_STATUS
     输入
       CODE = HTTP_STATUS_CODE
       原因= STATUS_TEXT。
         结果= http_client->响应-> get_cdata()。


         IF HTTP_STATUS_CODE =201。"成功


        

         万一。


         呼叫方法http_client->关闭
           例外情况
             http_invalid_state = 1
             OTHERS =2。

嗨,

您可以使用上面的代码-这将在behaulf上进行用户注册。

或者您可以使用基于SCIM的API来创建用户(根据您的业务情况)

谢谢

Sunoj Michael

一周热门 更多>