Service Manager 9 Mass update does not populate the dependent fields.


I am getting quiet versed at using complex update but am struggling with something i think may be quiet simple.

I have mass updated a large number of racks to a new Grid refrence but the assets assigned to these racks have not pulled in the new Grid.

So server x if i go into the record and hit save the grid then repopulates to the new grid much like hitting the autofill button on the rack field.

However the rest have not, i have tried reupdating the records in $ in $file


tr.rack in $file=tr.rack in $file

to try push a save.

question : how do i emulate the save actions from complex update so it autofills this grid which is pulled from the rack record based on field tr.rack




  • there's a couple potential solutions, but it depends on how the system is coded to work on that 'normal' save.

    The Complex Mass Update will use the base formatctrl record - so, for example, in the configuration module, it should trigger the 'device' formatctrl; in Incident Management, it will trigger the probsummary formatctrl, etc - including the Queries, Calculations, Validations and Subroutines.  And it will also use any form-specific formatctrl that would get applied to that record - for example, the IM.update.incident formatctrl if you're looking at a list of open Incident tickets.

    So anything on the fc record will get triggered.

    But, it doesn't trigger the Process stack, or displayoption code that you may have on the 'Save' button or processes.  So in Configuration Management, it wouldn't trigger anything you built into the Process records, or the am.display.joinfile_save displayoption record.  

    In that case, you have to replicate the code it's calling in your Mass Update.  Sometimes that's simple - if the code is done in the Script Library, you can make the same Script Library call in the expressions of your mass update.  But, if the code is like a find/fill, you may have to use RTE calls in your expression.

    For example, we had to update location information on several device records, so in our expressions we had:
    $L.void=rtecall("rinit", $L.rc, $L.location, "location")
    $L.void=rtecall('select", $L.rc, $L.location, "\"" location in $file "\"")
    if ($L.rc<3) then (location in $file=location in $L.location;location.code in $file=location.code in $L.location)

    I'm not familiar with what your code is doing (I don't know what you mean by grid racks) but if the Complex Mass Update isn't triggering it already, that means it's not something on the formatctrl, but custom code that's somewhere else.