• 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-CodeSM59;创建一个RFC连接,需要配置的项目:输入RFC DestinationConnection Type 选择T(表示用TCP/IP方式),输入Description(描述),Technical Settings里选择Registered server program ,配置Program ID这个很重要与PC上外部注册的服务程序名称一致,Gateway host(主机网关,这个信息由Basis人员提供)xxx.xxx.xxx.xxxGateway 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标准实例

  • 相关阅读:
    练习1-6 验证表达式getchar() != EOF的取值是0还是1。练习1-7 编写一个打印EOF值的程序。C程序设计语言(K&R)_第2版
    【文摘】《原则》——雷.达里奥
    Android-app-CourtCounter
    Android-入门学习笔记-面向对象编程
    Android-app-深圳图书馆信息页
    【可能有问题】Android横屏布局,固定屏幕方向
    Java笔记
    Android-入门学习笔记-交互
    Android studio清理项目构建
    【待修】Git和GitHub学习笔记
  • 原文地址:https://www.cnblogs.com/weichuo/p/1995240.html
Copyright © 2020-2023  润新知