Protection to deny variant modification

Hi everybody !
We have some variants which have been created by a normal user (who had of course the authorisation) who set the "No modification" flag to deny other users to modify them. That user has now left the company, and the new employee must modify those variants but he can't. We can re-create that user but we hope it exists another solution (licence purpose).
Could anyone telle me if he (she..) knows a solution to allow that new user (and only he) to modify them without unsetting that flag ?
Thanks a lot !

Hello Julius,
Yes, we have considered to transport ot. However, we would like to keep the "historic" of files. If we transport it, we will overwrite the file everytime we execute it . This is the reason why we would like to modify it without opening the client.
Cheers,
Claudia

Similar Messages

  • Wht is PROTECTED SELECTIONS in VARIANTS concept?

    Hi Experts,
    Pls. let me know that, Wht is PROTECTED SELECTIONS in VARIANTS concept?
    bcoz, my functional guys asked me to do some parameters as PROTECTED SELECTIONS in VARIANTS defining.
    Pls. let me know, step by step.
    thanq

    Hi,
    When u saving the varient just click the check box  'Protect varient'
    and in selection screen just click the 'Protect field'.
    so when u select this varient fields cannot be changed.
    thanq.
    sksk.

  • Variant modification in SECATT - productive systems

    Dear all,
    While the execution of some tests with SECATT,  it was needed to change the file name of the external variants path. As the quality client is closed for modifications, the change is not possible unless we open the client (table T000), even if the option "e-CATTS execution for trusted systems" is allowed.
    Is it possible to change this setting so the user is able to modify the field "file name" without opening the client? If so, how do I do it?
    Thank you very much,
    Claudia Aguirre

    Hello Julius,
    Yes, we have considered to transport ot. However, we would like to keep the "historic" of files. If we transport it, we will overwrite the file everytime we execute it . This is the reason why we would like to modify it without opening the client.
    Cheers,
    Claudia

  • Protecting Sequence Files From Modifications

    I sure others have had to do this in the past.
    What is the best way to protect the sequence file from being modified in the field?
    Even I, with my limited TestStand skills, have gone in with a text editor and changed things in a sequence file.
    We would like to encrypt the sequence file and then have code to convert it back as it is loaded.
    Or is there a better way.
    We are also encrypting the report files on the back end so those can't be altered easily.
    Thanks

    What version of TestStand are you using? According to this version 3.5 has some built-in security features.
    If you don't want to or can't upgrade, there are a few other things I can think of. Are you getting copies of the test results from the CM. At each of the CMs I deal with, we insist on an Internet connection so that the test results are transfered to our local database. If I wanted, I could look at the limits and number of test in the results and compare to a master. I also install VNC on each of the deployed testers. This not only helps to debug when a problem arises, but I can do a simple check sum on the sequence file and compare it to my local copy.

  • How to get the variants for LAV LIST or GRID?

    Hi,
    How to get the variants which are stored in table like JVSO1, using function module REUSE_ALV_VARIANT_F4 ?
    Thanks.

    Hi,
    Delcare
    DATA : st_variant  TYPE disvariant,       "Work area for variant
           st_variant1 TYPE disvariant.       "Work area for variant
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-041.
    PARAMETERS :     p_varnt TYPE  disvariant-variant MODIF ID md8.  "Variant
    SELECTION-SCREEN END OF BLOCK b3.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_varnt.
    *--Local Variables
      DATA: l_exit(1) TYPE c.                "ALV exit
    *--Call the function module to display the list of Variants
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
        EXPORTING
          is_variant    = st_variant
          i_save        = c_save
        IMPORTING
          e_exit        = l_exit
          es_variant    = st_variant1
        EXCEPTIONS
          not_found     = 1
          program_error = 2.
    *--Check Subrc
      IF sy-subrc <> 2 AND l_exit IS INITIAL.
        p_varnt = st_variant1-variant.
      ENDIF.
    start-of-selection.
      IF NOT p_varnt IS INITIAL.
        CLEAR st_variant1.
        MOVE st_variant TO st_variant1.
        MOVE p_varnt TO st_variant1-variant.
    *--Call the function module to check the variant exist
        CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
          EXPORTING
            i_save     = c_save
          CHANGING
            cs_variant = st_variant1.
        st_variant = st_variant1.
      ENDIF.
    DATA : lv_repid TYPE sy-repid.
    *--Pass the Report name
      lv_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program      = lv_repid
          it_fieldcat             = it_fcat
          is_variant              = st_variant
          it_events               = it_events
          i_save                  = 'A'
          i_callback_user_command = 'USER_COMMAND'
        TABLES
          t_outtab                = it_zsd_ra
        EXCEPTIONS
          program_error           = 1
          OTHERS                  = 2.
      IF sy-subrc <> 0.
        MESSAGE e368(00) WITH 'Alv Display failed'(044)  .
      ENDIF.
    regards,
    Prashant

  • How to protect the class files inside jar file.

    Hi Group,
    pls help me.
    my need is i created a executable jar file with certain classes.
    and i'm supposed to send it to my client.
    but if the client needs he can extract the class files from the jar and with the
    help of some decompilers he can convert class file to .java source code and read the whole
    stuff.
    how can i protect my jar file from these.
    is there any security mechanism for that
    pls help me.
    Regards,
    Ranjith.M

    In order to protect my jar file I tried the jar signer technology but it only protects the jar from modification so I need to know how to protect jar file from decoding of the contents inside.

  • How to request APEX product enhancements (such as code protection)

    Have reviewed and there are posts that go back to at least 2009 inquiring how to protect apex code from being exported in attempt to protect licensed applications.
    As everyone is aware, there exists the ability to export an application read-only, but this does not prevent the APEX administrator from the licensee from changing to run and build once the code has been installed by the licensor. While the procedures and functions may be wrapped, there still exist no way of protecting APEX application code which will be the core work of the licensor.
    Sure there is the license agreement between the licensor and licensee, but how difficult could it possibly be to add an export option, such as 'export read-only protected', which would prevent modification to run and build at a later time by the licensee?
    An otherwise wonderful product still suffers with this major, yet seemingly easily corrected flaw.

    johnny wrote:
    how to request APEX product enhancements (such as code protection)
    Re: Apex 4.2 wish list, but apparently failed to read my follow-up:
    Have reviewed and there are posts that go back to at least 2009 inquiring how to protect apex code from being exported in attempt to protect licensed applications.If that's the criteria then Pagination Sub-template and table-less layouts and XHTML Validation and Accessibility would have 3 years priority on it.
    As everyone is aware, there exists the ability to export an application read-only, but this does not prevent the APEX administrator from the licensee from changing to run and build once the code has been installed by the licensor. While the procedures and functions may be wrapped, there still exist no way of protecting APEX application code which will be the core work of the licensor.
    Sure there is the license agreement between the licensor and licensee, but how difficult could it possibly be to add an export option, such as 'export read-only protected', which would prevent modification to run and build at a later time by the licensee?
    An otherwise wonderful product still suffers with this major, yet seemingly easily corrected flaw.However, as usual, the needs of corporate lawyers appear to count more than those of developers, as the Statement of Direction says that APEX 4.2 will include features to protect our rights to our non-standard and non-semantic apps.

  • Screen Variants disabled for FB50,FB60,FB70

    Hello All,
    The screen variants for FB50 FB60 FB70 disabled. These vairants can be selected as Edit --> Screen variant --> Select screen variant.
    When any user executes transaction he gets some field missing (table control setting set as basic settings) and when he try from the above option for the desired screen then also screen remains same. It doesn't change
    Previously it was not the case. previously when user executes these trasnaction screen was coming correctly.
    Many users facing this issue.
    If anyboday faced similer kind of issue then request you to please share your inputs.
    Thanks  & regards,
    Prashant

    Hi Prashant,
    Please refer to notes 546889 and 186961.
    if user is calling transaction FB*0 the first time no screen variant
    for items is selected. So in order to assign a user to a screen variant,
    the user has to switch the tree on (SHIFT+F1).
    In the folder 'Screen variants for items' the user has to choose your
    'default' variant by a double click. After clicking on the button
    'Refresh Tree' this screen variant is saved in the table TFBUF, which
    contains the personalizations for ENJOY transaction. This table is
    always read by starting transaction FB*0. Because of the user
    personalization with table TFBUF the SET/GET-Parameters SCRVAR & STV are
    not used in the FI-Enjoy transactions. It's the enjoy and personlization
    system design that always the last selected screen variant of the user
    is used by starting transaction FB*0 and not a default one.
    But I can suggest you a modification, for setting your default screen
    variant in FB*0 with the value of parameter SCRVAR until the user will
    chosse another screen variant in the tree. Furthermore this default
    variant is set if user is executing 'Reset screen variant' under
    EDIT -> Screen variant. You can find the program changes of this
    modification below:
    Because it is only possible to set standard for transaction variants and
    not for screen variants and due to user personalization goal of the
    enjoy transaction It cannot change this system behaviour during
    maintenance.
    Here is the program code for this modification:
    1.
    FORM posting_transaction_init.
    If variant transaction is active, get screen variant     "Note 421236
          CALL FUNCTION 'RS_HDSYS_GET_SC_VARIANT'              "Note 331997
               EXPORTING                                       "Note 331997
                    progname         = 'SAPLFSKB'              "Note 331997
                    dynpro           = '0100'                  "Note 331997
               IMPORTING                                       "Note 331997
                    scvariant        = g_scvariant             "Note 331997
               TABLES                                          "Note 331997
                    values_scvariant = tab_values_scvariant    "Note 331997
                    guixt_scripts    = tab_guixt_scripts.      "Note 331997
        ENDIF.                                                 "Note 421236
    *Modification Begin of insert
        IF acc_kontext-scvariant IS INITIAL and g_scvariant is initial.
          GET PARAMETER ID 'SCRVAR' FIELD G_SCVARIANT.
        endif.
    *Modification End of insert
        IF NOT g_scvariant IS INITIAL                           "Note430830
    2.
    FORM create_tree_treev_style_enj.
    data entry variants
    Only if screen variant not provided by transaction variant
    *Modification begin of deletion
    IF p_scvariant IS INITIAL.                               "Note 331997
    *Modification end of deletion
        PERFORM create_tree_ev TABLES p_node_table.    " Erfassungsvarianten
        PERFORM create_item_ev TABLES p_item_table.
    *Modification begin of deletion
    ENDIF.                                                   "Note 331997
    *Modification end of deletion
    assignment models
      PERFORM create_tree_km TABLES p_node_table.      "Kontierungsmuster
    3.
    MODULE tree OUTPUT.
    read screen variants
    Only if no screen variant provided by transaction var.   "Note 331997
    *Modification Begin of deletion
    IF g_scvariant IS INITIAL.                               "Note 331997
    *Modification end of deletion
        PERFORM get_screen_variants.
    *Modification Begin of deletion
    ENDIF.                                                   "Note 331997
    *Modification end of deletion
    read parked documents if required.
    I recommend you to check with your local consultants if this modification is suitable to your requirements.
    Kind Regards,
    Fernando Evangelista

  • Access denied before end of subscribtion

    I have Adobe Reader and have subscribed and paid to be able to create pdf but on 3.31. I could no longer create a pdf in spite of my subscribtion lasting until 4.10.??  And I can't get access to anyone at Adobe either (that option is not available under Reader)...   Anyone knows how to solve this?

    Yes, it was here on my end 
    2015-04-03 21:11 GMT+02:00 Sara.Forsberg <[email protected]>:
        Access denied before end of subscribtion  created by Sara.Forsberg in *Adobe
    Acrobat.com Services* - View the full discussion

  • APEX application deployment

    Hi All,
    I will soon be exporting my first APEX application from a development database to a test database. I do not want to export the data which the application is built on as the development database contains sample data instead of the "real" data. Before exporting my application, I will of course install APEX 3.2.1 in the test environment and then import the "real" data into the test database so that once the application has been exported and installed in the new environment, the APEX application will already have its data in place.
    On page 14-12 in Chapter 14 of the Oracle Application Express Application Builder User's Guide, I saw the following section:
    Exporting an Application
    When you export an application, Oracle Application Express generates a text file containing PL/SQL API calls.
    To export an application:
    1. Navigate to the Export page:
    a. On the Workspace home page, click the Application Builder icon.
    b. Select an application.
    c. On the Application home page, click Export/Import.
    d. On the Export/Import page, click Export and then click Next.
    2. From Application, select the application to be exported.
    3. From File Format, select how rows in the export file will be formatted:
    ■ Choose UNIX to have the resulting file contain rows delimited by line feeds.
    ■ Choose DOS to have the resulting file contain rows delimited by carriage
    returns and line feeds.
    4. From Owner Override, optionally select another owner. By default, the application is owned by the owner identified in the application attribute owner.
    5. From Build Status Override, select one of the following:
    ■ Run Application Only - Developers can only run an application
    ■ Run and Build Application - Developers can both run and edit an application
    Selecting Run Application Only is an effective way to protect an application from modifications from other developers.
    6. From Debugging, select one of the following:
    ■ Yes exports the application with debugging enabled.
    ■ No exports the application with debugging disabled.
    7. From Exporting Supporting Object Definitions, specify whether to export
    supporting object definitions with your application.
    8. From Export Comments, specify whether to export comments for this application.
    See "Adding Developer Comments" on page 6-22.
    9. Use the As of field to export your application as it was previously defined. Specify the number of minutes in the field provided.
    10. Click Export Application
    Since I do not have any images, themes, static files, workspace users, cascading style sheets, etc, to export, it makes no sense to use the “Packaged Application” method to perform the export. All I need is the application definition that contains all my interactive reports, forms, etc.
    The next step would then be to Import the application into the target Oracle Application Express instance and install the application.
    This method should be OK for my needs, right?
    Thanks

    By simply doing an application export, all you will export is the metadata associated with your application (page definitions, items, processes, validations etc).
    No "Customer Data" will be exported neither will any tables or PL/SQL packages that are owned by your parsing schema.
    If you aim is simply to export the APEX application and no tables, pl/sql units, data etc, then doing a simple application export should be good enough. Thats all we ever do and then add the PL/SQL units / table data on top as additional scripts.
    Hope that helps
    Duncs
    http://djmein.blogspot.com
    As a courtesy, please remember to mark helpful or correct responses accordingly :)

  • Possible Solution to Google Search Bar Not Working/Safari Not Loading Pages

    Hello Apple Forums,
    I have recently encountered a possible solution to a problem with Safari. The one in which Safari fails to load any page associated with www.google.com. Especially the Google Search Bar—a feature I use frequently.
    After browsing through the forums about the Google Search Bar issue, I took my knewly gained knowledge, and decided to do some diagnosing for myself.
    This is what I have done so far to try and solve this issue:
    Run Daily, Weekly, and Monthly Cron Scripts
    Cleared the following caches:
    System Local Computer Cache
    System VM (Swap) Files
    Curent User Cache
    Current User Icon Cache
    Internet Explorer Download Cache
    Page History
    Web Site Cache
    Temporary Files
    Safari Downloads List
    Form Values
    Page History
    Recent Searches
    Site Icons
    Web Site Cache
    User Cookies (used by Safari)
    Finder Recent Applications
    Recent Documents
    Recent Folders
    Recent Servers
    Recent Files of AppleWorks 6
    Disk Utility Disk Images
    Preview
    QuickTime Player Favorites/Recent
    REALbasic Projects
    TextEdit
    VideoLanClient
    and Other caches of Acquisition Current Downloads
    Acquisition Recent Searches
    MSN Conversation History
    Vicomsoft FTP Client Icon Cache
    All of the above runnings of Cron scripts and clearings of Caches were done using Mac Pilot version 1.1.5 (yes the one on the site is an updated version, but I have not downloaded it yet). If you decide to use this program to clear caches, I advise not clearing the Installer Receipts under the System section as Installer Receipts are used to correctly repair permissions. I do not clear Find File Indexes either, because I use the Find File feature quite frequently on my computer and I do not want to have it re-index files all the time (perhaps I'll do it every few months or so to refresh what I've got on the harddrive). Remember, all the information given in this paragraph is relative to Mac Pilot version 1.1.5.
    In addition, I have also repaired permissions using Disk Utility 10.4.4 (v145.7) (make sure you restart your computer after you repair permissions). I have taken out items in /harddrive/library/StartUpItems as well as taking out items in /harddrive/library/Internet Plug-Ins and in /user/library/Internet Plug-Ins and in user/library/Caches (restart your computer after taking out or putting in items in these locations).
    As of now, all the information mentioned above about trying to fix this problem have NOT worked.
    What HAS WORKED for me was tinkering with my 3rd party firewall—Norton Personal Firewall Version 3.0 (48). Under the Protection Settings, I HAD Enable Active FTB support, Enable Stealth mode, Enable suspicious activity protection (with Deny outgoing suspicious traffic and Deny incoming suspicious traffic selected), Enable UDP Protection (with Protect outgoing UDP connections, Allow access to essential services, and Protect a range of UDP ports 1 through 1023 selected).
    What I CHANGED in Protection Settings was DESELECT Enable suspicious activity protection (with Deny outgoing suspicious traffic and Deny incoming suspicious traffic DESELECTED). Upon deselecting that information the Google Search Bar feature in Safari WORKED practically instantaneously. Before hand, anything I inputted into Safari and after hitting Return on the keyboard just wound up hanging there.
    Just to be sure, all tests were performed on:
    IMac G4 800 Mhz SD Mac OSX 10.3.9 with ALL the latest Software Updates, Except Apple Remote Desktop Client version 1.2.4 and iPod Updater 2006-01-10
    I have a cable internet connection with ISP Time Warner Cable (RoadRunner) using a SurfBoard SB4100 Cable Modem on an AirPort Extreme Base Station (Apple Base Station V5.6)
    Interesting side note: I have a PowerBook G4 15" 1 Ghz Mac OSX 10.3.9 Laptop running on the same network (although it has an airport extreme card as opposed to the regular airport card in the iMac) with ALL the same latest Software Updates, Except iPod Updater 2006-01-10. The Apple Remote Desktop Client version 1.2.4 does not come up on Software Update on the Laptop and I can not find it on the harddrive using a name search in the Finder Find feature. It does not show up in Applications folder, so I do not know if it is on or active on the Laptop.
    The LAPTOP IS ABLE TO USE ALL GOOGLE FEATURES without DESELECTING Enable suspicious activity protection (with Deny outgoing suspicious traffic and Deny incoming suspicious traffic DESELECTED). Why this is apparent I have not officially confirmed.
    What I do know is that I have tried to Uninstall Norton Personal Firewall Version 3.0 (48) with the appropriate uninstaller but it FAILS during the uninstall (I wanted to uninstall and reinstall, it appears the program became corrupted). What I did to possibly circumvent this was to search for the phrase 'Personal Fire" using the Finder's Find feature (Search for items whose name contains 'Personal Fire') and deleted all the files that came up related to Norton Personal Firewall Version 3.0 (48). I then reinstalled Norton Personal Firewall Version 3.0 (48) since then, and it continues to have the problem with Enable suspicious activity protection (with Deny outgoing suspicious traffic and Deny incoming suspicious traffic selected).
    What I have not done:
    Updated Prebinding
    Run TechTool Pro version 4.1.2
    Install Combo OSX 10.3.9
    Initialize HardDrive with complete reinstallation of OSX 10.3.9
    To Summarize Possible Solution
    I've tried many possible solutions, what appears to work best as of now is to DESELECT Enable suspicious activity protection (making sure Deny outgoing suspicious traffic and Deny incoming suspicious traffic are deselected) under Protection Settings in Norton Personal Firewall Version 3.0 (48).
    One could try deselecting something similar in any firewall application other than Norton Personal Firewall Version 3.0 (48), to see if it is suspicious activity settings in firewalls that cause the problem.
    Any comments/feedbacks are extremely welcome.
    Hope It Helps!
    iMac G4 800Mhz SD 10.3.9 & PowerBook G4 15" 1 Ghz 10.3.9    
    iMac G4 800Mhz SD    
    iMac G4 800Mhz SD    
    iMac G4 800Mhz SD    
    iMac G4 800Mhz SD    
    iMac G4 800Mhz SD    

    Hello tr:
    Welcome to Apple discussions and thank you for your very very thorough post.
    Your instincts to delete anything named "Norton" were right on the mark. Norton software is POISON to Macs running OS X. An additional software firewall is, IMHO, completely unnecessary. Turn on the built-in firewall in OS X - it is robust. In fact, if it is already on, there may be a conflict.
    Go to Symantec's web site and use the uninstaller you should find there to get rid of the Norton stuff. After you do that, do a "find" on Norton and Symantec to be sure it is all gone - the stuff hides everywhere.
    Barry

  • RE: PERFORMANCE

    REPORT ZCHECK .
    *&                      TABLES/VIEWS
    TABLES: mseg,
            ser03,
            objk,
           zprealert,
            vbrk,
            vbrp,
            zinftsalecntrl,
            vbfa.
    *&                VARIABLES/STRUCTURES/INTERNAL TABLES
    DATA: BEGIN OF it_mseg OCCURS 0,
            mblnr     LIKE mseg-mblnr,
            mjahr     LIKE mseg-mjahr,
            zeile     LIKE mseg-zeile,
          END OF it_mseg.
    DATA: BEGIN OF it_ser03 OCCURS 0,
            obknr     LIKE ser03-obknr,
            mblnr     LIKE ser03-mblnr,
            zeile     LIKE ser03-zeile,
            bwart     LIKE ser03-bwart,
            charge    LIKE ser03-charge,
            datum     LIKE ser03-datum,
            werk      LIKE ser03-werk,
            lagerort  LIKE ser03-lagerort,
          END OF it_ser03.
    DATA: BEGIN OF it_objk OCCURS 0,
            obknr LIKE objk-obknr,
            sernr LIKE objk-sernr,
            matnr LIKE objk-matnr,
          END OF it_objk.
    DATA: BEGIN OF it_alert OCCURS 0,
            rsnno LIKE zprealert-rsnno,
    ***kdamle-27102004-start
            status LIKE zprealert-status,
    ***kdamle-27102004-end
          END OF it_alert.
    DATA: BEGIN OF it_vbrk OCCURS 0,
            vbeln LIKE vbrk-vbeln,
            fkdat LIKE vbrk-fkdat,
            fkart LIKE vbrk-fkart,
            vkorg LIKE vbrk-vkorg,
            vtweg LIKE vbrk-vtweg,
            spart LIKE vbrk-spart,
            fksto LIKE vbrk-fksto,
          END OF it_vbrk.
    DATA: BEGIN OF it_vbrp OCCURS 0,
            vbeln LIKE vbrp-vbeln,
            matnr LIKE vbrp-matnr,
            charg LIKE vbrp-charg,
          END OF it_vbrp.
    DATA: BEGIN OF it_inftsale OCCURS 0,
            delivery    LIKE zinftsalecntrl-delivery,
            billingdoc  LIKE zinftsalecntrl-billingdoc,
          END OF it_inftsale.
    DATA: BEGIN OF it_vbfa OCCURS 0,
            vbelv LIKE vbfa-vbelv,
            vbeln LIKE vbfa-vbeln,
          END OF it_vbfa.
    DATA: BEGIN OF it_vbfa_1 OCCURS 0,
            vbelv   LIKE vbfa-vbelv,
            vbeln   LIKE vbfa-vbeln,
            vbtyp_v LIKE vbfa-vbtyp_v,
    ***kdamle-19052005-start
            vbtyp_n LIKE vbfa-vbtyp_n,
    ***kdamle-19052005-end
          END OF it_vbfa_1.
    DATA: BEGIN OF it_vbfa_2 OCCURS 0,
            vbelv   LIKE vbfa-vbelv,
            vbeln   LIKE vbfa-vbeln,
            vbtyp_n LIKE vbfa-vbtyp_n,
    ***kdamle-19052005-start
            plmin   LIKE vbfa-plmin,
    ***kdamle-19052005-end
          END OF it_vbfa_2.
    DATA: BEGIN OF it_out OCCURS 0,
            rsnno     LIKE zprealert-rsnno,
            matnr     LIKE objk-matnr,
            charg     LIKE ser03-charge,
            bwart     LIKE ser03-bwart,
            mblnr     LIKE ser03-mblnr,
            vbeln     LIKE vbrk-vbeln,
            datum     LIKE ser03-datum,
            zeile     LIKE ser03-zeile,
            werk      LIKE ser03-werk,
            lagerort  LIKE ser03-lagerort,
            fkdat     LIKE vbrk-fkdat,
            fkart     LIKE vbrk-fkart,
            vkorg     LIKE vbrk-vkorg,
            vtweg     LIKE vbrk-vtweg,
            spart     LIKE vbrk-spart,
    ***kdamle-27102004-start
            status    LIKE zprealert-status,
    ***kdamle-27102004-end
          END OF it_out.
    ***kdamle-05.10.2004-start
    *display table as per o/p file structure
    DATA: BEGIN OF it_disp OCCURS 0,
            rsnno     LIKE zprealert-rsnno,
            matnr     LIKE objk-matnr,
            charg     LIKE ser03-charge,
            bwart     LIKE ser03-bwart,
            mblnr     LIKE ser03-mblnr,
            zeile     LIKE ser03-zeile,
            werk      LIKE ser03-werk,
            lagerort  LIKE ser03-lagerort,
            datum     LIKE ser03-datum,
            vbeln     LIKE vbrk-vbeln,
            fkdat     LIKE vbrk-fkdat,
            fkart     LIKE vbrk-fkart,
            vkorg     LIKE vbrk-vkorg,
            vtweg     LIKE vbrk-vtweg,
            spart     LIKE vbrk-spart,
          END OF it_disp.
    DATA : BEGIN OF it_formatted OCCURS 0,
            record(140),
           END OF it_formatted.
    DATA: BEGIN OF it_dwn OCCURS 0,
            text1(15),
            text2(15),
            text3(15),
            text4(15),
            text5(15),
          END OF it_dwn.
    *This table will contain uploaded mblnr or vbeln data
    *in foreground, it will contain either mblnr or vbeln.
    *in backround, it will first contain data uploaded from users machine
    *and loaded on the application server.
    *Then it is erased and filled with data which is read from application
    *server since data from users machine cannot be read in background
    DATA: BEGIN OF it_up OCCURS 0,
    ***kdamle-24052005-start
    *positions swapped for vbeln and mblnr
            vbeln LIKE vbrk-vbeln,
            mblnr LIKE ser03-mblnr,
    ***kdamle-24052005-end
          END OF it_up.
    ***kdamle-05.10.2004-end
    DATA : it_alv LIKE STANDARD TABLE OF it_out.
    DATA: cntnr TYPE REF TO cl_gui_custom_container,
          grid TYPE REF TO cl_gui_alv_grid.
    DATA: gt_fieldcat  TYPE slis_t_fieldcat_alv,
          s_fieldcat   LIKE LINE OF gt_fieldcat,
          alv_layout   TYPE slis_layout_alv.
    DATA: ls_alv_event TYPE slis_alv_event,
          i_alv_event  TYPE slis_t_event.
    DATA: gt_list_top_of_page   TYPE slis_t_listheader,
          infotxt               TYPE slis_listheader-info.
    DATA: g_variant LIKE disvariant VALUE 'ZPPSALE',
          gx_variant LIKE disvariant.
    DATA: lin TYPE i.
    DATA: wkey LIKE vbfa-vbtyp_v.
    DATA: v_datum LIKE sy-datum,
          v_uzeit LIKE sy-uzeit.
    ***kdamle-05.10.2004-start
    CONSTANTS: hex(1) TYPE x VALUE '09',   "tab
               app_path TYPE rlgrap-filename
               VALUE '/bdcusers/mmdata/'.
    DATA: fnam LIKE rlgrap-filename,
          l_path(100),
          flag(1),
          txt(500).
    DATA: fnam1 LIKE rlgrap-filename.
    DATA : BEGIN OF iline OCCURS 0,
             line(4000),
           END OF iline.
    DATA : BEGIN OF i_tty OCCURS 0,
            line(300),
           END OF i_tty.
    *required for pushbutton info
    DATA: g_answer     TYPE c,
          g_lines_tab  TYPE popuptext OCCURS 0
          WITH HEADER LINE.
    DATA: v_flagmtl,
          v_flaginv.
    ***kdamle-05.10.2004-end
    ***kdamle-08122004-start
    DATA: v_msgtxt(150).
    ***kdamle-08122004-end
    *&                      SELECTION SCREEN
    SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS: s_vbeln FOR vbrk-vbeln.
    SELECT-OPTIONS: s_mblnr FOR ser03-mblnr.
    SELECTION-SCREEN END OF BLOCK blk1.
    SELECTION-SCREEN SKIP 1.
    ***kdamle-05.10.2004-start
    SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME TITLE text-007.
    PARAMETERS: p_ufname LIKE rlgrap-filename.
    *pushbuttons to give info and download file format
    SELECTION-SCREEN: PUSHBUTTON /1(7)   help USER-COMMAND info,
                      PUSHBUTTON  33(25) down USER-COMMAND down.
    SELECTION-SCREEN END OF BLOCK blk2.
    SELECTION-SCREEN BEGIN OF BLOCK blk3 WITH FRAME TITLE text-002.
    PARAMETERS: S_VAR LIKE DISVARIANT-VARIANT.
    *SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    PARAMETERS: p_r1 RADIOBUTTON GROUP rbg1 DEFAULT 'X' USER-COMMAND ucomm,
                s_var LIKE disvariant-variant MODIF ID pr1.
    PARAMETERS: p_r2 RADIOBUTTON GROUP rbg1,
                p_fname LIKE rlgrap-filename MODIF ID pr2.
    PARAMETERS: p_r3 RADIOBUTTON GROUP rbg1,
                p_lfname LIKE rlgrap-filename MODIF ID pr3,
                p_fname1 LIKE rlgrap-filename MODIF ID pr4.
    SELECTION-SCREEN END OF BLOCK blk3.
    SELECTION-SCREEN BEGIN OF BLOCK blk4 WITH FRAME TITLE text-003.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN COMMENT 1(75) text-004 MODIF ID pr5.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN COMMENT 1(75) text-005 MODIF ID pr6.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN COMMENT 1(75) text-006 MODIF ID pr7.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN END OF BLOCK blk4.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
      PERFORM get_file.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname1.
      PERFORM get_lfile.
    ***kdamle-05.10.2004-start
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_ufname.
      PERFORM get_ufile.
    ***kdamle-05.10.2004-end
    *&               AT SELECTION SCREEN OUTPUT
    ***kdamle-05.10.2004-start
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF p_r1 = 'X'.
          IF screen-group1 = 'PR1'.
            screen-input     = '1'.
            screen-output    = '1'.
            screen-invisible = '0'.
          ELSEIF screen-group1 = 'PR2'.
            screen-input     = '0'.
            screen-output    = '0'.
            screen-invisible = '1'.
          ELSEIF screen-group1 = 'PR3'.
            screen-input     = '0'.
            screen-output    = '0'.
            screen-invisible = '1'.
          ELSEIF screen-group1 = 'PR4'.
            screen-input     = '0'.
            screen-output    = '0'.
            screen-invisible = '1'.
          ELSEIF screen-group1 = 'PR5'.
            screen-input     = '0'.
            screen-output    = '0'.
            screen-invisible = '1'.
          ELSEIF screen-group1 = 'PR6'.
            screen-input     = '0'.
            screen-output    = '0'.
            screen-invisible = '1'.
          ELSEIF screen-group1 = 'PR7'.
            screen-input     = '0'.
            screen-output    = '0'.
            screen-invisible = '1'.
          ENDIF.
        ELSEIF p_r2 = 'X'.
          IF screen-group1 = 'PR1'.
            screen-input     = '0'.
            screen-output    = '0'.
            screen-invisible = '1'.
          ELSEIF screen-group1 = 'PR2'.
            screen-input     = '1'.
            screen-output    = '1'.
            screen-invisible = '0'.
          ELSEIF screen-group1 = 'PR3'.
            screen-input     = '0'.
            screen-output    = '0'.
            screen-invisible = '1'.
          ELSEIF screen-group1 = 'PR4'.
            screen-input     = '0'.
            screen-output    = '0'.
            screen-invisible = '1'.
          ELSEIF screen-group1 = 'PR5'.
            screen-input     = '1'.
            screen-output    = '1'.
            screen-invisible = '0'.
          ELSEIF screen-group1 = 'PR6'.
            screen-input     = '1'.
            screen-output    = '1'.
            screen-invisible = '0'.
          ELSEIF screen-group1 = 'PR7'.
            screen-input     = '0'.
            screen-output    = '0'.
            screen-invisible = '1'.
          ENDIF.
        ELSEIF p_r3 = 'X'.
          IF screen-group1 = 'PR1'.
            screen-input     = '0'.
            screen-output    = '0'.
            screen-invisible = '1'.
          ELSEIF screen-group1 = 'PR2'.
            screen-input     = '0'.
            screen-output    = '0'.
            screen-invisible = '1'.
          ELSEIF screen-group1 = 'PR3'.
            screen-input     = '1'.
            screen-output    = '1'.
            screen-invisible = '0'.
          ELSEIF screen-group1 = 'PR4'.
            screen-input     = '1'.
            screen-output    = '1'.
            screen-invisible = '0'.
          ELSEIF screen-group1 = 'PR5'.
            screen-input     = '0'.
            screen-output    = '0'.
            screen-invisible = '1'.
          ELSEIF screen-group1 = 'PR6'.
            screen-input     = '0'.
            screen-output    = '0'.
            screen-invisible = '1'.
          ELSEIF screen-group1 = 'PR7'.
            screen-input     = '1'.
            screen-output    = '1'.
            screen-invisible = '0'.
          ENDIF.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
    *&                      INITIALIZATION
    INITIALIZATION.
      MOVE '@0S@' TO help.
      MOVE '@49@ Upload File Format' TO down.
      PERFORM fill_infotext.
    ***kdamle-05.10.2004-end
    *&                      AT SELECTION SCREEN
    AT SELECTION-SCREEN.
      IF sy-ucomm = 'ONLI'
    ***kdamle-08122004-start
          AND p_r3 NE 'X'.
    ***kdamle-08122004-end
        IF NOT s_vbeln IS INITIAL
          AND NOT s_mblnr IS INITIAL
          AND NOT p_ufname IS INITIAL.
          MESSAGE e000(yw) WITH
            'Enter Either Mat. Doc. Or Inv. No. Or Upload File'.
        ELSEIF s_vbeln IS INITIAL
              AND s_mblnr IS INITIAL
              AND p_ufname IS INITIAL.
          MESSAGE e000(yw) WITH
            'Enter Either Mat. Doc. Or Inv. No. Or Upload File'.
        ENDIF.
        IF NOT s_mblnr IS INITIAL AND NOT p_ufname IS INITIAL.
          MESSAGE e000(yw) WITH
            'Enter Either Material Doc. Or Upload file name'.
        ELSEIF NOT s_vbeln IS INITIAL AND NOT p_ufname IS INITIAL.
          MESSAGE e000(yw) WITH
            'Enter Either Invoice No. Or Upload file name'.
        ENDIF.
      ENDIF.
    ***kdamle-05.10.2004-start
    IF sscrfields-ucomm = 'INFO'.
      IF sy-ucomm = 'INFO'.
        CALL FUNCTION 'DD_POPUP_WITH_INFOTEXT'
             EXPORTING
                  titel        = 'Text File Format'
                  start_column = 10
                  start_row    = 12
                  end_column   = 85
                  end_row      = 22
                  infoflag     = ' '
             IMPORTING
                  answer       = g_answer
             TABLES
                  lines        = g_lines_tab.
    ELSEIF sscrfields-ucomm = 'DOWN'.
      ELSEIF sy-ucomm = 'DOWN'.
        PERFORM fill_idwn.
      ENDIF.
      IF sy-ucomm = 'ONLI'.
        IF p_r2 = 'X'.
          IF p_fname IS INITIAL.
            SET CURSOR FIELD 'P_FNAME'.
            MESSAGE e000(yw) WITH 'Please Enter Download File Name'.
          ENDIF.
        ENDIF.
        IF p_r3 = 'X'.
          IF p_lfname = space.
            SET CURSOR FIELD 'P_LFNAME'.
            MESSAGE e000(yw) WITH 'FileName on Server cannot be empty'.
          ENDIF.
          IF p_fname1 = space.
            SET CURSOR FIELD 'P_FNAME1'.
            MESSAGE e000(yw) WITH 'Local FileName cannot be empty'.
          ENDIF.
        ENDIF.
      ELSEIF sy-ucomm = 'SJOB'.
        IF p_r2 = 'X'.
          IF p_fname IS INITIAL.
            SET CURSOR FIELD 'P_FNAME'.
            MESSAGE e000(yw) WITH 'Please Enter Download File Name'.
          ENDIF.
          IF p_fname CA ':' OR p_fname CA '/'  OR p_fname CA '\'.
            SET CURSOR FIELD 'P_FNAME'.
            MESSAGE e000(yw) WITH 'Enter only File Name for Background job'.
          ENDIF.
        ENDIF.
        IF p_r3 = 'X'.
          MESSAGE e000(yw) WITH
              'This option cannot be executed in Background mode'.
        ENDIF.
      ENDIF.
      IF p_fname CA '*'.
        MESSAGE e000(yw) WITH '* (star) not allowed in Filename'.
      ENDIF.
      IF sy-ucomm = 'ONLI' AND NOT p_ufname IS INITIAL.
    *in foreground processing directly read input file from users machine
        PERFORM upload_file TABLES it_up.
      ELSEIF sy-ucomm = 'SJOB' AND NOT p_ufname IS INITIAL.
    *download the file read input file from users machine onto the
    *application server first as it cannot be read during background
    *processing
        PERFORM download_to_app_server.
      ENDIF.
    ***kdamle-05.10.2004-end
    *&               AT SELECTION SCREEN ON VALUE REQUEST
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_var.
      PERFORM select_variant.
    *&                      START OF SELECTION
    START-OF-SELECTION.
    ***kdamle-05.10.2004-start
      IF sy-batch = 'X'.
        CLEAR it_up.
        CLEAR it_up[].
        PERFORM upload_app_server.
        READ TABLE it_up INDEX 1.
      ENDIF.
      IF p_r3 = 'X'.
        PERFORM create_local_file.
        EXIT.
      ENDIF.
      IF NOT s_mblnr IS INITIAL.
        SELECT mblnr mjahr zeile FROM mseg
                               INTO CORRESPONDING FIELDS OF TABLE it_mseg
                                 WHERE mblnr IN s_mblnr
                                   AND xauto NE 'X'.
        IF sy-subrc NE 0.
          MESSAGE s000(yw) WITH 'No Data Found'.
          STOP.
        ENDIF.
        PERFORM get_data_from_mtl.
      ELSEIF NOT p_ufname IS INITIAL AND NOT it_up-mblnr IS INITIAL.
        v_flagmtl = 'X'.
        IF NOT it_up[] IS INITIAL.
          SORT it_up BY mblnr.
          SELECT mblnr mjahr zeile FROM mseg
            INTO CORRESPONDING FIELDS OF TABLE it_mseg
            FOR ALL ENTRIES IN it_up
            WHERE mblnr = it_up-mblnr
              AND xauto NE 'X'.
        ENDIF.
        PERFORM get_data_from_mtl.
      ELSEIF NOT s_vbeln IS INITIAL.
        SELECT vbeln fkdat fkart vkorg vtweg spart FROM vbrk
                           INTO CORRESPONDING FIELDS OF TABLE it_vbrk
                               WHERE vbeln IN s_vbeln.
        IF sy-subrc NE 0.
          MESSAGE s000(yw) WITH 'No Data Found'.
          STOP.
        ENDIF.
        PERFORM get_data_from_inv.
      ELSEIF NOT p_ufname IS INITIAL AND NOT it_up-vbeln IS INITIAL.
        v_flaginv = 'X'.
        IF NOT it_up[] IS INITIAL.
          SORT it_up BY vbeln.
          SELECT vbeln fkdat fkart vkorg vtweg spart FROM vbrk
            INTO CORRESPONDING FIELDS OF TABLE it_vbrk
            FOR ALL ENTRIES IN it_up
            WHERE vbeln = it_up-vbeln.
        ENDIF.
        PERFORM get_data_from_inv.
      ENDIF.
    ***kdamle-05.10.2004-end
    *&                      END OF SELECTION
    END-OF-SELECTION.
    ***kdamle-05.10.2004-start
      IF NOT s_mblnr IS INITIAL OR v_flagmtl = 'X'.
    ***kdamle-05.10.2004-end
        CHECK NOT it_mseg[] IS INITIAL.
        PERFORM populate_output_1.
    ***kdamle-05.10.2004-start
      ELSEIF NOT s_vbeln IS INITIAL OR v_flaginv = 'X'.
    ***kdamle-05.10.2004-end
        PERFORM populate_output_2.
      ENDIF.
    ***kdamle-05.10.2004-start
      IF p_r1 = 'X'.
    ***kdamle-05.10.2004-end
        DESCRIBE TABLE it_out LINES lin.
        IF lin > 0.
          PERFORM create_f_catalog_0100.
          PERFORM set_defaults_grid.
          SET TITLEBAR 'DOC' WITH '[count ='
                                  lin
          CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
               EXPORTING
                    i_callback_program = 'ZDOC_SRLST'
                    is_layout          = alv_layout
                    it_fieldcat        = gt_fieldcat
                    i_default          = 'X'
                    i_save             = 'A'
                    is_variant         = g_variant
               TABLES
                    t_outtab           = it_out.
        ELSE.
          MESSAGE s000(yw) WITH 'No Data Selected'.
        ENDIF.
    ***kdamle-05.10.2004-start
      ELSEIF p_r2 = 'X'.
        PERFORM create_disp_table.
        IF sy-batch = space.
          PERFORM online_download.
        ELSE.
          PERFORM download_data.
        ENDIF.
      ENDIF.
    ***kdamle-05.10.2004-end
    *&      Form  POPULATE_OUTPUT_1
    FORM populate_output_1.
    SORT IT_SER03  BY MBLNR.
      SORT it_vbfa_1 BY vbeln.
      SORT it_vbfa_2 BY vbelv.
      SORT it_vbrk   BY vbeln.
      SORT it_objk   BY obknr.
      SORT it_alert  BY rsnno.
      LOOP AT it_ser03.
        it_out-charg     = it_ser03-charge.
        it_out-bwart     = it_ser03-bwart.
        it_out-zeile     = it_ser03-zeile.
        it_out-mblnr     = it_ser03-mblnr.
        it_out-datum     = it_ser03-datum.
        it_out-werk      = it_ser03-werk.
        it_out-lagerort  = it_ser03-lagerort.
        IF it_ser03-bwart = '601' OR it_ser03-bwart = '602'.
          wkey = 'J'.
        ELSE.
          wkey = 'T'.
        ENDIF.
        CLEAR it_vbfa_1.
        READ TABLE it_vbfa_1
                   WITH KEY vbeln   = it_ser03-mblnr
                            vbtyp_v = wkey.
        IF sy-subrc EQ 0.
          IF it_ser03-bwart = '601' OR it_ser03-bwart = '602'.
            wkey = 'M'.
          ELSE.
            wkey = 'O'.
          ENDIF.
          CLEAR it_vbfa_2.
          READ TABLE it_vbfa_2
                     WITH KEY vbelv   = it_vbfa_1-vbelv
                              vbtyp_n = wkey.
          IF sy-subrc EQ 0.
            CLEAR it_vbrk.
            READ TABLE it_vbrk
                       WITH KEY vbeln = it_vbfa_2-vbeln
                       BINARY SEARCH.
            it_out-vbeln = it_vbrk-vbeln.
            it_out-fkdat = it_vbrk-fkdat.
            it_out-fkart = it_vbrk-fkart.
            it_out-vkorg = it_vbrk-vkorg.
            it_out-vtweg = it_vbrk-vtweg.
            it_out-spart = it_vbrk-spart.
          ENDIF.
        ENDIF.
        READ TABLE it_objk
                   WITH KEY obknr = it_ser03-obknr
                   BINARY SEARCH.
        IF sy-subrc EQ 0.
          LOOP AT it_objk WHERE obknr = it_ser03-obknr.
            it_out-matnr = it_objk-matnr.
            READ TABLE it_alert
                       WITH KEY rsnno = it_objk-sernr
                       BINARY SEARCH.
            IF sy-subrc EQ 0.
              it_out-rsnno = it_alert-rsnno.
    ***kdamle-27102004-start
              it_out-status = it_alert-status.
    ***kdamle-27102004-end
              APPEND it_out.
              CLEAR: it_alert, it_objk.
            ELSE.
              APPEND it_out.
              CLEAR: it_objk.
            ENDIF.
          ENDLOOP.
        ELSE.
          APPEND it_out.
          CLEAR: it_objk, it_ser03,
                 it_out.
        ENDIF.
      ENDLOOP.
      REFRESH: it_ser03, it_objk, it_alert.
    ENDFORM.                    " POPULATE_OUTPUT_1
    *&      Form  POPULATE_OUTPUT_2
    FORM populate_output_2.
      SORT it_vbrp   BY vbeln.
      SORT it_vbfa_1 BY vbeln.
      SORT it_vbfa_2 BY vbelv.
      SORT it_ser03  BY mblnr.
      SORT it_objk   BY obknr.
      SORT it_alert  BY rsnno.
      LOOP AT it_vbrk.
        it_out-vbeln = it_vbrk-vbeln.
        it_out-fkdat = it_vbrk-fkdat.
        it_out-fkart = it_vbrk-fkart.
        it_out-vkorg = it_vbrk-vkorg.
        it_out-vtweg = it_vbrk-vtweg.
        it_out-spart = it_vbrk-spart.
        READ TABLE it_vbrp
                   WITH KEY vbeln = it_vbrk-vbeln.
    ***kdamle-19042005-start
       it_out-charg = it_vbrp-charg.
       it_out-matnr = it_vbrp-matnr.
    ***kdamle-19042005-end
        READ TABLE it_vbfa_1
                   WITH KEY vbeln = it_vbrk-vbeln
                   BINARY SEARCH.
        IF sy-subrc EQ 0.
          LOOP AT it_vbfa_1 WHERE vbeln = it_vbrk-vbeln.
            READ TABLE it_vbfa_2
                       WITH KEY vbelv = it_vbfa_1-vbelv
                       BINARY SEARCH.
            IF sy-subrc EQ 0.
              LOOP AT it_vbfa_2 WHERE vbelv = it_vbfa_1-vbelv.
                READ TABLE it_ser03
                           WITH KEY mblnr = it_vbfa_2-vbeln
                           BINARY SEARCH.
                IF sy-subrc EQ 0.
                  LOOP AT it_ser03 WHERE mblnr = it_vbfa_2-vbeln.
                    it_out-bwart     = it_ser03-bwart.
                    it_out-zeile     = it_ser03-zeile.
                    it_out-mblnr     = it_ser03-mblnr.
                    it_out-datum     = it_ser03-datum.
                    it_out-werk      = it_ser03-werk.
                    it_out-lagerort  = it_ser03-lagerort.
    ***kdamle-19042005-start
                    it_out-charg     = it_ser03-charge.
    ***kdamle-19042005-end
                    READ TABLE it_objk
                               WITH KEY obknr = it_ser03-obknr
                               BINARY SEARCH.
                    IF sy-subrc EQ 0.
                      LOOP AT it_objk WHERE obknr = it_ser03-obknr.
    ***kdamle-19042005-start
                        it_out-matnr = it_objk-matnr.
    ***kdamle-19042005-end
                        READ TABLE it_alert
                                   WITH KEY rsnno = it_objk-sernr
                                   BINARY SEARCH.
                        IF sy-subrc EQ 0.
                          it_out-rsnno = it_alert-rsnno.
                          APPEND it_out.
                          CLEAR: it_alert, it_objk.
                        ELSE.
                          APPEND it_out.
                          CLEAR: it_objk.
                        ENDIF.
                      ENDLOOP.
                    ELSE.
                      APPEND it_out.
                      CLEAR: it_objk, it_ser03, it_out.
                    ENDIF.
                  ENDLOOP.
                  CLEAR: it_ser03, it_objk, it_alert.
                ELSE.
                  APPEND it_out.
                ENDIF.
              ENDLOOP.
            ELSE.
              APPEND it_out.
            ENDIF.
          ENDLOOP.
        ELSE.
          APPEND it_out.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " POPULATE_OUTPUT_2
    *&      FORM  CREATE_F_CATALOG_0100
    FORM create_f_catalog_0100.
      REFRESH gt_fieldcat.
      CLEAR s_fieldcat.
      s_fieldcat-fieldname = 'RSNNO'.
      s_fieldcat-ref_tabname = 'ZPREALERT'.
      s_fieldcat-ref_fieldname = 'RSNNO'.
      s_fieldcat-ddictxt = 'L'.
      s_fieldcat-seltext_l = s_fieldcat-seltext_m = s_fieldcat-seltext_s =
                             'RSN No.'.
      s_fieldcat-outputlen = '20'.
      s_fieldcat-fix_column = 'X'.
      s_fieldcat-key = 'X'.
      s_fieldcat-tabname = 'IT_OUT'.
      APPEND s_fieldcat TO gt_fieldcat.
      CLEAR s_fieldcat.
      s_fieldcat-fieldname = 'MATNR'.
      s_fieldcat-ref_tabname = 'OBJK'.
      s_fieldcat-ref_fieldname = 'MATNR'.
      s_fieldcat-ddictxt = 'L'.
      s_fieldcat-seltext_l = s_fieldcat-seltext_m = s_fieldcat-seltext_s =
                             'Material'.
      s_fieldcat-outputlen = '20'.
      s_fieldcat-tabname = 'IT_OUT'.
      APPEND s_fieldcat TO gt_fieldcat.
      CLEAR s_fieldcat.
      s_fieldcat-fieldname = 'CHARG'.
      s_fieldcat-ref_tabname = 'SER03'.
      s_fieldcat-ref_fieldname = 'CHARG'.
      s_fieldcat-ddictxt = 'L'.
      s_fieldcat-seltext_l = s_fieldcat-seltext_m = s_fieldcat-seltext_s =
                             'Batch'.
      s_fieldcat-outputlen = '10'.
      s_fieldcat-tabname = 'IT_OUT'.
      APPEND s_fieldcat TO gt_fieldcat.
      CLEAR s_fieldcat.
      s_fieldcat-fieldname = 'BWART'.
      s_fieldcat-ref_tabname = 'SER03'.
      s_fieldcat-ref_fieldname = 'BWART'.
      s_fieldcat-ddictxt = 'L'.
      s_fieldcat-seltext_l = s_fieldcat-seltext_m = s_fieldcat-seltext_s =
                             'Movement'.
      s_fieldcat-outputlen = '10'.
      s_fieldcat-tabname = 'IT_OUT'.
      APPEND s_fieldcat TO gt_fieldcat.
      CLEAR s_fieldcat.
      s_fieldcat-fieldname = 'MBLNR'.
      s_fieldcat-ref_tabname = 'SER03'.
      s_fieldcat-ref_fieldname = 'MBLNR'.
      s_fieldcat-ddictxt = 'L'.
      s_fieldcat-seltext_l = s_fieldcat-seltext_m = s_fieldcat-seltext_s =
                             'Mat Doc'.
      s_fieldcat-outputlen = '10'.
      s_fieldcat-emphasize = 'X'.
      s_fieldcat-tabname = 'IT_OUT'.
      APPEND s_fieldcat TO gt_fieldcat.
      CLEAR s_fieldcat.
      s_fieldcat-fieldname = 'ZEILE'.
      s_fieldcat-ref_tabname = 'SER03'.
      s_fieldcat-ref_fieldname = 'ZEILE'.
      s_fieldcat-ddictxt = 'L'.
      s_fieldcat-seltext_l = s_fieldcat-seltext_m = s_fieldcat-seltext_s =
                             'Item'.
      s_fieldcat-outputlen = '10'.
      s_fieldcat-tabname = 'IT_OUT'.
      APPEND s_fieldcat TO gt_fieldcat.
      CLEAR s_fieldcat.
      s_fieldcat-fieldname = 'WERK'.
      s_fieldcat-ref_tabname = 'SER03'.
      s_fieldcat-ref_fieldname = 'WERK'.
      s_fieldcat-ddictxt = 'L'.
      s_fieldcat-seltext_l = s_fieldcat-seltext_m = s_fieldcat-seltext_s =
                             'Plant'.
      s_fieldcat-outputlen = '10'.
      s_fieldcat-tabname = 'IT_OUT'.
      APPEND s_fieldcat TO gt_fieldcat.
      CLEAR s_fieldcat.
      s_fieldcat-fieldname = 'LAGERORT'.
      s_fieldcat-ref_tabname = 'SER03'.
      s_fieldcat-ref_fieldname = 'LAGERORT'.
      s_fieldcat-ddictxt = 'L'.
      s_fieldcat-seltext_l = s_fieldcat-seltext_m = s_fieldcat-seltext_s =
                             'SLoc'.
      s_fieldcat-outputlen = '10'.
      s_fieldcat-tabname = 'IT_OUT'.
      APPEND s_fieldcat TO gt_fieldcat.
      CLEAR s_fieldcat.
      s_fieldcat-fieldname = 'DATUM'.
      s_fieldcat-ref_tabname = 'SER03'.
      s_fieldcat-ref_fieldname = 'DATUM'.
      s_fieldcat-ddictxt = 'L'.
      s_fieldcat-seltext_l = s_fieldcat-seltext_m = s_fieldcat-seltext_s =
                             'Doc Date'.
      s_fieldcat-outputlen = '10'.
      s_fieldcat-tabname = 'IT_OUT'.
      APPEND s_fieldcat TO gt_fieldcat.
      CLEAR s_fieldcat.
      s_fieldcat-fieldname = 'VBELN'.
      s_fieldcat-ref_tabname = 'VBRK'.
      s_fieldcat-ref_fieldname = 'VBELN'.
      s_fieldcat-ddictxt = 'L'.
      s_fieldcat-seltext_l = s_fieldcat-seltext_m = s_fieldcat-seltext_s =
                             'Invoice'.
      s_fieldcat-outputlen = '10'.
      s_fieldcat-tabname = 'IT_OUT'.
      APPEND s_fieldcat TO gt_fieldcat.
      CLEAR s_fieldcat.
      s_fieldcat-fieldname = 'FKDAT'.
      s_fieldcat-ref_tabname = 'VBRK'.
      s_fieldcat-ref_fieldname = 'FKDAT'.
      s_fieldcat-ddictxt = 'L'.
      s_fieldcat-seltext_l = s_fieldcat-seltext_m = s_fieldcat-seltext_s =
                             'Inv Date'.
      s_fieldcat-outputlen = '10'.
      s_fieldcat-tabname = 'IT_OUT'.
      APPEND s_fieldcat TO gt_fieldcat.
      CLEAR s_fieldcat.
      s_fieldcat-fieldname = 'FKART'.
      s_fieldcat-ref_tabname = 'VBRK'.
      s_fieldcat-ref_fieldname = 'FKART'.
      s_fieldcat-ddictxt = 'L'.
      s_fieldcat-seltext_l = s_fieldcat-seltext_m = s_fieldcat-seltext_s =
                             'Inv Type'.
      s_fieldcat-outputlen = '10'.
      s_fieldcat-tabname = 'IT_OUT'.
      APPEND s_fieldcat TO gt_fieldcat.
      CLEAR s_fieldcat.
      s_fieldcat-fieldname = 'VKORG'.
      s_fieldcat-ref_tabname = 'VBRK'.
      s_fieldcat-ref_fieldname = 'VKORG'.
      s_fieldcat-ddictxt = 'L'.
      s_fieldcat-seltext_l = s_fieldcat-seltext_m = s_fieldcat-seltext_s =
                             'S.Org'.
      s_fieldcat-outputlen = '10'.
      s_fieldcat-tabname = 'IT_OUT'.
      APPEND s_fieldcat TO gt_fieldcat.
      CLEAR s_fieldcat.
      s_fieldcat-fieldname = 'VTWEG'.
      s_fieldcat-ref_tabname = 'VBRK'.
      s_fieldcat-ref_fieldname = 'VTWEG'.
      s_fieldcat-ddictxt = 'L'.
      s_fieldcat-seltext_l = s_fieldcat-seltext_m = s_fieldcat-seltext_s =
                             'D.Chnl'.
      s_fieldcat-outputlen = '10'.
      s_fieldcat-tabname = 'IT_OUT'.
      APPEND s_fieldcat TO gt_fieldcat.
      CLEAR s_fieldcat.
      s_fieldcat-fieldname = 'SPART'.
      s_fieldcat-ref_tabname = 'VBRK'.
      s_fieldcat-ref_fieldname = 'SPART'.
      s_fieldcat-ddictxt = 'L'.
      s_fieldcat-seltext_l = s_fieldcat-seltext_m = s_fieldcat-seltext_s =
                             'Div'.
      s_fieldcat-outputlen = '10'.
      s_fieldcat-tabname = 'IT_OUT'.
      APPEND s_fieldcat TO gt_fieldcat.
      CLEAR s_fieldcat.
    ***kdamle-27102004-start
      s_fieldcat-fieldname = 'STATUS'.
      s_fieldcat-ref_tabname = 'ZPREALERT'.
      s_fieldcat-ref_fieldname = 'STATUS'.
      s_fieldcat-ddictxt = 'L'.
      s_fieldcat-seltext_l = s_fieldcat-seltext_m = s_fieldcat-seltext_s =
                             'P Sts'.
      s_fieldcat-outputlen = '10'.
      s_fieldcat-tabname = 'IT_OUT'.
      APPEND s_fieldcat TO gt_fieldcat.
      CLEAR s_fieldcat.
    ***kdamle-27102004-end
    ENDFORM.
    *&      Form  SET_DEFAULTS_GRID
    FORM set_defaults_grid.
      alv_layout-colwidth_optimize = 'X'.
      alv_layout-zebra = 'X'.
    ENDFORM.                    " SET_DEFAULTS_GRID
    *&      Form  SELECT_VARIANT
    FORM select_variant.
      DATA: g_exit(1) TYPE c,
            g_save(1) TYPE c.
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
           EXPORTING
                is_variant = g_variant
                i_save     = 'A'
           IMPORTING
                es_variant = g_variant
           EXCEPTIONS
                not_found  = 2.
      IF sy-subrc EQ 0.
        s_var = g_variant-variant.
      ELSE.
        MESSAGE s000(yw) WITH 'No Variant Found'.
      ENDIF.
    ENDFORM.                    " SELECT_VARIANT
    *&      Form  DISP_TOP_OF_PAGE
    FORM disp_top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
           EXPORTING
                it_list_commentary = gt_list_top_of_page.
    ENDFORM.                    " DISP_TOP_OF_PAGE
    *&      Form  FILL_ALV_EVENTS
    FORM fill_alv_events.
      DATA: ls_line TYPE slis_listheader.
      ls_alv_event-name = 'TOP_OF_PAGE'.
      ls_alv_event-form = 'DISP_TOP_OF_PAGE'.
      APPEND ls_alv_event TO i_alv_event.
      CLEAR: ls_alv_event,
             ls_line.
      ls_line-typ  = 'A'.
      ls_line-info = infotxt.
      APPEND ls_line TO gt_list_top_of_page.
    ENDFORM.                    " FILL_ALV_EVENTS
    *&      Form  GET_FILE
          text
    -->  p1        text
    <--  p2        text
    FORM get_file.
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
           EXPORTING
                program_name = 'ZDOC_SRLST'
                field_name   = p_fname
                mask         = '.'
           CHANGING
                file_name    = p_fname.
      IF sy-subrc <> 0.
        MESSAGE e000(yw) WITH 'Error Uploading File' p_fname.
      ENDIF.
    ENDFORM.                    " GET_FILE
    *&      Form  GET_LFILE
          text
    -->  p1        text
    <--  p2        text
    FORM get_lfile.
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
           EXPORTING
                program_name = 'ZDOC_SRLST'
                field_name   = p_fname1
                mask         = '.'
           CHANGING
                file_name    = p_fname1.
      IF sy-subrc <> 0.
        MESSAGE e000(yw) WITH 'Error Uploading File' p_fname1.
      ENDIF.
    ENDFORM.                    " GET_LFILE
    *&      Form  CREATE_LOCAL_FILE
          text
    -->  p1        text
    <--  p2        text
    FORM create_local_file.
      IF p_lfname IS INITIAL  OR p_fname1 IS INITIAL.
        MESSAGE i000(yw) WITH 'File Name on Server and Local File Name '
                              ' are mandatory.'.
        STOP.
      ENDIF.
      CONCATENATE app_path p_lfname INTO l_path.
      CONDENSE l_path NO-GAPS.
      OPEN DATASET l_path FOR INPUT IN TEXT MODE.
      IF sy-subrc NE 0.
        MESSAGE i000(yw) WITH 'File' p_lfname 'does not exist'.
        STOP.
      ENDIF.
      DO.
        CLEAR : iline.
        READ DATASET l_path INTO iline.
        IF sy-subrc = 0.
          APPEND iline.
        ELSE.
          EXIT.
        ENDIF.
      ENDDO.
      CLOSE DATASET l_path.
      CALL FUNCTION 'WS_DOWNLOAD'
          EXPORTING
            BIN_FILESIZE            = ' '
            CODEPAGE                = ' '
              filename                =  p_fname1
               filetype                = 'DAT'
            ITEM                    = ' '
            MODE                    = ' '
            WK1_N_FORMAT            = ' '
            WK1_N_SIZE              = ' '
            WK1_T_FORMAT            = ' '
            WK1_T_SIZE              = ' '
            FILEMASK_MASK           = ' '
            FILEMASK_TEXT           = ' '
            FILETYPE_NO_CHANGE      = ' '
            FILEMASK_ALL            = ' '
            FILETYPE_NO_SHOW        = ' '
            SILENT                  = 'S'
            COL_SELECT              = ' '
            COL_SELECTMASK          = ' '
            NO_AUTH_CHECK           = ' '
       IMPORTING
            ACT_FILENAME            =
            ACT_FILETYPE            =
            FILESIZE                =
            CANCEL                  =
           TABLES
                data_tab                = iline
            FIELDNAMES              =
          EXCEPTIONS
               invalid_filesize        = 1
               invalid_table_width     = 2
               invalid_type            = 3
               no_batch                = 4
               unknown_error           = 5
               gui_refuse_filetransfer = 6
            CUSTOMER_ERROR          = 7
               OTHERS                  = 8
      IF sy-subrc EQ 0.
    ***kdamle-08122004-start
        CONCATENATE 'File ' p_fname1
                              ' Downloaded Successfully'
          INTO v_msgtxt SEPARATED BY space.
        MESSAGE s000(yw) WITH v_msgtxt+0(50)
                              v_msgtxt+50(50).
    ***kdamle-08122004-end
    Delete processed file from App Server.
        IF sy-subrc EQ 0.
          CONCATENATE 'rm' l_path
              INTO txt SEPARATED BY space.
          CALL 'SYSTEM' ID 'COMMAND' FIELD txt
                        ID 'TAB'     FIELD i_tty[].
        ENDIF.
      ENDIF.
    ENDFORM.                    " CREATE_LOCAL_FILE
    *&      Form  ONLINE_DOWNLOAD
          text
    -->  p1        text
    <--  p2        text
    FORM online_download.
      CALL FUNCTION 'WS_DOWNLOAD' "#nc
           EXPORTING
                filename = p_fname
                filetype = 'ASC'
           TABLES
                data_tab = it_formatted.
      IF sy-subrc EQ 0.
        MESSAGE s016(yw) WITH 'File '
                              p_fname
                              ' Downloaded Successfully'.
      ELSE.
        MESSAGE i000(yw) WITH 'Error Downloading File'
                              p_fname.
      ENDIF.
    ENDFORM.                    " ONLINE_DOWNLOAD
    *&      Form  DOWNLOAD_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM download_data.
    *TRANSFERRING THE DATA TO THE FILE ON THE APPLICATION SERVER
      CONCATENATE app_path p_fname INTO fnam SEPARATED BY space.
      CONDENSE fnam NO-GAPS.
      IF fnam IS INITIAL.
        MESSAGE e000(yw) WITH 'Please Enter Download File Name'.
      ENDIF.
      OPEN DATASET fnam FOR OUTPUT IN TEXT MODE.
      IF sy-subrc = 0.
        LOOP AT it_formatted.
          TRANSFER it_formatted TO fnam.
        ENDLOOP.
        CLOSE DATASET fnam.
        IF sy-subrc = 0.
          MESSAGE s016(yw) WITH 'File '
                                fnam+0(50)
                                fnam+50(50)
                                ' Downloaded Successfully'.
        ELSE.
          MESSAGE i000(yw) WITH

    1)     AVOID SELECT *                                                          
    2)     USE WHERE WITH AS MANY EQ AND RESTRICT DATA RETRIEVAL             
    3)     AVOID SELECTS FROM THE SAME TABLE                                        
    4)     USE BINARY SEARCH WHEN READING FROM INTERNAL TABLES                      
    5)     CHECK IF INTERNAL TABLE IS SORTED BEFORE READING WITH BINARY SRCH       
    6)     FETCH REQUIRED FIELDS USING TRANSPORTING WHEN READING INTERNAL TABLES    
    7)     USE AS MANY PRIMARY AND SECONDARY INDEXES WHEN RETRIEVING DATA           
    8)     USE SELECT SINGLE INSTEAD OF UP TO 1 ROWS                                
    9)     USE BYPASSING BUFFER FOR ONE TIME USE TABLES                         
    10)     USE INSERT <DBTAB> FROM TABLE <ITAB1> INSTEAD OF INSERT INTO <DBTAB>     
    11)     USE WITH KEY WHEN READING FROM AN INTERNAL TAB                           
    12)     SPECIFY KEYS WHEN SORTING AN INTERNAL TABLE                             
    13)     HAVE TYPE DECLARATIONS FOR PARAMETERS PASSED IN SUBROUTINES            
    14)     HAVE TYPE DECLARATIONS FOR FIELD-SYMBOLS                          
    15)     USE WHILE ... ENDWHILE INSTEAD OF DO ... ENDDO                          
    16)     DO NOT USE CHECK CONSTRUCT WITHIN LOOP ... ENDLOOP.    
    17)     DO NOT USE CHECK CONSTRUCT WITHIN SELECT ... ENDSELECT   
    18)     USE CASE STATEMENT INSTEAD OF IF ... ELSEIF ... ENDIF                  
    19)     AVOID USING ORDER BY IN SELECT STATEMENTS. USE SORT BY INSTEAD           
    20)     REMOVE BREAK-POINT FROM THE CODE                                         
    21)     DO NOT USE AT EVENTS IN LOOP...ENDLOOP HAVING FROM OR TO OR WHERE CON  
    22)     DO NOT USE ON CHANGE OF EVENTS IN SELECT...ENDSELECT                     
    23)     DO NOT USE ON CHANGE OF EVENTS IN LOOP ... ENDLOOP                       
    24)     USE %_HINTS IN THE WHERE CLAUSE TO SPECIFY THE INDEX TO BE USED.         
    25)     AVOID USING NESTED SELECTS         
    26)     USE GET <DTABLE> FIELDS F1 F2 F3 ... INSTEAD OF ONLY GET <DTABLE>        
    27)     USE MODIFY <DTABLE> FROM <ITAB> INSTEAD OF WITHIN A LOOP                 
    28)     USE UPDATE <DTABLE> FROM <ITAB> INSTEAD OF WITHIN A LOOP                 
    29)     USE INSERT <DTABLE> FROM <ITAB> INSTEAD OF WITHIN A LOOP                 
    30)     USE DELETE <DTABLE> FROM <ITAB> INSTEAD OF WITHIN A LOOP                 
    31)     AVOID SELECT FROM CLUSTER AND POOL TABLES

  • How to deal with dynamic selection screen elements when macros are used?

    Hello experts,
    This is regarding the dynamic selection screen elements. Actually the requirement is to modify the existing standard report program RFUMSV00 by copying it into a Z report, adding a few selection screen elements and new fields in the output. I actually did everything required except for the one thing that is going out of my reach.
    There are a certain fields which are coming when they are not supposed to get displayed. I don't understand the code because of its obsoleteness. Neither can I debug it because it is just data declaration.
    This is the code where there is a fault. If I copy the entire code into a new Z report, I'm getting new fields like Entry Date, Document Type, Reference Transaction,  Reference key, Logical system.
      DEFINE selection_screen_line.
      selection-screen: begin of line.
      parameters &3 like &4 default 'X' modif id mc4.
      selection-screen: comment (30) &1 for field &3 modif id mc4.
      selection-screen: comment pos_low(10) text-019
                        for field &2 modif id mc4.  "neu
      parameters &2 like rfums_alv-variante modif id mc4.
      selection-screen:
          position pos_high.
      selection-screen: pushbutton (15) text-028
                        user-command &5 modif id mc4.
      selection-screen end of line.
    END-OF-DEFINITION.
    Kindly, suggest me the right solution.

    In the program attributes ( SE38 > RFUMSV00 > GOTO > Properties ), you will find a logical database BRF declared. The include DBBRFSEL is part of the selection screen of this logical database.
    The selection screen is actually the selection screen of this logical database.
    Under the Logical Database field, there is a Selection screen field where you can input which selection screen of the logical database to be used.
    But, this is just to change the selection screen that is displayed. To completely suppress it you need to remove logical database declaration from the properties of the program and call it inside your program through function module.
    You cannot just remove it from the declaration because many of its variables are used in the program.
    So call it using function module as the first step in INITIALIZATION section of the program.
    The syntax and function module to call it in your program can be found in the following thread :
    How to hide the selection screen of a Logical datebase?
    Regards,
    Ashish

  • Ask the Cisco VIP: Troubleshooting SIP in Cisco Unified communications

    Troubleshooting SIP in Cisco Unified communications deployments with Cisco VIP Ayodeji Okanlawon
    This is a Q&A Ask the Expert Session continuation from the Live Webcast
    Ask your questions on Session Initiation Protocol (SIP) and how it is redefining our UC world.The Session Initiation Protocol (SIP) is a signaling communications protocol, widely used for controlling multimedia communication sessions such as voice and video calls over Internet Protocol (IP) networks.
    Featured Expert
    Ayodeji Okanlawon, a Cisco Designated VIP, is the Lead Consultant Engineer for Global Solutions Design and Engineering at Verizon Business. In his past, he has worked at Intact IS, NCS Global, and Schlumberger Information Solutions. His experience includes development of design and deployment of large scale IP telephony projects on Cisco Call Manager platforms, Cisco Voice gateways, Cisco Jabber cloud and on premise solution. His expertise includes SIP solutions, CUBE design and Deployment, Troubleshooting: Voice gateways, CUCM, Unity connection, CUPS. Deji has been awarded the Cisco Designated VIP in 2013 and 2014. Deji holds a Bachelor of Science (BS), Electrical and Electronics Engineering, Second Class Upper from Obafemi Awolowo University.  
    According to Deji, “If you want to advance your career, if you’re serious about your skill sets, you’ve got to be in the forums.”  (Read the Interview >>)
    We look forward to your participation. This event is open to all, including partners.
    * * Remember to use the rating system to let Deji know if you have received an adequate response. * *
    Deji might not be able to answer each question due to the high volume expected during this event. This event runs January 13 through January 23, 2015.  Visit this forum often to view responses to your questions and the questions of other community members.

    Derrick,
    RFC 3261defines ways to provide increased security for a SIP session.
    The following describes areas in SIP that provides security for the protocol
    1. Authenticating users.
    We need to authenticate a user to ensure that the sender of the message is who he claims to be.
    To achieve this SIP uses digest authentication between a UAC, proxy and a UAS. This provides the most basic level of authentication challenge between a client, proxy and a server.
    2. Secure SIP signalling
    The next area we can secure is SIP signalling itself. For this we use SSL/TLS. This is similar to using https in web browsers. With TLS before our any signalling is exchange X.509 certificates are used create a secure TLS channel. All our SIP messages are then transported within the secure channel.
    NB: The digest authentication mentioned above for authenticating a user agent is just authentication. The messages are not protected from reading or modification hence it is recommended that these messages are carried inside a secure TLS channel for better security.
    3. Privacy and Identification
    Additional security features in SIP provides means where any user can choose to either reveal or conceal his identity.
    4.Secure RTP
    SIP also provides the ability to secure the media channel. It is not enough to secure signalling while anyone can listen to the media. RFC3830 discusses how the encryption should be done.
    5. S/MIME
    S/MIME encapsulation is used to protect sip headers making it impossible for any one in between the sender and receiver to modify the sip headers
    Regards

  • Assigning BW Reports to Roles

    Hi, I have 200 BW Reports that I need to Assign to 13 Roles. At present the only way I can think of doing it is by trawling through each query one-by-one and publishing to the role from Query Designer.
    Can someone tell me if there is a much quicker way of doing this. I cant believe that this is the only way to do this.
    Regards
    Matt

    Hi Tajinder,
    Have a look @ S_PROGRAM.
    Though you have the report attached to TCODE its good you attach the report to Auth Group.
    With the help of  the auth group you control who runs the report in SE38 or SA38.
    For variant modification, you can achieve that as well using auth group.
    S_PROGRAM.,
    User action ABAP program.,
    SUBMIT - Start the program
    BTCSUBMIT - Schedule the program to run as a BG job
    VARIANT - Maintain variants (The SUBMIT authorization is necessary here as well, since programs are executed during variant maintenance)
    Authorization group ABAP program
    Value VARIANT will allow to maintain variants for only those programs in Auth Group.
    Read the object documentation for more information.
    Thanks.
    Regards,
    Muthu Kumaran KG

Maybe you are looking for

  • External keyboard and mouse not recognized after waking from sleep

    This started happening all of a sudden. It was working fine before that. When I disconnect the power cable, keyboard, and then connect them back, its not recognized. To make it recognize the keyboard and mouse, I have to logout and login or restart t

  • Send XML Message via HTTP and Receive Response

    Hello, We have a scenario where we need to update Currency Exchange Rates in R/3 via a 3rd party called Oanda.  I'd like to use XI for this Interface, if possible.  Basically, we need to send XML over HTTP.  Here's the URL and the XML we need to use

  • ODI metadata load impacts Hyperion Planning performance

    I am performing a dimension load of approximately 14,000 members, with a few attributes, from an Oracle view. The data is staged instantaneously. But it takes a long time (30mins plus) to load to Planning. During this time, Planning can become unresp

  • Trying to create Managed Server service in Win 2003 does not work

    Hello ... I've created an AdminServer service with no problems: SETLOCAL set DOMAIN_NAME=ClassicDomain set USERDOMAIN_HOME=D:\Apps\Middleware\user_projects\domains\ClassicDomain set SERVER_NAME=AdminServer set PRODUCTION_MODE=true set MEM_ARGS=-Xms25

  • RunInstaller SIGSEGV

    Can someone help me? I' trying to install Oracle 8.1.6 client software on a RedHat 7.0 machine. This machine had it's display exported to another machine but when I start runInstaller I get the following error: Initializing Java Virtual Machine from