cancel
Showing results for 
Search instead for 
Did you mean: 

Maximo fila permitido en documento de marketing

douglas_marroquin
Participant
0 Kudos

Buenas tardes,

Existe de alguna manera indicarle a SAP que en el detalle del documento de marketing solo se pueda agregar un numero determinado de filas y no pasarse de ahi?

Gracias.

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hola Douglas, Natural de SAP Business One no es, debes hacer un transaction que valide la cantidad de lineas

Este es un ejemplo sencillo.

/*------ Validación de la cantidad de líneas en las facturas ---------*/

/*

IF (@transaction_type = 'A' OR @transaction_type = 'U') AND @object_type = '13'

  BEGIN

  IF ((SELECT COUNT(T0.DocEntry) FROM INV1 T0 WHERE T0.DocEntry = @list_of_cols_val_tab_del) > 34)

  BEGIN

  SET @error = -3

  SET @error_message = 'El documento actual no puede contener más de 34 líneas.'

  END

  END

*/

douglas_marroquin
Participant
0 Kudos

Hola Wuilmer,

Entiendo, esto mismo se puede replicar si adicionalmente necesitamos que el numero de lotes por articulo seleccionado no rebase un numero determinado de lineas?

Gracias

Former Member
0 Kudos

Douglas,

No entiendo bien tu pregunta respecto a los lotes.

Me podrías explicar mejor.

No necesitas tu validación a nivel de las lineas de las facturas sino a nivel de lineas en la ventana de lotes cuando se lo asignas a un articulo?

douglas_marroquin
Participant
0 Kudos

Wuilmer,

Sí el número máximo de lineas se solventa nada mas por transaction, entonces deseo tambien validar al mismo tiempo que el numero de lotes tomados mas el numero de lineas en el documento de marketing no pasen de 10.

Lo que sucede es que la factura en su detalle no tiene para mas de 10 ITem, sumandole al caso que se factura linea por lote es decir por ejemplo si un producto tiene 4 lotes para esa factura entonces se imprimiran 4 lineas.

Gracias.

Former Member
0 Kudos

HOla Douglas,

Prueba con este query.

IF (@transaction_type = 'A' OR @transaction_type = 'U') AND @object_type = '13'

  BEGIN

 

  declare @fact int

  declare @lote int

  set  @lote=(select count(T1.LogEntry) FROM OITL T0 inner join ITL1 t1 on t0.logentry=t1.logentry WHERE T0.DocEntry = @list_of_cols_val_tab_del)

  set @fact=(SELECT COUNT(T0.DocEntry) FROM INV1 T0 WHERE T0.DocEntry = @list_of_cols_val_tab_del)

.

  IF (@lote+@fact) > 10

  BEGIN

  SET @error = -3

  SET @error_message = 'El documento actual no puede seleccionar  más de 10 lineas.'

  END

  END

douglas_marroquin
Participant
0 Kudos

Hola Wuilmer, te comento que estaré fuera de SAP por tres días, cuando vuelva lo reviso.

Saludos.

Former Member
0 Kudos

Hola Douglas te funciono?