SAP接口编程-RFC系列02 : Connection对象

Connection对象负责连接至SAP系统,其他对象,比如SAPFunctions都要指定Connection对象作为其属性。上篇的编程模型,图示如下:
这里写图片描述

查看 Connection 对象的属性和方法

在VBE中添加引用后,按下F2键转到对象浏览器界面(或者使用菜单【视图】-【对象浏览器】),可以看到SAPLogonCtrl包括SAPLongonControl和Connection两个类。在这里可以看到它们的各自的方法和属性。

Connection对象的重要属性

  • ApplicationServer:应用程序服务器,为IP地址或者字符串,String类型

  • System:GUI登陆界面设置的系统标识,String类型

  • SystemNumber:GUI登陆界面设置的实例编号,Long类型

  • SAPRouter:GUI登陆界面设置中的SAPRouter字符串,外网访问需要设置的路由字符串,String类型
    Client、User、Password、Language,很直观,不多说。

  • IsConnected: 连接的状态。使用Logon方法后,可以使用IsConneced属性判断连接的状态,共有5个值:

  • Const tloRfcNotConnected = 0

  • Const tloRfcConnected = 1

  • Const tloRfcConnectCancel = 2

  • Const tloRfcConnectParameterMissing = 4

  • Const tloRfcConnectFailed = 8

Connection对象的重要方法

Logon()方法
功能:登陆SAP
语法:Function Logon(hWnd, bSilent As Boolean) As Boolean
说明:Silent登陆是指在登陆的时候,不出现登陆对话框。需要在程序中指定登录到SAP系统的完整的信息:Application Server, System number, user, password, client, language

Logoff()方法
功能:注销SAP
语法:Sub Logoff()

##晚绑定
代码中,我们使用了Set logonControl = New SAPLogonControl语句。这是早绑定的使用方法。也可以用Set sapLogon = CreateObject(“SAP.LogonControl.1”)进行晚绑定。晚绑定允许在VBE中不添加SAPLogonControl,也可以使用。原理是系统注册表中存放了组件的CLASSID。

晚绑定示例

Dim sapLogon As Object
Dim sapConnection As Object

Public Sub Logon_LateBinding()
    Set sapLogon = CreateObject("SAP.LogonControl.1")
    Set sapConnection = sapLogon.NewConnection()
    
    Call sapConnection.Logon(0, False)
    
    Debug.Print sapConnection.IsConnected
End Sub

Silent Logon

Silent logon使用代码中指定的用户名和密码,登录到指定的SAP系统,在代码中必须填充完整的登陆信息。示例如下:

Dim sapLongonControl As SAPLogonCtrl.SAPLogonControl
Dim sapConnection As SAPLogonCtrl.Connection

Public Sub ConnectSAP()
    Set sapLongonControl = CreateObject("SAP.LogonControl.1")
    Set sapConnection = sapLongonControl.NewConnection
    
    ' Fill all required properties
    With sapConnection
        .System = "XXX"                    '系统标识
        .ApplicationServer = "sap-dev"     '应用服务器,一般为IP地址
        .SAPRouter = "/H/XXX.XX.XXX.XX/H/" '外网连接的SAP路由
        .SystemNumber = "00"               '实例编号
        .Client = "800"
        .User = "xxxx"
        .Password = "xxxx"
    End With
    
    Call sapConnection.Logon(0, True) ' hWnd, Silent Logon
    If sapConnection.IsConnected = tloRfcConnected Then
        MsgBox "OK"
    Else
        MsgBox "Error code:" & sapConnection.IsConnected
    End If
    
    sapConnection.Logoff
End Sub

参考资料

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值