MDG创建科目主数据校验公司代码必输

6 篇文章 0 订阅
5 篇文章 1 订阅

增强点

在这里插入图片描述

示例代码


    "仅检查前台FPM程序
    DATA(lo_fpm) = cl_fpm_factory=>get_instance( ).
    IF lo_fpm is INITIAL.
      return.
    ENDIF.

    DATA:lt_sel TYPE usmd_ts_sel,
          ls_sel TYPE usmd_s_sel.

    "仅校验新建的科目
    data:lr_account type REF TO data.
    FIELD-SYMBOLS:<fs_account> type ANY TABLE.

    io_model->create_data_reference(
    EXPORTING
      i_fieldname = conv usmd_fieldname( 'ACCOUNT' )
      i_struct = io_model->gc_struct_key_attr
      if_incl_active_fld = abap_true
    IMPORTING
      er_data = lr_account
      ).

    ASSIGN lr_account->* to <fs_account>.

    CLEAR lt_sel.
    CLEAR ls_sel.
    ls_sel-fieldname = 'ACCOUNT'.
    ls_sel-SIGN = 'I'.
    ls_sel-option = 'EQ'.
    ASSIGN COMPONENT 'ACCOUNT' OF STRUCTURE is_data TO FIELD-SYMBOL(<fs_account_no>).
    IF sy-subrc EQ 0.
      ls_sel-low = <fs_account_no>.
    ENDIF.
    INSERT ls_sel INTO TABLE lt_sel.

    "查询是否已经存在激活的条目
    io_model->read_char_value(
    EXPORTING
      i_fieldname = conv usmd_fieldname( 'ACCOUNT')
      it_sel = lt_sel
      i_readmode = io_model->gc_readmode_no_inact
      if_no_flush = abap_true
    IMPORTING
      et_data = <fs_account>
      et_message = DATA(lt_message)
          ).

    IF <fs_account> is not INITIAL.
      return.
    ENDIF.

    "读取公司代码级别数据
    DATA:lr_acc_company TYPE REF TO DATA.
    FIELD-symbols:<ft_acc_company> TYPE ANY TABLE.

    io_model->create_data_reference(
    exporting
      i_fieldname = conv usmd_fieldname( 'ACCCCDET' )
      i_struct = io_model->gc_struct_key_attr
      if_incl_active_fld = abap_true
    importing
      er_data = lr_acc_company
      ).

    assign lr_acc_company->* to <ft_acc_company>.

    clear lt_message.
    io_model->read_char_value(
    exporting
      i_fieldname = conv usmd_fieldname( 'ACCCCDET')
      it_sel = lt_sel
      i_readmode = io_model->gc_readmode_no_act
      if_no_flush = abap_true
    importing
      et_data = <ft_acc_company>
      et_message = lt_message
      ).

    if <ft_acc_company> is initial.
      append initial line to ct_message assigning field-symbol(<fs_cust_message>).
      <fs_cust_message>-msgid = 'ZMDG01'.
      <fs_cust_message>-msgno = '026'.
      <fs_cust_message>-msgty = 'E'.
      <fs_cust_message>-msgv1 = '请维护公司代码数据'.
    endif.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值