SAP 调用外部程序

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://www.cnblogs.com/Files/byfhd/CSServerSimple.rar

转载于:https://www.cnblogs.com/byfhd/archive/2008/07/16/1244761.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值