sap 应用日志-Application Log

news2024/12/25 18:10:41

文章目录

  • sap 应用日志-Application Log
    • 概念
    • 事务代码
    • 函数
    • 创建程序
    • 显示配置文件
    • 运行结果
      • 弹出式
      • 全屏式
    • 程序剖析
      • 清空日志
      • 创建日志
      • 模拟数据
      • 添加日志消息
      • 显示日志
      • BAL_DSP_LOG_DISPLAY-显示内存消息
    • 全部程序

sap 应用日志-Application Log

概念

SAP 应用日志(Application Log)是用于创建、保存和分析系统消息的工具。应用程序事件可以集中记录在应用程序日志中。
应用程序日志提供了一个基础结构(应用程序日志是由多个表组成的表结构),用于收集日志中的消息和异常,保存,读取和删除数据库中的日志并显示它们。
应用程序日志记录了应用程序执行的进度。系统日志记录系统事件,我们可以使用应用程序日志记录特定于应用程序的事件,其优点是系统范围的标准化和统一的事件日志记录,便于分析。
应用程序日志旨在临时存储消息。应该间隔删除日志(例如每周批量删除日志)以避免数据库负载过高。

事务代码

在这里插入图片描述

函数

在这里插入图片描述
在这里插入图片描述

创建程序

在这里插入图片描述

显示配置文件

在这里插入图片描述

运行结果

弹出式

在这里插入图片描述

全屏式

在这里插入图片描述

程序剖析

清空日志

 CALL FUNCTION 'BAL_GLB_MEMORY_REFRESH' .

创建日志

DATA i_s_log      TYPE bal_s_log.
DATA e_log_handle TYPE balloghndl.

CALL FUNCTION 'BAL_LOG_CREATE'
  EXPORTING
    i_s_log                       = i_s_log
 IMPORTING
   e_log_handle                  = e_log_handle
 EXCEPTIONS
   log_header_inconsistent       = 1
   OTHERS                        = 2
          .
IF sy-subrc <> 0.
* Implement suitable error handling here
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

模拟数据

*DATA WORK_PROCESS_GROUP TYPE BAPI_ORDER_CNTRL_PARAM-WORK_PROC_GROUP.
*DATA WORK_PROCESS_MAX   TYPE BAPI_ORDER_CNTRL_PARAM-WORK_PROC_MAX.
DATA return             TYPE bapiret2.
DATA orders             TYPE STANDARD TABLE OF bapi_order_key.
DATA detail_return      TYPE STANDARD TABLE OF bapi_order_return.
*DATA APPLICATION_LOG    TYPE STANDARD TABLE OF BAPI_ORDER_APPLICATION_LOG.

DATA order LIKE LINE OF orders .
order-order_number = '200200'.
APPEND order TO orders.
CALL FUNCTION 'BAPI_PROCORD_CLOSE'
* EXPORTING
*   WORK_PROCESS_GROUP       = 'COWORK_BAPI'
*   WORK_PROCESS_MAX         = 99
 IMPORTING
   return                   = return
  TABLES
    orders                   = orders
   detail_return            = detail_return
*   APPLICATION_LOG          = APPLICATION_LOG
          .

我这里是故意没有给生产订单加前导0,没有办法关闭订单,所以一定是错误的。

添加日志消息

DATA i_s_msg             TYPE bal_s_msg.
  LOOP AT detail_return INTO DATA(s_detail_return).
    i_s_msg-msgty = s_detail_return-type.
    i_s_msg-msgid = s_detail_return-id.
    i_s_msg-msgno = s_detail_return-number.
    i_s_msg-msgv1 = s_detail_return-message_v1.
    i_s_msg-msgv2 = s_detail_return-message_v2.
    i_s_msg-msgv3 = s_detail_return-message_v3.
    i_s_msg-msgv4 = s_detail_return-message_v4.
    CALL FUNCTION 'BAL_LOG_MSG_ADD'
      EXPORTING
       i_log_handle              = e_log_handle
        i_s_msg                   = i_s_msg
              .
    IF sy-subrc <> 0.
*     Implement suitable error handling here
    ENDIF.
  ENDLOOP.

显示日志

DATA e_s_display_profile TYPE bal_s_prof.

"是没有树状的,弹出的
  CALL FUNCTION 'BAL_DSP_PROFILE_POPUP_GET'
*   EXPORTING
*     START_COL                 = 5
*     START_ROW                 = 5
*     END_COL                   = 87
*     END_ROW                   = 25
   IMPORTING
     e_s_display_profile       = e_s_display_profile
            .
            "是没有树状的,全屏的
  CALL FUNCTION 'BAL_DSP_PROFILE_NO_TREE_GET'
   IMPORTING
     e_s_display_profile       = e_s_display_profile
            .

BAL_DSP_LOG_DISPLAY-显示内存消息

CALL FUNCTION 'BAL_DSP_LOG_DISPLAY'
   EXPORTING
     i_s_display_profile                 = e_s_display_profile
   EXCEPTIONS
     profile_inconsistent                = 1
     internal_error                      = 2
     no_data_available                   = 3
     no_authority                        = 4
     OTHERS                              = 5
            .
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.

全部程序

*&---------------------------------------------------------------------*
*& Report Z_TEST_LOG_LHY
*&---------------------------------------------------------------------*
*& Description:测试应用日志 Application Log
*&---------------------------------------------------------------------*
REPORT z_test_log_lhy.

"清空日志
   CALL FUNCTION 'BAL_GLB_MEMORY_REFRESH' .


"创建日志
DATA i_s_log      TYPE bal_s_log.
DATA e_log_handle TYPE balloghndl.

CALL FUNCTION 'BAL_LOG_CREATE'
  EXPORTING
    i_s_log                       = i_s_log
 IMPORTING
   e_log_handle                  = e_log_handle
 EXCEPTIONS
   log_header_inconsistent       = 1
   OTHERS                        = 2
          .
IF sy-subrc <> 0.
* Implement suitable error handling here
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

*DATA WORK_PROCESS_GROUP TYPE BAPI_ORDER_CNTRL_PARAM-WORK_PROC_GROUP.
*DATA WORK_PROCESS_MAX   TYPE BAPI_ORDER_CNTRL_PARAM-WORK_PROC_MAX.
DATA return             TYPE bapiret2.
DATA orders             TYPE STANDARD TABLE OF bapi_order_key.
DATA detail_return      TYPE STANDARD TABLE OF bapi_order_return.
*DATA APPLICATION_LOG    TYPE STANDARD TABLE OF BAPI_ORDER_APPLICATION_LOG.

DATA order LIKE LINE OF orders .
order-order_number = '200200'.
APPEND order TO orders.
CALL FUNCTION 'BAPI_PROCORD_CLOSE'
* EXPORTING
*   WORK_PROCESS_GROUP       = 'COWORK_BAPI'
*   WORK_PROCESS_MAX         = 99
 IMPORTING
   return                   = return
  TABLES
    orders                   = orders
   detail_return            = detail_return
*   APPLICATION_LOG          = APPLICATION_LOG
          .

"添加日志
DATA i_s_msg             TYPE bal_s_msg.
  LOOP AT detail_return INTO DATA(s_detail_return).
    i_s_msg-msgty = s_detail_return-type.
    i_s_msg-msgid = s_detail_return-id.
    i_s_msg-msgno = s_detail_return-number.
    i_s_msg-msgv1 = s_detail_return-message_v1.
    i_s_msg-msgv2 = s_detail_return-message_v2.
    i_s_msg-msgv3 = s_detail_return-message_v3.
    i_s_msg-msgv4 = s_detail_return-message_v4.
    CALL FUNCTION 'BAL_LOG_MSG_ADD'
      EXPORTING
       i_log_handle              = e_log_handle
        i_s_msg                   = i_s_msg
              .
    IF sy-subrc <> 0.
*     Implement suitable error handling here
    ENDIF.
  ENDLOOP.

"显示文件
DATA e_s_display_profile TYPE bal_s_prof.

"是没有树状的,弹出的
  CALL FUNCTION 'BAL_DSP_PROFILE_POPUP_GET'
*   EXPORTING
*     START_COL                 = 5
*     START_ROW                 = 5
*     END_COL                   = 87
*     END_ROW                   = 25
   IMPORTING
     e_s_display_profile       = e_s_display_profile
            .

*"是没有树状的,全屏的
*  CALL FUNCTION 'BAL_DSP_PROFILE_NO_TREE_GET'
*   IMPORTING
*     e_s_display_profile       = e_s_display_profile
*            .


 "日志,BAL_DSP_LOG_DISPLAY-应用程序日志:全屏日志输出

  CALL FUNCTION 'BAL_DSP_LOG_DISPLAY'
   EXPORTING
     i_s_display_profile                 = e_s_display_profile
   EXCEPTIONS
     profile_inconsistent                = 1
     internal_error                      = 2
     no_data_available                   = 3
     no_authority                        = 4
     OTHERS                              = 5
            .
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1794249.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【亚马逊云科技 CSDN 联合巨献】 「对话AI 构建者:从基础到应用的 LLM 全景培训」 限时免费!

&#x1f680;&#x1f31f;【亚马逊云科技 & CSDN 联合巨献】 &#x1f4da;「对话AI 构建者&#xff1a;从基础到应用的 LLM 全景培训」&#x1f525; 限时免费&#xff01; &#x1f4c6; 抓紧时间&#xff01;6月7日前注册&#xff0c;原价 399&#xff0c;现在仅需 0…

网络编程(五)

网络编程&#xff08;五&#xff09; 网络服务器超时检测使用select进行超时检测套接字属性**getsockopt:获取socket软通道的某项属性值**setsockopt:设置socket软通道的某项属性值**&#xff08;socket建立之后就可使用&#xff09; 信号**signal()&#xff1a;信号处理函数se…

【Python】搭配 Python 环境(超详细教程)

要想能够进行 Python 开发&#xff0c;就需要搭建好 Python 的环境。 需要安装的环境主要是两个部分&#xff1a; 运行环境&#xff1a;Python 开发环境&#xff1a;PyCharm 一、安装 Python 1、找到官方网站 Welcome to Python.org 在搜索引擎中搜索 python 关键字&…

【WP】猿人学13_入门级cookie

https://match.yuanrenxue.cn/match/13 抓包分析 抓包分析发现加密参数是cookie中有一个yuanrenxue_cookie 当cookie过期的时候&#xff0c;就会重新给match/13发包&#xff0c;这个包返回一段js代码&#xff0c;应该是生成cookie的 <script>document.cookie(y)(u)(a…

Linux环境---在线安装jdk

Linux环境—在线安装jdk 一、使用步骤 1.安装环境 JDK版本&#xff1a;1.8 1.1 建立存放软件的目录 注意&#xff1a;此处本人是将需要按照的软件存放在directory目录下&#xff0c;可根据实际情况调整接收路径。 命令如下&#xff1a; mkdir directory2.安装jdk 2.1 建…

vscode设置代码自动换行显示

☆ 问题描述 vscode设置代码自动换行显示 ★ 解决方案 ✅ 总结

深入理解mysql中的各种超时属性

1. 前言 connectTimeout: 连接超时 loginTimeout: 登录超时 socketTimeout: Socket网络超时&#xff0c;即读超时 queryTimeout: sql执行超时 transactionTimeout:spring事务超时 innodb_lock_wait_timeout:innodb锁等待超时 wait_timeout:非交互式连接关闭前的等待时间 inter…

TMC5160步进电机驱动芯片

TMC5160步进电机驱动芯片 特点和优势静止态自动降电流stealthChop2 & spreadCycle 驱动stealthChop2 & spreadCycle 驱动1.7 stallGuard2 – 机械负载传感1.8 coolStep –负载自适应电流控制1.9 dcStep –负载相关速度控制1.10 编码器接口 TMC5160工作模式模式 1&#…

wireshark 二次开发

一、 Windows 准备 1、源代码下载 Git&#xff1a;https://github.com/wireshark/wireshark 2、 准备Visual C 要编译wireshark&#xff0c;开发电脑上应该安装了Visual Studio并包括了Visual C&#xff0c;请至少安装Visual Studio 2010以减少不必要的麻烦。 visual studio …

Centos Stream 10 测试版下载:未来的RHEL10Rocky Linux 10

简介 最近发现Centos最放出了Stream 10 测试版本&#xff0c;应该是基于Fedora 40构建的。未来红帽会基于此版本构建RHEL 10。 内核版本&#xff1a;6.9.0 Python版本&#xff1a;3.12.2 RHEL系发行版对应关系 Fedora (根发行版-软件实时更新-只支持一年) >>某一版本作…

MySQL换路径(文件夹)

#MySQL作为免费数据库很受欢迎&#xff0c;即使公司没有使用&#xff0c;自己也可以用。它是一个服务&#xff0c;在点击CtrlAltDelete选择任务管理器后&#xff0c;它在服务那个归类里。 经常整理计算机磁盘分类的小伙伴&#xff0c;如果你们安装了MySQL&#xff0c;并且想移…

Docker的部署与基本使用

Docker的部署和基本使用 Docker是一个开源的容器化平台&#xff0c;它允许开发者将应用程序及其依赖项打包成独立的、可移植的容器&#xff0c;从而简化了应用程序的部署、管理和扩展过程。这些容器可以在任何支持Docker的平台上运行&#xff0c;确保了应用的一致性和可移植性…

pdf的压缩该怎么做?快速在线压缩pdf的方法

pdf文件是现在很常用的一种文件格式&#xff0c;有很多的文件内容都可以通过这种格式来展示内容&#xff0c;比如一些通知文件、设计图、个人信息等等&#xff0c;文件的内容越多就会越大&#xff0c;在使用的时候经常会受到一定的限制。那么有什么方法能够快速的将pdf文件变小…

Vue3项目炫酷实战,检测密码强度值

在前端项目开发中&#xff0c;确保用户密码的强度是保护账户安全的重要措施。本文将演示如何使用Vue 3实现一个简单的密码强度检测功能。通过实时反馈&#xff0c;帮助用户创建更安全的密码&#xff0c;从而提升整体系统的安全性。无论您是前端开发新手还是经验丰富的开发者&am…

人大金仓数据库大小写敏感查看

V8R3版本检查方法&#xff1a; 执行语句 show case_sensitive; 返回结果 on&#xff1a;表示大小写敏感&#xff1b; 返回结果 off&#xff1a;表示大小写不敏感。 V8R6版本检查方法&#xff1a; 执行语句 show enable_ci; 返回结果 on&#xff1a;表示大小写不敏感&#x…

Django 创建项目及应用

1&#xff0c;安装 Django pip install Django3.1.5 2&#xff0c;创建 Django项目 django-admin startproject myshop 3&#xff0c;创建 Django应用 python manage.py startapp app1 4&#xff0c;启动 Django项目 python .\manage.py runserver 到这里项目及应用创建…

git报错解决方法error: remote origin already exists.

有时想添加远程本地仓库和远程公司仓库&#xff0c;但git remote的时候发现关联的是一样的&#xff0c;你再去关联时会报错&#xff0c;这时候你应该清除你想关联的远程仓库&#xff0c;再次连接就可以了 下面这个错误提示是远程源已经存在 现在你可以这样做 1、查看远程库的信…

2024-前端面试的正确打开方式(GitHub火爆场景题剖析)

写在前面 最近前端面试大家有没有感觉到场景题的压迫感&#xff01;&#xff01;&#xff01; 很显然普通面试八股不会怎么更新&#xff0c;而且就前端来说&#xff0c;面试并不是真正困难的&#xff0c;常规八股显示不出面试者的技术水平。 前端作为一个技术行业&#xff0c…

在vscode运行github的命令

查看当前分支列表 git branch 查看当前分支列表 git branch 如果没有 main 分支&#xff0c;则创建并切换到 main 分支 git checkout -b main 添加和提交所有更改&#xff08;如果有未提交的更改&#xff09; git add . git commit -m “Initial commit” 推送 main 分…

数据结构———链表

链表是经常用到的一种基础数据结构&#xff0c;接下来我们讲讲链表。 链表&#xff1a; 特点&#xff1a; 链表可分为有头/无头链表&#xff0c;循环/无环&#xff0c;双向/单向链表&#xff0c;每个链表节点都包含一个数据和下一个链表节点的地址。 每个链表节点都指向下一…