Wow. I must say this is a total mystery to me. I don't know where any of this stuff comes from!
The action part of this command is really easy though, using a much simpler method:
<?xml version="1.0" encoding="utf-16"?>
<command id="817" name="Find Actor" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>XJson.Raw</cmdType>
<cmdString>GUI.ActivateWindow&&"window": "video", "parameters": [ "videodb://1/4/{1}" ]</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<phrase>Find, Search, Show</phrase>
<phrase>film, films, movie, movies</phrase>
<phrase>with</phrase>
<payloadFromXML phraseOnly="False" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone">XbmcPayloads\xbmcMovieActors.xml</payloadFromXML>
</command>
The problem is with the creation of the payloadXML. It is actually quite easy if you are using the XSql plugin, but I have no idea how to do it using XJson!
If you are using the XSql plugin you can go to plugin settings and add the following to the table "Output (XML Payload Files)"
create a new row at the bottom with
Type: Video
Query: select idActor,strActor from actors where idActor in (select idActor from actorlinkmovie)
Filename: xbmcMovieActors
...and it's up to you if you want to select "sub" which means you only need to say part of the actors name.