In SOAP this is not possible because you can't assign to properties and hope to retrieve these property values. There are a number of different approaches to handle these scenarios:
Not a likely scenario though is it? <g> The second option is quite easy to implement and allows you to return a standard return value such as a boolean or string *and* also give error info back to the client application. To do this use code like this in the Web Service:
IF !loCustomer.Validate()
ERROR "Validation failed: " + loCustomer.cErrorMsg
RETURN .F.
ENDIF
On the client this method can be picked up like this:
llResult = loProxy.Save()
IF loProxy.lError
MessageBox(loProxy.cErrormsg) && Show the message from above
RETURN
ENDIF
The XML returning scenarios involve that every request returns an XML document. This can be tedious, but you can build an easy error manager that can generate an XML error message block for you automatically. wwXML::CreateErrorXML() works fairly well for this, although you need to wrap this with a document element node to make valid XML.