Anuncio

Colapsar
No hay anuncio todavía.

Validación de caracteres extraños en rutina abap

Colapsar
X
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • Validación de caracteres extraños en rutina abap

    Que tal,
    Estoy tratando de validar la entrada de caracteres con la función : SCP_REPLACE_STRANGE_CHARS, el objetivo es que la función acepte caracteres validos en BW ademas de estos ya agregados en la RSKC : |–O ÁÉÍÓÚÑ°ºÜ"~$@#ÁÉÍÓÚ-ALL_CAPITAL'[' ][/\¦.“*
    y los caracteres extraños los remplace por un guión "-" y esto ya lo hace solo que la función no esta respetando los acentos y la "ñ", al ingresarle una letra con acento elimina el acento y solo pasa la letra lo mismo sucede con la "ñ" la pasa como "n", esperando me puedan ayudar..
    Saludos...Gracias !!!

  • koken
    respondió
    Originalmente publicado por HEVELAZQUEZ Ver Mensaje
    Hey que tal !!
    Si ya había encontrado la forma de resolverlo con esa función (RSKC_ALLOWED_CHAR_GET), quedó de la siguiente manera:


    IF g_allowed_char is INITIAL.
    CALL FUNCTION 'RSKC_ALLOWED_CHAR_GET'
    IMPORTING
    e_allowed_char = g_allowed_char.

    ENDIF.

    RESULT = SOURCE_FIELDS-/BIC/ZCPEXC092.

    TRANSLATE RESULT TO UPPER CASE.

    CHECK g_allowed_char NE 'ALL_CAPITAL'.

    DO.
    IF not RESULT CO g_allowed_char.
    result+sy-fdpos(1) = '-'.
    ELSE.
    exit.
    ENDIF.

    ENDDO.



    Muchas Gracias!!! SALUDOS!!!
    Excelente, esperamos tenerte más seguido por acá.

    Saludos!

    Dejar un comentario:


  • HEVELAZQUEZ
    respondió
    Hey que tal !!
    Si ya había encontrado la forma de resolverlo con esa función (RSKC_ALLOWED_CHAR_GET), quedó de la siguiente manera:


    IF g_allowed_char is INITIAL.
    CALL FUNCTION 'RSKC_ALLOWED_CHAR_GET'
    IMPORTING
    e_allowed_char = g_allowed_char.

    ENDIF.

    RESULT = SOURCE_FIELDS-/BIC/ZCPEXC092.

    TRANSLATE RESULT TO UPPER CASE.

    CHECK g_allowed_char NE 'ALL_CAPITAL'.

    DO.
    IF not RESULT CO g_allowed_char.
    result+sy-fdpos(1) = '-'.
    ELSE.
    exit.
    ENDIF.

    ENDDO.



    Muchas Gracias!!! SALUDOS!!!

    Dejar un comentario:


  • koken
    respondió
    Muy raro tu caso.

    Podrías hacer lo siguiente:

    1- Usá esta función: RSKC_ALLOWED_CHAR_GET entonces validás que no haya ningún caracter de ese registro que sea extraño.
    2- Si encuentra un caracter que es extraño, recién ahí utilizar la función SCP_REPLACE_STRANGE_CHARS

    Espero que de esta manera puedas resolverlo.

    Dejar un comentario:


  • HEVELAZQUEZ
    respondió
    Si ya intente de esa manera y si lo hace correcto, pero necesito la función para que valide si hay un carácter extraño, por ejemplo letras de alfabeto chino, lo sustituya por el guión (-), te muestro el resultado que me da de manera directa sin usar la función:
    Haga clic en la imagen para ver una versión más grande

Nombre:	Capture8.PNG
Visitas:	323
Size:	26,8 KB
ID:	37084

    y usando la función si me cambia los caracteres extraños por el guión:
    Haga clic en la imagen para ver una versión más grande

Nombre:	Capture9.PNG
Visitas:	320
Size:	4,9 KB
ID:	37085
    Editado por última vez por HEVELAZQUEZ; https://www.forosap.com/member/50430-hevelazquez en 07/08/17, 17:59:15.

    Dejar un comentario:


  • koken
    respondió
    Probaste no usar esa función para ver como llega al DSO?

    Dejar un comentario:


  • HEVELAZQUEZ
    respondió
    Gracias.. ya probé agregando ALL_CAPITAL_PLUS_HEX pero tengo el mismo resultado.
    Esta es la manera en que estoy implementando la función:

    temp = SOURCE_FIELDS-***XX. "pasar cadena a una variable
    call function 'SCP_REPLACE_STRANGE_CHARS'
    exporting
    intext = temp
    replacement = 45

    importing
    outtext = RESULT.
    Editado por última vez por HEVELAZQUEZ; https://www.forosap.com/member/50430-hevelazquez en 07/08/17, 17:53:08.

    Dejar un comentario:


  • koken
    respondió
    Hola, probá en la RSKC poner sólo esto: ALL_CAPITAL_PLUS_HEX, de esa manera te debería funcionar, en caso que no avisanos y lo seguimos analizando.

    SAludos!

    Dejar un comentario:


  • HEVELAZQUEZ
    respondió
    Koken, es correcto la función esta dentro de la transformación.
    Hice una prueba cargando desde un Flat File, excluyendo la función y solo cargando como asignación directa y si acepta los caracteres (acentos, ñ) en el PSA, DSO y el Cubo.
    Después volví a hacer la prueba cargando del mismo Flat File usando la rutina con la función SRC_REPLACE_STRANGE_CHAR y me arroja lo siguiente en el DSO: Haga clic en la imagen para ver una versión más grande  Nombre:	Capture6.PNG Visitas:	1 Size:	24,7 KB ID:	37086



    estos son los datos que estoy cargando del Flat File:
    Capture7.PNG

    (En el DSO el campo división no trae nada porque no esta mapeado en la transformación)
    Esperando me puedas ayudar analizarlo
    MUCHAS GRACIAS!!!
    SALUDOS.
    Editado por última vez por HEVELAZQUEZ; https://www.forosap.com/member/50430-hevelazquez en 07/08/17, 18:01:00.

    Dejar un comentario:


  • koken
    respondió
    Hola,

    esa función donde la estás poniendo? dentro de una transformación? si es así en la PSA el dato lo ves correctamente o ya directamente ahí no se ve bien?

    Dejar un comentario:

Trabajando...
X