*&---------------------------------------------------------------------* *& Report ZCWZT_SAP *&---------------------------------------------------------------------* *& *&---------------------------------------------------------------------* REPORT zcwzt_sap. *调用接口相关参数定义 DATA:lo_proxy TYPE REF TO zco_login1, input TYPE zselect_user1, ls_in TYPE zselect_user, lt_in TYPE TABLE OF zselect_user, ls_input TYPE zselect_user1, output TYPE zselect_user_response1. DATA: jsonstr TYPE string. DATA gt_out TYPE TABLE OF zzt_out_l. DATA:gt_zztt_id_xf LIKE TABLE OF zztt_id_xf WITH HEADER LINE. DATA e_data TYPE TABLE OF zzt_out . DATA es_data TYPE zzt_out. DATA: error_flag TYPE char1, error_message TYPE string, error_flag_json TYPE string. * *&---------------------------------------------------------------------* REFRESH:lt_in[],e_data,gt_zztt_id_xf[] . *&---------------------------------------------------------------------* ls_in-userflag = sy-uname. ls_in-systemflag = 'SAP'. APPEND ls_in TO lt_in. ls_input-parameters-userflag = sy-uname. ls_input-parameters-systemflag = 'SAP'. input-parameters = ls_input-parameters. *调用代理类 下发数据 TRY. CREATE OBJECT lo_proxy TYPE zco_login1 . CALL METHOD lo_proxy->select_user EXPORTING input = input IMPORTING output = output. CATCH cx_ai_system_fault INTO DATA(lo_sys_exception). CATCH cx_ai_application_fault INTO DATA(lo_app_exception). DATA(lv_msg1) = lo_sys_exception->if_message~get_text( ). DATA(lv_msg2) = lo_app_exception->if_message~get_text( ). ENDTRY. IF output-parameters-return IS NOT INITIAL . jsonstr = output-parameters-return . ENDIF. *&---------------------------------------------------------------------* * ***JSON->内表 CALL FUNCTION 'ZZT_JSON_TO_ABAP' EXPORTING i_json = jsonstr IMPORTING e_data = e_data e_flag = error_flag. IF error_flag EQ 'E'. MESSAGE 'Json 解析失败,请联系IT管理员!!!' TYPE 'E' DISPLAY LIKE 'E'. EXIT. ENDIF. DATA(lv_1) = 'http://47.94.4.162:9007/#/user/logins?'. READ TABLE e_data INTO DATA(ls_edata) INDEX 1. IF sy-subrc = 0.. gt_out[] = ls_edata-data[]. gt_zztt_id_xf-userflag = sy-uname. gt_zztt_id_xf-ztime = sy-uzeit. gt_zztt_id_xf-zdate = sy-datum. gt_zztt_id_xf-msg = ls_edata-msg. gt_zztt_id_xf-sucess = ls_edata-sucess. APPEND gt_zztt_id_xf.CLEAR gt_zztt_id_xf. ENDIF. LOOP AT gt_out INTO DATA(ls_out_data). CONDENSE ls_out_data-password NO-GAPS. CONDENSE ls_out_data-tenlandid NO-GAPS. CONDENSE ls_out_data-username NO-GAPS. DATA(lv_end) = |{ lv_1 }{ 'password=' }{ ls_out_data-password }{ '&'}{ 'tenantId=' }{ ls_out_data-tenlandid }{ '&'}{ 'username=' }{ ls_out_data-username } |. "区分大小写 ENDLOOP. MODIFY zztt_id_xf FROM TABLE gt_zztt_id_xf. *&---------------------------------------------------------------------* *登陆 CALL METHOD cl_gui_frontend_services=>execute EXPORTING document = lv_end EXCEPTIONS OTHERS = 1.