Buenas tardes tengan todos, mi problemática es la siguiente:
Intento hacer un SP que valide que el pedido de entradas de mercancías tenga los mismos artículos y cantidades que su pedido base, por lo tanto estoy intentando hacer el siguiente SP:
IF @object_type = '20' and @transaction_type in ('A','U')
BEGIN
DECLARE @itemENTnvarchar(20), @itemPEDnvarchar(20), @cantENTfloat(2), @cantPEDfloat(2), @DocBasenvarchar(19);
SET @DocBase = (SELECT ISNULL(T4.[BaseRef],'-1') FROM OPDN T3 INNER JOIN PDN1 T4 ON T3.[DocEntry] = T4.[DocEntry] WHERE T3.[DocNum] = @list_of_cols_val_tab_del)
DECLARE pedido CURSOR FOR (SELECT T1.ItemCode, T1.Quantity FROM OPOR T0 INNER JOIN POR1 T1 ON T0.DocEntry = T1.DocEntry WHERE T0.DocNum = @DocBase);
DECLARE entrada CURSOR FOR (SELECT T1.[ItemCode], T1.[Quantity] FROM OPDN T0 INNER JOIN PDN1 T1 ON T0.[DocEntry] = T1.[DocEntry] WHERE T0.[DocNum] = @list_of_cols_val_tab_del);
OPEN entrada
OPEN pedido
FETCH NEXT FROM entrada INTO @itemENT, @cantENT
WHILE (@@FETCH_STATUS = 0)
BEGIN
IF((@itemPED <> @itemENT) OR (@cantPED <> @cantENT))
BEGIN
SET @error=102;
SET @error_message='EL ARTICULO ' + @itemENT + ' DIFIERE EN RELACION CON EL PEDIDO.';
BREAK
END
else
FETCH NEXT FROM entrada INTO @itemENT, @cantENT
FETCH NEXT FROM pedido INTO @itemPED, @cantPED
END
CLOSE pedido;
CLOSE entrada;
DEALLOCATE pedido;
DEALLOCATE entrada;
END--FIN
El SP funciona cuando trabajo en el pedido y entrega con un solo artículo, pero al incluir mas de uno es donde viene el problema, aparece el siguiente error:
Subquery returned more than 1 value. This is not permitted when the subquery follows =,!=,<,<=,>,>= or when the subquery is used as an expression. (CINF).
Espero que alguien pueda ayudarme ya que llevo un buen rato sin poder solventarlo y no he conseguido respuesta en ningún foro.
De antemano gracias por sus comentarios, saludos.
Versión SAP 9.1 PL 07.
Versión SQL Server 2014.
Add comment