- Created by Anne Krieg , last modified by Oleh Horbach on Feb 14, 2024
You are viewing an old version of this page. View the current version.
Compare with Current View Version History
« Previous Version 7 Current »
Introduction
For product properties with or without price influence, queries can be generated for the types "Relation" and "Table" in the field "Object Query". These queries can be used to display the contents of any standard or custom object in Salesforce in the product property and make it selectable. The query is divided into several sections and can be designed from very simple to any complexity.
Please note that Object Queries may request very large amounts of data and we are limited by the Salesforce Row Limit. We currently support about 4 properties of type Table or Relation per product. If you still get an error message, please adjust the filter criteria of your Object Queries to reduce the amount of data.
For a better overview, you can sort your tables according to the entries in the individual columns in ascending or descending order. This sorting will also be kept for the current quote session.
Formatting
The Object Query is structured as a string. API field names, spaces, comma, pipe and line breaks are allowed for the input. Other special characters and/or incorrect API field names automatically lead to an error message and prevent the insertion of the associated product.
Syntax
Order | Priority | Function | Structure | Note | Example | Explanation |
---|---|---|---|---|---|---|
1 | Madatory | The query refers to this object. | <Object Name>| | Only one value valid | Auspraegung__c| | |
2 | Recommended, no longer necessary in appero quote Lightning | List of all fields that will be queried in the following query. | <Field Name>| | Comma separated | Feld1__c,Feld2__c,Feld3__c| | All fields used in the query from 3 must also be inserted in 2. The fields "Id" and "Name" are automatically stored by Quote and do not have to be added manually. To keep the amount of data as small as possible (loading time), the selection can already be limited at this point by a filter, see Usage tips below. |
3 | Optional | Calculation | <Field Name Calculation>| | Only type currency or number | Sonderpreis__c| | Re. Product Properties with Price Influence. If a valid field is assigned here, this will result in the value for calculation applied for product properties with price influence. The "value for calculation" sf42_quotefx__SF42_calc_Value__c of the product option itself is then ignored. The operator stored in the product property (+/-/=) is applied to the value of the record selected here. |
4 | Optional | Product filter | <Field Name Product Filter>| | Relation to product | Product2Id| | If a relation to the standard object Product is assigned to the object on which the Object query is based, the data records that can be selected in the Product option are filtered to the Salesforce Id of the product of the Quote Line Item. In this way, a selection can be narrowed down to a specific product. |
5 | Optional | Filter | <Field Name Filter>| | Only type checkbox, dropdown | Auswahl__c,aktiv__c| | Variant 1: Simple field names for display Variant 2:
Variant 3: Field names with reference to other product options of type "Table" / "Relation" |
6 | Optional | Display | <Field Name Display>| | Comma separated | Feld1__c,(Feld3__c)| | For the "Table" type, you can control here which of the fields stored in 2 should actually be output in the tabular display. If this option is left empty, all fields from 2 are automatically displayed in the table. If you write the field name in brackets, e.g. "(Field3__c)", then the column in the table will be displayed in the editor, but hidden in the finished quotation document. For the type "Relation" a single field is sufficient. If this option is left empty, the "Name" field is automatically displayed in the selection list. Field names in brackets are ignored. |
7 | Optional | Account | <Field Name Account>| | Relation to account | Account__c| | If a relation to the standard object Account is assigned here, the data records that can be selected in the product option are filtered to the Salesforce ID of the account that is stored in the associated Opportunity. In this way, a selection can be restricted specifically to the account used. |
8 | Optional | Own labels | <Own Labels Display>| | Fields from display | Feld1__c=Titel| | For the type "Table" own column headings can be defined at this point. Especially if the standard field names are too long or a translation is necessary, this option can be very helpful. If this option is left empty, the field names from Salesforce will be used automatically. |
9 | Optional | load on demand | <load on demand>| | "true" or "false | false| | Applies only to appero quote Classic: If this value is empty or set to "false", the required data records are loaded from this object query when the quote editor is started. With the option "true", the loading time can be reduced considerably, especially with large amounts of data, because the data is then only reloaded as soon as the product property is displayed. IMPORTANT: Currently, the option can only be used meaningfully if the "Product filter" or the "Publication" is assigned in the Object Query. |
10 | MediaVelox | Publication | <Field Name Publication> | Relation to publication | Publikation__c, | This option can be used only if MediaVelox is installed. If the option is set, the displayed records will be filtered to the publication resulting from the selected product (the relation to the placement must be filled for the product). |
11 | MediaVelox | Publishing Group | <Field Name Publishing Group>| | Relation to publishing group | Publikationsgruppe__c| | This option can be used only if MediaVelox is installed. If the option is set, the displayed records filter on the publishing group in addition to the publication. |
12 | MediaVelox | Placement | <Field Name Placement>| | Relation to placement | Platzierung__c| | This option can only be used if MediaVelox is installed. If the option is set, the displayed data records are additionally filtered on the placement resulting from the selected product (the relation to the placement must be stored on the product). |
13 | MediaVelox | Ad format | <Field Name Ad Format> | Relation to ad format | Format__c | This option can only be used if MediaVelox is installed. If the option is set, the displayed data records are additionally filtered to the ad format resulting from the selected product (the relation to the ad format must be stored on the product). |
The second element of the object query, the listing of all fields used in the query, can be omitted for appero quote Lightning.
Usage Tips
To improve the performance of the table, only 30 records are rendered at a time in the Product Details dialog. If the table contains more than 30 records, a hint prompts the user to refine the search.
Up to 400 records per property are available in the editor.
Minimum configuration
If an Object Query consists only of the object name, the fields "Id" and "Name" are automatically loaded and the field "Name" is used for display. Especially when displaying simple objects in relations, this can be very helpful.
Unneeded options
Of course, it can happen that you do not need some options in the Object Query, in this case it is sufficient to simply leave the value between both Pipes empty, for example "||". Since there can sometimes be many pipes, it is worthwhile to "count" them. It is recommended to start a new line for each pipe to ensure a better overview.
Optimize data volumes
Often there can be filter criteria that would be useful already when loading the data to reduce the amount of data and thus the loading time of a product property. This can be a status or a record type. This can be realized very simply, if one already uses a filter with point 2 "field names". In the example StageName='Prospecting' already when loading the data only all opportunity records would be loaded that match the filtered value. In general, a table will only load a maximum of 200 records, for more accurate results you may have to limit the table display in the editor using the search field.
Important: Filters on the field type String and Id must always be enclosed with single quotes in appero quote Classic. Filters on date values and numbers do not need them.
Display in quote editor
The determined values are queried in the product detail dialog in the form of a drop-down list (type Relation) or as a Table:
Dependent filters to other product options
Often there is a requirement that a selected value of a product option of the type "Table" / "Relation" should be applied as a filter criterion for another Object Query. This can be added via section 5 (Filter).
Example
The first product property provides a tabular representation of the available accounts via the Object Query:
Account|Name,Id
In the second query, only those contacts are to be displayed that belong to the account determined in the first query. For this purpose, reference is made in 5. to the ID of the first query and the field to be referenced, in this case the AccountID.
Contact|Name,Id,AccountId|||AccountId={Id:property1Id}
Configuration
There are four different ways to set the filter: unique, exclusive, complementary and default. An overview of the different functions and the corresponding syntax can be found here:
Verwendung | Syntax | Example | Explanation | |
---|---|---|---|---|
1 | Dynamic unique filter | = Example Section 5: <Field Name>={<Field Name Object Query of further product options>:<Salesforce Id of further product options>} | Id={PriceRubric__c:a0q9E000001Zq5WQAS} | The option determines the exact field value of the linked product option and uses this as the filter value for the specified field of its own Object Query. Thus, only records that match the exact filter criterion are displayed |
2 | Dynamic exclusion filter | -= Example Section 5: <Field Name>-={<Field Name Object Query of further product options>:<Salesforce Id of further product options>} | Id-={PriceRubric__c:a0q9E000001Zq5WQAS} | The option determines the exact field value of the linked product opions, but uses it as a unique filter also in the comparison of exact empty values |
3 | Dynamic complementary filter | += Example Section 5: <Field Name>+={<Field Name Object Query of further product options>:<Salesforce Id of further product options>} | Id+={PriceRubric__c:a0q9E000001Zq5WQAS} | The option determines the exact field value of the linked product options, but uses it as an additional filter. Thus, records with empty value on the filtered field will still be displayed. |
4 | Dynamic preset | : Example Section 5: <Field Name>:{<Field Name Object Query of further product options>:<Salesforce Id of further product options>} | Id:{PriceRubric__c:a0q9E000001Zq5WQAS} | The option uses the exact field value only to preset the first record found in the list, but without limiting the number of records. |
Preassigning another product property
For some product properties, you can access the selected value of another product property of type Table/Relation via the field "Preassigned value"/ sf42_quotefx__SF42_PreassignedValue__c using a variable and thus dynamically preassign your product property. This is possible for the property types:
String/ Textarea
Dropdown/Multipicklist
Date
Number/ Basequantity
Example configuration
Product Property 1, Type: Table
Id: xyz
Query: Account|Id,Name,Industry
Product Property 2, Typ: String
Id: abc
Preassigned value: {xyz:Industry}
Result: The second product property of type String is preset with the value selected in the first table in the column "Industry".
- No labels