Index: branches/prototype-v0/thirds/zcfg2sql/Makefile
===================================================================
--- branches/prototype-v0/thirds/zcfg2sql/Makefile	(revision 902)
+++ branches/prototype-v0/thirds/zcfg2sql/Makefile	(revision 903)
@@ -4,7 +4,12 @@
 CC=gcc
 
+ifeq (${CALLBACK_FILE},service_callback.o)
+CALLBACK_FILES=${ZRPATH}/zoo-kernel/${CALLBACK_FILE} ${ZRPATH}/zoo-kernel/ulinet.o ${ZRPATH}/zoo-kernel/caching.o
+else
+CALLBACK_FILES=
+endif
 zcfg2sql: zcfg2sql.c
 	g++ -g -O2 ${JSCFLAGS} ${RUBYCFLAGS} ${XML2CFLAGS} ${LCFLAGS} -c zcfg2sql.c  -fno-common -DPIC -o zcfg2sql.o
-	g++  ${XML2CFLAGS} ${LCFLAGS} zcfg2sql.o ${ZRPATH}/zoo-kernel/server_internal.o ${ZRPATH}/zoo-kernel/service_internal.o ${ZRPATH}/zoo-kernel/${MS_FILE} ${ZRPATH}/zoo-kernel/response_print.o ${ZRPATH}/zoo-kernel/lex.cr.o ${ZRPATH}/zoo-kernel/lex.sr.o ${ZRPATH}/zoo-kernel/service_conf.tab.o ${ZRPATH}/zoo-kernel/main_conf_read.tab.o  ${ZRPATH}/zoo-kernel/${YAML_FILE} -o zcfg2sql -L${ZRPATH}/zoo-kernel/ ${LDFLAGS}
+	g++  ${XML2CFLAGS} ${LCFLAGS} zcfg2sql.o ${CALLBACK_FILES} ${ZRPATH}/zoo-kernel/server_internal.o ${ZRPATH}/zoo-kernel/service_internal.o ${ZRPATH}/zoo-kernel/${MS_FILE} ${ZRPATH}/zoo-kernel/response_print.o ${ZRPATH}/zoo-kernel/lex.cr.o ${ZRPATH}/zoo-kernel/lex.sr.o ${ZRPATH}/zoo-kernel/service_conf.tab.o ${ZRPATH}/zoo-kernel/main_conf_read.tab.o  ${ZRPATH}/zoo-kernel/${YAML_FILE} -o zcfg2sql -L${ZRPATH}/zoo-kernel/ ${LDFLAGS}
 
 clean:
Index: branches/prototype-v0/thirds/zcfg2sql/zcfg2sql.c
===================================================================
--- branches/prototype-v0/thirds/zcfg2sql/zcfg2sql.c	(revision 902)
+++ branches/prototype-v0/thirds/zcfg2sql/zcfg2sql.c	(revision 903)
@@ -2,5 +2,5 @@
  * Author : Gérald FENOY
  *
- *  Copyright (c) 2017 GeoLabs SARL. All rights reserved.
+ *  Copyright (c) 2017-2019 GeoLabs SARL. All rights reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -96,5 +96,5 @@
 	    if(values[2]!=NULL)
 	      fprintf(f,"UPDATE CollectionDB.LiteralDataDomain \n"
-		      "set uom = (SELECT id from CollectionDB.PrimitiveDatatypes WHERE name=$q$%s$q$ \n WHERE id = \n"
+		      "set uom = (SELECT id from CollectionDB.PrimitiveUOM WHERE uom=$q$%s$q$) \n WHERE id = \n"
 		      "  (SELECT last_value FROM CollectionDB.ows_DataDescription_id_seq);\n ",
 		      values[2]->value);
@@ -299,4 +299,10 @@
 	      getMap(tmpio->content,"AllowedValues")
 	    };
+	    map* values0[4]={
+	      getMap(tmp->defaults->content,"dataType"),
+	      getMap(tmp->defaults->content,"value"),
+	      getMap(tmp->defaults->content,"uom"),
+	      getMap(tmp->defaults->content,"AllowedValues")
+	    };
 	    char *fields[20]={
 	      "default_value",
@@ -305,6 +311,10 @@
 	    fprintf(f,"INSERT INTO CollectionDB.LiteralDataDomain"
 		    " (def,data_type_id) VALUES \n(false,");
-	    fprintf(f,"(SELECT id from CollectionDB.PrimitiveDatatypes"
-		    " where name = '%s'));\n",values[0]->value);
+	    if(values[0]!=NULL)
+	      fprintf(f,"(SELECT id from CollectionDB.PrimitiveDatatypes"
+		      " where name = '%s'));\n",values[0]->value);
+	    else
+	      fprintf(f,"(SELECT id from CollectionDB.PrimitiveDatatypes"
+		      " where name = '%s'));\n",values0[0]->value);
 	    if(values[1]!=NULL)
 	      fprintf(f,"UPDATE CollectionDB.LiteralDataDomain \n"
@@ -312,4 +322,10 @@
 		      "  ((SELECT last_value FROM CollectionDB.ows_DataDescription_id_seq));\n ",
 		      fields[0],values[1]->value);
+	    if(values[2]!=NULL)
+	      fprintf(f,"UPDATE CollectionDB.LiteralDataDomain \n"
+		      "set uom = (SELECT id from CollectionDB.PrimitiveUOM WHERE uom=$q$%s$q$) \n WHERE id = \n"
+		      "  (SELECT last_value FROM CollectionDB.ows_DataDescription_id_seq);\n ",
+		      values[2]->value);
+	    if(type!=NULL)
 	    fprintf(f,"INSERT INTO CollectionDB.%sDataDescriptionAssignment"
 		    " (%s_id,data_description_id) VALUES "
