Developer guidelines

This section describes the prerequisites, possible issues, and the procedure for creating an initial MMT header-lines session.

Prerequisites

You can only create an MMT header-lines session if the following conditions are met:

  • There is a clear header-lines relation. Enterprise Server only supports synchronization if each satellite is directly related to its header. For example, Sales Order Lines are directly related to the Sales Order Header through the Order Number field.
  • No synchronization is required between the satellites.
  • The header has a single-occurrence representation. If not, it should be created.
  • All satellite sessions you want to define have multi-occurrence representations. If not, they should first be created.

Possible issues

Before you start creating an MMT header-lines session, identify the development effort required to solve the following possible issues:

Deep copy/delete The header of the header-lines session contains the Duplicate and Delete standard commands. In an initial MMT session, these actions only execute on the header.

Functionality to automatically copy or remove the corresponding lines when a header is copied or removed must be programmed separately. You can re-use existing code to do this.

Implicit saves An implicit save means that a session and its contents are saved without a user action. Therefore, the user performs a manual "Save" action, such as clicking Save on the tool bar or selecting the Save menu item.

In an MMT header-lines session, all data within each separate session is saved on each focus change from satellite to satellite, from header to satellite, or the other way around. For example, if a sales order is inserted and you switch the focus from the header to one of the satellites, the header is saved. To indicate a save is being executed, a save icon appears in the lower right part of the session window.

If you modify data after the last implicit or explicit save and then close the session, you are prompted whether the changes must be saved. If you select No, this undoes the changes after the last implicit or explicit save. When programming, be aware of this behavior. It can cause unreferenced data in the database, such as an order header without lines. You might consider programming a way to remove this data directly when it is generated, or to build a session that cleans the database of these unreferenced entries.