Initializing help system before first use

# MirrorObserver

A MirrorObserver is a builder object that is used to define scenarios and tables that should be mirrored and to keep that mirror alive for the lifetime of the MirrorObserver within the view. It can be created with a callback to get progress updates on the mirror operation.

### Method summary

name | description
--- | ---
dispose | Dispose an active MirrorObserver, this will stop the client from requesting the mirror any longer and the server will clean it up at a later time.
notify | Add a mirror progress callback. Will be called when there is any progress update for the MirrorObserver. Note that during the lifetime of a MirrorObserver there may be several mirror requests, as scenarios are executed or data is modified. All states are transient, a CANCELLED state should signal that the current request is cancelled but a new mirror request will be submitted when the scenarios and data are ready.
onError | Add an error callback. Will be called if the mirror request fails to be sent, if it fails during processing.
start | Start the MirrorObserver and return an instance that can be disposed.
withAllScenarios | Specify the mirror should be created for all scenarios in the view's selection.
withFirstScenario | Specify the mirror should be created for the first scenario in the view's selection.
withScenarios | Specify the mirror should be created for a given set of scenarios from the view's selection.

### Constructor

new MirrorObserver ( view, tableNames )

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  view | View |
  tableNames | Array.<string> |

  ##### Example

      insight.getView()
          .withMirrorTables(['my_table_1', 'my_table_2'])
          .withAllScenarios()
          .notify(myNotifyFunc) // Handle progress updates for the mirror operation
          .onError(myErrorFunc) // Handle any error creating the mirror
          .start()

### Methods

dispose ( )

  Dispose an active MirrorObserver, this will stop the client from requesting the mirror any longer and the server will clean it up at a later time.

  ##### Example

      let mirror = insight.getView()
          .withMirrorTables(['my_table_1', 'my_table_2'])
          .withAllScenarios()
          .start();

      mirror.dispose();

  Back to Top
notify ( callback ) → {MirrorObserver}

  Add a mirror progress callback. Will be called when there is any progress update for the MirrorObserver. Note that during the lifetime of a MirrorObserver there may be several mirror requests, as scenarios are executed or data is modified. All states are transient, a CANCELLED state should signal that the current request is cancelled but a new mirror request will be submitted when the scenarios and data are ready.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  callback | MirrorObserver.MirrorNotifyCallback | Called whenever new mirror progress is available.

  Returns:

  Type | Description
  --- | ---
  MirrorObserver |

  Back to Top
onError ( callback ) → {MirrorObserver}

  Add an error callback. Will be called if the mirror request fails to be sent, if it fails during processing.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  callback | MirrorObserver.MirrorErrorCallback | Gets called with an Error object containing a message from the server.

  Returns:

  Type | Description
  --- | ---
  MirrorObserver |

  Back to Top
start ( ) → {MirrorObserver}

  Start the MirrorObserver and return an instance that can be disposed.

  Returns:

  Type | Description
  --- | ---
  MirrorObserver |

  Back to Top
withAllScenarios ( ) → {MirrorObserver}

  Specify the mirror should be created for all scenarios in the view's selection.

  Returns:

  Type | Description
  --- | ---
  MirrorObserver |

  ##### Example

      insight.getView()
          .withMirrorTables('table-1')
          .withAllScenarios()

  Back to Top
withFirstScenario ( ) → {MirrorObserver}

  Specify the mirror should be created for the first scenario in the view's selection.

  Returns:

  Type | Description
  --- | ---
  MirrorObserver |

  ##### Example

      insight.getView()
          .withMirrorTables('table-1')
          .withFirstScenario()

  Back to Top
withScenarios ( scenarios ) → {MirrorObserver}

  Specify the mirror should be created for a given set of scenarios from the view's selection.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  scenarios | string | Array.<string> | repeatable | List of scenarios to mirror

  Returns:

  Type | Description
  --- | ---
  MirrorObserver |

  ##### Example

      insight.getView()
          .withMirrorTables('table-1')
          .withScenarios([0, 2])

  Back to Top

### Type Definitions

MirrorErrorCallback ( error )

  Error callbacks will be called if the mirror request fails to be sent or if it fails during processing.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  error | Error | ###### Properties
  Name | Type | Description
  --- | --- | ---
  message | string | The error message returned from the server

  ##### Example

      insight.getView()
          .withMirrorTables('table-1')
          .onError((err) => {
              console.log(err.message);
          })

  Back to Top
MirrorNotifyCallback ( mirrorRequestStatus )

  Called whenever new mirror progress is available.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  mirrorRequestStatus | MirrorObserver.MirrorRequestStatus | Object containing the mirror request state, progress and assigned selectionId

  ##### Example

      insight.getView()
          .withMirrorTables('table-1')
          .notify((mirrorRequestStatus) => {
              if (mirrorRequestStatus.state === insight.enums.MirrorObserverState.COMPLETED) {
                  console.log(`Completed, with assigned selection id: ${mirrorRequestStatus.selectionId}.`);
              } else if (mirrorRequestStatus.state === insight.enums.MirrorObserverState.CANCELLED) {
                  console.log(`Waiting for scenario to be ready before mirroring.`);
              } else if (mirrorRequestStatus.state === insight.enums.MirrorObserverState.IN_PROGRESS) {
                  console.log(`In progress, ${mirrorRequestStatus.percent}% complete.`);
              }
          })

  Back to Top
MirrorRequestStatus - { object }
  The mirror request state, progress and selectionId.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  state | insight.enums.MirrorObserverState | The overall state of the current mirror request. Note that during the lifetime of a MirrorObserver there may be several mirror requests, as scenarios are executed or data is modified. All states are transient, a CANCELLED state should signal that the current request is cancelled but a new mirror request will be submitted when the scenarios and data are ready.
  percent | number | Percentage complete of the mirror request, 0-100
  selectionId | string | The selectionId for the mirror request, generated by the server
  message | string | Message sent from the server, could be empty in the case of the IN_PROGRESS state

Parent Topic Classes

© 2001-2026 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.