App Customizations
A general rule is that customizations (overwriting BASE content from the Marketplace and/or adding additional content) should be avoided, if possible, to enable easier maintenance and to ensure that new updates to the App can be installed without issues. Nevertheless, there are parts of the app that need to be adjusted in order for it to function as expected, especially when the data model setup is different to the Marketplace template. While the Views should still be very similar, it might be that the Knowledge Models require some further customization and also the skills, especially the action part, need to be updated.
View Customizations
Read about view customizations
Please get familiar with the Views section before making any view customizations.
Adding an Issue Details View
Depending on the underlying invoice issue, the Overview tab of the invoice details view shows different content. For instance, the screenshot on the left shows the default view for a payment block and the one on the right is the view for a vendor block.
To achieve this, the JavaScript functionality is used in conjunction with embedded views and the record variable.
- id: view-8a821821-cb66-46ad-a6e6-30f9bc81aa8f type: view settings: key: ${(record.PROCESSING_STATUS === 'Posted w/ Inv. Block' && 'price-quantity-variance') || (record.PROCESSING_STATUS === 'Vendor Block' && 'vendor-block') || (record.PROCESSING_STATUS === 'Parked' && 'price-quantity-variance') || 'default'}
If additional views for specific issues need to be added, the first step is to create a new view similar to the other views in the Profile View / Embedded Views section.
Having created the view, the JavaScript statement can be adjusted to call this view when certain criteria are met. All visible columns of the invoice table can be used in the view. In the example below we use the “Issue Detail” field to create a dedicated view for payment block ‘C’.
- id: view-8a821821-cb66-46ad-a6e6-30f9bc81aa8f type: view settings: key: ${(record.PROCESSING_STATUS_DETAIL === 'C' && 'payment-block-C') || record.PROCESSING_STATUS === 'Posted w/ Inv. Block' && 'price-quantity-variance') || (record.PROCESSING_STATUS === 'Vendor Block' && 'vendor-block') || (record.PROCESSING_STATUS === 'Parked' && 'price-quantity-variance') || 'default'}