Skip to content

Commit f4e1bd6

Browse files
authored
Merge branch 'master' into instance-scans
2 parents 000562e + c37a6a8 commit f4e1bd6

9 files changed

+404
-45
lines changed

README.md

+17-3
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@ Open-Sourced community contributed and owned repository for Instance Scan Defini
1212

1313
## Category: Manageability
1414

15+
###Avoid gs.log()Statement
16+
Use Logging Levels: Instead of gs.log(), consider using more appropriate logging levels, such as:
17+
gs.info() for informative messages.
18+
gs.warn() for warnings that don’t break functionality but may need attention.
19+
gs.error() for logging errors that require investigation.
20+
1521
### Create ATFs in sub production instance
1622
Highly recommended practice to use ATFs for regression testing on instance upgrade and releases.
1723

@@ -55,9 +61,6 @@ Connection test for the remote instance defined did not result in a positive res
5561
### Duplicate Script Include Name
5662
This uses a table check to find other Script Includes having the same API name. Technically this is possible, but causes issues as there is no way to control which Script Include will be instantiated when being called.
5763

58-
### Don't use new Array()
59-
In general, you should use the array literal notation when possible. It is easier to read, it gives the compiler a chance to optimize your code, and it's mostly faster too.
60-
6164
### Don't use new Object()
6265
In general, you should use the object literal notation when possible. It is easier to read, it gives the compiler a chance to optimize your code, and it's mostly faster too.
6366

@@ -97,6 +100,9 @@ Update sets with more than 1000 configuration updates should be broken down into
97100
### Updates in wrong update set scope
98101
The scope for Customer Update [sys_update_xml] records should match the scope of the Update Set in which the Customer Update resides. Having a mismatch may cause Update Sets to generate preview errors meaning you cannot commit them until the errors are resolved.
99102

103+
## Duplicate Updat Set Name
104+
Maintain unique names for update set names it will help to track the updates easyly and also very useful to debug any issues.
105+
100106
### Delete orphaned variables
101107
Variables should be used in Catalog Item or a Variable Set. Variables not in use should be deleted.
102108

@@ -345,6 +351,14 @@ In your JDBC data load configuration, ensure that the 'last run datetime' option
345351
### Use of setWorkflow(false) in business rules will cause unexpected issues
346352
As setWorkflow(false) method will stop the execution of business rules on that particular GlideRecord object, this will result in unexpected behaviour where the execution of business rules skipped. Maintain caution while using this method and perform regression testing to avoid possible risk. It can have noticeable impact on Audit, Journal fields, notifications, SLA engine, workflow, flow engine etc.,
347353

354+
### Make use of isLoading Check (onChange Client Scripts Only)
355+
356+
The isLoading flag is the simplest way to prevent unnecessary code from taking up browser time. The isLoading flag should be used at the beginning of any script which is not required to run when the form is loading. There is no need to run this script on a form load because the logic would have already run when the field was last changed
357+
358+
## Make sure columans are selected in list type reports
359+
360+
It is recommended to select columans in List type report to provide better user experence.
361+
348362
# Additional resources
349363

350364
Please check these additional links for more information and details:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
<?xml version="1.0" encoding="UTF-8"?><record_update table="scan_table_check">
2+
<scan_table_check action="DELETE">
3+
<active>true</active>
4+
<advanced>false</advanced>
5+
<category>security</category>
6+
<conditions table="sys_security_acl">scriptISNOTEMPTY^advanced=false^EQ<item endquery="false" field="script" goto="false" newquery="false" operator="ISNOTEMPTY" or="false" value=""/>
7+
<item endquery="false" field="advanced" goto="false" newquery="false" operator="=" or="false" value="false"/>
8+
<item endquery="true" field="" goto="false" newquery="false" operator="=" or="false" value=""/>
9+
</conditions>
10+
<description>Script in ACL executes even if Advanced is unchecked. This may lead to confusion and unexpected behavior, coming from the script being hidden on the form but executed.</description>
11+
<documentation_url>https://docs.servicenow.com/bundle/utah-platform-security/page/administer/contextual-security/task/t_CreateAnACLRule.html</documentation_url>
12+
<finding_type>scan_finding</finding_type>
13+
<name>Script in ACL when Advanced is unchecked</name>
14+
<priority>1</priority>
15+
<resolution_details>Either check Advanced or Remove the script from the ACL, while making sure to maintain the same ACL result.</resolution_details>
16+
<run_condition/>
17+
<score_max>100</score_max>
18+
<score_min>0</score_min>
19+
<score_scale>1</score_scale>
20+
<script><![CDATA[(function (engine) {
21+
22+
// Add your code here
23+
24+
})(engine);]]></script>
25+
<short_description>Script in ACL executes even if Advanced is unchecked.</short_description>
26+
<sys_class_name>scan_table_check</sys_class_name>
27+
<sys_created_by>admin</sys_created_by>
28+
<sys_created_on>2023-10-04 20:36:19</sys_created_on>
29+
<sys_id>eb21adf797697110710650081153af9c</sys_id>
30+
<sys_mod_count>0</sys_mod_count>
31+
<sys_name>Script in ACL when Advanced is unchecked</sys_name>
32+
<sys_package display_value="Example Instance Checks" source="x_appe_exa_checks">ca8467c41b9abc10ce0f62c3b24bcbaa</sys_package>
33+
<sys_policy/>
34+
<sys_scope display_value="Example Instance Checks">ca8467c41b9abc10ce0f62c3b24bcbaa</sys_scope>
35+
<sys_update_name>scan_table_check_eb21adf797697110710650081153af9c</sys_update_name>
36+
<sys_updated_by>admin</sys_updated_by>
37+
<sys_updated_on>2023-10-04 20:36:19</sys_updated_on>
38+
<table>sys_security_acl</table>
39+
<use_manifest>false</use_manifest>
40+
</scan_table_check>
41+
<sys_update_version action="INSERT_OR_UPDATE">
42+
<action>DELETE</action>
43+
<application display_value="Example Instance Checks">ca8467c41b9abc10ce0f62c3b24bcbaa</application>
44+
<file_path/>
45+
<instance_id>7c7abcb4db5631d82f082a5913961914</instance_id>
46+
<instance_name>dev200172</instance_name>
47+
<name>scan_table_check_eb21adf797697110710650081153af9c</name>
48+
<payload>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;record_update table="scan_table_check"&gt;
49+
&lt;scan_table_check action="INSERT_OR_UPDATE"&gt;
50+
&lt;active&gt;true&lt;/active&gt;
51+
&lt;advanced&gt;false&lt;/advanced&gt;
52+
&lt;category&gt;security&lt;/category&gt;
53+
&lt;conditions table="sys_security_acl"&gt;scriptISNOTEMPTY^advanced=false^EQ&lt;item endquery="false" field="script" goto="false" newquery="false" operator="ISNOTEMPTY" or="false" value=""/&gt;
54+
&lt;item endquery="false" field="advanced" goto="false" newquery="false" operator="=" or="false" value="false"/&gt;
55+
&lt;item endquery="true" field="" goto="false" newquery="false" operator="=" or="false" value=""/&gt;
56+
&lt;/conditions&gt;
57+
&lt;description&gt;Script in ACL executes even if Advanced is unchecked. This may lead to confusion and unexpected behavior, coming from the script being hidden on the form but executed.&lt;/description&gt;
58+
&lt;documentation_url&gt;https://docs.servicenow.com/bundle/utah-platform-security/page/administer/contextual-security/task/t_CreateAnACLRule.html&lt;/documentation_url&gt;
59+
&lt;finding_type&gt;scan_finding&lt;/finding_type&gt;
60+
&lt;name&gt;Script in ACL when Advanced is unchecked&lt;/name&gt;
61+
&lt;priority&gt;1&lt;/priority&gt;
62+
&lt;resolution_details&gt;Either check Advanced or Remove the script from the ACL, while making sure to maintain the same ACL result.&lt;/resolution_details&gt;
63+
&lt;run_condition/&gt;
64+
&lt;score_max&gt;100&lt;/score_max&gt;
65+
&lt;score_min&gt;0&lt;/score_min&gt;
66+
&lt;score_scale&gt;1&lt;/score_scale&gt;
67+
&lt;script&gt;&lt;![CDATA[(function (engine) {
68+
69+
// Add your code here
70+
71+
})(engine);]]&gt;&lt;/script&gt;
72+
&lt;short_description&gt;Script in ACL executes even if Advanced is unchecked.&lt;/short_description&gt;
73+
&lt;sys_class_name&gt;scan_table_check&lt;/sys_class_name&gt;
74+
&lt;sys_created_by&gt;admin&lt;/sys_created_by&gt;
75+
&lt;sys_created_on&gt;2023-10-04 20:36:19&lt;/sys_created_on&gt;
76+
&lt;sys_id&gt;eb21adf797697110710650081153af9c&lt;/sys_id&gt;
77+
&lt;sys_mod_count&gt;0&lt;/sys_mod_count&gt;
78+
&lt;sys_name&gt;Script in ACL when Advanced is unchecked&lt;/sys_name&gt;
79+
&lt;sys_package display_value="Example Instance Checks" source="x_appe_exa_checks"&gt;ca8467c41b9abc10ce0f62c3b24bcbaa&lt;/sys_package&gt;
80+
&lt;sys_policy/&gt;
81+
&lt;sys_scope display_value="Example Instance Checks"&gt;ca8467c41b9abc10ce0f62c3b24bcbaa&lt;/sys_scope&gt;
82+
&lt;sys_update_name&gt;scan_table_check_eb21adf797697110710650081153af9c&lt;/sys_update_name&gt;
83+
&lt;sys_updated_by&gt;admin&lt;/sys_updated_by&gt;
84+
&lt;sys_updated_on&gt;2023-10-04 20:36:19&lt;/sys_updated_on&gt;
85+
&lt;table&gt;sys_security_acl&lt;/table&gt;
86+
&lt;use_manifest&gt;false&lt;/use_manifest&gt;
87+
&lt;/scan_table_check&gt;
88+
&lt;/record_update&gt;</payload>
89+
<payload_hash>1356454248</payload_hash>
90+
<record_name>Script in ACL when Advanced is unchecked</record_name>
91+
<reverted_from/>
92+
<source>f587d90bc3dd1250faa4bd33e4013147</source>
93+
<source_table>sys_upgrade_history</source_table>
94+
<state>previous</state>
95+
<sys_created_by>admin</sys_created_by>
96+
<sys_created_on>2024-10-21 18:01:38</sys_created_on>
97+
<sys_id>2387514bc3dd1250faa4bd33e40131fe</sys_id>
98+
<sys_mod_count>0</sys_mod_count>
99+
<sys_recorded_at>192b03de1990000001</sys_recorded_at>
100+
<sys_updated_by>admin</sys_updated_by>
101+
<sys_updated_on>2024-10-21 18:01:38</sys_updated_on>
102+
<type>Table Check</type>
103+
<update_guid>2f87514b95dd1250d8d7157d4a5955fd</update_guid>
104+
<update_guid_history>2f87514b95dd1250d8d7157d4a5955fd:0,e267d9c752dd1250e0ae7bf3aa17e665:-2023533997,eea83dedc1c5de50dcb00ddc90e599ae:1356454248</update_guid_history>
105+
</sys_update_version>
106+
<sys_metadata_delete action="INSERT_OR_UPDATE">
107+
<sys_audit_delete display_value="Script in ACL when Advanced is unchecked">1379110bc3dd1250faa4bd33e4013183</sys_audit_delete>
108+
<sys_class_name>sys_metadata_delete</sys_class_name>
109+
<sys_created_by>admin</sys_created_by>
110+
<sys_created_on>2024-10-21 18:10:05</sys_created_on>
111+
<sys_db_object display_value="" name="scan_table_check">scan_table_check</sys_db_object>
112+
<sys_id>6497f98bb9dc40a28cfd0e9f7ed83e24</sys_id>
113+
<sys_metadata>eb21adf797697110710650081153af9c</sys_metadata>
114+
<sys_mod_count>0</sys_mod_count>
115+
<sys_name>Script in ACL when Advanced is unchecked</sys_name>
116+
<sys_package display_value="Example Instance Checks" source="x_appe_exa_checks">ca8467c41b9abc10ce0f62c3b24bcbaa</sys_package>
117+
<sys_parent/>
118+
<sys_policy/>
119+
<sys_scope display_value="Example Instance Checks">ca8467c41b9abc10ce0f62c3b24bcbaa</sys_scope>
120+
<sys_scope_delete display_value="">30a78b9b9290467a96959a65d2b2d304</sys_scope_delete>
121+
<sys_update_name>scan_table_check_eb21adf797697110710650081153af9c</sys_update_name>
122+
<sys_update_version display_value="scan_table_check_eb21adf797697110710650081153af9c">2387514bc3dd1250faa4bd33e40131fe</sys_update_version>
123+
<sys_updated_by>admin</sys_updated_by>
124+
<sys_updated_on>2024-10-21 18:10:05</sys_updated_on>
125+
</sys_metadata_delete>
126+
</record_update>
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
1-
nlI07NudNmWmzNqJBQCgjd6a0Cm4Z_ft4ICZqmugvXrROPNMHMJWlNig7JLKwBUDjHeWnC9mI-_icHz-Vb03zEzQaAdIrRVKcjMm2qcnCV5ZqphIxDJBiSvw7P5DWgPnt8gRm8fIhin4fLA2wPf1EY1mUdznKGQ7wmtBdyxrPbEMJul4pk4KjCDx4MYYSzDnLRhkNI2vH9KYY2VeyvZ3bNG5F57NqAIDayIAIoNr9tFPHBfmVN16jxnK-vMFbcr3AlckSAuktELRgOCNL97T4WynRZ6Q34V-IIM2Z_Eaw55mGJYGOlZTFQ9nACabzkxNpZ7MW80kVFk5mQA6ubYx5DwIYvyeAHvaBkBqF1Qo88QiqC0SQd2izcCiXq2SAFwJDeYnqyB_MP_pYz7udsEY_QC2oIh5w9clP5VNrGJ1yWTnD0gM31eaDYOtNIeq6Qp6X8h5SNuzdXEmYFdSpSiFPQB-DyGdMMOGvAT56hOWDqVeFcjhUElFPm2Zwd4Twm9MLHCmNOQiYgKqOPNXWHg72FK0bALzomzncckrZU8azG1G7Ceh75SyFhdJ3bLktvmmZJCoXkW9N00FDAdBtE1fbicqLetUMFmWacUlCTlaqptlOchzo2g8IKcz9J0S1j3hrL7fn8qgnaUWbEB6Sa678cbzVyiNXqARDqeL9UvBEOo
1+
instance-scans
2+
nlI07NudNmWmzNqJBQCgjd6a0Cm4Z_ft4ICZqmugvXrROPNMHMJWlNig7JLKwBUDjHeWnC9mI-_icHz-Vb03zEzQaAdIrRVKcjMm2qcnCV5ZqphIxDJBiSvw7P5DWgPnt8gRm8fIhin4fLA2wPf1EY1mUdznKGQ7wmtBdyxrPbEMJul4pk4KjCDx4MYYSzDnLRhkNI2vH9KYY2VeyvZ3bNG5F57NqAIDayIAIoNr9tFPHBfmVN16jxnK-vMFbcr3AlckSAuktELRgOCNL97T4WynRZ6Q34V-IIM2Z_Eaw55mGJYGOlZTFQ9nACabzkxNpZ7MW80kVFk5mQA6ubYx5DwIYvyeAHvaBkBqF1Qo88QiqC0SQd2izcCiXq2SAFwJDeYnqyB_MP_pYz7udsEY_QC2oIh5w9clP5VNrGJ1yWTnD0gM31eaDYOtNIeq6Qp6X8h5SNuzdXEmYFdSpSiFPQB-DyGdMMOGvAT56hOWDqVeFcjhUElFPm2Zwd4Twm9MLHCmNOQiYgKqOPNXWHg72FK0bALzomzncckrZU8azG1G7Ceh75SyFhdJ3bLktvmmZJCoXkW9N00FDAdBtE1fbicqLetUMFmWacUlCTlaqptlOchzo2g8IKcz9J0S1j3hrL7fn8qgnaUWbEB6Sa678cbzVyiNXqARDqeL9UvBEOo
3+
4d6lPrUkCVTDgWYn5zU7vu4stzuS-TziCS-zwvUKtV6pl_XMX5Tj-ebHSo_WkFHOKdmi0Ujiy319GF9bCMGVC16bo9b_IO79Y7WPQlkZLCbMBK-_DQKiWEybC9f1ZalcFWo7V4GrtTCBA8jzgVuih9sHYUU8pBeYGaWqFnKL2bd8IAq9VhtmJM_TuEc1kBvs7Nxkz9ixLDGIH4y4hVzMNOJX9_YneP-MN3X1LH88mDVggqTGcAspNfEjeFwlnSdVyaLuzARhoyNhQmW-02eoXtCCio1Yhf5vjbuvWQrxxeRp-jl52NUBETQaNpvlHpVGHl8yAn5H-JI4yHLuJRrw0okqbBWyMgfP3M6LrWJEwR4YjL0aAVVdk9KL3bq9ylh1sEncKCGHZrzpBqXgF_6qJ_C4L6kZl3k-QxXTBEPuWScooyFBJpntmKF19xhnJtQn4LIfF9vWhm9K5PVSzGF2ZGophrvIZvrktw_u4Lnn1Ousm0kEtkYSELmujsAUbXLDOt0_A2KfGpCQmw-1Av5eHfEhzIHwIEk9wjE6BdaExpaZqL_8QIGMHuU4N09_l9uJ_whnwDLeaPRCJjzkwaxLTuetU9mwMVvW8PTJsZQgvnJ6DNr2LAog737M0_LjoIeO10FEwgwNRSCA_nar42g3jwPPWgcpVaMt-ImskANvhys
4+
master
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<?xml version="1.0" encoding="UTF-8"?><record_update table="scan_script_only_check">
2+
<scan_script_only_check action="INSERT_OR_UPDATE">
3+
<active>true</active>
4+
<category>upgradability</category>
5+
<description>Use Logging Levels: Instead of gs.log(), consider using more appropriate logging levels, such as:&#13;
6+
gs.info() for informational messages.&#13;
7+
gs.warn() for warnings that don’t break functionality but may need attention.&#13;
8+
gs.error() for logging errors that require investigation.</description>
9+
<documentation_url/>
10+
<finding_type>scan_finding</finding_type>
11+
<name>Avoid usage of gs.log()</name>
12+
<priority>3</priority>
13+
<resolution_details/>
14+
<run_condition/>
15+
<score_max>100</score_max>
16+
<score_min>0</score_min>
17+
<score_scale>1</score_scale>
18+
<script><![CDATA[(function (finding, columnValue) {
19+
var matches = columnValue.match(/gs\.log\s*\(/g);
20+
21+
if (matches) {
22+
matches.forEach(function(element) {
23+
finding.increment();
24+
});
25+
}
26+
})(finding, columnValue);]]></script>
27+
<short_description>Avoid usage of gs.log() in prod</short_description>
28+
<sys_class_name>scan_script_only_check</sys_class_name>
29+
<sys_created_by>admin</sys_created_by>
30+
<sys_created_on>2024-10-18 02:30:31</sys_created_on>
31+
<sys_id>6b832a7953d1d61000b51901a0490e24</sys_id>
32+
<sys_mod_count>0</sys_mod_count>
33+
<sys_name>Avoid usage of gs.log()</sys_name>
34+
<sys_package display_value="Example Instance Checks" source="x_appe_exa_checks">ca8467c41b9abc10ce0f62c3b24bcbaa</sys_package>
35+
<sys_policy/>
36+
<sys_scope display_value="Example Instance Checks">ca8467c41b9abc10ce0f62c3b24bcbaa</sys_scope>
37+
<sys_update_name>scan_script_only_check_6b832a7953d1d61000b51901a0490e24</sys_update_name>
38+
<sys_updated_by>admin</sys_updated_by>
39+
<sys_updated_on>2024-10-18 02:30:31</sys_updated_on>
40+
</scan_script_only_check>
41+
<sys_translated_text action="delete_multiple" query="documentkey=6b832a7953d1d61000b51901a0490e24"/>
42+
<sys_es_latest_script action="INSERT_OR_UPDATE">
43+
<id>6b832a7953d1d61000b51901a0490e24</id>
44+
<sys_created_by>admin</sys_created_by>
45+
<sys_created_on>2024-10-18 02:30:31</sys_created_on>
46+
<sys_id>07a5a23953d1d61000b51901a0490e95</sys_id>
47+
<sys_mod_count>0</sys_mod_count>
48+
<sys_updated_by>admin</sys_updated_by>
49+
<sys_updated_on>2024-10-18 02:30:31</sys_updated_on>
50+
<table>scan_script_only_check</table>
51+
<use_es_latest>true</use_es_latest>
52+
</sys_es_latest_script>
53+
</record_update>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<?xml version="1.0" encoding="UTF-8"?><record_update table="scan_table_check">
2+
<scan_table_check action="INSERT_OR_UPDATE">
3+
<active>true</active>
4+
<advanced>false</advanced>
5+
<category>upgradability</category>
6+
<conditions table="sys_script_client">type=onChange^scriptNOT LIKEisLoading^EQ<item display_value="onChange" endquery="false" field="type" goto="false" newquery="false" operator="=" or="false" value="onChange"/>
7+
<item endquery="false" field="script" goto="false" newquery="false" operator="NOT LIKE" or="false" value="isLoading"/>
8+
<item endquery="true" field="" goto="false" newquery="false" operator="=" or="false" value=""/>
9+
</conditions>
10+
<description>The isLoading flag is the simplest way to prevent unnecessary code from taking up browser time. The isLoading flag should be used at the beginning of any script which is not required to run when the form is loading. There is no need to run this script on a form load because the logic would have already run when the field was last changed. </description>
11+
<documentation_url>https://developer.servicenow.com/dev.do#!/guides/xanadu/now-platform/tpb-guide/client_scripting_technical_best_practices</documentation_url>
12+
<finding_type>scan_finding</finding_type>
13+
<name>isLoading Check (onChange Client Scripts)</name>
14+
<priority>1</priority>
15+
<resolution_details>e.g //Set Assignment Group to CI's support group if assignment group is empty&#13;
16+
function onChange(control, oldValue, newValue, isLoading, isTemplate) {&#13;
17+
&#13;
18+
if (isLoading)&#13;
19+
return;&#13;
20+
&#13;
21+
var ga = new GlideAjax('ciCheck');&#13;
22+
&#13;
23+
ga.addParam('sysparm_name', 'getSupportGroup');&#13;
24+
ga.addParam('sysparm_ci', g_form.getValue('cmdb_ci'));&#13;
25+
ga.getXML(setAssignmentGroup);&#13;
26+
}&#13;
27+
&#13;
28+
function setAssignmentGroup(response) {&#13;
29+
&#13;
30+
var answer = response.responseXML.documentElement.getAttribute("answer");&#13;
31+
&#13;
32+
g_form.setValue('assignment_group', answer);&#13;
33+
}</resolution_details>
34+
<run_condition/>
35+
<score_max>100</score_max>
36+
<score_min>0</score_min>
37+
<score_scale>1</score_scale>
38+
<script><![CDATA[(function (engine) {
39+
40+
// Add your code here
41+
42+
})(engine);]]></script>
43+
<short_description>Keep the isLoading Check for onchange client script</short_description>
44+
<sys_class_name>scan_table_check</sys_class_name>
45+
<sys_created_by>admin</sys_created_by>
46+
<sys_created_on>2024-10-18 22:11:14</sys_created_on>
47+
<sys_id>a6f17e0e47d156109c6152e1d16d43d5</sys_id>
48+
<sys_mod_count>0</sys_mod_count>
49+
<sys_name>isLoading Check (onChange Client Scripts)</sys_name>
50+
<sys_package display_value="Example Instance Checks" source="x_appe_exa_checks">ca8467c41b9abc10ce0f62c3b24bcbaa</sys_package>
51+
<sys_policy/>
52+
<sys_scope display_value="Example Instance Checks">ca8467c41b9abc10ce0f62c3b24bcbaa</sys_scope>
53+
<sys_update_name>scan_table_check_a6f17e0e47d156109c6152e1d16d43d5</sys_update_name>
54+
<sys_updated_by>admin</sys_updated_by>
55+
<sys_updated_on>2024-10-18 22:11:14</sys_updated_on>
56+
<table>sys_script_client</table>
57+
<use_manifest>false</use_manifest>
58+
</scan_table_check>
59+
<sys_translated_text action="delete_multiple" query="documentkey=a6f17e0e47d156109c6152e1d16d43d5"/>
60+
</record_update>

0 commit comments

Comments
 (0)