• UI5-技术篇-Expand与Deep 服务测试


    1.SEGW创建服务

    2.创建Data Model

    2.1Entity Types

     ZRICO_USR 设置主键、排序字段、过滤字段

     ZRICO_USRITM设置主键 

    2.2Associations

     创建associations,设置主要实体 ZRICO_USR ,依赖实体ZRICO_USRITM,两者对应关系N:M

    0:0...1 记录可有可无,最多一条记录

    1:1必须存在一条记录

    M:0..n记录可有可无,可有n条记录

    N:1...n至少存在一条记录,可有n条记录

    主表与从表字段关联关系,如上图。

    2.3Navigation Properties

    3.Service Implementation

    4.Runtime Artifacts

    5.类方法重写

     /IWBEP/IF_MGW_APPL_SRV_RUNTIME~CREATE_DEEP_ENTITY

     1   method /IWBEP/IF_MGW_APPL_SRV_RUNTIME~CREATE_DEEP_ENTITY.
     2 **try.
     3 *CALL METHOD SUPER->/IWBEP/IF_MGW_APPL_SRV_RUNTIME~CREATE_DEEP_ENTITY
     4 *  EXPORTING
     5 **    iv_entity_name          =
     6 **    iv_entity_set_name      =
     7 **    iv_source_name          =
     8 *    IO_DATA_PROVIDER        =
     9 **    it_key_tab              =
    10 **    it_navigation_path      =
    11 *    IO_EXPAND               =
    12 **    io_tech_request_context =
    13 **  importing
    14 **    er_deep_entity          =
    15 *    .
    16 ** catch /iwbep/cx_mgw_busi_exception .
    17 ** catch /iwbep/cx_mgw_tech_exception .
    18 **endtry.
    19    data:
    20      begin of wa_deep_entity ,
    21      mandt   type zrico_usr-mandt,
    22      usrid   type zrico_usr-usrid,
    23      usrname type zrico_usr-usrname,
    24      usraddr type zrico_usr-usraddr,
    25      headertoitem type standard table of zrico_usritm with default key.
    26    data:end of wa_deep_entity .
    27 
    28    data:
    29      ls_deep_entity like wa_deep_entity,
    30      ls_header      type zrico_usr.
    31    data:
    32      lt_deep_entity like table of wa_deep_entity,
    33      lt_items       type table of zrico_usritm.
    34 
    35    field-symbols:
    36      <fs_item>      like line of lt_items.
    37 
    38    "Get data from front-end
    39    io_data_provider->read_entry_data(
    40       importing
    41          es_data = ls_deep_entity ).
    42 
    43     "Process data received
    44     "Data-action here****************
    45     loop at ls_deep_entity-headertoitem assigning <fs_item>.
    46       <fs_item>-usrte = '456'.
    47     endloop.
    48     "Data-action here****************
    49 
    50     "Returned processed data back to front-end
    51     copy_data_to_ref( exporting is_data = ls_deep_entity changing cr_data = er_deep_entity ).
    52 
    53     clear ls_deep_entity.
    54   endmethod.
    View Code

     /IWBEP/IF_MGW_APPL_SRV_RUNTIME~GET_EXPANDED_ENTITYSET

     1   method /IWBEP/IF_MGW_APPL_SRV_RUNTIME~GET_EXPANDED_ENTITYSET.
     2 **try.
     3 *CALL METHOD SUPER->/IWBEP/IF_MGW_APPL_SRV_RUNTIME~GET_EXPANDED_ENTITYSET
     4 **  exporting
     5 **    iv_entity_name           =
     6 **    iv_entity_set_name       =
     7 **    iv_source_name           =
     8 **    it_filter_select_options =
     9 **    it_order                 =
    10 **    is_paging                =
    11 **    it_navigation_path       =
    12 **    it_key_tab               =
    13 **    iv_filter_string         =
    14 **    iv_search_string         =
    15 **    io_expand                =
    16 **    io_tech_request_context  =
    17 **  importing
    18 **    er_entityset             =
    19 **    et_expanded_clauses      =
    20 **    et_expanded_tech_clauses =
    21 **    es_response_context      =
    22 *    .
    23 ** catch /iwbep/cx_mgw_busi_exception .
    24 ** catch /iwbep/cx_mgw_tech_exception .
    25 **endtry.
    26     data:
    27       begin of wa_deep_entity ,
    28       mandt   type zrico_usr-mandt,
    29       usrid   type zrico_usr-usrid,
    30       usrname type zrico_usr-usrname,
    31       usraddr type zrico_usr-usraddr,
    32       headertoitem type standard table of zrico_usritm with default key.
    33     data:end of wa_deep_entity .
    34 
    35     data:
    36       rt_usrid     type range of zrico_usr-usrid.
    37     data:
    38       lt_deep_stru like table of wa_deep_entity.
    39     data:
    40       ls_usr       type zcl_zrico_deep_usr_mpc_ext=>ts_zrico_usr,
    41       ls_usritm    type zcl_zrico_deep_usr_mpc_ext=>ts_zrico_usritm,
    42       ls_filter    type /iwbep/s_mgw_select_option,
    43       ls_option    type /iwbep/s_cod_select_option,
    44       ls_deep_stru like wa_deep_entity,
    45       ls_expand    like line of et_expanded_tech_clauses,
    46       ls_range     like line of rt_usrid.
    47     data:
    48       lv_usrid     type zrico_usr-usrid.
    49 
    50     "过滤条件
    51     loop at it_filter_select_options into ls_filter.
    52       loop at ls_filter-select_options into ls_option.
    53         translate ls_filter-property to upper case.
    54         case ls_filter-property.
    55           when 'USRID'.
    56             lv_usrid = ls_option-low.
    57           when others.
    58         endcase.
    59       endloop.
    60     endloop.
    61 
    62     if lv_usrid is not initial.
    63       ls_range-sign   = 'I'.
    64       ls_range-option = 'EQ'.
    65       ls_range-low    = lv_usrid.
    66       append ls_range to rt_usrid.
    67     endif.
    68 
    69     select *
    70       into corresponding fields of ls_deep_stru
    71       from zrico_usr
    72      where usrid in rt_usrid.
    73       if sy-subrc = 0.
    74         select *
    75           into corresponding fields of table ls_deep_stru-headertoitem
    76           from zrico_usritm
    77          where usrid = ls_deep_stru-usrid.
    78 
    79         append ls_deep_stru to lt_deep_stru.
    80         clear:ls_deep_stru.
    81       endif.
    82     endselect.
    83 
    84     ls_expand = 'HEADERTOITEM'.
    85     append ls_expand to et_expanded_tech_clauses.
    86 
    87     if  iv_entity_set_name = 'ZRICO_USRSet'
    88     and io_expand->compare_to_tech_names( 'HEADERTOITEM') EQ io_expand->gcs_compare_result-match_equals .
    89 
    90       clear:er_entityset.
    91 
    92       copy_data_to_ref(
    93          exporting
    94            is_data = lt_deep_stru
    95          changing
    96            cr_data = er_entityset ).
    97 
    98    endif.
    99   endmethod.
    View Code

    6.服务注册

    7.Postman服务测试

     7.1GET_EXPANDED_ENTITYSET测试

      

     

     

     7.2CREATE_DEEP_ENTITY测试

     

     获取上一步GET到的TOKEN

     

     BODY赋值,如上图。

     

  • 相关阅读:
    Jenkins构建触发器(定时构建项目)
    Linux–Nginx攻略
    Python单元测试——深入理解unittest
    数据库设计三大范式
    Selenium 高阶应用之WebDriverWait 和 expected_conditions
    python基础——对时间进行加减
    并发并行同步异步多线程
    js同步和异步
    hibernate中session.flush()
    Hibernate实现分页查询
  • 原文地址:https://www.cnblogs.com/ricoo/p/11271711.html
Copyright © 2020-2023  润新知