Create user example

This code creates a new user. All the required information about the new user is embedded in the code:

 use SOAP::Lite;
 
 my $host = "http://localhost/webreports";
 
 # The login credentials for an existing admin user
 my $username = 'name';
 my $password = 'password';
 
 # The new user information
 my $newUserLogin = 'new_admin';
 my $newUserFullName = 'Mr. New User';
 my $newUserPassword = 'new_password';
 my $newUserRole = 'Administrator';
 
 my $service = SOAP::Lite->uri( $host . '?wsdl' )->proxy( $host );
 # this string includes embedded quotes by using backslash characters (\")
 my $loginXML = "<h:RequestHeaderElement xsi:type=\"LoginHeader\" " .
	" xmlns:h=\"http://schemas.example.com/webreports\
	" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " .
	" xmlns=\"http://schemas.example.com/webreports\
	" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" .
	" <username>$username</username>" .
	" <password>$password</password>" .
	"</h:RequestHeaderElement>";
 
 my $loginHeaders = SOAP::Header->type( 'xml' => $loginXML );
 
 my $newUserInfo = SOAP::Data->name( 'user' => \SOAP::Data->value(
	SOAP::Data->name( 'logonName' => $newUserLogin ),
	SOAP::Data->name( 'fullName' => $newUserFullName ),
	SOAP::Data->name( 'password' => $newUserPassword ),
	SOAP::Data->name( 'role' => $newUserRole ) ) );
 
 my $result = $service->CreateUser( $newUserInfo, $loginHeaders );
 PrintResult( $result, "CreateUserResponse" );
 
 sub PrintResult {
     my $result = shift;
     my $responseName = shift;
 
     if ( $result->fault ) {
         print "faultcode: " . $result->faultcode . "\n";
         print "faultstring: " . $result->faultstring . "\n";
     }
     else {   
         print $result->result . "\n";
         foreach my $answer ( $result->valueof( "//$responseName/a" ) )
             { print $answer . "\n"; }
     }
 }