不用模板 网站,网站建设高,网站行程表怎么做,知名设计公司logo需求背景 项目经理说每次OA下单都需要调用一次SAP的接口获取数据#xff0c;导致效率太慢了#xff0c;能否把SAP的数据保存到OA的数据库表里#xff0c;这样OA可以直接从数据库表里获取数据效率快很多。思来想去#xff0c;提供了两个方案。 在集群SAP节点下增加一个SQL S…需求背景 项目经理说每次OA下单都需要调用一次SAP的接口获取数据导致效率太慢了能否把SAP的数据保存到OA的数据库表里这样OA可以直接从数据库表里获取数据效率快很多。思来想去提供了两个方案。 在集群SAP节点下增加一个SQL Server数据库通过ABAP技术把SAP数据写进SAP节点下的SQL Server然后做集群下的主从复制将SAP下的SQL Server复制到OA节点下的SQL Server。OA对外发布保存数据的接口供SAP调用,SAP传入数据OA接口保存。
项目经理经决定采用了方案2.
OA对外发布API的方式很多本文采用建模引擎发布RESTFul API 的方式步骤一OA系统对外发布RESTful API建模引擎操作在接口管理处新增一个RESTful接口如图1.1所示给新建的RESTful接口授权如图1.2所示。
图 1.1
图 1.2
下载API文档如图1.3所示 图1.3
使用POSTMAN测试
Tips1设置请求头如图1.4所示 图1.4
Tips2设置请求体先整理data报文如图1.5所示raw正文的数据即便是留着在那里也不会有影响把整理好的data报文复制到表单格式的参数里如图1.6所示。 图1.5 图1.6
测试结果如图1.7所示 图1.7
建模表单处查看数据实现效果如图1.8所示 图1.8
SAP系统调用OA发布RESTful API DATA(lv_send_data) /ui2/cl_jsonserialize( data ls_postcompress abap_falsepretty_name /ui2/cl_jsonpretty_mode-camel_case ).DATA(lv_url) http://ip:port/api/cube/restful/interface/saveOrUpdateModeData/SAPStckSyn.cl_http_clientcreate_by_url( EXPORTING url lv_urlIMPORTING client DATA(lo_http_client) ).
//设置请求头lo_http_client-request-set_header_field( name Content-Type value application/x-www-form-urlencoded; charsetutf-8 ).//设置请求方式lo_http_client-request-set_method( if_http_requestco_request_method_post ).//设置请求体表单lo_http_client-request-set_form_field( name datajson value lv_send_data ).//发送请求调用OA RESTful APIlo_http_client-send( EXCEPTIONS http_communication_failure 1http_invalid_state 2 ).IF sy-subrc NE 0.lo_http_client-get_last_error( IMPORTING message DATA(lv_send_msg) code DATA(lv_send_code) ).ENDIF.//获取服务器响应lo_http_client-receive( EXCEPTIONS http_communication_failure 1http_invalid_state 2http_processing_failed 3 ).IF sy-subrc EQ 0.DATA(lv_response) lo_http_client-response-get_cdata( ).ELSE.lo_http_client-get_last_error( IMPORTING message DATA(lv_rece_msg) code DATA(lv_rece_code) ).ENDIF.//将服务器响应Json报文转换成SAP结构/ui2/cl_jsondeserialize( EXPORTING json lv_responsepretty_name /ui2/cl_jsonpretty_mode-camel_caseCHANGING data ls_success_receive ).IF ls_success_receive-status NE 1.MESSAGE SAP库存同步OA失败 TYPE S DISPLAY LIKE E.ENDIF.