n 表的要求
l 表中使用的字段请尽量参照各模块的SAP字段标准使用习惯;
例:“ZXSLRZX销售组织对应的利润中心”中的销售组织应该使用VKORG、利润中心应该使用PRCTR。
l 根据表的用途,需确定是否属于配置目的、还是业务目的。
l 配置表的建议:
Ø 需要加入MANDT字段
例: “ZQJQD缺件清单”就没有MANDT字段
Ø 需提供相应的维护视图;
例:如ZCHECK_MM01工厂和利润中心的对应
Ø 为保证DEV/QAS/PRD系统的一致性,不应该对配置表提供批量维护的功能,而应该走Request传输流程;
例: “ZMM_GSJJGLJ公司间物料转卖价格逻辑”就是一个失败的开发案例。
Ø 若有必要,可激活日志功能,便于对配置的更改查询;
Ø 在定义表的时候,请不要偷懒使用“预定义数据类型”这种方式;
l 业务表的建议:
Ø 若无特殊目的,也请加入MANDT字段
Ø 在定义关键字段的时候,请务必慎重,在理解业务需求的前提下,合理设置;(数据存在后,关键自动的变更存在较大风险)
Ø 为减少系统存储空间,一般不需要激活更改日志;
Ø 在定义表的时候,请不要偷懒使用“预定义数据类型”这种方式;
n 程序的要求
l 程序的选择屏幕,如果需要提供缺省值,请尽量通过Memory ID的方式实现,不要使用硬代码。
例:“ZPOOIS采购订单信息报表”中的公司代码(BUK)、工厂(WRK)。
l 程序的选择屏幕上的选择文本,如果属于标准字段,若无特殊需求,请尽量使用Dictionary,避免造成在不同语言环境中显示错误的情况。
例:ZPOOIS的选择屏幕在英文环境下完全错误,而ZJSJSNEW就相对正确。
l 程序变式(选择变式、输出变式)的灵活使用
l ALV报表,请提供变式功能(IS_VARIANT ,I_SAVE等变量);
例: ZPOOIS的输出格式就无法保存 。
l 二次开发程序中定义的自定义表,需考虑相应数据的删除及归档策略,并应该对数据量的大小有合理的估计。
l 金额,请考虑币别;数量,请考虑计量单位;
n 公司代码与工厂的关系
l 一个工厂只能属于一个公司代码;
例:3110起重机工厂只能属于3011公司代码。
l 表:T001K,其中的BWKEY就是指工厂,完全等同于T001W的WERKS;
n 公司代码与利润中心的关系
l SAP是允许一个利润中心属于多个公司代码的,但是,我们实际业务上一个利润中心通常只应该对应一个公司代码(有部分特例!)
l 一个公司代码下,可以存在多个利润中心;
例:在2001公司代码下,存在LR2180/LR2170/LR2160等多个利润中心;
l 表:CEPC_BUKRS分配利润中心至公司代码
n 工厂与利润中心的关系
l 工厂跟利润中心按照SAP的本身逻辑是没有关系的;
l 但为了保证业务的正确性,我们创建了表ZCHECK_MM01(工厂和利润中心的对应)来进行检查(如在物料主数据创建的时候进行检查)。
n 工厂与库存地点的关系
l 库存地点必须跟工厂一起才有意义,牢记“工厂+库存地点”!
l 在不同的工厂下虽然可以存在同样的库存地点代码,但本质上是有区别的;
l T001L,工厂+库存地点
n WM仓库与库存地点的关系
l 一个仓库可以包括多个“工厂+库存地点”,一个“工厂+库存地点”只能属于一个仓库;
l T320,工厂+库存地点=>仓库号
n 销售组织与公司代码的关系
l 一个销售组织只能属于一个公司代码;
例:3011宁乡起重机销售组织只能属于3011公司代码。
l 表: TVKO销售组织;
n 销售组织与工厂的关系
l 销售组织与工厂是多对多的关系,但是该关系仅说明了销售组织可以“销售”哪些工厂的,并不能表示两者之间有财务上的所属关系;
l 表: TVKWZ 每个销售机构允许的工厂数
n 采购组织与公司代码的关系
l 采购组织与公司代码可以不存在分配关系,我们除极少的两三家公司外,基本上没有进行分配(如果进行分配的话,则一个采购组织只能分配给一个公司代码)。
l 表:T024E 采购组织
n 采购组织与工厂的关系
l 采购组织与工厂是多对多的关系(但是如果采购组织已经分配给公司代码后,则只能分配该公司代码下的工厂给采购组织)
l T024W工厂的有效采购组织
n 不能根据字段在前台所属的物料视图来确定相应的数据表,一定要使用F1->技术信息;
例:采购视图的“采购价值代码”就是属于基本数据(MARA-EKWSL)。
n 物料主数据的关键表:
l MARA,基本视图
l MARC,工厂
l MARD,工厂/库存地点
l MBEW,财务数据,其中的MBEW-BWKEY就是指工厂MARC-WERKS
l MVKE,销售组织/分销渠道
l MLGN,仓库
l MLGT,仓库/存储类型
l MSTA,物料主数据维护状态
n BOM主数据
l BOM用途:1表示生产
l BOM类别:M表示物料BOM
l 关键表:
n MAST,BOM 链接物料
n STKO,BOM表头
n STPO,BOM 项目
n STZU,永久 BOM 数据
n STAS,BOMs - 项选择
n 工艺路线主数据
l 任务清单类型:N表示工艺路线、Q表示检验计划
l 关键表:
n MAPL,分配任务清单到物料
n PLKO,任务清单 - 表头
n PLFL,任务清单 - 顺序
n PLPO,任务清单 - 工序/作业
n PLAS,任务清单 - 工序/作业选择
n PLMZ,组件分配
n CRHD,工作中心
n 独立需求
l 关键表:
n PBIM,物料的独立需求
n PBED,独立需求数据
n PBID,独立需求数据(MRP区域)
n PBHI ,独立需求历史记录
n 计划订单
l 关键表:
n PLAF,计划订单,需注意计划工厂PLWRK、生产工厂PWWRK的区别;
n RESB,预留表(通过PLAF-RSNUM与RESB-RSNUM关联)
n 生产订单
l 订单类别: AUTYP,10表示生产订单
l 关键表:
• AUFK,订单主数据
其中WERKS 工厂是指生产订单的生产工厂、 LOEKZ删除标记是对删除状态的生产订单生效(其他状态需通过JEST)进行读取。
• AFKO,订单表头数据 PP 订单
其中PLNBEZ 、STLBEZ并不一定是订单中产出物料(真正的物料应该是AFPO-MATNR)。
• AFPO,订单项
虽然关键字中存在POSNR,但实际上我们不存在co-product业务,所以POSNR都为0001.
• AFVC,订单的工序(通过AFKO- AUFPL进行关联)
• AFVV,工序中数量/日期/值的DB结构
• AFFL,加工单顺序
• JEST,订单状态(通过AUFK-OBJNR关联)
其中STAT的具体含义通过TJ02T对应,注意当INACT=X时,表示该状态不存在。
• RESB,预留表(通过AFKO-RSNUM与RESB-RSNUM关联)
n 报工/入库/发料
l 关键表:
• AFRU,订单确认(AFRU-AUFNR为订单号)
• AFFW,COGI错误(AFFW-AUFNR为订单号)
由于我们没有激活COGI更改历史,所以COGI的更改在AFFWPRO中是没有记录的,若有必要,可通过自定义备份表ZAFFWH进行查看。
• AUFM,订单物料移动数据(AUFM-AUFNR为订单号)
该表的数据更新需依赖于PP的相关配置。此外,如果需要得到某一预留的累计发料数量,可直接使用RESB-ENMNG;如果需要得到某一订单的累计入库数量,可直接使用AFPO-WEMNG。均不需要对物料移动数据进行累加。
n 供应商主数据
l 关键表:
• LFA1,集团数据
• ADRC,地址信息
• LFB1,公司代码数据
• LFM1,采购组织数据
n 计划订单
l 关键表:
• PLAF,计划订单;
n 采购合同
l 凭证类别(EKKO-BSTYP)等于K(合同)
l 关键表:
• EKKO,采购凭证抬头
• EKPO,采购凭证项目
n 采购信息记录
l 信息记录类别(EINE-ESOKZ):0(标准)、 2(寄售)、3(分包合同)
l 关键表:
• EINA ,采购信息记录 - 一般数据
• EINE ,采购信息记录 - 采购组织数据
n 采购申请
l 关键表:
• EBAN,采购申请
n 采购订单
l 凭证类别(EKKO-BSTYP)等于F(采购订单)
l 关键表:
• EKKO,采购凭证抬头
• EKPO,采购凭证项目
• EKET,计划协议计划行
• EKKN,采购凭证中的帐户设置
n 采购收货及发票校验
l 关键表:
• EKBE,采购凭证历史
如果需要得到某一采购订单行项目的累计入库数量,可直接使用EKET-WEMNG,不需要对物料移动数据进行累加。 (虽然SAP是允许同一采购订单行项目是允许多个交货计划(EKET),但我们实际上业务中只允许一个交货计划,很多开发和考核都是基于此)
• RBKP,凭证表头:发票收据
• RSEG,凭证项目:收款发票
通过发票凭证读取会计凭证建议使用函数AC_DOCUMENT_RECORD。
n 仓位主数据
l 仓位必须跟仓库号、仓储类型一起才有意义,牢记“仓库号+仓储类型+仓位”!
l 关键表:
• LAGP,仓位
n 库存数据
l IM库存数据(注意使用待H的数据):
• MARD,物料的仓储位置数据
• MSLB,供应商特殊库存(o)
• MKOL,供应商的特殊库存(k)
• MSKA,销售订单库存
• MCH1/MCHB,批次库存
l WM库存数据:
• LQUA,份(quants错误翻译为数量)
n 物料移动数据
l 关键表:
• MKPF,抬头:物料凭证
• MSEG,凭证段:物料
不是所有的物料移动数据都需要从这物料移动表中进行读取。生产订单相关AUFM,采购订单相关EKBE,销售相关VBFA。
n 移动类型
l 借贷标示:MSEG-SHKZG,S表示增加库存、H表示减少库存
l 关键表:
• T156*,移动类型
• T030,移动类型科目自动记账
n WM的数据
l 关键表:
• LTBK,转储请求抬头
• LTBP,转储请求项目
• LTAK,WM转储单抬头
• LTAP,转储单项目
n 销售
l 客户主数据
• KNA1,基础数据
• KNB1,公司代码
• KNVV,销售组织
• ADRC,地址
l 销售价格
• 根据条件类型(如PR01)查找存储顺序(如PR02),得到表(如A305等A*表)
• KONP,条件记录号关联
l 销售合同(销售意向)
• 凭证类别G(VBAK-VBTYP)
• VBAK
• VBAP
l 销售订单
• Vbak
• Vbap
• Vbep
• Vbkd
• VBPA
l 交货单
• Likp
• lips
l 发票凭证
• VBRK
• VBRP
l 销售凭证流、凭证状态
• Vbfa
• Vbuk
• vbup
n 会计
l 会计科目主数据
• SKA1,科目表
• SKB1,公司代码
• SKAT,科目描述
l 成本要素
• CSKB,成本要素
l 记账期间
• T001B
l 财务供应商、财务客户(同后勤模块,维护事务代码FK01,只有公司代码数据)
l 总账
• BKPF/BSEG
• FAGLFLEXT
• BSAS/BSIS
• GLFUNCT,功能范围
l AR/AP
• BSAD/BSID
• BSAK/BSIK
l AM
• ANLA
l CO
• CSKS,成本中心
• COEP
• COSS(计划/实际,通过WRTTP区分,期间通过字段区分,如WTG004)
• COSP
l CO-ML
• CKMLHD
• CKMLCR
• CKMLPR
l COPA
• CE*,如CE18000,8000指使用的经营范围
l CO与FI的区别及数据
n SAP增强技术
l 用户出口(USER EXIT)
l 增强(ENHANCEMENT)
• SMOD
• CMOD
n 表的要求
l 表中使用的字段请尽量参照各模块的SAP字段标准使用习惯;
例:“ZXSLRZX销售组织对应的利润中心”中的销售组织应该使用VKORG、利润中心应该使用PRCTR。
l 根据表的用途,需确定是否属于配置目的、还是业务目的。
l 配置表的建议:
Ø 需要加入MANDT字段
例: “ZQJQD缺件清单”就没有MANDT字段
Ø 需提供相应的维护视图;
例:如ZCHECK_MM01工厂和利润中心的对应
Ø 为保证DEV/QAS/PRD系统的一致性,不应该对配置表提供批量维护的功能,而应该走Request传输流程;
例: “ZMM_GSJJGLJ公司间物料转卖价格逻辑”就是一个失败的开发案例。
Ø 若有必要,可激活日志功能,便于对配置的更改查询;
Ø 在定义表的时候,请不要偷懒使用“预定义数据类型”这种方式;
l 业务表的建议:
Ø 若无特殊目的,也请加入MANDT字段
Ø 在定义关键字段的时候,请务必慎重,在理解业务需求的前提下,合理设置;(数据存在后,关键自动的变更存在较大风险)
Ø 为减少系统存储空间,一般不需要激活更改日志;
Ø 在定义表的时候,请不要偷懒使用“预定义数据类型”这种方式;
n 程序的要求
l 程序的选择屏幕,如果需要提供缺省值,请尽量通过Memory ID的方式实现,不要使用硬代码。
例:“ZPOOIS采购订单信息报表”中的公司代码(BUK)、工厂(WRK)。
l 程序的选择屏幕上的选择文本,如果属于标准字段,若无特殊需求,请尽量使用Dictionary,避免造成在不同语言环境中显示错误的情况。
例:ZPOOIS的选择屏幕在英文环境下完全错误,而ZJSJSNEW就相对正确。
l 程序变式(选择变式、输出变式)的灵活使用
l ALV报表,请提供变式功能(IS_VARIANT ,I_SAVE等变量);
例: ZPOOIS的输出格式就无法保存 。
l 二次开发程序中定义的自定义表,需考虑相应数据的删除及归档策略,并应该对数据量的大小有合理的估计。
l 金额,请考虑币别;数量,请考虑计量单位;
n 公司代码与工厂的关系
l 一个工厂只能属于一个公司代码;
例:3110起重机工厂只能属于3011公司代码。
l 表:T001K,其中的BWKEY就是指工厂,完全等同于T001W的WERKS;
n 公司代码与利润中心的关系
l SAP是允许一个利润中心属于多个公司代码的,但是,我们实际业务上一个利润中心通常只应该对应一个公司代码(有部分特例!)
l 一个公司代码下,可以存在多个利润中心;
例:在2001公司代码下,存在LR2180/LR2170/LR2160等多个利润中心;
l 表:CEPC_BUKRS分配利润中心至公司代码
n 工厂与利润中心的关系
l 工厂跟利润中心按照SAP的本身逻辑是没有关系的;
l 但为了保证业务的正确性,我们创建了表ZCHECK_MM01(工厂和利润中心的对应)来进行检查(如在物料主数据创建的时候进行检查)。
n 工厂与库存地点的关系
l 库存地点必须跟工厂一起才有意义,牢记“工厂+库存地点”!
l 在不同的工厂下虽然可以存在同样的库存地点代码,但本质上是有区别的;
l T001L,工厂+库存地点
n WM仓库与库存地点的关系
l 一个仓库可以包括多个“工厂+库存地点”,一个“工厂+库存地点”只能属于一个仓库;
l T320,工厂+库存地点=>仓库号
n 销售组织与公司代码的关系
l 一个销售组织只能属于一个公司代码;
例:3011宁乡起重机销售组织只能属于3011公司代码。
l 表: TVKO销售组织;
n 销售组织与工厂的关系
l 销售组织与工厂是多对多的关系,但是该关系仅说明了销售组织可以“销售”哪些工厂的,并不能表示两者之间有财务上的所属关系;
l 表: TVKWZ 每个销售机构允许的工厂数
n 采购组织与公司代码的关系
l 采购组织与公司代码可以不存在分配关系,我们除极少的两三家公司外,基本上没有进行分配(如果进行分配的话,则一个采购组织只能分配给一个公司代码)。
l 表:T024E 采购组织
n 采购组织与工厂的关系
l 采购组织与工厂是多对多的关系(但是如果采购组织已经分配给公司代码后,则只能分配该公司代码下的工厂给采购组织)
l T024W工厂的有效采购组织
n 不能根据字段在前台所属的物料视图来确定相应的数据表,一定要使用F1->技术信息;
例:采购视图的“采购价值代码”就是属于基本数据(MARA-EKWSL)。
n 物料主数据的关键表:
l MARA,基本视图
l MARC,工厂
l MARD,工厂/库存地点
l MBEW,财务数据,其中的MBEW-BWKEY就是指工厂MARC-WERKS
l MVKE,销售组织/分销渠道
l MLGN,仓库
l MLGT,仓库/存储类型
l MSTA,物料主数据维护状态
n BOM主数据
l BOM用途:1表示生产
l BOM类别:M表示物料BOM
l 关键表:
n MAST,BOM 链接物料
n STKO,BOM表头
n STPO,BOM 项目
n STZU,永久 BOM 数据
n STAS,BOMs - 项选择
n 工艺路线主数据
l 任务清单类型:N表示工艺路线、Q表示检验计划
l 关键表:
n MAPL,分配任务清单到物料
n PLKO,任务清单 - 表头
n PLFL,任务清单 - 顺序
n PLPO,任务清单 - 工序/作业
n PLAS,任务清单 - 工序/作业选择
n PLMZ,组件分配
n CRHD,工作中心
n 独立需求
l 关键表:
n PBIM,物料的独立需求
n PBED,独立需求数据
n PBID,独立需求数据(MRP区域)
n PBHI ,独立需求历史记录
n 计划订单
l 关键表:
n PLAF,计划订单,需注意计划工厂PLWRK、生产工厂PWWRK的区别;
n RESB,预留表(通过PLAF-RSNUM与RESB-RSNUM关联)
n 生产订单
l 订单类别: AUTYP,10表示生产订单
l 关键表:
• AUFK,订单主数据
其中WERKS 工厂是指生产订单的生产工厂、 LOEKZ删除标记是对删除状态的生产订单生效(其他状态需通过JEST)进行读取。
• AFKO,订单表头数据 PP 订单
其中PLNBEZ 、STLBEZ并不一定是订单中产出物料(真正的物料应该是AFPO-MATNR)。
• AFPO,订单项
虽然关键字中存在POSNR,但实际上我们不存在co-product业务,所以POSNR都为0001.
• AFVC,订单的工序(通过AFKO- AUFPL进行关联)
• AFVV,工序中数量/日期/值的DB结构
• AFFL,加工单顺序
• JEST,订单状态(通过AUFK-OBJNR关联)
其中STAT的具体含义通过TJ02T对应,注意当INACT=X时,表示该状态不存在。
• RESB,预留表(通过AFKO-RSNUM与RESB-RSNUM关联)
n 报工/入库/发料
l 关键表:
• AFRU,订单确认(AFRU-AUFNR为订单号)
• AFFW,COGI错误(AFFW-AUFNR为订单号)
由于我们没有激活COGI更改历史,所以COGI的更改在AFFWPRO中是没有记录的,若有必要,可通过自定义备份表ZAFFWH进行查看。
• AUFM,订单物料移动数据(AUFM-AUFNR为订单号)
该表的数据更新需依赖于PP的相关配置。此外,如果需要得到某一预留的累计发料数量,可直接使用RESB-ENMNG;如果需要得到某一订单的累计入库数量,可直接使用AFPO-WEMNG。均不需要对物料移动数据进行累加。
n 供应商主数据
l 关键表:
• LFA1,集团数据
• ADRC,地址信息
• LFB1,公司代码数据
• LFM1,采购组织数据
n 计划订单
l 关键表:
• PLAF,计划订单;
n 采购合同
l 凭证类别(EKKO-BSTYP)等于K(合同)
l 关键表:
• EKKO,采购凭证抬头
• EKPO,采购凭证项目
n 采购信息记录
l 信息记录类别(EINE-ESOKZ):0(标准)、 2(寄售)、3(分包合同)
l 关键表:
• EINA ,采购信息记录 - 一般数据
• EINE ,采购信息记录 - 采购组织数据
n 采购申请
l 关键表:
• EBAN,采购申请
n 采购订单
l 凭证类别(EKKO-BSTYP)等于F(采购订单)
l 关键表:
• EKKO,采购凭证抬头
• EKPO,采购凭证项目
• EKET,计划协议计划行
• EKKN,采购凭证中的帐户设置
n 采购收货及发票校验
l 关键表:
• EKBE,采购凭证历史
如果需要得到某一采购订单行项目的累计入库数量,可直接使用EKET-WEMNG,不需要对物料移动数据进行累加。 (虽然SAP是允许同一采购订单行项目是允许多个交货计划(EKET),但我们实际上业务中只允许一个交货计划,很多开发和考核都是基于此)
• RBKP,凭证表头:发票收据
• RSEG,凭证项目:收款发票
通过发票凭证读取会计凭证建议使用函数AC_DOCUMENT_RECORD。
n 仓位主数据
l 仓位必须跟仓库号、仓储类型一起才有意义,牢记“仓库号+仓储类型+仓位”!
l 关键表:
• LAGP,仓位
n 库存数据
l IM库存数据(注意使用待H的数据):
• MARD,物料的仓储位置数据
• MSLB,供应商特殊库存(o)
• MKOL,供应商的特殊库存(k)
• MSKA,销售订单库存
• MCH1/MCHB,批次库存
l WM库存数据:
• LQUA,份(quants错误翻译为数量)
n 物料移动数据
l 关键表:
• MKPF,抬头:物料凭证
• MSEG,凭证段:物料
不是所有的物料移动数据都需要从这物料移动表中进行读取。生产订单相关AUFM,采购订单相关EKBE,销售相关VBFA。
n 移动类型
l 借贷标示:MSEG-SHKZG,S表示增加库存、H表示减少库存
l 关键表:
• T156*,移动类型
• T030,移动类型科目自动记账
n WM的数据
l 关键表:
• LTBK,转储请求抬头
• LTBP,转储请求项目
• LTAK,WM转储单抬头
• LTAP,转储单项目
n 销售
l 客户主数据
• KNA1,基础数据
• KNB1,公司代码
• KNVV,销售组织
• ADRC,地址
l 销售价格
• 根据条件类型(如PR01)查找存储顺序(如PR02),得到表(如A305等A*表)
• KONP,条件记录号关联
l 销售合同(销售意向)
• 凭证类别G(VBAK-VBTYP)
• VBAK
• VBAP
l 销售订单
• Vbak
• Vbap
• Vbep
• Vbkd
• VBPA
l 交货单
• Likp
• lips
l 发票凭证
• VBRK
• VBRP
l 销售凭证流、凭证状态
• Vbfa
• Vbuk
• vbup
n 会计
l 会计科目主数据
• SKA1,科目表
• SKB1,公司代码
• SKAT,科目描述
l 成本要素
• CSKB,成本要素
l 记账期间
• T001B
l 财务供应商、财务客户(同后勤模块,维护事务代码FK01,只有公司代码数据)
l 总账
• BKPF/BSEG
• FAGLFLEXT
• BSAS/BSIS
• GLFUNCT,功能范围
l AR/AP
• BSAD/BSID
• BSAK/BSIK
l AM
• ANLA
l CO
• CSKS,成本中心
• COEP
• COSS(计划/实际,通过WRTTP区分,期间通过字段区分,如WTG004)
• COSP
l CO-ML
• CKMLHD
• CKMLCR
• CKMLPR
l COPA
• CE*,如CE18000,8000指使用的经营范围
l CO与FI的区别及数据
n SAP增强技术
l 用户出口(USER EXIT)
l 增强(ENHANCEMENT)
• SMOD
• CMOD
l BADI
• se18
• se19
l Enhancement Spot
• ECC6.0后
l 标准程序的修改(以CO02为例)
• SE95查看
公司内部培训-张顾问
l BADI
• se18
• se19
l Enhancement Spot
• ECC6.0后
l 标准程序的修改(以CO02为例)
• SE95查看
业务日志系统 业务日志数据表设计
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java业务日志记录表设计 java系统业务日志设计
在Java开发中,我们经常会遇到一个棘手的问题:记录用户的操作行为。某些操作是相对简单的,我们可以逐条记录。但是某些操作行为却很难记录,例如编辑操作。在某一次操作中,用户可能编辑了对象A的几个属性,而下一次操作中用户可能编辑了对象B的几个属性。如果我们针对对象A、对象B的属性变化分别进行记录,则整个操作十分复杂。而且,会与业务操作高度耦合。而今天我们介绍的是一个叫ObjectLogger的系统,它
java业务日志记录表设计 java 日志 java日志 java监听mysql数据表变化 java连接sqlserver