2020-10-27 关于函数BAL_DSP_LOG_DISPLAY

BAL_DSP_LOG_DISPLAY

这个函数有点意思,



这个地方引发了一系列翻车问题

标准表:关键字为STANDARD TABLE, 系统为该表的每一行数据生成一个逻辑索引。 填充标准表时,可以将数据附加在现有行之后,也可以插入到指定的位置,程序对内表行的寻址操作可通过关键字或索引进行。在对表进行插入、删除等操作时,各数据行在内存中的位置不变,系统仅重新排列各数据行的索引值。

排序表

排序表:关键字为 SORTED TABLE, 也具有一个逻辑索引,不同之处是排序表总是按其关键字升序排序后再进行存储,其访问方式与标准表相同。   


哈希表

哈希表:关键字为 HASHED TABLE, 没有索引,只能通过关键字来访问。系统用哈希算法管理表中的数据,因而其寻址一个数据行的时间和表的行数无关。



这种表不允许你直接sort 因为本身是sorted

第二个特殊地方就是


这种排序表可不允许你修改值测试,不信你可以试试。我是经过了basis大哥提醒才知道的,

        不是所有表都能se16改 这个sort就是


这里可以看出来 不准插入也不准新行,删除,复制都不允许,我想这是基于他的特性,

在程序执行的时候检查是否排序表 直接给你报错,而不是允许你随意填一个值来插入,因为你插入的值如果不是sorted 那可能引发翻车案例 直接dump

接下来的问题更加需要注意,

这个函数  你可以这样操作,

下面是我的代码

*&---------------------------------------------------------------------*

*& Report  YXFIR462_BACKJOBTEST

*&

*&---------------------------------------------------------------------*

*&

*&

*&---------------------------------------------------------------------*

REPORT yxfir462_backjobtest.

DATA: gv_log_handle TYPE balloghndl.

DATA gt_log_handle TYPE bal_t_logh.

DATA:gtall_log TYPE bal_t_logh.

DATA: gl_balloghndl TYPE balloghndl.

CONSTANTS: cons_log_object TYPE bal_s_log-object VALUE 'FIBA',

          cons_log_subobject TYPE bal_s_log-subobject VALUE 'BAPAYMIN'.

START-OF-SELECTION.

  DO 2 TIMES.

  PERFORM frm_log_fimsg_create.

  PERFORM frm_log_fimsg.

  PERFORM frm_log_fimsg_db_save.

  ENDDO.

  CALL FUNCTION 'BAL_DSP_LOG_DISPLAY'

    EXPORTING

      i_t_log_handle = gtall_log

    EXCEPTIONS

      OTHERS        = 1.

  IF sy-subrc <> 0.

    MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno

            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

  ENDIF.                  "frm_log_display

*&---------------------------------------------------------------------*

*&      Form  FRM_MOVE_TO_FTPOST

*&---------------------------------------------------------------------*

*      text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

*      text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM frm_log_fimsg_create .

  DATA:

      g_s_log            TYPE bal_s_log,

      g_value            TYPE i.

* DEFINE SOME HEADER DATA OF THIS LOG

  g_s_log-extnumber = text-003.

  DATA: l_guid_22 TYPE guid_22.

  PERFORM frm_stage_id_guid_create

              CHANGING l_guid_22.

  WRITE: l_guid_22 TO  g_s_log-extnumber+30.

  CONDENSE g_s_log-extnumber NO-GAPS.

  MOVE  l_guid_22 TO gl_balloghndl. " YJZDH

  g_s_log-object    = cons_log_object.

  g_s_log-subobject = cons_log_subobject.

  g_s_log-aldate    = sy-datum.        "WIE IN RSBTCHH0

  g_s_log-altime    = sy-uzeit.

  g_s_log-aluser    = sy-uname.

  g_s_log-altcode  = space.

  g_s_log-alprog    = sy-repid.

  g_s_log-almode    = space.

  g_s_log-alprog    = sy-repid.

*  G_S_LOG-PARAMS    = SPACE.

  CALL FUNCTION 'BAL_LOG_CREATE'

    EXPORTING

      i_s_log      = g_s_log

    IMPORTING

      e_log_handle = gv_log_handle

    EXCEPTIONS

      OTHERS      = 1.

  IF sy-subrc <> 0.

    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

  ENDIF.

ENDFORM.                    " FRM_LOG_FIMSG_CREATE

*&---------------------------------------------------------------------*

*&      Form  FRM_STAGE_ID_GUID_CREATE

*&---------------------------------------------------------------------*

*      text

*----------------------------------------------------------------------*

*      <--P_L_GUID_22  text

*----------------------------------------------------------------------*

FORM frm_stage_id_guid_create  CHANGING p_stage_guid.

  CALL FUNCTION 'GUID_CREATE'

    IMPORTING

      ev_guid_22 = p_stage_guid.

ENDFORM.                    " FRM_STAGE_ID_GUID_CREATE

*&---------------------------------------------------------------------*

*&      Form  FRM_LOG_FIMSG

*&---------------------------------------------------------------------*

*      text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM frm_log_fimsg .

  DATA:

        l_s_msg TYPE bal_s_msg.

  l_s_msg-alsort    = 01.

*    DEFINE DATA OF MESSAGE FOR APPLICATION LOG

  l_s_msg-msgty    = 'E'.

  l_s_msg-msgid    = 'YFI'.

  l_s_msg-msgno    = '000'.

*  l_s_msg-msgv1    = fimsg-msgv1.

*  l_s_msg-msgv2    = fimsg-msgv2.

*  l_s_msg-msgv3    = fimsg-msgv3.

*  l_s_msg-msgv4    = fimsg-msgv4.

  l_s_msg-probclass = '1'.

  CALL FUNCTION 'BAL_LOG_MSG_CUMULATE'

      EXPORTING

        i_log_handle        = gv_log_handle

        i_s_msg              =  l_s_msg

        i_compare_attributes = 'X'

        i_compare_context    = 'X'

        i_compare_parameters = 'X'

*    IMPORTING

*        E_S_MSG_HANDLE      =

*        E_MSG_WAS_LOGGED    =

*        E_MSG_WAS_DISPLAYED  =

      EXCEPTIONS

            log_not_found        = 0

            msg_inconsistent    = 2

*        OTHERS              = 3

            .

  IF sy-subrc <> 0.

    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

  ENDIF.

ENDFORM.                    " FRM_LOG_FIMSG

*&---------------------------------------------------------------------*

*&      Form  FRM_LOG_FIMSG_DB_SAVE

*&---------------------------------------------------------------------*

*      text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM frm_log_fimsg_db_save .

  REFRESH gt_log_handle.

  CLEAR gt_log_handle.

  APPEND gv_log_handle TO gt_log_handle.

*  APPEND LINES OF gt_log_handle TO gtall_log.

  CALL FUNCTION 'BAL_DB_SAVE'

    EXPORTING

*    I_IN_UPDATE_TASK = 'X'

      i_save_all      = 'X'

      i_t_log_handle  = gt_log_handle

    EXCEPTIONS

      log_not_found    = 1

      save_not_allowed = 2

      numbering_error  = 3

      OTHERS          = 4.

  IF sy-subrc <> 0.

    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

      WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

  ENDIF.

  EXPORT table = gt_log_handle TO MEMORY ID 'GT_LOG'.

ENDFORM.                    " FRM_LOG_FIMSG_DB_SAVE



这段代码告诉一个东西就是我允许你在同一个程序里面一次显示多条 错误还是失败。

但是不允许你这样操作


REPORT yxfir462_back_job_test.

DATA gtall_log_handle TYPE bal_t_logh.

DATA:lt_log_handle TYPE bal_t_logh.

START-OF-SELECTION.

  DO 2 TIMES.

    SUBMIT yxfir462_backjobtest AND RETURN .

    IMPORT table = lt_log_handle FROM  MEMORY ID 'GT_LOG'.

    APPEND LINES OF lt_log_handle TO gtall_log_handle.

  ENDDO.

  CALL FUNCTION 'BAL_DSP_LOG_DISPLAY'

    EXPORTING

      i_t_log_handle      = gtall_log_handle

* CALL FUNCTION 'BAL_DSP_LOG_PRINT'

*      EXPORTING

*          I_S_LOG_FILTER        =

*          I_T_LOG_CONTEXT_FILTER =

*          I_S_MSG_FILTER        =

*          I_T_MSG_CONTEXT_FILTER =

*          I_T_LOG_HANDLE        =

*          I_T_MSG_HANDLE        =

*          I_S_DISPLAY_PROFILE    =

*          I_AMODAL              = ' '

        EXCEPTIONS

              OTHERS                = 1.

  IF sy-subrc <> 0.

    MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno

            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

  ENDIF.                  "frm_log_display


不允许你submit操作,一个程序显示多个甚至一个,提示的错误是

Anzeigeprofil ist nicht konsistent(描述文件没有一致性)

希望能给遇到这个问题的朋友提供一些建议。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342