java 调用bapi_BAPI的简单实现步骤

一,创建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

---------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BAPI_PRODORD_CREATE是SAP系统中的一个标准的BAPI函数模块,用于创建生产订单。在调用这个BAPI函数模块之前,你需要先准备好一些数据,包括: 1. 订单类型 2. 生产版本 3. 生产工厂 4. 产品编号 5. 订单数量 6. 计划开始日期和结束日期 7. 工作中心 调用BAPI_PRODORD_CREATE的具体步骤如下: 1. 使用Function Module 'BAPI_TRANSACTION_COMMIT'开启事务处理。 2. 创建一个Function Module对象。 3. 设置Function Module的输入参数。 4. 调用Function Module执行BAPI_PRODORD_CREATE。 5. 使用Function Module 'BAPI_TRANSACTION_COMMIT'提交事务。 下面是一个简单的ABAP代码示例,演示如何调用BAPI_PRODORD_CREATE。 ``` DATA: lv_order_type TYPE AUFART, lv_production_version TYPE VERID, lv_plant TYPE WERKS_D, lv_material TYPE MATNR, lv_quantity TYPE MENG07, lv_planned_start_date TYPE D, lv_planned_finish_date TYPE D, lv_work_center TYPE ARBPL. *设置输入参数 lv_order_type = 'PP01'. lv_production_version = '0001'. lv_plant = '1000'. lv_material = 'M-01'. lv_quantity = 100. lv_planned_start_date = '20210801'. lv_planned_finish_date = '20210831'. lv_work_center = 'WC-01'. *创建一个Function Module对象 CALL FUNCTION 'BAPI_PRODORD_CREATE' EXPORTING order_type = lv_order_type production_version = lv_production_version plant = lv_plant material = lv_material quantity = lv_quantity planned_start_date = lv_planned_start_date planned_finish_date = lv_planned_finish_date work_center = lv_work_center IMPORTING order_number = lv_order_number EXCEPTIONS OTHERS = 1. *提交事务处理 CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. ``` 以上示例代码仅供参考,具体实现方式可能因SAP系统版本和业务需求而异。如果你需要更加详细的帮助,请参考SAP官方文档或者咨询SAP开发专家。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值