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

Respuestas del foro



  • arzaai
    Participante
    arzaai

    Buenos días.

    El problema se ha presentado cuando tengo que cambiar la clave principal de una tabla nueva que he creado.

    La primera vez establecí la clave principal con un campo llamado “id” pero ahora tengo que cambiar esa clave principal por ejemplo: “No. pedido”,”id”

    Cuando publico la extensión me da error indicando – No se permite cambiar los campos de la clave ‘id’. Lista anterior: ‘id’, lista nueva: ‘No. Pedido’, ‘id’. } – Job Id : 641389c9-6a37-4cc3-9edd-5e2f77679967′

    En el fichero launch.json lo he definido tanto así “schemaUpdateMode”: “Recreate” como así “schemaUpdateMode”: “ForceSync”

    Y sigue dando el error. ¿Se puede cambiar las claves después de haber publicado por primera vez la nueva table?

    Gracias.

    #1018399

    oscarmingte
    Participante
    oscarmingte

    Hola , tengo entendido , que cuando creas una clave y la intentas cambiar , no puedes cambiarla ,todo esto para las claves primarias creo , se debe revisar muy bien la clave antes de crearla (creo que es para entornos Sass) pero no te lo aseguro.

    Espero que alguien pueda aportar algo más.

    Un saludo.

    #1018400

    Joker
    Participante
    Joker

    Hola,

    No es posible. Te iba a decir que una de las maneras es con “schemaUpdateMode»: Recreate” pero veo que te da error. No entiendo que te dé error porque esa opción en teoría “recrea” la tabla, por lo que tiene que eliminarla y volverla a crear. Miraré este caso por curiosidad.

    La otra posibilidad que tienes es dejar esa tabla “obsoleta” (https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/properties/devenv-obsoletestate-property) y crear una tabla nueva con la primary key correcta, por lo que la antigua siempre existiría en la BBDD de BC y en tu código. El siguiente paso sería crear una codeunit de tipo Upgrade que moviera la información que tenías en la tabla antigua a la nueva.

    Saludos

    #1018403
Viendo 3 entradas - de la 1 a la 3 (de un total de 3)

Debe iniciar sesión para responder a este tema.