用VB调用RFC,将数据写入SAP!

来源:互联网 发布:在线监测设施数据造假 编辑:程序博客网 时间:2024/04/29 14:17
 

SAP这个玩意儿就是门槛太高,其实也不太难。在网上找个资料都很难,下面我把我做的这个实例公开给大家,希望大家能够有所启发。

谁说VB过时了,我觉得还可以!这个就是VB的实例!

+++++++++++++++++++++++ 实例:调用上面定义的ZRFC_01 以表为参数传入RFC +++++++++++++++

Private Sub CmdAdd_Click()
'添加记录
Dim logname As String, password As String
Dim xi
Dim func As Object
Dim TT As Object

    Set Functions = CreateObject("Sap.Functions.unicode")   ' 创建RFC的本地对象
    Set Connect = Functions.Connection                 ' 设置连接
   
    Connect.ApplicationServer = "128.1.1.95"
    Connect.Client = "800"
    Connect.SystemNumber = "00"
    Connect.Language = "EN"
    Connect.User = "ZCONN"
    Connect.password = "****"


    If Not Connect.logon(0, True) Then              ' 软件登录SAP并判断

      MsgBox "登录SAP R/3失败,请重新登录!", vbOKOnly + vbExclamation, "系统提示"
      Command1.SetFocus
    Else ' 登录SAP成功


       
        Set func = Functions.Add("ZRFC_01")
        Set TT = func.tables("ZTEMPTABLE")
        func.Exports("ACTION") = "CREATE"

        With TT
            'Next we set fields to obtain
            'Refresh table
            TT.FreeTable
            'Then set values,类似与ADDNEW
           
            'xi是获取当前表的行数,以便定位记录行
            '此处在赋值时,用字段名称来表示列,也可以用数字来表示,比如TT(xi, 1) = "iii"
            '注意:行和列都是从1开始,不是从0开始计数
            TT.Rows.Add
            xi = TT.rowcount    
            TT(xi, "ZUSERID") = "iii"  
            TT(xi, "ZPASSWD") = "你好北京"
           
            TT.Rows.Add
            xi = TT.rowcount
            TT(xi, "ZUSERID") = "ooo"
            TT(xi, "ZPASSWD") = "我好!"
           
            TT.Refresh
           
        End With

        If func.call = True Then
         
          x = func.imports("RETURN")
          y = func.imports("ERRNUM")
         
          Debug.Print "x:" & x
          Debug.Print "y:" & y

        Else
            MsgBox "call failed!"
        End If

    End If
    Connect.LogOff
End Sub

原创粉丝点击