ALV access protected event click_row_col ?

Hi All,
Could anyone give a sample code as to how I can access the ALV protected event "click_row_col" ?.
I am trying to get an event to trigger to validate (select only 1 checkbox per row) after user checks on a checkbox on the alv grid display.
Thankss,
Neeth

Hi Nameeth
Or do you want to select the row whose checkbox field is checked. Then, at the data_changed event you can use the method "set_selected_rows" .
Regards
*--Serdar <a href="https://www.sdn.sap.com:443http://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.sdn.businesscard.sdnbusinesscard?u=qbk%2bsag%2bjiw%3d">[ BC ]</a>

Similar Messages

  • How to use Protected event CLICK_ROW_COL  of  cl_gui_alv_grid.

    I've  worked with Double_click,Hotspot_click events of Cl_gui_alv grid class quite comfortable as they are Public.
    But i'm unable to work with click_row_col..
    Could u tell me how to use protected event click_row_col..

    Hi Ilayarajaramana 
    Did you try to build up a subclass of cl_gui_alv_grid and access the protected events via the subclass?
    You could e.g. throw an own public event every time the click_row_col event is risen.
    I know this isn't the best way, but it should work.
    Kind Regards,
    Sebastian

  • Using protected events

    can any one give example program to use protected events from standard class cl_gui_alv_grid using local class in z reports.

    Hi parimi,
    Check this link, this will help you to get some idea.
    Here using protected event CLICK_ROW_COL is explained.
    http://scn.sap.com/thread/1306957
    thanks,
    vidyasagar

  • CL_GUI_ALV_GRID's  event CLICK_ROW_COL

    Hello,
    in order to allow the user a single click on any cell within the alv grid I would like
    use CL_GUI_ALV_GRID's  event CLICK_ROW_COL .
    It is protected so I can't use that. What I can do in this case ?
    Thx in advance for your help.
    Spielwiese

    Look at this code:
    CLASS lcl_gui_alv_event_receiver DEFINITION.
      PUBLIC SECTION.
        METHODS:
    "        Hotspot click control
              handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid  
                                   IMPORTING e_row_id e_column_id es_row_no.    "this will be passed each time your click on the cell
    ENDCLASS.
    CLASS lcl_gui_alv_event_receiver IMPLEMENTATION.
      METHOD handle_hotspot_click .
        DATA: l_mess TYPE string,
              l_row(2) TYPE c.
        WRITE es_row_no-row_id TO l_row.
        CONCATENATE 'Hotspot click at: ' e_column_id-fieldname 'in'
                                         l_row 'row.'
                                         INTO l_mess SEPARATED BY space.
        MESSAGE l_mess TYPE 'I'.    "here for example an info message will pop up with cell address
      ENDMETHOD .                    "handle_hotspot_click
    ENDCLASS.
    DATA: "alv event receiver class
          g_alv_event_ref TYPE REF TO lcl_gui_alv_event_receiver.
    CREATE OBJECT g_alv_event_ref.
    "set handler for your alv
    SET HANDLER g_alv_event_ref->handle_hotspot_click FOR g_alv_grid_ref. "here g_alv_grid_ref must hold your alv grid reference
    Regards
    Marcin

  • Formcalc: access = "protected" puts protected literal in field.

    Hi. I have a form that has a field, EmpNbr, appearing twice. The two fields share the same name with Data Binding set to Use Global Data. I don't want the second field to be enterable so I set the field to protected using FormCalc, see clip below. When viewing the form in Preview PDF it is indeed protected, the cursor skips the field. However, both fields show the literal protected as the initial field value. Why is the literal protected being populated and how can I prevent it?
    If I change the access to readOnly, that becomes the initial value.
    It doesn't help if I change FC to JS.
    Below is a clip of the access command --
    topmostSubform.Page1.EmpNbr[1]::calculate - (FormCalc, client)
      $.access = "protected"
    Thanks for any insight.
    Gary

    The calculate event is "special" and is setup to return whatever the script on the event does back to the caller (in your case the field). So if you add a $.rawValue to the end of your script it will return the current value of the field and all shoudl be good. Note that if you used a different event then this woudl not happen as Calculate is the only event that operates this way.
    So your script shoudl be:
    $.access = "protected"
    $.rawValue
    Hope that helps
    Paul

  • Problem starting Microsoft Forefront Server Protection Eventing Service?

    Hi Guys,
    Our Exchange 2007 Microsoft Exchange Information Store and Microsoft Exchange Transport services wont start. All dependencies have started except Microsoft Forefront Server Protection Eventing Service. We tried starting it manually but we got this message
    (see attached). Any idea how to fix this? Since we cant start Microsoft Exchange Information Store and Microsoft Exchange Transport services, OWA users cant access their emails. Please advise.
    Thanks,
    Arnel

    Hi Arnel,
    Based on your description, I understand that the Microsoft Forefront Server Protection Eventing Service can’t
    be started.
    Please run
    services.msc, select the Microsoft Forefront Server Protection Eventing Service and double-click to open it. In the service properties show box, please select Dependencies tab to check which service that it depends on didn’t start.
    Meanwhile, would you please let me know which version of the
    Forefront for Exchange Server? Please check if you have installed the latest updates to Forefront for Exchange Server. (Such as:
    Hotfix Rollup 3 for Microsoft Forefront Protection for Exchange and so on.)
    By the way, this issue seems to be more related to Forefront for Exchange Server. Please post it in the Forefront
    for Exchange Server forum. I believe we will get a better assistance there.
    https://social.technet.microsoft.com/Forums/forefront/en-US/home?forum=FSENext
    Hope this helps.
    Best regards,
    Justin Gu

  • Adobe Access Protection on iOS devices?

    I am having an issue in terms of Adobe Access not supported in iOS. I have been developing a custom player along with a bunch of other back end Adobe Technologies only to find out now that protection is not available in iOS.
    DRMManager.isSupported returns false when we test the app in iOS Simulator. DRMManager.isSupported returns true when we use Air Simulator.
    I am using OS X 10.9, AIR SDK 4.0, Apache Flex 4.11.0, and Xcode 5.02, and Flash Builder 4.7.
    This is a huge problem and amounts to false advertisement because the protection is supposed to be handled by Adobe AIR which is supposed to be uniform across platforms. If protection is not supported on iOS, then the appeal of write one code for multiple platforms is not there any more.
    I don't understand why protection is not uniformly supported if the same Adobe Air is installed on both iOS and Android devices. I also don't understand why HDS is supported on Android but not on iOS devices. It makes no sense. The whole reason for using Adobe AIR is to not have to deal with the specifics of each platform.
    We were supposed to go live on Jan 1st, but had to postpone to deal with several issues. Now it seems that we may have to reevaluate the decision to use Adobe technologies altogether.
    Any suggestions from Adobe would be appreciated.

    Your comments on point 3 are sobering and kind of a slap in the face to someone who has been developing a streaming app with the idea that Adobe Air has  99% reach in the desktop and mobile market. I went back to the Http Dynamic Streaming and Adobe Access pages to find the restrictions that I missed when I was deciding on the technologies to use.
    The only hint of not being able to use HDS or OSMF on iOS was the omission that Adobe Access protection could be delivered via Adobe Air on iOS devices as shown in the first image below of the Adobe Access technical specs.
    On the other hand, there all kinds of statements and illustrations that would make you believe otherwise, especially on mobile devices.
    No explicit statement can be found that says that HLS is the only way to stream content to iOS devices, that the OSMF framework is HLS agnostic, and that one has to build an iOS native app from scratch if they want to consume protected HLS. I guess not smth you want to put on a page where you want to market a product.
    In building a native app, how do I make up for the lost functionality that comes by default with AIR such as the integration of Adobe Access in AIR, DRM Management, SWF verification, etc.
    As it stands, the OSMF framework is a half-baked solution as it cannot be used on iOS devices because it is HLS agnostic….although some folks have written plugins to enable OSMF to consume HLS.
    I  am currently testing a plugin to see if I can consume protected HLS. If I fail then I will scrap the entire project…which also means not buying Adobe Access or Adobe Media Servers. Neither will I be looking at Adobe Primetime.
    My OSMF based app is able to consume HLS content when I debug in AIR Simulator. Testing on iOS simulator or iOS devices has yet to prove successful. Something breaks inside AIR when it is compiled using iOS SDK.
    The reason why I chose Adobe technologies is because it seemed like all the pieces were there to put together a streaming solution that fit my business model. I did not want to have to write everything and Adobe technologies promised a quick time to market. Now 7 months later I am finding out that perhaps I should have read the Adobe Access technical specs with the precision of a lawyer.
    In my testing, protected content cannot be consumed in AIR unless DRMManager class is available. In help.adobe.com we read the following:
    “The DRMManager manages the retrieval and storage of the vouchers needed to view DRM-protected content. With the static DRMManager.getDRMManager() method, you can access the existing DRMManager object to perform the following DRM-management tasks:
    Preload vouchers from a media rights server, using a DRMContentData object.
    Query the local cache for an individual voucher, using a DRMContentData object.
    Reset all vouchers (AIR only)
    AIR profile support: This feature is supported on all desktop operating systems and AIR for TV devices, but it is not supported on mobile devices. You can test for support at run time using the DRMManager.isSupported property.”
    Using OSMF 2.0 framework, I have been able to take advantage of both PHDS and Adobe Access protection schemes in my Flex based app running on Adobe Air on Android. In Android Devices, DRMManager .isSupported returns true.
    In iOS, it seems to be a whole different story. As I said in my first post, DRMManager.isSupported returns false when testing via iOS Simulator but returns true when testing via Air Simulator.  So the attack vector idea that you put forward cannot stand because if that was true it would require DRMManager.isSupported to be false in all debugging scenarios not just on iOS Simulator or iOS devices.
    The behavior of the app in iOS simulator and Air Simulator is not consistent when it comes to responding to touch based events and rendering visual elements as well. Performance and functionality degrades even more when testing directly on iOS devices. All iOS devices exhibit the same symptoms. For example, trying to select a list item is almost impossible….item renderers simply do not respond when one tries to select an item.
    No such symptoms or differences exist between AIR Simulator and Android devices. So, it seems to me that there are AIR to iOS compilation issues when a mobile air app is packaged through iOS SDK. Smth brakes inside of AIR during packaging. I believe that this is the reason why DRMManager.isSupported returns false when testing app in iOS simulator and devices.

  • .access = "protected"

    I read a thread that this prevents fields from being in the tabbing sequence..
    Through javascript I set some field (textfield) access to protected.. (and when alerting their access, I am getting that they are protected) but they are still receiving focus ! Is there a solution for this? I have some readonly fields that are readonly & should not be included in the tabbing sequence (like it used be in the good old days!!)
    Thanks for any help!

    Chris,
    I created three text fields in LCD 8.0. I setup the second text field to be ReadOnly and in the initialize event I placed the following:
    this.access = "protected";
    When previewed, the second text field was not editable and was skipped in the tab order.
    Rick Kuhlmann

  • How do i turn on network access protection on windows 8.1 with an hp p6-2326S pc?

    i got a phone call from a unknown source today  at around  3 pm they said  that hackers where trying to access my computer . they  ran a scan  and it showed thre things one was  my network access protection was turned off .  2 hackers were trying to hack into my computer  i cant remember the 3rd one its in my note pad  but  then i got this big run around and i told them from the start that i had no money and that i had just buried my mom on the 2nd of this month after a long battle   and that i had just had a bad episode with my blood pressure wasnt feeling god  and so on ,all of which are true  once i finally convinced the  worker of the fact i had no money he put his super visor on the line .the supervisor was stalling i could tell im no dummy when it comes to software and computers i taught myself  xp professional and the windows 8.1 which im still learning   i finally got tired of his super visor retstartd my computer and got control uninstalled skype  mozilla nightly and mozilla experimental  and several other prorams  with my revo pro uninstaller  my computer is rinning smooth now but i have seen .that ny network access protection is turned off ,how do i turn this on and is it neccasary i have malware bytes new 2.7. something full time  bought and paid for protection and windows defender .i run  a discclean every day and my mal;ware bytes and windows defender any thoughts and ideas would be appreciated i do have HP SUPPORT ASSISTANT AND MY  WARRANTY IS UP TO DATE AND PAID FOR .. sincerely donald hutchison

    dhutch1 wrote:
    i got a phone call from a unknown source today  at around  3 pm they said  that hackers where trying to access my computer . they  ran a scan  and it showed thre things one was  my network access protection was turned off . ...
    Hi,
    Now the trouble may start, you did allow people to logon to your computer and you believe them !  HP Support Assisstant is there to support your technical problems it does not know you will open the door of your house for someone to comes in to steal your money.
    Now, please change all your passwords to logon to email, bank account(s) ..... before too late. Also please download the following tool nd run on your computer, hope it can remove the nasty bits.
    Good luck.
    BH
    **Click the KUDOS thumb up on the left to say 'Thanks'**
    Make it easier for other people to find solutions by marking a Reply 'Accept as Solution' if it solves your problem.

  • G'day.  I am using iMovie 11 and need to clear disk space.  How can I do that using an external drive, leaving me the option to go back and make changes or access old events or projects from that external drive?

    G'day.  I am using iMovie 11 and need to clear disk space.  How can I do that using an external drive, leaving me the option to go back and make changes or access old events or projects from that external drive?

    The slightly bigger question is whether you want to move all movie content to the external drive (essentially meaning that drive will always need to be attached when you're working with your videos), or whether you just want to archive older videos off to the external drive.
    If you want to move all videos, then just move the 'Movies' folder in your home directory to the external drive, then create an alias of the external 'Movies' back in to your home directory. Now the 'Movies' icon in your home directory will point to the external drive and everything will just work (as long as the external drive is attached when you launch iMovie)
    If you want to archive older movies then each Movie should have its own subdirectory within your Movies folder. These can easily be moved off to the external drive, and moved back should you ever need to work on those movies again.

  • Microsoft Forefront Server Protection Eventing Service won't start?

    Hi Guys,
    When Forefront Protection for Exchange was integrated/enabled on our SBS 2008 server, Microsoft Forefront Server Protection Eventing Service won’t start. Even when we try to start it manually we are getting this message (see attached). During this attempt,
    we got these events in the event viewer. In this case, in order to have our email working, we have to temporarily disable Forefront. Any suggestion how to fix this? Please advise.
    Event 465
    Source: ESENT
    FSCEventing (9324) Corruption was detected during soft recovery in logfile C:\Program Files (x86)\Microsoft Forefront Protection for Exchange Server\Data\Incidents\inc.log. The failing checksum record is located at position END. Data not matching the log-file
    fill pattern first appeared in sector 450 (0x000001C2). This logfile has been damaged and is unusable.
    Event 301
    Source: ESENT
    FSCEventing (9324) The database engine has begun replaying logfile C:\Program Files (x86)\Microsoft Forefront Protection for Exchange Server\Data\Incidents\inc.log.
    Event 454
    Source: ESENT
    FSCEventing (9324) Database recovery/restore failed with unexpected error - 501.
    Event 1076
    Source: FSCEventing
    The Forefront Protection Eventing Service has stopped.
    Thank you very much!
    Arnel

    Hi Arnel,
    Based on error messages, it indicates a log file (inc.log) has become corrupted. Please restore the log file
    from a backup copy, and then check if this issue can be solved. For more details, please refer to the following article.
    Event Id 465
    Hope this helps.
    Best regards,
    Justin Gu

  • Why can not catch the standard BACK event in ALV's USER_COMMAND event,

    Hi expert, why i can not catch the standard BACK event in ALV's USER_COMMAND event,
    Code:
    DATA G_CON_UC_FORM   TYPE SLIS_FORMNAME VALUE 'F_USER_COMMAND',
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM      = SY-REPID
          I_CALLBACK_TOP_OF_PAGE  = G_CON_FORM
          I_CALLBACK_USER_COMMAND = G_CON_UC_FORM
          IT_FIELDCAT             = G_TAB_FIELDCAT
          IT_SORT                 = G_TAB_SORT_INF
          I_SAVE                  = G_CON_U
    *<<<Liang
        IT_EVENTS               = G_TAB_ALV_EVENTS
    *<<<Liang
        TABLES
          T_OUTTAB                = G_TAB_OUTPUT_DATA
        EXCEPTIONS
          PROGRAM_ERROR           = 1
          OTHERS                  = 2.
    *&      Form  F_USER_COMMAND
          ALV USER COMMAND processing
    FORM F_USER_COMMAND .
      IF SY-UCOMM = '&FO3'.
        LEAVE TO SCREEN 0.
      ENDIF.
    ENDFORM.                    " F_USER_COMMAND
    When I set breakpoint on this subrouting ,and try to click stardard  BACK or CANCEL button, the callback form do not run, but if double click one of line of alv report, the callback form works well,
    so why??

    hi
    good
    check this report and change your code accordingly.
    THESE LINES ARE FOR THE MAIN PROGRAM ***
    SAP V40B ***
    REPORT Z_PICK_LIST .
    TABLES: RESB.
    SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-BL1.
    SELECT-OPTIONS: S_WERKS FOR RESB-WERKS," Plant
                    S_AUFNR FOR RESB-AUFNR," Order number
                    S_BDTER FOR RESB-BDTER." Req. date
    SELECTION-SCREEN END OF BLOCK BL1.
    PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT DEFAULT '/STANDARD'.
    DATA: BEGIN OF OUT OCCURS 10,
            AUFNR LIKE RESB-AUFNR,         " Order number
            MATNR LIKE RESB-MATNR,         " Material
            BDMNG LIKE RESB-BDMNG,         " Requirements in UM
            MEINS LIKE RESB-MEINS,         " Unit of Measure (UM)
            ERFMG LIKE RESB-ERFMG,         " Requirements in UE
            ERFME LIKE RESB-ERFME,         " Unit of Entry (UE)
            MAKTX LIKE MAKT-MAKTX,         " Mat. description
          END OF OUT.
    INCLUDE Z_ALV_VARIABLES.
    INITIALIZATION.
      REPNAME = SY-REPID.
      PERFORM INITIALIZE_FIELDCAT USING FIELDTAB[].
      PERFORM BUILD_EVENTTAB USING EVENTS[].
      PERFORM BUILD_COMMENT USING HEADING[].
      PERFORM INITIALIZE_VARIANT.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
      PERFORM F4_FOR_VARIANT.
    AT SELECTION-SCREEN.
      PERFORM PAI_OF_SELECTION_SCREEN.
    START-OF-SELECTION.
      PERFORM GET_ORDERS.
      PERFORM GET_MATERIAL_DESCRIPTION.
    END-OF-SELECTION.
      PERFORM BUILD_LAYOUT USING LAYOUT.
      PERFORM BUILD_PRINT  USING PRINTS.
      PERFORM WRITE_USING_ALV.
          FORM INITIALIZE_FIELDCAT                               *
    -->  P_TAB                                                         *
    FORM INITIALIZE_FIELDCAT USING P_TAB TYPE SLIS_T_FIELDCAT_ALV.
      DATA: CAT TYPE SLIS_FIELDCAT_ALV.
      CLEAR CAT.
    ENDFORM.                               " INITIALIZE_FIELDCAT
    *&      Form  GET_ORDERS
          text
    FORM GET_ORDERS.
      SELECT AUFNR MATNR BDMNG MEINS ERFMG ERFME
             FROM RESB
             APPENDING TABLE OUT
             WHERE XLOEK EQ SPACE          " deletion indicator
             AND   XWAOK EQ 'X'            " goods movement indicator
             AND   WERKS IN S_WERKS        " plant
             AND   BDTER IN S_BDTER        " req. date
             AND   AUFNR IN S_AUFNR.       " pr. order
    ENDFORM.                               " GET_ORDERS
    *&      Form  GET_MATERIAL_DESCRIPTION
          text
    FORM GET_MATERIAL_DESCRIPTION.
      SORT OUT BY MATNR.
      LOOP AT OUT.
        SELECT SINGLE MAKTX
               INTO OUT-MAKTX
               FROM MAKT
               WHERE MATNR EQ OUT-MATNR
               AND   SPRAS EQ 'EN'.
        MODIFY OUT.
      ENDLOOP.
      SORT OUT BY AUFNR MATNR.
    ENDFORM.                               " GET_MATERIAL_DESCRIPTION
          FORM TOP_OF_PAGE                                              *
    FORM TOP_OF_PAGE.
      DATA: L_POS TYPE P.
    first line
      WRITE:/ TEXT-001.                    " Plant:
      IF S_WERKS-HIGH NE SPACE.
        WRITE: S_WERKS-LOW, TEXT-TO1, S_WERKS-HIGH.
      ELSEIF S_WERKS-LOW NE SPACE.
        LOOP AT S_WERKS.
          WRITE: S_WERKS-LOW.
        ENDLOOP.
      ELSEIF S_WERKS-LOW EQ SPACE.
        WRITE: TEXT-ALL.
      ENDIF.
      L_POS = ( SY-LINSZ DIV 2 ) - ( STRLEN( TEXT-TIT ) DIV 2 ).
      POSITION L_POS. WRITE: TEXT-TIT.
      L_POS = SY-LINSZ - 20.
      POSITION L_POS. WRITE: TEXT-011, SY-UNAME RIGHT-JUSTIFIED.  " User:
    second line
      WRITE:/ TEXT-002.                    " Order:
      IF S_AUFNR-HIGH NE SPACE.
        WRITE: S_AUFNR-LOW, TEXT-TO1, S_AUFNR-HIGH.
      ELSEIF S_AUFNR-LOW NE SPACE.
        LOOP AT S_AUFNR.
          WRITE: S_AUFNR-LOW.
        ENDLOOP.
      ELSEIF S_AUFNR-LOW EQ SPACE.
        WRITE: TEXT-ALL.
      ENDIF.
      L_POS = SY-LINSZ - 20.
      POSITION L_POS. WRITE: TEXT-012,SY-DATUM.      " Date:
    third line
      WRITE:/ TEXT-003.                    " Req. Date:
      IF S_BDTER-HIGH(1) NE '0'.
        WRITE: S_BDTER-LOW, TEXT-TO1, S_BDTER-HIGH.
      ELSEIF S_BDTER-LOW(1) NE '0'.
        LOOP AT S_BDTER.
          WRITE: S_BDTER-LOW.
        ENDLOOP.
      ELSEIF S_BDTER-LOW(1) EQ '0'.
        WRITE: TEXT-ALL.
      ENDIF.
      L_POS = SY-LINSZ - 20.
      POSITION L_POS. WRITE: TEXT-013, SY-PAGNO.   " Page:
    ENDFORM.                               " TOP_OF_PAGE
          FORM END_OF_LIST                                              *
    FORM END_OF_LIST.
      DATA: L_POS TYPE P.
      ULINE.
      WRITE:/ '|', TEXT-021.      " Delivered by:
      L_POS = SY-LINSZ DIV 2.
      POSITION L_POS. WRITE: '|', TEXT-031.            " Received by:
      L_POS = SY-LINSZ.
      POSITION L_POS. WRITE: '|'.
      WRITE:/ '|'.
      L_POS = SY-LINSZ DIV 2.
      POSITION L_POS. WRITE: '|'.
      L_POS = SY-LINSZ.
      POSITION L_POS. WRITE: '|'.
      ULINE.
      WRITE:/ '|', TEXT-012.      " Date:
      L_POS = SY-LINSZ DIV 2.
      POSITION L_POS. WRITE: '|', TEXT-012.            " Date:
      L_POS = SY-LINSZ.
      POSITION L_POS. WRITE: '|'.
      WRITE:/ '|'.
      L_POS = SY-LINSZ DIV 2.
      POSITION L_POS. WRITE: '|'.
      L_POS = SY-LINSZ.
      POSITION L_POS. WRITE: '|'.
      ULINE.
    ENDFORM.                               " END_OF_LIST
    *&      Form  WRITE_USING_ALV
          text
    FORM WRITE_USING_ALV.
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
           EXPORTING
                I_PROGRAM_NAME     = REPNAME
                I_INTERNAL_TABNAME = 'OUT'
                I_INCLNAME         = REPNAME
           CHANGING
                CT_FIELDCAT        = FIELDTAB.
      IF SY-SUBRC <> 0.
        WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_FIELDCATALOG_MERGE'.
      ENDIF.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
           EXPORTING
                I_CALLBACK_PROGRAM       = REPNAME
               i_callback_pf_status_set = 'PF_STATUS_SET'
               i_callback_user_command  = 'USER_COMMAND'
                I_STRUCTURE_NAME         = 'OUT'
                IS_LAYOUT                = LAYOUT
                IT_FIELDCAT              = FIELDTAB
                I_DEFAULT                = 'A'
                I_SAVE                   = G_SAVE
                IS_VARIANT               = G_VARIANT
                IT_EVENTS                = EVENTS[]
                IS_PRINT                 = PRINTS
           TABLES
                T_OUTTAB                 = OUT.
      IF SY-SUBRC <> 0.
        WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_LIST_DISPLAY'.
      ENDIF.
    ENDFORM.                               " WRITE_USING_ALV
    THESE LINES ARE FOR THE INCLUDE ***
    ***INCLUDE Z_ALV_VARIABLES .
    TYPE-POOLS: SLIS.
    DATA: FIELDTAB TYPE SLIS_T_FIELDCAT_ALV,
          HEADING  TYPE SLIS_T_LISTHEADER,
          LAYOUT   TYPE SLIS_LAYOUT_ALV,
          EVENTS   TYPE SLIS_T_EVENT,
          REPNAME  LIKE SY-REPID,
          F2CODE   LIKE SY-UCOMM VALUE  '&ETA',
          PRINTS   TYPE SLIS_PRINT_ALV,
          TITLE(40) TYPE C,
          G_SAVE(1) TYPE C,
          G_EXIT(1) TYPE C,
          G_VARIANT LIKE DISVARIANT,
          GX_VARIANT LIKE DISVARIANT.
    CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
               FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE',
               FORMNAME_END_OF_LIST TYPE SLIS_FORMNAME VALUE 'END_OF_LIST',
               FORMNAME_BEFORE_LINE TYPE SLIS_FORMNAME VALUE 'BEFORE_LINE',
               FORMNAME_AFTER_LINE TYPE SLIS_FORMNAME VALUE 'AFTER_LINE'.
          FORM MAIN_STATEMENTS                                          *
    THIS IS THE CODE THAT MUST BE INSERTED IN THE MAIN PROGRAM
    FORM MAIN_STATEMENTS.
    Declare the parameter P_VARI wherever you want it. If you don't
    want it, hide it with NO-DISPLAY, but it must exist.
    parameters: p_vari like disvariant-variant. " ALV Variant
    You have to add the following line after the data and parameter
    declaration:
    include z_alv_variables.
    Then, after the data/parameter declaration, add these lines:
    *initialization.
    repname = sy-repid.
    perform initialize_fieldcat using fieldtab[].
    perform build_eventtab using events[].
    perform build_comment using heading[].
    perform initialize_variant.
    If you are using the variable P_VARI (ALV Variant), also add this:
    *at selection-screen on value-request for p_vari.
    perform f4_for_variant.
    *at selection-screen.
    perform pai_of_selection_screen.
    After the "END-OF-SELECTION" statement, add these lines:
    perform build_layout using layout.
    perform build_print  using prints.
    perform write_using_alv.
    You also have to create the following forms: (you can find samples
    in this program)
    INITIALIZE_FIELDCAT
    USER_COMMAND     (only if you are creating a STATUS)
    WRITE_USING_ALV
    ENDFORM.
    *&      Form  INITIALIZE_FIELDCAT_SAMPLE
          THIS IS A SAMPLE, DO NOT USE THIS FORM IN YOUR PROGRAM
         -->P_FIELDTAB[]  text                                           *
    FORM INITIALIZE_FIELDCAT_SAMPLE USING P_TAB TYPE SLIS_T_FIELDCAT_ALV.
      DATA: CAT TYPE SLIS_FIELDCAT_ALV.
      CLEAR CAT.                           " Always clear before use
      CAT-TABNAME = 'I'.                   " Your internal table
      CAT-REF_TABNAME = 'ZCUSTMAS'.  " The data dictionary reference table
      CAT-FIELDNAME = 'KUNNR'.       " Name of your field in the itable.
      CAT-COL_POS   = 1.                   " Output position
      APPEND CAT TO P_TAB.
      CAT-FIELDNAME = 'NAME1'.             " Next field
      CAT-COL_POS   = 2.
      APPEND CAT TO P_TAB.
      CAT-FIELDNAME = 'STRAS'.             " and the next
      CAT-COL_POS   = 3.
      APPEND CAT TO P_TAB.
      CAT-FIELDNAME = 'LOEVM'.
      CAT-SELTEXT_S = 'Del'.         " You can always override the descrip-
      CAT-SELTEXT_M = 'Delivery'.          " tion (short, medium, large)
      CAT-SELTEXT_L = 'Delivery Num'.
      CAT-COL_POS   = 4.
      APPEND CAT TO P_TAB.
      CAT-FIELDNAME = 'FKIMG'.
      CAT-DO_SUM    = 'X'.                 " You want totals calculated.
      CAT-NO_OUT    = 'X'.                 " and hidden.
      APPEND CAT TO P_TAB.
    ENDFORM.                               " INITIALIZE_FIELDCAT
    *&      Form  BUILD_EVENTTAB
          THIS IS THE SAME FOR ALL THE PROGRAMS
         -->P_EVENTS[]  text                                             *
    FORM BUILD_EVENTTAB USING P_EVENTS TYPE SLIS_T_EVENT.
      DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
           EXPORTING
                I_LIST_TYPE = 0
           IMPORTING
                ET_EVENTS   = P_EVENTS.
      READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
                               INTO LS_EVENT.
      IF SY-SUBRC = 0.
        MOVE FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
        APPEND LS_EVENT TO P_EVENTS.
      ENDIF.
      CLEAR LS_EVENT.
      READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_END_OF_LIST
                               INTO LS_EVENT.
      IF SY-SUBRC = 0.
        MOVE FORMNAME_END_OF_LIST TO LS_EVENT-FORM.
        APPEND LS_EVENT TO P_EVENTS.
      ENDIF.
      CLEAR LS_EVENT.
      READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_BEFORE_LINE_OUTPUT
                               INTO LS_EVENT.
      IF SY-SUBRC = 0.
        MOVE FORMNAME_BEFORE_LINE TO LS_EVENT-FORM.
        APPEND LS_EVENT TO P_EVENTS.
      ENDIF.
      CLEAR LS_EVENT.
      READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_AFTER_LINE_OUTPUT
                               INTO LS_EVENT.
      IF SY-SUBRC = 0.
        MOVE FORMNAME_AFTER_LINE TO LS_EVENT-FORM.
        APPEND LS_EVENT TO P_EVENTS.
      ENDIF.
      CLEAR LS_EVENT.
      READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE
                               INTO LS_EVENT.
      IF SY-SUBRC = 0.
        MOVE FORMNAME_END_OF_PAGE TO LS_EVENT-FORM.
        APPEND LS_EVENT TO P_EVENTS.
      ENDIF.
    ENDFORM.                               " BUILD_EVENTTAB
    *&      Form  BUILD_COMMENT
    NOT REALLY NEEDED, BUT I'LL LEAVE IT THERE, JUST IN CASE...
         -->P_HEADING[]  text                                            *
    FORM BUILD_COMMENT USING P_HEADING TYPE SLIS_T_LISTHEADER.
      DATA: HLINE TYPE SLIS_LISTHEADER,
            TEXT(60) TYPE C,
            SEP(20) TYPE C.
      CLEAR: HLINE, TEXT.
      HLINE-TYP  = 'H'.
    write: text-101 to text+23.
      HLINE-INFO = TEXT.
      APPEND HLINE TO P_HEADING.
    ENDFORM.                               " BUILD_COMMENT
    *&      Form  INITIALIZE_VARIANT
    VERY IMPORTANT WHEN YOU USE VARIANTS!!!
    FORM INITIALIZE_VARIANT.
      G_SAVE = 'A'.
      CLEAR G_VARIANT.
      G_VARIANT-REPORT = REPNAME.
      GX_VARIANT = G_VARIANT.
      CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
           EXPORTING
                I_SAVE     = G_SAVE
           CHANGING
                CS_VARIANT = GX_VARIANT
           EXCEPTIONS
                NOT_FOUND  = 2.
      IF SY-SUBRC = 0.
        P_VARI = GX_VARIANT-VARIANT.
      ENDIF.
    ENDFORM.                               " INITIALIZE_VARIANT
    *&      Form  PAI_OF_SELECTION_SCREEN
    ALSO FOR VARIANTS
    FORM PAI_OF_SELECTION_SCREEN.
      IF NOT P_VARI IS INITIAL.
        MOVE G_VARIANT TO GX_VARIANT.
        MOVE P_VARI TO GX_VARIANT-VARIANT.
        CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
             EXPORTING
                  I_SAVE     = G_SAVE
             CHANGING
                  CS_VARIANT = GX_VARIANT
             EXCEPTIONS
                  WRONG_INPUT   = 1
                  NOT_FOUND     = 2
                  PROGRAM_ERROR = 3.
        IF SY-SUBRC EQ 0.
          G_VARIANT = GX_VARIANT.
        ELSE.
          PERFORM INITIALIZE_VARIANT.
        ENDIF.
      ELSE.
        PERFORM INITIALIZE_VARIANT.
      ENDIF.
    ENDFORM.                               " PAI_OF_SELECTION_SCREEN
    *&      Form  F4_FOR_VARIANT
          text
    FORM F4_FOR_VARIANT.
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
           EXPORTING
                IS_VARIANT = G_VARIANT
                I_SAVE     = G_SAVE
           IMPORTING
                E_EXIT     = G_EXIT
                ES_VARIANT = GX_VARIANT
           EXCEPTIONS
                NOT_FOUND  = 2.
      IF SY-SUBRC = 2.
        MESSAGE ID SY-MSGID TYPE 'S'      NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ELSE.
        IF G_EXIT = SPACE.
          P_VARI = GX_VARIANT-VARIANT.
        ENDIF.
      ENDIF.
    ENDFORM.                               " F4_FOR_VARIANT
    *&      Form  BUILD_LAYOUT
    STANDARD LAYOUT
         -->P_LAYOUT  text                                               *
    FORM BUILD_LAYOUT USING P_LAYOUT TYPE SLIS_LAYOUT_ALV.
      P_LAYOUT-F2CODE       = F2CODE.
      P_LAYOUT-ZEBRA        = 'X'.
    p_layout-detail_popup = 'X'.
      P_LAYOUT-TOTALS_TEXT  = SPACE.
      P_LAYOUT-SUBTOTALS_TEXT = SPACE.
    ENDFORM.                               " BUILD_LAYOUT
          FORM BUILD_PRINT                                              *
    STANDARD PRINT OPTIONS                                             *
    -->  P_PRINT                                                       *
    FORM BUILD_PRINT USING P_PRINT TYPE SLIS_PRINT_ALV.
      P_PRINT-NO_PRINT_LISTINFOS = 'X'.
      P_PRINT-NO_PRINT_SELINFOS  = ' '.
    ENDFORM.                               " BUILD_PRINT
          FORM PF_STATUS_SET                                            *
    NAME YOUR STATUS ALV. IF YOU NEED IT..                             *
    FORM PF_STATUS_SET USING EXTAB TYPE SLIS_T_EXTAB.
      SET PF-STATUS 'ALV' EXCLUDING EXTAB.
    ENDFORM.                               " PF_STATUS_SET
          FORM USER_COMMAND_SAMPLE                                      *
    -->  UCOMM                                                         *
    -->  SELFIELD                                                      *
    FORM USER_COMMAND_SAMPLE USING UCOMM    LIKE SY-UCOMM
                               SELFIELD TYPE SLIS_SELFIELD.
      CASE UCOMM.
        WHEN 'MSXL'.                       " Export to Excel
         perform set_excel_export.
          CLEAR UCOMM.
        WHEN 'MM03'.
         set parameter id 'MAT' field selfield-value.
         call transaction 'MM03' and skip first screen.
          CLEAR UCOMM.
        WHEN 'BGR1'.
         perform fill_available.
         perform graph_available.
          CLEAR UCOMM.
        WHEN 'DOCU'.
         call function 'Z_HELP' exporting repname = repname.
      ENDCASE.
    ENDFORM.                               " USER_COMMAND
    *&      Form  WRITE_USING_ALV_SAMPLE
    *THIS IS A SAMPLE AND MUST BE WRITTEN DIRECTLY IN THE MAIN PROGRAM
    FORM WRITE_USING_ALV_SAMPLE.
    YOU CAN MERGE WITH A DATA DICTIONARY TABLE USING THIS:
    call function 'REUSE_ALV_FIELDCATALOG_MERGE'
          exporting
               i_program_name     = repname
               i_internal_tabname = 'I'
               i_inclname         = repname
          changing
               ct_fieldcat        = fieldtab.
    if sy-subrc <> 0.
       write: 'SY-SUBRC: ', sy-subrc, 'REUSE_ALV_FIELDCATALOG_MERGE'.
    endif.
    OR JUST DISPLAY IT USING THIS:
    call function 'REUSE_ALV_LIST_DISPLAY'
          exporting
               i_callback_program       = repname
               i_callback_pf_status_set = 'PF_STATUS_SET'
               i_callback_user_command  = 'USER_COMMAND'
               i_structure_name         = 'I'
               is_layout                = layout
               it_fieldcat              = fieldtab
               i_default                = 'A'
               i_save                   = g_save
               is_variant               = g_variant
               it_events                = events[]
               is_print                 = prints
          tables
               t_outtab                 = i.
    if sy-subrc <> 0.
       write: 'SY-SUBRC: ', sy-subrc, 'REUSE_ALV_LIST_DISPLAY'.
    endif.
    ENDFORM.                               " WRITE_USING_ALV
    thanks
    mrutyun^

  • Cannot play Adobe Access Protected Content in Chrome (version 30 and higher); Error 3321/3322?

    Symptom:
    An end-user cannot play Adobe Access protected content.  The client application returns a persistent 3321 (Individualization Error) or 3322 (Device Binding Failure) error code.
    Root Cause in Chrome Browser:
    Adobe Access DRM must create a unique machine identifier (I.e. "token") to identify the the device.  This token is provided to the Adobe Access license server during a license request to view DRM protected content.  If Chrome Browser disables the ability for Adobe Access DRM to create a unique machine identifier, playback of Protected Content will fail with a 3321 or 3322 error code.  By default, this setting is enabled and available to toggle in Chrome Browser version 30 and higher.  Unchecking this option will prevent Adobe Access DRM from properly functioning. A 3321 or 3322 error that persists after a call to resetDRMVouchers is an indicator that this setting may need to be changed.
    Resolution:
    In your Chrome settings:
    •             Click on "Show advanced settings…"
    •             In the subsequent "Privacy" section, click on "Content settings…"
    •             In the subsequent "Protected Content" section, make sure that the following box is checked "Allow identifiers for protected content (computer restart may be required)".
      We are working with Google to allow better detection of this condition, so that the client will return a 3368 (User cancelled or user settings disallow operation) error code when the box is unchecked.

    Symptom:
    An end-user cannot play Adobe Access protected content.  The client application returns a persistent 3321 (Individualization Error) or 3322 (Device Binding Failure) error code.
    Root Cause in Chrome Browser:
    Adobe Access DRM must create a unique machine identifier (I.e. "token") to identify the the device.  This token is provided to the Adobe Access license server during a license request to view DRM protected content.  If Chrome Browser disables the ability for Adobe Access DRM to create a unique machine identifier, playback of Protected Content will fail with a 3321 or 3322 error code.  By default, this setting is enabled and available to toggle in Chrome Browser version 30 and higher.  Unchecking this option will prevent Adobe Access DRM from properly functioning. A 3321 or 3322 error that persists after a call to resetDRMVouchers is an indicator that this setting may need to be changed.
    Resolution:
    In your Chrome settings:
    •             Click on "Show advanced settings…"
    •             In the subsequent "Privacy" section, click on "Content settings…"
    •             In the subsequent "Protected Content" section, make sure that the following box is checked "Allow identifiers for protected content (computer restart may be required)".
      We are working with Google to allow better detection of this condition, so that the client will return a 3368 (User cancelled or user settings disallow operation) error code when the box is unchecked.

  • Page Access Protection -Arguments Must Have checksum question

    If we want to call popup page that is defined as "Page Access Protection -Arguments Must Have checksum", then HTMLDB_UTIL.PREPARE_URL has to be called for every used URL-OK!
    <br><br>
    This calculation is easy to perform in "OnLoad-Before region" process, where some hidden varible is assigned as:
    :P_HIDDEN_VAR_URL:= HTMLDB_UTIL.PREPARE_URL('*f?p=&APP_ID.:2:&APP_SESSION.::NO::P_PROCESS:1');<br>
    and later used in call:
    javascript:popupURL('&P_HIDDEN_VAR_URL.');<br>
    AFAIK, this approach has a limitation if popup links are placed in table grid. If in grid link is defined as:
    <*a href="*javascript:popupURL('*f?p=&APP_ID.:2:&APP_SESSION.::NO:RP,2:P_PROCESS:#ID#')">#SOME_FIELD#</a><br>
    then no "HTMLDB_UTIL.PREPARE_URL" cannot be used, because every value depend on each grid row (ID field).
    <br><br>
    So is there a solution in such a cases to call popup page that have mentioned type of page access protection?
    <br>
    THX!

    See results below for call to prepare_url in SQL*Plus. It doesn't do anything, as you can see. The function can only generate a secure checksum (to be ultimately verified later within the application context) if it has some secret knowledge that is known only within the application context. So to expect it to work outside that context may be a requirement that conflicts with security aims.
    Is your requirement to use apex_mail.send from a job? Maybe you could generate the links with user-level checksums from within the application (for every possible user/argument value combination) and save them off in a table for retrieval by the mailer program. Just a thought.
    SQL> select apex_util.prepare_url('f?p=211:2:5103232296113234:x') from dual;
    APEX_UTIL.PREPARE_URL('F?P=211:2:5103232296113234:X')
    f?p=211:2:5103232296113234:x::::
    SQL> select apex_util.prepare_url('f?p=211:2:5103232296113234:x','3') from dual;
    APEX_UTIL.PREPARE_URL('F?P=211:2:5103232296113234:X','3')
    f?p=211:2:5103232296113234:x::::
    SQL> select apex_util.prepare_url('f?p=211:2:5103232296113234:x','2') from dual;
    APEX_UTIL.PREPARE_URL('F?P=211:2:5103232296113234:X','2')
    f?p=211:2:5103232296113234:x::::
    SQL> select apex_util.prepare_url('f?p=211:2:5103232296113234:x','1') from dual;
    APEX_UTIL.PREPARE_URL('F?P=211:2:5103232296113234:X','1')
    f?p=211:2:5103232296113234:x::::
    SQL>
    Scott

  • OAM11g - How to perform direct login without accessing protected resource?

    Hi,
    I think this should be a common requirement as website needs to provide a direct login page.
    The OAM Documentation seems focus on the flow of starting from accessing protected resource then redirect to login page.
    How can we perform direct login?
    I tried from my custom login page directly, but it always gives me *"PolicyEvaluationException: OAMSSA-06191: The runtime request contains no resource"* once the login form submitted.
    Anyone can advise? Thanks in advance.

    Thanks for the reply.
    We need to cater for both the scenarios:
    Scenario 1: User tries to access a protected page. He/she will be redirected to the login page. Once it is authenticated, he/she will be redirected back to the previously requested protected page
    Scenario 2: User clicks the "Login" link on the homepage where the homepage is definitely unprotected. He/she will be redirected to the login page. Once it is authenticated, he/she will be redirected back to homepage.
    I have tried to the "Success URL" parameter of the Authentication Policy. However, once "Success URL" is defined, Scenario 1 will NOT work...
    Yes. There are some work around solution I can think about.
    Example: use a intermediate page 'rediret.jsp' which is defined as the protected resource.
    The flow is: clicks the "Login" link on the homepage -> a intermediate page 'rediret.jsp' -> login page -> redirect back to 'rediret.jsp' -> 'rediret.jsp' will redirect user to the Homepage...
    But I think Scenario 2 should be very common and it should be a right solution for it. Please advise. Thanks

Maybe you are looking for