1. FORM datos_nuevos.
  2. *--[ Hay que meterlo en el evento 05 de la SM30
  3. *--[ Forzado únicamente a las altas, pues una modificación no sabremos nunca
  4. *--[ si nos están metiendo un plain-text o un string codificado
  5. *--[ Igualmente esto sive vomo ejemplo de llamada
  6.   DATA: tmp_string TYPE string.
  7.   tmp_string = zkk_001-pass.  "<-- Aquí va el valor de la tabla a codificar
  8.   PERFORM encode_string CHANGING tmp_string. " IN PROGRAM XXXXXXX <- Para utilizarlo desde cualquier sitio
  9.   zkk_001-pass = tmp_string.  "<-- Devolvemos el valor codificado
  10. ENDFORM.                    "datos_nuevos
  11.  
  12.  
  13. *--[
  14. *--[ Está separado en dos forms por si en el futuro se quiere utilizar
  15. *--[ otra forma de codificación, sin alterar el código de donde se ha metido.
  16. *--[ Además queda claro que hace en cada momento
  17. *--[
  18. FORM encode_string CHANGING my_str TYPE string.
  19.   DATA: l_obj TYPE REF TO cl_hard_wired_encryptor,
  20.         l_in_s TYPE string,
  21.         l_out_s TYPE string.
  22. *
  23. *--[ ADVERTENCIA: Esto no es realmente una codificación fuerte
  24. *--[ esto está pensado para que no sea visible al ojo humano
  25. *
  26.   l_in_s = my_str.
  27.   CLEAR: l_out_s.
  28.  
  29.   CREATE OBJECT l_obj.
  30.   DO 2 TIMES.
  31.     TRY.
  32.         CALL METHOD l_obj->encrypt_string2string
  33.           EXPORTING
  34.             the_string = l_in_s
  35.           RECEIVING
  36.             result     = l_out_s.
  37.       CATCH cx_encrypt_error .
  38.     ENDTRY.
  39.     l_in_s = l_out_s.
  40.   ENDDO.
  41.   my_str = l_out_s.
  42. ENDFORM.                    "encode_string
  43.  
  44. FORM decode_string CHANGING my_str TYPE string.
  45.   DATA: l_obj TYPE REF TO cl_hard_wired_encryptor,
  46.         l_in_s TYPE string,
  47.         l_out_s TYPE string.
  48. *
  49. *--[ ADVERTENCIA: Esto no es realmente una codificación fuerte
  50. *--[ esto está pensado para que no sea visible al ojo humano
  51. *
  52.   l_in_s = my_str.
  53.   CLEAR: l_out_s.
  54.  
  55.   CREATE OBJECT l_obj.
  56.   DO 2 TIMES.
  57.     TRY.
  58.         CALL METHOD l_obj->decrypt_string2string
  59.           EXPORTING
  60.             the_string = l_in_s
  61.           RECEIVING
  62.             result     = l_out_s.
  63.       CATCH cx_encrypt_error .
  64.     ENDTRY.
  65.     l_in_s = l_out_s.
  66.   ENDDO.
  67.   my_str = l_out_s.
  68. ENDFORM.                    "decode_string