BPC开发:写入备注

BPC模型中只能存数值,存储备注文本的信息每个模型都对应有一张备注表来存储。使用程序UJ0_GET_GEN_TABNAME可以知道每个模型对应的备注表名。

备注表的更新是增量的,如相同维度第一次存入一个文本AAAA,第二次存入文本BBBB,那么AAAA,BBBB都会在备注表中存在。系统读取的时候会根据时间戳字段DATEWRITTEN读取最新的一条数据。

备注相关操作主要通过cl_ujc_cmtmanager来实现

方法封装:

方法实现:

  METHOD add_cmts_fast.
    DATA:
      lo_cmt     TYPE REF TO cl_ujc_cmtmanager,
      ls_message TYPE uj0_s_message,
      lt_msg     TYPE uj0_t_message.
    DATA lv_user_id TYPE uj_user_id.
    DATA lv_uj0_s_user TYPE uj0_s_user.

    DATA es_message TYPE uj0_s_message.

    lv_uj0_s_user-user_id = sy-uname.
    TRY.
        CALL METHOD cl_uj_context=>set_cur_context
          EXPORTING
            i_appset_id = iv_appset_id
            is_user     = lv_uj0_s_user
            i_appl_id   = iv_appl_id.
      CATCH cx_uj_obj_not_found .
    ENDTRY.

    TRY.
        CREATE OBJECT lo_cmt
          EXPORTING
            i_appset_id         = iv_appset_id
            i_appl_id           = iv_appl_id
            if_disable_security = abap_false.
      CATCH cx_ujc_exception .
    ENDTRY.

    TRY.
*        CALL METHOD lo_cmt->add_cmts_fast
        CALL METHOD lo_cmt->add_cmt
          EXPORTING
            it_compact_cmtbl = it_cmt
*           it_all_dim_mbr   = it_dim_mbr
          IMPORTING
            ef_inserted      = ev_inserted
            et_error_cmtbl   = et_error_cmt
          CHANGING
            ct_message       = et_message.
      CATCH cx_ujc_exception .
    ENDTRY.


  ENDMETHOD.

调用:

    DEFINE add_dim_list.
      CLEAR ls_dim_list.
      ls_dim_list-dim_name = &1.
      ls_dim_list-dim_value = &2.
      APPEND ls_dim_list TO ls_cmt-dim_list .
    END-OF-DEFINITION.
  
  "写入备注
    DATA:lv_error TYPE c.
    DATA:lv_msg TYPE char200.
    CLEAR:lt_cmt,lt_dim_mbr,lv_inserted.
    LOOP AT lt_db INTO ls_db.
      CLEAR lv_error.
      "check
      CLEAR ls_log.
      MOVE-CORRESPONDING ls_db TO ls_log.
      ls_log-zdatum = sy-datum.
      ls_log-zuzeit = sy-uzeit.
      ls_log-zuser  = sy-uname.
      IF ls_log-p_account IS INITIAL OR
          ls_log-p_category IS INITIAL OR
          ls_log-p_entity IS INITIAL OR
          ls_log-p_item IS INITIAL OR
          ls_log-p_line IS INITIAL OR
          ls_log-p_misc IS INITIAL OR
          ls_log-p_other1 IS INITIAL OR
          ls_log-p_project IS INITIAL OR
          ls_log-p_rptcurrency IS INITIAL.
        lv_error = abap_true.
        ls_log-type = 'E'.
        ls_log-msg = '存在为空的维度.'.
      ENDIF.
      APPEND ls_log TO lt_log."后续更新校验通过的type msg
      IF lv_error = abap_true.
        CONTINUE.
      ENDIF.

      CLEAR ls_cmt.
      add_dim_list 'P_ACCOUNT'        ls_db-p_account       .
      add_dim_list 'P_CATEGORY'       ls_db-p_category      .
      add_dim_list 'P_CLASS'          ls_db-p_class         .
      add_dim_list 'P_ENTITY'         ls_db-p_entity        .
      add_dim_list 'P_ITEM'           ls_db-p_item          .
      add_dim_list 'P_LINE'           ls_db-p_line          .
      add_dim_list 'P_MISC'           ls_db-p_misc          .
      add_dim_list 'P_OTHER1'         ls_db-p_other1        .
      add_dim_list 'P_PROJECT'        ls_db-p_project       .
      add_dim_list 'P_RPTCURRENCY'    ls_db-p_rptcurrency   .
      add_dim_list 'P_TIME'           ls_db-p_time          .

      ls_cmt-user_id = sy-uname .
      ls_cmt-keyword = 'CELL ENTRY' .
      ls_cmt-priority = 3 .
      ls_cmt-measures = 'PERIODIC' .
      ls_cmt-scomment  = ls_db-signdata."signdata存的是文本
      APPEND ls_cmt TO lt_cmt .
    ENDLOOP.

    FREE lt_db.


    CALL METHOD zcl_bpc_tool=>add_cmts_fast
      EXPORTING
        iv_appset_id = i_appset_id
        iv_appl_id   = i_appl_id
        it_cmt       = lt_cmt
        it_dim_mbr   = lt_dim_mbr
      IMPORTING
        et_message   = DATA(lt_message)
        et_error_cmt = DATA(lt_error_cmt)
        ev_inserted  = lv_inserted.

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SAP BPC开发学习资料中,最好选择SAP官方提供的官方培训资料和文档作为主要学习材料。SAP官方培训材料详细介绍了SAP BPC系统的功能、架构、配置和管理等方面,能够帮助学习者深入了解SAP BPC系统的技术实现和使用方法。同时,官方文档涵盖了许多实际案例和最佳实践,能够帮助学习者更好地应用SAP BPC系统。 除了官方资料之外,还可以参考一些SAP BPC开发经验较为丰富的技术博客和社区网站。这些网站有时提供一些SAP BPC系统开发的实际案例和解决方案,可以帮助学习者更好地理解SAP BPC系统的应用场景和开发方法。 此外,还可以参考一些SAP BPC系统的教学视频和在线课程。这些课程通常涵盖了SAP BPC系统的各个方面,提供了丰富的实例和实践操作,能够让学习者更加深入地了解和掌握SAP BPC系统的使用和开发。需要注意的是,选择教学课程时应该选择权威的课程机构和认证教师。 综上所述,成为一名SAP BPC开发者需要具备扎实的理论基础和丰富的实践经验。通过学习官方资料、参考社区资源和选择合适的培训和课程,可以更好地掌握SAP BPC系统的使用和开发技能。 ### 回答2: SAP BPC是一款企业绩效管理软件,开发学习资料涉及多方面知识。首先,学习者需要掌握SAP BPC的基本原理和架构,了解其工作流程、数据存储和处理等基本概念,可通过官方文档、在线教程、视频教材等资源学习。其次,学习者需要掌握BPC应用程序设计的相关知识,包括平衡、账户管理、工作流和数据集成等技术。此外还需了解数据模型、报告和分析等方面的内容,如何使用多种工具来帮助用户在不同场景下完成任务。最后,学习者还需了解SAP BPC的最佳实践和最新技术趋势。除传统学习方式外,学习者可通过实际项目经验,掌握操作技巧。也可以参加相关的课程,并参加社区活动等,不断学习前沿的技术知识。总之, SAP BPC开发学习资料应综合考虑理论和实践相结合,涵盖多方面知识。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值