This content applies solely to Connected Onboarding, which must be purchased separately from the Appian base platform. This content was written for Appian 23.3 and may not reflect the interfaces or functionality of other Appian versions. |
When a user adds a product to an Onboarding, the user is required to fill out specific product-related details. Each product may have its own unique fields that the user is required to complete.
For example, the product type of Committed Line of Credit will allow the user to enter the fields for Collateral and Cover Required (%). Whereas, the product type Equities will allow the user to enter the Strategy and Entity type.
This page outlines how to set up the fields you want to show and require for each product type.
There can be several fields the user might need to fill out for a single product. Therefore, in order to make it easier to add details for a product, Connected Onboarding has grouped the product fields into six sections.
The default product sections are:
To add a new product section:
AS_FS_ENUM_PRODUCT_SECTION_KEY_<SECTION_NAME>
.AS_FS_REF_PRODUCT_FIELDS_<SECTION_NAME>
to hold all of the fields that will show up in this section.product
(AS_FS_Product) - this will be used to save the data when it appears on the form.i18nData
(Any Type) - this will properly show the user the correct language for the corresponding label when the solution is internationalized.adminSetupI18nData
(Any Type) - this holds the internationalization data for that when the solution is internationalized.isInternationalizedForAdminSetup
(boolean) - this is a true or false value that defines if this field is internationalized.Product
CDT that will save the data.EXAMPLE:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* Interest field */
{
fieldKey: `cons!AS_FS_ENUM_PRODUCT_FIELD_KEY_DETAILS_INTEREST`,
sectionKey: `cons!AS_FS_ENUM_PRODUCT_SECTION_KEY_DETAILS`,
cdtField: { "interest" },
isValid: if(
rule!AS_CO_UT_isBlank(ri!product),
null,
or(
isnull(ri!product.interest),
ri!product.interest >= 0
)
)
}
AS_FS_REF_PRODUCT_FIELDS_<SECTION_NAME>
, creation for a new field for as many fields that you would like to add.AS_FS_REF_PRODUCT_FIELDS_<SECTION_NAME>
rule that you created to the parent rule AS_FS_REF_ALL_PRODUCT_FIELDS
, which holds all of the sections and fields.AS_FS_CPS_OnboardingRequestProducts_<SectionName>Section
.fieldData
(Any Type) - shows the information used from the expression rule AS_FS_REF_PRODUCT_FIELDS_<SECTION_NAME>
.i18nData
(Any Type) - show the user the correct language for the corresponding label when the solution is internationalized.product
(AS_FS_Product) - saves the data when it appears on the form.refData
(List of AS__R_Data) - passes in the reference data.readOnly
(boolean) - determines if the field should be read only or not.
- funds
(Array of AS_FS_Fund) - references funds if fund data is needed.local!visible<SectionName>Fields
and set the value to
1
2
3
4
5
local!visible<SectionName>Fields: rule!AS_CO_UT_filterCdtByField(
cdt: ri!fieldData,
field: "fieldKey",
value: `rule!AS_FS_REF_PRODUCT_FIELDS_<SECTION_NAME>(isInternationalizedForAdminSetup: false).fieldKey`
)
local!visible<SectionName>Fields
is not blank then you will call rule for the display header and a rule to display the appropriate fields.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if(
rule!AS_CO_UT_isBlank(local!visible<SectionName>Fields),
{},
{
rule!AS_CO_SBS_StampHeader(
! icon: "list-alt",
label: rule!AS_CO_I18N_UT_displayLabel(
i18nData: ri!i18nData,
! bundleKey: "ProductField.lbl_<section_name>Section"
),
size: "SMALL"
),
rule!AS_CO_CPS_dynamicTwoOrFourColumnDisplay(
numberOfColumns: if(ri!readOnly, 4, 2),
! allFields: {
}
)
}
)
icon
and label
for what icon and name you want to show for the new section.local!<FIELD_KEY>FieldData
to determine the correct field data and a dictionary structure with the following key-value pairs:
allFields
structure with each of the associated fields for the new section with the new local variable.EXAMPLE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
a!localVariables(
local!interestFieldData: rule!AS_CO_UT_filterCdtByField(
cdt: local!visibleDetailsFields,
field: "fieldKey",
value: `cons!AS_FS_ENUM_PRODUCT_FIELD_KEY_DETAILS_INTEREST`
),
{
span: 2,
components: rule!AS_CO_INP_paragraphField(
showWhen: rule!AS_CO_UT_isNotBlank(local!descriptionFieldData),
required: local!descriptionFieldData.required,
label: rule!AS_CO_I18N_UT_displayLabel(
i18nData: ri!i18nData,
bundleKey: "Product.lbl_Description"
),
readOnly: ri!readOnly,
value: ri!product.description,
maxLength: cons!AS_CO_ENUM_PARAGRAPH_LENGTH_MEDIUM,
saveInto: ri!product.description,
height: "SHORT",
placeholder: rule!AS_CO_I18N_UT_displayLabel(
i18nData: ri!i18nData,
bundleKey: "ProductField.plc_EnterProductDescription"
)
)
}
)
AS_FS_R_PRODUCT_TYPE_FIELD_MAPPING
table, add the fields into the FIELD_DATA
column using the following JSON format {"fieldKey":"FIELD_KEY>","required":}
, for the products that you want to display.To remove a product section:
AS_FS_REF_PRODUCT_FIELDS_<SECTION_NAME>
you would like to remove from the expression rule AS_FS_REF_ALL_PRODUCT_FIELDS
.AS_FS_CPS_OnboardingRequestProducts_<SectionName>Section
.Connected Onboarding comes with 35 data fields that are available for users to enter additional product information. The fields that are available by default can be found by searching the objects for any constant with the prefix AS_FS_ENUM_PRODUCT_FIELD_KEY.
To add a new product field:
AS_FS_REF_PRODUCT_FIELDS_<SECTION_NAME>
expression rule.Product
CDT that will save the data.EXAMPLE:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* Interest field */
{
fieldKey: `cons!AS_FS_ENUM_PRODUCT_FIELD_KEY_DETAILS_INTEREST`,
sectionKey: `cons!AS_FS_ENUM_PRODUCT_SECTION_KEY_DETAILS`,
cdtField: { "interest" },
isValid: if(
rule!AS_CO_UT_isBlank(ri!product),
null,
or(
isnull(ri!product.interest),
ri!product.interest >= 0
)
)
}
AS_FS_CPS_OnboardingRequestProducts_<SectionName>Section
expression rule.local!<FIELD_KEY>FieldData
to filter the data to the proper field.
EXAMPLE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
a!localVariables(
local!interestFieldData: rule!AS_CO_UT_filterCdtByField(
cdt: local!visibleDetailsFields,
field: "fieldKey",
value: `cons!AS_FS_ENUM_PRODUCT_FIELD_KEY_DETAILS_INTEREST`
),
{
span: 2,
components: rule!AS_CO_INP_paragraphField(
showWhen: rule!AS_CO_UT_isNotBlank(local!descriptionFieldData),
required: local!descriptionFieldData.required,
label: rule!AS_CO_I18N_UT_displayLabel(
i18nData: ri!i18nData,
bundleKey: "Product.lbl_Description"
),
readOnly: ri!readOnly,
value: ri!product.description,
maxLength: cons!AS_CO_ENUM_PARAGRAPH_LENGTH_MEDIUM,
saveInto: ri!product.description,
height: "SHORT",
placeholder: rule!AS_CO_I18N_UT_displayLabel(
i18nData: ri!i18nData,
bundleKey: "ProductField.plc_EnterProductDescription"
)
)
}
)
AS_FS_R_PRODUCT_TYPE_FIELD_MAPPING
table, use the following JSON format {"fieldKey":"<FIELD_KEY>","required":}
to add the fields into the FIELD_DATA
column for the products that you want to display.To remove a product field:
AS_FS_R_PRODUCT_TYPE_FIELD_MAPPING
table, remove any JSON structures with the corresponding fieldKey that you want to remove from the FIELD_DATA
column.AS_FS_CPS_OnboardingRequestProducts_<SectionName>Section
interface.AS_FS_REF_PRODUCT_FIELDS_<SECTION_NAME>
expression rule.Product fields are mapped to products in the AS_FS_R_PRODUCT_TYPE_FIELD_MAPPING
reference table. When a product type is added by the user, a new row is added to this table to manage which fields will show up when that product type is added to an onboarding.
If a product type does not have the right fields by default, a user can modify which product fields show up by modifying the FIELD_DATA
column in the AS_FS_R_PRODUCT_TYPE_FIELD_MAPPING
table.
The FIELD_DATA
column is used to determine which fields show up for each product and also which fields will be required. For each product, the FIELD_DATA
column holds a JSON mapping of a field, section, and if the field is required.
**EXAMPLE OF JSON IN FIELD_DATA
FOR PRODUCT TYPE COMMODITIES **
1
2
3
4
5
6
7
{{"fieldKey":"DETAILS_AMOUNT","required":false},
! {"fieldKey":"DETAILS_ENTITY","required":true},
{"fieldKey":"DETAILS_STRATEGY","required":false},
{"fieldKey":"DETAILS_DURATION","required":true},
{"fieldKey":"DETAILS_UPFRONT_FEE","required":false},
{"fieldKey":"DETAILS_RESTRICTED_COUNTRIES","required":false},
{"fieldKey":"DETAILS_PERMISSIBLE_COUNTRIES","required":false}}
For each product, The FIELD_KEY determines the section and the field, and REQUIRED determines if the field will be required on the page. For example, for the highlighted row above, the ENTITY field will show up in the DETAILS section and it will be required when a commodities product is added to an onboarding.
If a new field is needed for a product type, you will need to edit the JSON in the FIELD_DATA
column of the AS_FS_R_PRODUCT_TYPE_FIELD_MAPPING
table. For the product type you want to update, add a new JSON dictionary structure for the field that you want to add and update the FIELD_DATA
column in the database.
If a field is no longer needed for a product type, you will need to edit the JSON in the FIELD_DATA
column of the AS_FS_R_PRODUCT_TYPE_FIELD_MAPPING
table.
To change requiredness of a specific field, edit the JSON in the FIELD_DATA
column. Update the REQUIRED structure of the FIELD_KEY that you want to change then update the FIELD_DATA
column. Valid values: true
or false
.
Because the user can create a new product type from the Connected Onboarding settings page, when the new product is added to the AS_FS_R_PRODUCT_TYPE_FIELD_MAPPING
table, it will have all product fields associated with the new product by default. These fields are not required.
To update the default product type fields:
AS_FS_constructProductTypeFieldMapping
expression rule.local!refData
to filter out the fields you do not want to be part of a product by default.The default sections and their corresponding fields are listed in the table below.
Section | Default Fields |
---|---|
Details | Amount |
Commitment fee rate | |
Description | |
Duration | |
Entity | |
Fund | |
Interest | |
Permissible countries | |
Restricted countries | |
Strategy | |
Upfront fee | |
Collateral | Collateral |
Collateral value | |
Cover provided | |
Cover required | |
Terms | Committed margin |
Other | |
Performance return term | |
Performance start date | |
Rate lock | |
Short lock | |
Accounts | Account Number |
Name | |
Type | |
Fees | Ad valorem |
Market | |
Minimum | |
Minimum currency | |
Period | |
Transaction charge | |
Transaction charge currency | |
Thresholds | Amount |
Currency | |
Number of Authorizations | |
Operator |
Modifying Product Fields