Link

Limitations

XtendM3 Limitations

Table of contents

  1. General
    1. M3 Program calls
    2. Database read on user-defined sorting orders
  2. Extending
    1. Batch/Function
      1. Creating additional fields in field groups e.g. MWPV6
    2. Interactive
      1. Creating UI related components in interactive panels
      2. Accessing custom fields from extensions
      3. Accessing chosen list option
    3. Transaction
      1. Adding/Removing input/output parameters for an existing transaction
      2. Changing the output parameter values
  3. Expanding
    1. Reference Fields
    2. Database
      1. Adding fields to existing standard tables
      2. Adding table index for standard tables
    3. API
      1. Creating new transactions on standard APIs
    4. Batch
      1. ION API
    5. Interactive
  4. XtendM3 APIs
    1. TransactionAPI
  5. Integration
    1. ION API
    2. M3 API
      1. Calling CMS100MI/MDBREADMI
    3. Configurable List & XML
    4. File Transfer
    5. Database
    6. Data Lake
  6. Development Tools
    1. Online IDE
    2. Local IDE
      1. API SDK
      2. Maven Plugin
  7. Governance
    1. Compile Time
    2. Runtime
      1. Timeouts

General

General XtendM3 limitations.

M3 Program calls

It is not possible to call M3 programs from an extension. Only M3 APIs can be called from extensions.

Database read on user-defined sorting orders

It is not possible to build query on standard tables using user-defined sorting order or index created using CRS021.

Extending

Extension limitations.

Batch/Function

Batch/Function specific limitations.

Creating additional fields in field groups e.g. MWPV6

TBA, this feature has not been released yet.

Interactive

Limitations specific to interactive extensions.

  • For enhancements such as adding new field in OIS100/E, extension will not be able to add textbox or dropdown field.
    • Workaround:
      CMS080 (custom fields) or H5 Script can be used to create UI components.
  • XtendM3 does not support creating additional column in subfiles, converting columns to editable fields, addition of selection filters, and adding sorting orders and views.
    • Workaround:
      Some M3 program views can be configured in CRS020/CRS022. H5 Script can also be used to add columns in subfile panels.

Accessing custom fields from extensions

  • If a field is not a standard field and is defined via CMS080 or by a script, it cannot be accessed from extensions directly as opposed to other standard fields on the screen.
    • Workaround:
      H5 script can be used to send the custom field information to XtendM3 API instead.

Accessing chosen list option

  • Currently, it is not possible to access list option from extensions.
    • Workaround:
      In order to perform custom validation on the B panel via extensions, you can send the chosen list option along with the record keys to an XtendM3 API instead.

Transaction

Trigger Transaction specific limitations.

Adding/Removing input/output parameters for an existing transaction

  • It is not possible to add/remove parameters for an existing transaction via XtendM3.
    • Workaround:
      Wrap transaction by defining a new XtendM3 transaction with both standard parameters and the custom ones. Call the API extension and perform additional logic with the new parameters inside the XtendM3 transaction.

Changing the output parameter values

  • It is not possible to change the output parameters for a transaction. The output parameters are read-only and cannot be modified by an extension.

Expanding

Reference Fields

TBA, this feature has not been released yet.

Database

Limitations specific to Dynamic Tables.

Adding fields to existing standard tables

  • It is not possible to add fields to existing tables.
    • Workaround:
      Create new tables by using XtendM3 Dynamic Table.

Adding table index for standard tables

  • Cannot be done in XtendM3, workaround exists.
    • Workaround:
      Custom table index for standard tables should be created in CRS021.

API

Limitations specific to Transaction type extensions.

Creating new transactions on standard APIs

  • It is not possible to define new transactions on the existing standard APIs.
    • Workaround:
      Define a new transaction on an XtendM3 API. To find and relate the transaction easier to the standard program you could use the same suffix e.g. for new transactions in OIS100MI you can define EXT100MI API.

Batch

Limitations specific to Batch type extensions.

ION API

  • It is not possible to call ION APIs from Batch extensions.
    • Workaround:
      No workaround available.

Interactive

XtendM3 APIs

Limitations to the XtendM3 APIs.

TransactionAPI

  • It is not possible to fetch and work with the input-parameters POST Transaction, using the Transaction API. However, output-parameters are available in POST.
    To clarify, PRE Transaction both input- & output-parameters are available. POST Transaction only output-parameters are available.
    • Workaround:
      Use the SessionAPI instead.

Integration

ION API

  • It is not possible to call a Transaction Extension, that is inherently calling an ION API, from a MEC Context.
    • Workaround:
      No workaround available.

M3 API

Calling CMS100MI/MDBREADMI

  • It is not possible to call custom transactions defined in CMS100MI or MDBREADMI.
    • Workaround:
      Perform the query using either direct database access or via calling CMS100MI/MDBREADMI IONAPI as a last resort option.

Configurable List & XML

File Transfer

Database

Data Lake

Development Tools

Limitations to the XtendM3 development tools.

Online IDE

Local IDE

Limitations specific to XtendM3 development in a local IDE.

API SDK

Maven Plugin

Governance

Governance limitations.

Compile Time

Compile time limitations.

Runtime

Runtime limitations.

Timeouts

  • Trigger extensions: five seconds.
  • Transaction extensions: two minutes.
  • Batch extensions: one hour.
  • Utility extensions: depends on the calling extension.
    • E.g., a Utility called from a Trigger extension will be able to use up the remaining timeout for that Trigger.