Autor Tema: POR FAVOR AYUDA URGENTE CON UNA SELECT  (Leído 13559 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado QiQe

  • Novato
  • *
  • Mensajes: 6
    • Ver Perfil
POR FAVOR AYUDA URGENTE CON UNA SELECT
« en: 02 de Septiembre de 2008, 02:31:35 pm »
Hola a tod@s...

He seguido este foro (como invitado) durante bastante tiempo, y he aprendido muchísimo con vosotros...

Pero ahora que me he puesto manos a la obra con ABAP y SAP...

Os cuento...es un programita de carga para el Legacy (LSMW), para las hojas de ruta de PP...

Como sabreis, en la hoja de ruta se define los puestos de trabajo por el que pasa un material, y se le asignan los componentes que se consumen a las operaciones por las que va pasando.

Por lo tanto, tenemos un material 'X' con una lista de materiales, de 2 posiciones...

0010 - Material 1
0020 - material 2

Y su hoja de ruta:

0010 - Pto.trabajo 1 - se consume el Material 1
0020 - Pto.trabajo 2 - se consume el Material 2.

El problema que tengo con la SELECT, es que para cada posición de la hoja de ruta, sólo me carga el [Material 1] de la lista de materiales...
Aunque hayan mas operaciones, no me salta al siguiente material...

La select me hace lo siguiente:

0010 - Pto.trabajo 1 - se consume el Material 1
0020 - Pto.trabajo 2 - se consume el Material 1.

Lo que tengo puesto es esto:

select single IDNRK into BIPMZ-MATNR from STPO
where stlnr = BIPMZ-stlnr
   AND stlkn = BIPMZ-stlkn
   AND stlty = BIPMZ-stlty .

¿Hay alguna forma de que eso se haga un loop o bucle y vuelva a pasar por la siguiente posición si hubiese material? y que al volver a pasar compruebe si hay otra posición y coja ese material, no repita el primero

Tengo dentro de nada el Go Life en productivo y nos dimos cuenta del error hace poco en la formación con los usuarios...

Os agradezco cualquier tipo de ayuda

Un saludo y MIL GRACIAS

Desconectado molaci

  • Usuario Sr.
  • ****
  • Mensajes: 113
    • Ver Perfil
Re: POR FAVOR AYUDA URGENTE CON UNA SELECT
« Respuesta #1 en: 02 de Septiembre de 2008, 03:41:07 pm »
Hola, puedes hacer el SELECT de esta manera, me refiero haciendo un SELECT --> ENDSELECT


Código: [Seleccionar]
    SELECT * FROM stpo
            WHERE stlnr = bipmz-stlnr
              AND stlkn = bipmz-stlkn
              AND stlty = bipmz-stlty.

      MOVE: stpo-idnrk TO bipmz-matnr.

      APPEND bipmz.
    ENDSELECT.

Un saludo.

Desconectado QiQe

  • Novato
  • *
  • Mensajes: 6
    • Ver Perfil
Re: POR FAVOR AYUDA URGENTE CON UNA SELECT
« Respuesta #2 en: 02 de Septiembre de 2008, 05:20:54 pm »
No tengo acceso al sistema ahora...

Te juro que si me funciona...
Yo que sé, menos pagarte la hipoteca y ponerme a 4 patas... pídeme lo que quieras!

Ahora en 1 hora te digo algo...

MIL GRACIAS, MIL GRACIAS!!!

P.D: Estoy hasta con ansiedad :S

Desconectado QiQe

  • Novato
  • *
  • Mensajes: 6
    • Ver Perfil
Re: POR FAVOR AYUDA URGENTE CON UNA SELECT
« Respuesta #3 en: 02 de Septiembre de 2008, 05:30:57 pm »
Me pide un target

A target area must be declared either explicitly with an INTO clause or
implicitly with a TABLES statement.

Le pongo esto

* Target Field: BIPMZ-MATNR

Y me dice lo mismo...

:(

Desconectado ale12

  • Usuario Completo
  • ***
  • Mensajes: 92
    • Ver Perfil
Re: POR FAVOR AYUDA URGENTE CON UNA SELECT
« Respuesta #4 en: 02 de Septiembre de 2008, 05:37:37 pm »
El error que te esta dando es porque no tienes declarada la tabla BIPMZ.

Deberías declarar la tabla así, TABLES: bipmz.

De todas formas es posible que haya que hacer alguna otra cosa, si pones todo el código igual vemos exactamente en que falla.

  ;)

Desconectado QiQe

  • Novato
  • *
  • Mensajes: 6
    • Ver Perfil
Re: POR FAVOR AYUDA URGENTE CON UNA SELECT
« Respuesta #5 en: 02 de Septiembre de 2008, 05:51:40 pm »
     BIPMZ                          Estructura batch input asignación componentes a hoja de ruta

         Fields

             PLNTY                        Tipo de hoja de ruta
                                 Rule :   Constant
                                 Code:    BIPMZ-PLNTY = 'N'.
             PLNNR                        Clave de grupo hojas de ruta
                                 Source:  COMPONENTES-PLNNR (Grupo hojas de ruta)
                                 Rule :   Transfer (MOVE)
                                 Code:    BIPMZ-PLNNR = COMPONENTES-PLNNR.
             PLNAL                        Contador grupo hojas ruta
                                 Source:  COMPONENTES-PLNAL (Contador grupo hojas ruta)
                                 Rule :   Transfer (MOVE)
                                 Code:    BIPMZ-PLNAL = COMPONENTES-PLNAL.
             PLNFL                        Secuencia
                                 Rule :   Constant
                                 Code:    BIPMZ-PLNFL = '000000'.
             VORNR                        Número de operación
                                 Source:  COMPONENTES-VORNR (Número de operación)
                                 Rule :   Transfer (MOVE)
                                 Code:    BIPMZ-VORNR = COMPONENTES-VORNR.
             STLTY                        Tipo de lista de materiales
                                 Rule :   Constant
                                 Code:    BIPMZ-STLTY = 'M'.
             STLNR                        Lista de materiales
                                 Code:    " BIPMZ-STLNR = COMPONENTES-STLNR.
                                          select single stlnr into BIPMZ-STLNR FROM MAST
                                          WHERE  MATNR = COMPONENTES-BOMAT AND
                                                 WERKS = COMPONENTES-WERKS AND
                                                 STLAL = COMPONENTES-BOMAL AND
                                                 STLAN = COMPONENTES-BOMAN.
STLAL                        Alternativa de la lista de materiales
                    Source:  COMPONENTES-STLAL (Alternativa de la lista de materiales)
                    Rule :   Transfer (MOVE)
                    Code:    BIPMZ-STLAL = COMPONENTES-STLAL.
STLKN                        Número de nodos (batch input)
                    Code:    "BIPMZ-STLKN = COMPONENTES-STLKN.
                             TABLES : STAS ,STPO.
                             " p añadida
                             select *    "single STLKN into BIPMZ-STLKN
                             FROM STPO WHERE
                             STLNR = BIPMZ-STLNR AND
                             STLTY = BIPMZ-STLTY . "AND
                             " POSNR = STPO-STLKN.  viene en el fichero de carga
                             " condicion añadida para obtener correctamente STLKN
                              select * from stas where
                                stlnr = BIPMZ-STLNR AND
                                stlty = BIPMZ-STLTY AND
                                stlal = BIPMZ-STLAL AND
                                stlkn = STPO-STLKN .
                                endselect .
                               if sy-subrc EQ 0 .
                                   BIPMZ-STLKN = STPO-STLKN .
                                  exit .
                               ENDIF.
                             endselect .
ZUDIV                        Divisor en nº entero (batch input)
ZUMS1                        Medida de corte 1 (batch input)
ZUMS2                        Medida de corte 2 (batch input)
ZUMS3                        Medida de corte 3 (batch input)
ZUMEI                        Unidad de medida de corte (Batch input)
IMENG                        Cantidad de componente (BTCI)
IMEIN                        Unidad de medida de componente (batch input)
     MATNR                        Número de material
                         Code:    * Target Field: BIPMZ-MATNR Número de material
                                  select single IDNRK into BIPMZ-MATNR from STPO
                                  where stlnr = BIPMZ-stlnr
                                     AND stlkn = BIPMZ-stlkn
                                     AND stlty = BIPMZ-stlty . " AND stlty = 'M'.
                                  "where stlnr = COMPONENTES-stlnr  "COMPONENTES-stlkn
     WERKS                        Centro
                         Source:  COMPONENTES-WERKS (Centro)
                         Rule :   Transfer (MOVE)
                         Code:    BIPMZ-WERKS = COMPONENTES-WERKS.
     BOMAT                        Número de material
                         Source:  COMPONENTES-BOMAT (Número de material)
                         Rule :   Transfer (MOVE)
                         Code:    BIPMZ-BOMAT = COMPONENTES-BOMAT.
     RGEKZ                        Indicador: toma retroactiva
                         Source:  COMPONENTES-RGEKZ (Toma Retroactiva)
                         Rule :   Transfer (MOVE)
                         Code:    BIPMZ-RGEKZ = COMPONENTES-RGEKZ.
     AUFST                        Nivel de la orden
                         Source:  COMPONENTES-AUFST (Nivel de la orden)
                         Rule :   Transfer (MOVE)
                         Code:    BIPMZ-AUFST = COMPONENTES-AUFST.
     AUFWG                        Camino de la orden
                         Source:  COMPONENTES-AUFWG (Camino de la orden)
                         Rule :   Transfer (MOVE)
                         Code:    BIPMZ-AUFWG = COMPONENTES-AUFWG.
     BOMTY                        Tipo de lista de materiales
                         Rule :   Constant
                         Code:    BIPMZ-BOMTY = 'M'.
     BOMNR                        Lista de materiales
                                  " BIPMZ-BOMNR = COMPONENTES-BOMNR.
                                  select single stlnr into BIPMZ-BOMNR FROM MAST
                                 WHERE  MATNR = COMPONENTES-BOMAT AND
                                        WERKS = COMPONENTES-WERKS AND
                                        STLAL = COMPONENTES-BOMAL AND
                                        STLAN = COMPONENTES-BOMAN.
    BOMAL                        Alternativa de la lista de materiales
                        Source:  COMPONENTES-BOMAL (Alternativa de la lista de materiales)
                        Rule :   Transfer (MOVE)
                        Code:    BIPMZ-BOMAL = COMPONENTES-BOMAL.
    BOMAN                        Utilización de la lista de materiales
                        Source:  COMPONENTES-BOMAN (Utilización de la lista de materiales)
                        Rule :   Transfer (MOVE)
                        Code:    BIPMZ-BOMAN = COMPONENTES-BOMAN.



*** Disculpad por la forma en que está pasteado.

Esa es la parte que me falla.

Gracias anticipadas!

Desconectado QiQe

  • Novato
  • *
  • Mensajes: 6
    • Ver Perfil
Re: POR FAVOR AYUDA URGENTE CON UNA SELECT
« Respuesta #6 en: 02 de Septiembre de 2008, 06:33:27 pm »
Pues... va a ser que la SELECT de ese campo no es...

Lo que me está dando problemas es:

STLKN                        Número de nodos (batch input)

Lo que me está haciendo es cogerme el primer valor del nodo, que equivale a la primera posición de la lista de materiales...
Lo que no hace al pasar por el programa otra vez, es comprobar si existe otro posterior...

Ese es el problema... he debuggeado poniendole un breakpoint y he conseguido deducir eso...

¡Joder! creyendo que eso estaba bien! :@ >:(

Desconectado QiQe

  • Novato
  • *
  • Mensajes: 6
    • Ver Perfil
Re: POR FAVOR AYUDA URGENTE CON UNA SELECT
« Respuesta #7 en: 03 de Septiembre de 2008, 11:04:54 am »
RESUELTO

Gracias a los que respondieron a mi S.O.S
Un saludo