SAP 3.0 定义:
引用:SAP.Middleware.Connector
引用文件:sapnco,sapnco_utils
Public Destination As RfcDestination 'SAP Connector3.0 的RFC源
Public SapFunction As IRfcFunction 'SAP RFC函数调用
Public table As IRfcTable '调用到的RFC SAP table
SAP 3.0 配置连接类:(也可以放在APP.Config里面)
Public Class MyConfig
Implements IDestinationConfiguration '继承接口
Public Function ChangeEventsSupported() As Boolean Implements SAP.Middleware.Connector.IDestinationConfiguration.ChangeEventsSupported
Return False
End Function
Public Event ConfigurationChanged(destinationName As String, args As SAP.Middleware.Connector.RfcConfigurationEventArgs) Implements SAP.Middleware.Connector.IDestinationConfiguration.ConfigurationChanged '事件
Public Function GetParameters(destinationName As String) As SAP.Middleware.Connector.RfcConfigParameters Implements SAP.Middleware.Connector.IDestinationConfiguration.GetParameters
Dim parms As RfcConfigParameters = New RfcConfigParameters()
If ("dev_000".Equals(destinationName)) Then
parms.Add(RfcConfigParameters.AppServerHost, "11,11,11,11") 'SAP主机IP
parms.Add(RfcConfigParameters.SystemNumber, "00") 'SAP实例
parms.Add(RfcConfigParameters.User, "user") ' 用户名
parms.Add(RfcConfigParameters.Password, "123") '密码
parms.Add(RfcConfigParameters.Client, "300") ' Client
parms.Add(RfcConfigParameters.Language, "EN") '登陆语言
parms.Add(RfcConfigParameters.PoolSize, "5")
parms.Add(RfcConfigParameters.MaxPoolSize, "10")
' parms.Add(RfcConfigParameters.IdleTimeout, "60")
parms.Add(RfcConfigParameters.Codepage, "8400") ‘中文编码
Return parms
ElseIf ("prd_000".Equals(destinationName)) Then
parms.Add(RfcConfigParameters.AppServerHost, "11,11,11,11") 'SAP主机IP
parms.Add(RfcConfigParameters.SystemNumber, "00") 'SAP实例
parms.Add(RfcConfigParameters.User, "user") ' 用户名
parms.Add(RfcConfigParameters.Password, "123") '密码
parms.Add(RfcConfigParameters.Client, "800") ' Client
parms.Add(RfcConfigParameters.Language, "EN") '登陆语言
parms.Add(RfcConfigParameters.PoolSize, "5")
parms.Add(RfcConfigParameters.MaxPoolSize, "10")
' parms.Add(RfcConfigParameters.IdleTimeout, "60")
parms.Add(RfcConfigParameters.Codepage, "8400") ‘中文编码
Return parms
Else
Return Nothing
End If
End Function
End Class
SAP3.0 连接SAP
Public Sub ConnectSAP()
Dim ID As IDestinationConfiguration = New MyConfig() '继承
RfcDestinationManager.RegisterDestinationConfiguration(ID)
Try
If GetSapValue = "DEV" Then
Destination = RfcDestinationManager.GetDestination("dev_000") '连接SAP, SAPConnector 3.0方式 DEV SYSTEM
ElseIf GetSapValue = "PRD" Then
Destination = RfcDestinationManager.GetDestination("prd_000") '连接SAP, SAPConnector 3.0方式 PRD SYSTEM
End If
Catch ex As Exception
MyMsgBox("提示", ex.Message.ToString)
Exit Sub
End Try
End Sub
SAP 3.0 使用:
Try
SapFunction = Destination.Repository.CreateFunction("YRFC001") '建立一个函数对象
SapFunction.SetValue("P_MATNR", txtMaterialNo.Text) '传递参数
SapFunction.SetValue("P_WERKS", "1000")
SapFunction.Invoke(Destination) '激活提交
GetTable = SapFunction.GetTable("YTABLE") '返回表 The backend has added one more line to it.
Catch ex As Exception
MyMsgBox("提示", ex.Message.ToString)
Exit Sub
End Try
SAP 3.0客户端运行库:
NCo303_Net40_x86 FOR.NET 4.0
相关文档:NCo_30_ProgrammingGuide