Loading...
Loading...
In the flow action there is a custom script to convert the catalog variable to toString(). Converting a catalog variable to toString () via custom script throws error "Action [2] (Log) references catalog variables that don’t exist or are inactive". Steps to Reproduce 1. Import the attached update set 2. Open the flow Copy of 3456 3. Try to activate the flow and observe the error message
This problem has been fixed. If you are able to upgrade, review the Fixed In section to determine the latest version with a permanent fix your instance can be upgraded to. The workaround consists of two steps. The first step is sufficient if the user has been working with a new flow that they haven't saved yet. In this case, you could just modify the script from: fd_data._1__get_catalog_variables.watch_list.toString(); to define the catalog variable into a separate variable and then do toString() or any function to it: var watchList = fd_data._1__get_catalog_variables.watch_list; var watchListString = watchList.toString(); The second step is needed when already having scriptJson saved, and it does not allow to save the flow even after changing the scripts. Modify the scripts in the [sys_hub_input_scripts] table directly to change the actual scriptJSON object passed down from the tables: 1. Look up the your flow in sys_hub_flow table. 2. Open the flow record and click on the burger menu on the top left of the browser header (next to left arrow button and Flow - [Name of Flow]]). 3. Hover over 'Configure' and select Related Lists. 4. Out of the available items, push 'Action Instance->Flow' and 'Sub Flow instance->Flow' items to the selected list. 5. Scroll down and select the 'Action Instances' Tab. 6. Repeat the same steps below for all the component instances that have the errors: 6.1. Look for the order of the instance, right click on the record, and copy sys_id. Now having the action instance's sys_id, you can utilize it to find the attached script to the component instance. 6.2. Navigate to sys_hub_input_scripts table and search for the instance that equals the sys_id. 6.3. Open the record and replace the problematic .toString code. You need to replace it for all the variables that uses .toString function, for example: from: var buildType /u003d fd_data._1__get_catalog_variables.sb_type.toString(); to: var sbType /u003d fd_data._1__get_catalog_variables.sb_type;\nvar buildType = sbType.toString(); 7. Once all the changes are done, go to the flow and refresh flow designer. You should now be able to save / activate the flow. If the customer doesn't have "maint" access and is in releases including&after Sandiego, they wouldn't be able to carry out from steps 2~6. Follow the steps below if they don't have "maint" access. 1. Search for the component instance that has the script in the platform (if it’s action, search sys_hub_action_instance, if it’s flow logic, search sys_hub_flow_logic table). Set the filter Flow = (sys_id of the flow). You can also use the ‘Order’ field to narrow down the actual component instance. 2. Right click on the record, and copy sys_id. Now that we have the component instance's sys_id, we can utilize it to find the attached script to the component instance. 3. Navigate to sys_hub_input_scripts table and search for the instance that equals the sys_id. 4. Open the record and replace the problematic code. The record probably still has the older variable name. 5. Once you make all the changes, go to the flow and refresh flow designer. You should now be able to save / activate the flow.
PRB1631203
Click on a version to see all relevant bugs
ServiceNow Integration
Learn more about where this data comes from
Bug Scrub Advisor
Streamline upgrades with automated vendor bug scrubs
BugZero Enterprise
Wish you caught this bug sooner? Get proactive today.