SAP 常用业务数据表设计
表的要求
表中使用的字段请尽量参照各模块的SAP字段标准使用习惯;
例:"ZXSLRZX销售组织对应的利润中心"中的销售组织应该使用VKORG、利润中心应该使用PRCTR。
根据表的用途,需确定是否属于配置目的、还是业务目的。
配置表的建议:
需要加入MANDT字段
例: "ZQJQD缺件清单"就没有MANDT字段
需提供相应的维护视图;
例:如ZCHECK_MM01工厂和利润中心的对应
为保证DEV/QAS/PRD系统的一致性,不应该对配置表提供批量维护的功能,而应该走Request传输流程;
例: "ZMM_GSJJGLJ公司间物料转卖价格逻辑"就是一个失败的开发案例。
若有必要,可激活日志功能,便于对配置的更改查询;
在定义表的时候,请不要偷懒使用"预定义数据类型"这种方式;
业务表的建议:
若无特殊目的,也请加入MANDT字段
在定义关键字段的时候,请务必慎重,在理解业务需求的前提下,合理设置;(数据存在后,关键自动的变更存在较大风险)
为减少系统存储空间,一般不需要激活更改日志;
在定义表的时候,请不要偷懒使用"预定义数据类型"这种方式;
程序的要求
程序的选择屏幕,如果需要提供缺省值,请尽量通过Memory ID的方式实现,不要使用硬代码。
例:"ZPOOIS采购订单信息报表"中的公司代码(BUK)、工厂(WRK)。
程序的选择屏幕上的选择文本,如果属于标准字段,若无特殊需求,请尽量使用Dictionary,避免造成在不同环境中显示错误的情况。
例:ZPOOIS的选择屏幕在英文环境下完全错误,而ZJSJSNEW就相对正确。
程序变式(选择变式、输出变式)的灵活使用
ALV报表,请提供变式功能(IS_VARIANT ,I_SAVE等变量);
例: ZPOOIS的输出格式就无法保存 。
二次开发程序中定义的自定义表,需考虑相应数据的删除及归档策略,并应该对数据量的大小有合理的估计。
金额,请考虑币别;数量,请考虑计量单位;
• 公司代码与工厂的关系
一个工厂只能属于一个公司代码;
例:3110起重机工厂只能属于3011公司代码。
表:T001K,其中的BWKEY就是指工厂,完全等同于T001W的WERKS;
• 公司代码与利润中心的关系
SAP是允许一个利润中心属于多个公司代码的,但是,我们实际业务上一个利润中心通常只应该对应一个公司代码(有部分特例!)
一个公司代码下,可以存在多个利润中心;
例:在2001公司代码下,存在LR2180/LR2170/LR2160等多个利润中心;
表:CEPC_BUKRS分配利润中心至公司代码
• 工厂与利润中心的关系
工厂跟利润中心按照SAP的本身逻辑是没有关系的;
但为了保证业务的正确性,我们创建了表ZCHECK_MM01(工厂和利润中心的对应)来进行检查(如在物料主数据创建的时候进行检查)。
• 工厂与库存地点的关系
库存地点必须跟工厂一起才有意义,牢记"工厂+库存地点"!
在不同的工厂下虽然可以存在同样的库存地点代码,但本质上是有区别的;
T001L,工厂+库存地点
• WM仓库与库存地点的关系
一个仓库可以包括多个"工厂+库存地点",一个"工厂+库存地点"只能属于一个仓库;
T320,工厂+库存地点=>仓库号
• 销售组织与公司代码的关系
一个销售组织只能属于一个公司代码;
例:3011宁乡起重机销售组织只能属于3011公司代码。
表: TVKO销售组织;
• 销售组织与工厂的关系
销售组织与工厂是多对多的关系,但是该关系仅说明了销售组织可以"销售"哪些工厂的,并不能表示两者之间有财务上的所属关系;
表: TVKWZ 每个销售机构允许的工厂数
• 采购组织与公司代码的关系
采购组织与公司代码可以不存在分配关系,我们除极少的两三家公司外,基本上没有进行分配(如果进行分配的话,则一个采购组织只能分配给一个公司代码)。
表:T024E 采购组织
• 采购组织与工厂的关系
采购组织与工厂是多对多的关系(但是如果采购组织已经分配给公司代码后,则只能分配该公司代码下的工厂给采购组织)
T024W工厂的有效采购组织
• 不能根据字段在前台所属的物料视图来确定相应的数据表,一定要使用F1->技术信息;
例:采购视图的"采购价值代码"就是属于基本数据(MARA-EKWSL)。
• 物料主数据的关键表:
MARA,基本视图
MARC,工厂
MARD,工厂/库存地点
MBEW,财务数据,其中的MBEW-BWKEY就是指工厂MARC-WERKS
MVKE,销售组织/分销渠道
MLGN,仓库
MLGT,仓库/存储类型
MSTA,物料主数据维护状态
• BOM主数据
BOM用途:1表示生产
BOM类别:M表示物料BOM
MAST,BOM 链接物料
STKO,BOM表头
STPO,BOM 项目
STZU,永久 BOM 数据
STAS,BOMs - 项选择
• 工艺路线主数据
任务清单类型:N表示工艺路线、Q表示检验计划
MAPL,分配任务清单到物料
PLKO,任务清单 - 表头
PLFL,任务清单 - 顺序
PLPO,任务清单 - 工序/作业
PLAS,任务清单 - 工序/作业选择
PLMZ,组件分配
CRHD,工作中心
• 独立需求
PBIM,物料的独立需求
PBED,独立需求数据
PBID,独立需求数据(MRP区域)
PBHI ,独立需求历史记录
• 计划订单
PLAF,计划订单,需注意计划工厂PLWRK、生产工厂PWWRK的区别;
RESB,预留表(通过PLAF-RSNUM与RESB-RSNUM关联)
• 生产订单
订单类别: AUTYP,10表示生产订单
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关联)
• 报工/入库/发料
AFRU,订单确认(AFRU-AUFNR为订单号)
AFFW,COGI错误(AFFW-AUFNR为订单号)
由于我们没有激活COGI更改历史,所以COGI的更改在AFFWPRO中是没有记录的,若有必要,可通过自定义备份表ZAFFWH进行查看。
AUFM,订单物料移动数据(AUFM-AUFNR为订单号)
该表的数据更新需依赖于PP的相关配置。此外,如果需要得到某一预留的累计发料数量,可直接使用RESB-ENMNG;如果需要得到某一订单的累计入库数量,可直接使用AFPO-WEMNG。均不需要对物料移动数据进行累加。
• 供应商主数据
LFA1,集团数据
ADRC,地址信息
LFB1,公司代码数据
LFM1,采购组织数据
• 计划订单
PLAF,计划订单;
• 采购合同
凭证类别(EKKO-BSTYP)等于K(合同)
EKKO,采购凭证抬头
EKPO,采购凭证项目
• 采购信息记录
信息记录类别(EINE-ESOKZ):0(标准)、 2(寄售)、3(分包合同)
EINA ,采购信息记录 - 一般数据
EINE ,采购信息记录 - 采购组织数据
• 采购申请
EBAN,采购申请
• 采购订单
凭证类别(EKKO-BSTYP)等于F(采购订单)
关键表:
EKKO,采购凭证抬头
EKPO,采购凭证项目
EKET,计划协议计划行
EKKN,采购凭证中的帐户设置
• 采购收货及发票校验
EKBE,采购凭证历史
如果需要得到某一采购订单行项目的累计入库数量,可直接使用EKET-WEMNG,不需要对物料移动数据进行累加。 (虽然SAP是允许同一采购订单行项目是允许多个交货计划(EKET),但我们实际上业务中只允许一个交货计划,很多开发和考核都是基于此)
RBKP,凭证表头:发票收据
RSEG,凭证项目:收款发票
通过发票凭证读取会计凭证建议使用函数AC_DOCUMENT_RECORD。
• 仓位主数据
仓位必须跟仓库号、仓储类型一起才有意义,牢记"仓库号+仓储类型+仓位"!
关键表:
LAGP,仓位
• 库存数据
IM库存数据(注意使用待H的数据):
MARD,物料的仓储位置数据
MSLB,供应商特殊库存(o)
MKOL,供应商的特殊库存(k)
MSKA,销售订单库存
MCH1/MCHB,批次库存
• WM库存数据:
LQUA,份(quants错误翻译为数量)
• 物料移动数据
关键表:
MKPF,抬头:物料凭证
MSEG,凭证段:物料
不是所有的物料移动数据都需要从这物料移动表中进行读取。
生产订单相关 AUFM,采购订单相关 EKBE,销售相关 VBFA。
• 移动类型
借贷标示:MSEG-SHKZG,S表示增加库存、H表示减少库存
关键表:
T156*,移动类型
T030,移动类型科目自动记账
• WM的数据
关键表:
LTBK,转储请求抬头
LTBP,转储请求项目
LTAK,WM转储单抬头
LTAP,转储单项目
• 客户主数据
KNA1, 基础数据
KNB1,公司代码
KNVV,销售组织
ADRC,地址
• 销售价格
根据条件类型(如PR01)查找存储顺序(如PR02),得到表(如A305等A*表)
KONP,条件记录号关联
• 销售合同(销售意向)
凭证类别G(VBAK-VBTYP)
VBAK
VBAP
• 销售订单
VBAK: 销售凭证 : 抬头数据
VBAP: 销售凭证 : 项目数据
VBEP: 销售凭证 : 计划行数据
VBKD: 销售凭证 : 业务数据
VBPA: 销售凭证 : 合作伙伴
• 交货单
LIKP
LIPS
• 发票凭证
VBRK
VBRP
• 销售凭证流、凭证状态
VBFA
VBUK
VBUP
• 会计
• 会计科目主数据
SKA1,科目表
SKB1,公司代码
SKAT,科目描述
• 成本要素
CSKB,成本要素
• 记账期间
T001B
财务供应商、财务客户(同后勤模块,维护事务代码FK01,只有公司代码数据)
• 总账
BKPF/BSEG
FAGLFLEXT
BSAS/BSIS
GLFUNCT,功能范围
• AR/AP
BSAD/BSID
BSAK/BSIK
• AM
ANLA
• CO
CSKS,成本中心
COEP
COSS(计划/实际,通过WRTTP区分,期间通过字段区分,如WTG004)
COSP
• CO-ML
CKMLHD
CKMLCR
CKMLPR
COPA
CE*,如CE18000,8000指使用的经营范围
CO与FI的区别及数据
SAP增强技术
用户出口(USER EXIT)
增强(ENHANCEMENT)
• SMOD
• CMOD
BADI
• SE18
• SE19
Enhancement Spot
• ECC6.0后
标准程序的修改(以CO02为例)
• SE95查看
SAP 常用业务数据表设计的更多相关文章
- 【原创】C#搭建足球赛事资料库与预测平台(6) 赔率数据表设计2
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源C#彩票数据资料库系列文章总目录:[目录]C#搭建足球赛事资料库与预测平台与彩票数据分析目录 本篇文章开始将逐步介 ...
- 【原创】C#搭建足球赛事资料库与预测平台(3) 基础数据表设计
本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 开源C#彩票数据资料库系列文章总目录:http://www.cn ...
- 【原创】C#搭建足球赛事资料库与预测平台(4) 比赛信息数据表设计
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源C#彩票数据资料库系列文章总目录:[目录]C#搭建足球赛事资料库与预测平台与彩票数据分析目录 本篇文章开始将逐步介 ...
- SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(五): 数据表设计、使用 jwt、redis、sms 工具类完善注册登录逻辑
(1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(一):搭建基本环境:https://www.cnblogs.com/l-y-h/p ...
- MySql数据表设计,索引优化,SQL优化,其他数据库
MySql数据表设计,索引优化,SQL优化,其他数据库 1.数据表设计 1.1数据类型 1.2避免空值 1.3text类型优化 2.索引优化 2.1索引分类 2.2索引优化 3.SQL优化 3.1分批 ...
- 数据表设计之主键自增、UUID或联合主键
最近在做数据库设计的时候(以MySQL为主),遇到不少困惑,因为之前做数据库表设计,基本上主键都是使用自增的形式,最近因为这种做法,被领导指出存在一些不足,于是我想搞明白哪里不足. 一.MySQL为什 ...
- PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [5] 版本设计分析及数据表设计
APP 版本升级以及 APP 演示 ① 版本升级分析以及数据表设计 ② 版本升级接口开发以及 APP 演示 /** * version_upgrade 版本升级信息表 */ CREATE TABLE ...
- mysql status关键字 数据表设计中慎重使用
mysql status关键字 数据表设计中慎重使用
- 中小型WEB系统权限日志数据表设计
中小型WEB系统权限日志数据表设计 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjc1MDU3OA==/font/5a6L5L2T/fontsi ...
随机推荐
- Oracle树查询总结
最近在做公司的项目中遇到一个问题,多级级联导航菜单,虽然只有三级目录,但<li>中嵌套<ul>,数据库表结构如下: CREATE TABLE FLFL ( ID NUMBER ...
- linux bg和fg命令
linux下我们如果想一个任务或者程序还后台执行可以使用&,实际上linux还提供了其他任务调度的命令. bg将一个在后台暂停的命令,变成继续执行 fg将后台中的命令调至前台继续运行 jobs ...
- jQuery EasyUI/TopJUI输入框事件监听
jQuery EasyUI/TopJUI输入框事件监听 代码如下: <div data-toggle="topjui-panel" title="" da ...
- mysql5.7安装部署后初始密码查看以及修改
一.查看初始密码以下两种方法: 1.找到自己的error.log日志文件,执行自己的命令,红色标记的部分为初始化密码. grep 'temporary password' /data/mysql/er ...
- MyIfmHttpClient
package com.yd.ifm.client.caller.util.http; import java.util.Map; import com.yd.ifm.client.caller.mo ...
- Spring Security在标准登录表单中添加一个额外的字段
概述 在本文中,我们将通过向标准登录表单添加额外字段来实现Spring Security的自定义身份验证方案. 我们将重点关注两种不同的方法,以展示框架的多功能性以及我们可以使用它的灵活方式. 我们的 ...
- ubuntu中安装vsftp
1.安装 $ sudo apt-get install vsftpd 2. 配置 需要配置文件/etc/vsftpd.conf 来进行设置参数以对FTP进行控制,包括访问权限,流量等进行控制. 执行s ...
- 【转载】Ubuntu16.04安装最新版nodejs
安装最新版nodejs 更新ubuntu软件源 sudo apt-get update sudo apt-get install -y python-software-properties softw ...
- To the world you may be one person, but to one person you may be the world.
To the world you may be one person, but to one person you may be the world.对于世界而言,你是一个人:但对于某人而言,你是他的 ...
- ABAP常用事务码
开发----------------------------------------------- SE51 屏幕制作 SE91 MESSAGE OBJECT SE80 对象浏览器(可以建开发类 ...