Sample scenarios: Extending and replacing forms
In these scenarios, the Users form or UsersMaint is used as the parent form to be replaced by one of the extended forms.
Scenario 1
If the Replace Base Form property of all the extended forms are set to True, the IDO Runtime Service returns the extended form that is found at the highest descendant level, which is UsersMaintEx01_ABC.
Form Name | Level | Replace Base Form |
---|---|---|
UsersMaint | 0 | |
|
1 2 1 |
True True True |
Scenario 2
If only one extended form is found at a descendant level, IDO Runtime will return that descendant form definition, which is UsersMaintEx02.
Form Name | Level | Replace Base Form |
---|---|---|
UsersMaint | 0 | |
|
1 2 1 |
False True True |
Scenario 3
If there are two or more extended forms that are found at a descendant level, IDO Runtime will use the information from the Form Extensions form.
Form Name | Level | Replace Base Form |
---|---|---|
UsersMaint | 0 | |
|
1 2 1 |
True False True |
In this scenario on the Form Extensions form, where “sa” user defines AccessAs to replace the parent form, the Access As form is not accepted by the IDO Runtime because this form is not defined as a descendant form. Instead, IDO Runtime will return the next requested form definition, which is UsersMaintEx02.
Form Name | Scope Type | Scope Name | Replaced By Form |
---|---|---|---|
UsersMaint | 3 | sa | AccessAs |
UsersMaint | 1 | [NULL] | UsersMaintEx02 |
UsersMaint | 0 | [NULL] | UsersMaintEx01 |
In this scenario on the Form Extensions form, where the Form Name value is the same as the Replaced By Form value, the extend and replace feature will not take place. Instead, IDO Runtime will return the next requested form definition, which is UsersMaintEx01.
Form Name | Scope Type | Scope Name | Replaced By Form |
---|---|---|---|
UsersMaint | 3 | sa | AccessAs |
UsersMaint | 1 | [NULL] | UsersMaint |
UsersMaint | 0 | [NULL] | UsersMaintEx01 |