关于SAP与其它系统集成SM59设置目标系统的问题_Hadoop,ERP及大数据讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Hadoop,ERP及大数据讨论区 »
总帖数
11
每页帖数
101/2页12
返回列表
0
发起投票  发起投票 发新帖子
查看: 4778 | 回复: 10   主题: 关于SAP与其它系统集成SM59设置目标系统的问题        上一篇   下一篇 
    本主题由 Administrator 于 2014-9-18 8:35:31 移动
onkrdlnwtsyt
注册用户
等级:新兵
经验:66
发帖:1
精华:0
注册:2014-6-30
状态:离线
发送短消息息给onkrdlnwtsyt 加好友    发送短消息息给onkrdlnwtsyt 发消息
发表于: IP:您无权察看 2014-9-17 9:10:18 | [全部帖] [楼主帖] 楼主

问:

目前在做SAP与SIEBEL的集成. SIEBEL本身提供了一些标准的集成方案,它的connector文档中给出了创建逻辑系统,创建合作伙伴参数等等步骤. 在SM59创建目标系统时遇到了问题.SM59创建TCP/IP连接时,Actived type建议选择Registered server program, 然后输入已经注册好的program id. 关于如何注册PROGRAM ID的问题,资料上语焉不详.费了N多力气查询,终于找到rfcexec这个命令.请BASIS协助进行注册后进行验证测试.使用BD10向目标系统也就是SIEBEL系统发送物料.起初每发送一次,RFCEXEC命令启动的进程(这儿我不特别明白是不是进程)就会被杀死一次.后来在SIEBEL端设置了 SAP的CODEPAGE,终于不再每次发送物料都死了,但每过一段时间(半天或者一天)仍然会死掉,SM59测试连接就会失败,提示PROGRAM ID未注册之类的. 因为经常断掉连接,现在我就觉得这种方式不够安全,稳定.请问我们采取的这种方式正确吗?有没有更好的方式? 

答:

你的问题很好,我想很多做BASIS的人对SM59里PROGRAM ID都有理解上的疑问。你刚挖出来的五六 年的老帖子说的情况和你问的问题不一样,他说的是SAP如何调用外部程序,而你在做SIEBEL集成 时用的是“Registered Server Program”。如果你选择的方法是SIEBEL与SAP集成的文档里要求 的,我可以把我对这个问题的理解与你探讨,想来对所有做BASIS的人都有好处。 看这个问题,首先要有清晰的Client/Server概念。 先别拍砖,很多人自以为知道这基本的计算机概念,但和我讨论完之后,90%的人都说自己原来的 理解浅了。我的理解里每个概念都有几个关键的要素: Client = 一个程序,到远程主机上的一个TCP端口调用一个服务 要素 = (1)程序,(2)本地主机IP地址,(3)远程主机IP地址,(4)端口号,或服务名 Server = 一个程序,在本地主机的一个TCP端口提供一种服务 要素 = (1)程序,(2)本地主机IP地址,(3)正在运行,(4)监听某端口来提供服务 Client是源,Server是目标,连接的方向是Client --> Server 有了这些概念,还需要有对应用程序的理解,以及对查找进程(ps command in UNIX),查找网络 连接(netstat -a)等工具的使用,来找齐这些要素,那么你就可以解决绝大多数在应用程序层的 系统互连的问题,比如如何开防火墙等。 在你的SAP与SIEBLE系统集成中(对不起,我不知道具体怎么做SIEBEL的集成,但SAP与其他很多 东西的集成我都做过,基本原理相似),有两个方向的连接需求,一个是SIEBEL->SAP,另一个是 SAP->SIEBEL。 SIEBEL->SAP的连接,是属于进入SAP的连接,与用户登录过程相似。在这一案例中,SAP的 Dispatcher是Server程序,它在SAP主机上的32xx端口提供sapdp??的服务。而SIEBEL端的Client 程序是什么就不好说了,通常情况下SIEBEL,SAS等SAP外部程序使用SAP提供的RFCSDK或JCO来SAP 主机连接,连接时需要知道SAP主机的主机名或IP地址,以及端口号。这些都是要在Client端作为 输入参数或设定参数来提供的。如果试图调用SAP Message Server来实现Load Balance,那么在 client端通常还要在etc/service文件中设sapmsSID,否则Client程序不知道到SAP主机上找什么 端口来登录SAP。与下面要解释的相比,SAP用户登录的过程是相对简单的。 SAP->SIEBEL的连接,是SAP主动往外去的连接,在Client/Server架构里,现在SAP是扮演Client 的角色,SM59是负责记录这种Outbound设定的。SM59里有很多不同的连接类型,比如类型3,是连 接远程SAP系统的,那么就需要你提供作为SAP Client调用系统时的各种参数。比如类型H,是连 接外部HTTP服务的,那么就需要URL。另外就是类型T,是通过TCP层面调用外部服务。 类型T里又有不同类型的Program设定,我现在只说什么是Registered Program: 当SAP需要调用外部服务时,按Client/Server的概念,也应该知道远程服务所在的主机,TCP端 口,以及登录信息等。但因为外部服务千姿百态,SAP通常不使用Client/Server的方法,而使用 CPIC的方法,这就是Registered Server Program的由来。具体的连接过程是:(以我假想的 SIEBEL为例) 1. SIEBEL使用SAP提供的RFCSDK,或JCO(Java Connector),编写了一个连接SAP的程序/程序包。 这个程序/程序包不仅可以扮演Client的角色来连接远程的SAP系统,同时也扮演Server的角色对 SAP提供SIEBEL的调用服务。在很多非SAP的软件包中,管这程序/程序包叫RFC Server。 2. SIEBEL通过该程序登录远程SAP系统(需要提供SAP主机名,系统号来找端口,以及用户名,密 码等)。登录成功后在SAP的Gateway服务表里就有了这么一个连接,可以通过SMGW来查看。 3. 然后SIEBEL进来的这个RFC会调用SAP的系统功能来建立一个“Registered Server Program ID”,这ID如何命名,通常是调用者在提供SAP用户名,密码等参数时同时提供的。SAP的系统功 能,会把这一ID作为标签贴在Gateway服务表里的这一连接上,那么SIEBEL来的这一TCP的通道就 在SAP里有了个名字。 4. SM59里定义一个RFC Destination,我们姑且把它叫SIEBEL-System,就需要你按你楼上描述的 方法,把这PROGRAM_ID放进去。如果你的SAP系统有多个App Server,在SM59里的Gateway Host就 不能空了,因为SIEBEL登录进来时只会连接一个App Server,那么所有SAP App Server上需要调 用SIEBEL服务的程序,都会使用这一SIEBEL-System的连接。如果你的Gateway Host为空,他们就 会在本地Gateway找,就经常会找不到。 5. 现在SAP的程序就可以通过CALL Function At Destination SIEBEL-System的方式来调用 SIEBEL的服务了。但这里BASIS经常忽略的事情是,如果SIEBEL端的RFC Server程序停掉了,这一 TCP的通道也就断了,那么用SM59的这个RFC Destination也就不能连接了。如果你需要再连接, 则要到SIEBEL那么重新启动RFC Server,登录到SAP里来。 在这一过程中,我见到大多数人的错误是不理解Client端设定的重要性,也就是SIEBEL端的RFC Server的设定。其实在SIEBEL那边的设定对否,程序是否运行,决定了SAP与SIEBEL的连接是否可 行/可靠。 希望这对你有帮助。这一SAP Outbound connection的模型,同样适用于SAP ABAP系统与Java系统 的连接,适用于SAP XI/PI,BI Java,Portal,BusinessObject等SAP内部的连接。大家是一个道 理,如果你能真正吃透它,那就是SAP系统互连的大师了,当然我这里指BASIS层面,不是指SAP应 用层面,比如CRM中间件,SCM CIF,BI Extractor等。 

该贴由system转至本版2014-9-18 8:35:31




赞(0)    操作        顶端 
斑马斑马
注册用户
等级:下士
经验:176
发帖:0
精华:0
注册:2016-2-17
状态:离线
发送短消息息给斑马斑马 加好友    发送短消息息给斑马斑马 发消息
发表于: IP:您无权察看 2016-3-17 11:22:15 | [全部帖] [楼主帖] 2  楼

.。。。。。。。。。



赞(0)    操作        顶端 
火树银花
注册用户
等级:中士
经验:245
发帖:2
精华:0
注册:2016-1-8
状态:离线
发送短消息息给火树银花 加好友    发送短消息息给火树银花 发消息
发表于: IP:您无权察看 2016-3-18 10:49:15 | [全部帖] [楼主帖] 3  楼

不错不错,非常不错!



赞(0)    操作        顶端 
容景93
注册用户
等级:上士
经验:254
发帖:0
精华:0
注册:2015-12-4
状态:离线
发送短消息息给容景93 加好友    发送短消息息给容景93 发消息
发表于: IP:您无权察看 2016-3-22 20:52:59 | [全部帖] [楼主帖] 4  楼

写的很好



赞(0)    操作        顶端 
殷桃小丸子
注册用户
等级:中士
经验:216
发帖:1
精华:0
注册:2016-2-17
状态:离线
发送短消息息给殷桃小丸子 加好友    发送短消息息给殷桃小丸子 发消息
发表于: IP:您无权察看 2016-3-22 23:13:29 | [全部帖] [楼主帖] 5  楼

有意思!不错!



赞(0)    操作        顶端 
殷桃小丸子
注册用户
等级:中士
经验:216
发帖:1
精华:0
注册:2016-2-17
状态:离线
发送短消息息给殷桃小丸子 加好友    发送短消息息给殷桃小丸子 发消息
发表于: IP:您无权察看 2016-3-22 23:13:47 | [全部帖] [楼主帖] 6  楼

特别不错



赞(0)    操作        顶端 
殷桃小丸子
注册用户
等级:中士
经验:216
发帖:1
精华:0
注册:2016-2-17
状态:离线
发送短消息息给殷桃小丸子 加好友    发送短消息息给殷桃小丸子 发消息
发表于: IP:您无权察看 2016-3-22 23:14:03 | [全部帖] [楼主帖] 7  楼

真高兴



赞(0)    操作        顶端 
我有一辆拖拉机
注册用户
等级:列兵
经验:105
发帖:0
精华:0
注册:2016-3-23
状态:离线
发送短消息息给我有一辆拖拉机 加好友    发送短消息息给我有一辆拖拉机 发消息
发表于: IP:您无权察看 2016-3-24 16:50:51 | [全部帖] [楼主帖] 8  楼

很好,非常感谢



赞(0)    操作        顶端 
云浅月93
注册用户
等级:少尉
经验:328
发帖:0
精华:0
注册:2015-12-4
状态:离线
发送短消息息给云浅月93 加好友    发送短消息息给云浅月93 发消息
发表于: IP:您无权察看 2016-3-29 19:47:18 | [全部帖] [楼主帖] 9  楼

好的



赞(0)    操作        顶端 
海绵宝宝
注册用户
等级:下士
经验:154
发帖:1
精华:0
注册:2016-3-22
状态:离线
发送短消息息给海绵宝宝 加好友    发送短消息息给海绵宝宝 发消息
发表于: IP:您无权察看 2016-3-30 19:05:14 | [全部帖] [楼主帖] 10  楼

帖子不错



赞(0)    操作        顶端 
总帖数
11
每页帖数
101/2页12
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论