Difference between revisions of "DataCacheSpecification class"
Phamminhlap (talk | contribs) |
|||
Line 1: | Line 1: | ||
{{CGscriptClass_Template | {{CGscriptClass_Template | ||
− | |Name= | + | |Name=DataCacheSpecification |
− | |Description= | + | |Description=Represents a DataCache specification. |
|Constructors= | |Constructors= | ||
− | {{CGscriptConstructors_Template|Description= | + | {{CGscriptConstructors_Template|Description=Instanciate a new instance using the current context datacache}} |
{{CGscriptConstructors_Template|Parameters= | {{CGscriptConstructors_Template|Parameters= | ||
− | {{CGscriptParameters_Template|Type=number|Name= | + | {{CGscriptParameters_Template|Type=number|Name=ResourceId|Description=Resource Id of the DataCache}} |
− | |Description= | + | |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 Rids|Description=List of Questionnaires to use in the creation. Must all belong to same template}} |
− | |Description= | + | |Description=Create a new datacache using quick setup}} |
|Methods= | |Methods= | ||
− | {{CGscriptMethods_Template|ReturnType=Empty|Name= | + | {{CGscriptMethods_Template|ReturnType=Empty|Name=AddFilter|Parameters= |
− | {{CGscriptParameters_Template|Type=string|Name= | + | {{CGscriptParameters_Template|Type=string|Name=filterQuestionLabel|Description=Question to apply filter to. If empty, then clear current filters|Comma=,}}{{CGscriptParameters_Template|Type=string|Name=filterValue|Description=Value of the filter}} |
− | |Description= | + | |Description=Add a filter to the DataCache}} |
− | {{CGscriptMethods_Template|ReturnType=AnyType|Name= | + | {{CGscriptMethods_Template|ReturnType=AnyType|Name=EvalWhere|Parameters= |
− | {{CGscriptParameters_Template|Type=string|Name= | + | {{CGscriptParameters_Template|Type=string|Name=whereExpression|Description=The expression to execute. It must contain 'where' and NOT start with a equal sign, and have 1 and only one semicolon in it}} |
− | |Description= | + | |Description=Evaluate a single where expression up against the current DataCache}} |
− | {{CGscriptMethods_Template|ReturnType=Dictionary|Name= | + | {{CGscriptMethods_Template|ReturnType=Dictionary|Name=EvalWhere|Parameters= |
− | {{CGscriptParameters_Template|Type=Dictionary|Name= | + | {{CGscriptParameters_Template|Type=Dictionary|Name=whereExpressions|Description=The expressions to execute. They must contain 'where' and MAY start with a equal sign, and have 1 and only one semicolon in it}} |
− | |Description= | + | |Description=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.}} |
− | {{CGscriptMethods_Template|ReturnType=Dictionary|Name= | + | {{CGscriptMethods_Template|ReturnType=Dictionary|Name=EvalWhere|Parameters= |
− | {{CGscriptParameters_Template|Type=Dictionary|Name= | + | {{CGscriptParameters_Template|Type=Dictionary|Name=whereExpressions|Description=The expressions to execute. They must contain 'where' and MAY start with a equal sign, and have 1 and only one semicolon in it|Comma=,}}{{CGscriptParameters_Template|Type=string|Name=weight|Description=Column name of the weight to use in filter}} |
− | |Description= | + | |Description=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.}} |
− | {{CGscriptMethods_Template|ReturnType=Dictionary|Name= | + | {{CGscriptMethods_Template|ReturnType=Dictionary|Name=EvalWhere|Parameters= |
− | {{CGscriptParameters_Template|Type=Dictionary|Name= | + | {{CGscriptParameters_Template|Type=Dictionary|Name=whereExpressions|Description=The expressions to execute. They must contain 'where' and MAY start with a equal sign, and have 1 and only one semicolon in it|Comma=,}}{{CGscriptParameters_Template|Type=string|Name=weight|Description=Column name of the weight to use in filter|Comma=,}}{{CGscriptParameters_Template|Type=string|Name=filters|Description=Extra filters that apply to all where expressions}} |
− | |Description= | + | |Description=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.}} |
− | {{CGscriptMethods_Template|ReturnType=Empty|Name= | + | {{CGscriptMethods_Template|ReturnType=Empty|Name=MakeContext|Description=Make the current DataCache the context DataCache}} |
− | {{CGscriptMethods_Template|ReturnType=Empty|Name= | + | {{CGscriptMethods_Template|ReturnType=Empty|Name=Save|Description=Save the DataCache}} |
− | {{CGscriptMethods_Template|ReturnType=string|Name= | + | {{CGscriptMethods_Template|ReturnType=string|Name=ToString|Description=The string representation of the object.}} |
+ | {{CGscriptMethods_Template|ReturnType=array|Name=CreateAllColumnsForQuestion|Parameters= | ||
+ | {{CGscriptParameters_Template|Type=string|Name=question|Description=QuestionLabel for the question you want all the dcs columns for|Comma=,}}{{CGscriptParameters_Template|Type=number|Name=questionnaireResourceId|Description=Set the associated questionnaire. Set to 0 to use primary questionnaire}} | ||
+ | |Description=Find and create all column for a given question. They still need to be saved individually to be added.}} | ||
+ | {{CGscriptMethods_Template|ReturnType=array|Name=CreateAllColumnsForAllQuestions|Parameters= | ||
+ | {{CGscriptParameters_Template|Type=number|Name=questionnaireResourceId|Description=Set the associated questionnaire. Set to 0 to use primary questionnaire}} | ||
+ | |Description=Find and create all column for all questions. They still need to be saved individually to be added.}} | ||
|Properties= | |Properties= | ||
− | {{CGscriptProperties_Template|ReturnType=bool|Name= | + | {{CGscriptProperties_Template|ReturnType=bool|Name=AutoUpdate|HasGetter=1|HasSetter=1|Description=Get/Set Auto Update}} |
− | {{CGscriptProperties_Template|ReturnType=bool|Name= | + | {{CGscriptProperties_Template|ReturnType=bool|Name=BuildWithWeight|HasGetter=1|HasSetter=1|Description=Get/Set if the DataCache should be built using weights}} |
− | {{CGscriptProperties_Template|ReturnType=number|Name= | + | {{CGscriptProperties_Template|ReturnType=number|Name=CachedRecords|HasGetter=1|Description=How many records does the DataCache currently hold}} |
− | {{CGscriptProperties_Template|ReturnType=array|Name= | + | {{CGscriptProperties_Template|ReturnType=array|Name=ColumnNames|HasGetter=1|Description=List of Column names}} |
− | {{CGscriptProperties_Template|ReturnType=bool|Name= | + | {{CGscriptProperties_Template|ReturnType=bool|Name=Completed|HasGetter=1|HasSetter=1|Description=Get/Set include completed}} |
− | {{CGscriptProperties_Template|ReturnType=bool|Name= | + | {{CGscriptProperties_Template|ReturnType=bool|Name=Deleted|HasGetter=1|HasSetter=1|Description=Get/Set include deleted}} |
− | {{CGscriptProperties_Template|ReturnType=string|Name= | + | {{CGscriptProperties_Template|ReturnType=string|Name=Description|HasGetter=1|HasSetter=1|Description=Get/Set description of the DataCache}} |
− | {{CGscriptProperties_Template|ReturnType=bool|Name= | + | {{CGscriptProperties_Template|ReturnType=bool|Name=Disabled|HasGetter=1|HasSetter=1|Description=Get/Set include disabled}} |
− | {{CGscriptProperties_Template|ReturnType=bool|Name= | + | {{CGscriptProperties_Template|ReturnType=bool|Name=InterviewFailed|HasGetter=1|HasSetter=1|Description=Get/Set include marked as interview failed}} |
− | {{CGscriptProperties_Template|ReturnType=bool|Name= | + | {{CGscriptProperties_Template|ReturnType=bool|Name=InterviewSucceeded|HasGetter=1|HasSetter=1|Description=Get/Set include marked as interview succeeded}} |
− | {{CGscriptProperties_Template|ReturnType=bool|Name= | + | {{CGscriptProperties_Template|ReturnType=bool|Name=IsOutOfDate|HasGetter=1|Description=Does the DataCache need to be rebuilt to have the correct content}} |
− | {{CGscriptProperties_Template|ReturnType=string|Name= | + | {{CGscriptProperties_Template|ReturnType=string|Name=Language|HasGetter=1|HasSetter=1|Description=Get/Set the iso code used in building the items that depend on a specific language}} |
− | {{CGscriptProperties_Template|ReturnType=DateTime|Name= | + | {{CGscriptProperties_Template|ReturnType=DateTime|Name=LastUpdated|HasGetter=1|Description=Time of the last rebuild}} |
− | {{CGscriptProperties_Template|ReturnType=string|Name= | + | {{CGscriptProperties_Template|ReturnType=string|Name=Name|HasGetter=1|HasSetter=1|Description=Name of the DataCache resource}} |
− | {{CGscriptProperties_Template|ReturnType=bool|Name= | + | {{CGscriptProperties_Template|ReturnType=bool|Name=Normal|HasGetter=1|HasSetter=1|Description=Get/Set include normal}} |
− | {{CGscriptProperties_Template|ReturnType=bool|Name= | + | {{CGscriptProperties_Template|ReturnType=bool|Name=NotStarted|HasGetter=1|HasSetter=1|Description=Get/Set include those not yet started}} |
− | {{CGscriptProperties_Template|ReturnType=string|Name= | + | {{CGscriptProperties_Template|ReturnType=string|Name=ObjectTypeName|HasGetter=1|Description=The name of the type of object.}} |
− | {{CGscriptProperties_Template|ReturnType=bool|Name= | + | {{CGscriptProperties_Template|ReturnType=bool|Name=OutsideTarget|HasGetter=1|HasSetter=1|Description=Get/Set include those marked outside target}} |
− | {{CGscriptProperties_Template|ReturnType=bool|Name= | + | {{CGscriptProperties_Template|ReturnType=bool|Name=Partly|HasGetter=1|HasSetter=1|Description=Get/Set include partly completed}} |
− | {{CGscriptProperties_Template|ReturnType=ProfilingResult|Name= | + | {{CGscriptProperties_Template|ReturnType=ProfilingResult|Name=ProfileFromLastEval|HasGetter=1|Description=Get the profile result from the last run of EvalWhere.}} |
− | {{CGscriptProperties_Template|ReturnType=array|Name= | + | {{CGscriptProperties_Template|ReturnType=array|Name=QuestionnaireIds|HasGetter=1|Description=List of the questionnaires used in the DataCache}} |
− | {{CGscriptProperties_Template|ReturnType=number|Name= | + | {{CGscriptProperties_Template|ReturnType=number|Name=QuestionnaireTemplateId|HasGetter=1|Description=The resource id of the questionnaire template used in the DataCache}} |
− | {{CGscriptProperties_Template|ReturnType=bool|Name= | + | {{CGscriptProperties_Template|ReturnType=bool|Name=QuotaFull|HasGetter=1|HasSetter=1|Description=Get/Set include those with full quota}} |
− | {{CGscriptProperties_Template|ReturnType=number|Name= | + | {{CGscriptProperties_Template|ReturnType=number|Name=ResourceId|HasGetter=1|Description=The Id of the DataCache}} |
− | {{CGscriptProperties_Template|ReturnType=bool|Name= | + | {{CGscriptProperties_Template|ReturnType=bool|Name=Test|HasGetter=1|HasSetter=1|Description=Get/Set include those marked as test}} |
− | {{CGscriptProperties_Template|ReturnType=TypeInformation|Name= | + | {{CGscriptProperties_Template|ReturnType=TypeInformation|Name=TypeInformation|HasGetter=1|Description=Get information about this class.}} |
− | {{CGscriptProperties_Template|ReturnType=number|Name= | + | {{CGscriptProperties_Template|ReturnType=number|Name=UpdateFrequence|HasGetter=1|HasSetter=1|Description=Get/Set Update Frequence in minutes}} |
− | {{CGscriptProperties_Template|ReturnType=Array of objects|Name= | + | {{CGscriptProperties_Template|ReturnType=Array of objects|Name=Weights|HasGetter=1|Description=Get list of existing weights.}} |
}} | }} | ||
Revision as of 08:35, 17 December 2015
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 Rids "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.
- 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", string filters "Extra filters that apply to all where expressions") - 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.
- array CreateAllColumnsForQuestion(string question "QuestionLabel for the question you want all the dcs columns for", number questionnaireResourceId "Set the associated questionnaire. Set to 0 to use primary questionnaire") - Find and create all column for a given question. They still need to be saved individually to be added.
- array CreateAllColumnsForAllQuestions(number questionnaireResourceId "Set the associated questionnaire. Set to 0 to use primary questionnaire") - Find and create all column for all questions. They still need to be saved individually to be added.
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
- Array of objects Weights { get; } - Get list of existing weights.
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