W Pub: ABAP Re Use SYST

  1. report zreusesyst.
  2.  
  3. *--[
  4. *--[ Programa para detectar los cambios que hay en la tabla SYST de forma automática,
  5. *--[ así se pueden reaprovechar variables sin tener que definirlas.
  6. *--[
  7. data: old_syst type syst,
  8.       new_syst type syst,
  9.       act_syst type syst,
  10.       dtype TYPE c LENGTH 1,
  11.       l_dd03l type STANDARD TABLE OF dd03l,
  12.       lc_dd03l type dd03l.
  13.  
  14. FIELD-SYMBOLS: <comp1> TYPE any,
  15.                <comp2> TYPE any.
  16.  
  17. select * from dd03l into TABLE l_dd03l where TABNAME = 'SYST' ORDER BY position ASCENDING.
  18.  
  19. old_syst = new_syst = syst.
  20. DO.
  21.  ASSIGN COMPONENT sy-index OF STRUCTURE syst TO <comp1>.
  22.  IF sy-subrc <> 0.
  23.     EXIT.
  24.  ENDIF.
  25.  DESCRIBE FIELD <comp1> TYPE dtype.
  26.  case dtype.
  27.    when 'D'. <comp1> = '20140101'.
  28.    when 'I'. <comp1> = 9.
  29.    when 'C'. <comp1> = '#'.
  30.    when 'T'. <comp1> = '010101'.
  31.    when 'N'. <comp1> = '9'.
  32.  
  33.    when 'X' or 'b' or 'P'. " No Tocar
  34.    when OTHERS. BREAK-POINT.
  35.  endcase.
  36. ENDDO.
  37. new_syst = syst.
  38. syst = old_syst.
  39.  
  40. DO.
  41.  ASSIGN COMPONENT sy-index OF STRUCTURE old_syst TO <comp1>.
  42.  ASSIGN COMPONENT sy-index OF STRUCTURE new_syst TO <comp2>.
  43.  IF sy-subrc <> 0.
  44.     EXIT.
  45.  ENDIF.
  46.  if <comp1> ne <comp2>.
  47.     READ TABLE l_dd03l INDEX sy-index into lc_dd03l.
  48.     DESCRIBE FIELD <comp1> TYPE dtype.
  49.     CONCATENATE lc_dd03l-TABNAME '-' lc_dd03l-fieldname '(' dtype '-' lc_dd03l-LENG ')' into sy-lisel. CONDENSE sy-lisel NO-GAPS.
  50.     write: / sy-lisel.
  51.  endif.
  52. ENDDO.
  53. *
  54. *--[ Este es el resultado, todas estas variables se pueden utilizar sin problemas... o no.
  55. *
  56. * SYST-PAGNO(I-000010) SYST-TABIX(I-000010) SYST-TFILL(I-000010) SYST-TLOPC(I-000010) SYST-TMAXL(I-000010)
  57. * SYST-TOCCU(I-000010) SYST-TTABC(I-000010) SYST-TSTIS(I-000010) SYST-TTABI(I-000010) SYST-DBCNT(I-000010)
  58. * SYST-FDPOS(I-000010) SYST-COLNO(I-000010) SYST-LINCT(I-000010) SYST-LINNO(I-000010) SYST-LINSZ(I-000010)
  59. * SYST-PAGCT(I-000010) SYST-MACOL(I-000010) SYST-MAROW(I-000010) SYST-TLENG(I-000010) SYST-SFOFF(I-000010)
  60. * SYST-WILLI(I-000010) SYST-LILLI(I-000010) SYST-SUBRC(I-000010) SYST-FLENG(I-000010) SYST-CUCOL(I-000010)
  61. * SYST-CUROW(I-000010) SYST-LSIND(I-000010) SYST-LISTI(I-000010) SYST-STEPL(I-000010) SYST-TPAGI(I-000010)
  62. * SYST-WINX1(I-000010) SYST-WINY1(I-000010) SYST-WINX2(I-000010) SYST-WINY2(I-000010) SYST-WINCO(I-000010)
  63. * SYST-WINRO(I-000010) SYST-WINDI(I-000010) SYST-SROWS(I-000010) SYST-SCOLS(I-000010) SYST-LOOPC(I-000010)
  64. * SYST-FOLEN(I-000010) SYST-TZONE(I-000010) SYST-DAYST(C-000001) SYST-FTYPE(C-000001) SYST-DEBUG(C-000001)
  65. * SYST-CTYPE(C-000001) SYST-INPUT(C-000001) SYST-LANGU(C-000001) SYST-MODNO(I-000010) SYST-BATCH(C-000001)
  66. * SYST-BINPT(C-000001) SYST-CALLD(C-000001) SYST-DYNNR(C-000004) SYST-DYNGR(C-000004) SYST-NEWPA(C-000001)
  67. * SYST-PRI40(C-000001) SYST-RSTRT(C-000001) SYST-WTITL(C-000001) SYST-CPAGE(I-000010) SYST-DBNAM(C-000020)
  68. * SYST-MANDT(C-000003) SYST-PREFX(C-000003) SYST-FMKEY(C-000003) SYST-PEXPI(N-000001) SYST-PRINI(N-000001)
  69. * SYST-PRIMM(C-000001) SYST-PRREL(C-000001) SYST-PLAYO(C-000005) SYST-PRBIG(C-000001) SYST-PLAYP(C-000001)
  70. * SYST-PRNEW(C-000001) SYST-PRLOG(C-000001) SYST-PDEST(C-000004) SYST-PLIST(C-000012) SYST-PAUTH(N-000002)
  71. * SYST-PRDSN(C-000006) SYST-PNWPA(C-000001) SYST-CALLR(C-000008) SYST-REPI2(C-000040) SYST-RTITL(C-000070)
  72. * SYST-PRREC(C-000012) SYST-PRTXT(C-000068) SYST-PRABT(C-000012) SYST-LPASS(C-000004) SYST-NRPAG(C-000001)
  73. * SYST-PAART(C-000016) SYST-PRCOP(N-000003) SYST-BATZS(C-000001) SYST-BSPLD(C-000001) SYST-BREP4(C-000004)
  74. * SYST-BATZO(C-000001) SYST-BATZD(C-000001) SYST-BATZW(C-000001) SYST-BATZM(C-000001) SYST-CTABL(C-000004)
  75. * SYST-DBSYS(C-000010) SYST-DCSYS(C-000004) SYST-MACDB(C-000004) SYST-SYSID(C-000008) SYST-OPSYS(C-000010)
  76. * SYST-PFKEY(C-000020) SYST-SAPRL(C-000004) SYST-TCODE(C-000020) SYST-UCOMM(C-000070) SYST-CFWAE(C-000005)
  77. * SYST-CHWAE(C-000005) SYST-SPONO(N-000010) SYST-SPONR(N-000010) SYST-WAERS(C-000005) SYST-CDATE(D-000008)
  78. * SYST-DATUM(D-000008) SYST-SLSET(C-000014) SYST-SUBCS(C-000001) SYST-GROUP(C-000001) SYST-FFILE(C-000008)
  79. * SYST-UZEIT(T-000006) SYST-DSNAM(C-000008) SYST-TABID(C-000008) SYST-TFDSN(C-000008) SYST-UNAME(C-000012)
  80. * SYST-LSTAT(C-000016) SYST-ABCDE(C-000026) SYST-MARKY(C-000001) SYST-SFNAM(C-000030) SYST-TNAME(C-000030)
  81. * SYST-MSGLI(C-000060) SYST-TITLE(C-000070) SYST-ENTRY(C-000072) SYST-LISEL(C-000255) SYST-ULINE(C-000255)
  82. * SYST-XCODE(C-000070) SYST-CPROG(C-000040) SYST-XPROG(C-000040) SYST-XFORM(C-000030) SYST-LDBPG(C-000040)
  83. * SYST-TVAR0(C-000020) SYST-TVAR1(C-000020) SYST-TVAR2(C-000020) SYST-TVAR3(C-000020) SYST-TVAR4(C-000020)
  84. * SYST-TVAR5(C-000020) SYST-TVAR6(C-000020) SYST-TVAR7(C-000020) SYST-TVAR8(C-000020) SYST-TVAR9(C-000020)
  85. * SYST-MSGID(C-000020) SYST-MSGTY(C-000001) SYST-MSGNO(N-000003) SYST-MSGV1(C-000050) SYST-MSGV2(C-000050)
  86. * SYST-MSGV3(C-000050) SYST-MSGV4(C-000050) SYST-ONCOM(C-000001) SYST-VLINE(C-000001) SYST-WINSL(C-000079)
  87. * SYST-STACO(I-000010) SYST-STARO(I-000010) SYST-DATAR(C-000001) SYST-HOST(C-000032) SYST-LOCDB(C-000001)
  88. * SYST-LOCOP(C-000001) SYST-DATLO(D-000008) SYST-TIMLO(T-000006) SYST-ZONLO(C-000006)