java 调用bapi_BAPI的简单实现步骤

java 调用bapi_BAPI的简单实现步骤一,创建FunctionModule1,在SE11,创建需要的structure(必须为flat类型,否则会出现ReferenceparametersarenotallowedwithRFC)2,在SE80,建Functiongroup3,在SE37,创建FunctionModule(import的参数入药是value传值)Note:一个FunctionGroup只能包含一个B…

大家好,又见面了,我是你们的朋友全栈君。

一,创建Function Module

1,在SE11,创建需要的structure (必须为flat类型,否则会出现Reference parameters are not allowed with RFC)

2,在SE80,建Function group

3,在SE37,创建Function Module(import的参数入药是value传值)

Note:一个Function

Group只能包含一个BAPI;参数传值;必须有有一个BAPIRETURN类型的EXPORT参数

二,封装

1,在SWO1,建Object Type

2,把Function Module作为一个Method加入,utilities->API

Methods->Add Method

3,release Object和Module。使在BAPI Browser 中可以看到。也就是外部能够调用。

三,调用

1,如在另一系统中用ABAP调用,先在SM59中建RFC联到有BAPI的R/3,(ZGOGO)

在SE38的程序中调用,Call Function “ZBAPIXXXXX” DESTINATION ZGOGO

EXPORTING …

2,如用JAVA调用

引入包;(不一定要用IBM的)

import com.sap.rfc.*;

import com.sap.rfc.exception.*;

import com.ibm.sap.bapi.*;

import com.ibm.sap.bapi.generated.*;

建立连接;调用。。。(See CALL_BAPI.java)

VBA for SAP

Private Sub CommandButton1_Click()

Set oFunction = CreateObject(“SAP.LogonControl.1”)

Set oConnection = oFunction.NewConnection

oConnection.Client = “500”

oConnection.Language = “EN”

oConnection.User = “user”

oConnection.Password = “pasword”

oConnection.ApplicationServer = “sap1.yok.com.cn”

oConnection.SystemNumber = “01”

result = oConnection.Logon(0, True)

Set ofun = CreateObject(“SAP.FUNCTIONS”)

Set ofun.Connection = oConnection

Set func = ofun.Add(“RFC_READ_TABLE”)

func.Exports(“QUERY_TABLE”) = “MARA”

If func.Call = True Then

Set oline = func.tables.Item(“DATA”)

Row = oline.rowcount

i = 1

Do While i <= Row

Cells(i, 1) =

Mid(Trim(oline.Value(i, 1)), 4, 22)

i = i + 1

Loop

Else

MsgBox “FAIL”

End If

End Sub

VBA2

Private Sub CommandButton1_Click()

Dim sapFunctionCtrl As

Object ‘Function Control (Collective object)

Dim sapConnection As

Object ‘Connection object

Dim theFunc As

Object ‘Function object

Set sapFunctionCtrl = CreateObject(“SAP.Functions”)

Set sapConnection = sapFunctionCtrl.Connection

sapConnection.Client = “800”

sapConnection.user = “user”

sapConnection.Language = “EN”

If sapConnection.logon(0, False) <>

True Then

MsgBox “No connection to R/3!”

End If

Set theFunc = sapFunctionCtrl.Add(“ZRFCPING”)

If theFunc.call Then ‘ call the RFC FM

MsgBox “RFC call is okay”

End If

sapFunctionCtrl.Connection.logoff

Set sapConnection = Nothing

Set sapFunctionCtrl = Nothing

End Sub

———————

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163915.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月24日 上午10:36
下一篇 2022年7月24日 上午10:36


相关推荐

  • 【Consul】Consul实践指导-Watch机制

    【Consul】Consul实践指导-Watch机制Watches是查看指定数据信息的一种方法,比如查看nodes列表、键值对、健康检查。当监控到更新时,可以调用外部处理程序——可以自定义。比如,发现健康状态发生变化可以通知外部系统健康异常。…

    2025年6月18日
    4
  • mediapipe手部关键点坐标

    mediapipe手部关键点坐标

    2026年3月15日
    2
  • __repr__ 方法的作用

    __repr__ 方法的作用Python 有一个内置的函数叫 repr 它能把一个对象用字符串的形式表达出来以便辨认 这就是 字符串表示形式 repr 就是通过 repr 这个特殊方法来得到一个对象的字符串表示形式的 如果没有实现 repr 当我们在控制台里打印一个向量的实例时 得到的字符串可能会是 Vectorobject 交互式控制台和调试程序 debugger 用 Vectorobject

    2026年2月23日
    3
  • 使用R中merge()函数合并数据[通俗易懂]

    使用R中merge()函数合并数据[通俗易懂]使用R中merge()函数合并数据在R中可以使用merge()函数去合并数据框,其强大之处在于在两个不同的数据框中标识共同的列或行。如何使用merge()获取数据集中交叉部分merge()最简单的形式为获取两个不同数据框中交叉部分。举例,获取cold.states和large.states完全匹配的数据。代码如下:&gt;merge(cold.states,large….

    2022年6月14日
    52
  • java for怎么跳出_java跳出for循环的方法

    java for怎么跳出_java跳出for循环的方法java 跳出 for 循环的方法发布时间 2020 06 2615 56 42 来源 亿速云阅读 193 作者 Leah 这篇文章将为大家详细讲解有关 java 跳出 for 循环的方法 文章内容质量较高 因此小编分享给大家做个参考 希望大家阅读完这篇文章后对相关知识有一定的了解 break 语句 break 用于完全结束一个循环 跳出循环体 不管是哪种循环 一旦在循环体中遇到 break 系统将完全结束循环 开始执行循

    2026年3月17日
    1
  • Qt设置QLineEdit控件不可编辑、密文输入、输入格式等小技巧

    Qt设置QLineEdit控件不可编辑、密文输入、输入格式等小技巧1 设置不可编辑 setReadOnly false 或 setEnabled false 或 setFocusPoli Qt NoFocus 无法获得焦点 自然无法输入 其他文本控件类似 或 hasAcceptabl false 2 setPlacehold 设置提示文字如图 搜索输入框 没有输入任何字符时

    2026年3月18日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号