Copiar Datos de Cliente a Cabecera

Cursos de Navision 100% online Foros Foro Dynamics NAV y Business Central Copiar Datos de Cliente a Cabecera

Este debate contiene 2 respuestas, tiene 2 mensajes y lo actualizó  Cristina Nicolàs hace 5 meses.

Viendo 3 publicaciones - del 1 al 3 (de un total de 3)
  • Autor
    Publicaciones
  • #6893

    Jaime Capilla
    Participante

    Hola!!

    He creado una extensión de tabla de Customer para crear unos campos nuevos de tipo texto. Los mismos los he creado extendiendo Sales Header. La idea es que al hacer un pedido nuevo los datos de esos campos del cliente se copien en la cabecera. He creado una codeunit para ello y me he suscrito al evento [EventSubscriber(ObjectType::Table, Database::”Sales Header”, ‘OnAfterValidateEvent’, ‘Sell-to Customer No.’, false, false)] con lo que al poner el código de cliente la información se copie en la cabecera de ventas. Si hago un pedido nuevo y selecciono el cliente, como el número de pedido ya se ha creado, el procedimiento funciona correctamente. Si por el contrario hago un nuevo pedido de venta desde la ficha del cliente obtengo un error

    “Cab. Venta no existe. Campos de identificación y valores: Tipo documento=’Pedido’, Nº = ‘1015″

    Tengo la sensación que en el primer caso, cuando selecciono el cliente ya tengo el numero de pedido y si se encuentra el registro que se va a modificar. En el segundo caso, cuando se dispara el evento, el número de documento aun no esta insertado en base de datos y no encuentra el registro que debe actualizar. He probado a poner en el procedimiento la condición

    if rec.”No.” = ” then
    exit;

    para que si el Numero de pedido está en blanco se salga pero sigue fallando. Creo que debería suscribirme tanto el evento OnAfterValidateEvent del Sell-to Customer No. como del N0 de pedido para que funcione en ambos casos pero no se como evitar el error.

     

     

    #6894

    Jaime Capilla
    Participante

    Hola de nuevo!!

    He conseguido que me funcione en ambos casos con este codigo:

     

    [EventSubscriber(ObjectType::Table, Database::”Sales Header”, ‘OnAfterValidateEvent’, ‘Sell-to Customer No.’, false, false)]
    local procedure CopyCustomerCL(var Rec: Record “Sales Header”; var xRec: Record “Sales Header”; currFieldNo: Integer)
    var
    Customer: Record Customer;
    begin
    if not Customer.Get(Rec.”Sell-to Customer No.”) then
    exit;
    if rec.”No.” = ” then
    exit;
    rec.”Aptdo Numero” := Customer.”Aptdo Numero”;
    rec.”Aptdo CP” := Customer.”Aptdo CP”;
    rec.”Aptdo Pob” := Customer.”Aptdo Pob”;
    rec.”Aptdo Prov” := Customer.”Aptdo Prov”;
    if not rec.Modify() then
    exit;
    end;

     

    y haciendo lo mismo para

    [EventSubscriber(ObjectType::Table, Database::”Sales Header”, ‘OnAfterValidateEvent’, ‘No.’, false, false)]

    Al poner

    if not rec.Modify() then
    exit;

    consigo que no falle pero me gustaría que me indicarais si es correcto como lo he programado.

     

    #6899

    Cristina Nicolàs
    Jefe de claves

    Hola Jaime,

    Yo creo que aquí lo que falla es que hagas el Modify.

    Como te estás suscribiendo a un OnAfterValidate no es necesario que hagas tu un Modify explícito, porque el sistema ya lo hará cuando toque.

    Lo que dices de que al crear el pedido desde la ficha del cliente te da error es seguramente por ese Modify. No es que el Nº del documento esté vacío o no, es que es posible que aun no se haya hecho el Insert.

    Yo en este caso sólo me suscribiría al ‘Sell-To Customer No.’ y no haría el modify.

    Un saludo,
    Cristina Nicolàs

    Curso presencial. Conviértete en un Experto en Business Central.

    Curso organizado como un máster.
    Las inscripciones anticipadas terminan el 28 de febrero.
    Inicio del curso: 26 de Abril
    Más información

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

Debes estar registrado para responder a este debate.

Members Currently Active: 0
No users are currently active
Keymaster | Moderator | Participant | Spectator | Blocked
Additional Forum Statistics
Threads: 722, Posts: 2.395, Members: 808
Welcome to our newest member, trintrin3
Most users ever online was 15 on 5 April, 2019 9:31 am