We are pleased to announce the release of the Oriana low-code platform version 7.0.001.13m. This release includes the following changes:
Main changes:
1. Oriana Data Model (ODM)
The Oriana Data Model (ODM) provides a general framework for storing basic data in entities such as organization management (company, business unit, person, job title, etc.), contact management (address, contact, etc.), partner repository, finance (bank account, currency, exchange rate, tax, vat code, invoice, etc.), contract management and reporting (reporting dimension). The model can be used in several ways, it is not necessary to use all its elements in a specific Oriana application, however, **removing or changing items the schema is not allowed, but strictly forbidden.**
LHS/LHC changes
User got a new mandatory property: `Email`. This emial address will be used to match the `LHS` user in the `LHC` (if the `odm_Person` record has been created earlier).
Person/Company/User changes and compatibility
The `People`, `PeopleGroupsPeople`, `Company` and `User` tables have been deprecated, the new `odm_Person`, `odm_Company`, `FSYS_User`, `FSYS_Group`, `FSYS_C_UserGroup` tables took place instead. To ensure compatiblity, upgrade scripts will not drop any objects.
Also, in the new deployments, we ship two views, `People` and `Company` with the usual columns.
In the earlier versions, the `People.PeopleID` and the `User.UserID` were equal. Also, the session reference `UserID` (`[##Session.UserID##]`) was equal with `PeopleID`. From this version the `UserID` session reference will be resolved as the `FSYS_User.ID` of the logged in user. A new session is reference, `PersonID` (`[##Session.PersonID##]`) is available to get the `odm_Person.PersonID` value of the current user.To ensure compatibility, the engine detects if the application is upgraded to this new version, and resolves the `UserID` session reference as the `People.PeopleID` of the current user. To disable “legacy” mode, you have to drop `dbo.osp_FSYS_LegacyLHCMarker` stored procedure
The `[##Session.CompanyID##]` reference will be resolved to `odm_Person.DefaultCompanyID` of the current user.
In compatibility mode, it resolves to `People.PeopleID` of the current user.
2. MultiCompany: handling multiple companies in one application
The users can be assigned to companies and – after the successful login – they can easily choose which company’s data they would like to work with.
With this feature, records of BusinessObject (table) can be automatically assigned to a company (and business unit). A record can be viewed or modified when the user has access to the company to which the record has been assigned.
To use the feature, two columns must be created in the table (and in the BusinessObject XML as well): `UserCompanyID`, `UserBusinessUnitID`. Also, the `MultiCompanySelection` property of the `BusinessObject` must be set to `true`. (If the `MultiCompanySelection` is set to `false`, the system fills the `UserCompanyID` field with -1 when the record is inserted.)
New session references are available: DefaultCompanyID, DefaultBusinessUnitID, AssignedCompanyIDs, `AssignedCompanyIDs@[TableName]`.
3. Decimal support
A new SQL data type can be used: DECIMAL.
The platform also supports the MONEY data type, however you cannot define a MONEY column using Oriana Studio.
Limitations:
The .NET can support decimal numbers with the maximum of 28 digits (total digits of the whole and the fraction parts).
Also, the javascript support numbers with maximum 16 digits. When you reach this limit, javascript will starts rounding the fraction.
4. Dropdownlist control for collecting functions on a screen
A UX improvement to help creating a more ergonimic and intuitive UI for the users.
On displays (like table or card views) function buttons can be groupped into a dropping down button (`ButtonDropDown` control).
These control types can be groupped: `ActionButton`, `NewObjectButton`, `DeleteObjectButton`, `SimpleLinkButton`.
5. Number sequence handling
Function to define and generate number sequence for entities. Format (prefix, suffix, length, etc.) can be defined.
6. Foreign fields handling in BusinessObjects
The use of `ForeignFields` and its associated options has been replaced by `ForeignFieldDefinitions` from Platform version 7.0 onwards.
Foreign fields defined in the older versions will still be processed by the engine, but their use is not recommended in the future.
From now you can specify the connection mapping, with <IsRelationshipMapping>true</IsRelationshipMapping> setting.
Earlier the connection mapping selected automatically by finding a mapping where the value of `BusinessObjectField` setting was the same as `BusinessObject`s’ `UniqueIDColumn` setting. If no mapping found, the foreign field definition had been ignored.
Obsolete/Discontinued functionality:
The `People`, `PeopleGroupsPeople`, `Company` and `User` tables have been deprecated. See details above in the `Oriana Data Model (ODM)` section or in the documentation.
The `ForeignFields` settings have been deprecated. See details above in the `Foreign fields handling in BusinessObjects` section or in the documentation.
Changes:
Epic 7063: Oriana Data Model (ODM)
Feature 7064: Define ODM tables
Feature 8990: Implement ODM tables
Feature 7447: ODM User / User Group / Person / People
Feature 7037: Fully support ForeignFields on Forms
Feature 7440: Number sequence handling
Feature 8805: Dropdownlist control for collecting functions on a screen
Feature 7124: Support for DECIMAL sql server datatype
Feature 8767: MultiCompany: handling multiple companies in one application
Feature 9119: XmlPackValidator improvements
Feature 9167: DB creator scripts should not contain ALTER TABLE commands
Bug 9257: Missing login information in auditlog in case if UserPass login (User_ID not saved)
Bug 9941: #101310 – Issue when try overwrite value of date field (7.0)