martes, octubre 25, 2005

Primeras entregas de MBF

La mitad del equipo de Microsoft Business Framework ha regresado al área de Business Solutions, concretamente para trabajar en Dynamics ERP Product Foundation, y la mitad restante ha sido asignada a la unidad de Platform & Tools para trabajar en el futuro Office 12.
Microsoft dice que algunas de las prometidas características de MBF se entregarán con la próxima versión de Visual Studio 2005 a través de LINQ (Language Integrated Query) o WWF (Windows Workflow Foundation).
LINQ será una característica integrada en C# y Visual Basic que permitirá expresiones de query a metadatos (BBDD relacionales, XML) e incorporará IntelliSense
Probablemente la primera entrega de MBF al gran público sea el próximo 7 de noviembre, fecha oficial del lanzamiento de Visual Studio 2005, el cual incorporará entity modeling. Otras piezas de MBF se podrían entregar en futuras versiones de Business Solutions, especialmente en el client side.

lunes, octubre 24, 2005

Variables globales y variables locales

Todo programador de Navision sabe la diferencia entre las variables globales y las variables locales, pero aún y así vamos a repasar sus diferencias:
  • Variables globales:
    Son accesibles desde todo el objeto. Eventos, funciones, etc.
  • Variables locales:
    Son accesibles sólo desde el procedimiento en las que han sido declaradas.

    Pero hay que tener especial cuidado con las variables globales cuando un objeto es llamado repetidamente (parte de su código se ejecuta 2 ó más veces), ya que las variables globales, a diferencia de las locales, guardan su valor entre las llamadas. Por el contrario, las variables locales son inicializadas cada vez.

    Ejemplo mediante un CommandButton en un Form:
    myBoton - OnPush()
    varGlobal := varGlobal + 1;
    varLocal := varLocal + 1;
    MESSAGE('Global = %1\Local = %2', varGlobal, varLocal);


    La variable global irá aumentando su valor tantas veces como se pulse el botón, no así la local que siempre será 1.

    Esta casuística cobra especial importancia cuando se llaman objetos desde otros objetos, ya que esta regla se cumple en todos los casos, o sea, las variables globales del objeto llamado permanecen mientras permanezca el objeto.

  • jueves, octubre 13, 2005

    Asiento de apertura inexistente

    Navision, al contrario de la contabilidad "tradicional", no cierra ni abre los ejercicios, es decir, no existe ningún asiento de cierre a fin de ejercicio fiscal ni de apertura al inicio del próximo. ¿Qué pasa con los diarios oficiales? Navision "simula" el asiento de apertura, ya que es obligado en estos informes, utilizando los saldos de las cuentas de balance a final del ejercicio anterior.
    Lo que sí existe es el asiento de regularización, lo que es el cuadre de las cuentas del grupo 6 y 7 (comerciales) con la cuenta 129. A este asiento, Navision le asigna una fecha de fin de ejercicio precedida por la letra U (U31/12/05 p.e.). Es una fecha ficticia entre el fin de ejercicio y el inicio del siguiente, con el fin de mantener los saldos correctos durante el ejercicio fiscal completo.
    Es por ello que en el esquema de cuentas, el balance utiliza un formato de columnas que muestra el saldo a la fecha (.."HastaFecha") y la cuenta de resultados utiliza un formato de columnas que muestra el saldo del periodo ("DesdeFecha".."HastaFecha").

    miércoles, octubre 12, 2005

    Lanzamiento del SP1 para Navision 4.0

    Microsoft ha lanzado el Service Pack 1 para Navision 4.0, en nuestro país estará disponible el próximo noviembre.
    El nuevo Service Pack trae consigo una nueva librería CFRONT.NET para que los desarrolladores en .NET puedan construir aplicaciones externas, mediante Visual Studio .NET, también se ha optimizado la conexión con SQL Server, soportando ahora la nueva versión 2005 de SQL. El portal de usuario también ha tenido mejoras y optimizaciones mediante la inclusión de éste con Sharepoint Portal Server y Windows Sharepoint Services.

    sábado, octubre 08, 2005

    Acceder a Navision sin contraseña

    Existe una manera de acceder a una BBDD de Navision sin que pida contraseña, aunque para ello deberemos tener una copia de seguridad.
    El truco consiste en crear una BBDD nueva, restaurar la copia de seguridad y... ya está, estaremos dentro de la BBDD sin que nos haya pedido usuario y contraseña. Evidentemente, si la cerramos y volvemos a abrir, ya nos volverá a pedir la contraseña.

    sábado, octubre 01, 2005

    Calendario de lanzamiento de productos de Microsoft

    Octubre 2005
    Data Protection Manager
    Navision 4.01
    Noviembre 2005
    Xbox 360
    Windows Media Center
    Visual Studio 2005
    SQL server 2005
    Exchange 2003 Server SP2
    Exchange 12 beta 1
    Windows Server 2003 R2
    Storage Server 2003 R2
    Diciembre 2005
    Office 2003 SP2
    Windows Vista beta 2
    Internet Explorer 7
    Q4 2005
    Windows Mobile 5
    Business Scorecard Manager
    S1 2006
    Office 12 beta 2
    Dynamics CRM 3.0 (enero)
    ISA Server SP2 (enero)
    Dynamics AX 4.0 (junio)
    Biztalk Server 2006 (junio)
    Small Business Server 2003 R2
    SMS 2003 SP2
    S2 2006
    Windows Vista RTM
    Office 12 RTM
    ISA Server 2006
    Exchange 12
    SBS
    2007
    Capacity Planner
    Longhorn Server
    Beta 4 WinFS

    Enlace con varios subforms simultaneamente

    Navision permite tener dentro de un form un subform y hacer un link entre ellos, de manera que al cambiar el registro del form cambie la información relacionada en el subform.
    Pero no permite, de manera automática, enlazar un segundo subform. Esto se consigue con el evento OnTimer del form, el cual se ejecuta cada cierto tiempo programado (TimerInterval = 100, es un valor adecuado). Es en este evento donde podemos añadir codigo y verificar si hay que actualizar la información del segundo subform. Por ejemplo:

    Form - OnTimer()
    CurrForm.sbfItems.FORM.GETRECORD(ItemVendor); //Coge el registro actual
    IF Key <> "No." + ItemVendor."Item No." THEN BEGIN //Si la info ha variado...
    CurrForm.sbfPrices.FORM.myFilter("No.",ItemVendor."Item No."); //Actualiza el 2do subform
    Key := "No." + ItemVendor."Item No."; //Coge nueva clave
    END;


    Teneis un ejemplo en la sección de downloads