• Este debate tiene 15 respuestas, 5 mensajes y ha sido actualizado por última vez el hace 5 años, 4 meses por Cristina Nicolàs.
Viendo 15 entradas - de la 1 a la 15 (de un total de 16)

Dudas de trabajo con extensiones VS Code



  • Jaume Escribà
    Participante
    Jaume Escribà

    Hola y felicidades por los cursos.
    He estado siguiendo los cursos de las extensiones con VS Code y me surgen dudas.

    ¿Se pueden utilizar campos, funciones, … creadas en una extensión des de otra extensión?
    Por ejemplo, si creo un campo en la tabla de cliente des de una extensión, este mismo campo, lo puedo ver / utilizar desde otra extensión si la tengo instalada en la misma instancia de Nav 2018?
    ¿Puedo ver / utilizar campos, funciones,.. creadas des de una extensión des del entorno de desarrollo de Nav?

    ¿Si somos dos programadores, podemos trabajar en la misma extensión a la vez?

    ¿La extensión se puede instalar en una versión diferente a la desarrollo?
    Por ejempplo, ¿una extensión creada con Nav 17 se puede instalar en Nav 18?

    #5421

    Laura Nicolàs
    Superadministrador
    Laura Nicolàs

    Hola @Jaume,

    Muchas gracias por los comentarios 🙂

    Voy respondiento a tus preguntas

    [quote quote=5421]¿Se pueden utilizar campos, funciones, … creadas en una extensión des de otra extensión?[/quote]

    Sí. Se puede.

    • En la segunda extensión, tienes que indicar que hay una dependencia con la primera.
      Se indica en el fichero app.json.
    • La segunda extensión necesita los símbolos de la primera.
      Hay que añadir el .app de la primera en la carpeta .alpackages de la segunda.

    Es un tema interesante. Me lo anoto para hacer un curso sobre extensiones dependientes, y así lo vemos todo en detalle.

    Salut!
    Laura Nicolàs

    #5422

    Laura Nicolàs
    Superadministrador
    Laura Nicolàs

    [quote quote=5421]¿Puedo ver / utilizar campos, funciones,.. creadas des de una extensión des del entorno de desarrollo de Nav?[/quote]

    No. No se puede.

    Todo lo que hagas en VSCode no tiene visibilidad en C/SIDE.

    Al revés sí > Si creas un campo/función/objeto en C/SIDE, lo puedes usar en VSCode.

    Salut!
    Laura Nicolàs

    #5423

    Laura Nicolàs
    Superadministrador
    Laura Nicolàs

    [quote quote=5421]¿Si somos dos programadores, podemos trabajar en la misma extensión a la vez?[/quote]

    Sí. Se puede.

    Tienes varias opciones para conseguirlo:

    1. El proyecto está en una carpeta compartida, ya sea porque accedéis al mismo servidor, o porque lo tenéis en un Dropbox o similar.
      Dos personas abrís el mismo proyecto y vais trabajando en el proyecto.
      Cuando guardas los cambios en un fichero, la otra persona ve los cambios al momento.
      Si los dos estáis modificando el mismo fichero al mismo momento, cuando la segunda persona va a guardar el sistema avisa que hay cambios, y te pide que hagas un merge al momento.
    2. Utilizas un sistema tipo Git. Cada uno trabaja en una copia “local” del proyecto. Cuando has terminado con tu parte, o cuando lo consideras relevante, subes los cambios. Se tiene que hacer un Merge. Herramientas como GitHub o similar ofrecen muchas ayudas para gestionar los Merge, las versiones y las contribuciones.

    Creo que un sistema tipo Git es lo ideal y nos tenemos que acostumbrar a usarlo. Nosotras todavía no nos hemos puesto.

    Sobre la primera parte, Cristina y yo hemos hecho algunas pruebas y va bien. En breve grabamos un vídeo para enseñarlo.

    Salut!
    Laura Nicolàs

    #5424

    Laura Nicolàs
    Superadministrador
    Laura Nicolàs

    [quote quote=5421]¿La extensión se puede instalar en una versión diferente a la desarrollo?
    Por ejempplo, ¿una extensión creada con Nav 17 se puede instalar en Nav 18?[/quote]

    En NAV2017 solo podías crear extensiones v1, las que se creaban desde C/SIDE. Sí, puedes coger esa extensión e instalarla en NAV2018.

    Las extensiones v2 (creadas desde VSCode) no se pueden instalar en NAV2017. Pero sí se puedan instalar en DBC (Dynamics 365 Business Central) y se podrán instalar en futuras versiones.

    Salut!
    Laura Nicolàs

    #5425

    Laura Nicolàs
    Superadministrador
    Laura Nicolàs

    [quote quote=5424]

    ¿Si somos dos programadores, podemos trabajar en la misma extensión a la vez?

    Sí. Se puede.
    [/quote]

    Hemos publicado un artículo en el blog con un video muy interesante sobre como gestiona Visual Studio Code el trabajo colaborativo.

    Lo puedes ver aquí: https://clipdynamics.com/extensiones-vscode-trabajar-colaborativamente/

    Salut!
    Laura Nicolàs

    #5654

    cherrando
    Participante
    cherrando

    Hola Laura,
    aprovecho el hilo de extensiones para añadir una pregunta relacionada, aunque si crees que es mejor sacarla me dices.

    He leido que la versión Dynamics 365 Business Central ya no incorpora NAV Development Environment, no sé si es correcto.
    En este caso, ¿cómo se podría modificar una codeunit estándar que está funcionando mal a través de extensiones v2?. La única forma que habría aparentemente es añadir código a través de suscripciones a eventos, pero ¿cómo hacemos para corregir un bug si no hay evento en el punto donde se produce?, ¿se podrá depurar código estándar en esta nueva versión?

    Y otra pregunta, ¿tenéis pensado hacer algún video como el del trabajo colaborativo, pero utilizando GitHub enlazado con VSCode?

    Muchas Gracias!

    #5662

    Laura Nicolàs
    Superadministrador
    Laura Nicolàs

    Hola!

    Intento responder a tus preguntas:

    [quote quote=5662]He leido que la versión Dynamics 365 Business Central ya no incorpora NAV Development Environment, no sé si es correcto.[/quote]
    En la versión cloud es así. Ya no hay posibilidad de usar el NAV Development Environment.
    En la versión on-premise, que saldrá en Octubre/Noviembre, no lo se. Yo creo que en implantaciones on-premise será posible desarrollar desde C/SIDE durante algunas versiones más. Pero en algún momento lo quitarán.

    [quote quote=5662]¿cómo se podría modificar una codeunit estándar que está funcionando mal a través de extensiones v2?. La única forma que habría aparentemente es añadir código a través de suscripciones a eventos, pero ¿cómo hacemos para corregir un bug si no hay evento en el punto donde se produce?[/quote]

    En este caso, la forma de operar tendría que ser esta:

    • En ocasiones tendrás que volverte un poco “creativo” para ver como solucionar el problema. Quizá dejar que la funcionalidad estándard haga lo que tenga que hacer, aunque esté mal, y luego poner código propio que “revierta” la situación, o algo así. Es una solución poco elegante, pero en ocasiones no tendremos otra.
      En el curso Dynamics ScaleUp vamos a mostrar un par de ejemplos, de casos reales en los que nos hemos tenido que volver creativas, en las extensiones que hemos hecho para nuestros clientes.
    • Solicitar un nuevo evento.
    • Si no existe el evento… puedes solicitarlo en el foro de Github. Los ingenieros de Microsoft están respondiendo muy rápido a estas solicitudes y normalmente en el siguiente Cumulative Update ya lo tienes disponible.

    • Reportar el bug a Microsoft.
    • Si se trata de un bug, lo mejor es que Microsoft lo solucione y que la solución forme parte del estándar. Puedes reportar el bug desde la PartnerSource (https://mbs2.microsoft.com/Support/SupportRequestStep1.aspx)

    • Side-by-side Development.
    • En las implantaciones on-premise C/SIDE va a seguir disponible durante un tiempo y es posible hacer modificaciones tanto en C/SIDE como en VSCode y que las dos coexistan.

    Hasta el momento estábamos muy acostumbrados al yo me lo guiso, yo me lo como. Encontrábamos un bug, y lo corregiamos. Simple. Rápido.

    Ahora, si no queremos perjudicar a nuestro cliente, tendremos que actuar de forma distinta. Tenemos que acostumbrarnos a reportar las incidencias y quizá esperar un mes o dos a que se solucionen. No es fácil, lo se, porque estamos acostumbrados a ser bastante auto-suficientes. A mi me pasa. Pero no hay otra.

    Siempre te queda la opción del Side-by-side development. Vas mas rápido. Pero mucho cuidado, porque podemos estar perjudicando a nuestros clientes.

    Las transiciones siempre son complejas, pero nos tenemos que adaptar.

    Es posible que este tema genere controversia y debate… ¿nos lo ponen más fácil o más difícil? ¿tú que opinas?

    Salut!
    Laura Nicolàs

    #5664

    Laura Nicolàs
    Superadministrador
    Laura Nicolàs

    [quote quote=5662]Y otra pregunta, ¿tenéis pensado hacer algún video como el del trabajo colaborativo, pero utilizando GitHub enlazado con VSCode?[/quote]

    Por el momento no tenemos experiencia con GitHub. No lo hemos probado.
    Es un tema interesante y me gustaría probarlo, pero no creo que sea a corto plazo.

    De todas formas si alguien quiere/puede hacer el video, yo estaré encantada de colgarlo en el blog, o de poner un enlace al blog del autor 🙂

    Salut!
    Laura Nicolàs

    #5666

    cherrando
    Participante
    cherrando

    Muchas gracias Laura por tu rápida y muy completa respuesta.

    Era un poco lo que nos temíamos, pero si dices que desde Microsoft son rápidos a la hora de meter nuevos eventos y corregir bugs entonces por lo menos tenemos una salida.

    Aunque imagina que el bug hace que se registre un impuesto con un importe erróneo…esperar un mes no es viable. Cruzaremos los dedos para que no pase.

    Quizá si se corrige rápido se pueda descargar desde GitHub la extension correspondiente que ha realizado Microsoft para no tener que esperar al mes siguiente cuando salga el CU.

    Tengo otra pregunta que quizá se solucione probando pero aún no he sacado el tiempo para hacerlo. Tu creas una extensión con una tabla 50000 para una determinada funcionalidad y otra persona crea otra extensión distinta que también trae una tabla nueva con el mismo número 50000 aunque con distinta estructura. Al instalar las dos extensiones, ¿qué ocurre?, ¿falla?, ¿funciona?. Estoy pensando en descargar extensiones a “ciegas” por ejemplo de repositorios publicos. Si hay objetos con numeraciones coincidentes, ¿NAV funciona bien y en la instalacion les da una numeración unica para que todo funcione?

    Gracias de nuevo!

    #5670

    Laura Nicolàs
    Superadministrador
    Laura Nicolàs

    [quote quote=5670]Tengo otra pregunta que quizá se solucione probando pero aún no he sacado el tiempo para hacerlo. Tu creas una extensión con una tabla 50000 para una determinada funcionalidad y otra persona crea otra extensión distinta que también trae una tabla nueva con el mismo número 50000 aunque con distinta estructura. Al instalar las dos extensiones, ¿qué ocurre?, ¿falla?, ¿funciona?. Estoy pensando en descargar extensiones a “ciegas” por ejemplo de repositorios publicos. Si hay objetos con numeraciones coincidentes, ¿NAV funciona bien y en la instalacion les da una numeración unica para que todo funcione?[/quote]

    En este caso ocurre lo siguiente:
    – La primera extensión se instala sin problemas y funciona de forma normal.
    – La segunda extensión da error al instalar. No te deja instalar hasta que no se soluciones la colisión de numeración.

    Ahora mismo es muy sencillo pedir un rango de numeración reservada, por lo que si vas a hacer extensiones… lo mejor es que pidas numeración. (Explicamos el proceso en este hilo del blog)

    De todas formas yo creo que en algún momento quitarán los IDs y todo irá por nombres. Por lo menos así es como funcionan otros sistemas, por ejemplo WordPress, que es el CMS que usamos para la web.

    Es mucho más improbable que haya colisión de nombres. Si además usas un prefijo o un sufijo, la probabilidad disminuye todavía más.

    Microsoft ya te deja reservar prefijos/sufijos… lo que me hace pensar que en algún momento todo irá por nombres, y los IDs ya no tendrán sentido.

    Salut!
    Laura Nicolàs

    #5671

    cherrando
    Participante
    cherrando

    Muchas gracias de nuevo Laura!

    Igualmente es lo que me temía.

    He entrado en el hilo que comentas y está muy completo la explicacion para pedir numeraciones y demás así que habrá que ir acostumbrandose a hacer estas cosas.

    Un saludo,

    Carlos

    #5672

    Jaume Escribà
    Participante
    Jaume Escribà

    Hola Laura,
    Aunque voy a trabajar con extensiones, puede que tenga que crear campos en tablas estandarts, tablas y CU propias
    ¿Como puedo cargar los objetos (Campos, Tablas, CU,…) creados directamente en NAV al entorno de Visual Code?
    Por defecto solo carga los símbolos estandarts.

    Gracias

    #5832

    Jaume Escribà
    Participante
    Jaume Escribà

    Ya lo he resuelto con este link

    https://nizarsaad.wordpress.com/tag/vs-code/page/2/

    #5834

    Lucero Ortega
    Participante
    Lucero Ortega

    Como puedo alterar un objeto estándar desde una extensión,ejemplo:si quiero llenar mis lineas de factura de venta que anteriormente se hacia desde un codeunit estándar ,ahora que proceso debería seguirse?

    #7342
Viendo 15 entradas - de la 1 a la 15 (de un total de 16)

Debe iniciar sesión para responder a este tema.