Populate additional requester details in request fields using Field and Form Rules

Populate additional requester details in request fields using Field and Form Rules

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.

                  New to ADSelfService Plus?