2017 June Release

Fabasoft app.ducx 2017 February ReleasePermanent link for this heading

Find out more about new features and improvements in the Fabasoft app.ducx 2017 February Release.

Contexts in Customization LanguagePermanent link for this heading

Some customization points support additional configuration contexts. This context is calculated dynamically by calling the action FSCCCONFIG@1.1001:SetCPContext(object cp, retval object context) on the object the customization point is called for.

Example

// Define the customization for the software edition Folio
// Add an entry to an existing configuration object
in the Folio configuration,

// additionally specifying a context

target DomainTypeFolio.Art {
  customize GetAllowedAttrDef<Folder, objchildren> {
    outattrdef = objsubject;
  }
}

target DomainTypeFolio.[Art,Business] {
  customize GetAllowedAttrDef<Folder, objchildren> {
    outattrdef = objsubject;
  }
}

Contexts can be listed in the target definition.

It is only allowed to configure the contexts, when one of the following conditions hold true:

  • the domain type configuration object belongs to the current project or
  • the customization point belongs to the current project or
  • the context object belongs to the current project

Expressions in CustomizationsPermanent link for this heading

Local scope, global scope and parameters are considered in all expressions used in customizations.

Parameter of Customizations CheckedPermanent link for this heading

Only key parameters can be used as parameters in customizations.

Attribute Definition ClassPermanent link for this heading

If a developer needs to manually define the class of property, she can do that by explicitly specifying the property COOSYSTEM@1.1:attrtype in an attribute definition. We have implemented a check of the base class to ensure correct results.

Extending an Access Control ListPermanent link for this heading

Syntax

extend acl reference {
  ace {

    audience = {

    };

    rights = [];

  }

}


With the extend acl keywords, additional aces can be added to existing access control lists.

Customization ProjectsPermanent link for this heading

By simply checking a checkbox the app.ducx project is turned into a customization project. Such projects do not create software components and component objects. Instead they contain only subtle changes or additions to existing software components.

# Operator Permanent link for this heading

Accessing properties of variables now result in warnings, if the identifier is ambiguous. By using the # operator the resolving as full reference can be forced.

Example

// Accessing property of undeclared object
@undeclaredobj.#objname = "New Name";

// Accessing key of undeclared dictionary
@undeclareddict.$objname = "New Name";

-> OperatorPermanent link for this heading

The invocation of applications using objects and the detach operator is checked now. There are warnings when there is no application mapping, when there are no or wrong parameters and other checks.

cooobj in ApplicationsPermanent link for this heading

The variable cooobj in applications implementing actions for a specific object class is a variable with the type of the implemented object class now.