前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >A simple tool to calculate the total size of a BSP application

A simple tool to calculate the total size of a BSP application

作者头像
Jerry Wang
修改2019-08-07 16:40:51
4180
修改2019-08-07 16:40:51
举报

(Creative Commons)

Today Ben asks me whether there is some tool which can allow us to get a draft estimation on the size of a BSP application. As far as I know there is no such tool, so I write one by myself: You can simply create a report and paste the source code from this blog, execute it by specifying the BSP application name:

clipboard1
clipboard1
clipboard2
clipboard2

According to ABAP help, in Unicode system 1 char occupies 2 bytes:

clipboard3
clipboard3

So in the example below the BSP application CRM_OPPRTNTY occupies at least 2011344 * 2 = 4022688 bytes. Source code of report:

代码语言:javascript
复制
REPORT zbsp.
*&---------------------------------------------------------------------*
*& Report ZCONTEXT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
PARAMETERS: bspname TYPE o2pagdir-applname OBLIGATORY DEFAULT 'CRM_OPPRTNTY'.
TYPES:
     BEGIN OF ty_view_source,
       applname TYPE o2pagdir-applname,
       pagekey  TYPE o2pagdir-pagekey,
       source   TYPE o2pageline_table,
     END OF ty_view_source .
TYPES:
  tt_view_source TYPE STANDARD TABLE OF ty_view_source WITH KEY
  applname pagekey .

DATA: ls_pagecon_key TYPE o2pconkey,
  lt_view_source TYPE tt_view_source,
  lv_total TYPE i VALUE 0,
  lv_each TYPE i.

FIELD-SYMBOLS: <line> LIKE LINE OF lt_view_source.

START-OF-SELECTION.
  PERFORM main.
*&---------------------------------------------------------------------*
*&      Form  MAIN
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM main.

  SELECT applname pagekey FROM o2pagdir INTO CORRESPONDING FIELDS OF TABLE
     lt_view_source WHERE applname = bspname.

  ls_pagecon_key-objtype = 'PD'.
  ls_pagecon_key-version = 'A'.

  LOOP AT lt_view_source ASSIGNING <line>.
    ls_pagecon_key-applname = <line>-applname.
    ls_pagecon_key-pagekey = <line>-pagekey.

    IMPORT content    TO  <line>-source
       FROM DATABASE o2pagcon(tr) ID ls_pagecon_key
       ACCEPTING PADDING IGNORING CONVERSION ERRORS.

    PERFORM get_char_number USING <line>-source CHANGING lv_each.
    lv_total = lv_total + lv_each.
    WRITE: / <line>-pagekey COLOR COL_NEGATIVE, lv_each COLOR COL_KEY.

  ENDLOOP.

  WRITE: / 'total number of characters: ' COLOR COL_NEGATIVE , lv_total COLOR COL_GROUP.
ENDFORM.                    "MAIN

*&---------------------------------------------------------------------*
*&      Form  GET_CHAR_NUMBER
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->IT_SOURCE  text
*      <--CV_SIZE    text
*----------------------------------------------------------------------*
FORM get_char_number USING it_source TYPE o2pageline_table CHANGING cv_size TYPE i.
  CLEAR: cv_size.
  FIELD-SYMBOLS: <source> LIKE LINE OF it_source.
  LOOP AT it_source ASSIGNING <source>.
    cv_size = cv_size + strlen( <source> ).
  ENDLOOP.

ENDFORM.                    "GET_CHAR_NUMBER
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年06月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档