rotiak
23rd January 2007, 14:20
Hola a todos,
Estaba interesado en crear un procedimiento periódico (bastante frecuente) en el cual pueda importar datos de una hoja de cálculo Excel a dos tablas de Baan, para quitar carga de trabajo al departamento de compras.
En Excel tendríamos unos registros devididos en columnas, p.e. nº proyecto, código de artículo, descripción, referencia, cantidad y los queremos insertar en la tabla tipcs021... todos los demás campos de la tabla podrían ser por defecto siempre los mismos (en caso de que algo variara se cambiaría a mano en la sesión...). Y también a la tabla tipcs022 (en este caso nos encontramos con bastantes menos campos).
¿Qué posibilidades habría?
¿Pueda dar problemas a posteriori?
Muchas gracias de antemano.
dorleta
24th January 2007, 12:52
Yo usaría AFS para asegurarme que las actualizaciones de las tablas mueven exactamente los mismos campos que moverían si realizases la actualización por la sesión. A partir de ahí puedes lanzar estas AFS desde la hoja de excel utilizando el OLE automation server o pasar la hoja de excel a fichero .csv y que una sesión de baan tome el fichero de texto y lanze la AFS.
Te adjunto la ayuda de baan. Y en uno de los directorios del cliente tienes unos ejemplos de unas hojas excel que te pueden servir de indicación
Suerte
ecarceller
30th January 2007, 17:59
Hola a todos,
Estaba interesado en crear un procedimiento periódico (bastante frecuente) en el cual pueda importar datos de una hoja de cálculo Excel a dos tablas de Baan, para quitar carga de trabajo al departamento de compras.
En Excel tendríamos unos registros devididos en columnas, p.e. nº proyecto, código de artículo, descripción, referencia, cantidad y los queremos insertar en la tabla tipcs021... todos los demás campos de la tabla podrían ser por defecto siempre los mismos (en caso de que algo variara se cambiaría a mano en la sesión...). Y también a la tabla tipcs022 (en este caso nos encontramos con bastantes menos campos).
¿Qué posibilidades habría?
¿Pueda dar problemas a posteriori?
Muchas gracias de antemano.
Baan Exchange puede hacer el trabajo que describís y te garantiza integridad referencial. Lo que Exchange no va a garantizar es que los datos tengan sentido desde el punto de vista funcional y de negocio. A menos que incluyas la lógica que verifica la coherencia funcional de los datos en las condiciones usadas por tu esquema de Exchange.
El formato de los archivos necesitará ser csv para poder usar Exchange
Exchange funciona bien pero si el volumen de datos es grande puede ser lento. Si se trata sólo de una planilla de excel a la vez entonces no deberías tener problemas.
rotiak
27th February 2007, 13:36
Estoy haciendo diferentes pruebas y me falla... al intentar importar me dice que no puede abrir el archivo d:\importar\prueba/10.o (error 2) ... cuando el archivo se llama prueba.csv ...tengo que hacer más pruebas...
De todos modos, estaría muy agradecido en conseguir cualquier información sobre este módulo y aún mejor sería algún ejemplo práctico...
Muchas gracias de antemano!
ecarceller
27th February 2007, 17:19
Creo que lo que el sistema no encuentra es el objeto. Antes de poder usar tu esquema de exchange necesitas compilarlo.
Para el módulo de importación usa:
"Create Import Script" tuxch0227m000
Y para el de exportación:
"Create Export Script" tuxch0228m000
Probá y contame.
rotiak
28th February 2007, 17:33
Gracias era eso, lo compilo y me crea un objeto "10.o", ya no me sale ese error, pero ahora...
...creo que estoy peor porque no me da ningún error pero no me lo hace, voy a importar desde "Importar datos (no regularmente)" y al final pone "preparado" pero no se importa nada a la tabla tipcs021. Me crea otro archivo en el directorio cada vez que lo hago "log.10.2.1", así correlativamente, pero nada.
La cuestión es que la tabla tipcs021 es una tabla con muchos campos... y yo lo que quiero importar es un archivo prueba.csv con solo tres campos, el resto lo he definido como valor fijo en "Mantener relaciones de campos (Importación)" (bien insertando un determinado valor o bien dejandolo en blanco para que lo deje vacío).
¿?
ecarceller
1st March 2007, 18:23
Busca en los logs de Baan tal vez tengas errores de referencia o restricciones de dominios
moianix
5th March 2007, 17:16
Hola
pues yo hago algo similar utilizando directamente desde Excel.
Puedes crear una o mas tablas de apoyo con los campos que quieres importar.
En los campos de las nuevas tablas no les ponga ninguna referencia.
En excel escribas algo de similar para insertar datos en la tabla/tablas
COMP = "123" ' Company number
oConn.CursorLocation = adUseServer
oConn.Open "Provider=msdaora;" & _
"Data Source=your_oracle_sid;" & _
"User Id=oracle_user;" & _
"Password=pwd_for_oracle_user"
Set rs = New Recordset
With rs
Data1 = Format(Cells(rigaP, 13), "dd/mm/yyyy")
Data2 = Format(Cells(rigaP, 14), "dd/mm/yyyy")
StrSql = "INSERT INTO baan.ttdpur971" + COMP + " "
StrSql = StrSql + "( baan.ttdpur971" + COMP + ".t$suno,baan.ttdpur971" + COMP + ".t$item, "
StrSql = StrSql + "baan.ttdpur971" + COMP + ".t$qanp,baan.ttdpur971" + COMP + ".t$stdt, "
StrSql = StrSql + "baan.ttdpur971" + COMP + ".t$tdat,baan.ttdpur971" + COMP + ".t$pric, "
StrSql = StrSql + "baan.ttdpur971" + COMP + ".t$cder, "
StrSql = StrSql + "baan.ttdpur971" + COMP + ".t$refcntd,baan.ttdpur971" + COMP + ".t$refcntu) "
StrSql = StrSql + "VALUES ('" + suno + "','" + codice + "', "
StrSql = StrSql + Replace(Format(Cells(rigaP, 11), "#######0.0000"), ",", ".") + ", "
StrSql = StrSql + "to_date('" + Data1 + "','DD/MM/SYYYY'), "
StrSql = StrSql + "to_date('" + Data2 + "','DD/MM/SYYYY'), "
StrSql = StrSql + Replace(Format(Cells(rigaP, 12), "#######0.0000"), ",", ".") + ","
StrSql = StrSql + " '0','0','0' ) "
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockReadOnly
.Open StrSql, oConn
End With
Luego escribas un sencillo programa en BaaN para leer las tablas de apoyo insertar los datos en las tablas corecta
Asi no tengo problemas.