楼主: saphe

VB调用SAP

[复制链接]
论坛徽章:
9
授权会员
日期:2009-01-09 16:16:37ITPUB元老
日期:2011-01-25 09:22:502010广州亚运会纪念徽章:网球
日期:2011-02-15 16:20:102011新春纪念徽章
日期:2011-02-18 11:42:482012新春纪念徽章
日期:2012-01-04 11:53:542014年新春福章
日期:2014-02-18 16:43:09马上有钱
日期:2014-02-18 16:43:09懒羊羊
日期:2015-03-04 14:52:112015年新春福章
日期:2015-03-06 11:58:18
21#
发表于 2008-11-12 15:24 | 只看该作者
你們的邏輯判斷相反的

If sapConnection.logon(0, False) Then
    MsgBox "Connection!"
Else
    MsgBox "error"
    Exit Sub
End If

使用道具 举报

回复
论坛徽章:
11
奥运会纪念徽章:排球
日期:2008-08-06 13:53:25Jeep
日期:2013-11-13 13:16:492013年新春福章
日期:2013-02-25 14:51:242012新春纪念徽章
日期:2012-01-04 11:51:22ITPUB9周年纪念徽章
日期:2010-10-08 09:32:262010新春纪念徽章
日期:2010-03-01 11:08:25生肖徽章2007版:猴
日期:2009-05-21 10:46:39生肖徽章2007版:虎
日期:2008-12-31 09:31:25生肖徽章2007版:狗
日期:2008-09-22 15:11:45奥运会纪念徽章:拳击
日期:2008-08-30 13:59:17
22#
发表于 2008-11-12 15:24 | 只看该作者
If sapConnection.logon(0, False) = True Then
MsgBox "No connection to R/3 System"
Exit Sub 'End program
End If
我試了下是否應該把
If sapConnection.logon(0, False) = True Then改成
If sapConnection.logon(0, False) = FALSE Then
但我調試不能成功建立PO並返回PO號碼,可能受到系統設置的影響。

使用道具 举报

回复
论坛徽章:
2
2011新春纪念徽章
日期:2011-02-18 11:42:49
23#
 楼主| 发表于 2008-11-12 15:25 | 只看该作者
Set functionCtrl = CreateObject("SAP.Functions")
Set sapConnection = functionCtrl.Connection
sapConnection.System = "DEV"
sapConnection.ApplicationServer = "192.168.10.88"

sapConnection.Client = "400"
sapConnection.user = "ABAP03"
sapConnection.password = "123888"
sapConnection.Language = "EN"
我修改成这样,调试了下

未命名.JPG (115.67 KB, 下载次数: 14)

未命名.JPG

使用道具 举报

回复
论坛徽章:
2
2011新春纪念徽章
日期:2011-02-18 11:42:49
24#
 楼主| 发表于 2008-11-12 15:36 | 只看该作者
原帖由 zhaowu91 于 2008-11-12 15:24 发表
If sapConnection.logon(0, False) = True Then
MsgBox "No connection to R/3 System"
Exit Sub 'End program
End If
我試了下是否應該把
If sapConnection.logon(0, False) = True Then改成
If sapConnection.logon(0, False) = FALSE Then
但我調試不能成功建立PO並返回PO號碼,可能受到系統設置的影響。

你修改了下就不会报错了?可我运行到poheader.Value("VENDOR") = Text1.Text时候,报出一个错误说要求对象,可我上面不是创建了吗?

使用道具 举报

回复
论坛徽章:
83
生肖徽章2007版:羊
日期:2009-03-18 14:00:34生肖徽章2007版:羊
日期:2009-02-28 10:00:44生肖徽章2007版:羊
日期:2009-03-20 14:47:19生肖徽章2007版:羊
日期:2009-03-22 11:39:08生肖徽章2007版:羊
日期:2009-03-23 14:01:04生肖徽章2007版:羊
日期:2009-06-12 12:46:14生肖徽章:羊
日期:2007-09-26 17:02:21生肖徽章:羊
日期:2007-09-26 17:02:14生肖徽章:羊
日期:2007-09-26 17:02:07生肖徽章:羊
日期:2007-09-26 12:34:37
25#
发表于 2008-11-12 16:40 | 只看该作者
有没载入BAPI的OCX呢??

使用道具 举报

回复
论坛徽章:
83
生肖徽章2007版:羊
日期:2009-03-18 14:00:34生肖徽章2007版:羊
日期:2009-02-28 10:00:44生肖徽章2007版:羊
日期:2009-03-20 14:47:19生肖徽章2007版:羊
日期:2009-03-22 11:39:08生肖徽章2007版:羊
日期:2009-03-23 14:01:04生肖徽章2007版:羊
日期:2009-06-12 12:46:14生肖徽章:羊
日期:2007-09-26 17:02:21生肖徽章:羊
日期:2007-09-26 17:02:14生肖徽章:羊
日期:2007-09-26 17:02:07生肖徽章:羊
日期:2007-09-26 12:34:37
26#
发表于 2008-11-12 16:43 | 只看该作者
VB忘记差不多的,delphi是要导入这两个OCX的!

使用道具 举报

回复
论坛徽章:
2
2011新春纪念徽章
日期:2011-02-18 11:42:49
27#
 楼主| 发表于 2008-11-12 16:59 | 只看该作者
VB也需要吗

使用道具 举报

回复
论坛徽章:
2
2011新春纪念徽章
日期:2011-02-18 11:42:49
28#
 楼主| 发表于 2008-11-13 13:52 | 只看该作者
原帖由 pocan0408 于 2008-11-12 14:58 发表
我測試後,是可以執行成功建立採購單,並傳回採購單號碼。


Dim functionCtrl As Object
Dim sapConnection As Object
Dim theFunc As Object
Dim PoNumber As String

Private Sub Command1_Click()

Set functionCtrl = CreateObject("SAP.Functions")
Set sapConnection = functionCtrl.Connection
sapConnection.System = "DEV"
sapConnection.ApplicationServer = "192.168.10.88"

sapConnection.Client = "400"
sapConnection.user = "ABAP03"
sapConnection.password = "123888"
sapConnection.Language = "EN"

If sapConnection.logon(0, False) = Ture Then
MsgBox "No connection to R/3 System"
Exit Sub 'End program
End If
Set theFunc = functionCtrl.Add("BAPI_PO_CREATE")


Dim poheader As Object
Dim poitems As Object
Dim poitemschedule As Object
Dim retMess As Object
Dim returnFunc As Boolean
Dim startzeil As Integer
Dim endcol As Integer
Dim the_name As String
Dim oCommit As Object

Set poheader = theFunc.exports.Item("PO_HEADER")
Set poitems = theFunc.tables.Item("PO_ITEMS")
Set poitemschedule = theFunc.tables.Item("PO_ITEM_SCHEDULES")

poheader.Value("VENDOR") = "0020000108"
poheader.Value("DOC_DATE") = "20081113"
poheader.Value("PURCH_ORG") = "1301"
poheader.Value("PUR_GROUP") = "003"
poheader.Value("CO_CODE") = "1300"
poheader.Value("DOC_TYPE") = "NB"

poitems.Rows.Add
poitems.Value(1, "PUR_MAT") = "000000001100005919"
poitems.Value(1, "PLANT") = "1301"
poitems.Value(1, "NET_PRICE") = "100"

poitems.Value(1, "TAX_CODE") = "J1"

poitemschedule.Rows.Add
poitemschedule.Value(1, "DELIV_DATE") = "20081120"
poitemschedule.Value(1, "QUANTITY") = "600"



returnFunc = theFunc.call
PoNumber = theFunc.imports("PURCHASEORDER")
Set retMess = theFunc.tables.Item("RETURN")
If retMess Is Nothing Then

MsgBox retMess.Value(1, "MESSAGE")
Else
MsgBox "Purchase Order No : " & PoNumber & "Created"
End If


End Sub
问下,为什么我带不出PO号,你是你可以的。但是我在SAP系统中用ABAP代码调用这个函数是可以创建成功的。

使用道具 举报

回复
论坛徽章:
0
29#
发表于 2008-11-13 14:03 | 只看该作者
我总觉的这是在调用RFC函数吧????这不是在调用BAPI吧????

调用BAPI的代码,怎么写????

使用道具 举报

回复
论坛徽章:
2
2011新春纪念徽章
日期:2011-02-18 11:42:49
30#
 楼主| 发表于 2008-11-13 14:05 | 只看该作者
BAPI肯定是RFC函数,RFC函数不一定是BAPI

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表