ABAP /

HiddenCalls

  1. REPORT  ZHIDDEN_PERFORM.
  2.  
  3. *--[ Ofuscación en las asignación de las llamadas
  4. perform tgbrty using 'lesil-ys' 'poiuytrewq'.
  5.  
  6. *--[ Utilizamos sy-lisel para no saber a quien se está llamando
  7. perform qazwsx using sy-lisel.
  8.  
  9. perform tgbrty using 'lesil-ys' 'zxcvbnm'.
  10. perform qazwsx using sy-lisel.
  11.  
  12. *--[ Esta es la rutina que asigna un valor a una variable
  13. form tgbrty using qwedsazxc1 qwedsazxc2.
  14. data: l_l like sy-lisel.
  15. FIELD-SYMBOLS: <f>.
  16.   sy-pagno = strlen( qwedsazxc1 ).
  17.   sy-lisel = qwedsazxc1.
  18.   do sy-pagno TIMES.
  19.      CONCATENATE sy-lisel+0(1) l_l into l_l.
  20.      shift sy-lisel+0(sy-pagno) left.
  21.   ENDDO.
  22.   assign (l_l) to <f>.
  23.   <f> = qwedsazxc2.
  24. endform.
  25.  
  26. *--[ Esta es la rutina de
  27. form qazwsx using qwedsazxc.
  28. data: l_l like sy-lisel.
  29.   sy-pagno = strlen( qwedsazxc ).
  30.   sy-lisel = qwedsazxc.
  31. *--[ Aquí va el método de DECODE, como ejemplo he puesto algo sencillo:
  32. *--[ Mirror de las variable
  33.   do sy-pagno TIMES.
  34.      CONCATENATE sy-lisel+0(1) l_l into l_l.
  35.      shift sy-lisel+0(sy-pagno) left.
  36.   ENDDO.
  37.   TRANSLATE l_l TO UPPER CASE.
  38. *--[ Salto dinámico
  39.   perform (l_l) in PROGRAM (sy-cprog) if FOUND.
  40. endform.
  41.  
  42. *--[ Procedimientos dinámicos, no hay referencias de ser llamados
  43. form qwertyuiop.
  44.   write 'Hello'.
  45. endform.
  46.  
  47. form mnbvcxz.
  48.    write 'World'.
  49. endform.
Última modificación de la página el 04 November 2015 a las 15h04
Powered by PmWiki