lo150笔记
SAP 50
技术部分,SAP主要运作方式,底层结构;
APO: 高级计划优化,MRP RUN规划到APO模块中。
以自己公司为中心,把上游,下游挂在公司。供应商为上游,分销商为下游。
MYSAP以市场为中心,公司挂上虚拟的全球市场里面。
MYSAP.COM是产品,是原来R/3基础上,加上了一个internet的壳子。
和平时的R/3,增加了一下不同的组件。
BW:SEM,APO
BBP:B TO B 网上交易
Plug-INS:叉件,为了数据仓库,或者数据库来进行数据交流。
Add-on:行业解决方案,改变了一些SAP标准的模块。
Basis可看成硬件抽象层,中间件。
User interface用户接口,首先递交给屏幕处理器SCREEN PROCESSOR,或者后台调用程序
(se38)。
SAP和外部系统联系,communication interface通过EDI,X25。
程序的接口:program interface
SAP结构:
R/3:release版本3,三层的client server结构。
终端服务器的方式,网络终端机,网络服务器的方式。
Client server: Client把服务请求传给服务器,文件并不拷贝到PC。在服务器一端,由服务器控
制进程到服务器查找文件,把结果传给到终端的计算机。
以前主要是在本机处理,需要本机的配置比较强大,但是client server对于本机来讲,只是发出
一个命令,对于服务器的要求就比较高。在R/2的时候,甚至可以用笨终端。所有的负载都是压在
server端。
BS方式:Brower server,不需要装客户端的软件,只需要装IE就好了,IE只是把屏幕的东西传给
服务器,IE只是一个图形界面。
好处:不需要装特殊的软件
潜在的问题是传输的数据量比较大。也就是要求的带宽比较大。
三层client server:
传统为终端PC服务器,发到数据服务器,数据库把结果反馈上来。
现在中间加了一层,变为三层的结构。
Database面对的请求比较少,对应用可以收集需求,可以批量的提交给database,提高效率。
应用可以分担database的工作。
很重要的是,应用作为数据库服务器的一个缓冲。特别是屏幕的,是固定格式,可以在应用服务
器完成。最低的要求是一个数据库服务器,一个应用服务器。或者多台应用服务器。好处在于一
台服务器坏掉,但是其他几台还可以继续运行。多台应用服务器还可以互为备份。这种方式更加
的灵活。
从技术上,数据库和CI装在同一台服务器上,再装一个SAPgui。也可以把数据库和应用装在一台
机器上,gui装在另外一台机器上。最彻底的是,数据库服务器装在一台,应用装在另外一台上。
对于用户来讲,可以登陆到任意一台应用服务器上,或者可以限制登陆到某一台应用服务器上。
四层结构,把应用层细化,装一个ITS server,它充当一个翻译的过程。
系统的快慢直接是受内存大小和磁盘阵列的影响。
打印的spool的东西打印完以后,可以定义后台作业可以去删掉。
ABAP的dump,ST22,SM21中的东西。
Logging on to the System
登陆的首页:SAP版权可以置换成自己想要的东西。
Note:205487
SAP可以控制或允许同一个用户多次的登陆。或者要求用户只可以登陆一个。
可以控制到用户并行开多少个session,从2-6。
Sm31,表T000,就可以看到有多少个client。
Client000也算是一个模板,001,066是系统标准的。001从000拷贝出来,做备份的。
066是一个early watch。如果系统慢,或者系统有问题,像定期的健康检查。是把数据下载到
SAP,SAP放到服务器,由服务器来检查,有问题的话,会检查的很仔细的。只要付了维护费,
early watch都是免费做的。
有个参数可以控制登陆到哪个client中。事务代码:RZ10
SAP启动的时候,读这个配置文件。Login/system_client
Zcsa/system_language,设置为E的话,就是英文。
新版本的SAP界面,做成树状结构。右侧可以让用户定义成一幅画。
低速连接:可以不读那个图形。低速连接只读当前这一屏,不把不需要的东西读过来。
新的功能:可以自己做文件夹,定义树。或者是权限范围内能做到的东西。
Favorite容易出问题的地方,可能会把MM,或者SD一颗树搬过来,几千个事务代码。
每个人单独的树都是很简单的。在系统服务器,占内存很大,会跑的非常慢。
在SM50界面,会出现等待,或者停止,会出现session manager进程。
一般作业删除运行时间短的。
事务代码:OMJI,排队的方式
近期专用队列,只有在存盘的时候,系统才锁定。
Screen Elements:
虚拟的。
Command Field:T_CODE
可以走菜单或者输入事务代码。事务代码可以走一个捷径,可以直接掉到树的某个节点上去。
如果不是从顶上的位置输入事务代码的话,事务代码前要加一个/n。
/O,和“创建会话”作用一样。并且/O后面还能跟上一个事务代码。
事务代码%PC,可以把屏幕列出的东西下载下来,而且可以来选是什么格式。
Command field: 可以来同步用户的权限,放在内存里。经常要退出来,再进去好几次。
事务代码:SU01
事务代码:RSET,仅仅是指用户缓冲区,要在SU01下。
Radio button只能选择一个。
特别注意,系统-状态
在不知道事务代码的情况,包括在哪个程序下,什么版本,操作系统。
帮助下,SAP LIBRARY,可以用盘安装,也就是online help。
在走到某一个画面,有困惑的时候,
F1解释当前工作的内容,F4来要输入的内容。
Technical name 指的就是事务代码。
Quick cut and paste快速拷贝设置。
GuiXT,不但可以插入文本,也可以插入图像。是第三方公司来做的产品。
主要的用处就是嵌入图画。
Workplace,也就是SAPgui的一个加强。控件和组件的多样化。
如果有多套的系统,在workplace,或者新的R/3,可以实现只要登陆一次,系统之间会有信任关
系的。Workplace可以基于HTML终端,例如IE,不需要为每一台机器安装一台sapgui。致命的问题
就是占用的带宽比较大。
练习:
控制session数:事务代码RZ10,
只能控制2-6之间。
如果是缺省值,就不出现。
System kernel:
第四章很重要。
包括:sapgui的接口,数据库的接口,instance的接口,dialog交互式会话,后台作业,spool打
印作业,完整做一个SAP事务代码,怎么样保证数据的一致性,同步更新,如何做异步更新,锁定
的机制。
Processing User requests:
最终用户发出请求,系统如何来处理这些请求。
四个用户都会向应用服务器发出请求,点击菜单或者输入事务代码。在SAP 46cgui前,任何点鼠
标,敲键盘,都会递交给应用服务器。在46C之后,gui会替代应用服务器来做一些操作。
动作:发出请求以后,应用服务器会专门有一个进程,dispatcher(分派),用户需求需要处
理,分派给哪个work process,是找到相应的空闲的work process。如果没有的话,就排队。采
用先进先出的原则。真正处理用户请求的,是work process。Work process有很多种,前台的,
要用dialog来处理。对于应用服务器来说,是sapgui的server端。对于database来,database是
server端。通常work process是在等待数据库的返回。
如果发现dialog进程都占满,考虑是否加dialog work process,其实应用服务器很空闲,应用服
务器可以解决用户走走菜单的问题。
SAPGUI TYPES
SAPGUI for windows,在终端上装一个client端的软件。
JAVA对机器要求更高一些,JAVA可以跨平台的GUI。JAVA有一个特点就是比较慢。和SAPGUI一样也
是需要不断地去升级。
SAPGUI是为window NT等系列开发的。Win95,win98不是很稳定的。分辨率1024,为标准的21寸显
示器。
SAPGUI for HTML,用户不需要去装额外的软件,也不需要去升级。缺点,传输的时候,数据量比
较大。另外增加了client端的负载。
SAP从4.7,WAS技术,可以直接处理IE格式。直接把翻译器增加到应用服务器里面了。
最多把data放到RAID5下。最好用RAID1+0. 磁盘阵列调整很关键。
备份:
硬件备份,写的时候写两块硬盘。备份后,再做同步。
磁带备份还是需要的。可以只备份data的table space,index是不需要的。
500G数据做备份,大概恢复需要两天的时间。
Presentation Layer
可以用PC连接,可以用terminal client,装机器的时候,不要用terminal来安装。建议用pc
anywhere。 也可以用SAPGUI for Html。
现在可以把ITS集成到应用服务器。
要求的带宽,敲一下键,平均1-2K。
30个用户通过一跟电话线。
用IE的方式比较大,和SAPGUI相比多10-100倍。
本地10M网线支持几十个用户,没有问题。
通常不会因为带宽而引起。
SAP BASIS DATABASE LAYER
除了要到数据库进行查询数据(应用服务器没有的数据),其他用户的响应只是在应用服务器来
完成就可以。
应用服务器和database的访问,一种是通过ABAP语言,另外一种方式是通过Native SQL,绕过
ABAP语言(技术上可行,但是SAP不推荐)。对于SAP来讲,数据库很多表互相相关联。SAP角度上
看,很多表,在数据库上是不可建立的。对于SAP来讲,透明表,cluster table, pool table后
两种是把两种表集合在一起,有共性的表,只做一次拷贝。主要是减少表的总数,压缩表的空
间。可能在数据库看到一个表,但是有可能在sap层面看到很多个表。SAP希望能够尽量通过sap的
interface来进行访问。用ABAP语句,可以调用一些标准写好的模块。应用服务器会把已经读出的
数据,放在内存里(local buffer)。要读数据,首先要看,应用服务器的内存里看看有没有这
个数据,不需要通过应用再到数据库服务器上面来读数据。这个过程的速度,起码相差100倍。性
能优化也是尽量把数据放在应用服务器的内存上。这种方式编程容易,效率比较高。如果把应用
服务器的内存加大的话,不要一遍一遍去跑数据库。在应用服务器和数据库服务器之间,主要做
一些查询,传输的量比较大。对于系统的配置来讲,建议数据库和应用服务器的网端是单独的,
switch。否则会引起性能的问题。网络连接的稳定性很重要。一定要设置百兆全双工,不要设置
成自动的。自动的,有一个协商的过程,会消耗资源。
MY SAP.COM process
事务代码:sm50,有前台对话进程,dialog;另外还有upd,是立即更新的。(另外一种是异步更
新)。
更新失败,更新延迟,有可能系统编的程序,就是采用异步更新的形式。(并不要求立刻更新,
等系统有空闲的时候再进行更新)
ENQ进程,是数据库的锁定机制。数据库对表进行更改,要进行锁定。保证只有一个用户来进行更
改。整个系统里,可以有多台应用服务器,那么只有一台应用服务器有一个ENQ,有且只有一个。
Central instance,看是否有ENQ,有就是最重要的应用服务器,没有的话,就是其他的应用服务
器。
BTC进程:后台的作业。运行时间长的作业,可以晚上来做。
缺省对前台控制为600秒。如果是这个时间的两倍,SAP会自动改变的。
RZ10,profile: rdisp/max_wprun_time,为0是不检测的。
SPO为打印进程,原则上也只能有一个。46以后,也可以有多个。
没有R/2的话,不会显示有gateway的进程。
建议尽量用ABAP语言,用数据接口来读写。读应用服务器的缓存区。要更改数据,首先要到
local buffer找一遍,如果没有,直接去写数据库,同时把这个值写到local buffer。如果
local buffer有的话,并不是直接写数据库,只是把local buffer的值改掉,并且写一个dirty
buffer,说明说值已经发生了变化。以dirty buffer的值为准。Check point,每隔一个固定的时
间,来检查是不是local buffer会标志为dirty buffer,会写到数据库里,然后把local buffer
的dirty buffer的值去掉。在一个极端的条件下,local buffer改了,database没有来得及改,
那么就会造成不一致。Database会自动做一个回滚的动作。SAP要求一个完整的事务来完成,如果
其中有一步,或若干步没有做完的话,同时会回转。一般不会出现修改的东西丢了,可以修改没
有成功。有时写的时候,会写到硬盘的缓冲区。阵列控制卡。BBC有机会让重新写回去。
SAP instance,可以理解为应用服务器。把应用层和数据库层都省略掉了。
这里有三个instance,C做为主用的应用服务器,判断的条件为,有message server。非主用的服
务器没有message server,在新的技术有可能会有equ(46以上不以这个为主)。哪个服务器上有
message server,就是CI。用户登陆到SAP系统,如果启用logon group,会自动根据负载均衡的
程度,会把用户分配的相对负载比较轻的服务器上面。
这种方式有三台应用服务器,登陆到任意一台都是可以的。对SAP来说,有一个负载均衡的方式,
指定一台负载均衡的机器。登陆到CI,并一定会登陆到CI上,会做一个负载均衡,会同时对三台
机器发出一条询问的指令,会以最早收到反馈的信息,有空余并且最早收到,认为这台机器是最
空闲的,会把新登陆的用户,分配到Dispatcher,然后分配work process。
如果三个机器都没有的话,登陆的请求会停留在MESSAGE SERVER上。
负载均衡在多台应用服务器进行,如果一台down掉,可以登陆到其他几天应用服务器上。
登陆组可以动态的进行切换,可以人为的控制用户的走向。可以把忙的机器从登陆组上分离出
来。也可以动态的把它加进去。Message server的第一个作用,就是动态分配用户。
各个服务器之间互相联系,是通过message server来完成的。比如,延迟更新,也就是异步更
新。比如跑MRP RUN,通常情况用到一个服务器组的概念。事务代码:OMIQ。可以设立并行处理。
可以在一台机器上,同时启动三个进程,同时来运行。Session数可以根据CPU数量。也可以让多
台应用服务器,同时来跑。这时候的调度来靠message server。也可以同步各个应用服务器的
local buffer。Message server会定期扫描和同步local buffer,这个时间会在半分钟到一分钟
的差距。多应用服务器,只能尽量减少。从编程的角度上,可以by pass buffer,这样可以不用
去读buffer,直接去读数据库的数据。基本上会去等一个check point,保证读的信息是最新的,
最准确的。
只有equ server,message server在CI上,其他的没有强行规定。
尽可能把spool放在CI上,尽可能把后台作业放在CI上。特别是CI和DB在一起(物理)。如果CI和
DB在一台机器上,消耗比较小。慢的原因是有大量的数据要互相传输。CI和应用instance和DB交
互。AI和DB交互,CI和AI的交互。重载的动作建议放在CI上面。减少网络上的交流。
各个work process具体做动作的方式。SAPGUI发出请求,结束于SAPGUI。
首先会登陆到CI上,然后分配一台应用服务器,只要用户不退出,总是停留在CI分配的这台AI
上。由DISPATCH来接管请求。对于同一个用户来讲,可能会先输入相关的信息,来回反复好几
次。对于应用服务器来讲,并不固定在某一个dialog上。每一次请求,都会随机分配一个相对空
闲的work process。占用一个work process以后,肯定用到一些内部的存储空间,比如用户个性
化的特征值,输入的一些工厂等。所有的对话进程,都是以屏幕显示为驱动,都有screen
process,后台都会有相应的反应。还有ABAP,会触发一些ABAP的程序,都会引发一些对数据库的
读写。在读取数据中间,会有buffer access,会存储一些以前做过的数据。Buffer中包括,日历
的信息,屏幕打印的信息,经常调用程序的信息,table数据表的一些信息。还有一些常用的,用
户的模板,固定的格式,放在roll area里。如果不用的话,就移动到roll file。常用的就放到
内存里面。这些机制都会提高系统响应的效率来做的事情。如果应用的buffer越大,roll area越
大,去访问数据库的机会就越小,就意味着处理速度越快。要提高系统的性能,要截留这些数据
到系统的内存中。开dialog的数量,在SAP安装的时候,安装程序会自动计算出,系统大概可以需
要多少个work process,大致设置一些work process的总数。
几乎所有的内存都已经用满了。4G的内存已经剩的不多了。事务代码,ST06。对于系统来讲,都
会留一些内存的。主要SWAP来看,什么时候内存比较紧张。SWAP文件已经用了3个多G了。用磁盘
空间来代替内存(内存不够),会影响速度。
这是过去24小时内,CPU的利用率,最高的利用率也就是40%。在系统中,CPU利用率不高。
举个极端的例子。事务代码:al08,看系统登陆用户数。Sm04,不列出来用户。
Al08,如果有多台服务器的话,都统计在一起。SM04只能看当前这台机器。
平时要用事务代码sm66来看。和al08有类似的情况,是可以跨服务器的。并且只把活动的列出
来,不运行的东西列不出来。前提是在了解整个系统的状况下。不能够删除用户的。删除用户的
话,还是用事务代码sm50。
事务代码:DB03
事务代码:ST02
SM50,PID是进程号。Kill –9 进程号 (登陆到unix)
然后再到sm50中,选择process-restart after error-yes。
可以考虑增加dialog的work process,看CPU比较空闲,来缓解这种情况。
限制每个用户同时打开的登陆窗口,提高运行的效率。
后台的进程也可以放到前台来做。后台可以允许超长时间的作业。后台作业的优点,可以定时,
可以变为周期性的工作。或者在有条件的触发,前一个某个特定的作业做完了,再运行这一个作
业。可以用时间或者事件。作业可以定义优先级,A最高,C最低。这样保证比较重要的作业按时
的完成。后台作业也可以指定某一台应用服务器来运行。例如可以把MRP RUN分配到不同的服务器
上面。而且作业做完以后,都会有系统的报告来显示出来。事务代码:SM37。
打印的工作会涉及到两个work process。占住一个dialog process,再用一个spool 的进程。输
出的对象打印机,或者是打印服务器,打印控制器。通过本地网或者远程网都可以的。把做过的
东西存放在表里,打印机多的话,考虑到堵塞的问题-如果只有一个spool这种串行方式的话,如
果一个出问题的话,就会影响到全局。想办法用并行的方式来做,要通过局域网的方式,比如用
一台NT的机器上,所有的进程都放到NT服务器的RAM上面。在NT服务器下面,装很多网络打印机,
这样就可以实现并行的方式,可以减少到spool的占用时间。不会因为一台打印机打不出来,而影
响到所有的打印机。并且只要把SAPLPD放到这台NT机器上即可。清楚的话,可以做成后台作业,
晚上来运行。打印也可以控制用户的,可以用权限来控制的。一些比较重要的信息,可以不允许
用户进行打印的。也可以打印到传真机上,通过modem。技术上可以做到销售订单,用户主数据的
电话号码提取出来。
Mail和lotus Notes,outlook有接口,直接配置就好了。
锁定的机制,锁定主要是基于数据库的要求。很多表在数据库层是不可见的,所以对于锁的管
理,要在SAP界面上来完成。锁一种叫,共享的锁,一种叫排它的锁。
事务代码:SM12,共享下面有X的,是共享的锁。是表明不许别人改,但是可以看。
排他的锁,是不许别人看和修改。
缺省支持13000条锁。锁的资源在内存中的一个表locklist,如果都填满的话,那就锁定失败,就
不能更改,没有锁的资源了。
别人已经锁定的情况下,自己的就不能锁定了。
以上都是正常的锁定。
还有一种情况是“死锁”;die log,比如a用户,b用户都要用1-4进程,a用户用1,2,b用户用
3,4,那么大家都占用自己的资源,都等待别人放开锁。
盘点要把所有的用户都锁定住。
事务代码:DB01,看死锁。
锁定要发送一个命令去锁,还要发一个命令去解锁。比如锁掉了以后,机器就down了,或者网络
断了,也就出现了,锁掉了,没有解锁。用事务代码sm12,手工去删除掉。
死锁是对系统性能比较严重的一个问题。
锁掉还有一种情况,就是有些动作是不能够同时做的。
凡是更改数据库,就一定会有锁定。
耗时间:SD反冲,价格,ATP CHECK
MMPP,MRP RUN
CO:物料帐
来做lock是通过enqueue server的。如果是在应用服务器上的话,要通过message server来传送
到CI的。如果lock太多的话,内存表有预定义大小的,想办法减少lock的数量(有一个技术叫
“锁升级”),想办法增加lock table的大小(增大内存)。通常SAP是行锁定,只锁一行或者某
些行。在数据库,lock table也是有限的。锁升级也就是用一个锁,把这个表锁掉。表锁定有一
个参数来控制的,当一个用户锁掉超过70%了,那就把这个表锁定,可以减少锁掉表的总数。
如果一个用户发了一条命令,如果dialog突然断掉,或者用户退出,没有人解锁。
那么就需要系统管理员来参与。事务代码:SM12,看锁定的时间,三个小时以上就可以查明原
因。那么还有一个事务代码,DB01,正常是NO lock.
也可以给用户权限,可以删除自己的lock。
在一个应用服务器,可能会有多个work process。都是以PAI开头的,用户在屏幕输入以后做的一
些动作开始,到PBO,结束。
首先有个output,做了一个输入,有个dialog process,做完以后,可能会过渡到一个新的屏幕
上,做了一些process,等到把105输出,整个动作就完成了。
同样一个动作可能会在WP0,WP1或者WP2中,主要看哪个wp空闲,可能会跨不同的work process。
可以直观的用sm50来看,点击cpu,从而说明dialog workproess占用的时间。
看上图,发现BTC,后台时间为0,那么说明后台作业基本没有用到过,所以证明开的太多了,可
以减少一些。
时间从系统一启动算起,一直到现在位置。
用事务代码:st04
MRP启动以后,用dialog分配来做,不占用CPU。
St04:
如果最后一行,5和2都是个位数字的话,说明是正常的。写的动作一定会比读的动作快。
同步更新:修改-递交-更改-放弃(保存)
通常敲个回车,要等到有结果,否则就要等待。
异步更新:做了一个修改先记下,如果最后确认要修改的话,再来做。从数据库的角度上来讲,
对时间要求不高,只是记录一个过程。会等到数据库有空的时候,再去做。也就是延迟更新,不
是时时更新的。也跟系统是不是忙有关系的。异步更新,属于优先级比较低的一种类型。
SAP log机制;是用ABAP标准来更新数据库的。
对于SAP,凡是更新数据库以后,会临时存放在VB*里面。记录的时间不会很长,缺省为三天的时
间。如果三天之内,会进行查询。
事务代码:SE16, 表为VBLOG
事务代码:se11(可以更改),se12(不可更改)
更新错误,更新失败。
SAP有两个手段来通知用户,一个是通过mail,另外一个是通过事务代码:SM13。
原则上来讲,不删除。
对于系统来讲,如果更新错误的话,数据库会进行roll back的动作,会全部导回去的。不会出现
不匹配的现象的。
系统管理员需要关注是否有关更新的错误,会直接影响到业务。
做升级的时候,第一件事情就是要做这个动作。
6-10
ST04
buffer数不够。
复习:
Mysap.com的概念和组成部分:主要是在原有的,传统的R/3上增加了一个internet的壳。在增加
新的模块中,BW,BBP,APO (是SAP特有的,主要是把PP模块中,生产计划提炼出来。主要思想
为,内存非常大的服务器,最少8G的内存,来跑类似于MRP run的东西)
三层结构,数据库服务器只能有一台,应用服务器至少要有一台,也可以有多台(到99台)
因为应用服务器和数据库服务器交互数据量非常大,最好设置特殊的网段。SAPGUI的方式,传输
速率比较低的。现在的应用可以集成了ITS server,直接和IE相连。
在可能的情况下,一定要通过ABAP程序,和应用的接口去调用数据库。
SAP表很复杂,互相之间有关联的。直接用NATIVE SQL的话,用不到local buffer。并且很多表,
都是在SAP层面看到的。
Dialog process, Update,V1为立即更新的,在没有完成以前,对话进程不会释放掉的。对于V2来
讲,为异步更新。对话进程发出更新指令以后,就会被释放掉。系统会根据在数据库空闲的时
候,把Update延迟一段时间再更新。从系统角度来讲,优先级比较低。
后台作业:运行时间比较长的报表。
事务代码:sm36。JOB CLASS:定义优先级的;after job,在前一个作业做完以后,才做的工
作。Operation mode操作模式,白天运行的大部分是前台的作业,晚上是后台作业比较多,前台
运行比较少。
事务代码:RZ04,来定义一个模式切换点。
Spool打印:如果要打中文的话,SAP专门开发了一个中文打印的驱动程序。可以以图形化的方
式,输出中文。
事务代码:SP01
事务代码:SPAD
lock,不可避免的。尽量避免死锁的引起。有些作业不能同时进行操作。
Message server,主要是用来在多个应用服务器之间,启用通讯的作用。事务代码:sm51
同步应用服务器之间的缓冲区。
作业可以是一个ABAP的程序,也可以是外部的,操作系统上的程序。
SAP自己带的一个开发的语言,所有的源代码对用户都是开放的。
第一,写自己的东西,第二对于sap标准的部件进行增强,第三,对于sap自己的报表进行修
改,第四点,User exit
蓝色的是系统里标准的,开发好的。看程序:SE38,运行程序sa38。程序是和client没有关系
的。在生产系统里,不能把se38和sa38的权限给用户。事务代码:scc4,全局的。调用的是表
T000。(跨client)
SAP的三个系统。Change request,小的文本文件的集合,把要做的改动打成一个包。测试系统就
是模拟一个生产系统,QAS最好和PRD保持一致。定期将PRD拷贝数据到QAS。
新的IDES装好,就是大约50G。压缩好的数据,三张DVD。
change request全部系统的更改记录。
和应用相关,系统维护方面,ABAP开发。
ABAP开发,ABAP程序可以理解为C语言加上SQL调用。
ABAP数据字典,和数据库比较相关的一些table,和view。事务代码:se11
Transparent table:透明表
数据库的表是由一个一个field组成的。
Index数据库索引。有的时候表很小的话,没有必要建数据库索引的。
如果index没有的话,那么看key一列打勾的话,就说明是隐含的。
最近最少使用。如果渐渐不用了,就会把新的在buffer中覆盖掉。
用的数据比较多,但是应用的buffer比较小,所以要在数据库内存上,开出一块比较大的地方,
来做缓冲区。把数据库的表打开,强制的放到buffer中。(buffer switch on)
可以把表放在里面,也可以把某一列或几列放在里面。放在内存的表,要比较少的去更改,或基
本上是一个只读的表。1M一下可以放,特殊情况放宽到5M。
事务代码:ST10,统计。如果change很多的话,就不适合放在buffer里面。
Log data changes:选中这个选项,并且把这个功能打开的话,那么就可以找到相关的用户。如
果启用这个功能的话,这个表比较小。SAP建议,配置,价格或者工资比较重要的话,所有的针对
这些的更改,都要记录下来。
更改记录,可以在事务代码:scu3里面来看到。
还可能会用到View,是一个逻辑的概念。可以把几个table相关联。
事务代码:se38,程序名为RSPO0041是删除后台打印作业,可以分client来进行删除。
用事务代码Sm36来定义,step来选择哪个ABAP程序。
对于开放人员来讲,会经常用到事务代码:se51,screen painter。和VB的控件特别像。主要是
设计屏幕的。Se37用来编function builder,标准。Table,view用事务代码se11。
数据模型。把实际的流程在SAP系统中体现出来。
数据字典会定义数据结构上的定义和描述。
SAP表和index建立都是经过严格的测试,理想是数据存放是没有允余的。
不要给SAP标准的程序去加索引。增加Index,也就无形中增加了数据库的容量。
ABAP开放的源代码,自己编好一个程序后,不能直接的被系统所运用。必须有个编译的过程,才
能被系统所能运用。以字符型文件来运行。必须要有个运行环境,边编译,边执行。
SAP会做一个预编译的过程。
如果新装好一套机器,每新走一个事务代码,都会做一个预编译的动作。存放在表PSAPES版本
号。或者装好机器,运行一个后台作业,把所有的事务代码都先编译一遍。事务代码:sgen。如
果程序更改一下,再存盘 ,后面一个人再运行这个程序的时候,就会出现再编译一下。
数据字典还提供了一些和数据库管理相关的功能。St10,tablespace的大小,等等。
要熟悉:se11,事务代码st10,事务代码DB02
数据库是由tablespace组成的。从数据库看到的,有350G。数据库的大小有350G,空余了48G。
对于系统管理员关心的,数据库的大小,还有就是tablespace的利用率。Tablespace不会自动增
长,要手工的去扩大。如果利用率增加90%了,所以就要去增加。加一次,最好多加一些。加一
次,就是多加一个data文件。在建文件系统的时候,就可以建大的文件系统。
另外还要关心,space critical objects,还有missing indexes。
missing indexes看到的应该全是绿色的,不能有红色的。红色的就表示丢失了对应的index。
Index不但要在R/3中建立出来,还要再数据库中建立出来。
在这里建立好以后,存盘激活,并要在database utility。
不做的话,系统里就会发现R/3和database不一致。
另外一个很重要的是,ST04,用来看数据库的状况。
首先来看数据缓冲区,共享池,要关心的是databuffer的命中率。一个调整好的系统,命中率应
该是99%。如果是95%以下,那么就有问题了。
READS重启后,总共读的次数。Physical reads代表真正去读数据库的数量。
所以说READ和Physical reads的比例越小越好。
另外,要关心,READS/USER CALLS原则上这个值要小于20。如果比较大的话,证明ABAP编的程序
有问题。
改善最明显的方法是增加data buffer size和shared pool size的大小。
Unix中,所有的操作都应该转到ORACLE这个用户下来操作。
路径在;oracle/SID/dbs 中的initSID.ora,每更改一次都会做一次记录。
.ora是数据库的控制文件,.dba是sap的控制文件,.sap是做备份用的配置文件。
备份的时候,可以指定参数文件的。对于不同的磁带机,需要不同的参数文件。
一般一盘磁带留5%就可以。
more initSID.oracle
db_block_buffers是和databuffer size相关。
St04
操作系统层面上来读oracle文件的速度。
平均数据库读的时间和写的时间。这两个值都应该是个位数,平均读的时间比写的时间应该是
短。
oracle日志
在程序中也可以用join的方式来代替view,用循环。
从46开始,可以自己来编辑。
编程的一些接口。对ABAP程序来讲,用户编程的一些接口,screen的编辑,远程连接,function
的调用,ABAP提供了很多接口,例如IDOC,RFC(可以给外部第三方程序来调用)。
和C语言+SQL类似。用SQL语句操作数据库的表。
开发程序三要素,第一,正确的业务结果;第二,时间复杂度(尤其是在大数据量情况下,去运
行程序);要求测试系统和生产系统数据量类似。第三,空间复杂度。正确的业务结果,在开发
系统就能看出来,但是隐秘的是空间复杂度。程序在运行的时候,占用的系统的内存。这一点,
在生产系统里运行起来,很重要。内存走完以后,系统会用硬盘来模拟系统内存。
做完程序会形成change request,export移植出来,只有在完全测试没有问题以后,才能把它传
到生产系统里。
应用服务器,硬盘很低的,要装的操作系统,swap,2G的运行文件。
做一个应用,特殊的业务流程或者报表。
首先要做数据的模型(流程图),编程的时候,要定义用户的输入(出)界面等等,建table,
index,要做调试和测试。事务代码:se38。在生产线系统中,不要去做单步跟踪(Debugger)
performance tools,通过BC490,要了解SAP写程序的规则和套路。
事务代码:se30
点击TIPS&TRICKS
编程的方式。有非常完善的版本管理,可以在做完以后,回退到以前的版本上。
SAP对外的接口。SAP提供了很多很灵活的补强,和外部的系统接口。
SAP真正开放的系统,整个源代码完全开放。集合了业界非常多的通讯标准。所有的通讯标准和接
口的细节都是开放的。对于用户来讲,非常容易的把这些数据下载下来。报关的系统…EDI,无纸
化。BAPI,ALE系统标准的。
对一个实际的生产系统来说,一个公司可能拥有不止一套的R/3系统。用的比较多的,就是RFC,
基于TCP/IP协议,做了一个接口。RFC也就是远程的计算机发出了一个功能的调用。RFC会要求一
个权限验证,口令要加密。
在做RFC之前,要建立起两台系统的信任关系。事务代码:SM59。
远程要用TCP/IP的连接。Sap的连接方式就用R/3连接。做RFC连接的话,要两边都做的。
传change request的话,这点也要来维护的。
一种是call他的事务代码,要做完一系列的动作;
一种是可以更新同步的做;
还有一种异步传送的方式。他可以并行的,并且不一定要马上去响应操作的动作。
在RFC基础上发展出来的。BAPI主要是在业务层面上的。
ITS server:internet transaction server,是一个SAPGUI的语言的翻译器。有两个gateway,
一个是WGATE,是处理web的业务,和web server相连。AGATE,是和application server相连的。
右边是一个company,内部的。左边的,有可能是一个企业的门户网站,放在防火墙外面。所有控
制都是基于JAVA的产品。这个机器对CPU和内存的要求都很高的。至少要4个G的内存,4个CPU。
ALE在国内没有人做。最重要的作用是连接几套R/3系统。比如一台数据库服务器承受不了这么大
的业务量。
EDI的系统会对文本的东西进行封装,里面的东西是原样的打包。EDI数据块比较小,传输的时候
拆分开,4k左右,进入的时候再组合起来。
IDOC,把EDI的东西拿过来,在前面建立一个控制数据块,尾部会告诉第几块的数据。会记录校验
码。
EDI保证能够正常达到。
EDI一般用在海关。
SAP business connector,屏蔽了低层的东西。
对外界系统编程要求低。要装一个XML的组件。
Batch input
通常有三种方式来导入数据,一种CATT,反复模拟屏幕输入的过程。代替人工往SAP系统敲入数
据。
6月11日
大量数据往系统导入:batch input,批输入;
CATT;
直接的输入;
效率最低的是CATT,BATCH INPUT,直接的输入。
实施的容易程度CATT,BATCH INPUT,直接的输入。
例如建销售订单,开发票,都会保持比较高的系统负载,CPU占用率非常高。
根据业务需求,磁盘的I/O很大。一般在生产系统,不建议使用CATT。
Go live check中,看看CATT是否在生产系统被禁止。
事务代码:SCC4(限制住allows CATT processes to be started)
还有其他导入的方式-批处理,事务代码:SXDA,数据传输的控制中心。已经做好了很多现成的
模板。
直接的数据导入,外界数据库文件直接和数据库的文件打交道,效率肯定是最高的。
OLE, object link. OLE是基于RFC,现在用的比较少了。
现在主要是WAS的方式。
MYSAP.COM新的组件。
在原来的标准R/3标准的部件,FI/CO,MM/PP,SD,HR,其他属于新增加add on,需要购买的。
workplace,针对sap传统组件加的一个internet的壳。只要是符合internet,能走TCP/IP,能走
HTML所有的服务都能够连接起来。
Single sign-on,可以把所有系统的安全机制都联系起来。我只要登陆一次,我名下的系统都能
够访问。后面要有认证管理机制。用户输入用户名以后,脑袋中要记一个六位的数字,输入到卡
中,卡每60秒一变,然后得到一个新的密码。比原来的系统高的机制是要有这块卡。和Market
place紧密相连的。以前的企业运作模式,是以自己的企业为中心。但sap希望大家能够以SAP为中
心。没有达到预期的效果,使用market place的人越来越少。
Workplace,是一个middleware,中间件。是一个web server+ITS。47都叫WAS。这种转换主要是
网络带宽和硬件。
ESS:员工自助服务,和HR紧密相连。
比如报销。
business to business,企业对企业的采购。前提条件是,两家公司都要用SAP。
采购公司先发一个采购的request,销售发一个报价单。采购公司再发一个采购的订单,销售方确
认以后,自动生成一个销售订单。
SAP当今的三大热点之一。BW,CRM,PROTAL企业门户。BW,数据仓库。主要是起到大量数据存储,
运行。会从R/3系统中,抽取到数据仓库中。可以先把R/3导入到BW,每天要更新data的值。这种
抽取工作,对于系统性能影响很大。一般要放到晚上来做。
BW一个最大的作用。
数据仓库的用户界面,可以直接用IE。BW系统管理和R/3比较相近。系统要是少于两个G的内存,
就无法安装起来。
每个人要把自己的knowledge登陆上系统,互相共享,然后找到适合的人。
APO主要是做生产计划的,包括MRP RUN,可用性检查。要求有非常大的内存来模拟。安装至少
8G,可以用的话,至少16G。
技术上的构架。APO的核心就是APO LIVE CACHE.作用就是把数据库大量的数据调用到内存,极大
的提高运行的错误。以满足PP方面的高要求的运算。
CRM,主要是mobile sales,移动销售。一般和电话的呼叫中心相结合。对于系统响应时间要求非
常高,往往是以比较大的硬件投入来换取的。Internet sales主要是针对个人的。Business to
Person。
系统管理,安全机制,CCMS(R/3环境中管理)
防火墙可能会是有两层。SAP的所有应用,sap internet端口是3200-4100。SAPGUI和SAP服务器
是可以加密传输的。SNC加在GUI和服务器这一端,作用就是sap在传到网络之前,先加密,然后再
解密。
Unix服务器系统,如果从PC telnet上,密码是明码传输的。最好装一个xmanager,或者
xwindows。
右侧有个环是红色的,建议这个环要单独建立一个网段。理想应用服务器要插两块网卡,一块是
对内的,另外一块是对外的。
SAP router,可以装在应用服务器上,也可以单独装到一台机器上。是SAP软件的网关。由用户来
控制sap router的开关。
OSS,可以去查一些notes,或者download一些最新的补丁。可以让SAP反向登陆到系统上,解决问
题。
Basis管理:
SM51:message server切换。SM04只能看到自己,AL08能看到多个服务器。
SM66可以跨多个应用服务器。哪个table lock住的话,会显示红色的。
SM13和SM14是来看更新的记录。如果频繁出现错误的话,会影响生产的。
每天要去看的事务代码:SM21,放的是每天的系统的日志。
事务代码:SM02,发系统消息
事务代码:RZ20