Eliminacion de campo en tabla nueva

Cursos de Navision 100% online Foros Foro Dynamics NAV y Business Central Eliminacion de campo en tabla nueva

Este debate contiene 4 respuestas, tiene 2 mensajes y lo actualizó  BETEA hace 8 meses, 2 semanas.

Viendo 5 publicaciones - del 1 al 5 (de un total de 5)
  • Autor
    Publicaciones
  • #7757

    BETEA
    Participante

    Buenos dias,

    Estoy pasando a extension un desarrollo que tenemos. Entre otras cosas, he tenido que crear una tabla nueva. He publicado la extension sobre nuestro docker, y hasta ahi todo «bien». He conseguido que compile en AL el codigo traido desde el object designer, y ahora toca pulirlo y arreglaro para hacer un estandar.

    El problema ha venido al quitar 2 campos de la tabla nueva que he creado, y re-publicar la extension:

    [2019-01-10 17:55:08.54] Sending request to http://beteabc:7049/NAV/dev/metadata

    [2019-01-10 17:55:46.79] Sending request to http://beteabc:7049/NAV/dev/apps?SchemaUpdateMode=synchronize

    [2019-01-10 17:56:04.78] The request for path /NAV/dev/apps?SchemaUpdateMode=synchronize failed with code 422. Reason: Table Disp. producto por Almacen:: Unsupported field change. Field:Inventario X; Change:Remove

    Table Disp. producto por Almacen:: Unsupported field change. Field:Inventario Y; Change:Remove

    Como veis, parece que no le gusta que haya quitado lso campos. He despublicado la extension, he reiniciado el docker, incluse he ido al SQL manager y he borrado fisicamente la nueva tabla creada, pero me sigue dando error… Parece que queda algo por ahi. Existe alguna forma de publicar la extension haciendo una especie de «Force»?

     

    Muchas gracias

    #7759

    Laura Nicolàs
    Jefe de claves

    Hola,

    En el launch.json tienes que añadir el parámetro «schemaUpdateMode»: «Recreate»

    Con esto el sistema recrea todo el esquema de datos por lo que te permite eliminar tablas y campos creados, o cambiar de tipo de datos los campos. Ojo, también pierdes todos los datos de prueba que hayas generado.

    Esto lo puedes hacer mientras estés en un entorno de desarrollo, pero no lo podrás hacer en un entorno de producción, porque en PROD no puedes permitirte perder los datos! En PROD tendrías que gestionar el tema de los datos con una codeunit de Upgrade.

    Si la app la publicas en el cloud (ya sea en la AppSource, o una personalización de cliente), no vas a poder eliminar los campos nunca. En su lugar, tendrías que marcarlos como obsoletos, y gestionar los datos con una codeunit de upgrade. Te dejo alguna documentación: https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/upgrade/deprecated-fields

    Salut!
    Laura Nicolàs

    ¿Quieres conocer las últimas novedades sobre Business Central? Dynamics ScaleUp 2019.

    Consulta fechas en
    DynamicsScaleUp.com

    #7762

    BETEA
    Participante

    Muchas gracias Laura!

    Con el recreate parece que no me da ya ese fallo, aunque me sale esto:

    [2019-01-11 09:54:42.45] Sending request to http://beteabc:7049/NAV/dev/metadata
    [2019-01-11 09:55:06.75] Sending request to http://beteabc:7049/NAV/dev/apps?SchemaUpdateMode=recreate
    [2019-01-11 09:55:08.21] The request for path /NAV/dev/apps?SchemaUpdateMode=recreate failed with code 422. Reason: The following SQL error was unexpected:
    No item by the name of ‘»dbo».»CRONUS ES$Sales Line$7d27f5f1-6084-471d-8b5a-770eefbfe6a1″‘ could be found in the current database ‘FinancialsES’, given that @itemtype was input as ‘(null)’.

    Como andube borrando tablas de SQL sin pensar demasiado, se habra quedado alguan dependencia por ahi… Al ser un entorno nuestro propio, me puse a borrar cosas sin miedo, y al final pasa lo que pasa… Intentare depurar un poco el SQL, y si me lelva demasiado, borrar docker, crear uno nuevo, y adelante.

    De  todas formas lo dicho, el recreate parefe haberme solucionado el tema de los campos borrados.

     

    Muchas gracias!

    #7766

    Laura Nicolàs
    Jefe de claves

    Yo no me liaria con el SQL e iria a recrear el docker directamente… si tocas el SQL, aunque consigas solventarlo, siempre te puede salir por otro lado en unos días o semanas…

    Salut!
    Laura Nicolàs

    ¿Quieres conocer las últimas novedades sobre Business Central? Dynamics ScaleUp 2019.

    Consulta fechas en
    DynamicsScaleUp.com

    #7768

    BETEA
    Participante

    Efectivamente, he borrado y creado uno nuevo. Tengo un script que me borra el docker, y me crea otro de igual nombre, asique sin darle demasiadas vueltas, es lo que he hecho….

     

    Un saludo y muchas gracias de nuevo!

Viendo 5 publicaciones - del 1 al 5 (de un total de 5)

Debes estar registrado para responder a este debate.

Members Currently Active: 2
Javier-Rodilla, softymax
Keymaster | Moderator | Participant | Spectator | Blocked
Additional Forum Statistics
Threads: 921, Posts: 2.969, Members: 925
Welcome to our newest member, Khron0s
Most users ever online was 15 on 5 April, 2019 9:31 am