SAP ABAP SPAU Modification - 图文

更新时间:2023-11-10 08:20:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

所有包涵 ‘sap note’ 标签的日志

Modification

星期一, 11月 2nd, 2009

一个object只能在一个系统里是original的,对于SAP发布的所有objects只有在SAP是original的,而在客户所有的这些object都是copies,如果你在系统中编写了你自己的程序,你把这些对象放到一个change request中,这些对象是original,他们的类型是Development/Correction,这些requests可以从开发系统传输到其他系统。对original objects的修改称为corrections,他们的request的类型为Development/correction。如果你修改的是object的copy版本,那么其所在的request的类型为repair,对sap object的repair称为modification。你可以直接repair你自己创建的object。如果直接修改了这些object的copies,那么应当立即将其original也修改过来。但是对于sap object你是无法做到这一点的,因为sap的original版本并不在你的系统中。如果确实是业务需要那就只能更改sap的标准程序了。当你升级系统时其余modified objects会发生矛盾,如果你想保留对sap objects的修改,你需要对这些objects进行modification adjustment。为了保证一致性你只能在开发系统中进行modification adjustment,而通过change request将其传入后续系统。

对sap sources和abap dictionary objects的修改必须是经过registered developer对这这些objects register。这种registration的exceptions有match code, database indexes, buffer settings, customer objects,patches,由于某些修改而自动产生的某些对象(比如customizing).如果registered object再次被修改时,系统不会再向你要registration key。即使是升级之后这些registration key仍然会保留下来。通过SCCR注册的好处有:

l 可以存储modification的history,提高问题解决得速度 l 使操作更加可靠 l 简化升级

如果想修改sap repository objet,必须提供下列信息:SSCR key和change request。当你做modification时,系统会让你输入一个change request,输入change request的作用有:

l Change lock,只有change request owner才可以修改它。

l Import Lock 这些objects不能被imports overwritten,比如upgrade或package

l Version creation:系统会生成这个object的一个新版本。

一旦对sap object的修改结束,开发人员就会释放相应的task,此时他应当

document所作的修改。相应的所就转递给task所在的change request。如果开发人员confirm了这个repair那么相应的import lock也会转递给change request。如果没有confirm import lock依然存在,只有开发人员自己才能释放他。Project完成后就可以释放这个change request,change request中所有的object的locks都会被释放掉。当change request释放后,这些objects就会从数据库copy成文件的形式放在操作系统上,可以被传入后续系统。Change request释放后,其所包含的所有objects的完整版本会被放到version database中。如果你传输这个

repository object,目前的object就成为一个complete copy,新旧object的difference就会被存到version database中作为backwards delta。当你把一个repository object分配给一个task时,系统会检查当前的版本是否与version database中的complete copy相符。如果不相符,就会创建一个complete copy。这个过程也会在你第一次修改object时触发,因为sap并不发布repository 哦objects的versions。Repository objects的versions是modification adjustment的基础。为了支持adjustment,无论是sap或客户创建了version的information都会被存储。 Modification成功的关键因素是要把客户自己的代码封装起来而不是直接插入到原来的代码中,比如通过customer function module或customer subscreen等。在封装customer porting时应当使用narrow interface。制定自己公司modification documentation的标准。应当维护一张modifications的列表。包括repairs的所有requests应当在upgrade之前释放,这样的话相应的customer version就可以被写入到version database中了。在adjustment时系统就会比较相应的版本。在升级之前repair需要被confirm,否则的话repair就会被lock不能被import。对与basis相关的abap dictionary object的修改在升级时会被覆盖并且没有任何adjustment assistant。不要删除source code而应当是将其注释掉。Modification log sample: Object type(screen, program, gui PROG status,…) Object name SAPMV45A Routine SAVE_DOC Subject area SD_001 Request number of repair DEVK900023 Changed on 01.02.1999 Changed by Smith Person Responsible Carpenter Preliminary correction No SAPNet note number - Valid to release - Time required to restore(hours) 4 Modification assistant用来使modification adjustment变得更加简便。Modification可以被记录到module或subroutine层。Modification assistant在另外一个层次来记录变化,这就意味着object的original source code并没有被改变。只有load被生成后,modifications才会被adopted,这样的executable object就会被sap program的original part和modifications部分共同创建。Modification assistant使adjustment变得更见简便。比如你只修改了include program的某个subroutine,而其他的source code并没有改变。如果SAP发布了这个include的一个新版本,system会检查是否存在这个subroutine的一个新版本。如果不存在,你的修改就会被自动加入到新版本中。Modification assistant所支持的工具如下: l ABAP Editor Modification mode l Screen Painter layout flow logic l Menu Painter l Text Elements l Class Builder

l Function Builder Adding Function modules Compatible interface enhancements

l ABAP dictionary Append structures are registered Data elements :Field labels can be changed

l Documentation Substituting documentation objects

如果你想修改一个sap object你必须提供一下information:SSCR KEY和change request。系统会告诉你这个object会在modification object assistant的控制之下,只有一些限制的功能可以在editor中使用。通过修改参数

en/controlled_modification可以打开或关闭modification assistant。你也可以在一个单独的Repository object上关闭modification assistant。Modification assistant icon包括:Insert Replace Delete Undo modification和Modification overview。

可以通过modification overview来overview系统中的modified objects。可以使用modification browser的reset to original功能将一组modifications置回到original版本。

Module pool是由一系列的include programs组成的。这样可以使程序变得更加clear,其组织形式跟function group差不多。命名的传统是其最后三个字母用来表示这个include的内容,是唯一的。User exit是一种system enhancement起初是在SD中开发的。其初始的目的是为了避免modification adjustment。User exit技术上还是认为是modification,因为他修改了SAP namespace中的object。SAP开发人员在module pool中创建特殊的include program。这些includes包括一个或多个subroutine,其命名方式是userexit_。对这些subroutine的call在程序中已经implement。通常会使用global variables。他们一旦发布SAP便不会再修改它,如果有新的user exit,SAP会将其放到新的include中。在这样的include中,他们的name中的最后两个字母一般都会发现 Z。比如SAPMV45A的M45AFZB。这样就保证了SAP开发人员将来不会改变这些include的source code,在升级时也不需要adjustment。可以在sap program的source code中通过搜索perform userexit来查找sap是否implement了userexit。

有了sap note assistant,在打notes时,你不再需要输入register key,sap note assistant会自动把note corrections通过modification assistant import到系统中去。其余其他notes的关系也会被自动识别。如果相关的notes还没有打入到系统中,note assistant会提示已将其import到系统中。而且,note有有效期,当你import support package或upgrade后,assistant会检查note是否有效,如果无效,你可以通过按一个button就可以将其undo。

SAP note assistant避免了需要手工修改source code,corrections可以被自动导入,另外你也不需要SCCR。它还可以自动识别不同notes间的依赖关系。在每个Note中还可以识别修正这个错误的support package,然后它就会将自己标注为obsolete。如果你要修正的object上作了Modifications那么它也会将其register,在modification adjustment中会被特殊标记。SAP note assistant的另外一个好处是它可以overview你系统中的所有notes。如果在升级或者support package导入后,

modification被adjusted,这些note会列示到一个特殊的category中,值得注意的是note只是对某个单独错误进行的修正,而不能替代support package。

可以通过note assistant下载service market place上的notes,notes browser可以overview导入到你系统中notes。从这你可以navigate到modification browser。通过输入不同的状态你可以了解那些note被implemented了,那些是obsolete的等。通过仔细阅读note,可以按照correct instruction来implement note。Note assistant可以确定这个note是否可以被自动实施,其状态灯为绿色。如果在note实施过程当中发生confilicts,可以通过Splitscreen editor的特殊版本来手工实施。通过事务代码snote来进入note assistant。可以从sap service market place上下载note到本地硬盘然后将其上载到SAP系统中。然后在仔细阅读了note的内容后就可以实施它,系统会检查其余其他note的依赖性是否满足。如果不满足,系统就会列出需要导入的其他notes。你可以有多种方式来实施note,一种方式是一次实施多个note,其前提条件是所有的要实施notes都没有changes,如果你Modify了相关的object,这些notes就会被单独处理以便你可以adjust。另一种方式是一个一个的实施note。你可以跟踪每个note修改的详细信息。你可以cancel note实施。一旦你导入了support package,就会出现以下三种情况:

l Note中有的corrections在support package中也存在,(交通灯没有颜色),在transaction SAPU中,这个note的交通灯是无色的,你必须把相应的object置成original。

l Note中的corrections不包含在support package,在SPAU,这些note的交通灯是绿色的,你必须重新实施它。

l Note中的corrections中的一部份饱含在support package中,这种情况很少见。这个note的交通灯在SPAU中会是绿色的。 实施Note的路线图如下:overview->load->check->editing status->implement->log->adjustment

可以通过调用程序SCWN_REGISTER_NOTES来手工实施note。

在升级过程当中,modified object需要被adjust。在modification adjustment过程中,旧的和新的repository object版本是通过SPDD和SPAU来比较的。如果standard abap dictionary object没有被修改或者只是添加了customer object那么就不需要使用transaction SPDD。其他的Repository object是通过transaction SPAU来adjust的。升级程序R3up在升级完成之后会让你启动这两个transaction来进行adjust,在升级之后你有30天的时间来做adjust,否则你就需要申请SCCR key了。事务SPAU可以找到那些objects被modified了,那些这样的哦objects在升级之后有了新的版本。Modification adjustment可以让你把以前做过的modifications传入到新的版本中。

在modification adjustment的过程当中,SPDD用来adjust以下对象:Domains, data elements和tables。这三种类型的对象是在dictionary object在导入之后直接adjust的。在这时dictionary object并没有被generated,为了保证没有数据丢失,必须在这些对象generated之前进行adjust。而abap dictionary objects:lock objects,match codes或者views并不会导致

数据丢失,所以他们是通过transaction SPAU adjust的。SPAU可以ADJUS的对象包括:ABAP programs,interface(menu),screens,matchcode objects,views和lock objects。

在modification adjustment的过程当中你需要产生两个change request用来分别存储SPDD和SPAU的adjustments。这些adjustments然后就可以传输到后续的SAP系统中。这样就保证了所有modification的来源都源于开发系统。在modifications传输过程当中你必须保证所有系统的landscape必须是一致的。你可以通过在升级开发系统之前将所有的modifications都传入到后续的系统来做到这一点。或者在升级之前创建开发系统的一个copy来限制对你的生产系统的modification。

在SPAU的初始界面你可以首先设定自己的选择条件。然后执行,系统就会显示你要adjust的objects。每个objects的前面的icon表示他们adjust的方式。他们包括automatically,通过选择相应的icon或menu entry adopt可以被自动完成。Semi-automatically当你adjust program一个split screen editor就会出现让你编辑source code。Manually,你只能手工adjust,通过双击你可以进入相应的工具。Adjusted objects将会显示为green tick,如果你想使用object的new standard version那么可以通过reset to original来实现。

本文来源:https://www.bwwdw.com/article/zezv.html

Top