Exportacion toda la base de datos a JSON

Saludos compañeros de velneo, estoy tratando de hacer una exportacion automatizada de toda mi base de datos a un json (esto con el fin de que el usuario final pueda copiar la informacion entre instancias) acudo a ustedes por ya no saber que hacer, les explico tengo dos estructuras de datos (General y Empresa) donde empresa hereda de general he modificado js que me hace ya la exportacion a json (aunque algo lento) el tema es que lo hace tanto de las tablas que estan en empresa como las que estan en general (las cuales esta ultima no necesito) modifique a lo que yo entiendo un if para que solo lo haga con el nombre de proyecto empresa (y cuando ejecuto solo ese codigo por manejador de evento funciona tal cual, solo recorre el proyecto de empresa) pero cuando lo ejecuto desde el propio proceso javascript lo hace con ambos, no se que tenga mal alli, copiare el codigo por si alguno de ustedes ve algo que yo no. de antemano, muchas gracias

CODIGO PRINCIPAL

#include “(CurrentProject)/js/database/velneoExportarJSON_NO_MSJ.js”
importClass(“VProjectInfo”);
importClass(“vApp”);
var Send = theRoot.varToString( “SND” );
// PROCESO: Se leen todas las tablas de la aplicación
numTabla = 0;
ok = false;
proyectoPrincipal = theApp.projectInfo(“Empresa_dat”);
//theApp.projectInfo
if (proyectoPrincipal) {
for (numTabla; numTabla < proyectoPrincipal.allTableCount(); numTabla += 1) {
// Leer la información de la tabla y el idRef
tablaInfo = proyectoPrincipal.allTableInfo(numTabla);
tabla = tablaInfo.idRef();
indiceRef = tablaInfo.indexId(0); // recojo el primer indice
memoria = tablaInfo.isInMemory();
Nombre = proyectoPrincipal.name(numTabla);
//pregunto si el nombre del proyecto es el que necesito
if(Nombre === “Empresa_dat”) {
// Proceso las tablas en disco. Excluyo las tablas en memoria
if (memoria === false){
// Exportación a JSON
var lista = new VRegisterList(theRoot);
lista.setTable(tabla);
var ok = lista.load(indiceRef,);

				if (ok === true){				
					var json = listaExportarJSON(lista, indiceRef, [], theApp.constant("aplicacion_app/APP_VERSION"));
				}		
			}//aqui
		}
	}		
};

CODIGO DEL INCLUDE - VELNEOEXPORTARJSON_NO_MSJ

importClass(“VFile”);
importClass(“VTextFile”);
importClass(“VDir”);
// creo un objeto donde almacenare el directorio para esto necesito
// la clase vDir, lo creo vacio y luego asigno el valor de la senda
// que traigo desde el formulario
var dir = new VDir();
dir.cd(“Send”)
// transformo el directorio a absoluto

/*


  • Exportar una lista de registros a formato JSON

*/
function listaExportarJSON(listaParam, indiceIdParam, indicePartesParam, camposParam)
{
// ------------------------------------------
// Preparamos las variables de trabajo
// ------------------------------------------
var tablaInfo = listaParam.tableInfo();
var tablaIdRef = tablaInfo.idRef();
var numCampos = tablaInfo.fieldCount();
var numRegistros = listaParam.size();
var ficheroJSON = ;
var datosJSON = ;
var camposExportar = ;
var camposNoExportar = ;

// ---------------------------------------------------------------
// Si nos pasan una lista de campos a no exportar creamos un array
// ---------------------------------------------------------------
if (camposParam !== undefined)
{
	camposNoExportar = camposParam.toUpperCase().split(",");
}

// ---------------------
// Generar cabecera JSON
// ---------------------
ficheroJSON.push({ "tablaIdRef"   : tablaIdRef,
				   "indiceId"     : indiceIdParam,
				   "indicePartes" : indicePartesParam,
				   "numRegistros" : numRegistros });

// -----------------------------------
// Seleccionamos los campos a exportar
// -----------------------------------

for (var numCampo = 0; numCampo < numCampos; numCampo++)
{
	if (tablaInfo.fieldBufferLen(numCampo) > 0)
	{
		if (camposNoExportar.indexOf(tablaInfo.fieldId(numCampo)) == -1)
		{
			camposExportar.push({campoId: tablaInfo.fieldId(numCampo), campoTipo: tablaInfo.fieldType(numCampo), campoTipoObjeto: tablaInfo.fieldObjectType(numCampo)});
		}
	}
}

// -------------------------------------------------------
// Se recorren los registros de la lista generando el JSON
// -------------------------------------------------------
numCampos = camposExportar.length;
for (var numRegistro = 0; numRegistro < numRegistros; numRegistro++ )
{
    var registro = listaParam.readAt(numRegistro);
    var registroJSON = {};
	for (var numCampo = 0; numCampo < numCampos; numCampo++ )
	{
        registroJSON[camposExportar[numCampo].campoId] = mapearCampo(camposExportar[numCampo].campoId, camposExportar[numCampo].campoTipo, camposExportar[numCampo].campoTipoObjeto, registro);
    };
    datosJSON.push(registroJSON);
};

// ----------------------------------
// Preparar objeto JSON con los datos
// ----------------------------------
ficheroJSON.push({ "datos" : datosJSON });

// ---------------------
// Exportar JSON a disco
// ---------------------
var resultadoJSONString = JSON.stringify(ficheroJSON, null, "\t");

var senda = Send + "/" + tablaInfo.id() + ".json";

var fichero = new VTextFile(senda);
 
// Se abre el fichero en modo escritura. Crea si no existe o limpia si existe
if (fichero.open(VFile.OpenModeWriteOnly | VFile.OpenModeTruncate))
{
	// Grabar contenido JSON
	fichero.setCodec("UTF-8");
	fichero.write(resultadoJSONString); 

	// Se cierra el fichero
	fichero.close();
	
	// Mensaje de confirmación de exportación correcta
	//alert("Se han exportado correctamente " + numRegistros + " registro(s) de la tabla " + tablaInfo.name()+ "en " + fichero.fileName());

// } else
// {
// Si no ha sido posible abrir el fichero se muestra error
// alert( "No se pudo abrir el ficher " + fichero.fileName() + ", error " + fichero.error(), “Error” );
};

// Retornar el JSON
return(resultadoJSONString);

};

// -------------
// Mapear campos
// -------------
function mapearCampo(campoId, campoTipo, campoTipoObjeto, registro)
{
// Se lee el valor del campo en función del tipo
var valor = “”;
switch (campoTipo)
{
case VTableInfo.FieldTypeAlpha256:
valor = registro.fieldToString(campoId);
break;
case VTableInfo.FieldTypeAlpha128:
valor = registro.fieldToString(campoId);
break;
case VTableInfo.FieldTypeAlpha64:
valor = registro.fieldToString(campoId);
break;
case VTableInfo.FieldTypeAlpha40:
valor = registro.fieldToString(campoId);
break;
case VTableInfo.FieldTypeAlphaLatin1:
valor = registro.fieldToString(campoId);
break;
case VTableInfo.FieldTypeAlphaUtf16:
valor = registro.fieldToString(campoId);
break;
case VTableInfo.FieldTypeNumeric:
valor = registro.fieldToDouble(campoId);
break;
case VTableInfo.FieldTypeDate:
valor = registro.fieldToString(campoId).split(“/”).reverse().join(“-”);
break;
case VTableInfo.FieldTypeTime:
valor = registro.fieldToTime(campoId);
break;
case VTableInfo.FieldTypeDateTime:
valor = registro.fieldToDateTime(campoId);
break;
case VTableInfo.FieldTypeBool:
valor = registro.fieldToBool(campoId);
break;
case VTableInfo.FieldTypeObject:
switch (campoTipoObjeto)
{
case VTableInfo.ObjectTypeText:
valor = registro.fieldToString(campoId);
break;
case VTableInfo.ObjectTypeRichText:
valor = registro.fieldToString(campoId);
break;
case VTableInfo.ObjectTypeFormula:
valor = registro.fieldToString(campoId);
break;
case VTableInfo.ObjectTypePicture:
valor = “”;
break;
};
break;
case VTableInfo.FieldTypeVirtualBind:
valor = registro.fieldToString(campoId);
break;
default:
valor = registro.fieldToString(campoId);
break;
};

// Devolver el valor del campo
return(valor);

};

vale, me respondo yo misma para futuras consultas en este foro.
El problema radica en que estaba usando de manera incorrecta “Nombre = proyectoPrincipal.name(numTabla);” ya que siempre me traeria el nombre que le asigne arriba toco cambiar la modalidad de manera que para la asignacion de la informacion del proyecto es proyectoPrincipal = theApp.mainProjectInfo();
theApp.mainProjectInfo;
como hay una variable que devuelve nombreproyecto/nombretabla aproveche para crear dos variables donde separo dichos nombres y procedo a hacer mi comparacion
tabla = tablaInfo.idRef();
indiceRef = tablaInfo.indexId(0); // recojo el primer indice
memoria = tablaInfo.isInMemory();
Nombres = tabla.split(“/”);
Nom = Nombres[0];
//pregunto si el nombre del proyecto es el que necesito
if(Nom === “Empresa_dat”) {
// Proceso las tablas en disco. Excluyo las tablas en memoria
//mas lineas de codigo

en fin, supongo que es una manera de darle la vuelta.