`
JerryWang_SAP
  • 浏览: 1033228 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

动态控制SAP CRM附件的可编辑性

阅读更多

In production code it is ususally necessary to also have authorization control on attachment maintenance. Most of the time it is done via authorization object. In this example I just use a checkbox to control it during the whole session, in the screenshot below all buttons are disable since the “Allow Edit” checkbox is not selected.

 

 

The idea of control is, in GS_CM component controller there is a value node ATTRIBUTES which could be bound by consuming component.

 

 

in the controller class below, Content management framework will firstly check whether the current BOR type is valid ( line 13 ~ line 18), an invalid type will lead to read only mode.

 

 

then the display mode flag will be set according to the field display of value node. based on these findings, we can start development in our ui component.

step1: create an event handler for checkbox status change and just use a global variable to store the flag:

 

 

step2: create a new value node ATTRIBUTE in custom controller

 

 

redefine INIT. here we buffer the collection wrapper reference into a global variable of component controller for later usage.

method IF_BSP_MODEL~INIT.
  super->if_bsp_model~init( id    = id
                            owner = owner ).
  mr_owner ?= owner.
  DATA: lv_struct_ref TYPE REF TO crmt_cm_comp_st,
        lv_value_node TYPE REF TO cl_bsp_wd_value_node,
        lv_bo_coll    TYPE REF TO if_bol_bo_col.
  CREATE DATA lv_struct_ref.
  CREATE OBJECT lv_value_node
    EXPORTING
      iv_data_ref = lv_struct_ref.
  CREATE OBJECT lv_bo_coll
    TYPE
cl_crm_bol_bo_col.
  lv_bo_coll->add( lv_value_node ).
  set_collection( lv_bo_coll ).
  CL_ZSMCATT_BSPWDCOMPONENT_IMPL=>GO_ATTR_WRAPPER = me->collection_wrapper.
  endmethod.

redefine ON_NEW_FOCUS. The bufferred collection wrapper for ATTRIBUTE node is used here:

method ON_NEW_FOCUS.
     DATA:
     lr_entity          TYPE REF TO cl_crm_bol_entity,
     lr_parent          TYPE REF TO cl_crm_bol_entity,
     lv_entity_name     TYPE string,
     ls_cm_attr         TYPE crmt_cm_comp_st,
     lv_product_type    TYPE comt_product_type,
     lr_bo_attr         TYPE REF TO if_bol_bo_property_access,
     ls_prtyp_cust      TYPE coms_prtyp_cust,
     lv_object_guid     TYPE ib_recno_16,
     lv_current         TYPE flag,
     ls_button          TYPE crmt_thtmlb_button.
  CHECK focus_bo IS BOUND.
  lr_entity ?= focus_bo.
  lv_entity_name = lr_entity->get_name( ).
  IF CL_ZSMCATT_BSPWDCOMPONENT_IMPL=>gv_can_edit = 'X'.
    ls_cm_attr-display = ''.
  ELSE.
    ls_cm_attr-display = 'X'.
  ENDIF.
  CHECK CL_ZSMCATT_BSPWDCOMPONENT_IMPL=>GO_ATTR_WRAPPER IS NOT INITIAL.
  lr_bo_attr = CL_ZSMCATT_BSPWDCOMPONENT_IMPL=>GO_ATTR_WRAPPER->get_current( ).
  CHECK lr_bo_attr IS BOUND.
  lr_bo_attr->set_properties( ls_cm_attr ).
  endmethod.

step3: in WD_USAGE_INITIALIZE method of ZSMCATTR component controller, bind the context node of custom controller to GS_CM’s attributes node.

CALL METHOD iv_usage->bind_context_node
        EXPORTING
          iv_controller_type  = cl_bsp_wd_controller=>co_type_custom
          iv_name             = 'ZSMCATT/CMBO'
          iv_target_node_name = 'ATTRIBUTE'                "#EC NOTEXT
          iv_node_2_bind      = 'ATTRIBUTES'.                "#EC NOTEXT
lr_cuco_attachement ?= get_custom_controller( 'ZSMCATT/CMBO' ).
IF lr_cuco_attachement IS BOUND.
        lr_property = me>typed_context->socialpost->collection_wrapper->get_current( ).
        lr_cuco_attachement->typed_context->cmbo->on_new_focus( lr_property ).
        lr_cuco_attachement->typed_context->attribute->on_new_focus( lr_property ).
ENDIF.

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

0
0
分享到:
评论

相关推荐

    SAP CRM同步问题记录

    在SAP CRM(客户关系管理)系统中,同步问题往往是由于不同组件间的通信故障或配置错误导致的。本文将深入探讨两个具体的问题及其解决方案,帮助用户理解和处理SAP CRM中的同步异常。 首先,我们遇到的第一个问题是...

    SAP CRM 7.0 PA-CR100

    标题与描述中的"SAP CRM 7.0 PA-CR100"指向的是SAP公司的一款企业级软件——客户关系管理(Customer Relationship Management)系统的一个特定版本与课程代码。SAP CRM是SAP Business Suite的一部分,它帮助企业优化...

    SAP CRM系统介绍

    SAP CRM系统介绍SAP CRM系统介绍SAP CRM系统介绍SAP CRM系统介绍SAP CRM系统介绍

    sap crm 一点通

    SAP CRM 作为一款强大的客户关系管理工具,不仅具备高度的灵活性和扩展性,还支持多样化的技术实现路径。通过深入理解其核心技术概念,如 GUID、数据模型、流程驱动设计、WEB 开发技术等,开发者可以更有效地利用 ...

    sap CRM 2007 IDES.rar

    2. 开发和测试:软件开发人员可以在这个环境中构建、测试和调试自定义代码,确保其与SAP CRM的兼容性。 3. 演示和展示:销售人员和顾问可以用它来向潜在客户展示SAP CRM的功能和价值。 下载和安装SAP CRM 2007 ...

    sap crm ipc 增强介绍

    综上所述,SAP CRM IPC增强不仅提升了企业的定价效率和准确性,还为企业提供了更多定制化的选项,帮助企业更好地适应不断变化的市场环境。通过利用IPC增强的功能,企业可以更有效地管理其定价策略,从而在竞争激烈的...

    SAP CRM 2007 IDES

    SAP CRM 2007 IDES

    SAP CRM管理方案介绍

    SAP CRM系统与SAP ERP等其他SAP产品紧密结合,形成了一个集成度高、灵活性强的业务平台。 #### 二、市场营销管理 SAP CRM的市场营销管理模块提供了强大的市场资源管理能力,包括但不限于市场活动策划与执行、市场...

    SAP CRM Tables 1

    标题"SAP CRM Tables 1"指的是关于SAP客户关系管理(CRM)系统中的数据库表的讨论,这通常涉及系统的数据结构、业务逻辑以及如何在CRM环境中存储和处理数据。SAP CRM是一个集成的解决方案,帮助企业管理和优化其销售...

    SAP CRM会员管理

    SAP公司全套CRM解决方案覆盖了销售...新的SAP CRM解决方案能够为销售、市场营销及售后服务等业务提供综合性的、具有行业特性的流程,帮助各类企业制定出明确的决策,给客户提供出持续、高质的服务,成为最佳运营企业。

    SAP CRM解决方案

    CRM原厂解决方案 SAP标准CRM业务模式介绍,CRM产品

    SAP CRM行业解决方案.pdf

    SAP CRM行业解决方案 SAP CRM行业解决方案是一个基于客户关系管理(Customer Relationship Management,CRM)的解决方案,旨在帮助企业更好地管理客户关系、提高销售业绩和客户满意度。该解决方案提供了一整套的...

    SAP-CRM-系统用户界面操作指导手册

    ### SAP CRM 系统用户界面操作指导手册知识点详解 #### 一、引言 SAP CRM(Customer Relationship Management)作为一款先进的客户关系管理系统,在帮助企业更好地管理客户信息、提高销售效率及客户服务方面扮演着...

    SAP CR100 文档,用于SAP CRM培训

    SAP CR100 用于SAP CRM培训。

    SAP_CRM简介

    此外,SAP CRM 2006s提供灵活的部署选项,可以选择在企业内部或由SAP托管,且两者间可无缝切换。SAP还推出了xAPPs计划,鼓励第三方开发者利用SAP平台开发互补的应用,实现与其他系统的集成,如ABAP、.NET、SAP BW、...

    SAP_CRM中文自学笔记

    SAP CRM是德国SAP公司提供的一个全方位客户关系管理解决方案,广泛应用于市场营销、销售和服务等领域,支持企业通过多种交互渠道与客户进行沟通。CRM系统能够处理从客户数据的收集、管理到客户交互过程中的订单处理...

    sap crm 实施方法

    sap crm 实施方法。最全面地SAPCRM实施方法。提供下载。

    sap crm install

    总的来说,SAP CRM的安装是一个技术性强、涉及面广的过程,需要对SAP系统、数据库管理和IT基础设施有深入的理解。在整个过程中,遵循最佳实践,保持耐心和细致,将有助于避免可能出现的问题,确保CRM系统的成功部署...

    SAP CRM IPC技术文档

    SAP CRM IPC(Internet Pricing and Configurator)是SAP公司为销售和服务行业提供的一款强大工具,主要用于产品配置和定价管理。这个技术文档旨在详细介绍如何利用IPC进行高效且精确的销售流程处理。 首先,我们来...

Global site tag (gtag.js) - Google Analytics