«TABLE_NOT_AVAILABLE» .net SAP Conector в Powershell
Я пишу сценарий Powerhsell, открывающий счет за заказ. Прежде всего я установил соединение, это работает, потому что я тестировал его с помощью sap gui. у меня есть тот же сценарий, написанный на vbs, и я хочу его перевести. я получаю эту ошибку:
Ausnahme beim Aufrufen von "Invoke" mit 1 Argument(en): "TABLE_NOT_AVAILABLE"
In C:\Users\x\Desktop\script.ps1:70 Zeichen:9
+ $rfcFunction.Invoke($destination)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : RfcAbapException
Но я знаю, что это должен быть этот каталог. что не так с моим сценарием до этого момента.
Мой скрипт в PowerShell пока что:
#load .net sap connector
Function Load-NCo {
$CurrentDir = Get-Location
[System.IO.Directory]::SetCurrentDirectory($CurrentDir.Path)
$rc = [Reflection.Assembly]::LoadFile("C:\Program Files\SAP\SAP_DotNetConnector3_Net40_x64\" + "sapnco.dll")
$rc = [Reflection.Assembly]::LoadFile("C:\Program Files\SAP\SAP_DotNetConnector3_Net40_x64\" + "sapnco_utils.dll")
}
Function Get-Destination2 ([String]$TableName) {
#-Verbindungsparamter---------------------------------------------
$cfgParams = New-Object SAP.Middleware.Connector.RfcConfigParameters
$cfgParams.Add("NAME", "SAPconnect")
$cfgParams.Add("ASHOST", "xxx.xxx.xxx.xxx")
$cfgParams.Add("SYSNR", "xx")
$cfgParams.Add("CLIENT", "xxx")
$cfgParams.Add("USER", "testuser")
$cfgParams.Add("SYSID ","Txx")
$cfgParams.Add("LANG","DE")
$cfgParams.Add("PASSWD", "TestX")
$destination = [SAP.Middleware.Connector.RfcDestinationManager]::GetDestination($cfgParams)
#-Metadata--------------------------------------------------------
$rfcFunction = `
$destination.Repository.CreateFunction("RFC_READ_TABLE")
#-Call function module--------------------------------------------
$rfcFunction.SetValue("query_table", $TableName)
$rfcFunction.SetValue("DELIMITER", ";")
$rfcFunction.Invoke($destination)
Write-Host [SAP.Middleware.Connector.RfcDestinationManager]::GetDestination($cfgParams)
}
Load-NCo
Get-Destination2("Z_GET_ARCHIVE_FILE_URL")
1 ответ
Согласно этому руководству по использованию RFC_READ_TABLE для запроса таблиц SAP . Эта ошибка возникает из-за того, что здесь передано неверное имя таблицы:
$rfcFunction.SetValue("query_table", $TableName)
Для устранения неполадок попробуйте написать
$rfcFunction
а также
$destination
в консоль:
$rfcFunction
$destination
$rfcFunction.Invoke($destination)