We have observed since 16.4.1 upgrade when not attempting to select but not picking any value for a parameterized lookup type attribute it is throwing API-1013 error.
Steps to Reproduce:
1. Create master object to hold clients list, make sure it is API enabled.
2. Create master object to hold regions list, make sure it is API enabled.
3. Create Region attribute on the object created in Step 1 based on the lookup that holds regions (lookup gets created automatically when master object gets created), make sure it is API enabled.
4. Create some sample data for Regions.
5. Create some sample data for Clients.
6. Create sub-object under project object to hold specific clients assigned to the project, make sure it is API enabled.
7. Create lookup attribute on the sub-object created above and choose lookup which was created when master object in Step 1 was created.
8. Create sub-object under project object to hold deliverables for a project, make sure it is API enabled.
9. Create parameterized lookup with the sample NSQL as below. Note odf_ca_prj_clients is custom sub-object created in Step 6:
SELECT @SELECT:CLNT.CODE:CLIENT_CODE@,
@SELECT:CLNT.prj_client:Project_Client@
FROM
odf_ca_prj_clients CLNT
JOIN INV_INVESTMENTS INV ON INV.ID=CLNT.ODF_PARENT_ID
WHERE ((INV.ID= @WHERE:PARAM:USER_DEF:INTEGER:PRJ_ID@ OR @WHERE:PARAM:USER_DEF:INTEGER:PRJ_ID@ IS NULL))
10. Create attribute based on above mentioned lookup and map parameter to odf_parent_id.
11. Create parameterized lookup with sample NSQL as below. Note odf_ca_prj_clients is custom sub-object created in Step 6 and odf_ca_c_clients is master object created in Step 1:
SELECT @SELECT:MC.c_reg:CLIENT_REGION@
FROM
odf_ca_prj_clients CLNT
JOIN INV_INVESTMENTS INV ON INV.ID=CLNT.ODF_PARENT_ID
JOIN odf_ca_c_clients MC on MC.code = CLNT.prj_client
WHERE (INV.ID= @WHERE:PARAM:USER_DEF:INTEGER:PRJ_ID@ OR @WHERE:PARAM:USER_DEF:INTEGER:PRJ_ID@ IS NULL)
and
(CLNT.prj_client = @WHERE:PARAM:USER_DEF:INTEGER:CLIENT_NAME@ OR @WHERE:PARAM:USER_DEF:INTEGER:CLIENT_NAME@ IS NULL)
AND @FILTER@
12. Create attribute based on the lookup created in the step above and map both parameters prj_id to odf_parent_id and client_name to attribute you created in step 11. Ensure it is API enabled.
13. Configure blueprint to show both subobjects created under project object.
14. Open project that is pointing to the blueprint modified in above step.
15. Create at least 1 project client which is the subobject created in step Step 6.
16. Navigate to the other tab for subobject created in Step 8.
17. Create an instance.
18. Create second instance then click on the attribute created in Step 10 but don't select any value and click away. Observe error below
Error:API-1013 : Invalid filter string '((searchText startsWith '%') and (param_prj_id = '5002000') and (objectApiAlias = 'projects') and (objectInstanceId = 5001004) and (dynLookupParams = ('param_client_name = dev_client')))' . Each expression must start and end with parentheses and must have attributeName, operator and value.
Expected Results: It should not throw an error.
Actual Results: It is throwing an error.
Clarity 16.4.1
DE190777
Fixed in 16.4.3.