The Visual LANSA Framework uses a quite straightforward Framework, Application and Business Object model to define commercial computer systems.
You can extend this model by adding your own custom properties to the whole Framework, to Applications within it, or even to individual Business Objects:
The easiest way to understand the concept of custom properties is probably to consider this smattering of typical commercial application requirements:
There are many ways to address these types of common requirements. One way is to add them as custom properties to your Framework
For example, take the simple "The URL of our company web site is www.mycompany.com (but it may change later)" requirement. To make the company web site URL a soft coded value in your Framework you would do the following:
As a DESIGNERYou would define a Framework level custom property named COMPANYURL. It would most likely be of type Alphanumeric with a maximum length of 256. It would not be changeable by on site Administrators and have a default value of www.mycompany.com.
As a DEVELOPERYou would retrieve the value of custom property COMPANYURL into your programs to avoid hard coding of the company URL.
In both Windows and WAM applications you would retrieve the value like this:
Invoke Method(#avFrameworkManager.avGetUserProperty) Atlevel(F)
Withname(COMPANYURL) AlphaValue(#COMP_URL)
As an ADMINISTRATORYou would have nothing to do. You may notice that every time you create a user profile it has a property called "Company Web Site" associated with it that has value www.mycompany.com but you would not be able to change it. Only the Framework DESIGNER would be able to change the value.
As a more complex example consider the "Some users can only view contracts signed only in certain states" requirement. You could use custom properties to satisfy this requirement like this:
As a DESIGNERYou might define an application level custom property named ALLOWSTATES. It might be defined as a fixed alphanumeric list like this:
Value | Caption to Display to User |
ALL |
Allow all States |
CA |
California Only |
NY |
New York Only |
MN |
Minnesota Only |
As a DEVELOPER
You would retrieve the value of ALLOWSTATES into your programs and use it to control how your program behaves.
In both Windows and WAM applications you would retrieve the value like this:
Invoke Method(#avFrameworkManager.avGetUserProperty) Atlevel(A)
Withname(ALLOWSTATE) AlphaValue(#ALL_STATE)
In either case #ALL_STATE would contain ALL, CA, NY or MN which you program would then use to control access to various contracts within your application.
As an ADMINISTRATORWhen you define a user you can switch to the Custom Properties tab of the current user and select which states the user can view contracts from. You would have to select from a list that look like this:
These simple examples demonstrate the essence of custom properties. They of course have considerably more capability than this. For example you can specify the type as Alphanumeric, Numeric or Boolean and have multiple selection lists.
See also Frequently Asked Questions about Custom Properties and Things to be careful with when using Custom Properties.
Defining Custom PropertiesWhen defining a new property these options are displayed:
Value(s) can be changed by Administrator