Issues with generating number on a scoped table extended from task

we were having trouble creating a Copy of a record on a scoped application custom table, using a UI button. Referred to ServiceNow via support and currently awaiting an answer

If we create a new record the Number field is auto-populated with the new number (incremented)

But when trying to create a new record from the existing record using a"Copy" UI action then the new record is created but the number is not incremented (instead a record is created with the original number - hence duplicate numbers).

Attempted to use script include NumberManager('table_name').getNextObjNumberPadded() to  increment and place auto-number, It did not work - no record was created. on checking the code for "NumberManager" we observed  Application as "Global" and "Accessible from" as "This application scope only". 

So we created a copy Script include called "NumberManagerGlobal" identical to "NumberManager" with "Application" as "Global" and "Accessible from" as "All application scopes".

Now it works fine. below is the code of "Copy" UI Action.







function OnCopyClick() { //--Call the UI Action and skip the 'onclick' function gsftSubmit(null, g_form.getFormElement(), 'copy_strategy_new'); } if (typeof window == 'undefined') { OnCopyEngagementClick(); } function OnCopyEngagementClick() { var myRecordID = current.sys_id.toString(); var myTable = new GlideRecord("x_custom_table"); myTable.get(myRecordID); myTable.state = -1; var newNumber = new global.NumberManagerGlobal("x_custom_table").getNextObjNumberPadded(); myTable.number = newNumber; myTable.insert(); gs.addInfoMessage("Copy-- " + myTable.number + " generated from " + current.number); //--Redirect to New Record action.setReturnURL(current); action.setRedirectURL(myTable); }

Comments

Popular posts from this blog

GlideRecord setValue

variable advanced reference qualifier example

URL link in addInfoMessage