Respuestas de foro creadas
-
AutorEntradas
-
Federico CristinaSuperadministradorBuenas,
¿Qué estás queriendo importar? Libertya ya presenta funcionalidad para importar una gran cantidad de datos: entidades comerciales, productos, cuentas contables, etc. a partir de archivos CSV.
En términos generales el mecanismo es siempre el mismo. Desde Administrador del Sistema se deben realizar las siguientes tareas:
1) Definir o utilizar un formato de importación de datos existente mediante la ventana Formato de Importación de Datos. Aquí se matchean las columnas de la tabla de importación (I_xxx) con las columnas del archivo CSV.
2) Cargar la tabla de importación correspondiente mediante la ventana Cargar Archivos, seleccionando el formato de importación definido en el punto anterior y el archivo CSV correspondiente.
3) Realizar la importación final (volcado de datos de tabla I_ a tabla de producción) mediante la ventana Importar XXX (según lo que estemos importando utilizaremos la correcta: importar artículos, importar listas de precios, importar entidades comerciales, etc.
Saludos,
Federico
Federico CristinaSuperadministradorAntonio,
En este enlace tenés información respecto de cómo habilitar la compañía System, la cual te da acceso a los metadatos de la aplicación.
Una vez ahí, podrás crear una compañía mediante el uso de las funcionalidades Configuración Inicial de Compañía o Configuración Inicial de Compañía mediante Plantilla.
Obviamente, realiza estas pruebas en una base de datos específica para testeos.
Saludos,
Federico
Federico CristinaSuperadministradorLuis,
Para generar el modelo es necesario:
1) Crear una nueva Run configuration desde Eclipse con los datos indicados en los pasos 2 y 3.
2) En la pestaña main, deberás indicar la Main Class: org.openXpertya.util.GenerateModel (además del nombre del proyecto y nombre de la nueva run configuration).
3) En la pestaña Arguments deberás indicar el directorio donde se volcarán los archivos .java generados. Por ejemplo /tmp/xFiles/ (es importante colocar la barra final).
Luego deberás ejecutar esta Run Configuration (recordar que GenerateModel utiliza la última configuración de conexión a base de datos realizada desde Libertya). Una vez finalizado, copiar el archivo en cuestión (en este caso X_C_Distrito.java) al directorio /dbPort/src/org/openXpertya/model del proyecto. Refrescar el proyecto y recompilar.
De todas maneras, deberías poder persistir a base de datos sin necesidad de la clase X. El mensaje M_Table.getPO – (id) – Class not found for C_Distrito simplemente está dando aviso de la situación, pero no debería interpretarse como un error si realmente es posible insertar, editar o eliminar registros.
Saludos!
Federico
Federico CristinaSuperadministradorJulio,
La forma de pago A Crédito ya existe. Podés visualizarla en el combo correspondiente de las ventanas de pedidos o facturas.
Esta forma de pago trabaja en conjunto con el programa de vencimientos. Al seleccionar A crédito se habilita el combo Programa de Vencimientos. Al hacer click derecho sobre el mismo y seleccionar la opción Zoom accederás a los distintos programas de pago a crédito. En esta ventana podrás crear nuevas configuraciones de pago según sea necesario en tu caso.
Saludos!
Federico30 diciembre, 2009 a las 12:22 pm en respuesta a: Genaracion del detalle de Inventario Físico #33951
Federico CristinaSuperadministradorSi entendí correctamente, tu intención es que en la ventana Inventario Físico, y al clickear Generar Lista, se generen las entradas corresopndientes en Linea de Recuento de Inventario, contemplando incluso artículos que nunca fueron parte de remitos de entrada o salida?
De ser así, inicialmente esto no es posible realizar, ya que justamente el proceso “Generar Lista” se basa en los datos de la tabla de Almacenamiento (M_Storage). Básicamente, la información que observas en la pestaña Almacenamiento (de la ventana Almacén y Ubicaciones) es el resultado de los movimientos de mercadería a partir de los documentos correspondientes (x ej. remitos).
Por lo tanto, si todavía no hubo transacciones de un artículo (no hay documentos), tampoco existirán entradas en la tabla Almacenamiento, lo cual tiene cierta lógica ya que no se si tendría demasiado sentido realizar un recuento de artículos que todavía no entraron (definir el artículo y su ubicación no tiene relación con las existencias del mismo).
Se me ocurre como un “parche” para que te tome estos artículos nuevos, crear un movimiento de entrada que abarque estos artículos, y luego otro movimiento de salida con las mismas cantidades. Esto generará las entradas correspondientes en la tabla de Almacenamiento, pero habría que analizar las implicancias contables relacionadas.
La otra alternativa ya sería modificar los fuentes de la aplicación.
Saludos!
Federico
Federico CristinaSuperadministradorBuenas,
Generalmente la automatización en ventas es mayor que en la de compras (debido a las secuencias de documentos, etc.), y es por esto que en el query original se validan unas cuantas cosas para los documentos de venta, y casi nada para los de compra.
Respecto a tu mención sobre si sirve para compras como para ventas, tené en cuenta que los tipos de documentos varían entre los de compra y de venta: por ejemplo para las facturas de venta se discrimina qué tipo de documento es el que se está generando, debido a que en función del pto. vta. y la letra deberemos determinar el siguiente valor en la numeración. Pero en las facturas de compra, alcanza con indiciar el tipo de documento Factura de Proveedor, ya que la carga de la numeración es manual.
En todo caso, a fin de discriminar entre compras y ventas en cualquier validación deberías hacerlo mediante la variable @IsSOTrx@ , la cual indica si es transacción de venta (‘Y’) o de compora (‘N’).
Suerte!
Federico
Federico CristinaSuperadministradorBuenas!
Entre release y release, el core de la aplicación sufre un número considerable de correcciones y mejoras. Cuales son las modificaciones a realizar sobre el mismo en cada versión varía según las prioridades específicas del proyecto.
Específicamente sobre el tema validaciones: a nivel “tabla” tenés validaciones por código con los métodos beforeSave(), beforeDelete(), etc., en las que poder aplicar lógica de negocios según sea necesario. Generalmente, para una misma tabla pueden presentarse como mucho dos ventanas según su semántica: una de compras y otra de ventas (isSoTrX).
Por lo tanto estamos bajo un escenario acotado de posibildades según la ventna. Además, al generar el modelo a partir de los metadatos, el mismo se encuentra en estrecha relación con las tablas y no las ventanas. Por otra parte, tenemos validaciones a nivel campo (de pestaña en una ventana) con los callouts correspondientes.
Aunque posiblemente se podría realizar esfuerzos en la dirección que comentás, la experiencia nos demostró que el circuito de reglas y validaciones implementado permite abarcar el total de casos donde nos encontremos con estos requerimientos.
Saludos,
Federico22 diciembre, 2009 a las 1:10 pm en respuesta a: EDIT: Copia de respaldo de BD (Ayudaaaaaaaaaaa!!!) #33918
Federico CristinaSuperadministradorYanina,
Modifiqué el subject del thread para que permita dar idea una sobre el contenido del mismo.
Respecto a realizar el backup, tal como dice Antonio, podes usar el pg_dump:
Code:pg_dump -h host -p puerto -U usuario -F p -v -n esquema -f archivo.sql baseDeDatosSaludos,
Federico
Federico CristinaSuperadministradorHermann,
Como estás.
Tu inquietud va a involucrar tocar código de la aplicación.Según el enfoque que quieras darle, vas a necesitar modificar distintos lugares de la aplicación: filtramos sólo las entradas válidas o validamos luego de que el usuario seleccione?.
La opción de filtrado requerirá tocar la ventana InfoBPartner, inyectándole alguna cláusula WHERE extra para limitar las opciones de entidades comerciales a visualizar. Hay que tener cuidado que esa ventana se utiliza en muchos lados, pero nosotros solo queremos filtrar cuando estamos en una factura o pedido.
La opción de validación requerirá modificar el método beforeSave() de MInvoice (o MOrder según donde inicien el circuito). Al momento de guardar el registro de encabezado de factura o pedido, verificamos si es correcta la E.C. seleccionada. Esto es bastante más rápido de realizar que implementar la alternativa anterior.
Obviamente vas a necesitar además alguna tablita que permita relacionar los perfiles con los grupos de entidades comerciales. Los registros allí almacenados servirán para realizar el filtrado o las validaciones correspondientes.
Suerte!
Federico
Federico CristinaSuperadministradorVictoria,
Me alegro que hayas podido instalar el producto correctamente… solo te falta un paso!
Primeramente, y por las dudas que no lo hayas hecho, deberás iniciar el servidor de aplicaciones: dentro del directorio ServidorOXP/utils, se encuentra el archivo IniciarServidor.sh, el cual luego de ejecutarlo demorará un par de minutos hasta terminar de iniciar, hasta que informe algo similar a: 12:51:09,350 INFO [Server] JBoss (MX MicroKernel) [4.0.2 (build: CVSTag=JBoss_4_0_2 date=200505022023)] Started in 32s:964ms.
Por lo que veo en el background del screenshot, parece que sí está levantado. Te está faltando especificar únicamente el servidor de aplicaciones en la ventana Connection. Si instalaste todo en una sola misma computadora, en el campo Application Host deberás especificar localhost (o el nombre de host o el número de tu IP privada, como por ejemplo: 192.168.3.2).
Luego hacé click en el botón Test Application Server, a fin de validar la conexión, el cual te debería responder con un tilde verde en ese mismo botón. De ser así, ya podes cerrar dicha ventana con el check verde inferior derecho.
Por último, en la ventana Login, tanto el usuario como contraseña de la aplicación es AdminLibertya, el cual te habilitará todos los perfiles: compras, ventas, administración, almacenes, etc.
Te aconsejaría modificar la opción de lenguaje a Español (Argentina), el cual contiene la traducción de todos los términos según la localización Argentina.
Suerte!
Federico4 diciembre, 2009 a las 11:22 am en respuesta a: Error de permisos en ventanas Elementos y Asientos #33873
Federico CristinaSuperadministradorEs verdad lo que comenta Antonio sobre las ventanas contables, si no hiciste modificaciones sobre el diccionario de datos, el problema es bien sencillo y se origina en el tilde de mostrar pestañas contables en las preferencias del perfil.
De todas maneras, el problema que previamente te mencionaba respecto de las traducciones se manifiesta de la misma manera; con lo cual bien vale tenerlo en cuenta si llega a suceder en una ventana que no es de contabilidad, o en alguna nueva ventana que generes.
Saludos!
Federico3 diciembre, 2009 a las 11:37 am en respuesta a: Error de permisos en ventanas Elementos y Asientos #33860
Federico CristinaSuperadministradorPor el mensaje de error que estás visualizando, me da la idea que las pestañas no tienen sus entradas de traducciones correspondientes (precisamente AD_Tab_vt es una vista que se encarga de obtener las traducciones de los nombres de las pestañas de una ventana).
Acabo de validar los queries en la base de datos del release 9.10, y a mí sí me devuelve las tuplas de traducción. Deberías acceder a los metadatos de la aplicación y verificar si éste es realmente el motivo. De ser así, deberás crear las traducciones correspondientes.
Saludos,
Federico
Federico CristinaSuperadministradorFijate de ejecutar las siguientes sentencias SQL (donde XXX es la compañía que no estás visualizando):
Code:update ad_client set isactive=’Y’ where ad_client_id = XXX
update ad_org set isactive=’Y’ where ad_client_id = XXX
update ad_role set isactive=’Y’ where ad_client_id = XXX
update ad_user set isactive=’Y’ where ad_client_id = XXX
update ad_user_roles set isactive=’Y’ where ad_client_id = XXXComo siempre, realizá las pruebas sobre una base de datos específica para ese fin, antes de impactar en una de producción.
Suerte!
Federico
Federico CristinaSuperadministradorBuenas,
Inicialmente, la utilización del proceso de Configuración Inicial de Compañía Mediante Plantilla tenía por objetivo crear una única compañía 100% lista para usar, creando los perfiles correspondientes y descartando usuarios, perfiles, compañías y funcionalidades que no eran accedidas regularmente. Esto es: una compañía lista para usar.
Dado que no se presentó una necesidad como la comentada, no se contempló este escenario. Tenés tres alternativas:
1) Crear una nueva compañía mediante la opción Configuración Inicial de Compañía Mediante Plantilla. La compañía vieja, sus usuarios, organizaciones, etc. todavía existen, pero solo se encuentran desactivados; con lo cual será necesario ejecutar las sentencias SQL correspondiente a fin de activarlas (isActive = ‘Y’) en las tablas AD_Client, AD_Org, etc.
2) Crear una nueva compañía mediante la otra opción: Configuración Inicial de Compañía. De esta manera no se desactivará la compañía anterior. Sin embargo, la compañía creada no se rige por ninguna plantilla, y generará un perfil con un volumen de ventanas considerable que deberás customizar a gusto.
3) Ver la clase org.openXpertya.fastrack.FTClient y modificar acorde a las necesidades, pero por supuesto, esta última alternativa no es tan trivial.
Suerte!
Federico
Federico CristinaSuperadministradorJavier,
Muchas gracias por tus comentarios. Es verdad que hay ciertos warnings un tanto extraños.
Justamente como comentás, muchos de ellos tienen varios años ya, pero debido a que inlcuso actualmente no presentan un problema, se minimiza su prioridad dentro del proyecto Libertya.
Por supuesto que cualquier warning que lleve a comportamiento errático es corregido en un breve lapso de tiempo.
Específicamente sobre los null pointer access en la clase ImportInvoice: Estos componentes siempre requieren cierta customización en función de los datos a importar y las necesidades del usuario final. Por otra parte, la ejecución de este proceso se da en un momento específico en el uso de la aplicación, con lo cual la lógica funcional del mismo se encuentra bastante aislado.
Con todo esto no estoy justificando los warnings, sino que los mismos no presentan mayores problemas en el uso de la aplicación, ya que de hacerlo, ya estarían corregidos.
Saludos!
Federico -
AutorEntradas