SAP 调用外部程序
2011-04-11 09:13
302 查看
SAP 的方法(函数)如何用其它语言实现,是SAP的funcation module 如果在外面实现,就是在SAP里创建一个FM,然后在外面用其它语言,JAVA,.net实现这个方法完成复杂功能。
在SAP外部启动一个服务,这个服务连接SAP的geteway service,当SAP调用RFC方法时这个方法根据DESTINATION 指定的RFC名称(SM59),找到这个服务程序,找到实现方法。
作用:
1.实现复杂的业务处理,比较abap语言实现困难的
2.与外部系统做接口,比较当SAP做业务时触发外部作业
3.从外部获取数据,前题是SAP为主动
4.SAP与外部语言的无关性
5.例如SAP与生鲜磅称的接口,当SAP做收货,称重量时,用这种方法调用外部程序,把重量反回SAP系统。very good!
RFC 配置:
i.
T-Code:SM59;创建一个RFC连接,需要配置的项目:输入RFC Destination,Connection Type
选择T(表示用TCP/IP方式),输入Description(描述),Technical Settings里选择Registered server program ,配置Program
ID这个很重要与PC上外部注册的服务程序名称一致,Gateway host(主机网关,这个信息由Basis人员提供)xxx.xxx.xxx.xxx,Gateway
service (网关服务,这个信息由Basis人员提供,例如:sapgw10).
ii.
测试Test Connection
,如果配置成功应通过。没有错误提示。
FM创建:
SE37 ,注意属性要设置为远程方式(remote -enabled module),其它与创建普通FM一样。
FM调用方式:
***初始化L_ITAB_DATA内表***
L_RFC_DESTINATION = 'SM59DesName'. "'RFCSCALE'. "指定RFC程序
L_WA_WEIGHT-WAAGE = 'SM59ProgramID'. "在配置SM59时最好两个名一样,
APPEND L_WA_WEIGHT TO L_ITAB_WEIGHT. "向Internal Table中赋值
***调用SAP FUNCTION MODULE获取数据***'HU_GET_RFC_DATA' 是外部实现的方法名,请参考实例
CALL FUNCTION 'HU_GET_RFC_DATA' DESTINATION L_RFC_DESTINATION
TABLES
ET_WEIGHT = L_ITAB_WEIGHT
EXCEPTIONS
COMMUNICATION_FAILURE = 1 MESSAGE MSG_TEXT
SYSTEM_FAILURE = 2 MESSAGE MSG_TEXT.
C#实现FM:
SAP.net实现非常简单,用SAP.net服务生成RFC接口访问方法类。
附件:sap.net标准实例
http://files.cnblogs.com/byfhd/CSServerSimple.rar
在SAP外部启动一个服务,这个服务连接SAP的geteway service,当SAP调用RFC方法时这个方法根据DESTINATION 指定的RFC名称(SM59),找到这个服务程序,找到实现方法。
作用:
1.实现复杂的业务处理,比较abap语言实现困难的
2.与外部系统做接口,比较当SAP做业务时触发外部作业
3.从外部获取数据,前题是SAP为主动
4.SAP与外部语言的无关性
5.例如SAP与生鲜磅称的接口,当SAP做收货,称重量时,用这种方法调用外部程序,把重量反回SAP系统。very good!
RFC 配置:
i.
T-Code:SM59;创建一个RFC连接,需要配置的项目:输入RFC Destination,Connection Type
选择T(表示用TCP/IP方式),输入Description(描述),Technical Settings里选择Registered server program ,配置Program
ID这个很重要与PC上外部注册的服务程序名称一致,Gateway host(主机网关,这个信息由Basis人员提供)xxx.xxx.xxx.xxx,Gateway
service (网关服务,这个信息由Basis人员提供,例如:sapgw10).
ii.
测试Test Connection
,如果配置成功应通过。没有错误提示。
FM创建:
SE37 ,注意属性要设置为远程方式(remote -enabled module),其它与创建普通FM一样。
FM调用方式:
***初始化L_ITAB_DATA内表***
L_RFC_DESTINATION = 'SM59DesName'. "'RFCSCALE'. "指定RFC程序
L_WA_WEIGHT-WAAGE = 'SM59ProgramID'. "在配置SM59时最好两个名一样,
APPEND L_WA_WEIGHT TO L_ITAB_WEIGHT. "向Internal Table中赋值
***调用SAP FUNCTION MODULE获取数据***'HU_GET_RFC_DATA' 是外部实现的方法名,请参考实例
CALL FUNCTION 'HU_GET_RFC_DATA' DESTINATION L_RFC_DESTINATION
TABLES
ET_WEIGHT = L_ITAB_WEIGHT
EXCEPTIONS
COMMUNICATION_FAILURE = 1 MESSAGE MSG_TEXT
SYSTEM_FAILURE = 2 MESSAGE MSG_TEXT.
C#实现FM:
SAP.net实现非常简单,用SAP.net服务生成RFC接口访问方法类。
附件:sap.net标准实例
http://files.cnblogs.com/byfhd/CSServerSimple.rar
相关文章推荐
- SAP 调用外部程序
- SAP 调用外部程序
- SAP 调用外部程序的方法
- SAP中调用外部程序(RFC)
- SAP 调用外部程序
- SAP 调用外部程序 (NCO、JCO)
- SAP 调用外部程序 .转
- C#调用cmd.exe程序和外部程序
- C#调用外部程序实现压缩和解压缩[原]
- 一个程序:SAP调用WORD,不使用宏
- QT编写DLL给外部程序调用,提供VC/C#/C调用示例(含事件)
- Delphi 调用外部程序并等待其运行结束
- Runtime.getRuntime().exec()调用外部程序
- 2.1 QProcess调用外部程序获得实时输出
- Dynamics AX 2012 R2 外部程序运行在没有AD的环境(如PDA) 调用AX服务
- QT编写DLL给外部程序调用,提供VC/C#/C调用示例(含事件)
- Delphi调用外部程序函数:WinExec() 和ShellExecute详解
- Python调用(运行)外部程序
- WPF调用外部程序
- VC中调用外部EXE程序方法(转)