SAP-CDS视图调用函数,或者调用URL地址

文章介绍了如何在CDS中设置带有URL的注解,以及如何创建类ZCL_P0GRC_A_FR0067A来处理设备编码的获取和状态信息,包括系统状态、用户状态和设备URL的计算逻辑。
摘要由CSDN通过智能技术生成

1.在CDS中设置注解

     @UI:{ lineItem: [{ position: 10, importance: #HIGH ,type:#WITH_URL, url: 'equnr_url'}],
        selectionField: [{ position: 10 }]
   }
  @EndUserText.label: '设备编码'
  master.equnr,           //设备编码

  @UI.hidden: true 
  @ObjectModel.virtualElement: true  
  @ObjectModel.virtualElementCalculatedBy: 'ABAP:ZCL_P0GRC_A_FR0067A'
  master.equnr_url,                //设备URL
  "读取CDS时 会调用类ZCL_P0GRC_A_FR0067A
  
  2.创建类 ZCL_P0GRC_A_FR0067A

class ZCL_P0GRC_A_FR0067A definition
public
final
create public .

public section.

interfaces IF_SADL_EXIT .
interfaces IF_SADL_EXIT_CALC_ELEMENT_READ .
protected section.
private section.
ENDCLASS.

CLASS ZCL_P0GRC_A_FR0067A IMPLEMENTATION.

METHOD if_sadl_exit_calc_element_read~calculate.

DATA:l_equnr        TYPE bapi_itob_parms-equipment,      "设备编码
          l_userstatus   TYPE asttx,                          "用户状态
         l_systemstatus TYPE J_STEXT,                        "系统状态
       lt_userstatus   TYPE TABLE OF bapi_itob_status,      "用户状态
       lt_systemstatus TYPE TABLE OF bapi_itob_status,      "系统状态
       ls_return       TYPE  bapiret2.

LOOP AT it_original_data ASSIGNING FIELD-SYMBOL(<fs_original_data>).
  DATA(l_tabix) = sy-tabix.

  ASSIGN COMPONENT 'EQUNR' OF STRUCTURE <fs_original_data> TO FIELD-SYMBOL(<fs_value>).
  IF <fs_value> IS ASSIGNED.
    l_equnr = <fs_value>.
    CALL FUNCTION 'BAPI_EQUI_GETSTATUS'
      EXPORTING
        equipment     = l_equnr
      IMPORTING
        systemstatus  = l_systemstatus
        userstatus    = l_userstatus
        return        = ls_return
      TABLES
        system_status = lt_systemstatus
        user_status   = lt_userstatus.

  ENDIF.

  READ TABLE ct_calculated_data INDEX l_tabix ASSIGNING FIELD-SYMBOL(<fs_calculated_data>).
  IF sy-subrc = 0.
    "
    "  系统状态
    ASSIGN COMPONENT 'SYSTEMSTATUS' OF STRUCTURE <fs_calculated_data> TO FIELD-SYMBOL(<fs_calculated_value>).
    IF <fs_calculated_value> IS ASSIGNED.
      <fs_calculated_value> = l_systemstatus.
    ENDIF.

    "
    "  用户状态
    ASSIGN COMPONENT 'USERSTATUS' OF STRUCTURE <fs_calculated_data> TO <fs_calculated_value>.
    IF <fs_calculated_value> IS ASSIGNED.
      <fs_calculated_value> = l_userstatus.
    ENDIF.

    "

    "
    "  设备编码
    IF l_equnr IS NOT INITIAL.
      ASSIGN COMPONENT 'EQUNR_URL' OF STRUCTURE <fs_calculated_data> TO <fs_calculated_value>.
      IF <fs_calculated_value> IS ASSIGNED.
        <fs_calculated_value> = |https://cn.bing.com/ |.
      ENDIF.
    ENDIF.


ENDLOOP.
ENDMETHOD.
 method IF_SADL_EXIT_CALC_ELEMENT_READ~GET_CALCULATION_INFO.
 endmethod.
 ENDCLASS.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值