BPC开发:将数据写回BPC模型

本文介绍了一种封装的方法write_back_to_bpc_cube,用于将数据写回到BPC模型中。该方法通过调用cl_ujo_wb_factory创建写回实例,并设置参数如模块ID、行为代码等来实现数据的有效写回。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用方法if_ujo_write_back->write_back可以将数据写回BPC模型。

将方法封装:

代码:

  METHOD write_back_to_bpc_cube.
    DATA: lo_ujo_wb      TYPE REF TO if_ujo_write_back,
          ls_wb_param    TYPE if_ujo_write_back=>gs_wb_param,
          ls_wb_status   TYPE ujo_s_wb_status,
          ls_work_status TYPE ujr_s_work_status,
          ls_audit       TYPE ujr_s_update_audit,
          lr_data        TYPE REF TO data,
          lt_message     TYPE uj0_t_message,
          l_log          TYPE string,
          l_measure      TYPE uj_dim_member.


    CALL METHOD cl_ujo_wb_factory=>create_write_back
      RECEIVING
        ro_write_back = lo_ujo_wb.


    ls_work_status-module_id =  uj00_c_mod_name_man.
    ls_work_status-blockaction = 'OBEY'.
* LS_WORK_STATUS-BLOCKACTION = 'IGNORE'.

    ls_audit-actcode = uju0_cs_act_code-logic_exe.

    ls_wb_param = cl_ujo_wb_factory=>default_wb_param( ).
    ls_wb_param-work_status = ls_work_status.
    ls_wb_param-default_logic = abap_false.
    ls_wb_param-update_audit = abap_true.
    ls_wb_param-duplicate = abap_true.
    ls_wb_param-mdata_check = abap_false.
    ls_wb_param-sign_trans = abap_false.
    ls_wb_param-execute_badi = abap_false.
    ls_wb_param-bypass_security = abap_true.       "不检查权限
* LS_WB_PARAM-BYPASS_LOCK = ABAP_TRUE. "不检查工作状态
    ls_wb_param-measures_formula = l_measure.
    ls_wb_param-audit_info = ls_audit.
    ls_wb_param-no_timestamp = abap_true.      "不更新TIMESTAMP,不影响control, monitor status

    IF iv_write_zero = 'X'.                      "当有需求写入0金额的行项目时,修改suppress_zero默认值
      ls_wb_param-suppress_zero = abap_false.
    ENDIF.

    CALL METHOD lo_ujo_wb->write_back
      EXPORTING
        i_appset_id  = iv_appset_id
        i_appl_id    = iv_appl_id
        is_wb_param  = ls_wb_param
        it_records   = it_records
      IMPORTING
        es_wb_status = ls_wb_status
        et_message   = ev_message.

    ev_type = 'S'.
    IF ls_wb_status-nr_fail NE 0 .         "说明有记录导入失败,其中有原因是工作状态被锁了
      l_log = '回写数据失败!'.
      ev_type = 'E'.
      LOOP AT ev_message INTO DATA(ls_message).
        l_log = l_log && ls_message-message.
      ENDLOOP.
      cl_ujk_logger=>log( i_object = l_log ).
* RAISE EXCEPTION TYPE cx_ujo_write_back.
    ENDIF.

  ENDMETHOD.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值