Skip to Content

Validar transferencias entre almacences

Estimados/Estimadas

Trato de validar las transferencias de stocks entre almacenes y quisiera me dieran una ayuda pues no logro resolver el tema.

El punto es poder validar que las transferencias se hagan a almacenes específicos siendo así:

Almacén origen          Almacén destino

         11                              21

        12                              22

        13                              23

        14                              24

        15                              25

         17                              27

si el usuario selecciona otro almacén destino de cualquiera de los almacenes origen que no lo deje pasar.

Agradezco toda ayuda

Saludos

Marco

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

3 Answers

  • Best Answer
    Jun 12, 2013 at 03:45 PM

    Hola que tal, tu método esta malo, tienes que usar un cursor para que analice linea por linea, ya que como lo estas haciendo te tiene que dar error que no pueden haber múltiples variables para un subquery.

    si te esperas puedo subir una muestra de como debería de ser.

    saludos.

    Add comment
    10|10000 characters needed characters exceeded

    • ------BLOQUEO ALMACENES

      IF @transaction_type in ('A') and (@object_type='67')

       

      begin

                DECLARE curTransf CURSOR

                          /* origen de donde tomara los datos el cursor */

                          FOR Select T1.ItemCode,T0.Filler,T1.WhsCode From OWTR T0 INNER JOIN WTR1 T1 ON T0.DocEntry = T1.DocEntry Where T0.DocEntry = @list_of_cols_val_tab_del

                DECLARE @ItemCode as varchar(20)

                DECLARE @WhsOrigen as nvarchar(8)

                DECLARE @WhsDestino as nvarchar(8)

       

                OPEN curTransf

                set @error=0

                FETCH NEXT FROM curTransf INTO @ItemCode,@WhsOrigen,@WhsDestino

                WHILE @@Fetch_Status=0 AND @error=0

                BEGIN

       

                          select @error=

                          case

                          when @WhsOrigen=11 AND @WhsDestino<>21 then 1

                          when @WhsOrigen=12 AND @WhsDestino<>22 then 2

                          when @WhsOrigen=13 AND @WhsDestino<>23 then 3

                          when @WhsOrigen=14 AND @WhsDestino<>24 then 4

                          when @WhsOrigen=15 AND @WhsDestino<>25 then 5

                          when @WhsOrigen=17 AND @WhsDestino<>27 then 6

       

                          else 0

                          end,

                          @error_message=

                          case

                          WHEN @error=1 THEN N'Almacen Origen 11 Solo Transfiere a Almacen Destino 21 Revise Articulo: ' + @ItemCode

                          WHEN @error=2 THEN N'Almacen Origen 12 Solo Transfiere a Almacen Destino 22 Revise Articulo: ' + @ItemCode

                          WHEN @error=3 THEN N'Almacen Origen 13 Solo Transfiere a Almacen Destino 23 Revise Articulo: ' + @ItemCode

                          WHEN @error=4 THEN N'Almacen Origen 14 Solo Transfiere a Almacen Destino 24 Revise Articulo: ' + @ItemCode

                          WHEN @error=5 THEN N'Almacen Origen 15 Solo Transfiere a Almacen Destino 25 Revise Articulo: ' + @ItemCode

                          WHEN @error=6 THEN N'Almacen Origen 17 Solo Transfiere a Almacen Destino 27 Revise Articulo: ' + @ItemCode

                          end

                          FETCH NEXT FROM curTransf INTO @ItemCode,@WhsOrigen,@WhsDestino

                END

       

                CLOSE curTransf

                DEALLOCATE curTransf

      End

      ATT. RJOVEL.

  • avatar image
    Former Member
    Jun 10, 2013 at 08:27 PM

    ¿Que versión de sap tienes?

    Lo pregunto ya que dependiendo la versión te permitirá que el almacen origen esté en la línea, y de eso dependerá la validacion

    Add comment
    10|10000 characters needed characters exceeded

  • Jun 13, 2013 at 04:15 PM

    Gracias a todos!

    Add comment
    10|10000 characters needed characters exceeded