-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy pathadd_more_tables_to_code_search.js
56 lines (47 loc) · 2.05 KB
/
add_more_tables_to_code_search.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
var _grSearchGroup = new GlideRecord('sn_codesearch_search_group');
_grSearchGroup.query();
while (_grSearchGroup.next()) {
var _strSearchGroupSysID = _grSearchGroup.getValue('sys_id');
var _grDictionary = new GlideRecord('sys_dictionary');
var _objArrayUtil = new ArrayUtil();
_grDictionary.addEncodedQuery(
'internal_type.nameINscript,condition,condition_string,script_plain,XML,script_server' +
'^NQ' +
'elementSTARTSWITHscript' +
'^ORelementLIKE_script' +
'^internal_type.nameSTARTSWITHstring' +
'^ORinternal_type.name=json' +
'^NQ' +
'name=sys_variable_value^element=value' +
'^NQ' +
'name=sys_properties^element=value' +
'^NQ' +
'nameSTARTSWITHsys_dictionary' +
'^elementINattributes,default_value,reference_qual,calculation'
);
_grDictionary.query();
while (_grDictionary.next()) {
var _grCodeSearch = new GlideRecord('sn_codesearch_table');
var _strTable = _grDictionary.getValue('name');
var _strField = _grDictionary.getValue('element');
_grCodeSearch.addQuery('table', _strTable);
_grCodeSearch.addQuery('search_group', _strSearchGroupSysID);
_grCodeSearch.setLimit(1);
_grCodeSearch.query();
//for the respective table there is already a record available
if (_grCodeSearch.next()) {
var _arrFields = _grCodeSearch.getValue('search_fields').split(',');
_arrFields.push(_strField);
_grCodeSearch.setValue('search_fields', _objArrayUtil.unique(_arrFields).join(','));
_grCodeSearch.update();
}
// create a new record at table "sn_codesearch_table"
else {
_grCodeSearch.initialize();
_grCodeSearch.setValue('table', _strTable);
_grCodeSearch.setValue('search_group', _strSearchGroupSysID);
_grCodeSearch.setValue('search_fields', _strField);
_grCodeSearch.insert();
}
}
}