Hola, Nacho.
>¿Puede alguien indicarme si el problema es que no acepta ese tipo de datos el SOAP?, y caso de ser así, ¿hay alguna forma de 'engañarlo' para poder devolver objetos a través de SOAP?
Efectivamente, no puedes pasar un objeto porque no es algo que SOAP soporte. ¿Qué tipo de objeto podría ser multiplataforma? Lo que te queda -siempre y cuando de ambas puntas del servicio web tengas VFP- es deshidratar el objeto (pasarlo a XML) y rehidratarlo del otro lado. Para hacer esto puedes escribir algo de código o recurrir a la clase wwXML de Rick Strahl (
www.west-wind.com).
Aunque si quieres que tu servicio web sea genérico, devuelve una hash table, no un objeto deshidratado. Se trata de una lista de pares nombre/valor, que si necesitas puedes levantar en un objeto en forma de propiedades/valor.
Por supuesto, en todos los casos hablamos de transferir propiedades. No hay forma de pasar objetos con su comportamiento, salvo que serializaras y transfirieras DLLs, pero esto ya sería el colmo de lo propietario.
Saludos y ¡felíz año!