当不知道IDOC同步的具体时间,而WE02数据量过大时;

当某条IDOC记录中数据量过大,找不到具体某条数据时;

可采用自开发程序查找,具体代码如下:

REPORT ZIDOC_LOG.
*----------------------------------------------------------------------*
*表声明
*----------------------------------------------------------------------*
TABLES:SSCRFIELDS,EDIDC." *----------------------------------------------------------------------*
*类型池声明
*----------------------------------------------------------------------*
TYPE-POOLS:SLIS. *----------------------------------------------------------------------*
* 类型定义
*----------------------------------------------------------------------*
TYPES:BEGIN OF TY_IDOC,
DOCNUM TYPE EDIDC-DOCNUM, "IDoc 号码
STATUS TYPE EDIDC-STATUS, "状态
RCVPOR TYPE EDIDC-RCVPOR, "接收方端口
SNDPOR TYPE EDIDC-SNDPOR, "发件人端口
SNDPRN TYPE EDIDC-SNDPRN, "发送者伙伴编号
CREDAT TYPE EDIDC-CREDAT, "创建日期
CRETIM TYPE EDIDC-CRETIM, "创建时间
MESTYP TYPE EDIDC-MESTYP, "消息类型
IDOCTP TYPE EDIDC-IDOCTP, "基本类型
UPDDAT TYPE EDIDC-UPDDAT, "更改日期
UPDTIM TYPE EDIDC-UPDTIM, "更改时间
MAXSEGNUM TYPE EDIDC-MAXSEGNUM, "数据记录的数目 SEGNUM TYPE EDID4-SEGNUM, "SAP 段编号
SEGNAM TYPE EDID4-SEGNAM, "SAP 段名
SDATA TYPE STRING, "应用程序数据
END OF TY_IDOC. TYPES:BEGIN OF TY_EDID4,
DOCNUM TYPE EDID4-DOCNUM, "IDoc 号码
COUNTER TYPE EDID4-COUNTER, "簇表的计数器
SEGNUM TYPE EDID4-SEGNUM, "SAP 段编号
SEGNAM TYPE EDID4-SEGNAM, "SAP 段名
SDATA TYPE STRING, "应用程序数据
END OF TY_EDID4. TYPES:BEGIN OF TY_SEGNAM,
SEGNAM TYPE EDID4-SEGNAM, "SAP 段名,
END OF TY_SEGNAM. DATA:GT_SEGNAM_HASH TYPE HASHED TABLE OF TY_SEGNAM WITH UNIQUE KEY SEGNAM,
GS_SEGNAM_HASH TYPE TY_SEGNAM. *----------------------------------------------------------------------*
* 声明内表和工作区
*----------------------------------------------------------------------*
DATA:GT_IDOC TYPE TABLE OF TY_IDOC,
GS_IDOC TYPE TY_IDOC,
GT_ALV TYPE TABLE OF TY_IDOC,
GS_ALV TYPE TY_IDOC,
GT_EDID4 TYPE TABLE OF EDIDD,
GS_EDID4 TYPE EDIDD. DATA: TIME_0 LIKE EDIDC-UPDTIM VALUE '',
TIME_24 LIKE EDIDC-UPDTIM VALUE ''. FIELD-SYMBOLS:<GS_IDOC> TYPE TY_IDOC,
<DYN_ALV> TYPE STANDARD TABLE,
<DYN_WA>,
<GS_FIELD> TYPE LVC_S_FCAT,
<DYN_FIELD>.
DATA:DY_TABLE TYPE REF TO DATA,
GS_LINE TYPE REF TO DATA. DATA:GT_ROW TYPE LVC_T_ROW,
GS_ROW TYPE LVC_S_ROW,
GT_ROW_NO TYPE LVC_T_ROID.
*----------------------------------------------------------------------*
*ALV参数声明
*----------------------------------------------------------------------* DATA: GT_FIELDCAT TYPE LVC_T_FCAT, "字段目录内表
GS_FIELDCAT TYPE LVC_S_FCAT, "字段目录工作区
GT_FIELD TYPE LVC_T_FCAT, "字段目录内表
GS_FIELD TYPE LVC_S_FCAT, "字段目录工作区
GS_LAYOUT TYPE LVC_S_LAYO. "用于定义ALV表单的相关格式、属性 *----------------------------------------------------------------------*
*选 择 屏 幕 定 义 块
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK BLK0 WITH FRAME.
PARAMETERS:P_IDOCTP TYPE EDIDC-IDOCTP OBLIGATORY."基本类型
SELECT-OPTIONS:S_CREDAT FOR EDIDC-CREDAT DEFAULT SY-DATUM TO SY-DATUM OBLIGATORY."创建日期
SELECT-OPTIONS:S_CRETIM FOR EDIDC-CRETIM DEFAULT TIME_0 TO TIME_24 OBLIGATORY."创建时间
SELECTION-SCREEN END OF BLOCK BLK0.
*&---------------------------------------------------------------------*
* 初始化
*&---------------------------------------------------------------------*
SELECTION-SCREEN:
FUNCTION KEY ."定义按钮1 *&---------------------------------------------------------------------*
* INITIALIZATION:启动程序开始执行,初始话数据
*&---------------------------------------------------------------------*
INITIALIZATION. AT SELECTION-SCREEN. *&---------------------------------------------------------------------*
*& AT SELECTION-SCREEN OUTPUT:在屏幕输出前
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT. *----------------------------------------------------------------------*
* ALV逻辑流
*----------------------------------------------------------------------*
START-OF-SELECTION. "获取数据
PERFORM FRM_GET_DATA. "设置输出格式
PERFORM FRM_SET_LAYOUT. "设置字段属性
PERFORM FRM_SET_FIELDCAT. "创建动态内表
PERFORM FRM_CREATE_TABLE. "显示ALV
PERFORM FRM_DISPLAY_ALV.
*&---------------------------------------------------------------------*
*& Form FRM_CHECK_SRCEEN
*&---------------------------------------------------------------------*
* text 检查必输字段
*----------------------------------------------------------------------*
FORM FRM_CHECK_SRCEEN. ENDFORM. *&---------------------------------------------------------------------*
*& Form FRM_CHECK_AUTHORITY
*&---------------------------------------------------------------------*
* text 权限检查
*----------------------------------------------------------------------*
FORM FRM_CHECK_AUTHORITY.
* DATA:LV_MESSAGE TYPE CHAR200.
*
* AUTHORITY-CHECK OBJECT 'M_MSEG_WMB' ID 'WERKS' FIELD P_WERKS.
* IF SY-SUBRC <> 0.
* CONCATENATE '你没有' P_WERKS '工厂的权限' INTO LV_MESSAGE.
* MESSAGE LV_MESSAGE TYPE 'S' DISPLAY LIKE 'E'.
* STOP.
* ENDIF.
ENDFORM. *&---------------------------------------------------------------------*
*& Form FRM_GET_DATA
*&---------------------------------------------------------------------*
* text 获取数据
*----------------------------------------------------------------------*
FORM FRM_GET_DATA.
DATA:LV_CHECK TYPE CHAR1. SELECT
DOCNUM"IDoc 号码
STATUS"状态
RCVPOR"接收方端口
SNDPOR"发件人端口
SNDPRN"发送者伙伴编号
CREDAT"创建日期
CRETIM"创建时间
MESTYP"消息类型
IDOCTP"基本类型
UPDDAT"更改日期
UPDTIM"更改时间
MAXSEGNUM"数据记录的数目
FROM EDIDC
INTO TABLE GT_IDOC
WHERE IDOCTP = P_IDOCTP
AND CREDAT IN S_CREDAT
AND CRETIM IN S_CRETIM. IF GT_IDOC IS NOT INITIAL.
SELECT
*
FROM EDID4
INTO CORRESPONDING FIELDS OF TABLE GT_EDID4
FOR ALL ENTRIES IN GT_IDOC
WHERE DOCNUM = GT_IDOC-DOCNUM. SORT GT_EDID4 BY DOCNUM SEGNUM. LOOP AT GT_IDOC ASSIGNING <GS_IDOC>.
* LV_CHECK = ''.
LOOP AT GT_EDID4 INTO GS_EDID4 WHERE DOCNUM = <GS_IDOC>-DOCNUM.
<GS_IDOC>-SEGNUM = GS_EDID4-SEGNUM.
<GS_IDOC>-SEGNAM = GS_EDID4-SEGNAM.
<GS_IDOC>-SDATA = GS_EDID4-SDATA.
* LV_CHECK = 'X'.
CLEAR:GS_SEGNAM_HASH.
GS_SEGNAM_HASH-SEGNAM = GS_EDID4-SEGNAM.
INSERT GS_SEGNAM_HASH INTO TABLE GT_SEGNAM_HASH. APPEND <GS_IDOC> TO GT_ALV.
CLEAR:GS_EDID4.
ENDLOOP. * IF LV_CHECK <> 'X'.
* APPEND <GS_IDOC> TO GT_ALV.
* ENDIF.
ENDLOOP.
ENDIF. IF GT_ALV IS INITIAL.
MESSAGE '系统中无相关数据' TYPE 'S' DISPLAY LIKE 'E'.
STOP.
ELSE.
SORT GT_ALV BY DOCNUM SEGNUM.
ENDIF.
ENDFORM. " FRM_GET_DATA *&---------------------------------------------------------------------*
*& Form FRM_SET_LAYOUT
*&---------------------------------------------------------------------*
* text 界面格式属性
*----------------------------------------------------------------------*
FORM FRM_SET_LAYOUT .
CLEAR GS_LAYOUT.
GS_LAYOUT-SEL_MODE = 'A'. "选择行模式
GS_LAYOUT-CWIDTH_OPT = 'A'. "优化列宽设置
GS_LAYOUT-ZEBRA = 'X'. "设置斑马线
* GS_LAYOUT-BOX_FNAME = 'CHECKBOX'.
ENDFORM. " FRM_SET_LAYOUT *&---------------------------------------------------------------------*
*& Form FRM_SET_FIELDCAT
*&---------------------------------------------------------------------*
* text 字段属性定义
*----------------------------------------------------------------------*
FORM FRM_SET_FIELDCAT. DATA:LT_ALV TYPE TABLE OF TY_IDOC,
LS_ALV TYPE TY_IDOC,
* LT_SEGNAM_HASH TYPE HASHED TABLE OF TY_SEGNAM WITH UNIQUE KEY SEGNAM,
LT_SEGNAM_HASH TYPE TABLE OF TY_SEGNAM,
LS_SEGNAM_HASH TYPE TY_SEGNAM,
LT_FIELD TYPE LVC_T_FCAT, "字段目录内表
LS_FIELD TYPE LVC_S_FCAT. "字段目录工作区. DATA:CL_TABLE TYPE REF TO CL_ABAP_TABLEDESCR,
CL_STRUCT TYPE REF TO CL_ABAP_STRUCTDESCR,
LV_LINES TYPE I,
LV_TABNAME TYPE DD02L-TABNAME. FIELD-SYMBOLS:<GS_TEMP> TYPE ANY,
<LV_VALUE> TYPE ANY. REFRESH GT_FIELDCAT.
DEFINE INIT_FILL_FCAT.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = &.
gs_fieldcat-coltext = &.
gs_fieldcat-scrtext_l = &.
gs_fieldcat-scrtext_m = &.
gs_fieldcat-scrtext_s = &.
gs_fieldcat-reptext = &.
gs_fieldcat-ref_table = &.
gs_fieldcat-ref_field = &.
gs_fieldcat-no_zero = &.
gs_fieldcat-ICON = &.
gs_fieldcat-hotspot = &.
gs_fieldcat-datatype = &.
gs_fieldcat-inttype = &.
APPEND gs_fieldcat TO gt_fieldcat.
END-OF-DEFINITION. INIT_FILL_FCAT 'DOCNUM' 'IDoc 号码' 'EDIDC' 'DOCNUM' '' '' 'X' '' ''.
INIT_FILL_FCAT 'SEGNUM' '段编号' 'EDID4' 'SEGNUM' '' '' '' '' ''.
INIT_FILL_FCAT 'STATUS' '状态' 'EDIDC' 'STATUS' '' '' '' '' ''.
INIT_FILL_FCAT 'RCVPOR' '接收方端口' 'EDIDC' 'RCVPOR' '' '' '' '' ''.
INIT_FILL_FCAT 'SNDPOR' '发件人端口' 'EDIDC' 'SNDPOR' '' '' '' '' ''.
* INIT_FILL_FCAT 'SNDPRN' '发送者伙伴编号' 'EDIDC' 'SNDPRN' '' '' '' '' ''.
INIT_FILL_FCAT 'MESTYP' '消息类型' 'EDIDC' 'MESTYP' '' '' '' '' ''.
INIT_FILL_FCAT 'IDOCTP' '基本类型' 'EDIDC' 'IDOCTP' '' '' 'X' '' ''.
INIT_FILL_FCAT 'SEGNAM' 'SAP 段名' 'EDID4' 'SEGNAM' '' '' '' '' ''.
INIT_FILL_FCAT 'CREDAT' '创建日期' 'EDIDC' 'CREDAT' '' '' '' '' ''.
INIT_FILL_FCAT 'CRETIM' '创建时间' 'EDIDC' 'CRETIM' '' '' '' '' ''.
INIT_FILL_FCAT 'UPDDAT' '更改日期' 'EDIDC' 'UPDDAT' '' '' '' '' ''.
INIT_FILL_FCAT 'UPDTIM' '更改时间' 'EDIDC' 'UPDTIM' '' '' '' '' ''. * REFRESH:LT_ALV.
* LT_ALV = GT_ALV.
*
* SORT LT_ALV BY SEGNUM SEGNAM.
* DELETE ADJACENT DUPLICATES FROM LT_ALV COMPARING SEGNUM SEGNAM. * LOOP AT LT_ALV INTO LS_ALV.
* CLEAR:LS_SEGNAM_HASH.
* LS_SEGNAM_HASH-SEGNAM = LS_ALV-SEGNAM.
* INSERT LS_SEGNAM_HASH INTO TABLE LT_SEGNAM_HASH.
* CLEAR:LS_ALV.
* ENDLOOP.
REFRESH:LT_SEGNAM_HASH.
LT_SEGNAM_HASH = GT_SEGNAM_HASH.
* SORT LT_ALV BY DOCNUM SEGNUM. CLEAR:LV_LINES.
* DESCRIBE TABLE LT_ALV LINES LV_LINES.
DESCRIBE TABLE LT_SEGNAM_HASH LINES LV_LINES. REFRESH:GT_FIELD.
IF LV_LINES > .
* LOOP AT LT_ALV INTO LS_ALV.
LOOP AT LT_SEGNAM_HASH INTO LS_SEGNAM_HASH.
* CLEAR:LV_TABNAME.
* LV_TABNAME = LS_ALV-SEGNAM.
REFRESH:LT_FIELD.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
I_STRUCTURE_NAME = LS_SEGNAM_HASH-SEGNAM "这里也可以是表名
CHANGING
CT_FIELDCAT = LT_FIELD. LOOP AT LT_FIELD INTO LS_FIELD.
CLEAR:GS_FIELD.
GS_FIELD = LS_FIELD.
GS_FIELD-FIELDNAME = LS_SEGNAM_HASH-SEGNAM && '-' && GS_FIELD-FIELDNAME.
GS_FIELD-TABNAME = LS_SEGNAM_HASH-SEGNAM.
GS_FIELD-REF_TABLE = LS_SEGNAM_HASH-SEGNAM.
GS_FIELD-REF_FIELD = GS_FIELD-FIELDNAME.
APPEND GS_FIELD TO GT_FIELD.
CLEAR:LS_FIELD.
ENDLOOP.
ENDLOOP.
ELSE.
READ TABLE LT_SEGNAM_HASH INTO LS_SEGNAM_HASH INDEX .
IF SY-SUBRC EQ .
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
I_STRUCTURE_NAME = LS_SEGNAM_HASH-SEGNAM "这里也可以是表名
CHANGING
CT_FIELDCAT = GT_FIELD.
ENDIF. LOOP AT GT_FIELD ASSIGNING <GS_FIELD>.
<GS_FIELD>-TABNAME = LS_SEGNAM_HASH-SEGNAM.
<GS_FIELD>-REF_TABLE = LS_SEGNAM_HASH-SEGNAM.
<GS_FIELD>-REF_FIELD = <GS_FIELD>-FIELDNAME.
ENDLOOP.
ENDIF. * DELETE ADJACENT DUPLICATES FROM GT_FIELD COMPARING FIELDNAME. LOOP AT GT_FIELD INTO GS_FIELD.
* INIT_FILL_FCAT GS_FIELD-FIELDNAME GS_FIELD-FIELDNAME GS_ALV-SEGNAM GS_FIELD-FIELDNAME '' '' '' '' ''.
INIT_FILL_FCAT GS_FIELD-FIELDNAME GS_FIELD-FIELDNAME GS_FIELD-REF_TABLE GS_FIELD-REF_FIELD '' '' '' '' ''.
CLEAR:GS_FIELD.
ENDLOOP. ENDFORM. " FRM_SET_FIELDCAT *&---------------------------------------------------------------------*
*& Form frm_create_table
*&---------------------------------------------------------------------*
* 创建动态内表
*----------------------------------------------------------------------*
FORM FRM_CREATE_TABLE. DATA:LV_FIELDNAME TYPE CHAR5,
LV_LENGTH TYPE I,
LV_START TYPE I,
LV_WIDTH TYPE I. CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
IT_FIELDCATALOG = GT_FIELDCAT
IMPORTING
EP_TABLE = DY_TABLE.
"用表类型指针 <dyn_table> 指向 数据对象的内容.
ASSIGN DY_TABLE->* TO <DYN_ALV>.
"建立一个与动态内表结构相同的数据对象,且数据对象为是一个结构
CREATE DATA GS_LINE LIKE LINE OF <DYN_ALV>.
"用<dyn_wa>指针指向该结构
ASSIGN GS_LINE->* TO <DYN_WA>. LOOP AT GT_ALV INTO GS_ALV. MOVE-CORRESPONDING GS_ALV TO <DYN_WA>. CLEAR:LV_LENGTH.
LV_LENGTH = STRLEN( GS_ALV-SDATA )."日志字段值得长度
LOOP AT GT_FIELD INTO GS_FIELD WHERE TABNAME = GS_ALV-SEGNAM.
IF LV_LENGTH > .
ASSIGN COMPONENT GS_FIELD-FIELDNAME OF STRUCTURE <DYN_WA> TO <DYN_FIELD>.
CLEAR:LV_START,LV_WIDTH.
LV_WIDTH = GS_FIELD-INTLEN."当前字段的长度
<DYN_FIELD> = GS_ALV-SDATA.
LV_LENGTH = LV_LENGTH - LV_WIDTH."总长度 - 截取的长度
IF LV_LENGTH > .
GS_ALV-SDATA = GS_ALV-SDATA+LV_WIDTH(LV_LENGTH)."日志字段值截掉已赋值的长度
ENDIF. ENDIF.
ENDLOOP. APPEND <DYN_WA> TO <DYN_ALV>.
CLEAR:GS_ALV,<DYN_WA>.
ENDLOOP.
ENDFORM. "
*&---------------------------------------------------------------------*
*& Form FRM_DISPLAY_ALV
*&---------------------------------------------------------------------*
* text 界面显示
*----------------------------------------------------------------------*
FORM FRM_DISPLAY_ALV . CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT_LVC = GS_LAYOUT
* I_CALLBACK_PF_STATUS_SET = 'FRM_SET_STATUS'
I_CALLBACK_USER_COMMAND = 'FRM_USER_COMMAND'
IT_FIELDCAT_LVC = GT_FIELDCAT
I_SAVE = 'A'
TABLES
T_OUTTAB = <DYN_ALV>
EXCEPTIONS
PROGRAM_ERROR =
OTHERS = .
IF SY-SUBRC <> .
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF. ENDFORM. " FRM_DISPLAY_ALV *&---------------------------------------------------------------------*
*& Form FRM_SET_STATUS
*&---------------------------------------------------------------------*
* text 状态栏
*----------------------------------------------------------------------*
FORM FRM_SET_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB. ENDFORM. " FRM_SET_STATUS *&---------------------------------------------------------------------*
*& Form USER_COMMAND
*&---------------------------------------------------------------------*
* text 用户操作
*----------------------------------------------------------------------*
FORM FRM_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
DATA:REF_GRID TYPE REF TO CL_GUI_ALV_GRID. RANGES:DOCNUM FOR EDIDC-DOCNUM,
IDOCTP FOR EDIDC-IDOCTP,
CREDAT FOR EDIDC-CREDAT. CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = REF_GRID. "获取全局变量 CALL METHOD REF_GRID->CHECK_CHANGED_DATA. "获取响应事件 REFRESH:GT_ROW.
CALL METHOD REF_GRID->GET_SELECTED_ROWS "获取选择的行
IMPORTING
ET_INDEX_ROWS = GT_ROW
ET_ROW_NO = GT_ROW_NO. CASE R_UCOMM.
WHEN '&IC1'. "ALV中双击事件代码
CLEAR GS_ALV.
READ TABLE GT_ALV INTO GS_ALV INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = .
CASE RS_SELFIELD-FIELDNAME.
WHEN 'DOCNUM'.
REFRESH:DOCNUM.
DOCNUM-SIGN = 'I'.
DOCNUM-OPTION = 'EQ'.
DOCNUM-LOW = GS_ALV-DOCNUM.
APPEND DOCNUM. SUBMIT RSEIDOC2
WITH CRETIM IN S_CRETIM
WITH CREDAT IN CREDAT
WITH DOCNUM IN DOCNUM
AND RETURN.
WHEN 'IDOCTP'.
REFRESH:IDOCTP.
IDOCTP-SIGN = 'I'.
IDOCTP-OPTION = 'EQ'.
IDOCTP-LOW = GS_ALV-IDOCTP.
APPEND IDOCTP. SUBMIT RSEIDOC2
WITH CRETIM IN S_CRETIM
WITH CREDAT IN S_CREDAT
WITH IDOCTP IN IDOCTP
AND RETURN.
ENDCASE.
ENDIF.
WHEN '&BACK'.
LEAVE TO SCREEN .
WHEN '&EXIT'.
LEAVE PROGRAM.
ENDCASE. RS_SELFIELD-REFRESH = 'X'."刷新界面 ENDFORM. "USER_COMMAND

*&---------------------------------------------------------------------*
*&程序名称/Program Name         : ZIDOC_LOG
*&程序描述/Program Des.         : IDOC日志
*&开发单位/Development Company  : 汉得/HAND
*&作者/Author                   : HANDLCC
*&完成日期/Completion Date      : 2019-04-17
*&---------------------------------------------------------------------*
*&摘要:
*&
*&---------------------------------------------------------------------*
*&变更记录:                                                           *
*&Date         Developer           ReqNo       Descriptions            *
*& ==========  ==================  ==========  ========================*
*& 2019-04-17  HANDLCC             DEVK908414  初始开发
*&---------------------------------------------------------------------*

REPORT ZIDOC_LOG.
*----------------------------------------------------------------------*
*表声明
*----------------------------------------------------------------------*
TABLES:SSCRFIELDS,EDIDC."

*----------------------------------------------------------------------*
*类型池声明
*----------------------------------------------------------------------*
TYPE-POOLS:SLIS.

*----------------------------------------------------------------------*
* 类型定义
*----------------------------------------------------------------------*
TYPES:BEGIN OF TY_IDOC,
        DOCNUM    TYPE EDIDC-DOCNUM, "IDoc 号码
        STATUS    TYPE EDIDC-STATUS, "状态
        RCVPOR    TYPE EDIDC-RCVPOR, "接收方端口
        SNDPOR    TYPE EDIDC-SNDPOR, "发件人端口
        SNDPRN    TYPE EDIDC-SNDPRN, "发送者伙伴编号
        CREDAT    TYPE EDIDC-CREDAT, "创建日期
        CRETIM    TYPE EDIDC-CRETIM, "创建时间
        MESTYP    TYPE EDIDC-MESTYP, "消息类型
        IDOCTP    TYPE EDIDC-IDOCTP, "基本类型
        UPDDAT    TYPE EDIDC-UPDDAT, "更改日期
        UPDTIM    TYPE EDIDC-UPDTIM, "更改时间
        MAXSEGNUM TYPE EDIDC-MAXSEGNUM, "数据记录的数目

SEGNUM    TYPE EDID4-SEGNUM, "SAP 段编号
        SEGNAM    TYPE EDID4-SEGNAM, "SAP 段名
        SDATA     TYPE STRING, "应用程序数据
      END OF TY_IDOC.

TYPES:BEGIN OF TY_EDID4,
        DOCNUM  TYPE EDID4-DOCNUM, "IDoc 号码
        COUNTER TYPE EDID4-COUNTER, "簇表的计数器
        SEGNUM  TYPE EDID4-SEGNUM, "SAP 段编号
        SEGNAM  TYPE EDID4-SEGNAM, "SAP 段名
        SDATA   TYPE STRING, "应用程序数据
      END OF TY_EDID4.

TYPES:BEGIN OF TY_SEGNAM,
        SEGNAM TYPE EDID4-SEGNAM, "SAP 段名,
      END OF TY_SEGNAM.

DATA:GT_SEGNAM_HASH TYPE HASHED TABLE OF TY_SEGNAM WITH UNIQUE KEY SEGNAM,
     GS_SEGNAM_HASH TYPE TY_SEGNAM.

*----------------------------------------------------------------------*
* 声明内表和工作区
*----------------------------------------------------------------------*
DATA:GT_IDOC  TYPE TABLE OF TY_IDOC,
     GS_IDOC  TYPE TY_IDOC,
     GT_ALV   TYPE TABLE OF TY_IDOC,
     GS_ALV   TYPE TY_IDOC,
     GT_EDID4 TYPE TABLE OF EDIDD,
     GS_EDID4 TYPE EDIDD.

DATA: TIME_0  LIKE EDIDC-UPDTIM VALUE '000000',
      TIME_24 LIKE EDIDC-UPDTIM VALUE '240000'.

FIELD-SYMBOLS:<GS_IDOC>   TYPE TY_IDOC,
              <DYN_ALV>   TYPE STANDARD TABLE,
              <DYN_WA>,
              <GS_FIELD>  TYPE LVC_S_FCAT,
              <DYN_FIELD>.
DATA:DY_TABLE TYPE REF TO DATA,
     GS_LINE  TYPE REF TO DATA.

DATA:GT_ROW    TYPE LVC_T_ROW,
     GS_ROW    TYPE LVC_S_ROW,
     GT_ROW_NO TYPE LVC_T_ROID.
*----------------------------------------------------------------------*
*ALV参数声明
*----------------------------------------------------------------------*

DATA: GT_FIELDCAT TYPE LVC_T_FCAT, "字段目录内表
      GS_FIELDCAT TYPE LVC_S_FCAT, "字段目录工作区
      GT_FIELD    TYPE LVC_T_FCAT, "字段目录内表
      GS_FIELD    TYPE LVC_S_FCAT, "字段目录工作区
      GS_LAYOUT   TYPE LVC_S_LAYO. "用于定义ALV表单的相关格式、属性

*----------------------------------------------------------------------*
*选 择 屏 幕 定 义 块
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK BLK0 WITH FRAME.
PARAMETERS:P_IDOCTP TYPE EDIDC-IDOCTP OBLIGATORY."基本类型
SELECT-OPTIONS:S_CREDAT FOR EDIDC-CREDAT DEFAULT SY-DATUM TO SY-DATUM OBLIGATORY."创建日期
SELECT-OPTIONS:S_CRETIM FOR EDIDC-CRETIM DEFAULT TIME_0 TO TIME_24 OBLIGATORY."创建时间
SELECTION-SCREEN END OF BLOCK BLK0.
*&---------------------------------------------------------------------*
* 初始化
*&---------------------------------------------------------------------*
SELECTION-SCREEN:
FUNCTION KEY 1."定义按钮1

*&---------------------------------------------------------------------*
* INITIALIZATION:启动程序开始执行,初始话数据
*&---------------------------------------------------------------------*
INITIALIZATION.

AT SELECTION-SCREEN.

*&---------------------------------------------------------------------*
*&  AT SELECTION-SCREEN OUTPUT:在屏幕输出前
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.

*----------------------------------------------------------------------*
* ALV逻辑流
*----------------------------------------------------------------------*
START-OF-SELECTION.

"获取数据
  PERFORM FRM_GET_DATA.

"设置输出格式
  PERFORM FRM_SET_LAYOUT.

"设置字段属性
  PERFORM FRM_SET_FIELDCAT.

"创建动态内表
  PERFORM FRM_CREATE_TABLE.

"显示ALV
  PERFORM FRM_DISPLAY_ALV.
*&---------------------------------------------------------------------*
*&      Form  FRM_CHECK_SRCEEN
*&---------------------------------------------------------------------*
*       text 检查必输字段
*----------------------------------------------------------------------*
FORM FRM_CHECK_SRCEEN.

ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  FRM_CHECK_AUTHORITY
*&---------------------------------------------------------------------*
*       text 权限检查
*----------------------------------------------------------------------*
FORM FRM_CHECK_AUTHORITY.
*  DATA:LV_MESSAGE TYPE CHAR200.
*
*  AUTHORITY-CHECK OBJECT 'M_MSEG_WMB' ID 'WERKS' FIELD P_WERKS.
*  IF SY-SUBRC <> 0.
*    CONCATENATE '你没有' P_WERKS '工厂的权限' INTO LV_MESSAGE.
*    MESSAGE LV_MESSAGE TYPE 'S' DISPLAY LIKE 'E'.
*    STOP.
*  ENDIF.
ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  FRM_GET_DATA
*&---------------------------------------------------------------------*
*       text 获取数据
*----------------------------------------------------------------------*
FORM FRM_GET_DATA.
  DATA:LV_CHECK TYPE CHAR1.

SELECT
    DOCNUM"IDoc 号码
    STATUS"状态
    RCVPOR"接收方端口
    SNDPOR"发件人端口
    SNDPRN"发送者伙伴编号
    CREDAT"创建日期
    CRETIM"创建时间
    MESTYP"消息类型
    IDOCTP"基本类型
    UPDDAT"更改日期
    UPDTIM"更改时间
    MAXSEGNUM"数据记录的数目
  FROM EDIDC
  INTO TABLE GT_IDOC
  WHERE IDOCTP = P_IDOCTP
    AND CREDAT IN S_CREDAT
    AND CRETIM IN S_CRETIM.

IF GT_IDOC IS NOT INITIAL.
    SELECT
      *
    FROM EDID4
    INTO CORRESPONDING FIELDS OF TABLE GT_EDID4
    FOR ALL ENTRIES IN GT_IDOC
    WHERE DOCNUM = GT_IDOC-DOCNUM.

SORT GT_EDID4 BY DOCNUM SEGNUM.

LOOP AT GT_IDOC ASSIGNING <GS_IDOC>.
*      LV_CHECK = ''.
      LOOP AT GT_EDID4 INTO GS_EDID4 WHERE DOCNUM = <GS_IDOC>-DOCNUM.
        <GS_IDOC>-SEGNUM = GS_EDID4-SEGNUM.
        <GS_IDOC>-SEGNAM = GS_EDID4-SEGNAM.
        <GS_IDOC>-SDATA = GS_EDID4-SDATA.
*        LV_CHECK = 'X'.
        CLEAR:GS_SEGNAM_HASH.
        GS_SEGNAM_HASH-SEGNAM = GS_EDID4-SEGNAM.
        INSERT GS_SEGNAM_HASH INTO TABLE GT_SEGNAM_HASH.

APPEND <GS_IDOC> TO GT_ALV.
        CLEAR:GS_EDID4.
      ENDLOOP.

*      IF LV_CHECK <> 'X'.
*        APPEND <GS_IDOC> TO GT_ALV.
*      ENDIF.
    ENDLOOP.
  ENDIF.

IF GT_ALV IS INITIAL.
    MESSAGE '系统中无相关数据' TYPE 'S' DISPLAY LIKE 'E'.
    STOP.
  ELSE.
    SORT GT_ALV BY DOCNUM SEGNUM.
  ENDIF.
ENDFORM. " FRM_GET_DATA

*&---------------------------------------------------------------------*
*&      Form  FRM_SET_LAYOUT
*&---------------------------------------------------------------------*
*       text  界面格式属性
*----------------------------------------------------------------------*
FORM FRM_SET_LAYOUT .
  CLEAR GS_LAYOUT.
  GS_LAYOUT-SEL_MODE   = 'A'.     "选择行模式
  GS_LAYOUT-CWIDTH_OPT = 'A'.     "优化列宽设置
  GS_LAYOUT-ZEBRA      = 'X'.     "设置斑马线
*  GS_LAYOUT-BOX_FNAME = 'CHECKBOX'.
ENDFORM. " FRM_SET_LAYOUT

*&---------------------------------------------------------------------*
*&      Form  FRM_SET_FIELDCAT
*&---------------------------------------------------------------------*
*       text 字段属性定义
*----------------------------------------------------------------------*
FORM FRM_SET_FIELDCAT.

DATA:LT_ALV         TYPE TABLE OF TY_IDOC,
       LS_ALV         TYPE TY_IDOC,
*       LT_SEGNAM_HASH TYPE HASHED TABLE OF TY_SEGNAM WITH UNIQUE KEY SEGNAM,
       LT_SEGNAM_HASH TYPE TABLE OF TY_SEGNAM,
       LS_SEGNAM_HASH TYPE TY_SEGNAM,
       LT_FIELD       TYPE LVC_T_FCAT, "字段目录内表
       LS_FIELD       TYPE LVC_S_FCAT. "字段目录工作区.

DATA:CL_TABLE   TYPE REF TO CL_ABAP_TABLEDESCR,
       CL_STRUCT  TYPE REF TO CL_ABAP_STRUCTDESCR,
       LV_LINES   TYPE I,
       LV_TABNAME TYPE DD02L-TABNAME.

FIELD-SYMBOLS:<GS_TEMP>  TYPE ANY,
                <LV_VALUE> TYPE ANY.

REFRESH GT_FIELDCAT.
  DEFINE  INIT_FILL_FCAT.
    CLEAR gs_fieldcat.
    gs_fieldcat-fieldname  = &1.
    gs_fieldcat-coltext    = &2.
    gs_fieldcat-scrtext_l  = &2.
    gs_fieldcat-scrtext_m  = &2.
    gs_fieldcat-scrtext_s  = &2.
    gs_fieldcat-reptext    = &2.
    gs_fieldcat-ref_table = &3.
    gs_fieldcat-ref_field = &4.
    gs_fieldcat-no_zero = &5.
    gs_fieldcat-ICON   = &6.
    gs_fieldcat-hotspot = &7.
    gs_fieldcat-datatype  = &8.
    gs_fieldcat-inttype  = &9.
    APPEND gs_fieldcat TO gt_fieldcat.
  END-OF-DEFINITION.

INIT_FILL_FCAT 'DOCNUM' 'IDoc 号码' 'EDIDC' 'DOCNUM' '' '' 'X' '' ''.
  INIT_FILL_FCAT 'SEGNUM' '段编号' 'EDID4' 'SEGNUM' '' '' '' '' ''.
  INIT_FILL_FCAT 'STATUS' '状态' 'EDIDC' 'STATUS' '' '' '' '' ''.
  INIT_FILL_FCAT 'RCVPOR' '接收方端口' 'EDIDC' 'RCVPOR' '' '' '' '' ''.
  INIT_FILL_FCAT 'SNDPOR' '发件人端口' 'EDIDC' 'SNDPOR' '' '' '' '' ''.
*  INIT_FILL_FCAT 'SNDPRN' '发送者伙伴编号' 'EDIDC' 'SNDPRN' '' '' '' '' ''.
  INIT_FILL_FCAT 'MESTYP' '消息类型' 'EDIDC' 'MESTYP' '' '' '' '' ''.
  INIT_FILL_FCAT 'IDOCTP' '基本类型' 'EDIDC' 'IDOCTP' '' '' 'X' '' ''.
  INIT_FILL_FCAT 'SEGNAM' 'SAP 段名' 'EDID4' 'SEGNAM' '' '' '' '' ''.
  INIT_FILL_FCAT 'CREDAT' '创建日期' 'EDIDC' 'CREDAT' '' '' '' '' ''.
  INIT_FILL_FCAT 'CRETIM' '创建时间' 'EDIDC' 'CRETIM' '' '' '' '' ''.
  INIT_FILL_FCAT 'UPDDAT' '更改日期' 'EDIDC' 'UPDDAT' '' '' '' '' ''.
  INIT_FILL_FCAT 'UPDTIM' '更改时间' 'EDIDC' 'UPDTIM' '' '' '' '' ''.

*  REFRESH:LT_ALV.
*  LT_ALV = GT_ALV.
*
*  SORT LT_ALV BY SEGNUM SEGNAM.
*  DELETE ADJACENT DUPLICATES FROM LT_ALV COMPARING SEGNUM SEGNAM.

*  LOOP AT LT_ALV INTO LS_ALV.
*    CLEAR:LS_SEGNAM_HASH.
*    LS_SEGNAM_HASH-SEGNAM = LS_ALV-SEGNAM.
*    INSERT LS_SEGNAM_HASH INTO TABLE LT_SEGNAM_HASH.
*    CLEAR:LS_ALV.
*  ENDLOOP.
  REFRESH:LT_SEGNAM_HASH.
  LT_SEGNAM_HASH = GT_SEGNAM_HASH.
*  SORT LT_ALV BY DOCNUM SEGNUM.

CLEAR:LV_LINES.
*  DESCRIBE TABLE LT_ALV LINES LV_LINES.
  DESCRIBE TABLE LT_SEGNAM_HASH LINES LV_LINES.

REFRESH:GT_FIELD.
  IF LV_LINES > 1.
*    LOOP AT LT_ALV INTO LS_ALV.
    LOOP AT LT_SEGNAM_HASH INTO LS_SEGNAM_HASH.
*    CLEAR:LV_TABNAME.
*    LV_TABNAME = LS_ALV-SEGNAM.
      REFRESH:LT_FIELD.
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
          I_STRUCTURE_NAME = LS_SEGNAM_HASH-SEGNAM "这里也可以是表名
        CHANGING
          CT_FIELDCAT      = LT_FIELD.

LOOP AT LT_FIELD INTO LS_FIELD.
        CLEAR:GS_FIELD.
        GS_FIELD = LS_FIELD.
        GS_FIELD-FIELDNAME = LS_SEGNAM_HASH-SEGNAM && '-' && GS_FIELD-FIELDNAME.
        GS_FIELD-TABNAME = LS_SEGNAM_HASH-SEGNAM.
        GS_FIELD-REF_TABLE = LS_SEGNAM_HASH-SEGNAM.
        GS_FIELD-REF_FIELD = GS_FIELD-FIELDNAME.
        APPEND GS_FIELD TO GT_FIELD.
        CLEAR:LS_FIELD.
      ENDLOOP.
    ENDLOOP.
  ELSE.
    READ TABLE LT_SEGNAM_HASH INTO LS_SEGNAM_HASH INDEX 1.
    IF SY-SUBRC EQ 0.
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
          I_STRUCTURE_NAME = LS_SEGNAM_HASH-SEGNAM "这里也可以是表名
        CHANGING
          CT_FIELDCAT      = GT_FIELD.
    ENDIF.

LOOP AT GT_FIELD ASSIGNING <GS_FIELD>.
      <GS_FIELD>-TABNAME = LS_SEGNAM_HASH-SEGNAM.
      <GS_FIELD>-REF_TABLE = LS_SEGNAM_HASH-SEGNAM.
      <GS_FIELD>-REF_FIELD = <GS_FIELD>-FIELDNAME.
    ENDLOOP.
  ENDIF.

*  DELETE ADJACENT DUPLICATES FROM GT_FIELD COMPARING FIELDNAME.

LOOP AT GT_FIELD INTO GS_FIELD.
*    INIT_FILL_FCAT GS_FIELD-FIELDNAME GS_FIELD-FIELDNAME GS_ALV-SEGNAM GS_FIELD-FIELDNAME '' '' '' '' ''.
    INIT_FILL_FCAT GS_FIELD-FIELDNAME GS_FIELD-FIELDNAME GS_FIELD-REF_TABLE GS_FIELD-REF_FIELD '' '' '' '' ''.
    CLEAR:GS_FIELD.
  ENDLOOP.

ENDFORM. " FRM_SET_FIELDCAT

*&---------------------------------------------------------------------*
*&      Form  frm_create_table
*&---------------------------------------------------------------------*
*      创建动态内表
*----------------------------------------------------------------------*
FORM FRM_CREATE_TABLE.

DATA:LV_FIELDNAME TYPE CHAR5,
       LV_LENGTH    TYPE I,
       LV_START     TYPE I,
       LV_WIDTH     TYPE I.

CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
    EXPORTING
      IT_FIELDCATALOG = GT_FIELDCAT
    IMPORTING
      EP_TABLE        = DY_TABLE.
  "用表类型指针 <dyn_table> 指向 数据对象的内容.
  ASSIGN DY_TABLE->* TO <DYN_ALV>.
  "建立一个与动态内表结构相同的数据对象,且数据对象为是一个结构
  CREATE DATA GS_LINE LIKE LINE OF <DYN_ALV>.
  "用<dyn_wa>指针指向该结构
  ASSIGN GS_LINE->* TO <DYN_WA>.

LOOP AT GT_ALV INTO GS_ALV.

MOVE-CORRESPONDING GS_ALV TO <DYN_WA>.

CLEAR:LV_LENGTH.
    LV_LENGTH = STRLEN( GS_ALV-SDATA )."日志字段值得长度
    LOOP AT GT_FIELD INTO GS_FIELD WHERE TABNAME = GS_ALV-SEGNAM.
      IF LV_LENGTH > 0.
        ASSIGN COMPONENT GS_FIELD-FIELDNAME OF STRUCTURE <DYN_WA> TO <DYN_FIELD>.
        CLEAR:LV_START,LV_WIDTH.
        LV_WIDTH = GS_FIELD-INTLEN."当前字段的长度
        <DYN_FIELD> = GS_ALV-SDATA.
        LV_LENGTH = LV_LENGTH - LV_WIDTH."总长度 - 截取的长度
        IF LV_LENGTH > 0.
          GS_ALV-SDATA = GS_ALV-SDATA+LV_WIDTH(LV_LENGTH)."日志字段值截掉已赋值的长度
        ENDIF.

ENDIF.
    ENDLOOP.

APPEND <DYN_WA> TO <DYN_ALV>.
    CLEAR:GS_ALV,<DYN_WA>.
  ENDLOOP.
ENDFORM. "
*&---------------------------------------------------------------------*
*&      Form  FRM_DISPLAY_ALV
*&---------------------------------------------------------------------*
*       text  界面显示
*----------------------------------------------------------------------*
FORM FRM_DISPLAY_ALV .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      I_CALLBACK_PROGRAM      = SY-REPID
      IS_LAYOUT_LVC           = GS_LAYOUT
*     I_CALLBACK_PF_STATUS_SET = 'FRM_SET_STATUS'
      I_CALLBACK_USER_COMMAND = 'FRM_USER_COMMAND'
      IT_FIELDCAT_LVC         = GT_FIELDCAT
      I_SAVE                  = 'A'
    TABLES
      T_OUTTAB                = <DYN_ALV>
    EXCEPTIONS
      PROGRAM_ERROR           = 1
      OTHERS                  = 2.
  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_DISPLAY_ALV

*&---------------------------------------------------------------------*
*&      Form  FRM_SET_STATUS
*&---------------------------------------------------------------------*
*       text  状态栏
*----------------------------------------------------------------------*
FORM FRM_SET_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.

ENDFORM. " FRM_SET_STATUS

*&---------------------------------------------------------------------*
*&      Form  USER_COMMAND
*&---------------------------------------------------------------------*
*       text 用户操作
*----------------------------------------------------------------------*
FORM FRM_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
      RS_SELFIELD TYPE SLIS_SELFIELD.
  DATA:REF_GRID TYPE REF TO CL_GUI_ALV_GRID.

RANGES:DOCNUM  FOR EDIDC-DOCNUM,
          IDOCTP  FOR EDIDC-IDOCTP,
          CREDAT FOR EDIDC-CREDAT.

CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      E_GRID = REF_GRID.  "获取全局变量

CALL METHOD REF_GRID->CHECK_CHANGED_DATA. "获取响应事件

REFRESH:GT_ROW.
  CALL METHOD REF_GRID->GET_SELECTED_ROWS "获取选择的行
    IMPORTING
      ET_INDEX_ROWS = GT_ROW
      ET_ROW_NO     = GT_ROW_NO.

CASE R_UCOMM.
    WHEN '&IC1'. "ALV中双击事件代码
      CLEAR GS_ALV.
      READ TABLE GT_ALV INTO GS_ALV INDEX RS_SELFIELD-TABINDEX.
      IF SY-SUBRC = 0.
        CASE RS_SELFIELD-FIELDNAME.
          WHEN 'DOCNUM'.
            REFRESH:DOCNUM.
            DOCNUM-SIGN = 'I'.
            DOCNUM-OPTION = 'EQ'.
            DOCNUM-LOW = GS_ALV-DOCNUM.
            APPEND DOCNUM.

SUBMIT RSEIDOC2
              WITH CRETIM IN S_CRETIM
              WITH CREDAT IN CREDAT
              WITH DOCNUM IN DOCNUM
              AND RETURN.
          WHEN 'IDOCTP'.
            REFRESH:IDOCTP.
            IDOCTP-SIGN = 'I'.
            IDOCTP-OPTION = 'EQ'.
            IDOCTP-LOW = GS_ALV-IDOCTP.
            APPEND IDOCTP.

SUBMIT RSEIDOC2
              WITH CRETIM IN S_CRETIM
              WITH CREDAT IN S_CREDAT
              WITH IDOCTP IN IDOCTP
              AND RETURN.
        ENDCASE.
      ENDIF.
    WHEN '&BACK'.
      LEAVE TO SCREEN 0.
    WHEN '&EXIT'.
      LEAVE PROGRAM.
  ENDCASE.

RS_SELFIELD-REFRESH = 'X'."刷新界面

ENDFORM. "USER_COMMAND

IDOC日志查询报表的更多相关文章

  1. 阿里云 oss实时日志查询

    实时日志查询 更新时间:2019-01-29 10:31:49 编辑 · 本页目录 开启实时日志查询 查询实时日志 参考文档 用户在访问 OSS 的过程中,会产生大量的访问日志.实时日志查询功能将 O ...

  2. MySQL慢日志查询分析方法与工具

    MySQL中的日志包括:错误日志.二进制日志.通用查询日志.慢查询日志等等.这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志. 1)通用查询日志:记录建立的客户端连接和执行的语句. 2)慢查 ...

  3. 被MySQL慢日志查询搞废了?3分钟教你快速定位慢查询问题!

    一条慢查询会造成什么后果?刚开始使用MySQL的开发.初级DBA 以为就是简单的查询变慢些,体验稍微有一丢丢影响,殊不知,慢查询的破坏力远不止如此.业务高峰期,这头SQL还没处理完,大量新的查询请求堆 ...

  4. Mysql慢日志查询

    MYSQL慢查询配置: 查看是否启用慢日志查询: show VARIABLES like '%quer%'; 没有配置的情况下慢查询是关闭的:

  5. MySQL慢日志查询全解析:从参数、配置到分析工具【转】

    转自: MySQL慢日志查询全解析:从参数.配置到分析工具 - MySQL - DBAplus社群——围绕数据库.大数据.PaaS云,运维圈最专注围绕“数据”的学习交流和专业社群http://dbap ...

  6. SAP 查询分析器,查询报表自动生成,SQL查询测试实现说明(转)

    在日常的SAP开发和应用中,经常需要通过查询SAP数据表来处理日常业务,比如:数据对账.报表SQL测试.SAP查询功能开发等.通过开发SAP查询分析器,SAP实施和开发人员,可以在较短的时间内查询到需 ...

  7. day43 mysql 基本管理,[破解密码以及用户权限设置]以及慢日志查询配置

    配置文件:详细步骤, 1,找到mysql的安装包,然后打开后会看到一个my.ini命名的程序,把它拖拽到notepad++里面来打开,(应该是其他文本形式也可以打开,可以试一下),直接拖拽即可打开该文 ...

  8. kettle 6.1 日志查询

    SELECT JB.ID_JOB, ---作业ID JB.NAME, ---作业名称 to_char(JB.DESCRIPTION) as JOB_DESCRIPTION , --作业描述 case ...

  9. jt项目日志查询流程

    jt项目日志查询流程

随机推荐

  1. sublime text3配置html环境

    1.安装View in Browser 2.配置快捷键 [1]Preferences—Key Bindings—User. [2]插入代码 [ //ie { "keys": [&q ...

  2. 【jmeter】JDBC请求循环调用的问题

    今天使用jdbc请求从数据库取数据,多次请求使用了循环控制器,但是结果第一个jdbc请求返回值正确,第二次请求返回值为空. 1.从其他博客中得知,需要在jdbc connection configur ...

  3. 65535与TCP连接数的关系测试结论

    首先说结论: .是否有关系 .有关系 对于客户端 -.对于客户端来说,只有65535,因为根据TCP四元组的sport来说,sport只有16位,所以(2^16)-1是65535.也就是最多有6553 ...

  4. 详解 Set接口

    (请关注 本人"集合"总集篇博文--<详解 Collection接口>) 在Collection接口的子接口中,最重要的,也是最常见的两个-- List接口 和 Set ...

  5. testNG 预期异常、忽略测试、超时测试

    通过@Test 注解的参数值实现如下的几种测试 一.通过 @Test(expectedExceptions=异常类名) 参数实现到达 预期指定的异常效果 @Test(expectedException ...

  6. Stream—一个早产的婴儿

    当你会关注这篇文章时,那么意味着你对Stream或多或少有些了解,甚至你在许多业务中有所应用.正如你所知,业界对Stream.lambda褒贬不一,有人认为它是银弹,也有人认为其降低了代码的可读性.事 ...

  7. PHP反序列化漏洞总结

    写在前边 做了不少PHP反序列化的题了,是时候把坑给填上了.参考了一些大佬们的博客,自己再做一下总结 1.面向对象 2.PHP序列化和反序列化 3.PHP反序列化漏洞实例 1.面向对象 在了解序列化和 ...

  8. 苹果登录服务端JWT算法验证-PHP

    验证参数 可用的验证参数有 userID.authorizationCode.identityToken,需要iOS客户端传过来 验证方式 苹果登录验证可以选择两种验证方式 具体可参考这篇文章 htt ...

  9. QIntValidator没有最小值的限制,继承然后写个新类来控制最小值

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/firecityplans/article ...

  10. 浅析Java三大特性封装、继承、多态,及作业分析

    前言 本次博客衔接上次博客,作为这一阶段Java学习的分析.上一篇博客着重介绍了Java的OO编程思维,面向对象与面向过程的区别.本篇博客重心在Java的三大技术特性,附带作业分析. Java三大特性 ...