Macro Overview

Each macro entry will contain the following sections describing the behavior of the macro and its usage.

This section contains the following topics

Name

Definition

Prototype Specification

Result Specification

Breaking Changes Specification

Categories

Sample

Name

Macro names are always case-sensitive.

The following are some tips on macro names that make it easier to understand their purpose at a glance.

  • Macros containing the words "Push" and "Pop" in their names alter the contents of the context stack, such as PushOwner.
  • Macros with names ending in "From" will, if necessary, reach beyond the first object in the context stack to find an object of the desired type, such as PropertyFrom.
  • Macros with names ending in "Through" will traverse a reference property on the current context object to find the necessary context object, such as PropertyThrough.
  • Macros starting with a DBMS name followed by an underscore are designed to work only if the target server matches the DBMS name, such as Access_Datatype.
  • Macros with a period in the middle of their name will operate only within the context of a specific iterator, such as ForEachProperty.IsInherited.
  • Macros with a double colon in their name will operate only in certain processes in erwin Data Modeler, such as FE::Bucket.

Definition

This section will provide a description of the macro's behavior, plus any particular notes on using it.

Prototype Specification

The prototype specification of each macro will show the full syntax available. The first term is always the macro's name.

MacroName 

Terms in italics represent parameters to the macro. These parameters are described in the table following the prototype signature.

Parameters are always enclosed in parentheses. The parentheses can be omitted if parameters are optional and none are being supplied. Parameters are always separated by commas. Unless otherwise specified, parameters to macros, other than type names, are not case-sensitive.

MacroName( Parameter1, Parameter2 ) 

Parameters enclosed in square brackets are optional.

MacroName( [OptionalParameter1 [, OptionalParameter2]] ) 

If a macro can take a variable length list of parameters, it will be indicated by an ellipsis.

MacroName( Value1[, Value2 [, …]] ) 

Iterator macros are indicated by a trailing set of curly braces.

MacroName( Parameter1 ){} 

Result Specification

This subsection will list the conditions under which the macro will fail.

As the software evolves, some macros may become deprecated. The deprecation specification indicates the level of deprecation at the time of documentation. The following describes the possible values and their meaning:

Active

The macro is not deprecated in any way.

Discouraged

The macro has been replaced by an alternate macro. You may switch to the new syntax when editing new code in order to take advantage of new capabilities or faster performance.

Macros in this status are fully supported and there is no intention to remove them from the product. However, they may not run as efficiently as other approaches and/or may not have the same features available.

Deprecated

The macro is deprecated and support for it will eventually be removed from the product.

Removed

The macro is no longer supported and will not function in the software.

Breaking Changes Specification

This section will describe ways in which the macro has changed from previous versions when that change would break existing code. Generally, breaking changes are adjusted by the post-load processors when a model is upgraded to a new version of the software. The description of the breaking change is provided so that you can adjust any new code you write.

Categories

This is the list of categories to which this macro is assigned by erwin Data Modeler. You can add the macro to more categories, if you choose, by using the Macro Categories editor.

Sample

An example of using the macro will be provided in this subsection.