root/projects/updatetreeeffdtinqry/trunk/defn/ApplicationEnginePrograms/GS/GS_QRYEFFDT/GS_QRYEFFDT.MAIN.GBL.default.1900-01-01.Step01.OnExecute.pcdefn.peoplecode

Revision 47, 2.4 KB (checked in by larry.grey, 20 months ago)

Updated to loop through all queries with a prefix of "GS"

Line 
1Function ReturnNewTreeCrit(&InTreeCrit As string) Returns string
2   
3   Local array of string &TreeCritSegments;
4   Local string &NewEffDt;
5   Local number &k;
6   Local string &NewTreeCrit;
7   
8   &TreeCritSegments = Split(&InTreeCrit, ",");
9   
10   SQLExec("select max(a.effdt) from pstreedefn a where a.setid = :1 and a.setcntrlvalue = :2 and a.tree_name = :3 and a.effdt <= %currentdatein", &TreeCritSegments [1], &TreeCritSegments [2], &TreeCritSegments [3], &NewEffDt);
11   
12   For &k = 1 To &TreeCritSegments.Len
13     
14      If &k > 1 Then
15         If &k = 4 Then
16            &NewTreeCrit = &NewTreeCrit | "," | &NewEffDt;
17         Else
18            &NewTreeCrit = &NewTreeCrit | "," | &TreeCritSegments [&k];
19         End-If;
20      Else
21         &NewTreeCrit = &TreeCritSegments [&k];
22      End-If;
23   End-For;
24   
25   Return &NewTreeCrit;
26   
27End-Function;
28
29Function ProcessCriterion(&CriteriaObj As ApiObject, &j As number)
30   
31   Local string &NewTreeCrit;
32   
33   If &CriteriaObj.expr1type = 2 Then
34      rem Field criteria;
35      If &CriteriaObj.expr1field.name = Field.DEPTID Then
36         Warning ("Criterion Field #" | &j | " = " | &CriteriaObj.expr1field.name);
37         If &CriteriaObj.operator = %Query_CondInTree Then
38            Warning ("In Tree Criteria exists");
39            Warning (&CriteriaObj.expr2constant1);
40            &NewTreeCrit = ReturnNewTreeCrit(&CriteriaObj.expr2constant1);
41            Warning ("Updating new Tree Criterion = " | &NewTreeCrit);
42            &CriteriaObj.expr2constant1 = &NewTreeCrit;
43         Else
44            Warning ("Other type of Criteria");
45         End-If;
46      End-If;
47   End-If;
48   
49End-Function;
50
51Local ApiObject &MyQuery, &MySession, &CriteriaCollection;
52Local ApiObject &CurrentCriteria;
53Local string &QryToProcess;
54Local number &i;
55
56&MySession = %Session;
57
58If &MySession <> Null Then
59   
60   &MyQuery = &MySession.getquery();
61   
62   Local SQL &sqlGetQueries = CreateSQL("select QRYNAME from PSQRYDEFN where QRYNAME like 'GS%'");
63   While &sqlGetQueries.Fetch(&QryToProcess)
64     
65      &MyQuery.open(&QryToProcess, True, True);
66     
67      Warning ("Just Opened Query " | &MyQuery.name | ", " | &MyQuery.description);
68     
69      &CriteriaCollection = &MyQuery.queryselect.criteria;
70     
71      For &i = 1 To &CriteriaCollection.count;
72         
73         ProcessCriterion(&CriteriaCollection.item(&i), &i);
74         
75      End-For;
76     
77      &MyQuery.save();
78      &MyQuery.close();
79     
80   End-While;
81   
82End-If;
Note: See TracBrowser for help on using the browser.