关闭

SAP 调用外部程序的方法

1343人阅读 评论(0) 收藏 举报
分类:
在 SAP 中一个程序调用外部程序有两种方式:
1. Call transaction <tcode>
常见于 BDC 程式中.
  CALL TRANSACTION tcode
        USING bdcdata
        MODE  p_mode
        UPDATE c_update
        MESSAGES INTO messtab.
mode有以下的可选值.

行模式  

作用

"A"

示所有入屏幕,如果在 bdc_tab 中包含屏幕的功能会出小窗口个功能。它也是默认值,如果指定不是下面的认为是 A

"E"

只有在出现错误时示屏幕,用可以修正数据,修正后程序可以继续处理。

"N"

示屏幕的静默模式。如果到达被用事的断点,统处止,并置一些系字段。sy-subrc 1001sy-msgty  "S"sy-msgid  "00"sy-msgno  "344"sy-msgv1  "SAPMSSY3"sy-msgv2  "0131"

"P"

示屏幕的调试模式。如果到达被用事的断点,动转到 ABAP 调试器,这种方式主要用于调试过程。


update有以下可选值:

更新模式

作用

"A"

更新。被用程序的更新按照没有指定 COMMIT WORK 句和 AND WAIT 附加的方式行。也就是,数据更新被放到更新列里,由另一个专门的更新行,主程序一旦提交数据就继续执行,而不管提交的更新是否行完成。这种方式比适合于用一个事务码大量更新指定数据,比如维护主数据等。

"S"

更新。被用程序的更新按照指定了 COMMIT WORK 句和 AND WAIT 附加的方式行。也就是,数据更新被放到更新列里,由专门的更新行,但是主程序会等到数据提交完成,返回果信息后才继续执行。这种方式比适合于数据一致性要求比高,多个不同事务码连续处理。

"L"

本地更新。被用程序的更新按照 SET UPDATE TASK LOCAL 句的方式行。也就是,数据更新在主程序所在的程中完成,主程序必定等到被用事完成才继续执行。

2. Submit <program> and return
调用程式:
REPORT  ZTEST_CALL_PROG.
DATA: BEGIN OF w_data,
  fid1 TYPE string,
  num1 type i,
  num2 type i,
END OF w_data.
DATA: T_OUT LIKE W_DATA OCCURS 0 WITH HEADER LINE.
Do 10 TIMES.
  if sy-index < 4.
    t_out-fid1 = 'A'.
    t_out-num1 = sy-index.
    t_out-num2 = sy-index + 1.
  elseif sy-index < 7.
    t_out-fid1 = 'B'.
    t_out-num1 = sy-index + 1.
    t_out-num2 = sy-index + 2.
  else.
    t_out-fid1 = 'C'.
    t_out-num1 = sy-index.
    t_out-num2 = sy-index - 1.
  ENDIF.
  append t_out.
  ENDDO.
  export t_out to MEMORY id 'T_OUT'. "内表t_out的内存id为'T_OUT',被调用程式从这里取得数据.
  SUBMIT zwrite_date and RETURN.     "这里也可以用 submit zwrite_data with WITH s_aufnr p_aufnr
                                     "WITH s_mode 'N 给被调用程序传值.
  write: / 'justin'.


被调用程式,从调用程序存储在ABAP内存中取得要处理的数据.
REPORT  ZWRITE_DATE.
data: BEGIN OF w_data,
  fid1 type string,
  num1 type i,
  num2 type i,
 END OF w_data.
 data: t_out LIKE w_data OCCURS 0 WITH HEADER LINE.
 import t_out from MEMORY id 'T_OUT'.
 FREE MEMORY ID 'T_OUT'.        "清除MEMORY ID 为'T_OUT'的内容.
 loop at t_out.
   write: / ' ', t_out-fid1, t_out-num1, t_out-num2.
 ENDLOOP.
 write: sy-uline.


Other example:
   EXPORT rm16_lgort  FROM l_lgort
          rm16_werks  FROM p_plwrk
          rm16_matnr  FROM p_matnr  TO  MEMORY ID 'ZPHRRM13'.
  SUBMIT zphrrm13 AND RETURN.
  IMPORT mdezx mdpsx mdkp mdsta mdstal FROM MEMORY ID 'ZPHRRM13'.

0
0
查看评论

sap abap程序之间的调用

一,同步调用从一个程序同步调用其他的ABAP程序,有2种方式: 1,调用程序被打断,当被调用程序执行完毕之后,调用程序继续执行。如:CALL FUNCTION <function>SUBMIT <program> AND RETURNCALL TRANSACTION <...
  • champaignwolf
  • champaignwolf
  • 2015-04-27 11:15
  • 1868

ABAP--编写应用服务器执行外部命令的程序示例

2006年08月30日 14:53:00 1、相关PackageSBTC2、相关T-CODESM69:SM49 :3、SXPG_CALL_SYSTEM函数说明 Use this function module to do the following:. Check a users ...
  • softart
  • softart
  • 2007-12-14 11:12
  • 539

SAP实战中Submit的常见用法-调用标准程序

场景:系统MB52/MB51/MB5B等类似的报表,虽然数据很全面,执行效率也够快,但是经常会不满足用户需求(增添字段、添加查询条件等),很多ABAP会选择去COPY出标准程序,然后去做修改,强烈不推荐此种方式,弊端太大,容易使标准程序出现问题,且效率低(特别涉及MSEG等数据库表)。 我们可...
  • zhongguomao
  • zhongguomao
  • 2017-07-28 13:42
  • 677

java后台调用 SAP RFC的配置和调用

RFC  刚刚听到这个名称的时候只有一种感觉: 什么鬼?  后来百度了一下 ,来看看官方的解释:     RFC是SAP系统和其他(SAP或非SAP)系统间的一个重要而常用的双向接口技术,也被视为SAP与外部通信的基本协议。简单地说,RFC过程就是...
  • u013303551
  • u013303551
  • 2016-07-09 20:12
  • 2758

SAP 调用外部程序 (NCO、JCO)

SAP 的方法(函数)如何用其它语言实现,是SAP的funcation module 如果在外面实现,就是在SAP里创建一个FM,然后在外面用其它语言,JAVA,.net实现这个方法完成复杂功能。 在SAP外部启动一个服务,这个服务连接SAP的geteway service,当SAP调用RFC方法...
  • champaignwolf
  • champaignwolf
  • 2015-10-10 09:32
  • 1602

一步一步教你用SAP NCO3.0调用RFC(菜鸟必看)

一步一步教你用NCO调用RFC(菜鸟必看)   需要的工具: 开发工具:Microsoft Visual Studio 2010 C#环境 NCO3.0:sapnco30dotnet40P_8-20007347.zip(VS2010环境下必须这个版本)   可到此下...
  • szlaptop
  • szlaptop
  • 2012-10-11 11:12
  • 22431

调用SAP函数模块RFC

  • 2012-09-09 19:00
  • 50KB
  • 下载

ABAP调用外部WebService

ABAP调用外部WebService
  • SAPmatinal
  • SAPmatinal
  • 2016-12-20 14:19
  • 526

SAP 调用外部系统

1. SM59创建Destination (可选步骤) 2. SE80创建Proxy对象 3. LPCONFIG创建Logical Port 4. 写程序调用Proxy   REPORT ztest. DATA: proxy TYPE REF TO z0...
  • zhongguomao
  • zhongguomao
  • 2017-12-29 12:32
  • 176

SAP 调用外部系统

1. SM59创建Destination (可选步骤) 2. SE80创建Proxy对象 3. LPCONFIG创建Logical Port 4. 写程序调用Proxy   REPORT ztest. DATA: proxy TYPE REF TO z00co_zairport_i...
  • forever_crazy
  • forever_crazy
  • 2014-01-07 15:04
  • 1212
    个人资料
    • 访问:4673409次
    • 积分:65665
    • 等级:
    • 排名:第42名
    • 原创:1756篇
    • 转载:2558篇
    • 译文:101篇
    • 评论:344条
    博客专栏
    最新评论
    微信公众号
      为你推荐最新的博文~更有惊喜等着你