‎2007 Apr 25 5:15 PM
Hi,
Can anyone give me a guidance how to hide abap source code.
Thx in advance.
‎2007 Apr 25 5:18 PM
‎2007 Apr 25 5:24 PM
here's a quick 1-2-3 Go!
1. Take a hardcopy of your source code.
2. Send it to Santa@NorthPole.com for 'COLD' Storage.
3. Delete your Program
And I bet your souce code is hidden once & for all..
~Suresh
‎2007 Apr 25 5:34 PM
‎2007 Apr 25 9:44 PM
Hi,
Check the following program:
report zsam_hide no standard page heading.
************************************************************************
This program hides any ABAP's source code and protects it with a
password in this source code.
*
After hiding, you can still run the abap (the load version is intact)
but it cannot be displayed, edited, traced, transported or generated.
*
If the ABAP is not hidden, the program hides it, if it is hidden, it
unhide it.
Remember to hide this program first!
************************************************************************
selection-screen begin of block block.
parameters: program(30) obligatory.
selection-screen begin of line.
selection-screen comment 1(8) pwd.
selection-screen position 35.
parameters: password(8) modif id aaa.
selection-screen end of line.
selection-screen end of block block.
*
data: message(60) type c.
*
at selection-screen output.
loop at screen.
if screen-group1 = 'AAA'.
screen-invisible = '1'.
modify screen.
endif.
endloop.
*
initialization.
pwd = 'Password'.
*
start-of-selection.
tables: trdir.
User name and password check
if password <> 'ABCDEFG'.
write: / 'Wrong password'.
exit.
endif.
SAP owned?
if not program cp 'Z' and not program cp 'Y'.
write: / 'Do not hide original SAP programs!'.
exit.
endif.
Exists?
select single * from trdir where name = program.
if sy-subrc <> 0.
write: / 'Program does not exists!'.
exit.
endif.
Does it have a current generated version?
data: f1 type d, f3 type d.
data: f2 type t, f4 type t.
EXEC SQL.
SELECT UDAT, UTIME, SDAT, STIME INTO :F1, :F2, :F3, :F4 FROM D010LINF
WHERE PROG = :PROGRAM
ENDEXEC.
if f1 < f3 or ( f1 = f3 and f2 < f4 ).
write: / 'The program has no recent generated version!'.
exit.
endif.
Compose a new program name
data: new_name(30), i type i, j type i.
new_name = program.
do 30 times.
i = sy-index - 1.
new_name+i(1) = '_'.
Search for acceptable program name variations
j = 0.
select * from trdir where name like new_name.
j = j + 1.
endselect.
if j = 1.
exit.
endif.
new_name = program.
enddo.
Cannot generate appropriate program name
if j > 1.
write: / 'Cannot generate appropriate program name'.
exit.
endif.
Check if it is already hidden
data: f5(30).
EXEC SQL.
SELECT PROG INTO :F5 FROM D010S WHERE PROG = :NEW_NAME
ENDEXEC.
if f5 is initial.
There is no such hidden program, hide it
EXEC SQL.
UPDATE D010S SET PROG = :NEW_NAME WHERE PROG = :PROGRAM
ENDEXEC.
concatenate 'Program' :program 'was hidden.'
into message separated by space.
else.
There is already a hidden program there, unhide it
EXEC SQL.
UPDATE D010S SET PROG = :PROGRAM WHERE PROG = :NEW_NAME
ENDEXEC.
concatenate 'Program' :program 'was restored.'
into message separated by space.
endif.
write message.
end of program
Regards,
Bhaskar