2016 May 24 6:19 PM
Hola amigos,
os dejo este código por si alguien me puede ayudar:
SELECT SINGLE *
FROM lfa1
INTO ls_lfa1
WHERE lifnr = ls_cesiones_aux-lifnr.
IF sy-subrc = 0.
TRANSLATE ls_lfa1-name1 TO UPPER CASE.
MOVE-CORRESPONDING ls_lfa1 TO ls_cesiones.
ls_cesiones-domicilio = ls_lfa1-stras.
IF t_cesiones-oksel = 'X'.
ls_cesiones-oksel = 'X'.
ENDIF.
SELECT SINGLE *
FROM lfa1
INTO ls_lfa1
WHERE lifnr = ls_cesiones_aux-contratista.
IF sy-subrc = 0.
TRANSLATE ls_lfa1-name1 TO UPPER CASE.
MOVE ls_lfa1-name1 TO ls_cesiones-name_contra.
ENDIF.
Estoy haciendo 2 select a la misma tabla de B.D. lfa1 y pero con distinto condiciones(en negrita) y en el primero si me encuentra el registro, pero en el segundo me da sy-subrc = 4. He mirado en la tabla con las SE16N y existen los 2 registros.
Alguien me puede ayudar???
Gracias y saludos
Luis.
2016 May 24 10:31 PM
Hola Luis.
Puede ser un tema de ceros a la izquierda o de espacios en blanco. Revisa el contenido de la tabla por la transacción SE16 en lugar de la SE16N. De igual forma, confirma también que el valore en la variable ls_cesiones_aux-contratista corresponde exactamente con el valor que encuentras en la tabla.
Puedes agregar los pantallazos de la se16 y el valor de la variable durante debug para compararlos ?
Saludos,
Dairo
2016 May 25 9:39 AM
Hola Dario,
muchas gracias por tu pista!!!! me ha servido de mucho!!!. Tenia un código que no habia visto y que era lo que tu me habias dicho. Esta mañana me he puesto a buscar si pasaba algo de eso y lo he encontrado!!!. Este es el código:
lv_num_digitos = STRLEN( p_t_cesiones-lifnr ).
lv_ciclos = ( 10 - lv_num_digitos ).
lv_lifnr_fix = p_t_cesiones-lifnr.
DO lv_ciclos TIMES.
CONCATENATE '0' lv_lifnr_fix INTO lv_lifnr_fix.
ENDDO.
IF lv_lifnr_fix <> cte_ceros.
p_t_cesiones-lifnr = lv_lifnr_fix.
ENDIF.
Muchas gracias de nuevo Dario!!!
Saludos
Luis.
2016 May 25 11:34 AM
Hola Luis,
Muchas gracias por plantearnos tus dudas y sobre todo a Dairo por sus muy buenas recomendaciones y ayuda. Si las respuestas dadas han sido de útiles o bien te han solucionado la duda, puedes cerrar este thread o hilo, marcando la respuesta como correcta en "Correct Answer". Así ayudaremos a otros compañeros para dudas o preguntas similares.
Muchas gracias por tu colaboración.
Un cordial saludo!
Jose Francisco Fernandes (Moderador SCN en Español).
2016 May 25 2:56 PM
Hola Luis,
Me alegra mucho que te haya servido mi recomendación. Estamos a la orden.
2016 Jun 15 10:17 PM
Hola Luis, no olvides marcar la respuesta como correcta y cerrar la discusión.
2016 Jun 16 11:20 AM
2016 Jun 16 2:29 PM
Hola Luis.
Utiliza estos botones:
Para la respuesta correcta (la que más te ayudó a resolver el problema) usas el verde. Para las demas que te hayan resultado útiles también, usas el amarillo.
Si tienes otra pregunta me cuentas.
Un abrazo,
Dairo
2016 Jun 16 3:24 PM