Docs for Normal reps needed

can anyone send me the docs for Normal reports( including List processing)..not ALV

hi Sumi,
Check ..
Interactive reports
Regards,
Santosh

Similar Messages

  • Attachments: I am creating an online application for employment and need applicant o submitt credentials, Is thier a way they can attach docs to the application?

    Attachments: I am creating an online application for employment and need applicant o submitt credentials, Is thier a way they can attach docs to the application?

    Hi Syclopz88,
    You can use 'File Attachment' option in the form which will allow the user to attach documents to the application.

  • Need Java API doc for the preference Manager class

    Where can I get Java Doc for the following classes
    import oracle.webcenter.peopleconnections.preference.Preference;
    import oracle.webcenter.peopleconnections.preference.PreferenceException;
    import oracle.webcenter.peopleconnections.preference.PreferencesManager;
    import oracle.webcenter.peopleconnections.preference.PreferencesManagerFactory;
    Thanks,
    Bala

    The API is the same (that's the whole point with Java), and last time I checked there were programs on Linux that can handle zipfiles and html files. :)
    So yes, use the same.
    (That is, unless you have downloaded the windows help format api docs. Then you need to download the regular html ones.)

  • Needed doc for PO creation

    hi all,
    can anyone give me steps for creating PO or screen shots.
    i need it urgently.
    i am new to this.
    i will award ur efforts.
    thanks
    sanjeev

    Hi Sanjeev,
    At first not able to understand what you need to create doc for po.
    in SAP below is the requriement to create PO, by considering you have organizational elements created.
    1) Material Master - create in MM01.
    2) Vendor Master - create in XK01
    3) Source List - ME01 } Source list & PIR is not mandatory to create a PO.
    4) PIR - ME11 }
    Then go to T-CODE ME21N as yogesh mentioned, enter your vendor system will ask for organizational data, enter co.code, pur group, pur organization.
    enter material code, qty, price, plant click on check & save, system will give you PO number.
    PS : Kindly note by asking a question you will get answer in this forum & it is professional to awarad points or not. don't think if you mention you will award points you get better response or quick response.
    Regards
    Rang

  • Need a link or doc for ARP

    Need a link or doc for ARP.
    Thanks in advance.
    Regards,
    Chandu

    Hello Chandu,
    TCP/IP illustrated by Stevens  is a good book
    see
    http://www.pcvr.nl/tcpip/arp_addr.htm#4_0
    Hope to help
    Giuseppe

  • Need a Doc for Case Management-Interaction center

    Hi all,
    I need a SAP doc for Case Management-Interaction center.
    Please send me on [email protected]
    Will surealy get points .
    Nice weekend

    Hi Babu,
    Please check the following SAP Help link:
    http://help.sap.com/saphelp_crm50/helpdata/en/89/c5be40d7e4cc38e10000000a155106/frameset.htm
    Hope this helps,
    Kind regards,
    KZ

  • Why my new ipad need boot-strap twice for normally work

    why my new ipad need boot-strap twice for normally work

    why my new ipad need boot-strap twice for normally work

  • Fingerprint utility is not working for normal users - Tecra M11

    Hi All,
    I installed windows 7 pro in Tecra M11 laptop and the Toshiba finger print utility is not working for normal users.
    It is working only for domain administrators. The TFPU is not working for, normal domain users, local users, local administrators. If we run the utility it will ask to enter the windows password and once we applied the password then the message saying "entered password is not valid" will prompt even if we are trying to use the utility first time.
    If we try with a domain admin account it will work without any problem. Can somebody help me to trouble shoot this issue?
    Thanks.

    People nowadays experienced that no matter How many times we glide our finger it have no response.In this instance, you might be very afraid of Windows password lost by reason that there is a plenty of important data on your PC.
    Then what should you do? One choose is fix the Fingerprint scanners, but this method will cost a lot of money. The other is use the Windows password function to solve the problem. Certainly, this is a very safer, faster and easier to use method for you.
    According my personal experience, you can try these three ways to re-access to your PC:
    Method 1: Login with the default administrator account
    * Step 1: Start Windows PC
    * Step 2: When you can see the Windows login screen, press ctrl+alt+del keys Twice and it'll show Classic Login box
    * Step 3: Type Administrator as Username and leave the password field blank
    * Step 4: Press the Enter Key and then you can be able to login the default windows administrator account which is it created by default when install windows.
    *Note:* This trick is only work for Windows XP. And when you input the key combination Please don't put the cursor on any account. And if you change the name or password before, you cannot login by this way.
    Method 2: Use the previous password reset disk
    This method describes how to create and use a password reset disk for a computer that is a member of a domain. You can use a Windows password reset disk to gain access to your Microsoft Windows Professional-based computer if you forget your Windows password. Please click here to learn more.
    Method 3: Using Windows Password Unlocker
    Using Windows password remove software is could be the fastest and easiest way for you to reset your Windows password while you didn't create a password reset disk before.
    There are 2 options for you: recover Windows password with a bootable CD/DVD or recover Windows password with a USB flash drive.
    Before starting, a bootable CD/DVD or USB flash drive and a computer with CD drive are required. (Internal CD drive and external CD drive are both OK.
    Option 1: Recover Windows password by burning a bootable CD/DVD
    Option 2: Recover Windows password by burning a USB flash drive
    The whole Windows password recovery process can be divided to 3 big steps:
    * >> Step 1: Burn a USB flash drive to remove lost Windows password
    * >> Step 2: Set your target computer to boot from USB
    * >> Step 3: Recover forgotten Windows password with the burned USB flash drive
    In fact, all you need is a *Windows Password Unlocker www.passwordunlocker.com/windows-password-recovery.html which can help you directly reset your windows xp password, and then you can login your XP without a password required. Of course, there are also some other ways to do it, but this way may be most convenient one.

  • Creation of New consistencycheck condition for Normal Correction

    Hi,
    We are using ChaRM normal correction to check the transport imported to production system we are using the check conditon 'PRODUCTION_IMPORT_OK' which is implemented in Class CL_SOCM_INSTANCE .
    On similar base we wanted to create the condition of 'ZTEST_IMPORT_OK' for normal correction, but we are not able to find the Standard code written for condition PRODUCTION_IMPORT_OK.
    If find this code we can make some adjustment in this code with BADI for consistency check to implement the new condition .
    Is any one worked on this type of condition , your help will be appreciated.
    Regards,
    Amar Kamat

    HI
    Check if needed to assign any account key to this new condition type in your procedure if needed, then mantain the GL acc for the same.
    If you are adding this condition type in your TAXINN procedure (assuming so) you need to create the condition type for the same by using trax FV11.
    If you are adding your condition type in Pricing procedure then no ned to create the condition record.
    Regards
    Sujoy

  • Sales analysis for selected reps

    Hi,
    I'm trying to find a way to use SAP's existing Sales Analysis reporting function to run a sales analysis report by a group of salesreps.  These salesreps are in a territory, so want to pull 1 sales analysis for this territory.
    For example, I have about 25 reps in the OSLP table.  I need to run SAP's standard Sales Analysis by Sales Employee, but be able to choose several reps instead of just one or all. 
    I've considered adjusting the Sales Employee names so that they all fall into consecutive order in the table (example: Northwest-Bob Smith, Northwest-John Black).  This which would allow me to run by a range.  However, we want to keep historical data for each rep; when they leave our employ, we don't want to lose the record of their sales, which would happen if I routinely change the Sales Employee name field when their customers are assigned to another salesperson.
    Would prefer not to have to set up queries for each territory either, because I would need to remember to maintain and change the queries to the proper salesrep each time we add or remove a salesrep.
    Any suggestions on the easiest way to make SAP's sales analysis reporting do what I want without going to the work of creating and maintaining queries?
    Using B1 2007A, pl 42.
    Thanks,
    Shelby

    Hi, Gordon-
    Are you referring to setting up Territories under Admin, Setup, then enter the territory in the BP, then run a query on that?
    If not, how would I go about this?  I haven't used the Territory function in B1 yet, but so far only see it as a field in the BP.
    Thanks,
    Shelby

  • _file_name_convert for normal restore

    Hi,
    Can I use db_file_name_convert and log_file_name_convert for normal RMAN restore.I know that the same can be used with duplicate command to restore the datafiles to a new location .But I want to use the same for normal database restore/recovery when the filesystem is different on the target and destination machines

    db_file_name_convert & log_file_name_convert is to tell controlfile that earlier the files are in a location now its in different location..
    this link will tell you the usage of parameter..
    http://download.oracle.com/docs/cd/B13789_01/server.101/b10770/rcmsynta31.htm
    http://download.oracle.com/docs/cd/B10501_01/server.920/a96536/ch144.htm#REFRN10038
    Thanks

  • Required Config and testing Docs for cash management/cash forecasting

    Hi All,
    My client need to implement cash management/cash forecasting ..
    Can anyone send the details Required Config and testing Docs for the same as earlier i have not worked in this area..
    Thanks in advance...
    Regards,
    Sandip

    Hello
    Please check the below link
    help.sap.com/bp.../J11_BB_ConfigGuide_EN_IN.doc - United States
    Thanks & Regards
    Phaneendra

  • PX Best Practice doc for vSphere?

    Is there a best practice doc for utilizing the PX devices in a vSphere environment?  Specifically I'm interested in 'Boot from SAN' for two vSphere 5.1 Host servers (RD630's) dual switch iSCSI connected to a PX12-450.
    If no Best Practice then perhaps a Config doc?
    Thanks

    Hi neilchapman,
    I am not too familiar with vSphere personally or how to boot from SAN, but as far as I know you create the iSCSI LUN on the NAS device and use vSphere to connect to the LUN. Do you need help with setting up the iSCSI LUN or with configuring vSphere? If you need assistance with vSphere, you might want to contact VMware support: http://www.vmware.com/support/vsphere/
    Have questions and need answers?
    Search the database for answers to FAQ's, software/driver downloads, tutorials, news, features and more!
    LenovoEMC Support & Downloads
    LenovoEMC North America Support Contact Page

  • Traffic Signals in ALV Without using oops only for normal Grid Display.

    Hi Experts ,
    I need to add traffic signals into my normal ALV Grid program without using oops concepts.
    Please any one send me full code or provide me one program code without using oops concept for normal ALV Grid .
    I searched in many forums but i found most of the programs wriiten using oops concept with ALV's but here my requirement without using oops concept and only normal reuse_alv_grid_display.
    Thanks in Advance.
    Venky.

    You can check the below sample code.Traffic light is implemented in it.
    REPORT ztest NO STANDARD PAGE HEADING
                    LINE-SIZE 255 MESSAGE-ID zlqm.
    TYPE-POOLS : slis,icon.
    TABLES :qals,qave.
    INCLUDE : zlqmr002_top,              "Global Data Declaration
              zlqmr002_selection_screen, "Selection Screen Inputs
              zlqmr002_subroutine.       "Subroutines
    INITIALIZATION
    INITIALIZATION.
      PERFORM variant_init.
    AT SELECTION-SCREEN
    AT SELECTION-SCREEN.
    Check for Variant existance
      PERFORM pai_of_selection_screen.
    *Validation for Material
    AT SELECTION-SCREEN ON s_matnr.
      IF NOT s_matnr IS INITIAL.
        SELECT SINGLE matnr
               INTO g_matnr
               FROM mara
               WHERE matnr IN s_matnr.
        IF sy-subrc <> 0.
          SET CURSOR FIELD 'S_MATNR'.
          MESSAGE e000 WITH text-003.
        ENDIF.
      ENDIF.
    *Validation for Plant
    AT SELECTION-SCREEN ON s_werk.
      IF NOT s_werk IS INITIAL.
        SELECT SINGLE werks
               INTO g_werk
               FROM t001w
               WHERE werks IN s_werk.
        IF sy-subrc <> 0.
          SET CURSOR FIELD 'S_WERK'.
          MESSAGE e000 WITH text-004.
        ENDIF.
      ENDIF.
    *Validation for Inspection Type
    AT SELECTION-SCREEN ON s_art.
      IF NOT s_art IS INITIAL.
        SELECT SINGLE art
               INTO g_art
               FROM tq30
               WHERE art IN s_art.
        IF sy-subrc <> 0.
          SET CURSOR FIELD 'S_ART'.
          MESSAGE e000 WITH text-005.
        ENDIF.
      ENDIF.
    *Validation for Code group
    AT SELECTION-SCREEN ON s_vcdgrp.
      IF NOT s_vcdgrp IS INITIAL.
        SELECT SINGLE codegruppe
               INTO g_vcdgrp
               FROM qpgr
               WHERE codegruppe IN s_vcdgrp.
        IF sy-subrc <> 0.
          SET CURSOR FIELD 'S_VCDGRP'.
          MESSAGE e000 WITH text-006.
        ENDIF.
      ENDIF.
    *Validation for Code
    AT SELECTION-SCREEN ON s_vcode.
      IF NOT s_vcode IS INITIAL.
        SELECT SINGLE code
               INTO g_vcode
               FROM qpcd
               WHERE code IN s_vcode.
        IF sy-subrc <> 0.
          SET CURSOR FIELD 'S_VCODE'.
          MESSAGE e000 WITH text-007.
        ENDIF.
      ENDIF.
    Process on value request
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
      PERFORM f4_for_variant.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_vcdgrp-low.
      PERFORM get_codegroup.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_vcdgrp-high.
      PERFORM get_codegroup.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_vcode-low.
      PERFORM get_code.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_vcode-high.
      PERFORM get_code.
    START-OF-SELECTION.
    START-OF-SELECTION.
    **Selecting data form Database tables
      PERFORM select_data TABLES i_out i_out1.
    END-OF-SELECTION
    END-OF-SELECTION.
    **Generate ALV
      PERFORM generate_alv.
    DATA TYPES
    TYPES : BEGIN OF t_qals,
              matnr      TYPE  qals-matnr,          "Material
              werk       TYPE  qals-werk,           "Plant
              mengeneinh TYPE  qals-mengeneinh,     "UOM
              lmenge01   TYPE  qals-lmenge01,       "Unrestricted qty
              lmenge02   TYPE  qals-lmenge02,       "Scrap qty
              lmenge03   TYPE  qals-lmenge03,       "Sample qty
              lmenge04   TYPE  qals-lmenge04,       "Blocked qty
              lmenge05   TYPE  qals-lmenge05,       "Retain qty
              lmenge06   TYPE  qals-lmenge06,       "Othermat qty
              lmenge07   TYPE  qals-lmenge07,       "RTV qty
              lmenge08   TYPE  qals-lmenge08,       "Exp.scrap qty
              prueflos   TYPE  qals-prueflos,       "Inspection lot
              art        TYPE  qals-art,            "Inspection type
              charg      TYPE  qals-charg,          "Batch
              vcode      TYPE  qave-vcode,          "Usage decision
              vdatum     TYPE  qave-vdatum,         "Date
              qmnum      TYPE  qmel-qmnum,          "Notification
            END OF t_qals.
    TYPES : BEGIN OF t_out,
              icon       TYPE  icon-id,             "Status
              matnr      TYPE  qals-matnr,          "Material
              werk       TYPE  qals-werk,           "Plant
              mengeneinh TYPE  qals-mengeneinh,     "UOM
              vcode      TYPE  qave-vcode,          "Usage decision
              mncod(30)  TYPE  c,                   "Disposition
              lmenge01   TYPE  qals-lmenge01,       "Unrestricted qty
              lmenge02   TYPE  qals-lmenge02,       "Scrap qty
              lmenge03   TYPE  qals-lmenge03,       "Sample qty
              lmenge04   TYPE  qals-lmenge04,       "Blocked qty
              lmenge05   TYPE  qals-lmenge05,       "Retain qty
              lmenge06   TYPE  qals-lmenge06,       "Othermat qty
              lmenge07   TYPE  qals-lmenge07,       "RTV qty
              lmenge08   TYPE  qals-lmenge08,       "Exp.scrap qty
              prueflos   TYPE  qals-prueflos,       "Inspection lot
              art        TYPE  qals-art,            "Inspection type
              qmnum      TYPE  qmel-qmnum,          "Notification
              vdatum     TYPE  qave-vdatum,         "Date
              charg      TYPE  qals-charg,          "Batch
            END OF t_out.
    TYPES :  BEGIN OF t_qmsm,
               qmnum    TYPE  qmsm-qmnum,
               manum    TYPE  qmsm-manum,
               mncod    TYPE  qmsm-mncod,
             END OF t_qmsm.
    TYPES:   BEGIN OF t_disp,
               qmnum     TYPE  qmsm-qmnum,
               mncod(30) TYPE  c,
             END OF t_disp.
    TYPES:   BEGIN OF t_codegrp,
               katalogart  TYPE  qpgt-katalogart,
               codegruppe  TYPE  qpgt-codegruppe,
               kurztext    TYPE  qpgt-kurztext,
             END OF t_codegrp.
    TYPES:   BEGIN OF t_code,
               katalogart  TYPE  qpct-katalogart,
               codegruppe  TYPE  qpct-codegruppe,
               code        TYPE  qpct-code,
               version     TYPE  qpct-version,
               kurztext    TYPE  qpct-kurztext,
             END OF t_code.
    INTERNAL TABLES
    DATA: i_qals     TYPE TABLE OF t_qals,
          wa_qals    LIKE LINE  OF i_qals,
          i_qmsm     TYPE TABLE OF t_qmsm,
          wa_qmsm    TYPE t_qmsm,
          i_disp     TYPE TABLE OF t_disp,
          wa_disp    LIKE LINE  OF i_disp,
          i_out      TYPE TABLE OF t_out,
          wa_out     TYPE t_out,
          i_out1     TYPE TABLE OF t_out,
          wa_out1    TYPE t_out,
          i_codegrp  TYPE TABLE OF t_codegrp,
          i_code     TYPE TABLE OF t_code,
          i_qmsm_tmp TYPE TABLE OF t_qmsm.
    DATA: i_fieldcat  TYPE slis_t_fieldcat_alv,
          i_layout    TYPE slis_layout_alv,
          g_repid     TYPE sy-repid,
          wa_fieldcat TYPE slis_fieldcat_alv.
    Global Variables
    DATA : g_matnr    TYPE  matnr,
           g_werk     TYPE  werks,
           g_art      TYPE  qpart,
           g_vcdgrp   TYPE  qvgruppe,
           g_vcode    TYPE  qvcode,
           g_red      TYPE  c,
           g_yellow   TYPE  c,
           g_table(6) TYPE  c,
           g_save(1)  TYPE  c,
           g_exit(1)  TYPE  c,
           g_report   TYPE  sy-repid,
           g_var      TYPE  disvariant,
           g_variant  TYPE  disvariant.
    Constants
    CONSTANTS: c_green  TYPE icon-id VALUE '@08@',
               c_yellow TYPE icon-id VALUE '@09@',
               c_red    TYPE icon-id VALUE '@0A@'.
    SELECTION SCREEN
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS : s_matnr   FOR  qals-matnr,    "Material Number
                     s_werk    FOR  qals-werk,     "Plant
                     s_art     FOR  qals-art,      "Inspection Type
                     s_vcdgrp  FOR  qave-vcodegrp, "Usage Decision Code Group
                     s_vcode   FOR  qave-vcode,    "Usage Decision Code
                     s_vdatum  FOR  qave-vdatum.   "Usage Decision Code Date
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    PARAMETERS: p_all   RADIOBUTTON GROUP g1 DEFAULT 'X',
                p_excp  RADIOBUTTON GROUP g1.
    SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-009.
    "Variant Selection
    PARAMETERS: p_vari TYPE disvariant-variant.
    SELECTION-SCREEN END OF BLOCK b3.
    *&      Form  select_data
          Select Inspection Details
    FORM select_data TABLES p_out  STRUCTURE wa_out
                            p_out1 STRUCTURE wa_out.
      DATA:l_mncod(30) TYPE c.
      REFRESH : i_qals,i_qmsm,i_qmsm_tmp,i_disp,p_out.
      SELECT qalsmatnr     qalswerk      qals~mengeneinh
             qalslmenge01  qalslmenge02  qals~lmenge03
             qalslmenge04  qalslmenge05  qals~lmenge06
             qalslmenge07  qalslmenge08  qals~prueflos
             qalsart       qalscharg     qave~vcode
             qavevdatum    qmelqmnum
             INTO CORRESPONDING FIELDS OF TABLE i_qals
                  FROM qals
                  INNER JOIN qave
                        ON qalsprueflos = qaveprueflos
                  INNER JOIN qmel
                        ON qalsprueflos = qmelprueflos
                  WHERE qals~matnr    IN s_matnr
                    AND qals~werk     IN s_werk
                    AND qals~art      IN s_art
                    AND qals~stat34   EQ 'X'
                    AND qave~vcodegrp IN s_vcdgrp
                    AND qave~vcode    IN s_vcode
                    AND qave~vdatum   IN s_vdatum.
      IF sy-subrc NE 0.
        MESSAGE i000 WITH text-008.
      ENDIF.
      IF NOT i_qals IS INITIAL.
        SELECT qmnum manum mncod INTO TABLE i_qmsm
                                 FROM qmsm
                                 FOR ALL ENTRIES IN i_qals
                                 WHERE qmnum EQ i_qals-qmnum
                                   AND mngrp LIKE 'Q_D%'
                                   AND kzloesch NE 'X'.
      ENDIF.
    ***Concatenation of Disposition Codes
      IF NOT i_qmsm IS INITIAL.
        i_qmsm_tmp = i_qmsm.
        SORT i_qmsm_tmp BY qmnum mncod.
        DELETE ADJACENT DUPLICATES FROM i_qmsm_tmp COMPARING qmnum mncod+0(2).
        CLEAR wa_qmsm.
        LOOP AT i_qmsm_tmp INTO wa_qmsm.
          MOVE wa_qmsm-qmnum TO wa_disp-qmnum.
          CONCATENATE l_mncod wa_qmsm-mncod+0(2) INTO l_mncod SEPARATED BY space.
          AT END OF qmnum.
            SHIFT l_mncod LEFT DELETING LEADING space.
            MOVE l_mncod TO wa_disp-mncod.
            APPEND wa_disp TO i_disp.
            CLEAR:wa_disp,l_mncod.
          ENDAT.
        ENDLOOP.
      ENDIF.
    ***Transfer of data to the output table
      LOOP AT i_qals INTO wa_qals.
        MOVE-CORRESPONDING wa_qals TO wa_out.
        CLEAR wa_disp.
        READ TABLE i_disp INTO wa_disp
                          WITH KEY qmnum = wa_qals-qmnum.
        IF sy-subrc EQ 0.
          MOVE wa_disp-mncod TO wa_out-mncod.
        ENDIF.
        PERFORM check_quantity USING wa_qals.
        CLEAR wa_qmsm.
        LOOP AT i_qmsm INTO wa_qmsm
                       WHERE qmnum EQ wa_qals-qmnum.
          PERFORM check_group USING wa_qals
                                    wa_qmsm.
          CLEAR wa_qmsm.
        ENDLOOP.
        IF g_red NE 'X'.
          CLEAR wa_qmsm.
          LOOP AT i_qmsm INTO wa_qmsm WHERE qmnum = wa_qals-qmnum
                                        AND mncod0(2) NE wa_qals-vcode0(2).
            g_yellow = 'X'.
          ENDLOOP.
        ENDIF.
        IF g_yellow EQ 'X'.
          MOVE c_yellow TO wa_out-icon.
        ELSEIF g_red EQ 'X'.
          MOVE c_red TO wa_out-icon.
        ELSE.
          MOVE c_green TO wa_out-icon.
        ENDIF.
        APPEND wa_out TO p_out.
        CLEAR:wa_qals,wa_out,g_red,g_yellow.
      ENDLOOP.
    ***IF only exceptions are need to be displayed
      IF p_excp EQ 'X'.
        CLEAR wa_out.
        LOOP AT p_out INTO wa_out WHERE icon EQ c_red.
          APPEND wa_out TO p_out1.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    " select_data
    *&      Form  populate_fieldcat
          Populate the Fieldcat Table
    FORM populate_fieldcat USING p_table TYPE c.
    **status
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname     = p_table.
      wa_fieldcat-fieldname   = 'ICON'.
      wa_fieldcat-seltext_l   = text-010.
      wa_fieldcat-outputlen   = 15.
      wa_fieldcat-icon        = 'X'.
      APPEND wa_fieldcat TO i_fieldcat.
    **Material
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname     = p_table.
      wa_fieldcat-fieldname   = 'MATNR'.
      wa_fieldcat-seltext_l   = text-011.
      wa_fieldcat-outputlen   = 15.
      APPEND wa_fieldcat TO i_fieldcat.
    **Plant
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname     = p_table.
      wa_fieldcat-fieldname   = 'WERK'.
      wa_fieldcat-seltext_l   = text-012.
      wa_fieldcat-outputlen   = 7.
      APPEND wa_fieldcat TO i_fieldcat.
    **Usage Decision
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname     = p_table.
      wa_fieldcat-fieldname   = 'VCODE'.
      wa_fieldcat-seltext_l   = text-013.
      wa_fieldcat-outputlen   = 15.
      APPEND wa_fieldcat TO i_fieldcat.
    **Dispositions
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname     = p_table.
      wa_fieldcat-fieldname   = 'MNCOD'.
      wa_fieldcat-seltext_l   = text-014.
      wa_fieldcat-outputlen   = 18.
      APPEND wa_fieldcat TO i_fieldcat.
    **UOM
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname     = p_table.
      wa_fieldcat-fieldname   = 'MENGENEINH'.
      wa_fieldcat-seltext_l   = text-015.
      wa_fieldcat-outputlen   = 18.
      APPEND wa_fieldcat TO i_fieldcat.
    **Unrestricted Quantity
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname     = p_table.
      wa_fieldcat-fieldname   = 'LMENGE01'.
      wa_fieldcat-seltext_l   = text-016.
      wa_fieldcat-qfieldname  = 'MENGENEINH'.
      wa_fieldcat-outputlen   = 20.
      APPEND wa_fieldcat TO i_fieldcat.
    **Scrap Quantity
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname     = p_table.
      wa_fieldcat-fieldname   = 'LMENGE02'.
      wa_fieldcat-seltext_l   = text-017.
      wa_fieldcat-qfieldname  = 'MENGENEINH'.
      wa_fieldcat-outputlen   = 20.
      APPEND wa_fieldcat TO i_fieldcat.
    **Sample Quantity
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname     = p_table.
      wa_fieldcat-fieldname   = 'LMENGE03'.
      wa_fieldcat-seltext_l   = text-018.
      wa_fieldcat-qfieldname  = 'MENGENEINH'.
      wa_fieldcat-outputlen   = 20.
      APPEND wa_fieldcat TO i_fieldcat.
    **Blocked Quantity
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname     = p_table.
      wa_fieldcat-fieldname   = 'LMENGE04'.
      wa_fieldcat-seltext_l   = text-019.
      wa_fieldcat-qfieldname  = 'MENGENEINH'.
      wa_fieldcat-outputlen   = 20.
      APPEND wa_fieldcat TO i_fieldcat.
    **Retain Quantity
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname     = p_table.
      wa_fieldcat-fieldname   = 'LMENGE05'.
      wa_fieldcat-seltext_l   = text-020.
      wa_fieldcat-qfieldname  = 'MENGENEINH'.
      wa_fieldcat-outputlen   = 20.
      APPEND wa_fieldcat TO i_fieldcat.
    **Other Mat Quantity
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname     = p_table.
      wa_fieldcat-fieldname   = 'LMENGE06'.
      wa_fieldcat-seltext_l   = text-021.
      wa_fieldcat-qfieldname  = 'MENGENEINH'.
      wa_fieldcat-outputlen   = 20.
      APPEND wa_fieldcat TO i_fieldcat.
    **RTV Quantity
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname     = p_table.
      wa_fieldcat-fieldname   = 'LMENGE07'.
      wa_fieldcat-seltext_l   = text-022.
      wa_fieldcat-qfieldname  = 'MENGENEINH'.
      wa_fieldcat-outputlen   = 20.
      APPEND wa_fieldcat TO i_fieldcat.
    **Exp. Scrap Quantity
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname     = p_table.
      wa_fieldcat-fieldname   = 'LMENGE08'.
      wa_fieldcat-seltext_l   = text-023.
      wa_fieldcat-qfieldname  = 'MENGENEINH'.
      wa_fieldcat-outputlen   = 20.
      APPEND wa_fieldcat TO i_fieldcat.
    **Inspection Lot
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname     = p_table.
      wa_fieldcat-fieldname   = 'PRUEFLOS'.
      wa_fieldcat-seltext_l   = text-024.
      wa_fieldcat-outputlen   = 20.
      APPEND wa_fieldcat TO i_fieldcat.
    **Inspection Type
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname     = p_table.
      wa_fieldcat-fieldname   = 'ART'.
      wa_fieldcat-seltext_l   = text-025.
      wa_fieldcat-outputlen   = 20.
      APPEND wa_fieldcat TO i_fieldcat.
    **Notification
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname     = p_table.
      wa_fieldcat-fieldname   = 'QMNUM'.
      wa_fieldcat-seltext_l   = text-026.
      wa_fieldcat-outputlen   = 20.
      APPEND wa_fieldcat TO i_fieldcat.
    **Date
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname     = p_table.
      wa_fieldcat-fieldname   = 'VDATUM'.
      wa_fieldcat-seltext_l   = text-027.
      wa_fieldcat-outputlen   = 20.
      APPEND wa_fieldcat TO i_fieldcat.
    **Batch
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname     = p_table.
      wa_fieldcat-fieldname   = 'CHARG'.
      wa_fieldcat-seltext_l   = text-028.
      wa_fieldcat-outputlen   = 20.
      APPEND wa_fieldcat TO i_fieldcat.
    ENDFORM.                    " populate_fieldcat
    *&      Form  check_quantity
          To Check the Quantity
    FORM check_quantity  USING  p_qals TYPE t_qals.
      IF wa_qals-lmenge01 GT 0.
        LOOP AT i_disp TRANSPORTING NO FIELDS
                       WHERE qmnum EQ wa_qals-qmnum
                         AND ( mncod CP 'UI'
                          OR   mncod CP 'SR'
                          OR   mncod CP 'ND' ).
        ENDLOOP.
        IF sy-subrc NE 0.
          g_red = 'X'.
        ENDIF.
      ENDIF.
      IF wa_qals-lmenge02 GT 0 AND g_red NE 'X'.
        LOOP AT i_disp TRANSPORTING NO FIELDS
                       WHERE qmnum EQ wa_qals-qmnum
                         AND ( mncod CP 'SC'
                          OR   mncod CP 'SR' ).
        ENDLOOP.
        IF sy-subrc NE 0.
          g_red = 'X'.
        ENDIF.
      ENDIF.
      IF wa_qals-lmenge04 GT 0 AND g_red NE 'X'.
        LOOP AT i_disp TRANSPORTING NO FIELDS
                       WHERE qmnum EQ wa_qals-qmnum
                         AND ( mncod CP 'RW'
                          OR   mncod CP 'RD' ).
        ENDLOOP.
        IF sy-subrc NE 0.
          g_red = 'X'.
        ENDIF.
      ENDIF.
      IF wa_qals-lmenge05 GT 0 AND g_red NE 'X'.
        LOOP AT i_disp TRANSPORTING NO FIELDS
                       WHERE qmnum EQ wa_qals-qmnum
                         AND mncod CP 'R1'.
        ENDLOOP.
        IF sy-subrc NE 0.
          g_red = 'X'.
        ENDIF.
      ENDIF.
      IF wa_qals-lmenge06 GT 0 AND g_red NE 'X'.
        LOOP AT i_disp TRANSPORTING NO FIELDS
                       WHERE qmnum EQ wa_qals-qmnum
                         AND mncod CP 'RD'.
        ENDLOOP.
        IF sy-subrc NE 0.
          g_red = 'X'.
        ENDIF.
      ENDIF.
      IF wa_qals-lmenge07 GT 0 AND g_red NE 'X'.
        LOOP AT i_disp TRANSPORTING NO FIELDS
                       WHERE qmnum EQ wa_qals-qmnum
                         AND mncod CP 'RV'.
        ENDLOOP.
        IF sy-subrc NE 0.
          g_red = 'X'.
        ENDIF.
      ENDIF.
      IF wa_qals-lmenge08 GT 0 AND g_red NE 'X'.
        LOOP AT i_disp TRANSPORTING NO FIELDS
                       WHERE qmnum EQ wa_qals-qmnum
                         AND ( mncod CP 'SC'
                          OR   mncod CP 'SE' ).
        ENDLOOP.
        IF sy-subrc NE 0.
          g_red = 'X'.
        ENDIF.
      ENDIF.
    ENDFORM.                    " check_quantity
    *&      Form  check_group
          To check the Disposition Code
    FORM check_group  USING  p_qals TYPE t_qals
                             p_qmsm TYPE t_qmsm.
      IF p_qmsm-mncod+0(2) EQ 'UI' AND
         NOT p_qals-lmenge01 GT 0.
        g_red = 'X'.
        EXIT.
      ENDIF.
      IF p_qmsm-mncod+0(2) EQ 'RW' AND
         NOT p_qals-lmenge04 GT 0.
        g_red = 'X'.
        EXIT.
      ENDIF.
      IF p_qmsm-mncod+0(2) EQ 'SC' AND
          NOT p_qals-lmenge02 GT 0 AND
          NOT p_qals-lmenge08 GT 0.
        g_red = 'X'.
        EXIT.
      ENDIF.
      IF p_qmsm-mncod+0(2) EQ 'SE' AND
         NOT p_qals-lmenge08 GT 0.
        g_red = 'X'.
        EXIT.
      ENDIF.
      IF p_qmsm-mncod+0(2) EQ 'RV' AND
         NOT p_qals-lmenge07 GT 0.
        g_red = 'X'.
        EXIT.
      ENDIF.
      IF p_qmsm-mncod+0(2) EQ 'SR' AND
          NOT p_qals-lmenge01 GT 0 AND
          NOT p_qals-lmenge02 GT 0.
        g_red = 'X'.
        EXIT.
      ENDIF.
      IF p_qmsm-mncod+0(2) EQ 'ND' AND
         NOT p_qals-lmenge01 GT 0.
        g_red = 'X'.
        EXIT.
      ENDIF.
      IF p_qmsm-mncod+0(2) EQ 'R1' AND
         NOT p_qals-lmenge05 GT 0.
        g_red = 'X'.
        EXIT.
      ENDIF.
      IF p_qmsm-mncod+0(2) EQ 'RD' AND
          NOT p_qals-lmenge04 GT 0 AND
          NOT p_qals-lmenge06 GT 0.
        g_red = 'X'.
        EXIT.
      ENDIF.
    ENDFORM.                    " check_group
    *&      Form  call_alv
          Call ALV Grid Display
    FORM call_alv  TABLES   p_out STRUCTURE wa_out.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program       = g_repid
          i_callback_pf_status_set = 'PF_STATUS_SET'
          i_callback_user_command  = 'USER_COMMAND'
          is_layout                = i_layout
          it_fieldcat              = i_fieldcat[]
        TABLES
          t_outtab                 = p_out
        EXCEPTIONS
          program_error            = 1
          OTHERS                   = 2.
      IF sy-subrc <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " call_alv
    *&      Form  generate_alv
          Build ALV
    FORM generate_alv .
      IF NOT i_out  IS INITIAL OR
         NOT i_out1 IS INITIAL.
        g_repid = sy-repid.
        IF p_excp EQ 'X'.
          MOVE 'I_OUT1' TO g_table.
        ELSEIF p_all EQ 'X'.
          MOVE 'I_OUT' TO g_table.
        ENDIF.
        PERFORM populate_fieldcat USING g_table.
        i_layout-zebra        = 'X'.
        i_layout-colwidth_optimize = 'X'.
        IF p_excp = 'X'.
          PERFORM call_alv TABLES i_out1.
        ELSEIF p_all = 'X'.
          PERFORM call_alv TABLES i_out.
        ENDIF.
      ENDIF.
    ENDFORM.                    " generate_alv
    *&             Form  PF_STATUS_SET
                 Setting PF Status
    FORM pf_status_set USING rt_extab TYPE slis_t_extab.
      SET PF-STATUS 'STATUS1' .
    ENDFORM.                    "PF_STATUS_SET
    *&              Form USER_COMMAND
               User Command Processing
    FORM user_command USING r_ucomm     TYPE sy-ucomm
                            rs_selfield TYPE slis_selfield.
      CASE r_ucomm.
        WHEN 'UDG'.
          IF p_all EQ 'X'.
            CLEAR wa_out.
            READ TABLE i_out INTO wa_out INDEX rs_selfield-tabindex.
            SET PARAMETER ID 'QLS' FIELD wa_out-prueflos.
          ELSEIF p_excp EQ 'X'.
            CLEAR wa_out1.
            READ TABLE i_out1 INTO wa_out1 INDEX rs_selfield-tabindex.
            SET PARAMETER ID 'QLS' FIELD wa_out1-prueflos.
          ENDIF.
          CALL TRANSACTION 'QA13' AND SKIP FIRST SCREEN.
        WHEN 'QNF'.
          IF p_all EQ 'X'.
            CLEAR wa_out.
            READ TABLE i_out INTO wa_out INDEX rs_selfield-tabindex.
            SET PARAMETER ID 'IQM' FIELD wa_out-qmnum.
          ELSEIF p_excp EQ 'X'.
            CLEAR wa_out1.
            READ TABLE i_out1 INTO wa_out1 INDEX rs_selfield-tabindex.
            SET PARAMETER ID 'IQM' FIELD wa_out1-qmnum.
          ENDIF.
          CALL TRANSACTION 'QM03' AND SKIP FIRST SCREEN.
      ENDCASE.
    ENDFORM. "USER_COMMAND
    *&      Form  variant_init
         Initialize variant
    FORM variant_init .
    Set Options: save variants userspecific or general
      g_save = 'A'.
      g_report = sy-repid.
      g_var-report = g_report.
    Get default variant
      g_variant = g_var.
      CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
        EXPORTING
          i_save     = g_save
        CHANGING
          cs_variant = g_variant
        EXCEPTIONS
          not_found  = 2.
      IF sy-subrc = 0.
        p_vari = g_variant-variant.
      ENDIF.
    ENDFORM.                    " variant_init
    *&      Form  f4_for_variant
          F4 help for variant
    FORM f4_for_variant .
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
        EXPORTING
          is_variant = g_var
          i_save     = g_save
        IMPORTING
          e_exit     = g_exit
          es_variant = g_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 = g_variant-variant.
        ENDIF.
      ENDIF.
    ENDFORM.                    " f4_for_variant
    *&      Form  pai_of_selection_screen
          Check existence of Variant
    FORM pai_of_selection_screen .
      IF NOT p_vari IS INITIAL.
        MOVE g_var TO g_variant.
        MOVE p_vari TO g_variant-variant.
        CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
          EXPORTING
            i_save     = g_save
          CHANGING
            cs_variant = g_variant.
        g_var = g_variant.
      ELSE.
        PERFORM variant_init.
      ENDIF.
    ENDFORM.                    " pai_of_selection_screen
    *&      Form  get_codegroup
          Get F4 help for Code Group
    FORM get_codegroup .
      DATA: i_return TYPE TABLE OF ddshretval.
      SELECT katalogart codegruppe kurztext FROM qpgt
                                            INTO TABLE i_codegrp
                                            WHERE katalogart EQ '3'
                                              AND sprache EQ sy-langu.
      IF sy-subrc EQ 0.
        CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
           EXPORTING
        DDIC_STRUCTURE         = ' '
             retfield               = 'CODEGRUPPE'
             dynpprog               = sy-repid
             dynpnr                 = sy-dynnr
             dynprofield            = 'S_VCDGRP'
             value_org              = 'S'
           TABLES
             value_tab              = i_codegrp[]
          return_tab             = i_return[]
           EXCEPTIONS
             parameter_error        = 1
             no_values_found        = 2
             OTHERS                 = 3
        IF sy-subrc <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ENDIF.
    ENDFORM.                    " get_codegroup
    *&      Form  get_code
          Get F4 help for Code
    FORM get_code .
      DATA: l_field       TYPE rsscr-name VALUE 'S_VCDGRP',
            l_field_kind  TYPE rsscr-kind VALUE 'S',
            li_par_values TYPE TABLE OF rsparams,
            la_par_values TYPE rsparams,
            r_cdgrp       TYPE RANGE OF qpct-codegruppe,
            la_cdgrp      LIKE LINE  OF r_cdgrp.
    **Get the values entered in the selection screen
      PERFORM f4_get_related_values IN PROGRAM rsdbspf4
              TABLES li_par_values
              USING l_field l_field_kind.
      IF NOT li_par_values IS INITIAL.
        CLEAR:la_cdgrp,la_par_values.
        LOOP AT li_par_values INTO la_par_values.
          MOVE-CORRESPONDING la_par_values TO la_cdgrp.
          IF la_cdgrp-option IS INITIAL.
            MOVE 'EQ' TO la_cdgrp-option.
          ENDIF.
          APPEND la_cdgrp TO r_cdgrp.
          CLEAR la_cdgrp.
        ENDLOOP.
      ENDIF.
      SELECT katalogart codegruppe
             code       version
             kurztext FROM qpct
                      INTO TABLE i_code
                      WHERE katalogart EQ '3'
                        AND codegruppe IN r_cdgrp
                        AND sprache EQ sy-langu.
      IF sy-subrc EQ 0.
        CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
           EXPORTING
        DDIC_STRUCTURE         = ' '
             retfield               = 'CODE'
             dynpprog               = sy-repid
             dynpnr                 = sy-dynnr
             dynprofield            = 'S_VCODE'
             value_org              = 'S'
           TABLES
             value_tab              = i_code[]
         return_tab             =
           EXCEPTIONS
             parameter_error        = 1
             no_values_found        = 2
             OTHERS                 = 3
        IF sy-subrc <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ENDIF.
    ENDFORM.                    " get_code

  • ASM Quorum Failgroup Setup is Mandatory for Normal and High Redundancy?

    Hi all,
    Since I have worked with version 11.2 I had a concept about Quorum Failgroup and its purpose, now reading the documentation 12c I'm  confuse about some aspect and want your views on this subject.
    My Concept About Quorum Failgroup:
    The Quorum Failgroup was introduced in 11.2 for setup with Extended RAC and/or for setup with Diskgroups that have only 2 ASMDISK using Normal redundancy or 3 ASMDISK using High redundancy.
    But if we are not using Extended RAC and/or have a Diskgroup Normal Redundancy with 3 or more ASMDISK  or Diskgroup High Redundancy with 5 or more ASMDISK the use of Quorum Failgroup is optional, most like not used.
    ==============================================================================
    Documentation isn't clear about WHEN we must to use Quorum Failgroup.
    https://docs.oracle.com/database/121/CWLIN/storage.htm#CWLIN287
    7.4.1 Configuring Storage for Oracle Automatic Storage Management
      2. Choose the Oracle ASM redundancy level to use for the Oracle ASM disk group.
    Except when using external redundancy, Oracle ASM mirrors all Oracle Clusterware files in separate failure groups within a disk group. A quorum failure group, a special type of failure group, contains mirror copies of voting files when voting files are stored in normal or high redundancy disk groups. If the voting files are in a disk group, then the disk groups that contain Oracle Clusterware files (OCR and voting files) have a higher minimum number of failure groups than other disk groups because the voting files are stored in quorum failure groups.
    A quorum failure group is a special type of failure group that is used to store the Oracle Clusterware voting files. The quorum failure group is used to ensure that a quorum of the specified failure groups are available. When Oracle ASM mounts a disk group that contains Oracle Clusterware files, the quorum failure group is used to determine if the disk group can be mounted in the event of the loss of one or more failure groups. Disks in the quorum failure group do not contain user data, therefore a quorum failure group is not considered when determining redundancy requirements in respect to storing user data.
    As mentioned in documentation above, I could understand that in ANY diskgroup that use Normal or High Redundancy MUST have a Quorum failgroup. (does not matter what setup)
    In my view, if a Quorum Failgroup is used to ENSURE that a quorum of the specified failure groups are available, then we must use it, in other words is mandatory.
    What's your view on this matter?
    ==============================================================================
    Another Issue:
    Suppose the following scenario (example using NORMAL Redundancy).
    Example 1
    Diskgroup Normal Redundancy  with 3 ASMDIKS.
    DSK_0000  - FG1 (QUORUM FAILGROUP)
    DSK_0001  - FG2 (REGULAR FAILGROUP)
    DSK_0002  - FG3 (REGULAR FAILGROUP)    
    The ASM will allow create only one Quorum Failgroup, and two Regular Failgroup ( a failgroup to each asm disk)    
    Storing Votedisk on this diskgroup the all three asmdisk will be used one votedisk in each asm disk.    
    Storing OCR on this diskgroup the two Regular Failgroup will be used, only one OCR and primary extents and  mirror of its extents accross two failgroup. (quorum failgroup will not be used to OCR)
    Example 2
    Diskgroup Normal Redundancy  with 5 ASMDIKS.
    DSK_0000  - FG1 (REGULAR FAILGROUP)
    DSK_0001  - FG2 (REGULAR FAILGROUP)
    DSK_0002  - FG3 (QUORUM FAILGROUP) 
    DSK_0003  - FG4 (QUORUM FAILGROUP)
    DSK_0004  - FG5 (QUORUM FAILGROUP)
    The ASM will allow create up to three Quorum Failgroup, and two Regular Failgroup.
    Storing Votedisk on this diskgroup the all three QUORUM FAILGROUP will be used. REGULAR FAILGROUP will not be used.
    Storing OCR on this diskgroup the two Regular Failgroup will be used, only one OCR and primary extents and  mirror of its extents accross two failgroup. (none quorum failgroup will not be used to OCR).
    This right here below is confuse to me.
    https://docs.oracle.com/database/121/CWLIN/storage.htm#CWLIN287
    7.4.1 Configuring Storage for Oracle Automatic Storage Management
      2. Choose the Oracle ASM redundancy level to use for the Oracle ASM disk group.
    The quorum failure group is used to determine if the disk group can be mounted in the event of the loss of one or more failure groups.
    Normal redundancy: For Oracle Clusterware files, a normal redundancy disk group requires a minimum of three disk devices (two of the three disks are used by failure groups and all three disks are used by the quorum failure group) and provides three voting files and one OCR and mirror of the OCR. When using a normal redundancy disk group, the cluster can survive the loss of one failure group.For most installations, Oracle recommends that you select normal redundancy disk groups.
    High redundancy:  For Oracle Clusterware files, a high redundancy disk group requires a minimum of five disk devices (three of the five disks are used by failure groups and all five disks are used by the quorum failure group) and provides five voting files and one OCR and two mirrors of the OCR. With high redundancy, the cluster can survive the loss of two failure groups.
    Documentation says:
    minimum of three disk devices:  two of the three disks are used by failure groups and all three disks are used by the quorum failure group for normal redundancy.
    minimum of five disk devices: three of the five disks are used by failure groups and all five disks are used by the quorum failure group for high redudancy.
    Questions :
    What this USED mean?
    How the all disk are USED by quorum failgroup?
    This USED mean used to determine if the disk group can be mounted?
    How Quorum Failgroup determine if a diskgroup can be mounted, what is the math?
    Consider following scenery:
    Diskgroup Normal Redundancy with 3 ASM Disks. (Two Regular failgroup and One Quorum Failgroup)
    If we lost the Quorum failgroup group. We can mount that diskgroup using force option.
    If we lost one Regular failgroup group. We can mount that diskgroup using force option.
    We can't lost two Failgroup at same time.
    If I don't use Quorum failgroup (i.e only Regular Failgroup) the result of test is the same.
    I see no difference between use Quorum Failgroup and only Regular Failgroup on this matter.
    ======================================================================================
    When Oracle docs says:
    one OCR and mirror of the OCR for normal redundancy
    one OCR and two mirrors of the OCR for high redundancy
    What this means is we have ONLY ONE OCR File and mirror of its extents, but oracle in documentation says 1 mirror of OCR (normal redundancy) and 2 mirror of OCR (high redudancy).
    What is sound like? a single file or two or more files ?
    Please don't confuse it with ocrconfig mirror location.

    Hi Levi Pereira,
    Sorry for the late answer. And as per 12c1 documentation, yes you are right, only the VD will be placed on the quorum fail groups:
    The redundancy level that you choose for the Oracle ASM disk group determines how Oracle ASM mirrors files in the disk group, and determines the number of disks and amount of disk space that you require. If the voting files are in a disk group, then the disk groups that contain Oracle Clusterware files (OCR and voting files) have a higher minimum number of failure groups than other disk groups because the voting files are stored in quorum failure groups.
    Managing Oracle Cluster Registry and Voting Files
    Regarding your question "I want answer about is mandatory to use Quorum Failgroup when use Normal or High Redundancy?" No it isn't, I have a normal redundancy diskgroup that I store VD with no Quorum Failgroup, indeed, it would prevent you to store data on the disks within this kind of failgroup as per the documentation:
    A quorum failure group is a special type of failure group that is used to store the Oracle Clusterware voting files. The quorum failure group is used to ensure that a quorum of the specified failure groups are available. When Oracle ASM mounts a disk group that contains Oracle Clusterware files, the quorum failure group is used to determine if the disk group can be mounted if there is a loss of one or more failure groups. Disks in the quorum failure group do not contain user data, therefore a quorum failure group is not considered when determining redundancy requirements in respect to storing user data.
    Managing Oracle Cluster Registry and Voting Files
    And as per the documentation, my answer are with red color:
    Could you explain what documentation meant:
    minimum of three disk devices:  two of the three disks are used by failure groups and all three disks are used by the quorum failure group for normal redundancy.
    how all three disk are used by the quorum failgroup? [I don't think this is correct, sounds a bit strange and it is the opposite for what is right before...]
    Regards.

Maybe you are looking for

  • Bug in Search/Replace in InDesign CS4?

    I have a large amount of bibliographical data in a document, organised into 5 columns, which are separated by tabs. As I knew I'd want to do a fair bit of editing on the data in the second column, I set up the first and second columns on separate cha

  • ICal Duplicating Subscription Calendar

    I am a MobileMe subscriber and have been having quite a problem with a subscription calendar. Every time I open iCal on my computer it is duplicating events from the subscription calendar hundreds of times, additionally it shows a new subscription ca

  • Not able to connect P6 v7 Web access

    Hi, We have P6 Web Access installed at our company. Suddenly it has started showing the following Error when we try to connect it. "504 Gateway Timeout: remote server did not respond to the proxy".. Can anyone provide me the solution for this error.

  • Back lighting on early 2008 imac not working

    the top portion of the imac is not lighting up. if i restart or put it to sleep then wake it up the light will be on for about a second or two then it turns off.

  • I/T Professionals seeking help in forums

    Lately in the Adobe Reader forum, there has been a rash of people asking questions about "deployment" of updates and how to modify the patches for pushing over a network. It's just my opinion, but this is a "user to user" forum for everyday people wh