[
https://issues.apache.org/jira/browse/OFBIZ-12082?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jacques Le Roux closed OFBIZ-12082.
-----------------------------------
Fix Version/s: 17.12.05
18.12.01
Resolution: Fixed
> Unique form names for promo actions
> -----------------------------------
>
> Key: OFBIZ-12082
> URL: https://issues.apache.org/jira/browse/OFBIZ-12082
> Project: OFBiz
> Issue Type: Bug
> Affects Versions: Trunk
> Reporter: Danny Trunk
> Assignee: Jacques Le Roux
> Priority: Minor
> Fix For: 18.12.01, 17.12.05
>
> Attachments: Bildschirmfoto vom 2020-12-01 16-01-55.png
>
>
> Creating a promo with multiple rules and actions results in an exception:
> {code:java}
> org.apache.ofbiz.widget.renderer.ScreenRenderException: Error rendering
> screen [component://product/widget/catalog/LookupScreens.xml#LookupProduct]:
> org.apache.ofbiz.widget.renderer.ScreenRenderException: Error rendering
> screen [component://common/widget/CommonScreens.xml#LookupDecorator]:
> java.lang.IllegalArgumentException: Error running script at location
> [component://common/groovyScripts/FindAutocompleteOptions.groovy]:
> org.apache.ofbiz.entity.GenericEntityException:
> org.apache.ofbiz.entity.GenericDataSourceException: SQL Exception while
> executing the following: SELECT PRODUCT_ID, INTERNAL_NAME, BRAND_NAME FROM
> public.PRODUCT WHERE (((PRODUCT_ID = (?, ?, ?) OR PRODUCT_ID = (?, ?, ?) OR
> PRODUCT_ID = (?, ?, ?)))) ORDER BY PRODUCT_ID ASC, INTERNAL_NAME ASC,
> BRAND_NAME ASC (FEHLER: Operator existiert nicht: character varying = record
> Hint: Kein Operator stimmt mit dem angegebenen Namen und den Argumenttypen
> überein. Sie müssen möglicherweise ausdrückliche Typumwandlungen hinzufügen.
> Position: 95) (SQL Exception while executing the following: SELECT
> PRODUCT_ID, INTERNAL_NAME, BRAND_NAME FROM public.PRODUCT WHERE (((PRODUCT_ID
> = (?, ?, ?) OR PRODUCT_ID = (?, ?, ?) OR PRODUCT_ID = (?, ?, ?)))) ORDER BY
> PRODUCT_ID ASC, INTERNAL_NAME ASC, BRAND_NAME ASC (FEHLER: Operator existiert
> nicht: character varying = record Hint: Kein Operator stimmt mit dem
> angegebenen Namen und den Argumenttypen überein. Sie müssen möglicherweise
> ausdrückliche Typumwandlungen hinzufügen. Position: 95)) (Error running
> script at location
> [component://common/groovyScripts/FindAutocompleteOptions.groovy]:
> org.apache.ofbiz.entity.GenericEntityException:
> org.apache.ofbiz.entity.GenericDataSourceException: SQL Exception while
> executing the following: SELECT PRODUCT_ID, INTERNAL_NAME, BRAND_NAME FROM
> public.PRODUCT WHERE (((PRODUCT_ID = (?, ?, ?) OR PRODUCT_ID = (?, ?, ?) OR
> PRODUCT_ID = (?, ?, ?)))) ORDER BY PRODUCT_ID ASC, INTERNAL_NAME ASC,
> BRAND_NAME ASC (FEHLER: Operator existiert nicht: character varying = record
> Hint: Kein Operator stimmt mit dem angegebenen Namen und den Argumenttypen
> überein. Sie müssen möglicherweise ausdrückliche Typumwandlungen hinzufügen.
> Position: 95) (SQL Exception while executing the following: SELECT
> PRODUCT_ID, INTERNAL_NAME, BRAND_NAME FROM public.PRODUCT WHERE (((PRODUCT_ID
> = (?, ?, ?) OR PRODUCT_ID = (?, ?, ?) OR PRODUCT_ID = (?, ?, ?)))) ORDER BY
> PRODUCT_ID ASC, INTERNAL_NAME ASC, BRAND_NAME ASC (FEHLER: Operator existiert
> nicht: character varying = record Hint: Kein Operator stimmt mit dem
> angegebenen Namen und den Argumenttypen überein. Sie müssen möglicherweise
> ausdrückliche Typumwandlungen hinzufügen. Position: 95))) (Error rendering
> screen [component://common/widget/CommonScreens.xml#LookupDecorator]:
> java.lang.IllegalArgumentException: Error running script at location
> [component://common/groovyScripts/FindAutocompleteOptions.groovy]:
> org.apache.ofbiz.entity.GenericEntityException:
> org.apache.ofbiz.entity.GenericDataSourceException: SQL Exception while
> executing the following: SELECT PRODUCT_ID, INTERNAL_NAME, BRAND_NAME FROM
> public.PRODUCT WHERE (((PRODUCT_ID = (?, ?, ?) OR PRODUCT_ID = (?, ?, ?) OR
> PRODUCT_ID = (?, ?, ?)))) ORDER BY PRODUCT_ID ASC, INTERNAL_NAME ASC,
> BRAND_NAME ASC (FEHLER: Operator existiert nicht: character varying = record
> Hint: Kein Operator stimmt mit dem angegebenen Namen und den Argumenttypen
> überein. Sie müssen möglicherweise ausdrückliche Typumwandlungen hinzufügen.
> Position: 95) (SQL Exception while executing the following: SELECT
> PRODUCT_ID, INTERNAL_NAME, BRAND_NAME FROM public.PRODUCT WHERE (((PRODUCT_ID
> = (?, ?, ?) OR PRODUCT_ID = (?, ?, ?) OR PRODUCT_ID = (?, ?, ?)))) ORDER BY
> PRODUCT_ID ASC, INTERNAL_NAME ASC, BRAND_NAME ASC (FEHLER: Operator existiert
> nicht: character varying = record Hint: Kein Operator stimmt mit dem
> angegebenen Namen und den Argumenttypen überein. Sie müssen möglicherweise
> ausdrückliche Typumwandlungen hinzufügen. Position: 95)) (Error running
> script at location
> [component://common/groovyScripts/FindAutocompleteOptions.groovy]:
> org.apache.ofbiz.entity.GenericEntityException:
> org.apache.ofbiz.entity.GenericDataSourceException: SQL Exception while
> executing the following: SELECT PRODUCT_ID, INTERNAL_NAME, BRAND_NAME FROM
> public.PRODUCT WHERE (((PRODUCT_ID = (?, ?, ?) OR PRODUCT_ID = (?, ?, ?) OR
> PRODUCT_ID = (?, ?, ?)))) ORDER BY PRODUCT_ID ASC, INTERNAL_NAME ASC,
> BRAND_NAME ASC (FEHLER: Operator existiert nicht: character varying = record
> Hint: Kein Operator stimmt mit dem angegebenen Namen und den Argumenttypen
> überein. Sie müssen möglicherweise ausdrückliche Typumwandlungen hinzufügen.
> Position: 95) (SQL Exception while executing the following: SELECT
> PRODUCT_ID, INTERNAL_NAME, BRAND_NAME FROM public.PRODUCT WHERE (((PRODUCT_ID
> = (?, ?, ?) OR PRODUCT_ID = (?, ?, ?) OR PRODUCT_ID = (?, ?, ?)))) ORDER BY
> PRODUCT_ID ASC, INTERNAL_NAME ASC, BRAND_NAME ASC (FEHLER: Operator existiert
> nicht: character varying = record Hint: Kein Operator stimmt mit dem
> angegebenen Namen und den Argumenttypen überein. Sie müssen möglicherweise
> ausdrückliche Typumwandlungen hinzufügen. Position: 95))))
> {code}
> The problem is that the query contains all 3 product IDs of all 3 actions.
> See attachment for Ajax Request `POST
> [https://localhost:8443/catalog/control/LookupProduct]`
> jQuery cannot find the specific field, instead it finds all 3 fields. This is
> because the fieldlookup.js is checking the form name (see
> [https://github.com/apache/ofbiz-framework/blob/trunk/themes/common-theme/webapp/common/js/util/fieldlookup.js#L831])
> and the form name is in a loop and statically set to
> `updateProductPromoAction` (see
> [https://github.com/apache/ofbiz-framework/blob/trunk/applications/product/template/promo/EditProductPromoRules.ftl#L288])
> h3. Solution
> form name needs to be renamed from updateProductPromoAction to
> updateProductPromoAction_${productPromoRule_index}_${productPromoAction_index}.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)