Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The product and customer inputs let the user pick a set of existing products and customers from the master data. The two inputs work in the same way, just use different tables for data selection.

The value of this input is CustomerGroup or ProductGroup object. It is often transported as a Map when value is passed between logics over HTTP, so you may need to convert the input map to the object first.

Product

The product filter allows the user to provide a set of products as an input. The end user can either select products from a list, or provide a filter that will be used to query the product master table.

product fixed product dynamic
Expand
titleForms
Code Block
languagegroovy
themeMidnight
linenumbersfalse
def formFieldSet = api.createConfiguratorEntry()

formFieldSet.inputs = [
    api.inputBuilderFactory()
        .createProductGroupEntry('productGroup')
        .buildContextParameter()
]

return formFieldSet
Expand
titleIn input generation mode (input generation mode)
Code Block
languagegroovy
themeMidnight
linenumbersfalse
api.inputBuilderFactory()
        .createProductGroupEntry('productGroup')
        .getInput()
Expand
titleIn header Logics
Code Block
languagegroovy
themeMidnight
linenumbersfalse
processor.addOrUpdateInput(                 //❶
        'ROOT',
        api.inputBuilderFactory()
                .createProductGroupEntry('productGroup')
                .buildMap()
)

❶ the processor can be one of the quoteProcessor, cProcessor, etc., which references subclasses of the CalculableLineItemCollectionBuilder

Expand
titleReading input value
Code Block
languagegroovy
themeMidnight
titleReading input value in a line-item logic.
linenumbersfalse
def value = input.productGroup as Map
Expand
titleConverting to a filter
Code Block
languagegroovy
themeMidnight
titleCreating a filter out of the ProductGroup object to be used in Price Analyzer. It performs the attribute to datasource field name conversion.
linenumbersfalse
def filter = api.datamartFilter(productGroup)
Code Block
languagegroovy
themeMidnight
titleCreating a filter out of the ProductGroup object to be used in other modules except Price Analyzer.
linenumbersfalse
def filter = productGroup.asFilter()
Info
See also Product Picker Filter Logic

Customer

The customer filter allows the user to provide a set of customers as an input. The end user can either select customers from a list, or provide a filter that will be used to query the customer master table.

customer fixed customer dynamic
Expand
titleForms
Code Block
languagegroovy
themeMidnight
linenumbersfalse
def formFieldSet = api.createConfiguratorEntry()

formFieldSet.inputs = [
    api.inputBuilderFactory()
        .createCustomerGroupEntry('customerGroup')
        .buildContextParameter()
]

return formFieldSet
Expand
titleIn input generation mode (input generation mode)
Code Block
languagegroovy
themeMidnight
linenumbersfalse
api.inputBuilderFactory()
        .createCustomerGroupEntry('customerGroup', )
        .getInput()
Expand
titleIn header Logics
Code Block
languagegroovy
themeMidnight
linenumbersfalse
processor.addOrUpdateInput(                 //❶
        'ROOT',
        api.inputBuilderFactory()
                .createCustomerGroupEntry('customerGroup')
                .buildMap()
)

❶ the processor can be one of the quoteProcessor, cProcessor, etc., which references subclasses of the CalculableLineItemCollectionBuilder

Expand
titleReading input value
Code Block
languagegroovy
themeMidnight
titleReading input value in a line-item logic.
linenumbersfalse
def value = input.customerGroup as Map
Expand
titleConverting to a filter
Code Block
languagegroovy
themeMidnight
titleCreating a filter out of the CustomerGroup object to be used in Price Analyzer. It performs the attribute to datasource field name conversion.
linenumbersfalse
def filter = api.datamartFilter(customerGroup)
Code Block
languagegroovy
themeMidnight
titleCreating a filter out of the CustomerGroup object to be used in other modules except Price Analyzer.
linenumbersfalse
def filter = customerGroup.asFilter()
Info
See also Customer Picker Filter Logic