sap CAD桌面集成 CDESK增强

来源:互联网 发布:java 1秒等于多少毫秒 编辑:程序博客网 时间:2024/06/04 00:26



1. 事务码cdesk增强主要涉及两个badi :CDESK_TBM_ADDIN  

CDESK_TBM_ADDIN 方法 ADD_NEW_FUNCTIONS 新增自定义的按钮,代码实例如下:

DATA ls_menu LIKE LINE OF menu_objects.
CLEAR ls_menu.
ls_menu-tabstrip 'TSSAP'.             "页签 
ls_menu-context 'MATERIAL'.        "节点
ls_menu-icon '@A6@'.
ls_menu-button_btext '批量创建'.
ls_menu-button_tip '批量创建物料'.
ls_menu-type '2'.              "工具栏按钮类型
ls_menu-fcode 'ZBC'.           "功能代码 在方法PROCESS_NEW_FUNCTIONS将使用
ls_menu-ctext '批量创建'.
ls_menu-accelerator ''.
APPEND ls_menu TO menu_objects.

CDESK_TBM_ADDIN 方法 PROCESS_NEW_FUNCTIONS 定义按钮事件处理逻辑:

DATA ls_document TYPE LINE OF plm_document_tab.
CASE fcode.
  WHEN 'ZBC'.
    LOOP AT documents INTO ls_document.
      IF ls_document-statusintern <> '40'.
        MESSAGE e012(zplm).
      ENDIF.
    ENDLOOP.
  WHEN OTHERS.
ENDCASE.

1. CDESK_BADI_MAIN  主要用来增强已有的界面

ON_FUNCTION方法实现对已有按钮事件的增强

DATA ls_document TYPE LINE OF plm_document_tab.
CASE fcode.
  WHEN 'CREATE_MAT'.    
    LOOP AT documents INTO ls_document WHERE statusintern <> '40'.
      IF sy-subrc 0.
        MESSAGE e012(zplm).
      ENDIF.
    ENDLOOP.
ENDCASE.