I've spent the last 1.5 days trying to use the GetAttributeValuesByName function in the SOAP Server. I have tested on 3.26.2 and 3.28.5 (and I've checked the code in 3.28.6 - it is identical).
It appears that the GetAttributeValuesByName function in soap_api_asset_service.inc calls the getAttributeValuesByName function in asset_manager.inc. This second function expects an array of asset ids, yet the first function passes only a string. The function then fails to return a value but does not error out (the second function contains the line
if (empty($assetids)) return Array();
).
Attempts to send an array of arrays to the initial function fail.
I have tested this in both Perl and PHP. I've been able to use both languages to interact successfully with the Server.
If I modify the following line in soap_api_asset_service.inc
Seems like if you have just one string in the array then nothing is returned. If there is there is more than one string in the array then it works. The second string can even be empty. So
Ahh, it is because it is expecting an array (but a string is passed) and is trying to loop through the array on the asset manager call. Can confirm and posted a bug report for it here