Securing ABAP objects, from viewers and from change

I would like to transport an ABAP program, but not allow my customers to see or change its logic.
Is this possible?

Hi Dean,
I think the final answer to your question is NO it can't be done.
As SAP is quite like an open source system and all the coding is stored anywhere in the database you can't hide it if someone knows a little bit where and how to look for it. So SAP uses the possibility of hiding programs by special naming conventions but these programs can be accessed by statements like load or read report or you just start the debugger while they are running and read the code while it is processed (at least until today we found everything we wanted ;o)).
Of course it is posible to make every code more difficult to understand by deleting all comments and naming varialbles v1, v2, ... You could also use excessive dynamical programming, trmac includes or even runtime code generation and execution to make things nearly impossible to understand but this kind of code should never pass the tests of a customer.
rgds.
Roman

Similar Messages

  • Craete a simple abap object to select data from a table and display

    Hi,
    I know the concept of abap objects but i never worked on it,
    can any one give me simple example of how to create an abap object to display data from mara table.also please send me documents or info regd ABAP OBJECTS.
    I want to write a simple report in terms of abap object
    Regards,
    Sowjanya

    hi,
    Here is hte sample program in se38.
    REPORT ZFGLI00003
    *-- Include for data declarations and performs
    include ZFGLI00003_f01.
    *--Include for Classes and their Implementation
    include ZFGLI00003_cl.
    *                selection-screen                                      *
    *-- Selection Values : Block1
    selection-screen begin of block b1 with frame title text-001.
    *--         Ledger
    parameters: p_rldnr  like zzprodnt-rldnr default 'NP'.
    *--         Fiscal year
    parameters: p_ryear  like zzprodnt-ryear.
    *--         Period(month)
    parameters: p_rpmax  like zzprodnt-rpmax.
    selection-screen end of block b1.
    *-- Selection Values : Block2
    selection-screen begin of block b2 with frame title text-002.
    *--              Company ID's
    select-options : s_glcomp  for ZZPRODNT-ROBUKRS .
    *--              Profit Center
    select-options : s_prctr   for ZZPRODNT-RPRCTR .
    *--              Product Assignment
    select-options : s_prasn   for ZZPRODNT-RZZWWZ01 .
    *--              Corporate Brand
    select-options : s_crpbd   for ZZPRODNT-RZZWWZ05 .
    selection-screen end of block b2.
    *-- Selection Values : Block3  Download Options
    selection-screen begin of block b3 with frame title text-003.
    parameters : p_local radiobutton group 1,
                 p_unix  radiobutton group 1,
                 p_path  like rlgrap-filename obligatory
                         default 'C:P20Z_Formatted.txt'(009).
    selection-screen end of block b3.
    *            At Selection-Selection on value-request  for file path    *
    at selection-screen on value-request for p_path.
      if p_unix <> 'X'.
    *-- Getting F4 help for output file
        perform get_filename changing p_path.
      else.
        message i999(zi) with
              'Sorry !! Function not available for UNIX file.'(i01).
      endif.
    *-- At selection screen validations
    at selection-screen on p_path.
      if p_unix <> 'X'.
    *-- Validate local file
        if p_path+1(2) <> ':'.
          message e999(zi) with 'Invalid file path'(006).
        endif.
      else.
    *-- Validate unix file
        if p_path+0(1) <> '/'.
          message e999(zi) with 'Invalid file path'(006).
        endif.
      endif.
    *                   Initialization                                    *
    initialization.
    *-- Initialize the period
      perform init_period changing p_rpmax p_ryear.
    *                    start-of-selection                               *
    start-of-selection.
      data : o_tm1_intf type ref to lcl_tm1_intf.
      create object o_tm1_intf.
    *-- Extract the data from ZZPRODNT
      call method o_tm1_intf->get_data exporting e_rldnr  = p_rldnr
                                                 e_ryear  = p_ryear
                                                 e_rpmax  = p_rpmax
                                                 e_glcomp = s_glcomp[]
                                                 e_prctr  = s_prctr[]
                                                 e_prasn  = s_prasn[]
                                                 e_crpbd  = s_crpbd[]
                                       importing i_subrc  = v_subrc.
    *   INCLUDE ZFGLI00003_CL                                              *
    *       CLASS lcl_tm1_intf IMPLEMENTATION
    class lcl_tm1_intf definition.
      public section.
    *-- Data Declaration
        data  : lv_date     type sy-datum,       "Date
                lv_time     type sy-uzeit,       "Time
                lv_count    type i,              "Count for total records
                lv_acsline  type zfgl014-acsline,"ACS line code
                lv_amt_curr type zzprodnt-kslvt, "current month amount
                lv_amt_ytd  type zzprodnt-kslvt, "YTD Amount
                lv_check,                        "check if any record is
                                                 "downloaded
                lv_msg(100),                     "message
                lv_count_s(5)  ,                 "Count for total(char)
                lv_amt_curr_s(23),               "Current month amount(char)
                lv_amt_ytd_s(23),                "YTD Amount(char)
                lv_ksl_pd(17),                   "KSLxx
                lv_period(2) type n.             "month(period)
    *-- Types Declaration
        types : ty_rldnr type zzprodnt-rldnr,    "Type for Ledger
                ty_ryear type zzprodnt-ryear,    "Type for Fiscal Year
                ty_rpmax type zzprodnt-rpmax,    "Type for Period
                ty_glcomp type range of char4,   "Type for company selection
                ty_prctr type range of char10,   "Type for profit center sel
                ty_prasn type range of char6,    "Type for prod assignmt sel
                ty_crpbd type range of char4,    "Type for Corp Brand sel
                begin of ty_file,                "Type for File
                  line(150),
                end of ty_file,
                begin of ty_ZZPRODNT,            "Type-ledger summary table
                  company       type OBUKR,      "Company
                  gl_acct       type RACCT,      "GL Account
                  cst_ctr       type KOSTL,      "Cost Center
                  prt_ctr       type PRCTR,      "Profit Center
                  rfarea        type FKBER,      "Functional Area
                  wbs_ele       type PS_POSID,   "WBS Element
                  prd_***       type RKEG_WWZ01, "Product Assignment
                  corp_bd       type RKEG_WWZ05, "Corporate Brand
                  ksl01         type KSLXX9,     "Total of transactions - 01
                  ksl02         type KSLXX9,     "Total of transactions - 02
                  ksl03         type KSLXX9,     "Total of transactions - 03
                  ksl04         type KSLXX9,     "Total of transactions - 04
                  ksl05         type KSLXX9,     "Total of transactions - 05
                  ksl06         type KSLXX9,     "Total of transactions - 06
                  ksl07         type KSLXX9,     "Total of transactions - 07
                  ksl08         type KSLXX9,     "Total of transactions - 08
                  ksl09         type KSLXX9,     "Total of transactions - 09
                  ksl10         type KSLXX9,     "Total of transactions - 10
                  ksl11         type KSLXX9,     "Total of transactions - 11
                  ksl12         type KSLXX9,     "Total of transactions - 12
                  ksl13         type KSLXX9,     "Total of transactions - 13
                  ksl14         type KSLXX9,     "Total of transactions - 14
                  ksl15         type KSLXX9,     "Total of transactions - 15
                  ksl16         type KSLXX9,     "Total of transactions - 16
                end of ty_ZZPRODNT.
    *-- Structure Declaration
    *           Structure for final file
        data  : x_file         type ty_file,
    *           Structure for Product Ledger Summary table
                x_ZZPRODNT     type ty_ZZPRODNT,
    *           Structure for Functional Area to ACS line mapping
                x_zfgl014      type zfgl014.
    *-- Internal Table Declaration
    *           Table for records of Product Ledger Summary table
        data  : it_ZZPRODNT     type table of ty_ZZPRODNT,
    *           Table for final file
                it_file         type table of ty_file,
    *           Table for Functional Area to ACS line mapping
                it_zfgl014      type table of zfgl014.
    *-- Method Declaration.
        methods : get_data      importing e_rldnr  type ty_rldnr
                                          e_ryear  type ty_ryear
                                          e_rpmax  type ty_rpmax
                                          e_glcomp type ty_glcomp
                                          e_prctr  type ty_prctr
                                          e_prasn  type ty_prasn
                                          e_crpbd  type ty_crpbd
                                exporting i_subrc type sy-subrc.
    endclass.                    "lcl_tm1_intf DEFINITION
    *       CLASS lcl_tm1_intf IMPLEMENTATION
    class lcl_tm1_intf implementation.
    *-- Method get_data selects the North American Product Ledger Summary
    *   table data and then maps the Functional Area to ACS line to get
    *   the ACS line code
      method get_data.
    *-- Local Variable
        DATA: L_ZZPRODNT TYPE TY_ZZPRODNT.
    *-- Get the data from North American Product Ledger Summary table
        select robukrs
               racct
               rcntr
               rprctr
               rfarea
               rzzwbs_el
               rzzwwz01
               rzzwwz05
               ksl01
               ksl02
               ksl03
               ksl04
               ksl05
               ksl06
               ksl07
               ksl08
               ksl09
               ksl10
               ksl11
               ksl12
               ksl13
               ksl14
               ksl15
               ksl16
          from zzprodnt
          into table it_ZZPRODNT
         where rldnr    = e_rldnr
           and ryear    = e_ryear
           and rpmax    = e_rpmax
           and ROBUKRS  in e_glcomp
           and RPRCTR   in e_prctr
           and RZZWWZ01 in e_prasn
           and RZZWWZ05 in e_crpbd.
        if sy-subrc = 0.
          loop at it_ZZPRODNT into l_zzprodnt.
            condense l_ZZPRODNT-rfarea no-gaps.
            if l_ZZPRODNT-rfarea is initial.
              delete it_ZZPRODNT.
            endif.
          endloop.
    *-- Get the Functional Area to ACS line code mapping data
          select *
            from zfgl014
            into table it_zfgl014
             for all entries in it_ZZPRODNT
           where fkber = it_ZZPRODNT-rfarea .
          if sy-subrc = 0.
          endif.
        endif.
        i_subrc = sy-subrc.
      endmethod.                    "get_data
    endclass.                    "lcl_tm1_intf IMPLEMENTATION
    *   INCLUDE ZFGLI00003_F01                                             *
    *                             Table
    tables : zzprodnt.
    *                          Data Declaration
    data : v_subrc type sy-subrc.
    *&      Form  get_filename
    *  Description : This subroutine is used for F4 Prompting
    form get_filename changing p_path like rlgrap-filename.
    *-- Local variables
      data : lv_file  like ibipparms-path, "Local file for upload/download
             lv_repid like syst-cprog,     "ABAP program, caller in external
                                           "procedures
             lv_dynnr type syst-dynnr.     "Current screen No
      lv_repid = syst-cprog.
      lv_dynnr = syst-dynnr.
    *-- Function module used for F4 help
      call function 'F4_FILENAME'
           exporting
                program_name  = lv_repid
                dynpro_number = lv_dynnr
           importing
                file_name     = lv_file.
      move lv_file to p_path.
    endform.                    " get_filename
    *&      Form  init_period
    FORM init_period changing p_rpmax p_ryear.
      if sy-datum+4(2) = 01.
        p_rpmax = 12.
        p_ryear = sy-datum+0(4) - 1.
      else.
        p_rpmax = sy-datum+4(2) - 1.
        p_ryear = sy-datum+0(4).
      endif.
    ENDFORM.                    " init_period
    Hope this helps.
    Regards,
    Richa

  • After updating on my mac - I cannot open various password protected pages - like my WordPress site. I can open them from Safari and from Firefox on my windows pc.

    after updating firefox , it won't allow input of password on various sites - like my wordpress admin page. I can access this page from safari and from firefox on my windows pc.

    I cannot open password protected WordPress pages using Firefox. They open using IE
    If I remove the password protection the page opens correctly in FF.
    I have cleared the FF cache and cookies several times, No change
    I have modified the wp-pass.php file several suggested ways related to the referrer and nothing solves the issue.
    I tried:
    wp_safe_redirect(wp_get_referer());
    to
    wp_safe_redirect(wp_get_referer() . '?');
    NO GOOD
    I tried:<br />
    <br />
    <pre><nowiki>$location = wp_get_referer();
    if ( $location == '' )
    $location = './';
    wp_redirect($location, $status = 302);
    </nowiki></pre>
    NO GOOD
    I have upgraded WordPress to 3.3.1. Still NO GOOD
    I have deactivated, and also removed all plug-ins. Still NO GOOD.
    Anyone have any ideas?
    Why just an FF issue?
    IE no problems

  • Output file from ELM and from Campaign automation

    Hi Experts,
    Can some one let me know how to get an output file from ELM, and from campaign automation?
    Thanks
    Leela

    Hello Uday,
    i suppose if you run the program within a process chain it will be started
    in a background process. All downloads via the SAPGUI onto your local
    PC (or network drive) are not possible in the background because there is no
    connection to your PC during the excecution of the report in the background.
    Try to save the download on an accessible file system on the application server
    and download it from there afterwards.
    Which function module is used to download the data (GUI_DOWNLOAD or the older version WS_DOWNLOAD) in your report?
    To save data on the application server use the ABAP statements
      OPEN DATASET filename FOR OUTPUT    -> for creation of file
      TRANSFER record TO filename                  -> for transfer of one record
      CLOSE DATASET filename                        -> for closing the file
    Regards,
    Ralf Matthies

  • A very good friend of mine dropped her iphone into water and now it is not working.Her husband recently passed away and text messages from him and from well wishers after his decease are feared lost. Is there any way to retrieve them?

    A very good friend of mine dropped her iphone into water and now it is not working.Her husband recently passed away and text messages from him and from well wishers after his decease are feared lost. Is there any way to retrieve them?
    I suggested contacting Compub in Nassau St as the info is priceless and worth the trouble of trying to regain?
    Any thoughts? The poor lady is very distress

    If she has backed up her iPhone she can replace that iPhone and set up the new iPhone from her backup.
    You can put the iPhone that went into water into a plastic baggie with either new silica gel packets (preferred) or raw rice and let it sit for  4 - 5 days. After that time remove the phone and connect it to power for at least a half hour. While it is still connected to power reset it by holding down the power and hold button, wait for the Apple logo then let go of the buttons. Might take several tries. If it revives immediately back it up.

  • HT1689 i have over 5000 songs on my computer. Which is from songs bought from iTunes and from cd. i had all the songs on my iPod. went to download new songs and only 1500 songs are download . please help

    i have over 5000 songs on my computer. Which is from songs bought from iTunes and from cd. i had all the songs on my iPod. went to download new songs and only 1500 songs are download . please help

    Since all of your music came from your computer in the first place, then it should still be there and should be included in your backup copy of your computer.
    " it told me when i pluged hers in 2 ipods could not use the same account"
    This is not true.  You have misunderstood.
    You can sync as many ipods/iphones/ipads as you like to one one library.

  • Text messages from Google and from bank delivered to my Q10 (as T-Mobile confirms) but I can't locate them.

    I don't find text messages from Google and from bank on my q10. private sent text messages are delivered normaly. I can also send text messages to myself. Only Googlee & bank TANs are missing. Any ideas?
    thank you
    lautrivta

    I'm afraid there isn't any good answer and I don't have a case number. I posted above what I told the customer support rep and she managed to get it working again. You may have to try calling again and see if you can get another rep who has some idea of what the 'aggregator' thing is and how to submit a ticket to get it fixed for your line.

  • Can there be an original box of iphone 4s  from a butt end from above and from below with the pictures of apples without the icon of icloud or it is an imitation?

    can there be an original box of iphone 4s  from a butt end from above and from below with the pictures of apples without the icon of icloud or it is an imitation?

    I've not seen a box without that icon, but I can't say with certainty that some, particular from the initial release of the iPhone 4S, didn't come without that icon. If you have doubts, though, I'd suggest you just not buy that device, if that's what you were considering. Buying only from authorized iPhone resellers is almost always going to be safest. There's no way of knowing what you might get if you buy from other sellers. It may be a geniune iPhone, but be from another country and either locked to a carrier there or jailbroken to unlock it.
    Regards.

  • I deleted my iMovie from computer and from my purchases list in AppStroe. When I'm trying to download it again from App Store a pop up window comes up and says: "These apps were already assigned to your Apple ID and are available in your Purchases list"

    I deleted my iMovie from computer and from my purchases list in AppStroe. When I'm trying to download it again from App Store a pop up window comes up and says: "These apps were already assigned to your Apple ID and are available in your Purchases list". Please help me to reinstall it.

    If new versions of iPhoto and the other iLife applications (iMovie and GarageBand) were purchased by the previous owner from the Mac App Store, then they will be locked to the previous owner's Apple ID and cannot be transferred to you. You will have to re-purchase them under your own Apple ID.
    If this is an older MBA that came with Snow Leopard or an earlier version of Mac OS X, though, the system would have come with an installation disk that included the iLife applications, a disk which the seller should have provided to you. Those iLife applications would be older versions, of course, and may or may not work in Lion depending on how old they are.
    Regards.

  • IPad mail sending one page PDF documet as a picture. This picture is not viewing for other people who email open. this problem is from iBooks and from Pages.  (if I sending one page document from Pages from iPhone is ok - PDF)

    iPad mail sending one page PDF documet as a picture. This picture is not viewing for other people who email open. this problem is from iBooks and from Pages.
    (if I sending one page document from Pages from iPhone is ok - PDF. If I sending one page document from iPad is mistake. )

    Turn off rich text in your email signature. Delete images too, if any.

  • Values from event and from bindings are not same in valueChangeListener

    Hi, in a valueChangeListener method of an af:selectOneChoice component I get
    the new value from the event with:
    valueChangeEvent.getNewValue()
    and from bindings with:
    JsfUtils.getExpressionValue("#{bindings.Parflag.inputValue}")
    But the value from bindings is the previous value set in UI.
    Why is this happening? In ADF Page lifecycle manual it is referenced that “update model values” face runs before “invoke application” so why the value in bindings is the previous value?
    Any comment will be helpful,
    Thanks.

    That’s right.
    Could anyone comment why a valueChangeListener is regarder as a
    Validation Process and not an Application Action that commits business changes.
    I mean if I need a validator I can put an f:validator to the component and that’s all.
    The immediate attribute didn’t change the result, the method is run before bindings set.

  • I made a mistake by pressing autofill and all of my music was gone from itunes and from my iphone 5s, how can i get my music back on my iphone 5s?

    I made a mistake by pressing autofill on my hp windows laptop and all of my music was gone from itunes and my iphone 5s, how can i get my music back onto my iphone 5s?

    Have you checked to see if the media files are still on the computer? See Empty/corrupt iTunes library after upgrade/crash.
    tt2

  • Unable to print 2 sided copy from mac and from hp printer

    Im unable to make 2 sided copies on the flat bed and from printing from my macbook. First I tried printing on flatbed of hp printer I selected 1-2 sided copy I put down 1st page to copy then an error message "Job canceled the selected paper or tray cannot be used for copying on both sides of page:Job canceled". Then I tried printing from my mac on printer settings I selected 2 sided printer and still the pages printed one by one (not 2-sided copies). I dont know what else I can try maybe theres something Im missing it shouldnt be this difficult to print the 2sided option. 

    Hi wbclemen,
    Follow the steps in the document below, and let me know what you find out?
    Troubleshooting Print Quality Issues
    I am an HP employee.
    Say Thanks by clicking the Kudos Star in the post that helped you.
    Please mark the post that solves your problem as "Accepted Solution"

  • Music has disappeared from iTunes and from my external hard drive

    I store my music on 2 separate external hard drives. I have a lot of music and didnt want to choke my system drive. I do not have iTunes organise my folders. I have a lot of classical and iTunes doesnt understand classical music.
    I began to notice a while back that music files were not accessible to iTunes giving the annoying ! when I go to play them. I thought it was because one of the two drives is regularly swopped out for a back up drive. So I recently became aware that many more files were missing and when I search either drive the actual file has gone.
    I ran Dougs MIA script and a total of 2600 files are missing out of roughly 17,000. These are a mainly things I ripped myself from CD and alot of it is stuff I dont even listen to/ has never been in a play list so I couldnt have accidentally deleted them.
    I notice a lot of comments about this stuff over the years in the other questions here but not much is so recent.
    I'm on 10.6.8.

    Hey idw3,
    Welcome to Apple Support Communities, and thanks for the question. Follow the instructions on this article to move your iTunes Media folder to an external hard drive:
    iTunes for Windows: Moving your iTunes Media folder
    http://support.apple.com/kb/HT1364
    Regards,
    David

  • Cfmail "from name" and "from email address"

    I have been using a cf newsletter app with a <cfmail>
    function, and the syntax like this for the from and to addresses
    <cfmail from="#from_name# <#from_email_address#>"
    to="#first_name# #last_name# <#email_address#>"
    subject="#form.message_subject#">
    Note the <email address> after the name in both places
    I receive the mail just fine in Outlook Express, but replying
    is another matter as both the name and address for the reply are
    incorrect syntax for reply.
    Most email I receive shows the Name of the sender in the
    "From" field, with the address for "reply to" or "sent from" stored
    separately. How can I separate the "from name" and the "from
    email" using <cfmail> ?
    Michael Evangelista
    Evangelista Design / Evangelista Consulting, inc.
    www.evangelista-web.com
    Custom Small Business Website Solutions

    DUH no I havent... but I will, thanks!
    Michael Evangelista
    Evangelista Design / Evangelista Consulting, inc.
    www.evangelista-web.com
    Custom Small Business Website Solutions
    "Lossed" <[email protected]> wrote in message
    news:[email protected]...
    > There is a replyto="insert email addy here" attribute
    for the cfmail tag. Have you tried that?
    > Here's what my local tag reference says:
    >
    > <cfmail to = "recipient" from = "sender" cc =
    "copy_to" bcc = "blind_copy_to" subject = "msg_subject" replyto =
    > "reply_to_addr"
    > failto = "fail_message_addr" username = "user name"
    password = "password" wraptext = "column number" charset =
    > "character encoding" type = "msg_type" mimeattach =
    "path" query = "query_name" group = "query_column"
    > groupcasesensitive = "yes" or "no" startrow =
    "query_row" maxrows = "max_msgs" server = "serverspecs" port =
    "port_id"
    > mailerid = "headerid" timeout = "seconds" spoolenable =
    "yes" or "no">
    >
    > (Optional) Mail message body and/or cfhttpparam tags
    >
    > </cfmail>"Michael Evangelista"
    <[email protected]> wrote in message
    > news:[email protected]...
    >>I have been using a cf newsletter app with a
    <cfmail> function, and the syntax like this for the from and
    to addresses
    >>
    >> <cfmail from="#from_name#
    <#from_email_address#>" to="#first_name# #last_name#
    <#email_address#>"
    >> subject="#form.message_subject#">
    >>
    >> Note the <email address> after the name in
    both places
    >>
    >> I receive the mail just fine in Outlook Express, but
    replying is another matter as both the name and address for the
    reply
    >> are incorrect syntax for reply.
    >>
    >> Most email I receive shows the Name of the sender in
    the "From" field, with the address for "reply to" or "sent from"
    stored
    >> separately. How can I separate the "from name" and
    the "from email" using <cfmail> ?
    >>
    >>
    >> --
    >> Michael Evangelista
    >> Evangelista Design / Evangelista Consulting, inc.
    >> www.evangelista-web.com
    >> Custom Small Business Website Solutions
    >>
    >>
    >>
    >>
    >
    >

Maybe you are looking for

  • Text in table cells as links to open a new document

    I am using cs 5.5 on a mac. I have a table in an introduction chapter that is an 8 by 8 table. Each of the 64 cells of the table contain a number. That number is the appropriate chapter for them to read and each chapter is a separate document in a bo

  • Query to convert Row to column - Re-posting

    Hi all, i am re-posting the same requirement, please do the needful. I need a query to convert row value into column delimited by ',' create table tb_row_2_col (id number,val varchar2(100)); insert into tb_row_2_col values (1,'col1'); insert into tb_

  • Folder Actions Setup/Configuration in OS 10.6.4

    Hi I have some "fancy" stacks icons that i use for my dock that makes it look like my documents are in a little box. I downloaded the icons and a script that ensures that the icon for the "box" is at the top so the stack has the correct appearance in

  • NI 488.2

    Hi, I'm encountring some severe problems after I install NI488.2 software into my WIN2000 system. The problem is , my system is getting restarted in between. To confirm myself, I tried uninstalling NI488.2 and started to work. Everything, just works

  • Problems with an update

    Hi! I'm getting this ORA-01427 when I try to update. Seems that I just can't figure it out how to get this done properly and make it work. UPDATE tilmapper t SET (omnimi) = (SELECT substr(c.surname,1,20)||' '||substr(c.firstname, 1,10) FROM genowner