Resultado devuelto por el servicio:

NULL
							
<?php

require_once 'nusoap/nusoap.php';

class Client04
{
    const SERVICE_NAME = '/apps/soap/service04.php?wsdl';
    const FUNCTION_NAME = 'findEmployeesByName';

    private $client;
    private $log;
    private $result;

    public function __construct()
    {
        $wsdl = "http://{$_SERVER['HTTP_HOST']}" . self::SERVICE_NAME;
        $this->client = new nusoap_client($wsdl);
        if (($error = $this->client->getError())) {
            $this->log("error conectado con el servicio SOAP: $error");
            $this->client = null;
        }
    }

    public function getResult()
    {
        return $this->result;
    }

    public function getLog()
    {
        return $this->log;
    }

    public function run($name)
    {
        if ($this->client == null) {
            return false;
        }

        $this->result = null;
        $this->log = array();

        $params=array(
            'name' => $name,
        );

        $this->log('SERVICE ' . self::FUNCTION_NAME . ' REQUEST START');
        $result = $this->client->call(self::FUNCTION_NAME, $params);
        $this->log('SERVICE ' . self::FUNCTION_NAME . ' REQUEST FINISHED');

        if (($error = $this->client->getError())) {
            $this->log('Ha ocurrido algún error');
            $this->log($error);
            return false;
        } else {
            $this->log('Todo ok');
            $this->result = $result;
            return true;
        }
    }

    private function log($message)
    {
        $this->log[] = $message;
    }
}
<?php

require_once 'nusoap/nusoap.php';

$service = 'service04';

$server = new soap_server();

$server->configureWSDL($service);

$server->wsdl->addComplexType('employeeData','complexType','struct','all','',
    array(
        'id' => array('name'=>'id','type'=>'xsd:int'),
        'name' => array('name'=>'name','type'=>'xsd:string'),
        'department' => array('name'=>'department','type'=>'xsd:string'),
    )
);

$server->wsdl->addComplexType('employeeDataArray','complexType','array','','SOAP-ENC:Array',
    array(),
    array(
        array(
            'ref' => 'SOAP-ENC:arrayType',
            'wsdl:arrayType' => 'tns:employeeData[]',
        )
    )
);

            
$input_array = array('name' => 'xsd:string');
$return_array = array('status' => 'xsd:string', 'message' => 'xsd:string', 'result' => 'tns:employeeDataArray');
$server->register(
    'findEmployeesByName',
    $input_array, 
    $return_array, 
    "urn:$service",
    "urn:$service#findEmployeesByName",
    'rpc', 
    'encoded', 
    'Devuelve los empleado que cuyo nombre coincida'
);
            

$server->service(file_get_contents('php://input'));

function findEmployeesByName($name)
{
    $employees = array(
        array('id' => 1, 'name' => 'Jose Perez', 'department' => 'Ventas'),
        array('id' => 2, 'name' => 'Juan Ramirez', 'department' => 'Ventas'),
        array('id' => 3, 'name' => 'Jose Manuel Gonzalez', 'department' => 'Administracion'),
        array('id' => 4, 'name' => 'Juan Jose Garcia', 'department' => 'Recursos Humanos'),
    );

    $result = array();
    $name = strtoupper($name);

    foreach ($employees as $employee) {
        if (preg_match("/$name/", strtoupper($employee['name'])) !== 0) {
            $result[] = $employee;
        }
    }

    $status = 'ok';
    $message = count($result) . ' empleados encontrados';

    return array('status' => $status, 'message' => $message, 'result' => $result);
}