Greetings
Portal Version 10.5
I am trying to fill out an additional field in the request with information from the additional field of the requestor.
I follow the instructions, nothing happens.
My script works when loading a form, it looks like this.
//-----------------------Inputs Required--------------------//
var requestAdditionalFieldID = 'WorkOrder_Fields_UDF_CHAR2';
var requesterAdditionalField= 'Userlocation';
//-----------------------Inputs Required--------------------//
var reqName = $CS.getValue("REQUESTER");
var reqEmail = $CS.getValue("REQUESTER.EMAILID");
if (reqEmail === "") {
reqEmail = " ";
}
var xmlData;
xmlData = getInputData('Requester', reqName, reqEmail);
ajaxcall();
if ($CS.isTechnician() && $CS.getValue(requestAdditionalFieldID) === "") {
xmlData = getInputData('Technician', reqName, reqEmail);
ajaxcall();
}
/* Functions starts */
function getInputData(usertype, username, usermail) {
var tempXMLData = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<API version=\"1.0\" locale=\"en\">" +
"<citype>" +
"<name>" + usertype + "</name>" +
"<criterias>" +
"<criteria>" +
" <parameter>" +
"<name compOperator=\"is\">CI Name</name>" +
" <value>" + username + "</value>" +
" </parameter>" +
"<reloperator>AND</reloperator>" +
" <parameter>" +
"<name compOperator=\"is\">E-mail</name>" +
" <value>" + usermail + "</value>" +
" </parameter>" +
" </criteria>" +
"</criterias>" +
" <returnFields>" +
"<name>"+requesterAdditionalField+"</name>" +
" </returnFields>" +
"</citype>" +
"</API>";
return tempXMLData;
}
function ajaxcall() {
jQuery.ajax({
url: 'api/cmdb/ci',
type: 'POST',
dataType: 'json',
headers: {
'Accept': 'application/v3+xml'
}, //NO I18N
data: {
'OPERATION_NAME': 'read',
'INPUT_DATA': xmlData
},
success: function(response) {
handleResponse(response);
},
async: false
});
}
/* Response Functions starts */
function handleResponse(response) {
if (!response.API.response.operation.Details["field-values"].hasOwnProperty('record')) {
return;
}
var detObj = response.API.response.operation.Details["field-values"].record;
var fieldValue = detObj.value;
$CS.setValue(requestAdditionalFieldID, fieldValue);
}
What am I doing wrong? How else can you solve the problem?
Thanks.