DataCacheSpecification class: Difference between revisions
From Catglobe Wiki
More actions
CGHelpdesk (talk | contribs) No edit summary  | 
				CGHelpdesk (talk | contribs) No edit summary  | 
				||
| Line 8: | Line 8: | ||
|Description=Instanciate a new instance using the resource id of a datacache}}  | |Description=Instanciate a new instance using the resource id of a datacache}}  | ||
{{CGscriptConstructors_Template|Parameters=  | {{CGscriptConstructors_Template|Parameters=  | ||
{{CGscriptParameters_Template|Type=string|Name=  | {{CGscriptParameters_Template|Type=string|Name=ResourceName|Description=Resource name of the new DataCache|Comma=,}}{{CGscriptParameters_Template|Type=array|Name=Questionnaire Ids|Description=List of Questionnaires to use in the creation. Must all belong to same template}}  | ||
|Description=Create a new datacache using quick setup}}  | |Description=Create a new datacache using quick setup}}  | ||
|Methods=  | |Methods=  | ||
Revision as of 03:14, 8 May 2014
DataCacheSpecification
Represents a DataCache specification.
Constructors
- () - Instanciate a new instance using the current context datacache
 - (number ResourceId "Resource Id of the DataCache") - Instanciate a new instance using the resource id of a datacache
 - (string ResourceName "Resource name of the new DataCache", array Questionnaire Ids "List of Questionnaires to use in the creation. Must all belong to same template") - Create a new datacache using quick setup
 
Methods
- Empty AddFilter(string filterQuestionLabel "Question to apply filter to. If empty, then clear current filters", string filterValue "Value of the filter") - Add a filter to the DataCache
 - AnyType EvalWhere(string whereExpression "The expression to execute. It must contain 'where' and NOT start with a equal sign, and have 1 and only one semicolon in it") - Evaluate a single where expression up against the current DataCache
 - Dictionary EvalWhere(Dictionary whereExpressions "The expressions to execute. They must contain 'where' and MAY start with a equal sign, and have 1 and only one semicolon in it") - Evaluate a number of where expressions up against the current DataCache. If there are 2 or more expressions, the result is cached. Context weight and filters are ignored.
 - Dictionary EvalWhere(Dictionary whereExpressions "The expressions to execute. They must contain 'where' and MAY start with a equal sign, and have 1 and only one semicolon in it", string weight "Column name of the weight to use in filter") - Evaluate a number of where expressions up against the current DataCache using a weight. If there are 2 or more expressions, the result is cached. Context weight and filters are ignored.
 - Empty MakeContext() - Make the current DataCache the context DataCache
 - Empty Save() - Save the DataCache
 - string ToString() - The string representation of the object.
 
Properties
- bool AutoUpdate { get; set; } - Get/Set Auto Update
 - bool BuildWithWeight { get; set; } - Get/Set if the DataCache should be built using weights
 - number CachedRecords { get;  } - How many records does the DataCache currently hold
 - array ColumnNames { get;  } - List of Column names
 - bool Completed { get; set; } - Get/Set include completed
 - bool Deleted { get; set; } - Get/Set include deleted
 - string Description { get; set; } - Get/Set description of the DataCache
 - bool Disabled { get; set; } - Get/Set include disabled
 - bool InterviewFailed { get; set; } - Get/Set include marked as interview failed
 - bool InterviewSucceeded { get; set; } - Get/Set include marked as interview succeeded
 - bool IsOutOfDate { get;  } - Does the DataCache need to be rebuilt to have the correct content
 - string Language { get; set; } - Get/Set the iso code used in building the items that depend on a specific language
 - DateTime LastUpdated { get;  } - Time of the last rebuild
 - string Name { get; set; } - Name of the DataCache resource
 - bool Normal { get; set; } - Get/Set include normal
 - bool NotStarted { get; set; } - Get/Set include those not yet started
 - string ObjectTypeName { get;  } - The name of the type of object.
 - bool OutsideTarget { get; set; } - Get/Set include those marked outside target
 - bool Partly { get; set; } - Get/Set include partly completed
 - ProfilingResult ProfileFromLastEval { get;  } - Get the profile result from the last run of EvalWhere.
 - array QuestionnaireIds { get;  } - List of the questionnaires used in the DataCache
 - number QuestionnaireTemplateId { get;  } - The resource id of the questionnaire template used in the DataCache
 - bool QuotaFull { get; set; } - Get/Set include those with full quota
 - number ResourceId { get;  } - The Id of the DataCache
 - bool Test { get; set; } - Get/Set include those marked as test
 - TypeInformation TypeInformation { get;  } - Get information about this class.
 - number UpdateFrequence { get; set; } - Get/Set Update Frequence in minutes
 
Examples
Ex1:
DCS_use(37244952); // set DCS context
string e1 = "count() where S_Age == [1] && M_Travel == [1,2];";
Dictionary d =
{
 "exp1": "count() where S_Age == [1] && M_Travel == [1,2];",
 "exp2": "count() where S_Age == [2] && M_Travel == [1];"
};
print(DCS_evaluateWhereExpression(e1)); // 68
DataCacheSpecification dcs = new DataCacheSpecification(); // Represent a DCS which is used as current DCS context
print(dcs.EvalWhere(e1)); // 68
print(dcs.EvalWhere(d)); // {"exp1": 68, "exp2": 46}
Ex2:
string e1 = "count() where S_Age == [1] && M_Travel == [1,2];";
Dictionary d =
{
 "exp1": "count() where S_Age == [1] && M_Travel == [1,2];",
 "exp2": "count() where S_Age == [2] && M_Travel == [1];"
};
DataCacheSpecification dcs = new DataCacheSpecification(37244952); // Represents a DCS which has Resource Id: 37244952
print(dcs.EvalWhere(e1)); // 68
print(dcs.EvalWhere(d)); // {"exp1": 68, "exp2": 46}
dcs.MakeContext(); // or you can use DCS_use(RID) instead
print(DCS_evaluateWhereExpression(e1)); // without the previous statement (dcs.MakeContext();), you will get error at this line because there is no DCS context is set, so you can not use DCS_evaluateWhereExpression(e1)
dcs.Partly = false; // Not include the partly completed QASs
dcs.NotStarted = false; // Not include the not started QASs
dcs.Save(); // Must save to make the above statements applied on DCS, but this statement does not REBUILD the DCS
Ex 3:
ProfilingResult pr;
DataCacheSpecification dcs = new DataCacheSpecification(12006923); 
pr = dcs.ProfileFromLastEval;
pr.EnableProfiling = true;
dcs.EvalWhere({
 "ex1": "count() where true"
});
print(pr.CompileTime); // 0.1694
print(pr.CountResult); // {"5": {"2": 1}, "9": {"4": 1}} 
print(pr.DependencyGraphTime); // 0
print(pr.TimeResult); // {"10": {"-1": 0.0158, "4": 0.0158}, "11": {"-1": 0.0021, "4": 0.0021}, "5": {"-1": 1.1024, "2": 1.1024}, "9": {"-1": 0.0063, "4": 0.0063}}
print(pr.WhereExpTime); // 0