diff --git a/utils/fct/gw_fct_config_mapzones.sql b/utils/fct/gw_fct_config_mapzones.sql
index fa64e52a9c..0bb2214dac 100644
--- a/utils/fct/gw_fct_config_mapzones.sql
+++ b/utils/fct/gw_fct_config_mapzones.sql
@@ -12,7 +12,7 @@ CREATE OR REPLACE FUNCTION SCHEMA_NAME.gw_fct_config_mapzones(p_data json)
 $BODY$
 
 /*EXAMPLE
- SELECT SCHEMA_NAME,gw_fct_config_mapzones($${"client":{"device":4, "lang":"es_ES", "infoType":1, "epsg":25831}, "form":{}, "feature":{}, "data":{"filterFields":{}, "pageInfo":{}, 
+ SELECT SCHEMA_NAME.gw_fct_config_mapzones($${"client":{"device":4, "lang":"es_ES", "infoType":1, "epsg":25831}, "form":{}, "feature":{}, "data":{"filterFields":{}, "pageInfo":{},
  "parameters":{"configZone":"EXPL", "action":"PREVIEW", "nodeParent":, "toArc":}}}$$);
 */
 DECLARE 
@@ -41,6 +41,11 @@ v_use_node json;
 v_use_forceclosed json;
 v_netscenario_id integer;
 v_check_value text;
+v_use_value json;
+v_ignore_value json;
+v_forceClosed_value json;
+v_combined_use_value text;
+v_combined_forceClosed_value text;
 BEGIN
 
 	SET search_path = "SCHEMA_NAME", public;
@@ -103,7 +108,17 @@ BEGIN
 				IF v_check_value ='' THEN 
 					v_preview = concat('{"use":[',v_preview,'], "ignore":[], "forceClosed":[]}');
 				ELSE
-					v_preview = jsonb_set( v_config::jsonb, '{use}',(v_config::jsonb -> 'use') ||v_preview::jsonb);
+				    v_use_value = json_extract_path_text(v_config::json, 'use');
+				    v_ignore_value = json_extract_path_text(v_config::json, 'ignore');
+				    v_forceClosed_value = json_extract_path_text(v_config::json, 'forceClosed');
+					IF v_use_value::text = '[]' THEN
+					    v_combined_use_value = v_preview::text;
+					ELSE
+					    v_combined_use_value = trim(both '[]' from v_use_value::text) || ',' || v_preview::text;
+					END IF;
+				    v_preview = gw_fct_json_object_set_key('{}'::json, 'use', ('[' || v_combined_use_value || ']')::json);
+				    v_preview = gw_fct_json_object_set_key(v_preview, 'ignore', v_ignore_value::json);
+				    v_preview = gw_fct_json_object_set_key(v_preview, 'forceClosed', v_forceClosed_value::json);
 				END IF;
 			END IF;
 
@@ -118,41 +133,56 @@ BEGIN
 
 
 			IF v_forceclosed IS NOT NULL THEN
-				v_preview = jsonb_set( v_preview::jsonb, '{forceClosed}',(v_preview::jsonb -> 'forceClosed') || v_forceclosed::jsonb);
+			    v_forceClosed_value = json_extract_path_text(v_preview::json, 'forceClosed');
+			    IF v_forceClosed_value::text = '[]' THEN
+			        v_combined_forceClosed_value = v_forceclosed::text;
+			    ELSE
+			        v_combined_forceClosed_value = trim(both '[]' from v_forceClosed_value::text) || ',' || v_forceclosed::text;
+			    END IF;
+			    v_preview = gw_fct_json_object_set_key(v_preview, 'forceClosed', ('[' || v_combined_forceClosed_value || ']')::json);
 			END IF;
 		END IF;
 	ELSIF v_action = 'REMOVE' THEN
 		IF v_nodeparent IS NOT NULL THEN
-			EXECUTE 'SELECT json_agg(a.data::json) FROM 
-				(SELECT json_array_elements_text(
-				json_extract_path('''||v_config||'''::json,''use'')) as data)a
-				WHERE  json_extract_path_text(data ::json,''nodeParent'') != '||quote_literal(v_nodeparent)||''
-				into v_use_node;
-			
-				IF v_use_node is null then
-					v_use_node= '[]';
-				END IF;
-
-				v_preview = jsonb_set( v_config::jsonb, '{use}', v_use_node::jsonb);
-			
+		    EXECUTE 'SELECT json_agg(a.data::json) FROM
+		        (SELECT json_array_elements_text(
+		        json_extract_path('''||v_config||'''::json,''use'')) as data)a
+		        WHERE  json_extract_path_text(data ::json,''nodeParent'') != '||quote_literal(v_nodeparent)||''
+		        INTO v_use_node;
+
+		    IF v_use_node IS NULL THEN
+		        v_use_node = '[]';
+		    END IF;
+
+		    v_use_value = v_use_node;
+		    v_ignore_value = json_extract_path_text(v_config::json, 'ignore');
+		    v_forceClosed_value = json_extract_path_text(v_config::json, 'forceClosed');
+
+		    v_preview = gw_fct_json_object_set_key('{}'::json, 'use', v_use_value::json);
+		    v_preview = gw_fct_json_object_set_key(v_preview, 'ignore', v_ignore_value::json);
+		    v_preview = gw_fct_json_object_set_key(v_preview, 'forceClosed', v_forceClosed_value::json);
 		END IF;
 
 		IF v_forceclosed IS NOT NULL THEN
-			
-			select string_agg(quote_literal(a.elem)::text,', ') into v_forceclosed
-			from (SELECT json_array_elements_text( v_forceclosed::json)  as elem)a ;
-					
-			EXECUTE 'SELECT json_agg(a.data::integer) FROM 
-			(SELECT json_array_elements_text(json_extract_path('''||v_config||'''::json,''forceClosed'')) as data)a
-			WHERE  a.data not in ('||v_forceclosed||')'
-			into v_use_forceclosed;
+		    SELECT string_agg(quote_literal(a.elem)::text, ', ') INTO v_forceclosed
+		    FROM (SELECT json_array_elements_text(v_forceclosed::json) AS elem) a;
 
-			IF v_use_forceclosed is null then
-				v_use_forceclosed= '[]';
-			END IF;
+		    EXECUTE 'SELECT json_agg(a.data::integer) FROM
+		        (SELECT json_array_elements_text(json_extract_path('''||v_config||'''::json,''forceClosed'')) as data)a
+		        WHERE  a.data NOT IN ('||v_forceclosed||')'
+		    INTO v_use_forceclosed;
+
+		    IF v_use_forceclosed IS NULL THEN
+		        v_use_forceclosed = '[]';
+		    END IF;
 
-			v_preview = jsonb_set( v_config::jsonb, '{forceClosed}',v_use_forceclosed::jsonb);
+		    v_use_value = json_extract_path_text(v_config::json, 'use');
+		    v_ignore_value = json_extract_path_text(v_config::json, 'ignore');
+		    v_forceClosed_value = v_use_forceclosed;
 
+		    v_preview = gw_fct_json_object_set_key('{}'::json, 'use', v_use_value::json);
+		    v_preview = gw_fct_json_object_set_key(v_preview, 'ignore', v_ignore_value::json);
+		    v_preview = gw_fct_json_object_set_key(v_preview, 'forceClosed', v_forceClosed_value::json);
 		END IF;
 		
 	ELSIF v_action = 'UPDATE' THEN
@@ -175,6 +205,7 @@ BEGIN
 		
 		IF v_netscenario_id IS NULL THEN
 			EXECUTE 'UPDATE '||lower(v_zone)||' set graphconfig = '''||v_config::JSON||''' WHERE '||v_id||'::text = '''||v_mapzone_id||'''::text;';
+			raise notice '%', ('UPDATE '||lower(v_zone)||' set graphconfig = '''||v_config::JSON||''' WHERE '||v_id||'::text = '''||v_mapzone_id||'''::text;');
 		ELSE
 			EXECUTE 'UPDATE plan_netscenario_'||lower(v_zone)||' set graphconfig = '''||v_config::JSON||''' WHERE '||v_id||'::text = '''||v_mapzone_id||'''::text AND netscenario_id='||v_netscenario_id||';';
 		END IF;