栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

WebDynpro开发-03 创建一个WebDynpro物料代码查询页面

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

WebDynpro开发-03 创建一个WebDynpro物料代码查询页面

WebDynpro开发01
  • =>标准示例包:SWDP_TEST
  • 第一步:创建一个Webdynpro组件
  • 第二步:新建一个视图用于显示数据
  • 第三步:Component Controller上创建全局Context
  • 第四步:Mapping Controller Context到View Context
  • 第五步:配置视图VIEW_SELECtION的Layout
  • 第六步:配置视图VIEW_INFORMATION的Layout
  • 第七步:配置视图Inbound Plugs Outbound Plugs
  • 第八步:在Component Controller上创建实现全局取数方法
  • 第九步:设置Button Action
  • 第十步:测试

=>标准示例包:SWDP_TEST
  • WD UML
  • Runtime Interface/Class
    运行时   Class/Interface描述
    IF_WD_ACTION此接口用于获取视图控制器中的Action
    IF_WD_APPLICATION此接口功能用于获取设备的配置信息当前正在执行的WDA应用程序及其周围环境客户端环境
         我们可以用这个界面来调整应用程序主窗口的标题,确定用户代理等等
    IF_WD_COMPONENT此接口为我们提供了访问WDA所有对象的可能
         运行时的视角
         可通过 WD_GET_API() 获取对象引用
    IF_WD_CONTROLLER此接口提供了一个控制器,可以访问各种element包含在其中的元素(Action   Context)
         还可以用于访问外部资源,消息管理器 控制器和组件(通过接口I F_WD_COMPONENT)
    IF_WD_MESSAGE_MANAGER此接口提供了各种允许我们编写的方法,发送消息显示到UI中消息区域
    IF_WD_VIEW此接口提供了所有与视图交互的功能
    IF_WD_WINDOW此接口提供了所有与窗口交互的功能,OPEN() CLOSE()
    IF_WD_WINDOW_MANAGER此接口用于窗口的管理
  • Service Interface/Class
    服务   Class/Interface描述
    CL_WD_CONTEXT_SERVICES此类用于监视上下文节点的变化
    CL_WD_DYNAMIC_TOOL此类提供了各种帮助方法来简化Web Dynpro   中的动态编程任务,比如:检查UI 元素输入值
    CL_WD_COMPONENT_ASSISTANCE此抽象类定义了辅助类的核心功能
    CL_WD_RUNTIME_SERVICES此类提供了一些实用方法,可与 Web Dynpro   运行时环境交互
    CL_WD_UTILITIES此类提供了一些通用的 Web Dynpro实用的方法
    CL_WD_TRACE_TOOL
    IF_WD_TRACE_TOOL
    CL_WD_TRACE_TOOL 类用于将数据添加到Web Dynpro Trace Tool生成的跟踪文件
    访问此功能,我们必须引用该类的静态实例属性,类型为IF_WD_TRACE_TOOL
    CL_WEB_DYNPRO使用此类的静态 IS_ACTIVE   属性可以确定我们正在运行的代码是否在启动Web Dynpro 运行时环境中
第一步:创建一个Webdynpro组件
  • 运行Tcode:SE80,新建Web Dynpro组件(接口)
第二步:新建一个视图用于显示数据
  • 新建一个视图VIEW_INFORMATION
第三步:Component Controller上创建全局Context
  • 创建Node:Context页签右键单击 Create->Node

  • 节点MATNR_SELECTION创建选择屏幕字段:右键单击节点 Create->Attribute
  • 节点MATNR_INFORMATION创建显示屏幕结构:使用向导添加结构Attribute到Node


第四步:Mapping Controller Context到View Context
  • 视图:VIEW_SELECTION
  • 视图:VIEW_INFORMATION
第五步:配置视图VIEW_SELECTION的Layout
  • 设置UI Container属性

  • UI Container中插入Element
    • ID: MATNR_TEXT TYPE: Label

    • ID: MATNR TYPE: INPUT FIELD

    • ID: BTN_SEARCH TYPE: Button

  • MATNR_TEXT设置Labelfor
第六步:配置视图VIEW_INFORMATION的Layout
  • 设置UI Container属性

  • UI Container中插入Element、

    • ID: BTN_BACK TYPE: Button
  • 使用向导UI Container中插入Element

    • Mapping to View Context

    • Banding Property

第七步:配置视图Inbound Plugs Outbound Plugs
  • 创建视图的Inbound Plugs Outbound Plugs
    • VIEW_SELECTION->Inbound Plugs
    • VIEW_SELECTION->Outbound Plugs
    • VIEW_INFORMATION->Inbound Plugs
    • VIEW_INFORMATION->Outbound Plugs
  • Mapping Plugs
    • 嵌入视图

    • Mapping Plugs

第八步:在Component Controller上创建实现全局取数方法
  • 新建Method:GET_MATNR_INFO

  • 实现方法(注意SAP禁止在Controller上使用Select语法;虽然这不是强制性的,但是十分影响性能;所以应该专门写一个Class或者FM来进行取数)

    DATA: lo_node    TYPE REF TO if_wd_context_node,
        lo_element TYPE REF TO if_wd_context_element,
        lv_matnr   TYPE matnr.
    
    DATA: ls_mara TYPE mara.
    
    "read matnr_selection Context
    lo_node = wd_context->get_child_node( name = wd_this->wdctx_matnr_selection ).
    
    "read attribute
    lo_element = lo_node->get_element( ).
    lo_element->get_attribute( EXPORTING name = `MATNR` IMPORTING value = lv_matnr ).
    
    "query data
    SELECT * FROM mara INTO ls_mara
    WHERe matnr = lv_matnr.
    ENDSELECT.
    
    "read matnr_information Context
    lo_node = wd_context->get_child_node( name = wd_this->wdctx_matnr_information ).
    
    "read attribute
    lo_element = lo_node->get_element( ).
    
    lo_element->set_static_attributes( ls_mara ).
    
第九步:设置Button Action
  • BTN_SEARCH

    • BTN_SEARCH中实现检查UI元素元数据检查

        DATA lo_api_controller TYPE REF TO if_wd_view_controller.
        DATA lo_action         TYPE REF TO if_wd_action.
      
        lo_api_controller = wd_this->wd_get_api( ).
        lo_action = lo_api_controller->get_current_action( ).
      
        IF lo_action IS BOUND.
          CASE lo_action->name.
            WHEN 'SEARCH'.
              "动态值检查 PAI
              cl_wd_dynamic_tool=>check_mandatory_attr_on_view(
                EXPORTING
                  view_controller = lo_api_controller ).
          ENDCASE.
        ENDIF.
      
  • BTN_BACK

    • VIEW_INFORMATION中Inbound Plugs Handle实现取数逻辑

        wd_comp_controller->get_matnr_info( ).
      
第十步:测试
  • 创建WebDynpro application Program
  • 查询

  • 返回再次查询
  • WD Context属性
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1020224.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号