在SAP中使用外部REST服务(SAP-> DMZ-> Ext Service)

2020-08-25 13:06发布

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

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


你好大师,

有可能吗?

我想在我的SAP GateWay服务器中使用外部REST Web服务。

我们有DMZ设置(Ext System-> DMZ-> SAP),同样工作正常,

现在,我想实施反向方案,SAP-> DMZ-> Ext Service。

如有可能,要求您对此进行一些说明。


最好的问候

Prajesh Desai

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

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


你好大师,

有可能吗?

我想在我的SAP GateWay服务器中使用外部REST Web服务。

我们有DMZ设置(Ext System-> DMZ-> SAP),同样工作正常,

现在,我想实施反向方案,SAP-> DMZ-> Ext Service。

如有可能,要求您对此进行一些说明。


最好的问候

Prajesh Desai

付费偷看设置
发送
3条回答
compass1988
1楼-- · 2020-08-25 13:43

你好Prajesh,

在此处粘贴一个代码段,将SAP连接到外部REST服务,该服务给出CSV作为响应,请告诉我这是否对您有所帮助,或者您是否需要更多信息。

最诚挚的问候。

数据:lo_http_client类型参考if_http_client,
       l_result_json TYPE字符串,
       l_it_book_attend zhcms_inscrip的类型表,
       l_wa_book_attend TYPE zhcms_inscrip,
       l_status(10)类型c,
       l_message TYPE字符串,
       l_result_csv TYPE字符串,
       l_it_str_csv TYPE TABLE OF字符串,
       l_wa_str_csv TYPE字符串,
       l_uri TYPE字符串。

 cl_http_client => create_by_destination(导出目标='URL_DEST_KME'
                                         正在导入客户端= lo_http_client)。

 lo_http_client-> request-> set_method(if_http_request => co_request_method_get)。

 l_uri ='/reports/'&& l_file &&'?Signature ='&& l_signature &&'&Expires ='&& l_expires &&'&AWSAccessKeyId ='&& l_accesskey。

 l_uri = cl_http_utility => unescape_url(转义= l_uri)。

 cl_http_utility => set_request_uri(request = lo_http_client-> request
                                    uri = l_uri)。

 lo_http_client-> send(例外http_communication_failure = 1
                                  http_invalid_state = 2)。

 lo_http_client-> receive(例外http_communication_failure = 1
                                      http_invalid_state = 2
                                      http_processing_failed = 3)。

 lo_http_client-> get_last_error(
     输入
       代码= DATA(subrc)
       MESSAGE = DATA(errortext))。

 l_result_csv = lo_http_client-> response-> get_cdata()。

 用l替换l_result_csv中'"'的所有事件。

 分割l_result_csv AT cl_abap_char_utilities => cr_lf插入表l_it_str_csv。

 环回l_it_str_csv INTO l_wa_str_csv。
   SPLIT l_wa_str_csv AT';'  INTO l_wa_book_attend-evento l_wa_book_attend-empleado。
   通话功能" CONVERSION_EXIT_ALPHA_INPUT"
     出口
       输入= l_wa_book_attend-empleado
    输入
      输出= l_wa_book_attend-empleado。
   APPEND l_wa_book_attend至l_it_book_attend。
 结局。

 如果l_it_book_attend不是INITIAL。
    l_status ='确定'。
    l_message =空间。

    呼叫功能'ZHCMFM_INSCRIP_PROC_RESP'开始新任务'RESPKME'
     表it_inscrip = l_it_book_attend。
 其他。
    l_status ='失败'。
    IF subrc <> 0。
     l_message ='错误http:'&& subrc &&',mensaje:'&& errortext。
    其他。
     l_message ='无法连续播放任何文字,也无法在csv中保存有效信息'。
    万一。
 ENDIF。
jovirus
2楼-- · 2020-08-25 13:43

您好,Jhon Jairo Teran Salazar,

感谢您的帮助,

如果可能,请分享您的SM59目的地连接设置,

实际上,由于我们的SAP不在互联网上,因此我无法在SM59中建立连接(在您的情况下为URL_DEST_KME)

所以我想知道在这种情况下可以使用DMZ服务器吗?

最好的问候,

Prajesh Desai

hengyuye
3楼-- · 2020-08-25 13:48

你好,Prajesh,

如果尚未从SAP系统配置Internet访问,则可以配置SAP Web Dispatcher以用作DMZ服务器。 您必须进行一些Google搜索才能了解更多信息,因为我对此设置了解不多。 当我们在内部部署Fiori时,我们曾经有一个Web调度程序,但是现在我们没有了(我们移至Fiori Cloud),我们只有防火墙来控制来自SAP系统的Internet访问,并使用规则过滤可以 被加入。 这里是有关Web调度程序的一些概念的链接。

https://sapbasisdurgaprasad.blogspot。 com/2011/07/sap-web-dispatcher-and-its-functions.html

您还需要考虑的另一件事是,如果要使用SSL(https)使用URL,则必须使用STRUST将站点证书加载到SAP系统中,但首先必须解决Internet访问问题。

这是我的SM59 conf。

请注意,我的连接是HTTP而不是HTTPS。

问候。

Jhon Jairo。

一周热门 更多>