• Este debate tiene 6 respuestas, 3 mensajes y ha sido actualizado por última vez el hace 2 años, 2 meses por AvatarImak.
Viendo 7 entradas - de la 1 a la 7 (de un total de 7)

Respuestas del foro


  • Avatar
    Imak
    Participante
    Imak

    Hola,

    estaba siguiendo los videos de TDD realizando el ejemplo propuesto y me sucede lo siguiente.

    Al crear el campo extendido ‘Def. Ship-To Address’, por error lo he hecho en otra tabla diferente que la de Customer. He publicado he instalado la extensión sin problemas.
    Cuando me he dado cuenta del error he modificado la función que extendía el campo, cambiando la tabla destino errónea por la de customer. Al intentar publicarla con el cambio que os comento, la consola de VS Code me devuelve un error:

    The request for path /navision_main/dev/apps?SchemaUpdateMode=synchronize failed with code 422. Reason:
    TableExtension 50150 :: Unsupported table change. Table:Ship-to Address; Change:Remove

    He intentado todo lo que se me ha ocurrido, reiniciar servicios, borrar los ficheros .al y .app, y volver a crearlos, etc…pero el error sigue.

    ¿Qué puedo hacer?

    Saludos

    #5328
    Avatar
    Cristina Nicolàs
    Superadministrador
    Cristina Nicolàs

    Hola Iñigo,

    Has probado a ir, en el cliente de NAV, a la página de Administración de Extensiones, y allí desinstalar y despublicar la extensión?

    Un saludo,
    Cristina Nicolàs

    #5329
    Avatar
    Imak
    Participante
    Imak

    Hola Cristina,

    Sí, lo he probado varias veces.

    He conseguido plublicarla vaciando la extensión de contenido, quiero decir, borrando la función que crea el campo nuevo. Pensando que así el campo se habría borrado.

    Luego he vuelto a escribir la función que crea el campo nuevo, he despublicado la versión de la extensión ‘vacia’, y he intentado publicar la versión corregida. Digo he intentado porque el resultado ha sido el mismo.

    No entiendo por qué pasa esto.
    ¿Alguna idea?

    Saludos

    Íñigo

    #5330
    Avatar
    Laura Nicolàs
    Superadministrador
    Laura Nicolàs

    Por lo que tengo entendido, se necesitan funciones de Sync y Upgrade para que el sistema sepa «gestionar» los cambios en la estructura de datos.

    Cristina ha jugado con ésto mas que yo, pero es posible que creando una codeunit/funcion de upgrade, deje eliminar el campo?

    La otra opción es hacer un Sync con el Mode Clean, o algo así.
    En este hilo del foro de GitHub, hacen referencia a este artículo de la documentación.

    Salut!
    Laura Nicolàs

    #5331
    Avatar
    Laura Nicolàs
    Superadministrador
    Laura Nicolàs

    O quizá cambiando el parámetro schemaUpdateMode en el launch.json?
    https://github.com/Microsoft/AL/issues/1881#issuecomment-378917674

    Ya ves que voy dando ideas para ir probando… cuando lo tengas nos dices cuál ha sido la solución!

    Sino nos vas contando el resultado de cada prueba, por si vemos otras cosas que se podrían probar.

    Yo hoy no voy a poder probar a re-crear tu situación. Si sigues con el problema, el lunes o el martes lo intento.

    Salut!
    Laura Nicolàs

    #5332
    Avatar
    Imak
    Participante
    Imak

    Hola Laura/Cristina

    he probado lo de la sincronización con el Mode Clean que me comentas tal y como indican en el hilo del foro de Github. Yo suponía que la despublicación de la extensión acababa con cualquier rastro de la misma del sistema.

    Desde PowerShell ISE he ejecutado:
    Sync-NavTenant -ServerInstance NombreServicio
    Sync-NavApp -ServerInstance navision_main -Name ‘Nombre Ext.’ -Version ‘1.0.0.0’ -Mode Clean

    Y a partir de ahí todo bien.

    Esto ha sido necesario ante modificaciones del código de la extensión en el ámbito de las tablas, no he tenido problemas alterando código relativo al resto de objetos.
    He probado diferentes tipos de modificaciones en el código de VSCode para ver ante cuales es necesario ejecutar las dos instrucciones anteriores de PowerShell para poder publicar la extensión:

    Resultado
    -En Borrado de campos
    -En Cambios en campos que ya han sido publicados:
    – Cambios de Id
    – Cambios de Nombre
    – Cambios en Tipo de dato. Paso de code a Integer, etc…
    Como curiosidad, al realizar una modificación del tamaño de un campo de tipo Code, el problema se ma ha presentado sólo cuando reducía el tamaño, si lo amplío no pasa nada.

    Gracias por vuestra ayuda y un saludo

    Iñigo

    #5333
    Avatar
    Imak
    Participante
    Imak

    He probado también la segunda opción, la de introducir schemaUpdateMode = Recreate en el launch.json.
    Ésta es la mejor opción ya que me publica sin problema la extensión independientemente de las modificaciones que haga en el código previamente publicado.

    Gracias de nuevo

    Saludos

    Iñigo

    #5334
Viendo 7 entradas - de la 1 a la 7 (de un total de 7)

Debe iniciar sesión para responder a este tema.