EDMqueryMethods are executable EDMmethods written in EXPRESS-X and wrapped in an EDMquerySchema that may be compiled by the EDMexpressXcompiler as a method extention to an underlying EXPRESS Schema. EDMqueryMethods are executed by the EDMvirtualMachine
Unless there is a very good reason for not to, all 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 purchasing additional 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 EDMmodelServer, it is the EDMmodelServer 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 instanciated and returned to the calling EDMqueryMethod as a QueryResult table. EDMqueryMethods are implemented as QUERY_FUNCTIONS in EDMquerySchemas.
The EDMquerySchema below shows how the EDMqueryMethod "CheckModelCapacityUsed" is implemented with EDMexpressX