Here the same thing but passing a VDC object and a vApp template name as inputs (so you do not have to pass a VCD host)
var queryService = vdc.getHost().getQueryService();
var expression = new VclExpression(VclQueryVAppTemplateField.NAME, vAppTemplateName, VclExpressionType.EQUALS);
var filter = new VclFilter(expression);
var params = new VclQueryParams();
params.setFilter(filter);
var vAppTemplates = new Array();
var resultSet = queryService.queryRecords(VclQueryRecordType.VAPPTEMPLATE, params);
while (resultSet != null) {
var records = resultSet.getRecords(new VclQueryResultVAppTemplateRecord());
//System.log(records.length + " records found");
for each (var record in records) {
if (record.vdc == vdc.getReference().href) {
var vAppTemplateRef = new VclReference();
vAppTemplateRef.href = record.href;
vAppTemplateRef.name = record.name;
vAppTemplateRef.type = record.type;
vAppTemplates.push(vdc.getHost().getEntityByReference(VclEntityType.VAPP_TEMPLATE, vAppTemplateRef));
}
}
resultSet = resultSet.getNextPage();
}
return vAppTemplates;
Christophe.