Limitations, Known Bugs, FAQs
Note: The term Business Object Model is named 'Application Model' in the UNIFACE Beta release.
UNIFACE 8.1.01.02 (beta - second release candidate), the following limitations are known:
After installation, I see stuff in my repository.
These are UNIFACE defaults used by the UNIFACE development environment when you create a new object (e.g. a new form).
I don't want to use Entity Services from my Session Service
Before starting to generate anything, edit the defaults for a SSV component subtype by setting the Data Access property to DBMS. The defaults for a SSV component subtype can be edit in the entity UCOMPONENTSUBTYPEDEFSSV.U.
The generation process will then generate SSV subtypes and session services which will directly talk to the DBMS driver.
Is there one Entity Service per Functional Subtype ?
yes, there is one entity service generated for each ESV subtype.
Each supertype has one ESV subtype (ACCOUNT - ACCOUNTESV).
Each functional subtype has one ESV subtpe (MAJORACCOUNT - MAJOTACCOUNTESV).
Each functional subtype has one Entity Service component, on which the ESV subtype is painted.
How is referential integrity managed ?
A session service contains a painted SSV subtype. Also, there are inner entities for which the subtype participates as a One or as a Many in a relationship.
As such, the session service manages referential integrity.
Depending on how the Data Access property is set for painted SSV subtype entities, the actual removal is delegeted to entity services.
I want to simplify Entity Service debugging.
Make use of debugger's breakpoints.
Alternatively, put nodebg statements in the Entity Service default component (UESVDEF).
Does the generated entity service inherit ?
Yes, it does inherit component properties and component level triggers from the default Entity Service component UESVDEF.
Why not interchanging stateless, disconnected XML record sets between Session Service and Entity Service ?
UNIFACE 8 makes use of UNIFACE 7 object service technology for making a transparent connection between session service and entity service. This allows you to easily switch between a frame-in-frame approach or an entity service approach at a session service.
During the lifetime of a session service, there is state. Either by frame-in-frame data only, or by frame-in-frame data as communicated to the entity service. However, the session service shields its state from the client.
The session service brings scalability. The entity service brings the ease of deployment when making a change in business logic for single business objects.
Why is the Entity Service positioned in the Business Logic Tier ?
Because the entity service executes business logic for single business objects. UNIFACE DBMS and middleware drivers take care of physical data transport and persistency.
My xmlSave does not save the hitlist into the xmlStream.
Check either of the following:
- is the involved DTD compiled ?
- is the DTD mapping okay (case sensitive, fully qualified objects such as FIELD.ENTITY.MODEL) ?
- are elements in the DTD defined as 'disconnected record set ?
Where are the afterCreate, afterUpdate, ... operations called from ?
These are called at the right moment from within the entity service component operations.
What is used during Entity Service creation in the generation process ?
The default entity service component template UESVDEF. Entity services inherit from this one.
What is used during Session Service creation in the generation process ?
The default entity service component USSVDEF. Session services do not inherit from this one !
What is used during Server Page creation in the generation process ?
The default entity service component UUSPDEF. Server pages do not inherit from this one !
My Buttons on my Server Page don't do anything.
Check if you really edited button code in Detail Field Trigger (you might have wrote it in another trigger, typically the On Error trigger).
My Server page doesn't show anything.
Check if you generated a HTML skeleton upon component compilation.
Do components in a 'lower' tier call components in a 'higher' tier ?
No, there are only calls from high to low, for example Server Page to Session Service.
Where is the coupling SSV/ESV established ?
The SSV contains painted SSV subtype entities. These have their Data Access set to 'Entity Service'.
What is the purpose of the Entity Abbreviation ?
It is used for constructing Component Subtype names. Be careful: entity abbreviations need to be unique over repositories. Checking this is not yet implemented.
Do my UNIFACE 7 re-defined messages for the default triggers still work ?
No, you need to move the defaults into the new UNIFACE defaults system.
Do my UNIFACE 7 object services still run ?
Yes. UNIFACE 7 services acting as object service are migrated into entity services. After compilation, they run. Creating entity services using the UNIFACE 7 object service templates remains supported.
Do we still have the UNIFACE 7 object service templates ?
See previous question.
Why is UNIFACE 8.1.01 delivered with Solid 2.3, when statements of support say that SOLID 2.3 is no longer supported in lieu of SOLID 3.0 ?
The GA version will make use SOLID 3.0.
Are there any improvements made to 'distributed' stepped hitlists ?
No, these remain the same as in UNIFACE 7.
Will $instanceHandle be valid for passing to a VB or COM object ?
[not in UNIFACE beta] $instanceHandle can be passed to a COM object, so the COM object can call a UNIFACE component via the handle. You can also obtain a handle to a COM object and start activating the COM object.
Note that you need to have the COM signature for this purpose. UNIFACE 8101 does not support importing a COM signature.
Are inter-model relationships covered by three tier component generation ?
Yes. But: You cannot execute Generate Three Tier Application in one go! First, make sure component subtypes are generated for each involved model. Then, start to generate entity services/ session service/ server pages for each model.
Can I work the way I always did ?
Yes you can. Just do not use component subtypes and generation principles.
How is a stateless session service and a set of statefull entity services managed at runtime ?
They all die after the session service has executed its stateless request.
I removed an operation but I still see it appear in my Proc listing.
Operations are overlayed. Probably you removed the operation in a child (e.g. a painted entity at a component), while the parent still contains the operation.
The only way to prevent operation execution is to re-define it with an empty implementation.