ServiceNowLearningWithRepo/2c4209629f7322107f44d6013024ab4a/update/cmn_map_page_a77944c89fb432107f44f1328124ab8d.xml
2025-10-20 00:53:00 +00:00

95 lines
3.8 KiB
XML

<?xml version="1.0" encoding="UTF-8"?><record_update table="cmn_map_page">
<cmn_map_page action="INSERT_OR_UPDATE">
<center_address>Yogododji, Africa</center_address>
<center_latitude/>
<center_longitude/>
<controls_size>large</controls_size>
<coordinates_retrieved_on/>
<disable_map_controls/>
<disable_nav_bar>false</disable_nav_bar>
<filter/>
<initial_zoom>2</initial_zoom>
<name>x_cdltd_loaner_req_Requested for Locatio</name>
<overview>false</overview>
<refresh_on_zoom>false</refresh_on_zoom>
<roles/>
<script><![CDATA[// Let's go get all the active Loaner Requests where the requestor has a city and country in their user record
var gr = new GlideRecord('x_cdltd_loaner_req_loaner_request');
gr.addEncodedQuery("active=true^requested_for.cityISNOTEMPTY^requested_for.countryISNOTEMPTY");
gr.orderBy('number');
gr.query();
while (gr.next()) {
// Find the label of the country (from sys_choice)
var countrygr = new GlideRecord('sys_choice');
countrygr.addQuery('name', 'sys_user');
countrygr.addQuery('element', 'country');
countrygr.addQuery('language', 'en');
countrygr.addQuery('value', gr.requested_for.country);
countrygr.query();
var responseBody = "";
var responseJSON;
var myLat, myLong;
if (countrygr.next()) {
var query = gr.requested_for.city + "," + countrygr.label;
var r = new sn_ws.RESTMessageV2('x_cdltd_loaner_req.Get Lat Long', 'Default GET');
r.setStringParameterNoEscape('text', query);
var response = r.execute();
responseBody = response.getBody();
var httpStatus = response.getStatusCode();
if (httpStatus == 200 && responseBody) {
try {
responseJSON = JSON.parse(responseBody);
myLat = responseJSON.features[0].properties.lat;
myLong = responseJSON.features[0].properties.lon;
} catch (e) {
gs.warn("JSON parse error for request " + gr.number + ": " + e.message);
continue;
}
} else {
gs.warn("REST request failed for " + gr.number + " with status " + httpStatus);
continue;
}
} else {
gs.warn("No country label found for user " + gr.requested_for.name);
continue;
}
// Only plot if we got coordinates
if (myLat && myLong) {
var item = map.addItem(gr);
item.latitude = String(myLat);
item.longitude = String(myLong);
item.dialog_title = gr.getDisplayValue();
item.icon = "https://maps.google.com/mapfiles/ms/micons/yellow.png";
item.icon_width = "32";
item.icon_height = "32";
}
}
]]></script>
<show_device_location>true</show_device_location>
<suffix>Requested for Locations</suffix>
<sys_class_name>cmn_map_page</sys_class_name>
<sys_created_by>admin</sys_created_by>
<sys_created_on>2025-10-20 00:30:12</sys_created_on>
<sys_id>a77944c89fb432107f44f1328124ab8d</sys_id>
<sys_mod_count>2</sys_mod_count>
<sys_name>x_cdltd_loaner_req_Requested for Locatio</sys_name>
<sys_package display_value="Loaner Request" source="x_cdltd_loaner_req">2c4209629f7322107f44d6013024ab4a</sys_package>
<sys_policy/>
<sys_scope display_value="Loaner Request">2c4209629f7322107f44d6013024ab4a</sys_scope>
<sys_update_name>cmn_map_page_a77944c89fb432107f44f1328124ab8d</sys_update_name>
<sys_updated_by>admin</sys_updated_by>
<sys_updated_on>2025-10-20 00:43:05</sys_updated_on>
<type>terrain</type>
<type_selection>buttons</type_selection>
<use_advanced_configuration>false</use_advanced_configuration>
</cmn_map_page>
</record_update>