使用SAP Connector for Microsoft.NET登录SAP,使用Powershell
我尝试使用SAP Connector for Microsoft.NET接口登录到SAP系统。我可以使用另一种方法登录,不使用SAP Connector,使用使用SAP Connector for Microsoft.NET登录SAP,使用Powershell,.net,powershell,sap-erp,sap-gui,.net,Powershell,Sap Erp,Sap Gui,我尝试使用SAP Connector for Microsoft.NET接口登录到SAP系统。我可以使用另一种方法登录,不使用SAP Connector,使用sapshcut,代码如下: #-Start the SAP GUI----------------------------------------- $SID = "t30.lan" $SAPGUI = $SAPGUIPath + "sapgui.exe" &
sapshcut
,代码如下:
#-Start the SAP GUI-----------------------------------------
$SID = "t30.lan"
$SAPGUI = $SAPGUIPath + "sapgui.exe"
& $SAPGUI $SID $InstanceNo
& $SAPGUIPath\sapshcut.exe -maxgui -system=t30 -client=110 -user=test -pw=test01 -language=DE
现在,我导入了用于Microsoft.NET的SAP连接器。我想用如下代码示例设置连接:
#-Function Get-Destination--------------------------------------------
Function Get-Destination {
#-Connection parameters---------------------------------------------
$cfgParams = New-Object SAP.Middleware.Connector.RfcConfigParameters
$cfgParams.Add("NAME", "Testsystem")
$cfgParams.Add("ASHOST", "t30.lan")
$cfgParams.Add("SYSNR", "01")
$cfgParams.Add("CLIENT", "110")
$cfgParams.Add("USER", "test")
$cfgParams.Add("PASSWD", "test01")
Return [SAP.Middleware.Connector.RfcDestinationManager]::GetDestination($cfgParams)
}
IsShutDown : False
Repository :
SystemAttributes :
TraceLevel : 0
User : test
AliasUser :
Client : 110
SystemNumber : 01
SystemID :
Language :
AppServerHost : t30.lan
AppServerService :
MessageServerHost :
MessageServerService :
LogonGroup :
SAPRouter :
Codepage :
PartnerCharSize :
UseSAPCodepages :
UseSymbolicNames : 0
LogonCheck : 1
SncMode :
SncMyName :
SncPartnerName :
SncLibraryPath :
SncQOP : 8
SncSSO : 1
UseSAPGui : 0
AbapDebug : 0
NoCompression : 0
NoBasXml : 0
Delta : 1
OnCharacterConversionError : 1
CharacterFaultIndicatorToken : #
PoolSize : 10
PeakConnectionsLimit : 10
MaxPoolSize : 10
PoolIdleTimeout : 3600
IdleTimeout : 600
ConnectionIdleTimeout : 600
RepositoryConnectionIdleTimeout : 600
IdleCheckTime : 600
MaxPoolWaitTime :
Monitor : SAP.Middleware.Connector.RfcDestinationMonitor
它不起作用了。我想我把参数设置错了,但我在网上找不到帮助。我得到了一个这样的日志,我认为它不起作用,因为OnCharacterConversationError:1
。我的控制台日志如下所示:
#-Function Get-Destination--------------------------------------------
Function Get-Destination {
#-Connection parameters---------------------------------------------
$cfgParams = New-Object SAP.Middleware.Connector.RfcConfigParameters
$cfgParams.Add("NAME", "Testsystem")
$cfgParams.Add("ASHOST", "t30.lan")
$cfgParams.Add("SYSNR", "01")
$cfgParams.Add("CLIENT", "110")
$cfgParams.Add("USER", "test")
$cfgParams.Add("PASSWD", "test01")
Return [SAP.Middleware.Connector.RfcDestinationManager]::GetDestination($cfgParams)
}
IsShutDown : False
Repository :
SystemAttributes :
TraceLevel : 0
User : test
AliasUser :
Client : 110
SystemNumber : 01
SystemID :
Language :
AppServerHost : t30.lan
AppServerService :
MessageServerHost :
MessageServerService :
LogonGroup :
SAPRouter :
Codepage :
PartnerCharSize :
UseSAPCodepages :
UseSymbolicNames : 0
LogonCheck : 1
SncMode :
SncMyName :
SncPartnerName :
SncLibraryPath :
SncQOP : 8
SncSSO : 1
UseSAPGui : 0
AbapDebug : 0
NoCompression : 0
NoBasXml : 0
Delta : 1
OnCharacterConversionError : 1
CharacterFaultIndicatorToken : #
PoolSize : 10
PeakConnectionsLimit : 10
MaxPoolSize : 10
PoolIdleTimeout : 3600
IdleTimeout : 600
ConnectionIdleTimeout : 600
RepositoryConnectionIdleTimeout : 600
IdleCheckTime : 600
MaxPoolWaitTime :
Monitor : SAP.Middleware.Connector.RfcDestinationMonitor
我不确定那是个错误。当您拥有rfc目标时,您可以使用目标的Ping()方法检查是否可以连接。您能否提供一些详细信息,说明您到底想要实现什么?如果您想登录对话框,您需要通过SAPgui/SAPgui自动化,如果您想调用RFC函数,您需要使用SAP连接器。另一种可能是在SAP中提供一个服务,并使用Invoke WebRequest或Invoke RestMethod从PowerShell调用它。Hello@ThomasErdösi我尝试用一个脚本显示交货通知,该脚本可以自动登录到我的SAP。我有一个与RFC一起工作的vbs脚本,它自动登录到sap,并显示那些交付账单,但我必须将其转换为powershell。但我不知道如何记录您是否提供了要转换的vbs脚本的基本部分?@ThomasErdösi,以下是我要转换到powershell的代码