Merge "script to import multiple dgs"
diff --git a/dgbuilder/tools/multiple_dg_load.js b/dgbuilder/tools/multiple_dg_load.js
new file mode 100644
index 0000000..8640667
--- /dev/null
+++ b/dgbuilder/tools/multiple_dg_load.js
@@ -0,0 +1,115 @@
+
+var fs = require('fs');
+var obj =[];
+try{
+ obj =	JSON.parse(fs.readFileSync(process.argv[2], 'utf8'));
+}catch(err){
+}
+var dirPath=process.argv[3];
+console.log(dirPath);
+function getID() {
+        return (1+Math.random()*4294967295).toString(16);
+}
+
+var filteredArray = obj.filter(function(itm){
+  return itm.type == 'tab' ;
+});
+
+var tabsArr=filteredArray;
+ var files = fs.readdirSync(dirPath);
+    for (var i in files) {
+       var currentFile = dirPath + '/' + files[i];
+	//console.log(currentFile);
+       var stats = fs.statSync(currentFile);
+try{
+	if (stats.isFile()) {
+		var moduleName="";
+		var methodName="";
+		console.log("processing... " + currentFile);
+ 		var o = JSON.parse(fs.readFileSync(currentFile, 'utf8'));
+		for(var idx in o){
+			if(o[idx].type == "service-logic"){
+				moduleName=o[idx].name;
+			} 
+			if(o[idx].type == "method"){
+				methodName=o[idx].name;
+				methodName = methodName.replace("method ","");
+			} 
+			if(moduleName != "" && methodName != ""){
+				break;
+			}
+		}
+		var id  = o[0].z;
+		//console.log("tab id:" + id);
+		var newId = id;
+		var number_of_tabs = 0;
+		if(filteredArray != null ){
+		 number_of_tabs = filteredArray.length;
+		}
+		//console.log("number_of_tabs:" + number_of_tabs);
+		//console.log("id:" + id);
+		if(filteredArray != null  && filteredArray.length > 0){
+			for(var i in filteredArray){
+				if(filteredArray[i].id == id){
+					newId = getID();	
+					console.log("Using new id:" + newId);
+				}
+			}
+			for(var idx in o){
+				o[idx].z= newId;
+				var oldNodeId = o[idx].id;
+				var newNodeId = getID();
+				o[idx].id= newNodeId;
+				for(var k=0;k<o.length;k++){
+					if(o[k] != null && o[k].wires != undefined && o[k].wires != null){	
+						for(var j=0;o[k].wires[0] != null && j< o[k].wires[0].length;j++){
+							if(o[k].wires[0][j] == oldNodeId){
+								o[k].wires[0][j]=newNodeId;
+							}
+							
+						}	
+					}
+				}
+			}
+		}
+        		//"label": "Sheet " + (number_of_tabs + 1),
+		var tabObj= {
+        		"id": newId,
+        		"label": methodName,
+        		"type": "tab"
+		};
+	
+		filteredArray.push(tabObj);
+		obj.unshift(tabObj);
+		for(var idx in o){
+			obj.push(o[idx]);
+		}
+		//console.dir(obj);
+	}
+}catch(err){
+	console.log(err);
+}
+};
+function getCurrentDate(){
+                var d = new Date();
+                var mm = d.getMonth() + 1;
+                var dd =   d.getDate();
+                var yyyy = d.getYear() + 1900;
+                var hr = d.getHours();
+                var min = d.getMinutes();
+                var sec = d.getSeconds();
+                if(mm<10) mm = "0" + mm;
+                if(dd<10) dd = "0" + dd;
+                if(hr<10) hr = "0" + hr;
+                if(min<10) min = "0" + min;
+                if(sec<10) sec = "0" + sec;
+                var formatedValue = mm + "-" + dd + "-" + yyyy + "_" + hr + "" + min + "" + sec;
+                return formatedValue;
+        }
+if (fs.existsSync(process.argv[2])) {
+	fs.renameSync(process.argv[2],process.argv[2]+ "_" + getCurrentDate());
+}
+fs.writeFileSync( process.argv[2] + ".new", JSON.stringify(obj));
+if (fs.existsSync(process.argv[2] + ".new")) {
+	fs.renameSync(process.argv[2] + ".new",process.argv[2]);
+}
diff --git a/dgbuilder/tools/multiple_dg_load.sh b/dgbuilder/tools/multiple_dg_load.sh
new file mode 100755
index 0000000..ca74355
--- /dev/null
+++ b/dgbuilder/tools/multiple_dg_load.sh
@@ -0,0 +1,6 @@
+if [ "$#" != "2" ]
+then
+	echo "Usage:$0 full_path_to_flows.json full_path_to_the_files_directory"
+	exit
+fi
+node multiple_dg_load.js $1 $2