EDMqueryMethods are executable EDMmethods written in EDMexpressX and wrapped in an EDMquerySchema that may be compiled by the EDMexpressXcompiler as a method extension to an underlying EXPRESS Schema. EDMqueryMethods are executed by the EDMvirtualMachine
Unless there is a very good reason for not to, EDMmethods should be implemented as EDMqueryMethods. Not only does the EDMqueryMethod type provide the best support for input and output of data. It is also the only EDMmethod type that does not need the EDMmodelChecker and EDMmodelConverter add-on modules to execute.
To allow the EDMvirtualMachine to execute any of the EDMmethod types; EDMruleMethods and EDMmapMethods, the EDMsdk license will have to be extended by the optional modules EDMmodelChecker and EDMmodelConverter. However, the above is only applicable when the EDMmethods are executed in a local EDMdatabase by an EDMstandaloneClient. When invoked by an EDMthinClient in an EDMsixServer, it is the EDMsixServer license that determines which EDMmethod types that may be executed.
The major advantage of the EDMqueryMethod over the other EDMmethod types lies in the EDMquerySchema construct VIEW_ENTITY. The VIEW_ENTITY construct allows for definition of complex volatile entity types. These volatile entities may be instantiated and returned to the calling EDMqueryMethod as a QueryResult table. EDMqueryMethods are implemented as QUERY_FUNCTIONS in EDMquerySchemas.
The attached EDMquerySchemas below shows how some EDMqueryMethods are implemented with EDMexpressX.