Hiding the code

Hi All,
Can anyone tell me how to hide the code of a report from the user? I know that if I goto the program's attributes and change its STATUS to SYSTEM PROGRAM, it cannot be debugged, but I have been told that tweaking the debugger will still allow me to debug the application.
Please help,
Regards,
Madhur

Hi,
Pl find the sample program.
Hiding ABAP Source code
PROGRAM ZHIDE NO STANDARD PAGE HEADING.
This program hides any ABAP's source code and protects it with a
password in this source code.  So the first candidate to be hidden
should be ZHIDE itself.
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
unhides it.
To execute this program, change the user name and password in this
source code first.
SELECTION-SCREEN BEGIN OF BLOCK BLOCK.
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.
PARAMETERS: PROGRAM(8).
SELECTION-SCREEN END OF BLOCK BLOCK.
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 passsword check
  IF SY-UNAME <> 'SAP' OR PASSWORD <> 'PASSWORD'.
    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(8), I TYPE I, J TYPE I.
  NEW_NAME = PROGRAM.
  DO 8 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 in d010s (already hidden)
  DATA: F5(8).
  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.
  ELSE.
There is already a hidden program there, unhide it
    EXEC SQL.
      UPDATE D010S SET PROG = :PROGRAM WHERE PROG = :NEW_NAME
    ENDEXEC.
  ENDIF.
end of program

Similar Messages

  • Need help in creating a view with Encryption for hiding the code used by the multiple users

    Hi,
    Can anyone help me out in creating view with encryption data to hide the stored procedure logic with other users.
    I have create a stored procedure with encryted view but while running this manually temporary views are getting created, therefore the problem is if there are 500 entries then 500 temp views will get created.
    Any solution to aviod creating temporary views, please refer my code below
    USE [etl_validation]
    GO
    /****** Object:  StoredProcedure [dbo].[Pr_DBAccess_mod]    Script Date: 05/23/2014 12:53:22 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[Pr_DBAccess_mod](@ETL_CONFIG_ID INT)
    AS
    BEGIN
    DECLARE @openquery NVARCHAR(MAX),
     @DATABASENAME NVARCHAR(100),
     @HIERNAME NVARCHAR(100),
     @TABLENAME NVARCHAR(100),
     @SERVERTYPE NVARCHAR(100),
     @SERVERNAME NVARCHAR(100),
     @USERNAME NVARCHAR(100),
     @PASSWORD NVARCHAR(100),
     @ETL_CONFIG_IDN NVARCHAR(100);
     SET @ETL_CONFIG_IDN=CAST(@ETL_CONFIG_ID AS NVARCHAR);
     SET @TABLENAME='Department';
     SET @SERVERTYPE='SQL';
     SET @SERVERNAME ='192.168.31.176';
     SET @DATABASENAME='AdventureWorks2008R2';
     SET @HIERNAME = 'HumanResources';
     IF @SERVERTYPE='SQL'
     BEGIN
    /*SET @openquery= 'SELECT * INTO ##TestTable
                     FROM OPENROWSET(''SQLNCLI'',''server=192.168.31.176;Trusted_Connection=yes;'','''+@query+''')'
    SET @openquery=  'CREATE VIEW '+@TABLENAME+@ETL_CONFIG_IDN+
                     ' WITH ENCRYPTION AS SELECT * FROM OPENROWSET(''SQLNCLI'',''SERVER='+@SERVERNAME+';TRUSTED_CONNECTION=YES;'',''SELECT * FROM '+@DATABASENAME+'.'+@HIERNAME+'.'+@TABLENAME+''')'
    SELECT @openquery
    END
    EXECUTE sp_executesql @openquery
    END

    Hi aa_rif,
    According to your description and code message, you execute the sp_executesql statement in your stored procedure, it indeed create many views with a tablename and ETL_CONFIG_ID named. If you need not to use these temporary views, you can delete them when
    it contains the tablename in one view name.  
    In addition, if you want to create view with encryption in SQL Server, you can use directly the ENCRYPTION option to encrypt the T-SQL of a view in create view commands, for more information, see:
    http://learnsqlserver.in/4/Create-View-With-Encryption.aspx. if not, you can descript more detail about requriements, so that more forum members can involve into the thread and help you
    out. 
    Regards,
    Sofiya Li
    Sofiya Li
    TechNet Community Support

  • TS1292 the code on the card came of and i cant read the code.

    as i was scratching the label hiding the code a few numbers or letters came off with it.

    Welcome to the Apple Community.
    Did you follow the advice on that page and contact support if all the other measures didn't help.

  • Retrieve the hided source code

    hi all.
           I have hided the source code of a program by appending the program to a internal table and inserting   '*@#@@[SAP]'  to the internal table at in dex one its working well. My task is to retrieve the hided source code of the program in the same name itself...

    Hi,
    It is not possible to make any changes; you have to delete and recreate the program from scratch.
    I hope you saved a backup copy of the source code, otherwise you could re-import the transport requests that contain your source code, a kind of versione restore.
    Regards,
    Andrea

  • Hiding the source code

    Hi,
    I want to hide my source code and allow the users to execute the code, make changes in the selection screen. Please suggest me technique to do the same.

    Hi Amritha,
    As pr@t  said create a Transaction code using SE93 for your program.
    And ask you basis consultant not to give autharization to end user Tcodes SE38 or SA38 .
    If your user wish to run the program he can run it directly giving the Tcode in command window
    Warm Regards

  • Hiding the column data. What is the point of DBMS_CRYPTO package?

    DB version:10g R2
    A requirement has come where we need to hide some columns' data from end users.
    Trasparent Data Encryption feature wouldn't do the trick as it encrypts the data only at the storage level not at user level.
    I've seen PL/SQL codes using DBMS_CRYPTO which encrypts and decrypts input strings like the code mentioned in
    Re: Need some hints on using dbms_crypto
    What is point of these PL/SQL codes?
    They can only be used to create functions which will be called in VIEWS. That is the only use of DBMS_CRYPTO package. Right?
    Do you guys have any suggestion in hiding/obfuscating column data? Is creating a view my only option?

    One solution to "hide" data (columns or rows) from end users is simply to create a view.
    The end user will be granted only access to the view and not to the base tables behind the view. The view will only expose those cloumns and rows that the end users is supposed to see.
    Of cause this has nothing to do with encryption. But I don't see anything in your business requirements that needs to use encryption methods.

  • Hiding the header of a group using dynamic programming

    Hi,
    I had a requirement where we needed to place a border around the UI elements. For this purpose i had used a group UI element. But the group UI element by default has an attached header (Setting the visible property of header to "None" only disables the header text). Hence as per the suggestions in the following thread i had set the caption dynamically (in WDDOMODIFYVIEW) which removed the group header completely.
    Hiding header of a group
    Now, when i was browsing through the forum i came across the reply by Thomas in the below thread,
    Setting value in cookie using ABAP code
    //if someone does post a "hack" or "illegal" way of setting the client cookie directly from Web Dynpro; this would not be supported by SAP and could stop working at any time.//
    Truly said, it might stop working at anytime. This might apply to my case as well as i am setting the caption dynamically. I am not sure is the right allowed way or if i am using one of the "illegal" ways (which would stop working at some SP levels).
    Can someone clarify if hiding the header of a group using the above method is allowed?
    Regards,
    Prasath N

    The usage of WDDOMODIFY method for dynamically altering the view (e.g. hiding or showing UI elements) is perfectly "legal".
    The manipulation of a cookie by the developer is not intended inside the Web Dynpro framework.
    These are two completely unrelated issues, as per my understanding Thomas warned about the second.
    I think you're mixing things up.

  • Enhanced Field is Blank - Debug with RSA3 - Unable to see the code in Exit

    Hi all,
        I have created a View on a table and created the Generic Extractor on that View and enhanced the Extract Structure to add a Amount field along with Currency Key. I have added the ABAP code to fill that new field. The same code has worked fine in Sandbox and copied the same into Dev. Everything worked fine and it populated the data into that enhanced field in Sandbox, but something is wrong in Dev. I have set the Break-Point after my Generic Extractor in the Exit's Include member ZXRSAU01 and tried to debug in RSA3, but it is not going there. Some how it is not recognizing the code in the User Exit. I am doing the same that I have done in the sandbox. Only initial values (0.00) are there in that field. That field is un-hided.
       What could be the problem, please ?
      Thanks in advance.
    Regards,
    Venkat.

    HI Venkat,
    Look at ur Datasource is Trancsaction Data or Materdata Attributes/Text.If it T.Data use Incled ZXRSAU01 or For Master Data attributes use ZXRSAU02 or Text
    ZXRSAU03.
    And Observe the Exit is Active or not and Debug the code once.

  • Hiding the Mouse on Start of Movie

    Hello All,
    I have a flash program that runs on a PC that is connected to a TV. In case it helps at all, the PC is running OpenSuSE 12.1/KDE 4.
    The PC is acting as a kiosk like device where no user is actually sitting at the PC doing stuff. If we ever need to do anything with it
    we do it remotley using something like VNC or Remote Desktop or SSH, etc....
    So what happens is when the PC is powered on it boots up and automatically logs in the default user. Then I set Firefox to start
    automatically on boot and I set it's Homepage to the URL where the swf file lives (*which is located on another Server). Also, Firefox
    automatically goes into Fullscreen mode mode using the Firefox Plugin "Full Fulscreen".
    The issue is that, after the PC boots up and Firefox starts and the Flash movie begins playing, I can see the Mouse pointer sitting in the
    middle of the screen which does NOT go away. So I found some code online that will hide the mouse after 'n' seconds. But the problem
    is that when the Flash movie starts the mouse will NOT disappear after 'n' seconds. It is possible to get it to disappear, but in order to do
    so I would have to tap the mouse so that it moves even the slightest, then after it stops moving it then disappears after 'n' seconds...
    Since there really isn't any person who starts the movie manually, or since no one sitting in front of it with a mouse in their hand this won't
    do what I wanted it to do....
    Here is what I have so far in order to hide the mouse:
    // Added this line after testing the code below. But still didn't hide the pointer when the movie was started
    //Mouse.hide();                   // Hide the mouse automatically when started (*no time limit for this one)
    var timeLimit:int = 3;         // Integer to hold what the Time Limit will be
    // Add the EventListener for when the Mouse is moved:
    stage.addEventListener(MouseEvent.MOUSE_MOVE, onMove);
    // Create a Timer Object and multiply timeLimit by 1000 to get seconds:
    var timer:Timer = new Timer(timeLimit * 1000);
    // Add the EventListener for the Timer:
    timer.addEventListener(TimerEvent.TIMER, onInactiveMouse);
    // Function "onMove()":
    //        *This will show the Mouse, stop the timer, then restart the timer...
    function onMove(event:MouseEvent):void {
            trace("In onMove() --- Showing the Mouse Now...");
            Mouse.show();
            timer.stop();
            timer.start();
    // Function "onInactiveMouse()":
    //        *This will hide the Mouse when the TimeLimit has been reached...
    function onInactiveMouse(event:TimerEvent):void {
            trace("In onInactiveMouse() --- Hiding the Mouse Now...");
            Mouse.hide();
    So I guess my question is, is there a way to hide the mouse without a Human having to intervene and move the mouse pointer?
    Also, I don't know if it was just some weird thing that happens, but say the movie is up and I move the mouse so it then disappears after n seconds.
    Then the Frame changes and under where the mouse is hiding a TextField appears (*NOT an input TextField, just a Dynamic Text) suddenly the mouse
    reappears, but it appears as the text selection pointer (*i.e. the one that looks like an Upper-Case "i"). And it won't disappear unless I move the pointer
    again, Strange..!  I guess I could fix this by changing all my TextFields to be NOT selectable, but I was just curious if anyone else had experienced this?
    Anyway, any thoughts/suggestions would be greatly appreciated!
    Thanks in Advance,
    Matt

    I decided which way I'm going to go with this and it seems to be doing the trick
    I'm using this C/C++ program I found online, which I eneded up tweeking a little bit since it was a pretty old code so some things were
    a bit out dated like the libraries, and a few other things. It uses the "X11" library in order to access elements of the screen including input
    devices like the mouse and keyboard.
    You simply execute the command on the CLI and pass it an X and Y Coordinate. Then once executed it will simply move the mouse to those
    coordniates specified, and apparently emulate a Right-Click from the mouse. I'm not exactly sure if it will actually do the right-click, but for my
    purposes just moving the mouse ever so slightly will be enough to bring the Flash Movie inside Firefox into focus.
    I then created a simple Shell Script which will run on boot up and will sit in a loop checking if Firefox is running, if it is found running, then it waits
    about 10 seconds or so, then executes the "clickMouse" program and moves the mouse to the specified coordinates. I tested it once or twice
    and it seems to be doing the trick.
    Here is the uncompilied code for the C program:
         *Once compilied you execute the program and pass it an X and Y Coordinate like this -->   "./clickMouse 1000 500"
    #include <X11/Xlib.h>
    #include<stdio.h>
    #include<unistd.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    #include <X11/Xlib.h>
    #include <X11/Xutil.h>
    void mouseClick(int button)
        Display *display = XOpenDisplay(NULL);
        XEvent event;
        if(display == NULL)
            fprintf(stderr, "Errore nell'apertura del Display !!!\n");
            exit(EXIT_FAILURE);
        memset(&event, 0x00, sizeof(event));
        event.type = ButtonPress;
        event.xbutton.button = button;
        event.xbutton.same_screen = True;
        XQueryPointer(display, RootWindow(display, DefaultScreen(display)), &event.xbutton.root, &event.xbutton.window, &event.xbutton.x_root, &event.xbutton.y_root, &event.xbutton.x, &event.xbutton.y, &event.xbutton.state);
        event.xbutton.subwindow = event.xbutton.window;
        while(event.xbutton.subwindow)
            event.xbutton.window = event.xbutton.subwindow;
            XQueryPointer(display, event.xbutton.window, &event.xbutton.root, &event.xbutton.subwindow, &event.xbutton.x_root, &event.xbutton.y_root, &event.xbutton.x, &event.xbutton.y, &event.xbutton.state);
        if(XSendEvent(display, PointerWindow, True, 0xfff, &event) == 0) fprintf(stderr, "Error\n");
        XFlush(display);
        usleep(100000);
        event.type = ButtonRelease;
        event.xbutton.state = 0x100;
        if(XSendEvent(display, PointerWindow, True, 0xfff, &event) == 0) fprintf(stderr, "Error\n");
        XFlush(display);
        XCloseDisplay(display);
    int main(int argc,char * argv[])
         int i=0;
         int x , y;
         x=atoi(argv[1]);
         y=atoi(argv[2]);
         Display *display = XOpenDisplay(0)
         Window root = DefaultRootWindow(display);
         XWarpPointer(display, None, root, 0, 0, 0, 0, x, y);
         mouseClick(Button1);
         XFlush(display);
         XCloseDisplay(display);
         return 0;
    I'm not too proficient in C, a little bit more in C++, so I didn't realy change much from the original code except add a "main()" section to this one in order
    to execute the "mouseClick()" function.
    F.Y.I.
    I kept the Actionscript code for the Mouse.hide() stuff, so this C program works with the Mouse.hide() code...
    Thanks Again,
    Matt

  • How can i print all the contect of the code in sapscript window ? ?

    how can i print all the contect of the code in sapscript window ? ?

    Hi,
    Do you mean that you want to print the ABAP code to SAPscrip form ?
    Svetlin

  • Am i the only one who when trying to enter the code for creative cloud activation ?

    I give up,i have been trying to activate a 3 month subscription for CS6 from Staples and every time i try the code it will not work.  I have used the chat live and spent about 3 hours already going nowhere.  I do not like talking on the phone to some help desk overseas and the only thing i think left to do is to return the junk.

    I tried all that and even took a picture of the numbers and blew them up so a blind person could read them and had 3 others read them off.  A simple way to fix the problem is get someone on Adobes staff to find a font that most people can read from whatever product the stick it to.
    John McDonough
    Date: Wed, 1 Aug 2012 18:33:58 -0600
    From: [email protected]
    To: [email protected]
    Subject: Am i the only one who when trying to enter the code for creative cloud activation ?
        Re: Am i the only one who when trying to enter the code for creative cloud activation ?
        created by David__B in Adobe Creative Cloud - View the full discussion
    Hey John,
    Not sure if it helps or not, but I know sometimes with codes like that its really hard to tell certain characters apart, O - like in Oscar versus 0 - number and number 1 versus lowercase L like in Lima.
    Might test entering it both ways if you have any suspect characters?
    -Dave
         Replies to this message go to everyone subscribed to this thread, not directly to the person who posted the message. To post a reply, either reply to this email or visit the message page: http://forums.adobe.com/message/4592955#4592955
         To unsubscribe from this thread, please visit the message page at http://forums.adobe.com/message/4592955#4592955. In the Actions box on the right, click the Stop Email Notifications link.
         Start a new discussion in Adobe Creative Cloud by email or at Adobe Forums
      For more information about maintaining your forum email notifications please go to http://forums.adobe.com/message/2936746#2936746.

  • HT1539 iTunes says the code is invalid when it clearly is valid, what do I do? How do I get my digital copy??

    I bought The Dark Knight a few years ago, I tried to download the digital copy before but I gave up. Now that I have my iPhone, I'm determined to get all the digital copies I'm entitled to! So I'm here to find out how to remedy the situation. iTunes says the code is invalid when it clearly should work. I didn't buy the DVD off the street or anything. iTunes doesn't give me any further options, so what can I do? Anybody have any advice, please?

    Yeah, I actually did get it. I had to send an e-mail to Warner Bros. with all available info and my issue and they sent me another code that actually worked.
    So I actually just had to do what varjak paw suggested, it just took a few days (maybe a week) and I forgot to get back to you guys. So, belated but all the same thank you, varjak paw!

  • Can not view the code for views, triggers or table definition

    Hello Gurus,
    I can not see the code for any of the triggers, views, tables etc. in sql developer. For instance a view code will be
    "create or replace" and then nothing, I could see the code in the past.
    When clicking on SQL tab for table I get following errors
    1. Ora-00904 Invalid Column name
    2. Ora-31600: invalid input value emit_schema for parameter name in function SET_TRANSFORM_PARAMORA-06512: at SYs.DBMS_SYS_ERROR............................
    please advice.
    Thanks

    Sqldev was only certified starting from 9.0.2, so it's possible that's the culprit. The latest update in the certification document even omits 9i entirely.
    Did it start happening after upgrading sqldev? What version are you on?
    K.

  • I purchased a blu-ray of The Hunger Games and it came with a code for a digital copy. I redeemed the code on iTunes but the download has been continuing for 2 weeks now and it never finishes! The time just keeps going up. Never an issue in the past.

    I purchased the blu-ray of The Hunger Games and it came with a code to redeem for a digital copy. I redeemed the code in iTunes and the movie downloaded fine, but the "EXTRAS" have been downloading for 2 weeks! Everytime I launch iTunes it starts the download again and the counter keeps going UP, at one point it said it would take 3 weeks. I have paused and restarted the download, I have deleted the download, nothing works to finish or stop this download! Does anyone have a clue what's up?

    ps when syncing it jumps through steps 1 - 4 real fast, i seem to remeber iphone showing the number of tracks transferring and names, but i see nothing? then it sits on 5 saying "waiting for changes to be applied"

  • I have Apple tv and Im trying to activate Netflix on Air play.I need a code but the code doesnt show when I go to Air Play on the apple screen..Why doesnt it show. Also when I enter my id and password for itunes it wont accept it. Need help...

    I just hooked up my Apple tv and im having problems already..When i enter my ID and Password for itunes it says that it is not valid,yet I double checked and its correct. Also, when I try to find the code to connect my Net flix account in Air Play the icon for the code is not there.I have wireless internet connection and it says Im connected so thats not the problem. Im ready to return my Apple tv for another product..Does anyone have a fix for this problem??

    Click here and request assistance.
    (91679)

Maybe you are looking for

  • Combination of bar and line in chart(graph) of Crystal Report XI

    Hi, I found the way to combine line and bar in a chart(graph) but I am getting rectangle marker where bar and line are crossed. Our user asked to remove the rectangle marker. Please let me know how to remove the rectangle marker. Thanks and Regards,

  • How do I get old library onto my new computer ?

    I've just bought a new computer and need to know how to download my songs etc onto the new computer. I turned on home sharing but not sure how that works. Any help out there ? Thanks

  • Song stops after a few seconds only

    I've got this one song on my iPod Classic 80GB (roughly 2 months old) I have an issue with. I only noticed it today for the very first time. Upon starting the song, it takes approximately 14 seconds, then the song is stopped and the iPod automaticall

  • PARM error message on opening CS6 software

    I have a japanese version of CS6, i operate the software on Mac OSX lion english operating system. Every other application including Photoshop and InDesign work ok. When I open illustrator i get a PARM error. How can this be resolved?

  • Unable to activate any tool except hand tool

    I can choose any tool either by menu or by shortcut, but only the hand icon remains visible and active.  Reopen Photoshop and rebooting mac doesn't help, only solution I have found is: Repair Disk Permissions.  Would really like a simpler/faster solu