Poszukiwany programista ServiceNow do korepetycji

0

Hej! Czy jest tu jakiś ServiceNow developer, który ogarnia workflow? Szukam kogoś kto umiałby odpowiedzieć na parę pytań. Pozdrawiam :)

3

Spytaj tutaj, jak ktoś coś wie to może się przyda dla potomnych.

0

A zatem pytanie:
Mam tabelę Order (rozszerza Task) i Order Task (rozszerza Order) i muszę zrobić workflow dla Order.
Pierwszy krok: mam poprosić o zatwierdzenie managera osoby podanej w 'requested for'. A jeśli osoba otwierająca ticket jest tym managerem to żeby było autozatwierdzenie. Po zatwierdzeniu tworzy mi się nowy Order Task, a status Order zmienia na 'In progress'.
Mój kod działa w tym momencie źle bo wchodzę jako manager, tworzę ticket, w Approval zmienia mi się na Approved, ALE w Approvers zamiast Requested powinnam mieć Approved:
screenshot-20240506163737.png

Magia dzieje się dalej bo kiedy (nadal jako manager) tworzę nowy Order to automatycznie zatwierdza mi się właśnie ten pierwszy, wcześniej utworzony- i dla tego pierwszego tworzy się też Order Task oraz stan zatwierdzonego Order zmienia się na In progress.
screenshot-20240506164116.png
Nie wiem co mam źle w kodzie, może ktoś jest w stanie podpowiedzieć:

(function() {
var requestedFor = new GlideRecord('sys_user');
requestedFor.get(current.u_reference_1);

if (requestedFor.isValidRecord()) {
    var managerSysId = requestedFor.u_manager;
    var currentUserSysId = gs.getUserID();

    if (currentUserSysId == managerSysId) {
        current.approval = 'approved';
		
		var numberCurrent = current.number;
		gs.info('my log, current Order number: ' + numberCurrent);
		
		var currentSysId = current.sys_id;
		gs.info('my log, currentSysId: ' + currentSysId);
		
		// change record by number, in table sysapproval_approver
       var approvalGR = new GlideRecord('sysapproval_approver');

// approvalGR.addQuery('sysapproval', currentSysId);
//approvalGR.addQuery('approver', managerSysId);
approvalGR.addQuery('number', '=', numberCurrent);

        approvalGR.query();
		gs.info('My log, approvalGR.getRowCount() ' + approvalGR.getRowCount());
		gs.info('approvalGR.state ' + approvalGR.state);

        while (approvalGR.next()) {
            approvalGR.state = 'approved';
            approvalGR.update();
            gs.info('approvalGR.state ' + approvalGR.state);
            gs.info('Approval record for ' + approvalGR.sysapproval.getDisplayValue() + ' has been auto-approved.');
        }
		
    } else {
        gs.info("Manager sys_id is not found");
    }
} else {
    gs.info("Requested_for user not found or invalid");
}

})();

1 użytkowników online, w tym zalogowanych: 0, gości: 1