
#-Begin-----------------------------------------------------------------
#-Sub Load-NCo--------------------------------------------------------
Function Load-NCo {
$ScriptDir = $PSScriptRoot
$Size = [System.IntPtr]::Size
if ($Size -eq 4) {
$Path = $ScriptDir + "\x86\"
}
elseif ($Size -eq 😎 {
$Path = $ScriptDir + "\x64\"
}
[Reflection.Assembly]::LoadFile($Path + "sapnco.dll") > $Null
[Reflection.Assembly]::LoadFile($Path + "sapnco_utils.dll") > $Null
}
#-Function Get-Destination--------------------------------------------
Function Get-Destination {
#-Connect paramters-----------------------------------------------
$cfgParams = New-Object SAP.Middleware.Connector.RfcConfigParameters
$cfgParams.Add("NAME", "TEST")
$cfgParams.Add("ASHOST", "ABAP")
$cfgParams.Add("SYSNR", "00")
$cfgParams.Add("CLIENT", "001")
$cfgParams.Add("USER", "BCUSER")
$SecPasswd = Read-Host -Prompt "Passwort" -AsSecureString
$ptrPasswd = [Runtime.InteropServices.Marshal]::SecureStringToBStr($SecPasswd)
$Passwd = [Runtime.InteropServices.Marshal]::PtrToStringBStr($ptrPasswd)
$cfgParams.Add("PASSWD", $Passwd)
Return [SAP.Middleware.Connector.RfcDestinationManager]::GetDestination($cfgParams)
}
#-Sub Invoke-SAPFunctionModule----------------------------------------
Function Invoke-SAPFunctionModule {
$destination = Get-Destination
#-Metadata--------------------------------------------------------
Try {
[SAP.Middleware.Connector.IRfcFunction]$bapiCreateUser =
$destination.Repository.CreateFunction("BAPI_USER_CREATE1")
[SAP.Middleware.Connector.IRfcFunction]$bapiTransactionCommit =
$destination.Repository.CreateFunction("BAPI_TRANSACTION_COMMIT")
}
Catch [SAP.Middleware.Connector.RfcBaseException] {
Write-Host "Metadaten-Fehler"
Break
}
#-Set import parameters-------------------------------------------
$bapiCreateUser.SetValue("USERNAME", "MYUSER")
[SAP.Middleware.Connector.IRfcStructure]$imPassword =
$bapiCreateUser.GetStructure("PASSWORD")
$imPassword.SetValue("BAPIPWD", "initial")
[SAP.Middleware.Connector.IRfcStructure]$imAddress =
$bapiCreateUser.GetStructure("ADDRESS")
$imAddress.SetValue("FIRSTNAME", "My")
$imAddress.SetValue("LASTNAME", "User")
$imAddress.SetValue("FULLNAME", "MyUser")
#-Open context----------------------------------------------------
[SAP.Middleware.Connector.RfcSessionManager]::BeginContext($destination) > $Null
#-Call function module--------------------------------------------
Try {
#-Create user-------------------------------------------------
$bapiCreateUser.Invoke($destination)
[SAP.Middleware.Connector.IRfcTable]$return =
$bapiCreateUser.GetTable("RETURN")
ForEach ($line in $return) {
Write-Host $line.GetValue("TYPE") "-" $line.GetValue("MESSAGE")
}
#-Commit------------------------------------------------------
$bapiTransactionCommit.Invoke($destination)
}
Finally {
#-Close context-----------------------------------------------
[SAP.Middleware.Connector.RfcSessionManager]::EndContext($destination) > $Null
}
}
#-Sub Main------------------------------------------------------------
Function Main () {
If ($PSVersionTable.PSVersion.Major -ge 3) {
Load-NCo
Invoke-SAPFunctionModule
}
}
#-Main----------------------------------------------------------------
Main
#-End-------------------------------------------------------------------
#-Begin-----------------------------------------------------------------
#-Sub Load-NCo--------------------------------------------------------
Function Load-NCo {
$ScriptDir = $PSScriptRoot
$Size = [System.IntPtr]::Size
if ($Size -eq 4) {
$Path = $ScriptDir + "\x86\"
}
elseif ($Size -eq 😎 {
$Path = $ScriptDir + "\x64\"
}
[Reflection.Assembly]::LoadFile($Path + "sapnco.dll") > $Null
[Reflection.Assembly]::LoadFile($Path + "sapnco_utils.dll") > $Null
}
#-Function Get-Destination--------------------------------------------
Function Get-Destination {
#-Connect parameters----------------------------------------------
$cfgParams = New-Object SAP.Middleware.Connector.RfcConfigParameters
$cfgParams.Add("NAME", "TEST")
$cfgParams.Add("ASHOST", "ABAP")
$cfgParams.Add("SYSNR", "00")
$cfgParams.Add("CLIENT", "001")
$cfgParams.Add("USER", "BCUSER")
$SecPasswd = Read-Host -Prompt "Passwort" -AsSecureString
$ptrPasswd = [Runtime.InteropServices.Marshal]::SecureStringToBStr($SecPasswd)
$Passwd = [Runtime.InteropServices.Marshal]::PtrToStringBStr($ptrPasswd)
$cfgParams.Add("PASSWD", $Passwd)
Return [SAP.Middleware.Connector.RfcDestinationManager]::GetDestination($cfgParams)
}
#-Sub Invoke-SAPFunctionModule----------------------------------------
Function Invoke-SAPFunctionModule {
$destination = Get-Destination
#-Metadata--------------------------------------------------------
Try {
[SAP.Middleware.Connector.IRfcFunction]$bapiDeleteUser =
$destination.Repository.CreateFunction("BAPI_USER_DELETE")
[SAP.Middleware.Connector.IRfcFunction]$bapiTransactionCommit =
$destination.Repository.CreateFunction("BAPI_TRANSACTION_COMMIT")
}
Catch [SAP.Middleware.Connector.RfcBaseException] {
Write-Host "Metadaten-Fehler"
Break
}
#-Set import parameters-------------------------------------------
$bapiDeleteUser.SetValue("USERNAME", "MYUSER")
#-Open context----------------------------------------------------
[SAP.Middleware.Connector.RfcSessionManager]::BeginContext($destination) > $Null
#-Call function module--------------------------------------------
Try {
#-Delete user-------------------------------------------------
$bapiDeleteUser.Invoke($destination)
[SAP.Middleware.Connector.IRfcTable]$return =
$bapiDeleteUser.GetTable("RETURN")
ForEach ($line in $return) {
Write-Host $line.GetValue("TYPE") "-" $line.GetValue("MESSAGE")
}
#-Commit------------------------------------------------------
$bapiTransactionCommit.Invoke($destination)
}
Finally {
#-Close context-----------------------------------------------
[SAP.Middleware.Connector.RfcSessionManager]::EndContext($destination) > $Null
}
}
#-Sub Main------------------------------------------------------------
Function Main () {
If ($PSVersionTable.PSVersion.Major -ge 3) {
Load-NCo
Invoke-SAPFunctionModule
}
}
#-Main----------------------------------------------------------------
Main
#-End-------------------------------------------------------------------
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
20 | |
8 | |
3 | |
3 | |
3 | |
3 | |
3 | |
3 | |
2 | |
2 |