Migrar datos a dbfs atravez de archivos JSON

479 views
Skip to first unread message

erick amilcar orellana palacios

unread,
Nov 27, 2022, 2:10:31 PM11/27/22
to Comunidad de Visual Foxpro en Español
pido cordialmente y alguno me puede dar una mano con migracion de datos a travez de un JSON
necesito hacer la generacion de los archivos desde las dbf's hacia archivos JSON desde las sucursales del negocio  y trasladarlos a la central
luego hacer el vaciado de datos con las respectivas validaciones,tratano de aprovechar que la estructura de un JSON
ya lleva todo. ahorrando la parte de estrucrtura de tablas,digamos que seria mas facil la migracion
espero no estar equivocado,escucho cualquier consejo para despejar mis dudas. saludos cordiales

HernanCano

unread,
Nov 27, 2022, 2:27:18 PM11/27/22
to Comunidad de Visual Foxpro en Español
Hay JSONs sencillos y fáciles de "convertir" a DBF (oPortal.json), pero también hay  JSONs complejos y difíciles (JSON2.json) de "convertir" a DBF.

Tienes que mostrar uno de los JSONs que tienes, par poder determinar cuál es la estructura que se debe usar.

Los que te muestro son algunos que estamos analizando y se han compartido en otros hilos relacionados con JSON.

Debes mirar las utilidades que se mencionan en esos otros hilos y decir si alguno se acomoda mejor a lo que tienes y necesitas.
JSON2.json
oPortal.json

erick amilcar orellana palacios

unread,
Nov 27, 2022, 3:04:44 PM11/27/22
to Comunidad de Visual Foxpro en Español
el que mas se parece es oportal.json
lo estoy haciendo de esta manera, genera el archivo pero yo pretendo es leer ese archivo con la estructura 
de la dbf, que ya va inmersa en el archivo JSON y luego hacer hacer el vaciado en la tabla destino
CLOSE DATABASES all
Do LocFile("JSONFox", "app")
USE clientes IN 0 SHARED
cJson = _Screen.json.CursorToJson("Clientes")
STRTOFILE(cJson ,"clientes.json")

luego como hago para generar el cursor leyendo el archivo clientes.json?
de antemano gracias, agrego el archivo que me genera
clientes.json

Irwin Rodriguez

unread,
Nov 27, 2022, 4:49:07 PM11/27/22
to publice...@googlegroups.com
Hola Erick,

Lo primero es generar el fichero JSON solo con el contenido del array que representa tu tabla, para ello tienes que cambiar el siguiente código.

cJson = _Screen.json.CursorToJson("Clientes", .F., SET("Datasession"), .T.)

Las descripciones de los parámetros son:

1. tcCursor => nombre del cursor que se quiere exportar a JSON
2. tbCurrentRow => booleano que indica si se quiere exportar la fila actual (.F. para indicar que quieres exportar TODO)
3. tnDataSessionID => el número de la sesión donde se encuentra el cursor. 
4. tbJustArray => boolean que indica si solamente queremos el array con los datos.

Para importar el JSON y cargarlo en un cursor solo tienes que incorporar esta línea:

_screen.json.jsontocursor(FILETOSTR("clientes.json"), "clientes", SET("Datasession"))

Las descripciones de los parámetros son:

1. tcJsonStr => contenido del JSON en formato string.
2. tcCursor => nombre del cursor a generar.
3. tnDataSessionID => identificador de la sesión donde se creará el cursor.

El ejercicio completo quedaría así:
* ============================================== *
* PRIMERA PARTE: EXPORTAR EL CURSOR A JSON.
* ============================================== *
CLOSE DATABASES all
Do LocFile("JSONFox", "app")
USE clientes IN 0 SHARED
cJson = _Screen.json.CursorToJson("Clientes")
=STRTOFILE(cJson ,"clientes.json")

* ============================================== *
* SEGUNDA PARTE: IMPORTAR EL JSON A UN CURSOR.
* ============================================== *
IF FILE("clientes.json")
    _screen.json.JSONToCursor(FILETOSTR("clientes.json"), "clientes2", SET("Datasession"))
    browse
ENDIF


Un saludo.

--
Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/c9c2d9de-f371-4293-884e-99d8938aa88an%40googlegroups.com.

erick amilcar orellana palacios

unread,
Nov 27, 2022, 6:25:15 PM11/27/22
to publice...@googlegroups.com
Muy amable de su parte en responder,  Irwin, sobre todo que tienes una facilidad para darte a entender.
bueno la primera parte creo que más o menos la hacía . la segunda no la tenia claro
pero al final haciendo la prueba con el archivo que envíe adjunto me lanza un error SINTAX ERROR: caracter unknown data type y editando el
Archivo hay un campo de tipo moneda y tiene el siguiente formato :  "saldo_actual":$0.00 ,
cuando trato de leer el JSON para convertir a cursor me lanza el error.

Bueno , muchas gracias
investigare un poco para ver como lo soluciono
agradezco la colaboración  





Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/OY40iMhoJEQ/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/CABooBBkgqDUjgnPS2cZRnSXT9xQ4jHrBRbZWq5kVz3ULdXB4JA%40mail.gmail.com.


--

Erick Orellana Palacios
Cellulare:   (39)3347274417
      Email:    eorell...@hotmail.com
                            eorell...@gmail.com
Indirizzo:    Milano, Italia

Victor Espina

unread,
Nov 27, 2022, 9:19:14 PM11/27/22
to Comunidad de Visual Foxpro en Español
Si el origen de datos es DBF y el destino de los datos TAMBIEN es DBF, entonces seria mucho mas eficiente que hicieras un simple COPY TO y luego un APPEND FROM.  No veo ganancia en convertir a JSON de ida y vuelta.

Saludos

Victor Espina

Daniel Sánchez

unread,
Nov 28, 2022, 1:17:50 PM11/28/22
to publice...@googlegroups.com
Tengo esta función que pasa una tabla a un string o archivo de texto y viceversa, se almacena y genera la estructura de la tabla para poder reconstruirla cuando deseas , ahi te lo adjunto puede servirte, los datos de la tabla son pasados a un json, puede servirte para lo que necesitas.

--
Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/c9c2d9de-f371-4293-884e-99d8938aa88an%40googlegroups.com.


--
Daniel Sánchez Escobar
Investigación y Desarrollo
Reset Software SAC
Móvil y WhatsApp +051-949398047 / Móvil 948615385
Trujillo - Perú

P  Sugerimos no imprimir este e-mail a menos que sea absolutamente necesario. Protejamos el medio ambiente.
cursortostr.prg

Daniel Sánchez

unread,
Nov 28, 2022, 1:25:19 PM11/28/22
to publice...@googlegroups.com
Al comienzo use el que viene con la librería json.parsecursor y json.tocursor pero el problema es que en mis formularios de clase privadas no funciona bien y además deja una sesión temporal abierta, por más que le pase el número de sesión actual del formulario no iba.

Saludos

erick amilcar orellana palacios

unread,
Nov 28, 2022, 6:13:41 PM11/28/22
to publice...@googlegroups.com
Muchas gracias, Daniel voy a probar.
saludos

Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/OY40iMhoJEQ/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/CA%2BEDH_XaOURaEEqVDEAoADis1T5zXoCve9a_smBk-MhEfsqUTA%40mail.gmail.com.

Germán Fabricio Valdez

unread,
Dec 6, 2022, 6:37:19 PM12/6/22
to Comunidad de Visual Foxpro en Español
hola.  por ahi te interesa mi clase que hace eso convierte los cursores o dbf separados por coma en una cadena de caracteres y si queres en un archivo.  luego en la central hace la inversa con otra funcion y abre todos los cursores.  sale 40 dolares  

Esteban Herrero

unread,
Dec 6, 2022, 7:09:18 PM12/6/22
to publice...@googlegroups.com

mirá esta clase q compartió en su momento Fidel, yo la uso muy seguido...

https://groups.google.com/g/publicesvfoxpro/c/rMsKLax4_6g/m/HrGNDA6BAQAJ

x ahí sacas otra idea q hacer el traslado x Json.

Saludos

Reply all
Reply to author
Forward
0 new messages