- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-18-2023 07:32 AM
So i have this requirement that i am not able to figure out
i have this catalog item request for.
What i need is, when a user logs into the form, it will detect their location
and base on their location i need to search for the title Managing Partner and have that user auto fill the reference field
i was thinking of a on change client script but not quiet sure on how to script it out for that
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-18-2023 08:04 AM - edited 10-18-2023 08:58 AM
Hello @Peter Williams ,
You can use GlideAjax to get the managing Partner.
Use the below code in on change client script:-
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var ga = new GlideAjax('getManagingPartner');
ga.addParam('sysparm_name', 'getMP');
ga.addParam('sysparm_lawyer', newValue); //newValue will look up field for
ga.getXML(callback);
function callback(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
g_form.setValue('managing_partner', answer);
}
}
Create a script include named 'getManagingPartner' and make it client callable.
Use the below script in the script include:-
var getManagingPartner = Class.create();
getManagingPartner.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getMP: function() {
var loc;
var lawyer = this.getParameter('sysparm_lawyer');
var gr = new GlideRecord("sys_user");
gr.addQuery("sys_id", lawyer);
gr.query();
if (gr.next()) {
loc = gr.location.toString();
}
var mp = new GlideRecord('sys_user');
mp.addQuery('location',loc);
mp.addEncodedQuery('titleLIKEManaging Partner');
mp.query();
if(mp.next()){
return mp.sys_id.toString();
}
},
type: 'getManagingPartner'
});
If this response clears up your doubt, kindly flag it as both helpful and correct.
Thanks,
Alka
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-18-2023 07:35 AM
i have this so far
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-18-2023 07:41 AM
Hi @Peter Williams ,
I am not sure if I understood ur requirement clearly. U need to auto populate the user when the location is let's say London & his title is managing partner?
Thanks,
Danish
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-18-2023 07:47 AM
sorry let me explain a bit better
i have this field on my form:
Base on the Lawyer Location, Ex. if its London then i need to filter out the User table.
Filter condition is:
Location = London
Title Containing Managing Partner
If those condition met then the Managing Partner will get auto populated in this field
So i dont need to check if the Lawyers title is Managing Partner but it will use the lawyer location reference to get their Managing Partner filled in the reference field
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-18-2023 08:04 AM - edited 10-18-2023 08:58 AM
Hello @Peter Williams ,
You can use GlideAjax to get the managing Partner.
Use the below code in on change client script:-
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var ga = new GlideAjax('getManagingPartner');
ga.addParam('sysparm_name', 'getMP');
ga.addParam('sysparm_lawyer', newValue); //newValue will look up field for
ga.getXML(callback);
function callback(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
g_form.setValue('managing_partner', answer);
}
}
Create a script include named 'getManagingPartner' and make it client callable.
Use the below script in the script include:-
var getManagingPartner = Class.create();
getManagingPartner.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getMP: function() {
var loc;
var lawyer = this.getParameter('sysparm_lawyer');
var gr = new GlideRecord("sys_user");
gr.addQuery("sys_id", lawyer);
gr.query();
if (gr.next()) {
loc = gr.location.toString();
}
var mp = new GlideRecord('sys_user');
mp.addQuery('location',loc);
mp.addEncodedQuery('titleLIKEManaging Partner');
mp.query();
if(mp.next()){
return mp.sys_id.toString();
}
},
type: 'getManagingPartner'
});
If this response clears up your doubt, kindly flag it as both helpful and correct.
Thanks,
Alka