尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
封装的比较通用的写入SLG1日志的函数
1.全局变量​​​​​​​CONSTANTS: const_callback_form TYPE baluet VALUE , bal_param_lognumber TYPE spar-param VALUE %LOGNUMBER. DATA gv_lognumber TYPE balhdr-lognumber.2.函数代码FUNCTION zfm_create_log. *---------------------------------------------------------------------- **本地接口 * IMPORTING * VALUE(IS_LOG) TYPE BAL_S_LOG * VALUE(IS_MSG) TYPE BAL_S_MSG * VALUE(I_STRUCTURE_NAME) TYPE DD02L-TABNAME * TABLES * ET_RETURN STRUCTURE BAPIRET2 OPTIONAL * IT_DATA OPTIONAL *---------------------------------------------------------------------- DATA lv_log_handle TYPE balloghndl. PERFORM log_header_create TABLES et_return USING is_log CHANGING lv_log_handle. IF line_exists( et_return[ type E ] ) OR line_exists( et_return[ type A ] ). ELSE. PERFORM log_message_create TABLES et_return USING is_msg lv_log_handle. ENDIF. IF line_exists( et_return[ type E ] ) OR line_exists( et_return[ type A ] ). ELSE. PERFORM log_save TABLES et_return it_data USING lv_log_handle i_structure_name. ENDIF. ENDFUNCTION.*---------------------------------------------------------------------* * Form log_header_create *---------------------------------------------------------------------* * text *---------------------------------------------------------------------* * -- ET_RETURN * -- IS_LOG * -- LV_LOG_HANDLE *---------------------------------------------------------------------* FORM log_header_create TABLES et_return STRUCTURE bapiret2 USING is_log TYPE bal_s_log CHANGING lv_log_handle. * define callback routine is_log-params-callback-userexitp sy-repid. is_log-params-callback-userexitf CALLBACK_LOG_DETAIL. is_log-params-callback-userexitt const_callback_form. * create the log header CALL FUNCTION BAL_LOG_CREATE EXPORTING i_s_log is_log IMPORTING e_log_handle lv_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 INTO et_return-message. et_return-type sy-msgty. et_return-id sy-msgid. et_return-number sy-msgno. APPEND et_return. ENDIF. ENDFORM. FORM callback_log_detail #EC CALLED TABLES i_params STRUCTURE spar. DATA lv_lognumber TYPE balhdr-lognumber. DATA lv_tabname TYPE tabname. DATA lr_data TYPE REF TO data. FIELD-SYMBOLS lt_data TYPE STANDARD TABLE. READ TABLE i_params WITH KEY param bal_param_lognumber. IF sy-subrc 0. RETURN. ENDIF. lv_lognumber i_params-value. IMPORT tabname lv_tabname FROM DATABASE bal_indx(al) ID lv_lognumber. IF sy-subrc 0 OR lv_tabname IS INITIAL. MESSAGE 该日志没有保存明细数据 TYPE S DISPLAY LIKE W. RETURN. ENDIF. TRY. CREATE DATA lr_data TYPE STANDARD TABLE OF (lv_tabname). CATCH cx_sy_create_data_error. MESSAGE |结构 { lv_tabname } 无法用于显示| TYPE S DISPLAY LIKE E. RETURN. ENDTRY. ASSIGN lr_data-* TO lt_data. IMPORT it_data lt_data FROM DATABASE bal_indx(al) ID lv_lognumber. IF sy-subrc 0. RETURN. ENDIF. * display header data CALL FUNCTION REUSE_ALV_LIST_DISPLAY EXPORTING i_structure_name lv_tabname i_screen_start_column 1 i_screen_start_line 1 i_screen_end_column 80 i_screen_end_line 10 TABLES t_outtab lt_data[] 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. *---------------------------------------------------------------------* * Form log_message_create *---------------------------------------------------------------------* * text *---------------------------------------------------------------------* * -- ET_RETURN * -- IS_MSG * -- LV_LOG_HANDLE *---------------------------------------------------------------------* FORM log_message_create TABLES et_return STRUCTURE bapiret2 USING is_msg TYPE bal_s_msg lv_log_handle TYPE balloghndl. * create the message CALL FUNCTION BAL_LOG_MSG_ADD EXPORTING i_log_handle lv_log_handle i_s_msg is_msg 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 INTO et_return-message. et_return-type sy-msgty. et_return-id sy-msgid. et_return-number sy-msgno. APPEND et_return. ENDIF. ENDFORM. *---------------------------------------------------------------------* * Form log_save *---------------------------------------------------------------------* * text *---------------------------------------------------------------------* * -- ET_RETURN * -- LV_LOG_HANDLE *---------------------------------------------------------------------* FORM log_save TABLES et_return STRUCTURE bapiret2 it_data USING lv_log_handle TYPE balloghndl i_structure_name TYPE dd02l-tabname. DATA lt_log_handle TYPE bal_t_logh. DATA ls_new_lognumber TYPE bal_s_lgnm. DATA lt_new_lognumbers TYPE bal_t_lgnm. INSERT lv_log_handle INTO TABLE lt_log_handle. CALL FUNCTION BAL_DB_SAVE EXPORTING i_t_log_handle lt_log_handle IMPORTING e_new_lognumbers lt_new_lognumbers 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 INTO et_return-message. et_return-type sy-msgty. et_return-id sy-msgid. et_return-number sy-msgno. APPEND et_return. ENDIF. * find out the lognumber of this saved log READ TABLE lt_new_lognumbers INTO ls_new_lognumber WITH KEY log_handle lv_log_handle. CHECK sy-subrc 0. gv_lognumber ls_new_lognumber-lognumber. CHECK it_data[] IS NOT INITIAL. * also save our own, complex data: EXPORT tabname i_structure_name it_data[] TO DATABASE bal_indx(al) ID gv_lognumber. ENDFORM.3.消费例子调用例子DATA is_log TYPE bal_s_log. DATA is_msg TYPE bal_s_msg. DATA lv1 TYPE i. DATA it_log TYPE TABLE OF zss_ewmd004_log. DATA ls_log TYPE zss_ewmd004_log. is_log-object ZBAK. is_log-subobject ZEWMD004. is_log-extnumber ls_header-lgnum sy-datum sy-uzeit. is_msg-msgid ZQM001. is_msg-msgno 001. is_msg-msgv1 |库存类型更改成功|. CLEAR: ls_data. LOOP AT gt_data INTO ls_data WHERE ckbox EQ abap_true AND message IS NOT INITIAL. MOVE-CORRESPONDING ls_data TO ls_log. APPEND ls_log TO it_log. CLEAR:ls_data,ls_log. ENDLOOP. is_msg-msgv2 lv1. CHECK it_log IS NOT INITIAL. CALL FUNCTION ZFM_CREATE_LOG EXPORTING is_log is_log is_msg is_msg i_structure_name ZSS_EWMD004_LOG TABLES it_data it_log. COMMIT WORK.
RELATED

相关推荐

小白程序员必看:大模型学习路线图,助你快速入门并找到高薪工作

小白程序员必看:大模型学习路线图,助你快速入门并找到高薪工作

本文对比了两位学习者在大模型学习上的差异,指出企业需求与学习者供给的不匹配问题。文章提出了面向需求的学习路线,包括Python和机器学习基础、大模型应用开发的三板斧(Prompt工程、RAG、Agent)、微调与部署,以及三条…

📅 2026/11/5 6:51:46
化工园区人员定位常见问题怎么解决?千寻位置排查指南

化工园区人员定位常见问题怎么解决?千寻位置排查指南

化工园区人员定位系统上线后,运维人员最常遇到的问题是"系统还在跑,但数据不敢用":某片区域位置不动了、告警不响了、换班时段轨迹全乱。这些问题多数不是设备坏了,而是部署条件、环境变化或参数配置与现场不匹配。本文…

📅 2026/11/5 6:51:46
Aspen HYSYS 二次开发系列教程(2):COM 对象模型逐层拆解——两个 ProgID 入口不可混用

Aspen HYSYS 二次开发系列教程(2):COM 对象模型逐层拆解——两个 ProgID 入口不可混用

Aspen HYSYS 二次开发系列教程(2):COM 对象模型逐层拆解——两个 ProgID 入口不可混用版本声明块 软件:aspenONE V15(基线,同第 1 篇);文档现实:公开手册为 Customizatio…

📅 2026/11/5 6:51:46
MORE NEWS

更多资讯

📰

工业与HVAC高精度温度测量:ADS122U04IPWR与STM32F405ZG方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

ADS122U04+dsPIC33EP实现PT100/PT1000高精度测温方案详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

基于ADS122U04与STM32F427的高精度工业测温系统设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

工业级温度测量:ADS122U04IPWR与STM32F042C6协同设计实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

24位ADC+8位MCU实现稳定可靠的温度采集系统设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

SQLAlchemy ORM实战避坑与性能优化指南

1. Python开发者必看:SQLAlchemy ORM实战避坑指南作为一名长期使用Python进行Web开发的工程师,我见证了无数项目因为不当的数据库操作而陷入性能泥潭。SQLAlchemy作为Python生态中最强大的ORM工具,如果使用得当,可以极大提升开发效…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬