Representation of contextual data which can be exchanged between pages during page to page navigation.
Contextual data is typically pair of some data and semantic type of that data. Optionally it can contain also data identifing the calling page.
You will need to create ContextualData
when using the Navigation API
as most of the API methods accept its instance. To create an instance use
static factory methods ContextualData
provides:
- ContextualData.createBlankPageContext
- to create a blank context. You usually open ABCS landing pages with this context.
- ContextualData.createStartWithBlankRecordContext
- to create a context bound to an entity and possibly initialized with a partial and incomplete data. You usually open ABCS create pages with this context.
- ContextualData.createRecordToEditContext
- to create a context bound to an entity and initialized with record data. You usually open ABCS edit and detail pages with this context.
- Version:
- 16.3.5
- Source:
Methods
(static) createBlankPageContext(inputopt) → {viewmodel/js/api/context/ContextualData}
stable API
Create empty contextual data.
Parameters:
Name | Type | Attributes | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
input |
Object |
<optional> |
Properties
|
- Version:
- 16.3.5
- Source:
Returns:
Example
var emptyContext = ContextualData.createBlankPageContext({
// current page where this data and request originated;
// by default replaced with the activePageId, if 'caller' not set
caller: 'customerListPage'
});
// navigate to the landing page
Abcs.Pages().navigateToPage('myLandingPage', emptyContext);
(static) createRecordToEditContext(input) → {viewmodel/js/api/context/ContextualData}
stable API
Create contextual data representing a record which can be edited.
Parameters:
Name | Type | Description | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
input |
Object |
Properties
|
- Version:
- 16.3.5
- Source:
Returns:
Example
var customerToEdit = ContextualData.createRecordToEditContext({
// what business object are these data of:
entityId: 'customer',
// customersListArchetype is instance of ListArchetype which
// provides selected customer row
data: customerListArchetype.getSelectedRecord(),
// current page where this data and request originated;
// by default replaced with the activePageId, if 'caller' not set
caller: 'customerListPage'});
// navigate to the page
Abcs.Pages().navigateToPage('customerEditPage', customerToEdit);
(static) createStartWithBlankRecordContext(input) → {viewmodel/js/api/context/ContextualData}
stable API
Create contextual data representing a blank new record which can be populated and created. If record being created is a child record then reference to parent record should be pre-initialized.
Parameters:
Name | Type | Description | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
input |
Object |
Properties
|
- Version:
- 16.3.5
- Source:
Returns:
Example
// productDetailArchetype is DetailArchetype representing existing
// Product record:
var productId = productDetailArchetype.getRecord().getValue('id');
// create blank SpareProduct record with all mandatory parent info:
var blankSparePart = Record.createSimpleRecord({
// sparePart is child record of product business object and
// product ID is mandatory for new spare part to be created:
product: productId});
});
var sparePartToCreate = ContextualData.createStartWithBlankRecordContext({
// what business object are these data of:
entityId: 'sparePart',
// blank or preinitialized spare part data:
data: blankSparePart,
// current page where this data and request originated;
// by default replaced with the activePageId, if 'caller' not set
caller: 'productDetailPage'});
// navigate to page where spare part is created
Abcs.Pages().navigateToPage('sparePartCreatePage', sparePartToCreate);