IDOC日志查询报表
当不知道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日志查询报表的更多相关文章
- 阿里云 oss实时日志查询
实时日志查询 更新时间:2019-01-29 10:31:49 编辑 · 本页目录 开启实时日志查询 查询实时日志 参考文档 用户在访问 OSS 的过程中,会产生大量的访问日志.实时日志查询功能将 O ...
- MySQL慢日志查询分析方法与工具
MySQL中的日志包括:错误日志.二进制日志.通用查询日志.慢查询日志等等.这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志. 1)通用查询日志:记录建立的客户端连接和执行的语句. 2)慢查 ...
- 被MySQL慢日志查询搞废了?3分钟教你快速定位慢查询问题!
一条慢查询会造成什么后果?刚开始使用MySQL的开发.初级DBA 以为就是简单的查询变慢些,体验稍微有一丢丢影响,殊不知,慢查询的破坏力远不止如此.业务高峰期,这头SQL还没处理完,大量新的查询请求堆 ...
- Mysql慢日志查询
MYSQL慢查询配置: 查看是否启用慢日志查询: show VARIABLES like '%quer%'; 没有配置的情况下慢查询是关闭的:
- MySQL慢日志查询全解析:从参数、配置到分析工具【转】
转自: MySQL慢日志查询全解析:从参数.配置到分析工具 - MySQL - DBAplus社群——围绕数据库.大数据.PaaS云,运维圈最专注围绕“数据”的学习交流和专业社群http://dbap ...
- SAP 查询分析器,查询报表自动生成,SQL查询测试实现说明(转)
在日常的SAP开发和应用中,经常需要通过查询SAP数据表来处理日常业务,比如:数据对账.报表SQL测试.SAP查询功能开发等.通过开发SAP查询分析器,SAP实施和开发人员,可以在较短的时间内查询到需 ...
- day43 mysql 基本管理,[破解密码以及用户权限设置]以及慢日志查询配置
配置文件:详细步骤, 1,找到mysql的安装包,然后打开后会看到一个my.ini命名的程序,把它拖拽到notepad++里面来打开,(应该是其他文本形式也可以打开,可以试一下),直接拖拽即可打开该文 ...
- kettle 6.1 日志查询
SELECT JB.ID_JOB, ---作业ID JB.NAME, ---作业名称 to_char(JB.DESCRIPTION) as JOB_DESCRIPTION , --作业描述 case ...
- jt项目日志查询流程
jt项目日志查询流程
随机推荐
- EwoMail开源邮件服务器软件搭建
EwoMail开源邮件服务器软件简介 EwoMail是基于Linux的开源邮件服务器软件,集成了众多优秀稳定的组件,是一个快速部署.简单高效.多语言.安全稳定的邮件解决方案,帮助你提升运维效率,降低 ...
- git以及gitHub的使用说明书
一.使用说明 1.Git与github的功能: Git是世界上最先进的分布式版本控制系统,也就是用来记录你的项目代码历史变更信息的工具:github就是用来存储你的代码以及变更信息的云端平台: 2.优 ...
- springboot集成swagger2多模块中文配置详细步骤,解决集成mybatis或mybatis-plus无法正常使用问题
pom.xm里写入swagger依赖: <dependency> <groupId>io.springfox</groupId> <artifactId> ...
- Linux学习笔记(八)权限管理命令
权限管理命令 权限位含义 chmod chown chgrp umask默认权限 权限位含义 第1位代表文件类型 "-":普通文件 "b":块设备文件 &quo ...
- pyinstaller打包
参考 官网:http://www.pyinstaller.org/ pyinstaller参数使用 使用spec文件 安装 Windows依赖pypiwin32,新版的pyinstaller已经包含了 ...
- git分支,git commit,git流程
1. git分支命令规范 1. Master 主分支 2. Dev 开发分支 3. Feature 功能分支(例如:feature-x) 4. Release 预发布分支(例如:release-1.2 ...
- 微信小程序标签常见知识点归纳整理
1. <image src='/images/logo.png' mode='widthFix'></image> mode 属性表示图片随着指定的宽度自动拉伸以显示原图的正确 ...
- Java的自动装箱
JDK5的新特性自动装箱:把基本类型转换为包装类类型自动拆箱:把包装类类型转换为基本类型 注意一个小问题: 在使用时,Integer x = null;代码就会出现NullPointerExcepti ...
- Install go1.5 for CentOS7
https://golang.org/doc/install 下载好后,通过FTPS,传递到Linux里去,放哪里随便你自己,因为被墙了,所以在Windows通过旋风下载了这个玩意儿. 你也可以: w ...
- python学习11函数
'''''''''函数:1.定义:指通过专门的代码组织,用来实现特定的功能的代码段,具有相对独立性,可供其他代码重复调用2.语法:def 函数名([参数]): 函数体[return 返回值]3.函数名 ...