Valor inconvertible al hacer select a una tabla

Buenos dias compañeros, quisiera hacerles una consulta sobre algo que llevo dias trantando de hacer, quiero obtener el valor del campo pspnr de la tabla mspr (stock de proyectos) , dejo imagen de referencia.
no se como obtener el valor en si del campo y no el valor inconvertible de ese campo si pudieran hecharme una mano para saber que estoy haciendo mal, se los agradeceria. :smiley:

estoy realizando lo siguiente para obtener el valor:
declaro el tipo :

 TYPES : BEGIN OF ty_mspr,
           matnr TYPE mspr-matnr,
          sobkz TYPE mspr-sobkz,
          pspnr TYPE mspr-pspnr,
          prlab TYPE mspr-prlab,
          END OF ty_mspr.

DATA : it_mspr TYPE TABLE OF ty_mspr .
DATA : wa_mspr TYPE ty_mspr.
DATA : pspnr TYPE mspr-pspnr.


 SELECT * FROM mspr
    INTO CORRESPONDING FIELDS OF TABLE it_mspr
    WHERE matnr = gv_matnr.

  NOTA : gv_matnr es una variable global declarada en la seccion de import de la funcion, puede ser reemplazado      
        por  ='A02AA11AQ004' o por cualquier otro material.

  LOOP AT it_mspr INTO wa_mspr.
      pspnr = wa_mspr-pspnr.
   ENDLOOP.

Hola buenos días, @Aastudillo

Para tal fin debes usar la función

CALL FUNCTION 'CONVERSION_EXIT_KONPD_OUTPUT'
  EXPORTING
    input  = s_pspnr   " introduces  00000650 "
  IMPORTING
    output = v_projdef.  " y obtienes 14023-1-1-A-E1-007"
4 Me gusta

Hola buenos dias compañero @jumanago antes que todo debo darte las gracias por tu tiempo y por haberme enseñado una funcion que no conocia dentro de sap :D, hice la llamada a la funcion que me indicaste, pero ahora estoy mas enrredado porque ahora el valor que me retorna son todos ceros, sabras el porque ahora me retorna valor cero la funcion.

muchas gracias de anteamano!

Hola,

Te convendría debuguear esa parte de donde estas llamando a la función para ver que le estés pasando el valor correcto. Cualquier cosa nos pasas el nuevo código de como la estás llamando.

Saludos.

1 me gusta

hola @sconoredhot segui tu consejo, me puse a debuggear y de hecho el valor que me trae es el que indica el pspnr al entrar a la subrutina PERFORM FILL PROJ BUFFER USIGN SPACE. y hacer una consulta a la tabla PROJ (definicion del proyecto). (el internet esta un poco lento para las imagenes) :confused:

lo que claro que me va a devolver valor cero porque me meti en la trx se16n e hice una consulta a la tabla PROJ con un numero de proyecto Eje (14023) y me devuelve valores pero al indicar el valor inconvertible 00000650 que seria el elemento pep que esta asociado a un material no me va a traer nada y me gustaria que dieran ciertas pistas de que valor en si debo indicarles. espero me haya bien :smiley:

@aastudillo como estas corriendo la función. Revisa los tipos de datos del campo que pasas en el INPUT. La función es estándar, siempre todo lo de PS tiene su lio. Disculpa pero te envie mal la función la anterior era para el proyecto

Para elementos PEP debes usar las siguientes funciones

CONVERSION_EXIT_ABPSP_OUTPUT : mandas el valor interno (inconvertible) y se muestra valor requerido

CONVERSION_EXIT_ABPSP_INPUT: mandas el valor requerido y te devuelve el interno (inconvertible)

2 Me gusta

Me parece que en ese caso debes usar los exits de conversión del dominio matnr, conversio_exit_matn1_input y conversio_exit_matn1_ouput, prueba esas funciones con la tx. Se37 y pones los valores de materiales para ver como los utiliza en internamente.

Buenas tardes y disculpen la tardanza para responder y el error se encontraba en que estaba pasando un valor que no era el correcto segun @sconoredhot por eso siempre me devolvia valor cero despues de pasarla por la funcion, muchas gracias a todos por el apoyo!!

1 me gusta

Hola a todos, entiendo que la consulta hecha por nuestro amigo @Aastudillo ha sido resuelta, sin embargo aprovecho para detallar un poco mas de como solucionar este caso de forma sencilla, debido que es bastante común y cotidiano:

IMPORTANTE: Para empezar indicar que este es un típico caso de campos que están sujetos a rutinas de conversión, esto quiere decir que el formato en el cuál visualizamos el dato no es el mismo formato en el que se guarda en la tabla de base de datos. ¿Por qué SAP hace esto?, simplemente por un tema de orden y eficiencia a la hora de almacenar y consultar dicha información.

¿Como identificar si un campo esta sujeto a rutina de conversión?
1)Tomamos como referencia el mismo caso, campo-tabla “MSPR-PSPNR”:

  1. Nos dirigimos al elemento de datos “PS_PSP_PNR”, presionamos doble clic y en la pestaña “Tipo datos” identificamos al dominio:

  2. Presionamos nuevamente doble clic esta vez en el dominio y nos dirigimos a la pestaña “Definición”, aquí es en donde comprobaremos si el dominio tiene asignada rutina de conversión cuando el campo “Rutina conv.” esté lleno.

  3. Para saber cuales son las rutinas aplicadas al dominio bastará con dar doble clic en la rutina definida en el campo “Rutina conv.” y esto nos llevara a los módulos de funciones que realizan dichas conversiones, estos mismos módulos de funciones pueden ser utilizados en nuestros programas para cambiar el formato a conveniencia.

Espero les sea de utilidad, en especial a los que están iniciando =D!
Saludos cordiales.
HuarisH

5 Me gusta

@huarish muy bueno, en mi opinión, sugeriría subirlo a la parte de Tutoriales.
Saludos,

@sconoredhot, gracias por la recomendación, lo subiré a Tutoriales en cuanto sepa como hacerlo, recién llevo 1 día en la comunidad y me voy enterando poco a poco como funcionan las cosas =D!

1 me gusta

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.