|
Hi,
here is an example to reset and unlock of one existing user id.
...
# exists user id in SAP?
$UserId = "TESTUSER";
$Iface = $Rfc->discover( "BAPI_USER_GET_DETAIL" );
$Iface->USERNAME( $UserId );
$Rfc->callrfc( $Iface );
foreach my $TblReturn( $Iface->tab('RETURN')->hashRows() )
{
my $Type = $TblReturn->{'TYPE'};
my $Message = $TblReturn->{'MESSAGE'};
if( $Type eq "E" )
{
... print error message ...
exit();
}
}
# reset password
$PasswordNew = "...";
$Iface = $Rfc->discover( "BAPI_USER_CHANGE" );
$Iface->USERNAME( $UserId );
my $Password = $Iface->parm('PASSWORD')->structure();
$Password->BAPIPWD($PasswordNew);
$Iface->PASSWORD($Password->value);
my $PasswordX = $Iface->parm('PASSWORDX')->structure();
my $PasswordXX = "X";
$PasswordX->BAPIPWD($PasswordXX);
$Iface->PASSWORDX($PasswordX->value);
my $Id = $Iface->parm('LOGONDATA')->structure();
$Id->BCODE(pack("H*","0000000000000000"));
$Iface->LOGONDATA($Id->value);
$Rfc->callrfc( $Iface );
foreach my $TblReturn( $Iface->tab('RETURN')->hashRows() )
{
my $Type = $TblReturn->{'TYPE'};
my $Message = $TblReturn->{'MESSAGE'};
if( $Type eq "E" )
{
... print error message ...
exit();
}
}
# unlock user
$Iface = $Rfc->discover( "BAPI_USER_UNLOCK" );
$Iface->USERNAME( $UserId );
$Rfc->callrfc( $Iface );
foreach my $TblReturn( $Iface->tab('RETURN')->hashRows() )
{
my $Type = $TblReturn->{'TYPE'};
my $Message = $TblReturn->{'MESSAGE'};
if( $Type eq "E" )
{
... print error message ...
exit();
}
}
...
Best regards,
Helmut |