SAP学习笔记
sap2000学习笔记

1.在SAP2000中显示梁柱以及板的截面形状方法是:对于9.0以前的版本在菜单栏>显示>拉伸显示,在SAP2000中则不能再菜单中进行截面显示操作,其方法是:直接在浮动工具条里点击,在弹出的窗口中选中,效果图见下图所示2.在SAP中指定单元划分的方法是:菜单栏>指定>面>自动面网格划分>选择相应的单元类型并指定单元尺寸。
3.北京水金土木的SAP指南一书中,第50页中的步骤九:定义静荷载工况内容中,应为定义>荷载模式。
只有地震荷载下,自动侧向荷载选项才是打开的4.建立柱状模型时需要选择柱状坐标系,方法是在编辑轴网对话框中选择在弹出的对话框中选择柱面坐标5.定义变截面柱的方法是:先定义两个截面,然后在框架属性中选择other>变截面(见下图)。
变截面构件的定义需要事先划分成若干段,每个段再根据是否为恒截面进行相关定义。
注意到EI33与EI22变量定义可有三个选择:即linear,parabolic与cubic,即定义局部抗弯刚度的变化方式。
效果图见下图所示。
6.定义组合及不规则截面,方法是:。
另外还可以通过>显示弯矩-曲率关系查看已经定义的钢筋混凝土截面的M-Φ关系(是否可以在设计中直接应用呢?)见PDF第89页:。
工具条中的,其功能分别为:显示相关曲线,弯矩-曲率关系,弹性应力。
在SAP中,截面总是预定义的,需要对截面尺寸进行修改。
方法是:在左侧绘制工具条中选择相关操作后,在绘图区左击鼠标,然后点击鼠标右键,,进行尺寸修正。
截面定义后,单击绘图区右下角的完成按钮,即返回截面名称定义的主窗口,确定即可。
7.定义截面属性为面截面时,壳单元非常有用,在平面和三维结构中模拟壳、膜和板的性能,是模型中最常用的一种,例如结构中的楼板、墙、坡面等均以壳定义,壳单元是一个组合了膜和板弯曲行为的3节点或4节点单元(4节点单元不必是平面)。
板弯曲行为包括双向、面外、板旋转刚度部分和一个垂直于单元平面的平动刚度。
WDA学习笔记三

SAP Web Dynpro For ABAP学习笔记(三)本学习笔记多来自sap library,本人翻译+自己的理解,如果有什么不对的地方,还请大家指正.这一节基本上都是基本概念的介绍,大好基础最重要嘛,推荐这里还是好好理解一下.WD Model MVC: 设计模式中的经典从上面的图,我们可以了解到WD的MVC是如何工作的控制器:处理事件,更新应用数据,定义流程模型:定义数据,连接视图:用户所看到的WD component有一些特性是我们应该知道的:1.可以包含任意数量的windows,views以及与之对应的controllers2.可以嵌套其他的component3.每个WD application必须有component(从昨天的笔记中可以看到,我们第一个建的就是conponent)4.每个component包含一个interface,每个interface包含两个部分interface view:用来链接WD application和WD windowinterface controller:进行数据交换控制WD View1.每个WD application至少有一个view2.每个view里面可以放置不同的UI element(例如我们昨天的caption)3.两个很重要的组件:controller+contextcontext用来存储以及管理数据和UI element的绑定controller用来取得数据或者处理用户输入等等4.每个view都有进入的接口(plug,接口可能不是很合适,不过比较容易理解)以及出去的接口.进来的接口用来得到这个view的开始点,而出去的接口用来调用下一个view.注意:每个window可能有几个view,所以必须指定第一个view,相应的,第一个view没有进入接口(inbound plug).5.连接关系:几个view之间的连接通过导航链接(Navigation Link)来实现.WD Window1.Window是多个view的组合容器,view必须在window中才能被用户看到.2.一个window包含至少一个view,如果是多个view的话通过导航链接实现,当然,必须定义开始的view3.每个window可以有一个或者多个进入以及输出端(Plug),对应于view的plugoutbound plug:链接window和view的inbound pluginbound plug:链接view的outbound plug到嵌入windowWD Controller1.定义了用户如何与WD application进行交互2.View controller:每个view只有一个view controller以及一个view context3.Global controller:顾名思义,全局的controller,在程序运行过程中始终可访问WD Application用户调用的入口。
ABAP学习笔记

ABAP学习笔记一、ABAP语法简介:ABAP(Advanced business application program),是一种高级企业应用编程语言,它支持封装性和继承性,封装性是面向对象的基础,而继承性是建立在封装性基础上的重要特性。
它适合生成报表,支持对数据库的操作,如:Sqlserver,Oracle,DB2等主流数据库系统。
主要的语法有:数据类型、控制流程、文本摘要、输出格式、程序调试1、数据类型:(八种基本数据类型)D :日期类型,格式为YYYYMMDD,长度为8T :时间类型,格式为HHMMSS,长度为6I :整数类型,默认长度为4,初始值为0F :浮点类型,默认长度为8,初始值为0,常用于计算C :字符串类型,定义变量时指定字符个数N :数字字符串类型,定义变量时指定数值字符个数X :字节序列类型,定义变量时指定字节数P(压缩号) :允许的长度为1 到16 个字节,系统会指定默认值8 个字节(也就是15 位数字)和0 个小数位常用:大小,长度,重量,货币等单位的场合.2、输出格式:WRITE 'First line.'.WRITE 'Still first line.'WRITE / 'Second line.'WRITE /13 'Third line’.3、控制流程:使用IF的条件分支IF <条件表达式1>.< statement block >ELSEIF <条件表达式2>.< statement block >ELSEIF <条件表达式3>.< statement block >.....ELSE.< statement block >ENDIF.使用CASE的条件分支CASE <f>.WHEN <F1>.<statement block>WHEN <F2>.<statement block>WHEN <F3>.<statement block>WHEN .........WHEN OTHERS.<statement block>ENDCASE.二、ABAP的语法特点:1、由各自独立的语句构成。
SAP动态安全库存配置及计算逻辑说明测试

SAP动态安全库存的概念、计算逻辑及配置详解动态安全库存的概念:它根据平均的日需求数量来确定未来几个时期的安全库存水平,通过最小库存、目标库存、最大库存来控制该期间是否需要补货。
若小于最小库存,产生补货请求至目标库存;若库存水平在最大和最小之间则不产生补货请求;若大于最大库存,系统将提示例外信息。
(如下图1说明)(图1)计算逻辑说明:(图2)从上图可以看到各期间安全库存水平是变化的,具体计算说明如下:期间1,2,3,4… : 这期间可以是月,周,PP计划日历为单位,具体什么为单位,是通过后台进行配置的(见下图4“期间标识”的字段)平均日需求 = 连续期间内的需求数量 / 连续期间内的有效日期天数连续期间内的需求数量:比如期间1和期间2的需求之和(连续期间数是多少,这是由系统配置决定的,见下图4的“期间数”的设置值)连续期间内的有效日期天数:等于下图4中“每个期间天数的编号” * “期间数”。
目标库存 = 平均日需求* “目标”字段配置的天数(见下图4)最小库存 = 平均日需求* “最小”字段里配置的天数(见下图4)最大库存 = 平均日需求* “最大”字段里配置的天数(见下图4)动态库存的系统配置及其说明如下:配置路径:IMG->生产->物料需求计划->计划->MRP计算->定义覆盖范围的参数文件 (动态安全库存)。
(图3)(图4)动态安全库存应用的效果测试:第一步:需要配置下物料主数据,按上图配置的工厂1710的002供货天数参数文件分配到物料主数据MRP2视图的如下字段备注:上图需要注意的是若同时设置了安全库存,会累加。
第二步:MD61创建物料料FERT-DSS的独立需求,比如今天是2020/10,创建如下需求.©ERP文库. 欢迎转发, 严禁转载!Page 4 of 6特别声明:本手册根据作者学习SAP 的经验而编写,不代表任何公司,仅用于SAP软件学习参考,。
SAPMM配置笔记

SAPMM配置笔记4.1创建工厂后台->SAP用户化实施指南->企业结构->定义->后勤-常规->定义,复制,删除,检查工厂定义工厂(复制模板0001)输入内容:工厂:P999名称:颐宁机械工厂工厂日历:01德国(标准)标题:公司名称:颐宁机械有限公司城市:上海市邮编:200032国家:CN语言:中文4.2创建库存地点后台->SAP用户化实施指南->企业结构->定义->物料管理->维护仓储地点输入内容:工厂:P999库位:0001/0002/0003描述:仓库/生产/运输4.3创建采购组织后台->SAP用户化实施指南->企业结构->定义->物料管理->维护采购组织(新建)输入内容:采购组织:C999采购组织描述:颐宁采购组织4.4创建采购组后台->SAP用户化实施指南->物料管理->采购->创建采购组(新建)输入内容:采购组:PG1/PG2采购组描述:原材料和运营供应/贸易商品4.5定义MRP控制者后台->SAP用户化实施指南->生产->物料需求计划->主数据->定义MRP控制者(新建)工厂:P999MRP控制者:001自制品/002贸易商品4.6分配工厂到公司代码后台->SAP用户化实施指南->企业结构->分配->后勤-常规->给公司代码分配工厂将\颐宁机械工厂\分配给\颐宁机械有限公司\(吴氏实业有限公司)4.7分配采购组织到公司代码(如果是集团公司采购,一个采购组织可以负责若干个公司代码的采购,这时需要将该采购组织分配给这些公司代码)后台->SAP用户化实施指南->企业结构->分配->物料管理->给公司代码分配采购组织将\Y999颐宁采购组织\分配给\颐宁机械有限公司\4.8分配工厂到采购组织(SAP系统中一个采购组织可以同时负责几个工厂的采购)后台->SAP用户化实施指南->企业结构->分配->物料管理->给工厂分配采购组织将\颐宁机械工厂\分配给\颐宁采购组织\4.9定义物料组(物料依据不同的组来进行统计分析)后台->SAP用户化实施指南->后勤-常规->物料主数据->设置关键字段->定义物料组输入内容:物料组:0001/0002/0003物料组的描述:原材料/产成品/贸易商品4.10定义计划边际码(颐宁公司在做物料计划时,除了正常的采购和生产时间,还规定在操作,产前,产后和订单下达各阶段预留1天的缓冲时间.这个规则被定义在\计划边际码\中,分配给各种物料(在物料主数据中).后台->SAP用户化实施指南->物料管理->基于消费的计划->计划->定义浮点(计划毛利码)输入内容:工厂:P999边际码:Z01Op.Pd:1产前缓冲时:1产后缓冲时:1下达期间:14.11维护和库存相关的工厂参数-库存预留(库存管理中,对库存物料可以通过预留号进行预留,比如预留给生产订单或销售订单.本步骤中,设定在颐宁机械工厂,对库存的预留允许比计划日期提前1个月使用,同时过期1个月以内的预留仍然可以使用.)后台->SAP用户化实施指南->物料管理->库存管理和实际库存->工厂参数输入内容:许可的移动:v(指是否允许对预留货物进行货物移动的控制)允许移动的天数:30(指比预留计划使用日期提前30天允许使用预留)保持期间:30(指预留计划使用日期过去30天内,预留仍可使用)4.12维护和库存相关的工厂参数-自动创建物料的库存地点视图(SAP系统中物料主数据是按不同的视图来维护的,如采购视图,会计视图,库存视图,计划视图,销售视图等等,只有某个视图被定义了,才可以对这个物料进行某项操作,比如采购,会计计价,计划,销售等等.其中库存地点视图可以选择在物料移动的时候,比如第一次收货的时候,由系统自动创建物料的库存地点视图.)后台->SAP用户化实施指南->物料管理->库存管理和实际库存->发货/转储记账->自动建立库存地点(只有当一个工厂和正在操作的物料移动类型都允许时,系统才会自动创建物料的库存地点视图.对于移动类型,我们保留系统的标准设置.我们来设置我们自己新建的工厂.)4.13维护税务代码的缺省值(颐宁公司收到的采购发票大多是17%的增值税发票,所以这里我们将这设为缺省值,以便发票校验.缺省值在做业务操作时是可以更改的)后台->SAP用户化实施指南->物料管理->后勤发票校验->收入发票->维护税代码的缺省值输入内容:公司代码:C999税码:J417%进项税中国(J1:进项税17%)4.14维护公司代码下物料管理的初始期间(物料管理在SAP中只能开当月的账,或者之多当月和上个月的账,而且开账只允许一个月一个月向后开,所以在一开始我们要设定一个初始期间.一般初始期间设定为上线前的那个月.比如2007年12月上线,就设定初始期间为2007年11月,在11月中导入期末库存余额.)后台->SAP用户化实施指南->后勤-常规->物料主数据->基本设置->维护物料管理的公司代码输入内容:年份:2007(由于时间关系,改为2022年10月为初始期间)月:12 ABp:v(指同时打开上个月的库存账)4.15维护和物料需求计划相关的工厂参数后台->SAP用户化实施指南->物料管理->基于消费的计划->工厂参数->执行工厂参数的总体维护输入内容:创建工厂:P999复制从工厂0001至P999维护(参数被有序地组织在一起.\维护\代表已经维护了,\初始\代表尚未维护.)浮动删除复制模板\工厂里的计划边际码.4.16激活物料需求计划后台->SAP用户化实施指南->物料管理->基于消费的计划->计划->激活物料需求计划激活\工厂P999\物料需求计划4.17定义计划运行的号码范围后台->SAP用户化实施指南->物料管理->基于消费的计划->号码范围->定义计划运行的号码范围(依次点击进入确认计划运行中的所有处理对象都分配了号码范围01)4.18定义物料类型的属性后台->SAP用户化实施指南->后勤-常规->物料主数据->基本设置->物料类型->定义物料类型的属性(我们可以定义一种物料类型,在某个工厂里可以是\无价值库存\即只记录数量,不记录价值,或者是\无数量库存\这里我们激活颐宁机械工厂里的三类物料,需要同时更新数量和价值)4.19定义评估控制(SAP各个工厂自动记账规则可以是不同的,若一个集团公司有很多工厂,而他们的记账规则又是一样的.SAP允许将工厂集合成\组\来统一定义记账规则.工厂在记账规则定义中被称为4.22新建原材料主数据SAP菜单->后勤->物料管理->物料主记录->物料->创建(特殊)->MMR1-原材料输入内容:物料:3行业领域:工厂工程/结构(书中机械工程在我所用的系统版本中不存在,于是选了个看起来类似的)(选中基本视图\基本数据1\采购\会计1\工厂:P999描述:罩壳基本计量单位:个物料组:0001采购组:PG1MRP类型:PD(SAP中内置了八大类物料计划方法,如重订货点计划,基于预测的计划,时间阶段计划,MRP,MPS,零售补货计划,无MRP,无MRPBOM展开等.根据这八大类方法,可以在后台配置中定义具体的MRP类型.标准系统中预定义了33种不同的MRP类型.这里我们选用标准的MRP类型\实际项目中还要特别区分MPS与MRP的关系.)MRP控制者:001批量:E某(采购批量大小的确定原则是一个非常复杂的问题,SAP提供了非常灵活的工具.比如按期间的,动态的,固定的GROFF法,补货至最大库存的等等.这里我们选择\逐批确定的方法,即按照具体需求量大小,结合最大最小批量等因素确定本次批量大小的方法.\批量\参数可以在后台定义计划交货时间:3(原材料采购需3天交货期)计划边际码:Z01(指除了正常的采购和生产时间,还需要多少缓冲时间,或计划余量.安全库存:100可用性检查:02(可用性检查是检查是否有足够的库存来支持生产.主要有按期间需求和按单独需求两类,但是检查的规则在SAP中有非常灵活的配置方法.这里我们选择常用的预定义的可用性检查方式\评估类:3000(评估类决定了这个物料记帐的科目)价格控制:V(V代表移动平均价记价,S代表以标准成本记价)价格单位:1移动平均价:420物料:R999-200/R999-300/R999-400/R999-500行业领域:工厂工程/结构工厂:P999描述:飞轮/管轴/支撑架/金属片基本计量单位:PC/PC/PC/M2物料组:0001采购组:PG1MRP类型:PDMRP控制者:001批量:E某计划交货时间:3计划边际码:Z01安全库存:100/100/100/60可用性检查:02评估类:3000价格控制:V价格单位:1移动平均价:560/1700/380/204.23/4.24新建贸易上品主数据/新建产成品主数据SAP菜单->后勤->物料管理->物料主记录->物料->创建(特殊)->MMH1-贸易货物/MMF1-成品输入内容:物料:T999-100/F999-100行业领域:机械工程(视图:基本数据1,采购,MRP1,MRP2,MRP3,会计1/基本数据1,MRP1,MRP2,MRP3,会计1,成本评估1)工厂:P999描述:高速增压涡轮泵/铸钢泵170-230基本计量单位:PC物料组:0003/0002普通项目类别组:NORM(标准项目)毛重:85/75净重:83/72重量单位:KG采购组:PG2/-MRP类型:PDMRP控制者:002/001批量:E某采购类型:-/E自治生产:-/1计划边际码:Z01计划交货时间:10/-安全库存:60/80可用性检查:02评估类:3100/7920价格控制:V/S价格单位:1移动平均价:8000/4500成本核算批量:-/104.25显示物料主记录清单SAP菜单->后勤->物料管理->物料主记录->其他->MM60-物料清单输入内容:工厂:P9994.26创建供应商的采购数据(一般由采购部门维护)SAP菜单->后勤->物料管理->采购->主数据->供应商->采购->MK01-创建(供应商的采购数据是和具体的采购组织相关的,也就是说不同的采购组织向同一个供应商来采购,可以有不同的规定)供应商:10000000/10000001/20000000采购组织:Y999帐户组:G001/G001/G002订单货币:RMB付款条件:00014.27新建采购信息记录SAP菜单->后勤->物料管理->采购->主数据->信息记录->ME11-创建输入内容:供应商:100000000/10000001/10000000/10000001/10000001/20000000物料:R999-3000/R999-100/R999-200/R999-400/R999-500/T999-100采购组织:Y999工厂:P999计划交货时间:3/3/3/3/3/10采购组:PG1/PG1/PG1/PG1/PG1/PG2标准订单数量:50/50/50/50/20/20净价:1700/420/560/380/20/80004.28维护物料管理自动记帐(本步骤是设置SAP中最为重要的集成配置之一,即物料移动在SAP中如何自动找到会计科目完成自动记账)后台->SAP用户化实施指南->物料管理->评估和科目设置->科目确定->无向导的科目确定->配置自动记帐(\科目分配\按钮中是正式的科目分配工作,但对于初学者来说\模拟\按钮的作用很大.在模拟按钮中,你可以输入物料,工厂,移动类型,系统会提示你在\科目分配\中如何定义科目.)屏幕中科目分配被按\事务\分类,我们首先定义存货记帐.因为物料移动总和存货科目相关,所以凭证总有一行是存货科目行.双击\存货记帐BS某\帐目表:A999(明确存货科目是否受\估价修改\将评估范围集合分组的\评估分组代码\和评估级别<4.21定义评估类中的\评估类\的影响.这里我们选择受这两者影响.)输入内容:估价修改:CN01(实质上是工厂的分组,参见4.20)评估级别:3000/3100/7920帐户:12110101存货-原材料/12310101存货-贸易商品/12430101存货-产成品物料的采购会涉及材料采购科目(GR/IR),这是在\中维护的估价修改:v评估级别:v估价修改:CN01评估级别:3000/3100帐户:12022101材料采购-GR/IR(和物料移动相关的会计凭证除了库存这一行,对应的那行的会计科目在\中维护,比如主营业务成本,生产成本等,\的科目确定除了和工厂,物料相关还和不同的物料移动类型相关,比如销售出库的应该走\主营业务成本\科目,生产发货的应该走\生产成本\科目,所以我们需要在这个屏幕中选中\一般修改\参数,\一般修改\参数是由移动类型决定的.)一般修改:v估价修改:v评估级别:v估价修改:CN01一般修改:AUF/VA某/VA某/VBR(AUF是和生产完工入库相关的,VA某是和销售出库相关的,VBR是和生产发货相关的)评估级别:7920/3100/7920/3000帐户:41010801生产成本-产成品产出/54010201主营业务成本-贸易商品/41010101生产成本-原材料消耗(如果物料采用标准成本计价,那价差科目在\中定义)估价修改:v评估级别:v估价修改:CN01评估级别:3000/3100/7920帐户:54010301主营业务成本-采购价差/54010301主营业务成本-采购价差/54010401主营业务成本-生产订单差异)学习笔记之-100小时学会SAP(12)又遇到个问题,在建信息记录时,我的系统要求税码为必输项,于是我先前就把\进项税\输入了,可到后面建采购订单时,发现系统给我把先前在信息记录中输入的\净价\又分割成\净价\和\进项税额\两部分,也就是说我先前在信息记录里输入的净价实际上并不是净价,而是含税金额(不晓得这是不是SAP的bug呢还是还有什么地方有设置我不知道).后来为了与书上保持一致,于是就把原来信息记录中的税码改为0%的进项税,这样采购订单是一致了,到后面输采购发票时又出问题了,这里书上又要求输入17%的进项税,而我从采购订单那边带出来的时0%的进项税,这样表头表身就不一致了.......而且在这里看书上的截图,系统计算的税额是在原来采购订单总金额的基础上乘以17%,也就是说最后发票金额是含税的,而采购订单是不含税的......这个又在那里设置呢今天得回家了,明天再研究........4.29将存货科目设置为只能自动记帐SAP菜单->会计->财务会计->总分类账->主记录->总账科目->单个处理->FS00-集中地输入内容:总账科目:12110101/12310101/12430101公司代码:C999创建/银行/利息只能自动记帐:v4.30设置采购价格差异的容差限制(SAP系统在处理采购订单时,会检查采购订单中的价格和物料主数据中的成本价格差异有多大,同时也会检查采购订单中的现金折扣是否可接受.如果差异超过一定的容差,系统将发出警告消息或错误消息.不同的容差检查存放在\容差码\中,容差码\是检查价格的,\是检查现金折扣的.)后台->SAP用户化实施指南->物料管理->采购->采购订单->设置价格差异的容差限制.通过复制模板公司0001的方法维护颐宁公司的容差.(容差分上限和下限,同时绝对差异和百分比差异只要有一个超过就认为容差被超出了)4.31设置收货的容差限制(SAP允许采购订单定价数量单位和采购订单数量单位不同,比如采购订单数量是按件,但定价是按公斤.在这种情况下,当收货的时候,两种单位的数量都需要输入.在收货的时候,系统会检查定价数量和采购订单中的差异.容差码\被超出会发出错误消息,\被超出会发出警告消息.)后台->SAP用户化实施指南->物料管理->库存管理和实际库存->收货->设置容差限制通过复制模板公司\的方式建立颐宁公司的收货容差限制.4.32设置发票冻结的容差限制(SAP系统在发票校验时会做大量检查,如果校验不通过发票就会冻结.因此发票校验的容差配置最为丰富,容差码也最多.系统中一共有14个容差码,负责各种不同目的的检查.这里我们用复制模板公司的方式来建立颐宁公司的容差检查.但是在实际项目中,这个内容应该是业务蓝图设计的重要部分.)后台->SAP用户化实施指南->物料管理->后勤发票校验->发票冻结->设置容差限制选择\公司代码0001,T1Ky(容差码)AN,AP,BD,BR,BW,DQ,KW,PP,PS,ST,VP\复制.4.33维护项目金额检查后台->SAP用户化实施指南->物料管理->后勤发票校验->发票冻结->项目金额检查->激活项目金额检查输入内容:公司:C9994.34运行物料需求计划(由于BOM要等到生产计划模块PP中才维护,所以我们现在不能按BOM将物料需求层层展开,所以是单层的计划)SAP菜单->后勤->物料管理->物料需求计划(MRP)->物料需求计划->计划->MD03-单项,单层输入内容:物料:F999-100/T999-100/R999-100/R999-200/R999-300/R999-400/R999-500工厂:P999处理代码:NETCH创建采购申请:2交货计划表:3创建MRP清单:1计划模式:1调度:1保存前显示结果:v(对于例外情况的发生,例无法按时达到需求,系统通过\例外码\来分类,计划人员可以重点关注例外码来进行管理)10008472-100084784.35显示库存/需求清单SAP菜单->后勤->生产->物料需求计划->评估->MD04-库存/需求清单输入内容:物料:R999-100/T999-100/F999-100/R999-200/R999-300/R999-400/R999-500工厂:P999(运行物料需求计划后,就生成了采购申请,采购申请也可以自行创建.)4.36新建采购申请SAP菜单->后勤->物料管理->采购->采购申请->ME51N-创建输入内容:物料:R999-100/R999-200/R999-300/R999-400/R999-500/T999-100申请数量:150/200/150/150/100/80交货日期:2022.1.6/2022.1.6/2022.1.6/2022.1.6/2022.1.6/2022.1.10工厂:P999采购申请单号:100084794.37新建采购订单SAP菜单->后勤->物料管理->采购->采购订单->创建->ME21N-已知供应商/供应工厂点击凭证概览,选择\我的采购申请\输入内容:采购组织:Y999供应商:100000004.38采购收货SAP菜单->后勤->物料管理->库存管理->货物移动->收货->对采购订单->采购订单得GR(MIGO)输入内容:物料凭证:5800000000/5800000001/58000000024.39输入采购发票SAP菜单->后勤->物料管理->后勤发票校验->凭证输入->MIRO-输入发票输入内容:发票日期:2007.1.2计算税额:v采购订单/计划协议:4500017038(采购订单号)/4500017039/4500017040(实际操作的时候是在发票抬头先输入总含税金额,并根据实际发票行修正系统自动带过来的发票行,由系统计算金额是否一致,以及校验标准是否符合.由于发票比采购订单原定的日期提前到达,并超过了容差,所以发票被冻结了)4.40下达冻结发票(被冻结发票可以经过相关管理人员检查后手工下达)SAP菜单->后勤->物料管理->后勤发票校验->进一步处理->MRBR-下达冻结发票(在此可根据各种条件来选择被冻结的发票,也可以选择是手动下达还是让系统自动批准.)输入内容:公司代码:C999发票凭证:5105608602到5105608604会计年度:20224.41显示发票和会计凭证SAP菜单->后勤->物料管理->后勤发票校验->进一步处理->MIR4-显示发票凭证输入内容:发票凭证号:5105608602会计年度:20054.42显示库存物料SAP菜单->后勤->物料管理->库存管理->环境->MMBE-库存总览输入内容:物料:R999-100工厂:P999同上查询其他库存物料。
SAP FI教程1

Unit 1Basic settings 基础设置Unit Overview 单元概述●Company code, business areas公司代码,业务范围●Fiscal Y ear会计年度●Currencies货币●V ariant principle变式原则Unit Objectives 单元目标After completing this unit, you will be able to:•Map the accounting structure of your company using mySAP ERP Financials organizational units使用SAP财务组织单元描绘贵公司的会计结构。
• Explain the meaning of the terms “company code” and “business area” and their differences 解释术语“公司代码”和“业务范围”的含义和它们的区别。
• Create a company code创建一个公司代码。
• Explain the use and advanta ges of the variant principle解释变式原则的用法和优点。
• Explain the necessity and use of a fiscal year variant解释会计年度变式的必要性和用法。
• Explain different types of fiscal year variants解释不通类型的会计年度变式。
• Define a fiscal year variant according to your requirements根据你的需求定义一个会计年度变式。
• Assign the fiscal year variant to a company code给公司代码分配一个会计年度变式。
sap 教程 11 - 重复生产-倒冲
第 11章: 重复生产-倒冲本章目标学习本章后,你将能够:•定义倒冲•了解实施重复生产 (倒冲)的原因第 11 章第 1 课: 概述,功能和角色 ................................................................................... 11.3 第 2课: 倒冲 ......................................................................................................... 11.5第 1课: 概述,功能和角色概述在大规模重复生产的环境,不可能对生产订单的每个子项进行单独发料和控制。
通用的或价值不高的物料总是在相同的位置被生产订单消耗,而在系统中则通过倒冲来记录消耗。
功能和角色生产计划:负责维护合理的生产计划,下达订单和维护订单相关物料清单。
库存控制:负责向倒冲库位补充物料,查看和修正倒冲对帐报告。
生产:负责执行生产任务,按订单记录工时。
本章介绍生产订单的倒冲功能。
笔记第 2课: 倒冲本章目标学习本课后,你将能够:•定义倒冲•了解实施重复生产 (倒冲) 能力的原因什么是倒冲?APICS 定义的倒冲或库存后减除处理概念是:通过分解物料清单,按装配件的生产数从库存中减除装配或子装配所用的子项零件。
在系统中,倒冲是一项减少或免除材料和资源数据录入的技术。
通过倒冲,系统根据物料清单上各子项的标准数量和生产订单上已接收入库的父项数量,自动减除材料数量。
在严格的程序和原则控制下,倒冲大大缩短了数据录入和计算发出材料数的时间,同时又维护了库存的准确性。
子项的后减除或以特殊工序上完成的件数为基础,或以父项物料的累计入库数为基础。
在 Fourth Shift™ Edition中,执行倒冲处理时自动完成以下操作:•从库存中减除子项数量•减少对子项的分配•更新实际订单成本•标识异常情况,如库位无效或库存不足•建立要过入总分类帐的相应的财务业务什么时候倒冲通常在几种典型的情形下使用倒冲:•子项库存已位于生产区,且装配前不需要其它材料处理。
bw学习总结
bw学习总结SAP 商务智能学习笔记第⼀章SAP解决⽅案概述⼀、SAP⽹络编织器(NetWeaver)SAP⽹络编织器(NetWeaver)是SAP商务套件的技术基础,基于NetWeaver,企业能够实现如下4个⽅⾯的集成:1、⼈员集成。
将现有的各种管理系统、办公系统、⽂档系统等集中到企业的信息门户内,实现企业IT系统的单⼀⼊⼝。
2、信息集成。
将各种存放在数据库当中的管理信息,以及其它⾮机构化信息(市场信息和报告等)集中起来,实现⽀持经营决策的商业智能和知识管理系统。
3、流程集成。
将分散在不同系统的业务处理连接起来,形成⼀个⾃动化的流程。
对于使⽤者来说,就好像是操作在⼀套系统上。
4、应⽤平台。
SAP提供⽀持开放标准(如XML)的底层架构,实现灵活互接。
⼆、SAP商务套件SAP商务套件基于NetWeaver,包含SAP企业资源计划(SAP ERP)、SAP供应链管理(SAP SCM)、SAP供应商关系管理(SAP SRM)、SAP客户关系管理(SAP CRM)和SAP产品⽣命周期管理(SAP PLM)5部分。
SAP BI独⽴于SAP商务套件。
三、SAP 商务智能(SAP BI)1997 – 1998年,SAP推出其主要商业智能产品– SAP业务信息仓库(SAP BW),其最终版本为BW3.5 。
2005年,BI7.0 推出,BW更名为SAP 商务智能(SAP BI)。
⽬前版本为SAP BI7.2。
SAP BI已经从最初的主要针对SAP系统的报表分析系统逐步演化成⼀个从数据抽取到分析展现的综合性企业级数据仓库及商务智能解决⽅案。
SAP BI由多个功能模块组成,主要包括企业数据仓库、商务智能平台和业务浏览套件。
1、企业数据仓库SAP BI通过数据仓库⼯作台提供了数据的抽取、转换和加载功能。
数据仓库的典型处理流程包括数据建模、数据抽取以及对数据仓库管理流程的管理。
2、商务智能平台提供分析技术,包括OLAP处理器、元数据资源库、BI集成计划、分析进程设计器及数据挖掘、信息发布等功能。
SAP学习笔记10
测试使用BAPI_SALESORDER_CHANGE就是说它实际是call BAPI_SALESDOCUMENT_CHANGE的你可知道ORDER_HEADER_INX-UPDATEFLAG为U时是update,为D时是Delete sales order,不选还不行.好了下面是Source Code(仅供参考,大体框架OK,可能根据你的SAP实际情况做些调整) . *----------------------------------------------------------------------** INCLUDE ZXM06U44* 在company 1000建立PO时同时建立SO in 1000和PO in 2000 ** 注意此程序会反复call .*----------------------------------------------------------------------* data:ZORDER_HEADER_IN like BAPISDHEAD ,ZORDER_ITEMS_IN like BAPIITEMIN occurs 0 with header line ,ZORDER_PARTNERS like BAPIPARTNR occurs 0 with header line ,ZSALESDOCUMENT like BAPIVBELN-VBELN ,ZRETURN like BAPIRETURN .Data:ZPOHEADER like BAPIEKKOC ,ZPOITEMS like BAPIEKPOC occurs 0 with header line,ZPO_ITEM_SCHEDULES like BAPIEKET occurs 0 with header line,ZPURCHASEORDER like BAPIEKKOC-PO_NUMBER .tables :ZPOSO .data zposolog like zposo occurs 0 with header line.data : Zrepcall(1) type C. "防止反复调用BAPI_PO_CREATE.Refresh : ZORDER_ITEMS_IN .*** 实际应用根据I_EKKO-EBELN(其实从EBELN-PO No.可判断出plant)*** 1.I_EKKO-EBELN前面5位用case语句判断*** 2.根据I_EKKO-BUKRS(comp. code)和XEKPO-WERKS(plant)判断*** company code 2000是专门用来采购的HK 公司.*if I_EKKO-BUKRS <> '1000'.* exit.*endif.check I_EKKO-BUKRS eq '1000'. "只对comp 1000适用.***判断表ZPOSO有无PO no.无call BAPI_SALESORDER_CREATEFROMDATA create SO *** 如果存在call BAPi BAPI_SALESORDER_CHANGE change SO.***注意在ME22N change PO时间XEKPO内表中只保留了被改变line item的数据. select single * from ZPOSO where EBELN eq I_EKKO-EBELN.if sy-subrc eq 0 .* Change Sales Order,Purchase Order留给你自己写不告诉你*CALL FUNCTION 'BAPI_SALESORDER_CHANGE'*CALL FUNCTION 'BAPI_PO_CHANGE'else . "建立Purchase Order 和Sales Order*** 从ZFLAG表中读取Zrepcall看是否是T, 不管使用什么方法总之不要反复**在此处设置断点在第二次调用时将Zrepcall设成T退出.**好象无法设置到那种真正的全局变量只好使用一个表罗**你就会发现当在comp 1000建立PO同时也建立了SO并且comp 2000也有PO*select single Zrepcall into Zrepcall from zflag .if Zrepcall = 'T' .exit .endif.***注意使用PO另一个user_exit 001将Zflag的zrepcall设置成F***接下来的语句立即update zflag将zrepcall设置成T.***----------------------------------------------****** 开始建立Purchase Order in company 2000 ******----------------------------------------------******----------------------------------------------****** 开始建立Sales Order in same company 1000 ******----------------------------------------------******根据公司实际更改ZOR是标准Sales order***----Sales Order Header --- ***ZORDER_HEADER_IN-DOC_TYPE = 'ZOR'.ZORDER_HEADER_IN-SALES_ORG = '1100'.ZORDER_HEADER_IN-DISTR_CHAN = '11'.ZORDER_HEADER_IN-DIVISION = '11'.ZORDER_HEADER_IN-CURRENCY = I_EKKO-WAERS. "Order currencyZORDER_HEADER_IN-PURCH_NO = I_EKKO-EBELN .***---Purchase Order Header ---***ZPOHEADER-PURCH_ORG = I_EKKO-EKORG. "正式使用换2000的采购组织ZPOHEADER-PUR_GROUP = I_EKKO-EKGRP . "正式使用换comp2000的采购组 ZPOHEADER-CO_CODE = '2000' .ZPOHEADER-VENDOR = I_EKKO-LIFNR .ZPOHEADER-DOC_TYPE = 'NB' . "I_EKKO-BSART.***根据PO item写入SO item和另家公司的PO itemsloop at XEKPO .***----写SO items ---***ZORDER_ITEMS_IN-ITM_NUMBER = XEKPO-EBELP .* 使PO item NO和SO item No完全相对应,PO,SO item可manual input.ZORDER_ITEMS_IN-MATERIAL = XEKPO-MATNR. "'08K2555'. ZORDER_ITEMS_IN-REQ_QTY = XEKPO-MENGE .ZORDER_ITEMS_IN-REQ_QTY = ZORDER_ITEMS_IN-REQ_QTY * 1000 .* Call SO BAPI时Qty 测试时间必须乘上1000.ABAP中则不用ZORDER_ITEMS_IN-COND_TYPE = 'ZPR1'. "ZPR1是EST定义的price cond.ZORDER_ITEMS_IN-COND_VALUE = XEKPO-NETPR.ZORDER_ITEMS_IN-COND_VALUE = ZORDER_ITEMS_IN-COND_VALUE / 10 .*Call SO BAPI test时Price必须/10ZORDER_ITEMS_IN-PO_METH_S = '010' . "表示是维修期,EST设置成必输字段. Append ZORDER_ITEMS_IN .***---写另公司的PO items,如果有必要让俩公司PO外部给号PONo可一致---***ZPOITEMS-PUR_MAT = XEKPO-MATNR.ZPOITEMS-PLANT = XEKPO-WERKS .ZPOITEMS-NET_PRICE = XEKPO-NETPR.***仅仅是test,注意XEKET,shedules delivery date 没item不同哟.自己去加强吧 ZPO_ITEM_SCHEDULES-DELIV_DATE = SY-DATUM . " XEKET-EINDTZPO_ITEM_SCHEDULES-QUANTITY = XEKPO-MENGE .append ZPOITEMS .append ZPO_ITEM_SCHEDULES .endloop.***为了简单就将SP-Sold_to_Party和SH-Ship_to_Party设置成相同.***AG-SP:sold_to WE:SH Shipping-to,BAPI测试只要SP,call时则要求俩者***下面假设PO vendor no就是SO 的customer no,如非就建立对应关系.ZORDER_PARTNERS-PARTN_ROLE = 'AG'.ZORDER_PARTNERS-PARTN_NUMB = I_EKKO-LIFNR.***实际应用时HK开PO时产生的SO customer当然只有一个就是SZ公司. Append ZORDER_PARTNERS .ZORDER_PARTNERS-PARTN_ROLE = 'WE'.ZORDER_PARTNERS-PARTN_NUMB = I_EKKO-LIFNR.Append ZORDER_PARTNERS .CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDATA'EXPORTINGORDER_HEADER_IN = ZORDER_HEADER_INIMPORTINGSALESDOCUMENT = ZSALESDOCUMENT* SOLD_TO_PARTY =* SHIP_TO_PARTY =* BILLING_PARTY =RETURN = ZRETURNTABLESORDER_ITEMS_IN = ZORDER_ITEMS_INORDER_PARTNERS = ZORDER_PARTNERS* ORDER_ITEMS_OUT =* ORDER_CFGS_REF =* ORDER_CFGS_INST =* ORDER_CFGS_PART_OF =* ORDER_CFGS_VALUE =* ORDER_CFGS_BLOB =* ORDER_CCARD =.if ZSALESDOCUMENT <> '' .loop at XEKPO .zposolog-ebeln = I_EKKO-EBELN. "PO No.zposolog-ebelp = XEKPO-EBELP. "PO item No.zposolog-vbeln = ZSALESDOCUMENT."SO No.zposolog-posnr = XEKPO-EBELP . "SO Item NO.zposolog-waers = I_EKKO-WAERS . "Currencyzposolog-matnr = XEKPO-MATNR . "Materialzposolog-kwmeng = XEKPO-MENGE. "PO/SO qtyzposolog-netpr = XEKPO-netpr. "PO/SO pricezposolog-bapimsg = 'Creation OK' . "ZRETURN-MESSAGE .zposolog-flag = 'T'. "Failureappend zposolog .insert ZPOSO from zposolog.endloop.else.zposolog-ebeln = I_EKKO-EBELN.* zposolog-bapimsg = ZRETURN-MESSAGE .***为了好SE91查找message合并message type, messge code,和message textconcatenate ZRETURN-TYPE '--' ZRETURN-CODE '--:' ZRETURN-MESSAGE into zposolog-bapimsg .zposolog-flag = 'F'. "Failureappend zposolog .insert ZPOSO from zposolog.endif.***----------------------PO可能会反复调用吗---------------------*** 不管如何做到call一次就退出.*** 建立一表ZFLAG, 可只有一个字段, Zrepcall,default是F,CALL FUNCTION 'BAPI_PO_CREATE'EXPORTINGPO_HEADER = ZPOHEADER* PO_HEADER_ADD_DATA =* HEADER_ADD_DATA_RELEVANT =* PO_ADDRESS =* SKIP_ITEMS_WITH_ERROR = 'X'* ITEM_ADD_DATA_RELEVANT =IMPORTINGPURCHASEORDER = ZPURCHASEORDER "好瞧瞧TABLESPO_ITEMS = ZPOITEMS* PO_ITEM_ADD_DATA =PO_ITEM_SCHEDULES = ZPO_ITEM_SCHEDULES* PO_ITEM_ACCOUNT_ASSIGNMENT =* PO_ITEM_TEXT =* RETURN =* PO_LIMITS =* PO_CONTRACT_LIMITS =* PO_SERVICES =* PO_SRV_ACCASS_VALUES =* PO_SERVICES_TEXT =* PO_BUSINESS_PARTNER =* EXTENSIONIN =* POADDRDELIVERY =.Endif. "结束建立Purchase Order 和Sales Order下面是使用VB Call BAPI_CREATE_PO建立PO的例子的部分,首先使用SE37 测试,基本上建立PO最简单只需要以下参数. 注意vendor必须是10位数,如果长度不足,请加0 tvendor = Mid("0000000000", 1, 10 - Len(Trim(VENDOR.Text))) + Trim(VENDOR.Text) ‘保证如果vendor length<10补充到10位,否则就会出错poheader.Value("VENDOR") = tvendorpoheader.Value("PURCH_ORG") = "1000" 'Trim(Text2.Text)poheader.Value("PUR_GROUP") = "111" ' Trim(Text3.Text)poheader.Value("DOC_TYPE") = "NB" 'Trim(Text4.Text)poitems.Rows.Addpoitems.Value(1, "PUR_MAT") = "C-010" ' Trim(Text5.Text)poitems.Value(1, "PLANT") = "1100" 'Trim(Text6.Text)poitems.Value(1, "NET_PRICE") = "222" ' Trim(Text7.Text)poitemschedule.Rows.Addpoitemschedule.Value(1, "DELIV_DATE") = "2005/08/16" 'Text8.Textpoitemschedule.Value(1, "QUANTITY") = "888" ' Text9.Text3.物料主数据编程使用物料主数据4.供应商列表分析 (No Content)5.收货检测增强 (No Content)物料移动报表6.库存分析报表 (No Content)7.GR/IR报表 (No Content)8.报废流程增强 (No Content)2.SD模块开发实例.1.读取销售文本2.销售订单审批3.4.5.6.7.8.3.PP模块开发实例.1.MD04 save的Prod极其素原的PR2.3.4.5.6.7.8.4.FI模块开发实例.1.编写财务报表2.财务凭证的确定(Validation)在HR,AP,AP,GL,Consolidation,Real Estate,Special Purpose Ledger等多模快都能发现有效性检查(Validation)配置,所谓 Validation 不过是在凭证保存前根据设置条件判断此凭证是否有效,再根据Validation设置的消息类型(关于消息请参考第例消息控制)决定凭证是否允许保存(顺利保存的),对稍微了解ABAP开发基础的用户是很容易理解的.凭证Validation,Substitution和User Exit的使用保证了凭证能成功通过某些企业实际的自订复杂业务检测最后保存在数据库中.***可使用Validation检测在记帐时某些cost center只能对应到具体某Functional Area(如上了Functional Area的话),某些费用类科目只能记到某具体Cost center等.下面以OB28为例,详细说明Validation的用法.(IMG Path如图7-1标号1)[1]定义记帐确认.[2]定义会计凭证退代.建立Validation步骤:下面以Line Validation STLINE只允许用户STONEF在5100(本位币HKD)记帐时本位货币金额不超过1000HKD为例子,详细介绍Validation的配置步骤.***当然使用其他配置也能达到相同效果.1.选择Callup Point建立Validation Name(如图7-2).[1]1.在凭证抬头触发 2.凭证行项目触发 3.整个凭证触发,触发通常发生在用户按Enter键和保存之时.[2]新建Validation时按F2进入详细画面(如图7-3)[3]1表示激活,只有选择激活后Validation才真正起作用.2.Validation建立步骤详解(如图7-3).[1]新建Validation,如在此新建Validation要回到图7-2按New entries然后激活.[2] 新建Step,一个Step包含先决条件,检查和消息. 图7-3 Step001表示的是在Company code 5100(Local Currency HKD)下如果User是STONEF,如记帐本位币超过1000HKD,就弹出错误消息ZFIMSG 017(关于消息剖析请参考第例消息控制).***Validation触发的条件是满足先决条件但是不满足检查条件.[3]Rule可用在Validation,Substitution,Report Write Selection甚至ATP check,简单理解,经常用到的一些判断条件可建立成Rule,将Prerequisite和check建立俩Rule-ZRULE1(图7-4)和ZRULE2(图略.BSEG-DMBTR <= '1000.00'),和图7-2效果一样,不同的是此俩rule还可用在Substitution等中(请看第8例凭证的退代),可重复使用.重复性的好处还表现在你只要修改rule(比如现在STONEF允许最大记帐金额是2000),所有用到此rule的Validation,Substitution全部生效.图7-5使用Rule和图7-3直接使用ABAP code效果一样.***Rule做为一个条件可用在定义其它Rule,比如ZRULE3 包含ZRULE1 and 其他条件.[4]Header Validation只可选BKPF字段和只在凭证头回车或保存凭证触发.[5]Item Validation先决条件可选BKPF和BSEG,但是Check只能选BSEG字段,否则不被触发.***比如先决条件条件是BKPF-BUKRS,Check是BKPF-USNAM,很明显这是无效的Validation. 另一个问题是如有多个行项目满足了条件会弹出多条消息.[6]整个凭证有效,就是在Doc Header,Item回车和保存都触发.[7]先决条件条件(参照[2]).[8]检查(参照[2]).[9]SAP消息使用在多种地方,比如想打印传真PO需要建立一个相应消息,另外消息还用在处理程序例外上,在这里是指后者(更详细请参考第例消息控制).如上图7-6.[1]E表示消息定义为错误类别,此时不可保证凭证,I,W类别只是给出信息和警告,允许凭证保存,如选A,则会退出当前Tcode操作.[2]用户可使用 Tcode:SE91字定义的Message Class(图7-7).[3].在此选择了消息号017使用了俩参数(&),&表示在实际弹出消息时能使用实际值取代&.[4].使用消息变量.图7-8表示用户STONEF在使用FB50手工记帐时,Local currency amount>1000时出现的错误(Validation ZSTLINE生效,消息的俩&参数被BKPF-USNAM和BSEG-DMBTR 代替),出现的错误消息,由于凭证俩行Amount都>1000,此消息将弹出俩次.3.再谈建立Validation操作.(图7-9)[1]删除Prerequisite和Check代码.[2]合并字符字段[3]比如对line Validation,BKFF,BSEG,SYST(如想By Tcode选SYST-TCODE做条件)三对象可使用.[4]选择rule做Prerequisite和Check(参考图7-5).[5]可使用User Exit做Prerequisite和Check.(参考第8例凭证的退代).[6]一些常用逻辑表达式.[7]通常使用的是Constant(常量).3.财务凭证的退代(Substitution)和Validation一样,凭证的退代在多个模块中能找到,IMG Path(IMG Path如图7-1标号2).假设用户希望在产生APAR凭证能将vendor,customer 或其它信息比如写入Assignment(BSEG-ZUONR)字段,或者希望某些P&L科目在记入某些特定成本中心时将些分析信息写入TEXT(BSEG-SGTXT)字段,可使用退代.下面举一个最简单实例假设在公司代码5100中,如使用现金类科目10010120记帐,在Text(BSEG-SGTXT)写入信息,同时在期初,可能会将一些凭证post到上期间,使用退代假设是post到上期间的凭证Posting Date换成上期间最后一天.此简单实例是为了说明问题,其中有些步骤和第7例Validation相同,就不再一一讲解,希望读者在实际业务中能举一反三,发挥退代作用.1.自定义的退代程序.相关Tcode:GCX2. (图9-2)[1]App. Area 选择GBLS[2]输入自定义程序名ZSTSUB(Copy并取代SAP默认的标准程序RGGBS000)***自定义的程序名称最好不超过8位,在OBBH似乎只能显示程序名的前8位.相关表格函数和程序.***使用GCX2退换标准的RGGBS000这样就无需申请Access Key,另外一个GCX1是跨Client 端的,一般用于特殊总帐SPL中给Field movement定义用户出口.2.建立退代步骤同Validation一样,也需为其建立Step,一个Step包括先决条件和退代(如图9-3).[1]凭证头退代,在凭证抬头回车回保存凭证时满足条件时生效.[2]凭证行项目退代.[3]增加删除一个退代***在本例中,使用only exit U100(对应ZSTSUB子程序U100)修改line item的Text.[4]使用用户出口做退代. (关于怎么选Form规则请看本例思考).[5]字段级退代.假设ZSTSUB Form U100的source code如下,那么在满足先决条件时,行项目的Text都写成了Record Payment Text.读者可思考下面几个问题:思考:1如果先决条件没有输入任何值,是否退代会无条件执行?2在ZSTSUB(本人自定义),用户可参考SAP标准程序RGGBS000, RGGBS000的Form会以什么规则在不同级别的(header,Line,Complete doc)退代中做Exit ,用户能否自定义自己的field exit,header exit,line exit 和complete exit?请看此FORM get_exit_titles TABLES etab,有类似语句.这些由参数c_exit_param_none, c_exit_param_field和c_exit_param_class决定exits-name = 'U100'.exits-param = c_exit_param_none. “能用在Field exit,only exit等任何地方exits-title = text-100.APPEND exits.exits-name = 'U101'.exits-param = c_exit_param_field.”此Form只用于字段exitexits-title = text-101.APPEND exits.exits-name = 'U801'.exits-param = c_exit_param_class.”Form U801只能在Callup point 3 complete doc才可使用.exits-title = text-101. "Cost center from CSKS下面再以举一实例,彻底剖析退代的运行规则同时解释上面3,4提出的问题.首先在FI_SUBSTITUTION_HEADER|FI_SUBSTITUTION_ITEM|ZSTSUB(自定义)| GBTDMFI0| GBTDMFIJ设置断点你能进行跟踪. 从技术上讲,在回车或保存触发退代前在屏幕上输入的一些值就已经保存在一些内表中,然后才执行退代去根据用户设置的条件去退换一些值而已.实例:通常企业在期初未关帐前可能需要在上期间记帐.如用户需要假设posting date是上期间某个日期,自动将此日期退换成上期间最后一天.使用抬头退代.1确定当新增退代时BKPF-BUDAT是否可见如在此看不到,即使你写了代码也是无效的.如图9-6.[1]使用only exit U100,也可使用field exit . [2]BKPF-BUDAT可见.***使用下面参考代码将BCLTAB和BCLFIELD稍微更改就可将BKPF,BSEG任何字段用于退代编码.2检查退代代码自动生成.退代代码是自动生产的,这样的自动生成程序的实际应用很多,比如在CO-PA中,相关表,结构和程序很多是自动生成的,关于程序自动生产请参考拙作ABAP百谈.记得在OBBH画面当新建一退代时,有如图9-7的画面.[1]退代名 [2]退代class,这个将对应到自动生成程序GBTDMFIJ.在GBTDMFIG中读者能看到四个子程序FORM EXP_TAB_008_BKPF(class 8,callpnt1),FORM EXP_TAB_009_BSEG(class 9,callpnt2), FORM EXP_TAB_015_BKPF和FORM EXP_TAB_015_BSEG(Class 15,Callpnt 3).现在以FORM EXP_TAB_008_BKPF为例.如果读者不能在此子程序的一个结构TEMP_STRUCT发现想退代的字段(原因就不细解),很明显,必须重新生成退代程序.***如果您的退代不工作可以这样找原因,在GBTDMFIG程序中的上面提到的四个Form的TEMP_STRUCT结构没有看是否有相应的字段.比如在TEMP_STRUCT结构中没有BKPF-BUDAT,当然posting date的退代代码就会不起作用,此时执行下面步骤3运行RGUGBR00吧.原因很简单,在退代程序中定义的BKPF,BSEG相当于内表,退代代码按用户的逻辑修改了BKPF后如TEMP_STRUCT(实际对应的是可用做退代的全不字段)中没有,BKPF就被Reset回. 3重新生成程序.SE38运行RGUGBR00, 将能选的全选上的选项再运行吧(图略).4.编写代码下面是参考程序,判断Posting Date如在上期间(非上月,以月为期间只是期间的一特例,国外企业似乎都不这样采用,关于期间请参考第4刀SAP期间概念)自动将其退换成上期最后一天(对其他期间无效,读者可能需要修改才可满足贵企业需求).L_CURYEAR(4) TYPE C,L_CURMONTH(2) TYPE C,L_CURDAY(2) TYPE C.L_DATE = SY-DATUM.L_CURYEAR = L_DATE(4).L_CURMONTH = L_DATE+4(2).L_CURDAY = L_DATE+6(2).L_CURMONTH = L_CURMONTH - 0. L_PERMONTH = L_CURMONTH - 1.L_DATE = BKPF-BUDAT.L_YEAR = L_DATE(4).L_MONTH = L_DATE+4(2).L_DAY = L_DATE+6(2).L_MONTH = L_MONTH - 0.IF L_CURYEAR NE L_YEAR.BKPF-BUDAT = L_DATE.EXIT.ENDIF.IF L_MONTH NE L_CURMONTHAND L_MONTH NE L_PERMONTH.BKPF-BUDAT = L_DATE.EXIT.ENDIF.SELECT BUMON BUTAGINTO T_T009BFROM T009BWHERE PERIV EQ 'Z1'AND BDATJ EQ L_YEAR " yearAND ( BUMON EQ L_CURMONTH "MonthOR BUMON EQ L_PERMONTH ).IF T_T009B-BUMON EQ L_PERMONTH.APPEND T_T009B.ENDIF.IF T_T009B-BUMON EQ L_CURMONTHAND T_T009B-BUTAG LE L_CURDAY.APPEND T_T009B.ENDIF.ENDSELECT.SORT T_T009B.LOOP AT T_T009B.IF T_T009B-BUMON EQ L_MONTH.IF T_T009B-BUTAG GE L_DAY.CONCATENATE L_YEAR T_T009B-BUMON T_T009B-BUTAG INTO L_DATE. EXIT.ENDIF.ENDIF.IF T_T009B-BUMON GT L_MONTH.IF T_T009B-BUTAG GE L_DAY.EXIT.ENDIF.ENDIF.ENDLOOP.BKPF-BUDAT = L_DATE.ENDFORM. "U100使用函数的.FORM u100. "#EC CALLED *同一个Form可用做header和line 退代而互不影响.BSEG-SGTXT = 'Line Item Text'. "For Line Sub.DATA:Z_PSTDATE TYPE SY-DATUM,Z_CURPER LIKE T009B-POPER,Z_CURYEAR LIKE T009B-BDATJ,Z_PSTPER LIKE T009B-POPER,Z_PSTYEAR LIKE T009B-BDATJ,Z_PERLSTDAY LIKE SY-DATUM.*实际永远不会发生记帐到上年和上上期间的.*check posting date's period and fiscal yearCALL FUNCTION 'DETERMINE_PERIOD'EXPORTINGDATE = BKPF-BUDATVERSION = 'Z1' "Fiscal Year Var.IMPORTINGPERIOD = Z_PSTPERYEAR = Z_PSTYEAR .*check sysdate's period and fiscal yearCALL FUNCTION 'DETERMINE_PERIOD'EXPORTINGDATE = SY-DATUMVERSION = 'Z1' "Fiscal Year Var.IMPORTINGPERIOD = Z_CURPERYEAR = Z_CURYEAR.*能否在输入的posting date记帐让系统去判断.CHECK Z_CURYEAR <> Z_PSTYEAR OR Z_PSTPER <> Z_CURPER.*如posting date不在本期间得到其期间最后一##Z_PSTPER = Z_PSTPER + 1 .CALL FUNCTION 'FIRST_DAY_IN_PERIOD_GET'EXPORTINGI_GJAHR = Z_PSTYEARI_PERIV = 'Z1'I_POPER = Z_PSTPERIMPORTINGE_DATE = Z_PERLSTDAY .BKPF-BUDAT = Z_PERLSTDAY - 1 .BKPF-MONAT = Z_PSTPER . "如果Edit options允许看到期间的话也要改.5.预制凭证可使用退代吗?这个问题就好比去问一个人是否有双眉毛一样?答案是一般天生是没有,如去整容院整就能有. SAP标准程序是不允许预制凭证有退代的,其实也没必要,因为预制凭证本来就不是正式凭证,比如posting date就算现在根据某种规则退代了,等真正posting时还不是要根据正常凭证的规则去post ,这不多此一举.如果真需为预制设置退代,也很容易.请看下面分解.(1)使用/H启动debug,按F6直到执行到SAPMF05A screen Number 1001,在module document_merge设置断点,这个module是判断是否有退代的入口.(2)parked doc g_status =2 .如下图加入代码,则退代对FV50预制凭证生效.FI_VALIDATION_DOCFI_VALIDATION_HEADERFI_VALIDATION_ITEM6.物料凭证可使用退代和确定吗?如果Mat doc产生的同时产生了财务凭证当然可以使用.4.BKPF|BSEG浅析5.Dunning催款6.支票打印7.8.5.CO模块开发实例 (No Content).1.2.8.6.Basis相关开发实例1.删除传输请求关于传输请求在第二章13节已经有详细说明,下面是一个关于如何删除被锁的传输请求的程序,读者可根据实际情况补充.通常对锁住的表对象可采用SM12解锁,对传输请求可按下面程序处理.data :itab_e070 like e070 occurs 0 with header line,* Request header including Req user.iwa_e070c like e070c, "Request clientitab_e071 like e071 occurs 0 with header line ,*Request entry line items may include multiple linesiwa_e07t like e07t , "Requst short text(desc)iwa_E070A like E070A ,*If the Request was locked and delelted,Delete Tlock otherwise *The program will be locked to make any modifications.itab_tlock like tlock occurs 0 with header line . parameter reqno like e070-trkorr default '' .select * into table itab_e070 from e070where trkorr eq reqno or strkorr eq reqno.if SY-SUBRC Ne 0 .write : 'The Request No.:' , Reqno , ' not exist !' .* exit .endif .select single * into iwa_e070c from e070cwhere trkorr eq reqno .select * into table itab_e071 from e071where trkorr eq reqno .select single * into iwa_e07t from e07twhere trkorr eq reqno .select single * into iwa_E070A from e070Awhere trkorr eq reqno .if itab_e070 IS INITIAL .select * into table itab_tlock from tlock如果开发的程序被包含在$TMP package中,现在想传输到QAS或PRD,需要改换package,一个简单的方法就是将记录从资源库对象目录TADIR表中将记录删除(程序如下),接下来改变保存激活程序就会重新弹出Create Object Directory Entry的窗口.2.检测用户授权列表3.致命SAP权限控制漏洞尽管SAP系统提供了非常完善的权限控制机制,甚至允许细到字段级和允许用户自定义授权对象,然后SAP权限控制漏洞也是致命的,随便一个小程序就可轻易获取权限作为职业程序员,对取得权限大多会有一定兴趣(这点催生了一批无聊的所谓Hacker).读者可自行理解下面几个概,在此不再细述.[1].Activity(group)[2].Authorization Object[3].Profile[4].Role实际上决定权限的是Authorization Object , 看USR_USER_AUTH_FOR_OBJ_GET和AUTHORIZATION_DATA_READ_SELOBJ函数就知道了.(二)建立用户SU0SU01SU01DSU01_NAVSU05SU1SU10 批量SU12 批量SUCOMP:维护用户公司地址SU2 change用户参数SUIM 用户信息系统,可by 多个查询.(三)建立用户组SUGR:维护SUGRD:显示SUGRD_NAV:还是维护SUGR_NAV:还是显示(四)维护检查授权SU20|SU21:如有特殊需要定义自己的authorization fieldsSU50|SU51|SU52SU53:当有权限问题可使用它检测SU56:分析authoraztion data buffers.SU87:用来检查用户改变产生的historySU96,SU97,SU98,SU99:常用权限相关表格:TOBJ : All avaiable authorzation objects.(SAP default objects全在此) USR12: 用户级authoraztion值USR02:密码tableUSR04:AuthorizationUSR03:User address dataUSR05:User Master Parameter IDUSR06:Additional Data per UserUSR07:Object/values of last authorization check that failed USR08:Table for user menu entriesUSR09:Entries for user menus (work areas)USR10:User master authorization profilesUSR11:User Master Texts for Profiles (USR10)USR12:User master authorization valuesUSR13:Short Texts for AuthorizationsUSR14:Surchargeable Language Versions per UserUSR15:External User NameUSR16:Values for Variables for User AuthorizationsUSR20:Date of last user master reorganizationUSR21:Assign user name address keyUSR22:Logon data without kernel accessUSR30:Additional Information for User MenuUSR40:Table for illegal passwordsUSR41:当前用户(SM04看到的所有当前活动用户)USRBF2:记录当前用户所有的授权objectsUST04:User Profile masterUST10C: Composite profilesUST10S: Single profilesUST12 : Authorizations如何获取权限呢?下面举几个实际例子上面的方法不妥的是如修改了SAP*密码,basis很快就会知道,为什么不尝试建立一个临时用户呢?下面介绍一个如何通过程序随意建立用户并赋予所有权限的例子,此例的特点在于直接在用户授权对象表USRBF2中加入授权对象,使用SU01看不到任何迹象,隐蔽性较强.4.再谈开发权限漏洞从理论上讲,只要有Debut(/H)的权限就应该有机会获取所有权限,有些系统在生产机上ABAPer居然有SE38,SE71等权限,显然这提供了一个很好的机会获取权限.下面列举的实例是在不使用程序只修改运行变量的情况下或取权限(basis甚至无从追查).通常在QAS和PRD server, Basis会使用Tcode SCC4设置不允许更改配置(如下图No changes allowed表示不允许配置)和不允许程序开发(3 No changes to Repository and cross-client Customizing objs).这些配置保存在表T000中.下面是基于用户有SE38权限后并假设如上图已经限制了不允许开发如何绕过此限制获得开发权限的例子.为此找到程序LSTRDU34(SE37:TRINT_CORR_CHECK)和LSTRDU44(SE37:TRINT_CORR_INSERT)设置断点更改返回值饶过相关判断就可直接在QAS和PRD server上开发.如图3.6.4-1中设置断点,当程序运行到此,只要将LV_SUBRC设置0即可.同样,如图3.6.4-2,设置断点将SY-SUBRC改成0就可.假设ABAPer在PRD有SE38权限,在创建程序时会提示不能改变资源库和配置,可按display(如图3.6.4-3)然后按图3.6.4-1和图3.6.4-2的方法在每次运行到程序LSTRDU34和LSTRDU44时修改LV_SUBRC和SY-SUBRC值为0程序就能被创建并被激活(注意你可能需要多次修改,出现提示对话框按Display就可).我所说只要有/H调试权限和SE38(或SE37)就可获得全部权限也是基于这样的思路,打开/H,然后执行SE38设置断点修改内存变量(如过你愿意慢慢单步执行到LSUSEU11,下面的动作都可节省下来,直接使用/H就可满足要求)如图3.6.4-4,假设在PRD环境中你有SE38权限,你没有SCC4修改Client属性的权限,在LSUSEU11如图设置断点,然后将sy-subrc改成0,于是你就拥有了SCC4的权限,这种方法就是你并不需要使用程序只要修改变量就可获得Tcode权限.如图3.6.4-4-1,想获取修改用户权限在LSUU0U02When ‘CHANGE’时修改rc = 0即可(SE37: SUSR_USER_MAINT_WITH_DIALOG).如果想获取新建用户权限,在LSUU0U02找到when 'CREA'.将rc值改成0就可.然后在找到保存时的include程序(读者自行去找),既然能建立user了,授权给SAP_ALL当然就获得了所有权限.可以任意修改scrip form吗,当然可以,如果想建立更改Scrip Form(SE71)可在LSTRDU39或TR_OBJECT_CHECK(SE37)设置断点.如图3.6.4-5.开发项目流程简介 (No Content).附录:ABAPer 常用Tcode注意下面两点:1使用Tcode S001后显示SAP easy access ABAP workbench能看到下面所有Tcode2使用Tcode不当SE43看到的Area Menu实际上大都是可直接运行的Tcode(但是不支持/n Area menu,/O Area menu等),运行这些Tcode看到的是相关Application area 下所有的可用Tcode层次树,比如ASMN看到的是和AM相关Tcode树,AUTH则是和授权相关Tcode树.编写用户增强用户增强通常包括下面3类,顾名思义,就是增强SAP的可能没有提供的功能(通过后台配置也不能实现).1.E Enhancement exits :就是常说User_exit (用户出口)使用SE37搜索EXIT*的函数大都是做exit用的,通常里面预包含了一个Z开头的程序. SE16查询TFDIR(函数表)输入EXIT*也可.2.C GUI codes( GUI接口增强)3. S Subscreens (屏幕增强)Enhancement在表MODSAP可看到,而TFDIR字段MAND(值为C表示此出口函数被激活).使用SMOD(CMOD)当然可激活exit function,有时候一时难以查询到相关Enhancement时可使用下面程序将出口函数激活.REPORT Zactexitfun .data ztfdir like tfdir .* select single * from tfdir into ztfdir* where FUNCNAME =* 'EXIT_SAPMM06E_013'.* ztfdir-MAND = 'C' .* update tfdir from ztfdir.* 将EXIT_SAPMM06E_013换成实际所需exit函数名update tfdir set MAND = 'C'.where FUNcname = 'EXIT_SAPMM06E_013'.***当然也可SE16:MODSAP表enhancement输入EXIT_SAPMM06E_013然后得到enhancement name MM06E005后使用SMOD测试激活exit函数.增强相关函数和表格Function:[1].DYNP_V ALUES_READ[2]. MODX_ALL_ACTIVE_MENUENTRIES(菜单增强)[3].MODX_FUNCTION_ACTIVE_CHECK(出口函数增强)由于读者可能接触user exit最多,除了附录光盘有个查找ZFINDEXIT的程序外(有些exit 使用它并不能找到),另一个直接有效的方法就是使用这个函数,SE37设好断点后执行tcode 如其有exit就会调用此函数.如图2-11-1是运行MIGO时的一个截图,表示相关exit被激活.[4].MODX_MENUENTRY_ACTIVE_CHECK(菜单增强)[5].MODX_SUBSCREEN_ACTIVE_CHECK(屏幕增强)Table:[1]. TFDIR->function module table[2]. MODSAP->sap enhancement table[3]. TSDIR->Dynpro Areas CALL CUSTOMER SUBSCREEN(屏幕增强)[4]. CUATEXTS-> GUI Interface: Menu Texts Changed(GUI 菜单文本增强)***注意,为了确保一个出口被真正应用,必须同时激活相关程序(SE38)和出口函数(SMOD|CMOD,反正就是要保证tfdir-mandt=’C’,用程序也可.)关于增强中的user exit,在实战篇中会有更多详细的例子.找屏幕增强有很多方法,读者可从SE16:TSDIR中找寻,或者CMOD菜但utilities(M)->SAP Enhancements搜寻出所有的exit name,然后在搜寻结构中再输入’screen’ 关键字(通常在short text描述)一般能找到一些SAP预留的屏幕增强.下面以建立PO举个实例介绍什么是屏幕增强.如图2-11-2,很简单,SE38输入SAPMM06E.SAPMM06E可看成专为PO增强的一个module pool,可以增强的subscreen no一般还有0101,0111,0201,0211,0301,0311(增强的子屏作用读者可从描述中就知).SAPLXM06实际上包含四个include,INCLUDE LXM06TOP(Global Data在此为增强定义global data), INCLUDE LXM06UXX.(Function Modules实际上包含所有可用的user exit),INCLUDE LXM06F00. (SAP-Formpool for Customer-Use可在此建立Form pool),INCLUDE ZXM06ZZZ. (Subprograms and Modules,在此建立增强子屏)在include程序ZXM06ZZZ中加入如下代码.*&---------------------------------------------------------- *& Include ZXM06ZZZ **&---------------------------------------------------------- module modpohead.call screen 0101. "PO header增强子屏endmodule.module modpoitem.call screen 0111. "PO item增强子屏endmodule.注意上面的screen 0101和0111在attribute screen type必须选subscreen.再ME22N(ME23N)进去后能发现在PO header和line item都多出了一customer data tab页,不妨这样设想,假设用户希望在操作PO时写些额外的东西进自定义的表格,而且这些数据通过一般的user exit还做不到,因为这些字段在PO相关数据表中不存在,必须有用户在屏幕上输入(否则没必要使用增强屏幕直接使用合适的user exit将数据写到自定义表就可),就得使用增强屏幕. 屏幕上文本框和table control都可用,想输入怎样的额外数据到自定义表都行.如图2-11-3,读者可看到header和item都多出一Customer data的增强屏幕.1有时实际需求会需要更改屏幕上某些字段的显示,比如用户希望物料主数据basic data 2视图other data 下的Prod./Insp. Memo(子段显示)保存其它信息,同时为了避免不必要的误会需要更改此字段显示,严格地讲,这并非屏幕增强.这是屏幕”强改”(强行更改).2.所谓屏幕增强就是多出个子屏幕来,在此你可显示一些数据或插入一些数据(到自定义表格中),global data(可理解为定义的全局变量内表什么的)对ME21N是SAPLMEGUI(main程序)->SAPLMEGUI(Global data include),就是PO的增强屏幕不能使用SAPLMEGUI中定义的东西.3.另一种enhancement技术BADI(Business Add-Ins, 字面翻译业务附加->应用程序接口)正被使用,详情请看本章第19节使用BADI.操作最简单的欺骗Access Key的文档如果LSKEYF00被禁止更改了如何饶Access key.(1)SE38 :输入LSKEYF00按display(2)/n 或者/O开新窗口,SE38再输入LSKEYF00这次按change按钮.SAP46C好象没有这个,如果出现LSKEYF00被SAP禁止修改,SAP就加这点小东西限制一下根本没用.。
SAP笔记
SAP笔记问题:1、销售计划协议中的“工程改变状态”什么作用,如何设置?2、MRP视图中的JIT交货计划如设置了“1”,涉及哪些方面?会影响销售计划协议中JIT交货计划和预测交货计划更新吗?3、安全库存天数可以储存在物料主数据的某个字段中吗?系统自动根据安全库存天数,及系统的需求,测算安全库存天数。
4、下采购订单时出现报警:订单数量不遵守近似规则,不知道什么原因?学习笔记:1、COOIS,生产订单查询目标数:生产订单数量确认数量:报工数交货数量:入库数2、系统后台表查询SE16N/SE16:EKET:查看采购计划协议交付行EKKO/EKPO:采购凭证清单MARA/MARC:物料清单ZMM_STOCK_AGE:期初库龄AFRU:查询报工错误MSEG:物料凭证清单MKPF:查询用事物代码操作产生的物料凭证VBAK/VBAP/VBEP:销售订单/销售计划协议(交货计划)查询BKPF:会计凭证查询CDHDR/CDPOS:销售订单/销售计划协议/采购订单/采购计划协议/物料/信息记录/交货单等删除记录LIPS/LIKP:查看外向交货单详情MARD/MSKU/MKOL:查询工厂库存/客户寄售库存/供应商寄售库存MARC:查看工厂转储在途库存S067:查看未清发货和发票凭证MBEWH:查询历史标准成本3、MBST是按原来的出库价格退回,而反向冲销是按现在库存的价格退回,存在价格差异;4、VL09冲销发货;FB08:冲销会计凭证;MR8M:发票检验凭证冲销;VF11:销售开票冲销5、发货相关移动类型说明:601/602:工厂发货到标准客户处(海外客户)631/632:工厂/中转库发货到客户寄售633/634:销售开票,扣减客户寄售库存653/654:销售退货6、MC.9查询价格:取会计视图1中的标准价格库存数据:包括客户寄售、工厂库存、中转库和外协供应商处库存,不包括供应商寄售7、角色权限USR21系统用户名表ADRP系统用户名-用户名称表ADCP系统用户-所属部门表AGR_DEFINE系统角色定义表AGR_USERS角色-用户表AGR_TCODES角色都有哪些TCODE表TSTC系统所有TCODE表8、物料凭证日期&外向交货单日期说明:过账日期:为实际发货日期输入日期:做操作的日期凭证日期:11、预制发票中文本字段的处理(MESG),预制发票号存储在后台表MESG中的文本字段12、如果知道被删除的销售订单号,可以用VA03,随便进入任何一张销售订单,在菜单:环境--更改里面输入被删除的订单号,可以知道是谁删的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SAP学习笔记矫正性维护概念和系统操作设备维修申请维护计划组(maintenance planner group)维护计划组是负责在一个特定的维护计划工厂中进行计划和处理维护任务的一组员工。
每一个设备和功能位置可以分配一个维护计划组。
它也可用于评估。
维护计划工厂(maintenance planning plant)维护计划工厂是一个逻辑上的定义。
它为其所属的维护工厂进行维护工作清单的定义,维护计划的执行、管理和规划以及负责对维护通知的建立和维护订单的处理。
通常根据业务的需要,有三种维护策略:1.集中式维护管理,即所有的维护计划和任务由一个维护计划工厂来安排2.分散式维护管理,即维护计划工厂只对本身的维护工厂负责,安排工作3.混合型维护管理,即是以上两种的组合。
维护工厂(maintenance plant)维护工厂也是一个逻辑上的定义。
在维护工厂中,可以管理各技术对象和工作中心,也就是说,技术对象的维护工厂即是该技术对象所安装的工厂;而且,在维护工厂中,可以管理那些为安装在该工厂的技术对象所执行维护任务的工作中心。
工作中心(work center)工作中心是定义在维护工厂下的一个或一组人/机器。
它是维护任务的执行者,负责维护订单的执行。
并可用于能力、计划和成本核算。
主工作中心(the main work center)主工作中心通常是一个或一组人/机器。
它负责确认在一个订单中的维护工作被执行某些工序的工作中心所执行(确认、监督)。
在生产中,作为生产机器的工作中心(the work center as production machine)表示为一个机器,所以,工作中心可以生产产品。
在系统中,执行工作中心(the performing work center)和作为生产机器的工作中心统一简称为“工作中心”。
加速方法论(AcceleratedSAP )在SAP实施过程中,遵循加速方法论(AcceleratedSAP,ASAP)会达到事半功倍的效果。
ASAP是SAP公司为使R/3项目的实施更简单、更有效的一套完整的快速实施方法。
ASAP优化了在实施过程中对时间、质量和资源的有效使用等方面的控制,是一个涵盖了使项目实施得以成功所有基本要素的完整的实施方法,主要包括:ASAP路线图、SAP工具包、SAP技术支持和服务、SAP培训和SAP参考模型。
ASAP提供了面向过程的,清晰和简明的项目计划,在实施R/3的整个过程中提供一步一步的指导。
其中路线图共有五步,包括项目准备、业务蓝图、实现过程、最后准备、上线与技术支持。
通过业务流程、组织架构重组,SAP R/3把BPR与ERP有机结合起来。
一方面要满足客户需求个性化,另一方面也实现了模块化。
当然,企业的管理模式与业务架构转变比较大的企业,在实施SAP时难度较大。
SAP的惯用经验是:一方面加强沟通、交流;另一方面采用循序渐进的优化过程。
一开始并不下“猛药”,而是坚持持续优化。
随着环境与人的观念变化而循序渐进,是一种螺旋式的上升优化过程。
在这个实施过程中,人起到了至关重要的作用,尤其是“关键用户(key-user)”。
下面将按照ASAP路线图的五大步骤总结一下关键用户在其中应该起的作用。
项目前期准备阶段这一阶段关键用户主要是参与SAP模块化的培训,从理解相关模块的基本概念到后台参数配置,前台应用主要是要熟悉SAP系统相关模块的功能,同时参与项目小组前期筹备会议,了解项目的组织结构及项目组成员的职能。
关键用户的主要工作是:参与模块化培训。
业务蓝图设计阶段这一阶段关键用户的作用在于:(1)协助顾问方进行本公司现状业务流程的调研;(2)按照模板整理现状业务流程文件;(3)参与将来组织结构讨论;(4)参与制定将来流程设计;(5)按模板编写将来流程文档;(6)进行差异分析;(7)收集目前使用单据以及报表;(8)将来报表需求分析;(9)静态数据收集;(10)收集权限需求。
这一阶段关键用户的主要工作是:(1)编写本公司现状流程文档;(2)参与将来流程讨论并做好会议纪要;(3)编写将来流程文档;(4)编写开发申请文档;(5)编写权限配置文档;(6)蓝图汇报。
系统实现阶段这一阶段关键用户的作用在于:(1).参与系统配置;(2).单元测试环境搭建;(3).参与单元测试;(4).集成测试环境搭建;(5).参与集成测试;(6).静态数据检查;(7).参与权限配置并检查权限控制;(8).报表开发以及测试;(9).动态数据收集。
这一阶段关键用户的主要工作是:(1).编写配置文档;(2).编写单元测试文档;(3).编写集成测试文档;(4).按模板整理静态主数据;(5).按模板收集动态主数据。
项目最终准备阶段这一阶段关键用户的作用在于:(1).最终用户培训;(2).静态数据录入;(3).库存盘点;(4).动态数据录入;(5).生产系统准备。
这一阶段关键用户的主要工作是:(1).编写最终用户操作手册;(2).开发系统和生产系统对比。
上线以及上线后支持这一阶段关键用户的作用在于:(1).现场故障排除;(2).日常系统维护;(3).后继系统优化。
这一阶段关键用户的主要工作是:(1).编写系统日常维护手册;(2).后续内部项目实施。
业务范围(business area)一个企业中的组织单元,它尽可能的将同类的产品和市场联合分组,从而达到开发统一的营业方针(business policy)的目的。
维护单处理维修单的处理是公司非常重要的一种业务模式。
包含一般维护单处理流程、紧急维护处理流程。
一般维护单处理流程一般维护单处理流程模拟/反映了公司中一个典型的消缺流程的全过程。
例如,当现场工作人员或巡检人员发现10千伏开关柜出现的故障后,使用缺陷故障维护通知单来报告缺陷设备的详细故障信息,并通过创建维护工单对缺陷设备进行维护处理,经过审批和预算检查后对维修工单进行相应的调度和计划,并在执行工单的过程中记录相关的实际备件领用、人工费用和外包的维修服务费用;维护结束后对工单进行关闭处理和后继的费用结算。
工厂消缺业务处理中主要包括两个部分:缺陷故障维护通知单和缺陷故障维护工单。
缺陷故障维护通知单的主要作用是对缺陷故障的上报以及维护处理后的归类及分析统计;维护工单的主要功能是计划和调度维护过程,记录维护过程,并对维护过程中产生的费用进行归集并结算。
采购组织采购组织代表了负责一个或多个单位物料及服务采购的组织部门,并与供应商进行采购业务洽谈等相关工作,每个采购组织中均可以具有相对独立的采购基础数据和业务流程控制方法。
采购组采购部门可分为若干个采购组(采购员的分组),分别负责不同领域或不同部门的采购。
每个采购组织可以包括一个或多个采购组,进行日常具体业务操作。
设备维护委外服务采购可在同一个采购组织下按照分公司为单位的原则,分别设立采购组。
出于系统权限和人员流动等因素的考虑,在系统中,一般不依照采购人员设置采购组。
采购组主要用于委外服务采购的权限、审批以及采购业务的统计,由于采购组代码为整个集团层面共享的组织单元,因此采购组的设定需要更多的分析,建议根据采购组织、采购订单类型、业务部门的需求等各方面情况综合分析确定采购组。
创建和修改工单定义成本工序、组件计划完成后,就可以计算该工单的计划成本,这就是定义成本。
内部维修不发生人工成本,所以工单的成本只有材料费。
若项目由内部维修改为外委维修,或由外委维修改为内部维修,则需修改工作中心和控制码。
工单取消不执行工单只有在下达前才能执行取消不执行操作。
工序及组件检修作业的内容,就是工序计划。
系统提供三种方式计划工序,它们是手工计划、通过设备任务清单、通过一般任务清单。
外委服务采购工单下达后应及时根据采购申请创建外委服务的采购订单,否则,工单一旦技术性完成,采购申请就自动设定为删除状态,不能再创建外委服务的采购订单,除非取消工单的技术性完成。
委外服务的三种处理方式个别的采购订单(individual purchase order)―――零星的需求外部公司工作中心(external firm work center)―――有规则的需求服务项目(service item)―――采购服务库存物料计划流程组件分配――物料预留――订单释放――打印――发货在组件分配时进行可用性检查,在订单释放时自动进行可用性检查。
可用性检查包括物料、PRT,产能。
非库存物料计划流程组件分配――采购申请――采购订单――订单释放――收货――收到发票Single cycle plan and Strategy planYou use single cycle plans to show simple maintenance cycles.A single cycle plan is the simplest form of maintenance plan. You create a single cycle plan and define exactly one time-based or performance-based maintenance cycle, in which you specify the interval at which the maintenance plan should be executed.You use strategy plans to show complex maintenance cycles.You create a strategy plan and assign a maintenance strategy in which you have defined the maintenance cycles (in the strategy maintenance packages). A maintenance strategy contains general scheduling information, and can therefore be assigned to as many maintenance plans and maintenance task lists as required.Single cycle plans or strategy plans are maintenance plans with which you can show time-based or performance-based maintenance cycles.维护策略由多个维护包组成,代表了预防性维护的计划规则,可以将任务清单分配给维护策略。
维护任务包定义了特定工序被执行的频率,是维护策略的一部分,我们可以为任务清单里的工序分配任务包。