- Este debate tiene 5 respuestas, 3 mensajes y ha sido actualizado por última vez el hace 7 años, 8 meses por
Rosa Martin.
-
AutorEntradas
-
15 noviembre 2018 a las 12:06 #6860
pedperpat
ParticipanteBuenas tardes,
Necesito sacar el nº de lote del producto X que tengo especificado en la línea de venta del pedido(pedido sin registrar).
Y me he fijado en la acción “Lins. Seguim. Producto” que me abre una nueva ventana con el nº de lote asignado a la línea y además las cantidades.
Necesito obtener ese nº de lote lo que pasa es que el proceso estándar por cada lote que quiero ver lo que hace es siempre NºMov = 1. Esa es la única clave primaria de la tabla, por lo que en pedidos de más de 1 línea me dice que ya existe el registro.
Lo que estoy intentando hacer es:
Sales Line – OnAfterGetRecord()
SalesReserve.InitTrackingSpecification(“Sales Line”,TrackingSpecification);
ItemTrackingLines.SetSource(TrackingSpecification,”Sales Line”.”Shipment Date”);
ItemTrackingLines.SetInbound(“Sales Line”.IsInbound);
ItemTrackingLines.GETRECORD(TrackingSpecification);
MESSAGE(‘Nº movimiento: ‘ + FORMAT(TrackingSpecification.”Entry No.”) + ‘ Nº Lote:’ + TrackingSpecification.”Lot No.”);A la siguiente pasada, la de la línea 2 me da el error de que ya existe un registro con el Nº mov. = 1, ¿alguna idea o workaround por el que conseguir el Nº de lote de todas las líneas?
Muchas gracias y un saludo.
15 noviembre 2018 a las 14:29 #6864
Cristina NicolàsSuperadministradorHola pedperpat,
No lo he ido a mirar, pero creo que esa variable TrackingSpecification es una variable temporal que el sistema te rellena con el seguimiento de una línea en concreto.
Para cada línea tendrías que hacer primero un DELETEALL para tener TrackingSpecification vacía y que te la vuelva a rellenar.Ojo, antes de poner un DELETEALL comprueba efectivamente que sea una variable temporal, que yo no lo he comprobado.
Un saludo,
Cristina Nicolàs15 noviembre 2018 a las 14:35 #6865
Cristina NicolàsSuperadministradorO otra cosa que podrías hacer es, en lugar de utilizar esta función InitTrackingSpecification, podrías poner los filtros adecuados sobre la tabla ReservationEntry y leer directamente sobre esa tabla.
Diria que esa codeunit SalesReserve también tiene funciones que te ponen los filtros necesarios sobre ReservationEntry para obtener solo los regisros de una línea en concreto.Un saludo,
Cristina Nicolàs19 noviembre 2018 a las 09:11 #6897pedperpat
ParticipanteBuenos días,
Al final lo solucioné trayéndome todas las funciones del estándar y adaptándolo a la necesidad que tenía. Lo del DELETEALL fui cuidadoso con ello y el rec estaba marcado como temporal ya que si no como tú bien has comentado sería catastrófico.
El código vi que en reservation entry aplicaba unos específicos filtros para poder luego en la page de “Item tracking lines” mostrar el lote asignado del producto con su información relacionada de cantidad.
19 noviembre 2018 a las 09:54 #6900
Cristina NicolàsSuperadministradorHOla,
Gracias por la actualización. Me alegro que consiguieras encontrar una solución.
Un saludo,
Cristina Nicolàs22 noviembre 2018 a las 13:24 #6992
Rosa MartinSuperadministradorGracias. Me ha sido de mucha ayuda.
-
AutorEntradas
- Debes estar registrado para responder a este debate.