Troubleshooting: The Feeder Manager autoupdaters do not update the FeederID field correctly, but Trace A Feeder does

Symptom: FeederID is not properly updated in response to editing actions that should affect it; but if I run Trace A Feeder on the circuit in question, it assigns all of the FeederIDs correctly.

Possible Cause: The MMElectricTraceWeight field for the circuit’s source feature is incorrect (in particular, bit 13 in the weight value, which indicates whether a feature is to be interpreted as a "circuit source," is not set).

Here are some ways in which the weight value for a circuit source feature can become corrupt:

  • It’s possible that Feeder Manager's Initialize Trace Weight tool failed or was aborted. If you run that tool before building the geometric network, it is unable to detect any errors or premature termination of the process at runtime.* To compensate for that inability, the tool writes two log files that record the steps taken by the initialization as it progresses. The path to these files is provided in the message that appears when the Initialize Trace Weight tool is finished.

  • It is possible that a source was created by editing in ArcMap with a pre-8.2 version of ArcFM. Only versions 8.2 and later are able to detect the creation and deletion of relationships to the CircuitSource table, and cannot update the weight of the related circuit source features, as required, to reflect these modifications.

  • Network features may have been edited while Feeder Manager’s autoupdaters were not assigned, or while Feeder Manager’s Weight Autoupdater was disabled (via the Feeder Manager Settings in ArcCatalog).

  • The trace weights were not (re-)initialized after a database import or other database manipulation in which MMElectricTraceWeight values were affected (e.g., truncated tables, deleted values, or weights replaced with null values).

*The reason for this is that the Initialize Trace Weight tool, when running in the absence of a geometric network, relies upon the function IWorkspace::ExecuteSQL to perform the updates. The latter function executes asynchronously and does not return status information to the caller.

QR code for this page

Was this helpful?