关于传输请求Transport Request
文章目录
传输请求是啥
当你STMS之后,选择了你要传输的系统路径,点了小车车,就会看到下面这个界面。
虽然这操作我们经常做,在STMS看的更清楚一些,solman就糊里糊涂的。但是时间长了,我都忽略掉这些细微的步骤,这一步步的都是干嘛的了。
今天来详细看下。
传输请求是啥?一般传输请求,会放到一个包里。这个请求下面呢,会有很多change task 。就像很多文件放在一个文件夹下,很多task放到一个request里。
好像SAP本意是,一个项目经理建一个request,每个顾问的task做完了,就可以一起传输了。先被释放掉,然后传输。
为啥要释放,释放是和锁对应的。
就是说,你改这个对象的时候,改完放到这个request的task下面,其实系统就会给你这个对象给锁住了。在你没有释放这个对象之前,别人改的话,也会把别人的修改包到你这个request底下。除非你释放,释放了就会允许别人修改到他的请求下。
如果你不想释放传输,那你就删除你自己的task里面的对象。对象会有个repair flag,在se03先解锁你的请求,然后删除task。
释放请求后,就会生成一个Data文件和一个Co文件。
Co:控制文件,K 包含数据文件的属性。
Data:数据文件,R 包含数据库细节
STMS的传输参数
时间,啥时候传。一般都立即。
event没搞过。
执行的时候,同步或异步。
同步的话,对话或批处理进程被阻断,直到导入成功。
异步:异步传输导入开始后,对话和批处理进程被释放。
说实话我不知道这俩啥意思。默认是异步,我没管。
选项。
这些还是有点重要的,就是要重点理解这些。
第一就是可以再导入。因为你得导入到队列,才能传输。
就是万一你这个传输出错了,可能是你request的顺序搞错了,那你得重传,这时候你可以再导入,再传。
第二,也一样。
第三,如果你反传,我是这样理解的。那就覆盖原始。在SE03里面,能看到这个对象路径。
也就是你能看到它的原始系统是哪一个。
第四,如果你在目标系统有个repair的版本,而且没确认,那也传。啥意思呢?
如果你遇到传输错误:object repaired in production system
那就差不多能理解了。就是你要传输的这个对象,在production上面被直接更改了。一般情况下咱不这么做,但保不齐有紧急情况的。先在production上改了。然后再改了来传,那你在P上改了,就会有请求生成,然后你的请求里就会锁住你改的这个对象。
注意,这个在P上的请求,锁住了你要从D传到P的对象。这个被P的请求锁住的对象,如果你不给他解锁。那你这个传输报错了。
怎么办?要么释放这个P上的请求,要么从请求删除对象。然后D上的请求能成功传输。
或者呢,你选这个四选项。不管它被没被锁,我都传。
扩展:传输问题,对象在P系统被修改
再来扩展下,像刚才说对象在P上被repair,被锁在P上的请求里。那么要么释放请求,要么删除解锁。
但是,万一这个对象并没有被锁在任何的P的请求里。而你的D的请求依然报了个repair的错?
那是为啥呢?
既然报了个repair的错,那就说明它是被修改过的。可是不在请求里。
如何查找repair对象
1. SE03去找
你去SE03,找repaired对象,注意是去你的P系统,目标系统。然后你能找到。
你看到对象是确实有个repair flag.
2. RSA1去找
显示对象属性。
3.去表TADIR看
repair flag是R,插一下,在TLOCK表可以看到所有被锁的对象。
那这个不在请求的修复对象是咋回事?因为改这个兑现过的人还没来得及释放请求,他这个人就被删了。
那这时,不在请求里,就不能被解锁。咋办呢?
把这个repair flag给移掉也是一样的。SE03进去
选中对象,然后reset 重置这个flag就行了。
扩展结束
以上都可以选择四直接解决,覆盖掉repair对象。
第五,忽略不允许的传输类型,如果你传输文档有一些特定设置不允许传这个传输类型。。。这个不知道。
第六,忽略不允许的表类,表的数据记录会被导入,就算你这个表的类不允许数据被导入。。。。
第七,忽略前任处理关系,你要导入的请求,其他项目的请求和你有关联,可能基于你这个请求,那就关闭这个关联。也就说,你前任的关系不被破坏。。。
第八,忽略无效的组件版本,避免组件不匹配问题。。。
综上,我选一和四。。。
返回码
0000 成功
0004 有警告,但成功
0008 有些没传过去,什么语法错误啦,程序生成错误啦,字典激活错误啦,方法执行错误啦。
0012 比较严重的错误。导入取消,程序取消,对象丢失,对象未激活
0018 系统dump 没权限啥的
扩展 : RDDIT076
已释放的TR,跑这个program RDDIT076来返回状态。
把R状态改成D(modifiable)
但是不能是传了的,仅限于,已释放,未传输。
还有就是这个满载的小卡车,别点。。。
如果你点了,那可以这么搞:
STMS-系统overview(就三个小方块)
双击系统,阻断全传。
到传输工具上,点修改,添加一个参数:
NO_IMPORT_ALL 值给1
然后保存,退出。其他要阻断全传的系统同样操作。
跟request有关的表:
E070 请求对象表头
E071 请求对象条目
TRBAT 检查传输流程,请求是否被导入。