2018 September Release

Fabasoft app.ducx 2018 September ReleasePermanent link for this heading

Find out more about new features and improvements in the Fabasoft app.ducx 2018 September Release.

Expressions in Expression CachePermanent link for this heading

All expressions of a software component are stored in a content property of the software component from version 18.3.0 onwards. This behavior can be disabled by setting a system property for Java: -D com.fabasoft.ducx.disableexternalexpressions=true

Disable this behavior temporarily in the advanced project settings:

XML Cache Is No Longer NeededPermanent link for this heading

It is now possible to load the software component files directly without creating the XML cache files in the .references folder. The required part of the .ducxproject file looks like this:

Example

<ns:CooPath>
  
<ns:Enabled>yes</ns:Enabled>
  
<ns:CooOut>${DUCX_COOOUT}</ns:CooOut>
  <ns:CooPathEntry>${DUCX_COOKIT}</ns:CooPathEntry>
<ns:CooPath>

Disable this feature with <ns:Enabled>no</ns:Enabled>. <ns:CooOut> denotes a folder with component files, <ns:CooPathEntry> denotes a folder with a full Fabasoft Folio setup.

Note: For all three entries variable substitution is done, so you can use environment variables or direct values.

Structured Audience ConstantsPermanent link for this heading

Audience constants are usable as part of other audience constants.

Example

orgmodel APPDUCXSAMPLE@200.200
{
  import COOSYSTEM@1.1;

  const audience[] OwnerAudience = [
    { user ACLUSER_OWNER; },
    { group ACLGROUP_OWNER; },
  }

  const audience[] AdminAudience = {
    user SysAdm;
  }

  const audience[] ChefAudience = [
   #OwnerAudience,
    #AdminAudience,
    { domain ACLDOMAIN_OWNER; }
  }

  acl SampleACL {
    ace {
      audience = OwnerAudience;
      rights = [AccTypeRead, AccTypeChange, AccTypeReadSec, AccTypeChangeSec];
    }
    ace {
      audience = AdminAudience;
      rights = [AccTypeRead, AccTypeChange];
    }
  }
}

New Loop Types in Business ProcessesPermanent link for this heading

The business process language now supports three types of loops.

Example

processes APPDUCXSAMPLE@200.200

{

repeat reference_opt {
  // Activity definitions or control elements
  ...
} until (terminationcondition);

do reference_opt {
  // Activity definitions or control elements
  ...
} while (whilecondition);

while reference_opt (whilecondition) {
  // Activity definitions or control elements
  ...
}

CoveragePermanent link for this heading

Business Processes

Coverage processing for business processes has been refined. There is no object model coverage for most properties of processes and activities any more. When a process is instantiated, the process itself and its activities are marked as covered.

Start/Stop With Expression

Start a coverage session in an expression with FSCAPPDUCX@1.1001:StartCoverage. Stop the session with FSCAPPDUCX@1.1001:StopCoverage.

WarningsPermanent link for this heading

  • The generic assignment to read-only properties results in a warning.
  • Using a property without AccTypeChangeSec or AccTypeChangeSecRel in ACLs results in a warning.

Supported PlatformsPermanent link for this heading

  • The app.ducx plug-in supports Eclipse 4.8.0 (Photon).
  • The command line builds now allow Java 1.8 features in the Java implementations of use cases.