This chapter outlines use case language features that are relevant for Folio developers.
The action FSCVAPP@1.1001:GetVAPPInformation returns a dictionary in the first parameter, which contains the keys listed in the following table.
Note: Only for internal use.
Description | |
application | The application key stores the virtual application that is currently running. |
dispatcher | The dispatcher key stores the application dispatcher used. |
topappview | The topappview key stores the topmost application view. |
topappviewisexplore | The topappviewisexplore key stores whether the topmost application view is in explore mode. |
servertype | The servertype key allows you to determine the type of web server used. For example, the value “IIS” is stored for Microsoft Internet Information Services. |
serverplatform | The serverplatform key stores an identifier of the server operating system. |
isportlet | The isportlet key stores whether it is a portlet. |
isplugininst | The isplugininst key stores whether the native client is installed. |
Any virtual application can be extended with dialogs in context of a use case and variant. Use the using keyword followed by the reference of a virtual application and curly braces. By default, this reference is formed by concatenating the variant name and the use case name.
Syntax |
using <reference of application> { |
In the following example the virtual application for the menu use case EditInvoice that is defined for variant Order gets extended by the EditOrder dialog.
Example |
using OrderEditInvoice { |
Syntax |
override usecase { |
You can override an existing use case implementation for the object classes belonging to your software component.
When overriding an existing use case implementation, the override keyword must precede the reference of the use case that you want to override, followed by curly braces.
In the following example, a custom implementation is defined for COOSYSTEM@1.1:AttrContentSet in object class APPDUCXSAMPLE@200.200:Invoice.
Example |
usecases APPDUCXSAMPLE@200.200 override AttrContentSet { |
Syntax |
usecase(prewrapper for ObjectCreate) { usecase(postwrapper for ObjectCreate) { |
Fabasoft app.ducx allows you to add a use case wrapper to an existing use case that is invoked whenever the wrapped use case is executed.
Note: Wrappers are only allowed if the software component has a 1.* domain ID (e.g. DUCXSAMP@1.1001).
Two types of use case wrappers are supported:
Example |
usecases APPDUCXSAMPLE@200.200 VerifyContent(postwrapper for AttrContentSet) { |
Use case wrappers allow defining reusable building blocks with a standard implementation and polymorphism to override the default behavior.
A use case wrapper may define a prototype, a virtual application prototype, a method definition, or a virtual application.
Example |
app.ducx Use Case Language /** app.ducx Object Model Language /** app.ducx Use Case Language /** |
Syntax |
usecase { |
Fabasoft app.ducx allows you to add a use case wrapper to an existing use case that is invoked whenever the wrapped use case is executed.
Note: Wrappers are only allowed if the software component has a 1.* domain ID (e.g. DUCXSAMP@1.1001).
Two types of use case wrappers are supported:
Note: A use case wrapper must be assigned the same prototype or parameter list as the use case to be wrapped by the use case wrapper.
Example |
usecases APPDUCXSAMPLE@200.200 VerifyContent(parameters as AttrSetPrototype) { override AttrContentSet { |