Transfer line selection from crosstab to variable in planning sequence

Dear all,
We do have a small planning application with one table and one planning sequence.
To run the sequence, we want one line in the table to be selected and hand over the values of the selected month and year to the variables used in the sequence.
we tried the command:
PS_1.setVariableValue("MyVar", CROSSTAB_1, getSelectedmember("PCRMBERJR"));
but we get the error message
Cannot convert from "Member" to "VariableValue"
The info object PCRMBERJR is referencing to 0CALYEAR and is not compounded.
The Design Studio release is 1.4 SP1
The BW release is 7.3 SP8
Do you have any ideas about this error and how to hand over the row selection to a variable?
thanks
Cornelia

hi Cornelia,
in your script you reference
CROSSTAB_1, getSelectedmember("PCRMBERJR"))
for the value you want to pass.
however this is a object with several properties.
you still have to state the kind of value, internal key or external key, text, compounded etc.
I think if you choose internalkey, you should be ok.
best regards,
Jeroen

Similar Messages

  • MySQL:  SELECT * FROM with a Variable from an HTML form

    Hello,
    I would like to insert the variable "find" from the HTML form below in the MySQL "SELECT * FROM" query beneath it.  In other words, where the word "santafe" appears below, I would like to insert the variable "$find."  But I can't quite get it to work.  How do I do it?
    Thanks in advance,
    John
    <form action="tsearch11.php" method="post">
    <label>Enter Topic:
    <input type="text" name="find" size="55"/>
    <input type="hidden" name="searching" value="yes" />
    <input type="submit" name="search" value="Search" />
    </label>
    </form>
    Then, on tsearch11.php:
    <?
    mysql_connect("mysqlv3", "username", "password") or die(mysql_error());
    mysql_select_db("sand2") or die(mysql_error());
    $find = strip_tags($find);
    $find = trim ($find);
    $t = "SELECT * FROM santafe"; 
    $y = mysql_query($t);
    ?>

    Putting a form variable in a SQL query to look for table or column names requires an extra level of security. You need to create an array of the valid names, and check that the form variable is in that array.
    $find = get_magic_quotes_gpc() ? stripslashes($_POST['find']) : $_POST['find'];
    $find = mysql_real_escape_string(trim($find));
    // create an array of valid table names
    $tables = array('santafe', 'sanfernando', 'guadalupe');
    // check that the variable is in the permitted array
    if (in_array($find, $tables)) {
      $t = "SELECT * FROM $find"; 
      $y = mysql_query($t);
    } else {
      $error = 'Sorry, you selected an invalid table.';
    In the page itself, check whether $y exists before using it. Otherwise display the error:
    if (isset($y)) {
      // display the results
    } elseif (isset($error)) {
      echo $error;

  • Copy Input Ready Query Variables into Planning Sequence

    Hi all,
           We have the following scenario. We developed a model using Web Template. The model has an input ready query and a Panning sequence associated with it. Both of them using the same Planning Filter that has a input variable for Profit Center (say ZPCTR). If I run this model in Portal the planning sequence automatically takes the variable given for the input ready query and the sequence runs without any problem.
           We were asked to implement the same model in BEx as the users felt more comfortable using Excel when working on this model. When we assinged the planning sequence to a button and after we run the input ready query and then click on the button to run the planning sequence, we get an error message saying "You have to enter values before you execute". The Planning sequence is not taking the values we enter for the input ready query automatically.
          I read through the forums on the same issue and saw that most of them reported about the same but could not find a conclusive answer. I tried the following options.
    1) Enter the expected values in the excel in one location and gave the address in the "Command Range" of the planning sequence. Still it does not work.
    2) Tried SAP suggested method as given in http://help.sap.com/saphelp_nw70/helpdata/en/45/e301089d574a88e10000000a155369/frameset.htm It also does not work
    3) Couple of them suggested to use a different variable for Profit Center in the filter of Planning sequence (say ZPCTR_EXIT) and populate this variable. I wrote an exit for this variable and populated a fixed value say '100' into it. The sequence runs as expected. But I do not want use a constant, I want to store the value entered in ZPCTR into ZPCTR_EXIT.
       when I use the regular logic "LOOP AT i_t_var_range INTO var_inpiut WHERE vnam = 'ZPCTR' ", it does not work. the exit variable works if I store some constant values, not variable values.
        Can you please suggest how can I work with this. Is there any table from which I can read the profit center value the users enters into the Exit variable.
    Thanks for your time,
    Ram.

    This error generally comes when we use some user input variable in the sequence which is not restricted in the query. Even though you are using the same filter for both planning sequence and query, check the planning functions inside the sequence which might read an user input variable which is not available in the query so that it is not appearing in the query selection screen. Like in FOX reading a variable using VARV or a variable restricted in the field for condition of planning function etc. Make sure that all the variables used in the sequence (planning functions) are kept in query restrictions if they are of type ready for user input so that they will appear in the selection screen.

  • How do you transfer line art from Illustrator to Photoshop?

    I created a set of icons in illustrator and would like to move them to photoshop as shape layers. The icons are created from the strokes of shapes, and when I paste them into photoshop, the shape fills in and I lose the stroke. I could add a stroke in photoshop, but it misses any internal strokes that I have drawn. I could plate them as smart objects, but I would prefer them to be shape layers. How can I get these icons into photoshop?

    Dear vbach: If by "Line art" you mean Line art in the original sense, i.e., black lines on a white background, I've been doing it for twenty-odd years, copying from AI to PS. It's gotten better lately with the shaped lines now available in AI. I don't have to outline anything. Select lines in Illustrator, copy, switch to PS, and paste into a new or existing file. See attached half-size jpeg. Is this what you mean?

  • Date range selection from session/server variables - possible solution

    I've recently been creating some reports who'se selection is based on the contents of a session variable, using this against a date field. Thought I'd share with everyone how I did it.
    1/ Create a server/static variable called DATE_FORMAT who'se contents are 'dd/mm/yy' . Note, should include the single quotes.
    2/ Create 2 session variables that represent the beginning/end date range for your selection you are after - in my case, it was the first & last date of the previous month, PREVIOUS_PERIOD_FROM and PREVIOUS_PERIOD_TO
    3/ In the selection, add a filter on the date field in question, set the Operator as "is between".
    4/ for each of the 2 valaues, select Add->SQL expression and enter:
    EVALUATE('TO_DATE(%1,%2)',VALUEOF(NQ_SESSION."PREVIOUS_PERIOD_FROM"),VALUEOF("DATE_FORMAT"))
    and
    EVALUATE('TO_DATE(%1,%2)',VALUEOF(NQ_SESSION."PREVIOUS_PERIOD_TO"),VALUEOF("DATE_FORMAT"))

    HI,
           U can check the Select Quert by using IN s_option.
    Like eg:--
        Select * form Zemp where empno in s_empno.
    Hope this example will help u...
    here Zemp is a table...... empno is a field     s_empno is a Select-option.
    Thanks and rEgards
    Suraj S Nair

  • Select more value of variable in planning folder

    hi gurus,
    I'm using planning folder.
    In planning folder there is a variable that contain many value, for example 0COSTCENTER that contain 10 singles values. (from 1 to 10)
    User wants to select some values contained in variable.
    For example 2 and 5, even if it is authorized on all the cost center contained in variable.
    In this moment it selects one to the time.
    how I can make to resolve this problem?
    Thanks
    Davide

    Davide,
    sorry to say that, that'z the way BPS works.
    it's one of the BPSlimitation & many people are asking for an answer from SAP.
    as a workaround, you can do following things.
    1. user can select variable range, for example 2 to 5.
    2. create a variable with properties "user specific values" & fill in required cost centers for each user & don't check the flag "input allowed by user".
    in the 2nd option, you can assingn multiple single values to USER1.
    if u assign, cost center 2 & 5 to USER1, USER1 gets ability to plan on both 2 & 5 without even selectiing cost centers.
    3. you can even look into authorization variables & user-exit variables if they meet your requirements.
    hope it helps.

  • At line selection

    Hello All..
    1. I have created one basic list, now if i double click on any record then it should call another transaction... this is to be done using LIST PROCESSING. i need to write code in 'At Line Selection' but where to code this at line selection.
    2. Also while designing selection screen i've created execute icon using
    SET PF-STATUS.. but this is also appearing when basic list is being displayed.. i dont ant this to appear... no other buttons i.e.., back button, cancel are working...
    Regards,
    Radhi..

    Hi
    Sample program for At Line-Selection
    *& Report  ZHC010F_CONFIRMATION_COMPACT                                       *
           Module             PP - PRODUCTION PLANNING
    REPORT  ZHC010F_CONFIRMATION_COMPACT LINE-SIZE 275 LINE-COUNT 50 NO STANDARD PAGE HEADING.
    TABLES : ZHT010_FORGE,
             MARC.
    TYPES : BEGIN OF I_CONFIRM,
               ZBUDAT         TYPE ZHT010_FORGE-ZBUDAT,
               MATNR          TYPE ZHT010_FORGE-MATNR,
               PLWRK          TYPE ZHT010_FORGE-PLWRK,
               ZSHIFT         TYPE ZHT010_FORGE-ZSHIFT,
               ZWRKCE         TYPE ZHT010_FORGE-ZWRKCE,
               ZWIRECD        TYPE ZHT010_FORGE-ZWIRECD,
               ZACQTY         TYPE ZHT010_FORGE-ZACQTY,
               ZREQTY         TYPE ZHT010_FORGE-ZREQTY,
               ZSCQTY         TYPE ZHT010_FORGE-ZSCQTY,
               ZSEQTY         TYPE ZHT010_FORGE-ZSEQTY,
               ENDBIT         TYPE ZHT010_FORGE-ENDBIT,
               ENDBIT2        TYPE ZHT010_FORGE-ENDBIT2,
               TIMLO          TYPE ZHT010_FORGE-TIMLO,
               ZCONFIRM       TYPE ZHT010_FORGE-ZCONFIRM,
               ZCONFIRMREJ    TYPE ZHT010_FORGE-ZCONFIRM,
               ZCONFIRMSC     TYPE ZHT010_FORGE-ZCONFIRM,
               ZCONFIRMSE     TYPE ZHT010_FORGE-ZCONFIRM,
               ZCONFIRMBIT    TYPE ZHT010_FORGE-ZCONFIRM,
               ZCONFIRMBIT2   TYPE ZHT010_FORGE-ZCONFIRM,
               ZCONFIRMBUR    TYPE ZHT010_FORGE-ZCONFIRMBUR,
               TOKEN          TYPE ZHT010_FORGE-TOKEN,
               JONUMBER       TYPE ZHT010_FORGE-JONUMBER,
               CHARG          TYPE ZHT010_FORGE-CHARG,
               ZACCISSQTY     TYPE ZHT010_FORGE-ZACCISSQTY,
               ZREJISSQTY     TYPE ZHT010_FORGE-ZREJISSQTY,
               ZSCMISSQTY     TYPE ZHT010_FORGE-ZSCMISSQTY,
               ZSEMISSQTY     TYPE ZHT010_FORGE-ZSEMISSQTY,
               VERID          TYPE ZHT010_FORGE-VERID,
               MARK(1),
               DELETE(1),
            END OF I_CONFIRM.
    TYPES: BEGIN OF TAB_TYPE,
               FCODE LIKE RSMPE-FUNC,
             END OF TAB_TYPE.
    TYPES : BEGIN OF STR_BACKFLUSH,
                MATNR     LIKE  ZHT010_FORGE-MATNR,     
                PLWRK     LIKE  ZHT010_FORGE-PLWRK,
                GSMNG     LIKE  PLAF-GSMNG,
                ZWRKCE    LIKE  ZHT010_FORGE-ZWRKCE,
                ZBUDAT    LIKE  ZHT010_FORGE-ZBUDAT,
                ZSHIFT    LIKE  ZHT010_FORGE-ZSHIFT,
                TIMLO     LIKE  ZHT010_FORGE-TIMLO,
                ZWIRECD   LIKE  ZHT010_FORGE-ZWIRECD,
                ZACQTY    LIKE  ZHT010_FORGE-ZACQTY,
                ZREQTY    LIKE  ZHT010_FORGE-ZREQTY,
                ZSCQTY    LIKE  ZHT010_FORGE-ZSCQTY,
                ZSEQTY    LIKE  ZHT010_FORGE-ZSEQTY,
                ENDBIT    LIKE  ZHT010_FORGE-ENDBIT,
                ENDBIT2   LIKE  ZHT010_FORGE-ENDBIT2,
                BURSLG    LIKE  ZHT010_FORGE-BURSLG,
                TOKEN     LIKE  ZHT010_FORGE-TOKEN,
                JONUMBER  LIKE  ZHT010_FORGE-JONUMBER,
                CHARG     LIKE  ZHT010_FORGE-CHARG,
                MARK ,
                VERID     LIKE MKAL-VERID,
            END OF STR_BACKFLUSH.
    DATA : REM TYPE I,
           W_COUNT TYPE I VALUE 4,
           WA(200),
           W_ZACQTY(15),
           W_ZREQTY(15),
           W_ZSCQTY(15),
           W_ZSEQTY(15),
           W_ENDBIT(15),
           W_ENDBIT2(15),
           W_ACCISSQTY(15),
           W_REJISSQTY(15),
           W_SCMISSQTY(15),
           W_SEMISSQTY(15),
           W_CONFIRM,
           W_CONFIRMREJ,
           W_CONFIRMSC,
           W_CONFIRMSE,
           W_VERID LIKE ZHT010_FORGE-VERID,
           W_START_LINE TYPE I,
           W_END_LINE TYPE I,
           W_START_COUNT TYPE I,
           W_END_COUNT  TYPE I,
           W_LINES TYPE I ,
           W_TAB TYPE TAB_TYPE,
           W_MOD TYPE I,
           W_SPC(15),
           W_MATNR   TYPE MARA-MATNR,
           W_CHARG   TYPE ZHT010_FORGE-CHARG,
           W_TIMLO   TYPE ZHT010_FORGE-TIMLO,
           W_WIRECD  TYPE MARA-MATNR,
           W_JONO    TYPE ZHT010_FORGE-JONUMBER,
           W_MACHINE TYPE ZHT010_FORGE-ZWRKCE,
           W_LBKUM   TYPE MBEW-LBKUM,
           ZWCD      TYPE ZHT010_FORGE-ZWIRECD,
           W_BI      TYPE C,
           W_LINECOUNT TYPE I,
           W_MAKTX LIKE MAKT-MAKTX,
           W_STLAL LIKE STKO-STLAL.
    TYPES : BEGIN OF I_ST,
            MATNR  TYPE MARA-MATNR,
            WIRECD TYPE MARA-MATNR,  "Entered in ZHC018
            UOM    TYPE MARA-MEINS,
            RMCODE TYPE MARA-MATNR,  "Actual RM by BOM Explosion
            MEINS  TYPE MARA-MEINS,  "Actual meins of RM by BOM
            SPC    TYPE MBEW-LBKUM,
            END OF I_ST.
    TYPES :BEGIN OF STR_BATCH ,
          MARK(1),
          MATNR    LIKE MARA-MATNR,
          WIRECD   LIKE MARA-MATNR,
          CHARG    LIKE MCHB-CHARG,
          CLABS    LIKE MCHB-CLABS,
          QTY      LIKE MSEG-ERFMG,
          UOM      LIKE MSEG-ERFME,
          SCRPQTY  LIKE MSEG-MENGE,
          MEINS    LIKE MSEG-ERFME,
          PENQTY   LIKE MCHB-CLABS,
          POSSQTY  LIKE MCHB-CLABS,
          TOPOST   LIKE MCHB-CLABS,
          REQTY    LIKE MCHB-CLABS,
          TIMLO    LIKE ZHT010_FORGE-TIMLO,
          END OF STR_BATCH.
    DATA: IT_CONFIRM TYPE STANDARD TABLE OF I_CONFIRM WITH HEADER LINE,
          IT_BACKFLUSH TYPE STANDARD TABLE OF STR_BACKFLUSH WITH HEADER LINE
          TAB TYPE STANDARD TABLE OF TAB_TYPE WITH  NON-UNIQUE DEFAULT KEY
          INITIAL SIZE 10,
          IT_STBD_SCRP TYPE CSXDOC OCCURS  0 WITH HEADER LINE,
          IT_STBE_SCRP TYPE CSXEQUI OCCURS 0 WITH HEADER LINE,
          IT_STBK_SCRP TYPE  CSXKLA OCCURS 0 WITH HEADER LINE,
          IT_STBM_SCRP TYPE  CSXMAT OCCURS 0 WITH HEADER LINE,
          IT_STBP_SCRP TYPE  CSXGEN OCCURS 0 WITH HEADER LINE,
          IT_STBT_SCRP TYPE  CSXTPL OCCURS 0 WITH HEADER LINE,
          IT_BATCH TYPE STANDARD TABLE OF STR_BATCH WITH HEADER LINE,
          I_BATCH TYPE STANDARD TABLE OF STR_BATCH WITH HEADER LINE,
          IT_STPOX TYPE STPOX OCCURS 0 WITH HEADER LINE,
          IT_MAT  TYPE CSCMAT OCCURS 0 WITH HEADER LINE,
          WA_STPOX LIKE IT_STPOX,
          IT_ST TYPE STANDARD TABLE OF  I_ST WITH HEADER LINE,
          IT_ST1 TYPE STANDARD TABLE OF I_ST WITH HEADER LINE,
          IT_STBD TYPE  CSXDOC  OCCURS 0 WITH HEADER LINE,
          IT_STBE TYPE  CSXEQUI OCCURS 0 WITH HEADER LINE,
          IT_STBK TYPE  CSXKLA  OCCURS 0 WITH HEADER LINE,
          IT_STBM TYPE  CSXMAT  OCCURS 0 WITH HEADER LINE,
          IT_STBP TYPE  CSXGEN  OCCURS 0 WITH HEADER LINE,
          IT_STBT TYPE  CSXTPL OCCURS  0 WITH HEADER LINE,
          IT_STBD_ACTQTY TYPE  CSXDOC OCCURS  0 WITH HEADER LINE,
          IT_STBE_ACTQTY TYPE  CSXEQUI OCCURS 0 WITH HEADER LINE,
          IT_STBK_ACTQTY TYPE  CSXKLA OCCURS  0 WITH HEADER LINE,
          IT_STBM_ACTQTY TYPE  CSXMAT OCCURS  0 WITH HEADER LINE,
          IT_STBP_ACTQTY TYPE  CSXGEN OCCURS  0 WITH HEADER LINE,
          IT_STBT_ACTQTY TYPE  CSXTPL OCCURS  0 WITH HEADER LINE.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    PARAMETERS :     PR_WERKS LIKE IT_CONFIRM-PLWRK OBLIGATORY,
                     PR_BUDAT LIKE IT_CONFIRM-ZBUDAT OBLIGATORY.
    SELECT-OPTIONS : SO_SHIFT FOR IT_CONFIRM-ZSHIFT NO-EXTENSION NO INTERVALS,
                     SO_MATNR FOR IT_CONFIRM-MATNR,
                     SO_WORK  FOR IT_CONFIRM-ZWRKCE ,
                     SO_TOKEN FOR ZHT010_FORGE-TOKEN,
                     SO_CELL FOR MARC-FEVOR NO-EXTENSION NO INTERVALS.
    PARAMETERS : PR_CONFM AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN END OF BLOCK B1.
    **This selection screen gives an option to execute in
    **foreground or in the background.
    **This is needed to analyse any errors while posting data.
    SELECTION-SCREEN BEGIN OF BLOCK RADIO WITH FRAME TITLE TEXT-018 NO
    INTERVALS.
    PARAMETERS: PR_BIN RADIOBUTTON GROUP BI DEFAULT 'X',
                PR_BIA RADIOBUTTON GROUP BI.
    SELECTION-SCREEN END OF BLOCK RADIO.
    DATA W_WERKS LIKE ZHT010_FORGE-PLWRK.
    AT SELECTION-SCREEN.
      IF PR_WERKS IS NOT INITIAL.
        IF PR_WERKS <> '4100'.
          SET CURSOR FIELD 'PR_WERKS'.
          MESSAGE E000(ZSFL) WITH 'Plant 4100 Only Allowed'.
          EXIT.
        ENDIF.
      ENDIF.
      IF PR_BIA = 'X'.
        IF SY-UNAME = 'PP4100A01' OR SY-UNAME = 'PP4100B01' OR SY-UNAME = 'PP4100C01' OR
           SY-UNAME = 'PP4100C02' OR SY-UNAME = 'PP4200B01' OR SY-UNAME = 'PP4200C01' OR
           SY-UNAME = 'PP4200C02'.
          MESSAGE E000(ZSFL) WITH 'No Authorization to Run in Foreground'.
          EXIT.
        ENDIF.
      ENDIF.
    START-OF-SELECTION.
      MOVE 'DELETE' TO W_TAB-FCODE.
      APPEND W_TAB TO TAB.
      MOVE 'SELA' TO W_TAB-FCODE.
      APPEND W_TAB TO TAB.
      MOVE 'DSELA' TO W_TAB-FCODE.
      APPEND W_TAB TO TAB.
      SET PF-STATUS 'CONF' EXCLUDING TAB.
      IF PR_CONFM = 'X'.
        SELECT AZBUDAT AMATNR APLWRK AZSHIFT AZWRKCE AZWIRECD A~ZACQTY
        A~ZREQTY
               AZSCQTY AZSEQTY AENDBIT AENDBIT2 ATIMLO AZCONFIRM
               A~ZCONFIRMREJ
               AZCONFIRMSC AZCONFIRMSE AZCONFIRMBIT AZCONFIRMBIT2
               AZCONFIRMBUR ATOKEN AJONUMBER ACHARG A~ZACCISSQTY
               AZREJISSQTY AZSCMISSQTY AZSEMISSQTY AVERID
               FROM ZHT010_FORGE AS A INNER JOIN MARC AS B ON B~MATNR =
               AMATNR AND BWERKS = PR_WERKS
               INNER JOIN MARA AS C ON CMATNR = AMATNR
               INTO TABLE IT_CONFIRM
           WHERE A~PLWRK  EQ PR_WERKS
           AND   A~ZSHIFT IN SO_SHIFT
           AND   A~ZBUDAT EQ PR_BUDAT
           AND   A~MATNR  IN SO_MATNR
           AND   A~ZWRKCE IN SO_WORK
           AND  A~TOKEN IN  SO_TOKEN
           AND  B~FEVOR IN SO_CELL
           AND  C~FERTH = 'RCOMP'
           AND (   A~ZCONFIRM = ''
           OR   A~ZCONFIRMREJ = ''
           OR   A~ZCONFIRMSC = ''
           OR   A~ZCONFIRMSE = '' )
          or   a~zconfirmbit = '' )
          OR   a~zconfirmbit2 = '' ) and
          AND KZLOESCH <> 'X'.
      ELSE.
        SELECT AZBUDAT AMATNR APLWRK AZSHIFT AZWRKCE AZWIRECD A~ZACQTY
        A~ZREQTY
               AZSCQTY AZSEQTY AENDBIT AENDBIT2 ATIMLO AZCONFIRM
               A~ZCONFIRMREJ
               AZCONFIRMSC AZCONFIRMSE AZCONFIRMBIT AZCONFIRMBIT2
               AZCONFIRMBUR ATOKEN AJONUMBER ACHARG A~ZACCISSQTY
               AZREJISSQTY AZSCMISSQTY AZSEMISSQTY AVERID
               FROM ZHT010_FORGE AS A INNER JOIN MARC AS B ON B~MATNR =
               AMATNR AND BWERKS = PR_WERKS
               INNER JOIN MARA AS C ON CMATNR = AMATNR
               INTO TABLE IT_CONFIRM
           WHERE A~PLWRK  EQ PR_WERKS
           AND   A~ZSHIFT IN SO_SHIFT
           AND   A~ZBUDAT EQ PR_BUDAT
           AND   A~MATNR  IN SO_MATNR
           AND   A~ZWRKCE IN SO_WORK
           AND  A~TOKEN IN  SO_TOKEN
           AND  B~FEVOR IN SO_CELL
           AND  C~FERTH = 'RCOMP' AND
           KZLOESCH <> 'X'.
      ENDIF.
      W_LINES = LINES( IT_CONFIRM ).
      IF W_LINES LT 1.
        MESSAGE I999(ZSFL) WITH 'No Records Found For The Seln Criteria'.
        EXIT.
      ENDIF.
    END-OF-SELECTION.
      SORT IT_CONFIRM BY MATNR.
      LOOP AT IT_CONFIRM.
        W_MATNR      = IT_CONFIRM-MATNR.
        REM          = SY-TABIX MOD 2.
        W_WIRECD     = IT_CONFIRM-ZWIRECD.
        W_TIMLO      = IT_CONFIRM-TIMLO.
        W_CHARG      = IT_CONFIRM-CHARG.
        W_JONO       = IT_CONFIRM-JONUMBER.
        W_MACHINE    = IT_CONFIRM-ZWRKCE.
        W_ZACQTY     = IT_CONFIRM-ZACQTY.
        W_ZREQTY     = IT_CONFIRM-ZREQTY.
        W_ZSCQTY     = IT_CONFIRM-ZSCQTY.
        W_ZSEQTY     = IT_CONFIRM-ZSEQTY.
        W_ENDBIT     = IT_CONFIRM-ENDBIT.
        W_ENDBIT2    = IT_CONFIRM-ENDBIT2.
        W_ACCISSQTY  = IT_CONFIRM-ZACCISSQTY.
        W_REJISSQTY  = IT_CONFIRM-ZREJISSQTY.
        W_SCMISSQTY  = IT_CONFIRM-ZSCMISSQTY.
        W_SEMISSQTY  = IT_CONFIRM-ZSEMISSQTY.
        W_CONFIRM    = IT_CONFIRM-ZCONFIRM.
        W_CONFIRMREJ = IT_CONFIRM-ZCONFIRMREJ.
        W_CONFIRMSC = IT_CONFIRM-ZCONFIRMSC.
        W_CONFIRMSE = IT_CONFIRM-ZCONFIRMSE.
        W_VERID     = IT_CONFIRM-VERID.
        SHIFT W_ZACQTY    LEFT DELETING LEADING SPACE.
        SHIFT W_ZREQTY    LEFT DELETING LEADING SPACE.
        SHIFT W_ZSCQTY    LEFT DELETING LEADING SPACE.
        SHIFT W_ZSEQTY    LEFT DELETING LEADING SPACE.
        SHIFT W_ENDBIT    LEFT DELETING LEADING SPACE.
        SHIFT W_ENDBIT2   LEFT DELETING LEADING SPACE.
        SHIFT W_ACCISSQTY LEFT DELETING LEADING SPACE.
        SHIFT W_REJISSQTY LEFT DELETING LEADING SPACE.
        SHIFT W_SCMISSQTY LEFT DELETING LEADING SPACE.
        SHIFT W_SEMISSQTY LEFT DELETING LEADING SPACE.
        SELECT SINGLE MAKTX INTO W_MAKTX FROM  MAKT WHERE MATNR =
        IT_CONFIRM-MATNR AND SPRAS = 'E'.
        IF IT_CONFIRM-ZCONFIRM = 'X' AND IT_CONFIRM-ZCONFIRMREJ = 'X' AND
        IT_CONFIRM-ZCONFIRMSC = 'X'
        AND  IT_CONFIRM-ZCONFIRMSE = 'X' AND IT_CONFIRM-ZCONFIRMBIT = 'X'
        AND IT_CONFIRM-ZCONFIRMBIT2 = 'X'.
          WRITE : / SY-VLINE,
                  IT_CONFIRM-MARK AS CHECKBOX INPUT OFF ,
                  IT_CONFIRM-MATNR       UNDER TEXT-002,
                  W_MAKTX(20)            UNDER TEXT-027,
                  IT_CONFIRM-ZSHIFT      UNDER TEXT-011,
                  IT_CONFIRM-ZWRKCE      UNDER TEXT-010,
                  IT_CONFIRM-ZWIRECD     UNDER TEXT-003,
                  IT_CONFIRM-CHARG       UNDER TEXT-022,
                  IT_CONFIRM-JONUMBER    UNDER TEXT-019.
        ELSE.
          WRITE : / SY-VLINE,
                  IT_CONFIRM-MARK AS CHECKBOX,
                  IT_CONFIRM-MATNR       UNDER TEXT-002 HOTSPOT ON,
                  W_MAKTX(20)            UNDER TEXT-027,
                  IT_CONFIRM-ZSHIFT      UNDER TEXT-011,
                  IT_CONFIRM-ZWRKCE      UNDER TEXT-010,
                  IT_CONFIRM-ZWIRECD     UNDER TEXT-003,
                  IT_CONFIRM-CHARG       UNDER TEXT-022 ,
                  IT_CONFIRM-JONUMBER    UNDER TEXT-019.
        ENDIF.
    Check if the burslg has already been posted. Incase it
    has been posted then acc, rej , pr sc and se sc qnty cannot
    be in editable
        IF IT_CONFIRM-ZCONFIRM EQ 'X'. "or it_confirm-zconfirmbur eq 'X'.
          IF IT_CONFIRM-ZCONFIRM EQ 'X' .
            WRITE W_ZACQTY UNDER TEXT-004 COLOR 5 INTENSIFIED OFF.
          ELSEIF IT_CONFIRM-ZCONFIRMBUR EQ 'X'.
            WRITE W_ZACQTY UNDER TEXT-004 COLOR 3 INTENSIFIED OFF.
          ENDIF.
        ELSE.
          WRITE W_ZACQTY UNDER TEXT-004 INPUT OFF.
        ENDIF.
        IF IT_CONFIRM-ZCONFIRMREJ EQ 'X' OR IT_CONFIRM-ZCONFIRMBUR EQ 'X'.
          IF IT_CONFIRM-ZCONFIRMREJ EQ 'X' .
            WRITE W_ZREQTY UNDER TEXT-005 COLOR 5 INTENSIFIED OFF.
          ELSEIF IT_CONFIRM-ZCONFIRMBUR EQ 'X'.
            WRITE W_ZREQTY UNDER TEXT-005 COLOR 3 INTENSIFIED OFF.
          ENDIF.
        ELSE.
          WRITE W_ZREQTY  UNDER TEXT-005. "input on.
        ENDIF.
        IF IT_CONFIRM-ZCONFIRMSC EQ 'X' OR IT_CONFIRM-ZCONFIRMBUR EQ 'X'.
          IF IT_CONFIRM-ZCONFIRMSC EQ 'X' .
            WRITE W_ZSCQTY UNDER TEXT-006 COLOR 5 INTENSIFIED OFF.
          ELSEIF IT_CONFIRM-ZCONFIRMBUR EQ 'X'.
            WRITE W_ZSCQTY UNDER TEXT-006 COLOR 3 INTENSIFIED OFF.
          ENDIF.
        ELSE.
          WRITE W_ZSCQTY  UNDER TEXT-006. "input on.
        ENDIF.
        IF IT_CONFIRM-ZCONFIRMSE EQ 'X' OR IT_CONFIRM-ZCONFIRMBUR EQ 'X'.
          IF IT_CONFIRM-ZCONFIRMSE EQ 'X' .
            WRITE W_ZSEQTY UNDER TEXT-007 COLOR 5 INTENSIFIED OFF.
          ELSEIF IT_CONFIRM-ZCONFIRMBUR EQ 'X'.
            WRITE W_ZSEQTY UNDER TEXT-007 COLOR 3 INTENSIFIED OFF.
          ENDIF.
        ELSE.
          WRITE W_ZSEQTY  UNDER TEXT-007. "input on.
        ENDIF.
        IF IT_CONFIRM-ZCONFIRMBIT EQ 'X'.
          WRITE W_ENDBIT UNDER TEXT-008 COLOR 5 INTENSIFIED OFF.
        ELSE.
          WRITE W_ENDBIT UNDER TEXT-008. "input on.
        ENDIF.
        IF IT_CONFIRM-ZCONFIRMBIT2 EQ 'X'.
          WRITE W_ENDBIT2 UNDER TEXT-009 COLOR 5 INTENSIFIED OFF.
        ELSE.
          WRITE W_ENDBIT2 UNDER TEXT-009. " input on.
        ENDIF.
        WRITE W_ACCISSQTY UNDER TEXT-023 COLOR 5 INTENSIFIED OFF.
        WRITE W_REJISSQTY UNDER TEXT-024 COLOR 5 INTENSIFIED OFF.
        WRITE W_SCMISSQTY UNDER TEXT-025 COLOR 5 INTENSIFIED OFF.
        WRITE W_SEMISSQTY UNDER TEXT-026 COLOR 5 INTENSIFIED OFF.
        WRITE 274 SY-VLINE.
        HIDE: W_MATNR,W_WIRECD,W_ZACQTY,W_ZREQTY,W_ZSCQTY,
              W_ZSEQTY,W_CHARG,W_JONO,W_MACHINE,W_TIMLO,
              W_CONFIRM,W_CONFIRMREJ,W_CONFIRMSC,W_CONFIRMSE,W_VERID.
        ULINE (274).
      ENDLOOP.
    TOP-OF-PAGE.
      FORMAT COLOR 5 INTENSIFIED ON.
      WRITE : 'Plant: ', PR_WERKS,
      "'Shift: ', so_shift-low, ' To ' , so_shift-high,
              'Posting date: ', PR_BUDAT.
      WRITE : /''.
      ULINE (274).
      FORMAT COLOR 1 INTENSIFIED ON.
      WRITE :/1   SY-VLINE,
              5   TEXT-002,   " Material no.
              21  TEXT-027,   " Description
              45  TEXT-011,   " shift
              50  TEXT-010,   " Work center.
              65  TEXT-003,   " Wire code.
              85  TEXT-022,   " Heat Number
              105 TEXT-019,   " Job Order Number
              125 TEXT-004,   " Acc. qty.
              140 TEXT-005,   " Rej. qty.
              154 TEXT-006,   " Scrap.
              170 TEXT-007,   " Set qty.
              185 TEXT-008,   " Endbit in Kg.
              199 TEXT-009,   " SOP.
              214 TEXT-023,
              229 TEXT-024,
              244 TEXT-025,
              259 TEXT-026,
              274 SY-VLINE.
      FORMAT COLOR OFF.
      WRITE :/''.
      ULINE (274).
    END-OF-PAGE.
    in order to show the stock
    of wire code and requirement qty of wirecode .
    AT LINE-SELECTION.
      DATA:  W_MEINS  TYPE MARA-MEINS,
             W_SPC1   TYPE MBEW-LBKUM,
             W_STMAT  TYPE MARA-MATNR,
             W_QTY1   TYPE STKO-BMENG,
             W_QTY2   TYPE STKO-BMENG,
             W_QTY3   TYPE STKO-BMENG,
             W_QTY4   TYPE STKO-BMENG,
             W_TOTAL  TYPE STKO-BMENG,
             W_BRGEW  TYPE MARA-BRGEW,
             W_GEWEI  TYPE MARA-GEWEI,
             W_BUOM   TYPE MARA-MEINS,
             W_RQTY   TYPE P DECIMALS 3,
          w_ferth  type mara-ferth,
             TMATNR LIKE MARA-MATNR,
             W_BATCH1(10),
             W_BATCH2(10),
             W_BATCH3(10),
             W_BATCH4(10),
             W_BATCH5(10),
             W_BALQTY LIKE MCHB-CLABS,
          w_penqty like mchb-clabs,
             W_CLABS LIKE MCHB-CLABS.
      IF SY-LILLI <= 4.
        MESSAGE S000(ZSFL) WITH 'Select Correct Record'.
        STOP.
      ENDIF.
    *zwcd =  sy-lisel+64(18).
      REFRESH IT_ST.
      CLEAR   IT_ST.
      PERFORM F001-READ_MAT.
    **Logic changed. the req qty should be shown from the BOM.
    **Therefore these changes are needed.
      CLEAR : IT_STBD,IT_STBE,IT_STBK,IT_STBM,IT_STBP,IT_STBT,W_QTY1,W_QTY2,
      W_QTY3,W_TOTAL.
      W_QTY1   = SY-LISEL+119(15).
      W_QTY2   = SY-LISEL+137(15).
      W_QTY3   = SY-LISEL+152(15).
      W_QTY4   = SY-LISEL+167(15).
      W_TOTAL = W_QTY1.
      PERFORM F002-GET_QTY.
      CLEAR : IT_STBD_SCRP,IT_STBE_SCRP,IT_STBK_SCRP,IT_STBM_SCRP,IT_STBP_SCRP
      ,IT_STBT_SCRP.
      PERFORM F002-GET_SCRPQTY.
      SORT IT_ST.
      IF SY-LSIND = 1.
        WINDOW STARTING AT 1 10 ENDING AT 135 20.
        SET PF-STATUS 'ZCOMP'.
    *to display batch and batch qty in pop up screen
        REFRESH IT_BATCH[].
        CLEAR :IT_BATCH , IT_ST,TMATNR.
        LOOP AT IT_ST WHERE MATNR =  W_MATNR AND WIRECD = W_WIRECD.
          IT_BATCH-MATNR   = IT_ST-MATNR.
          IT_BATCH-WIRECD  = IT_ST-WIRECD .
          IT_BATCH-TIMLO   = W_TIMLO.
          READ TABLE IT_STBP_SCRP WITH KEY OBJNR = IT_ST-RMCODE.
          IF SY-SUBRC = 0.
            IF IT_ST-UOM = IT_ST-MEINS.
              IT_BATCH-SCRPQTY = IT_STBP_SCRP-MNGLG.
            ELSE.
              IF IT_ST-MEINS = 'KG' AND IT_ST-UOM = 'TO'.
                IT_BATCH-SCRPQTY = IT_STBP_SCRP-MNGLG / 1000.
              ELSEIF IT_ST-MEINS = 'TO' AND IT_ST-UOM ='KG'.
                IT_BATCH-SCRPQTY = IT_STBP_SCRP-MNGLG * 1000.
              ENDIF.
            ENDIF.
          ENDIF.
          SELECT SINGLE MATNR INTO TMATNR FROM MCHB WHERE MATNR =
          IT_BATCH-WIRECD.
          IF SY-SUBRC <> 0.
            READ TABLE IT_BATCH WITH KEY MATNR = W_MATNR  WIRECD =
            IT_BATCH-WIRECD.
            IF SY-SUBRC <> 0.
              APPEND IT_BATCH.
            ENDIF.
          ELSE.
            SELECT  CLABS CHARG INTO (IT_BATCH-CLABS , IT_BATCH-CHARG) FROM
            MCHB
             WHERE MATNR = IT_ST-WIRECD AND WERKS = PR_WERKS AND LGORT =
             '0007'.
              READ TABLE IT_BATCH WITH KEY MATNR = W_MATNR  WIRECD =
              IT_ST-WIRECD
                                CHARG = IT_BATCH-CHARG .
              IF SY-SUBRC <> 0.
                APPEND IT_BATCH.
              ENDIF.
            ENDSELECT.
          ENDIF.
          CLEAR :IT_BATCH , IT_STBP_SCRP.
        ENDLOOP.
        DELETE ADJACENT DUPLICATES FROM IT_BATCH COMPARING WIRECD CHARG.
        DELETE IT_BATCH WHERE CLABS = 0.
        ULINE AT /1(134).
        FORMAT COLOR 5 INTENSIFIED OFF.
        WRITE : /1    SY-VLINE,
                5     TEXT-003,   " Wire code.
                23(1) SY-VLINE,
                25    TEXT-013,
                39(1) SY-VLINE,
                40    TEXT-014,
                43(1) SY-VLINE,
                44    TEXT-015,
                59(1) SY-VLINE,
                60    TEXT-020,
                71(1) SY-VLINE,
                72    TEXT-021,
                90(1) SY-VLINE,
                91    'Pending Qty',
                104(1) SY-VLINE,
                105   'Possible Qty',
                119(1) SY-VLINE,
                120   'To Post',
                134(1) SY-VLINE.
        ULINE AT /1(134).
        CLEAR IT_ST.
        SORT IT_ST.
        DELETE ADJACENT DUPLICATES FROM IT_ST COMPARING ALL FIELDS.
        SORT IT_ST.
        REFRESH IT_ST1.
        CLEAR: IT_ST1,IT_ST.
        LOOP AT IT_ST WHERE MATNR =  W_MATNR AND WIRECD = W_WIRECD.
          MOVE-CORRESPONDING IT_ST TO IT_ST1.
          APPEND IT_ST1.
        ENDLOOP.
        SORT: IT_ST,IT_ST1.
        DELETE IT_ST1 WHERE MATNR NE W_MATNR.
        SORT: IT_ST,IT_ST1.
        CLEAR: IT_ST1.
        LOOP AT IT_ST1 WHERE MATNR =  W_MATNR AND WIRECD = W_WIRECD .
          W_MEINS = IT_ST1-MEINS.
          W_SPC   = IT_ST1-SPC.
          W_STMAT = IT_ST1-WIRECD.
    **ZC127 has only a one to one relationship to BOM therefore only one
    **line in the internal table is expected.
          CLEAR IT_STBP.
          READ TABLE IT_STBP WITH KEY OBJNR  = IT_ST1-RMCODE.
          IF IT_ST1-UOM = IT_ST1-MEINS .
            W_RQTY  = IT_STBP-MNGLG.
          ELSE.
            IF IT_ST1-MEINS = 'KG' AND IT_ST1-UOM = 'TO'.
              W_RQTY = IT_STBP-MNGLG / 1000.
            ELSEIF IT_ST1-MEINS = 'TO' AND IT_ST1-UOM = 'KG'.
              W_RQTY = IT_STBP-MNGLG * 1000.
            ENDIF.
          ENDIF.
          FORMAT COLOR 2 INTENSIFIED OFF.
          CLEAR : W_BATCH1,W_BATCH2,W_BATCH3,W_BATCH4,W_BATCH5,W_BALQTY,
          W_CLABS.
          SPLIT W_CHARG AT ',' INTO W_BATCH1 W_BATCH2 W_BATCH3 W_BATCH4
          W_BATCH5.
          DELETE IT_BATCH WHERE CHARG <> W_BATCH1 AND CHARG <> W_BATCH2 AND
          CHARG <> W_BATCH3
                                AND CHARG <> W_BATCH4 AND CHARG <> W_BATCH5
                                AND MATNR = W_MATNR
                                AND WIRECD = W_WIRECD AND TIMLO = W_TIMLO.
          W_BALQTY = W_RQTY.
          LOOP AT IT_BATCH WHERE MATNR = W_MATNR AND WIRECD = W_WIRECD AND
          TIMLO = W_TIMLO.
            SELECT SINGLE PENDINGQTY FROM ZHT012_JOBORDNO INTO
            IT_BATCH-PENQTY WHERE LOT = IT_BATCH-CHARG AND
    RMCODE = W_WIRECD   AND
    JO_NO = W_JONO AND
    MACHINE = W_MACHINE.
            IF IT_BATCH-PENQTY >= IT_BATCH-CLABS.
              W_CLABS = IT_BATCH-CLABS.
            ELSE.
              W_CLABS = IT_BATCH-PENQTY.
            ENDIF.
            IF W_BALQTY > W_CLABS.
              IT_BATCH-TOPOST = W_CLABS.
              W_BALQTY =  W_BALQTY - W_CLABS.
            ELSEIF W_BALQTY < W_CLABS.
              IT_BATCH-TOPOST =  W_BALQTY.
              W_BALQTY = W_BALQTY - IT_BATCH-TOPOST.
            ENDIF.
            IF IT_BATCH-PENQTY < IT_BATCH-CLABS.
              IT_BATCH-POSSQTY = IT_BATCH-PENQTY.
            ELSEIF IT_BATCH-CLABS < IT_BATCH-PENQTY.
              IT_BATCH-POSSQTY = IT_BATCH-CLABS.
            ELSEIF IT_BATCH-CLABS = IT_BATCH-PENQTY.
              IT_BATCH-POSSQTY = IT_BATCH-CLABS.
            ENDIF.
            MODIFY IT_BATCH .
            CLEAR IT_BATCH.
          ENDLOOP.
          LOOP AT IT_BATCH WHERE MATNR = W_MATNR AND WIRECD = W_WIRECD .
            READ TABLE IT_STBP_ACTQTY WITH KEY OBJNR = IT_ST1-RMCODE.
            FORMAT COLOR 2 INTENSIFIED OFF.
            WRITE:/1 SY-VLINE,
                   3 IT_BATCH-MARK AS CHECKBOX,
                  IT_BATCH-WIRECD UNDER TEXT-003,
                  23(1) SY-VLINE.
           ON CHANGE OF IT_BATCH-WIRECD.
            AT NEW WIRECD.
              WRITE :
                  W_SPC UNDER TEXT-013 LEFT-JUSTIFIED.
           ENDON.
            ENDAT.
            WRITE:  39(1) SY-VLINE,
                IT_ST1-UOM  UNDER TEXT-014   ,
                43(1) SY-VLINE,
                W_RQTY UNDER TEXT-015 LEFT-JUSTIFIED,
                59(1) SY-VLINE,
                60 IT_BATCH-CHARG,
                71(1) SY-VLINE,
                72 IT_BATCH-CLABS LEFT-JUSTIFIED,
               90(1) SY-VLINE,
               91 IT_BATCH-PENQTY LEFT-JUSTIFIED,
               104(1) SY-VLINE,
               105 IT_BATCH-POSSQTY LEFT-JUSTIFIED,
               119(1) SY-VLINE,
               120 IT_BATCH-TOPOST LEFT-JUSTIFIED,
               134(1) SY-VLINE.
            IT_BATCH-QTY = IT_STBP_ACTQTY-MNGLG.
            IT_BATCH-UOM = IT_ST1-UOM.
            IT_BATCH-MEINS = IT_ST1-MEINS.
            IT_BATCH-REQTY = W_RQTY.
            MODIFY IT_BATCH TRANSPORTING QTY UOM MEINS REQTY.
          ENDLOOP.
          CLEAR : IT_BATCH , IT_STBP_ACTQTY.
        ENDLOOP.
        ULINE AT /1(134).
      ENDIF.
    AT USER-COMMAND.
      CLEAR W_MOD.
      CASE SY-UCOMM.
        WHEN 'SELA'.
          W_COUNT = 5.
          LOOP AT IT_CONFIRM.
            IF ( IT_CONFIRM-ZCONFIRM = '' OR IT_CONFIRM-ZCONFIRMREJ = '' OR
            IT_CONFIRM-ZCONFIRMSC = ''
            OR  IT_CONFIRM-ZCONFIRMSE = '' OR IT_CONFIRM-ZCONFIRMBIT = '' OR
            IT_CONFIRM-ZCONFIRMBIT2 = '' ) .
              IT_CONFIRM-MARK = 'X'.
              MODIFY IT_CONFIRM.
              READ LINE W_COUNT.
              MODIFY LINE W_COUNT FIELD VALUE IT_CONFIRM-MARK FROM 'X'.
            ENDIF.
            W_MOD = SY-TABIX MOD 46.
            IF W_MOD EQ 0.
              W_COUNT = W_COUNT + 5.
            ELSE.
              W_COUNT = W_COUNT + 2.
            ENDIF.
          ENDLOOP.
        WHEN 'DSELA'.
          W_COUNT = 5.
          LOOP AT IT_CONFIRM.
            IT_CONFIRM-MARK = ''.
            MODIFY IT_CONFIRM.
            READ LINE W_COUNT.
            MODIFY LINE W_COUNT FIELD VALUE IT_CONFIRM-MARK FROM ''.
            W_MOD = SY-TABIX MOD 46.
            IF W_MOD EQ 0.
              W_COUNT = W_COUNT + 5.
            ELSE.
              W_COUNT = W_COUNT + 2.
            ENDIF.
          ENDLOOP.
        WHEN 'BLOCK'.
          W_COUNT = 5.
          W_START_COUNT = W_START_LINE - W_COUNT.
          W_START_COUNT = W_START_COUNT + 1.
          W_END_COUNT   = W_END_LINE  - W_COUNT.
          W_END_COUNT   = W_END_COUNT + 1.
          REM = W_START_COUNT MOD 2.
          IF REM EQ 0.
            READ LINE W_START_LINE.
            MODIFY LINE W_START_LINE LINE FORMAT INTENSIFIED OFF COLOR = 1.
          ELSE.
            READ LINE W_START_LINE.
            MODIFY LINE W_START_LINE LINE FORMAT INTENSIFIED OFF COLOR = 2.
          ENDIF.
          REM = W_END_COUNT MOD 2.
          IF REM EQ 0.
            READ LINE W_END_LINE.
            MODIFY LINE W_END_LINE LINE FORMAT INTENSIFIED OFF COLOR = 1.
          ELSE.
            READ LINE W_END_LINE.
            MODIFY LINE W_END_LINE LINE FORMAT INTENSIFIED OFF COLOR = 2.
          ENDIF.
          LOOP AT IT_CONFIRM FROM W_START_COUNT TO W_END_COUNT.
            IT_CONFIRM-MARK = 'X'.
            MODIFY IT_CONFIRM.
            READ LINE W_START_LINE.
            MODIFY LINE W_START_LINE FIELD VALUE IT_CONFIRM-MARK FROM 'X'.
            W_START_LINE = W_START_LINE + 1.
          ENDLOOP.
          CLEAR : W_START_COUNT, W_END_COUNT, W_START_LINE, W_END_LINE.
        WHEN 'SAV'.
          DATA : W_TCOUNT TYPE I VALUE 0.
          W_LINECOUNT = 4.
          CLEAR IT_BATCH.
          LOOP AT IT_BATCH.
            READ LINE W_LINECOUNT FIELD VALUE IT_BATCH-MARK.
            IF IT_BATCH-MARK = 'X'.
              W_TCOUNT = W_TCOUNT + 1.
              MODIFY IT_BATCH TRANSPORTING MARK.
              READ TABLE I_BATCH WITH KEY MATNR  = IT_BATCH-MATNR
                                          WIRECD = IT_BATCH-WIRECD
                                          CHARG  = IT_BATCH-CHARG
                                          TIMLO  = IT_BATCH-TIMLO.
              IF SY-SUBRC <> 0.
                MOVE-CORRESPONDING IT_BATCH TO I_BATCH.
                APPEND I_BATCH.
              ENDIF.
              CLEAR : IT_BATCH , I_BATCH.
            ENDIF.
            W_LINECOUNT = W_LINECOUNT + 1.
          ENDLOOP.
          IF W_TCOUNT = 0.
            MESSAGE E000(ZSFL) WITH 'Select Atleast One Entry'.
          ENDIF.
          SELECT SINGLE WERKS INTO W_WERKS FROM MAST WHERE WERKS = PR_WERKS AND MATNR = W_MATNR.
          IF SY-SUBRC = 0.
            CLEAR W_STLAL.
            SELECT SINGLE STLAL INTO W_STLAL FROM MKAL WHERE WERKS = PR_WERKS AND
                                                   MATNR = W_MATNR AND
                                                   VERID = W_VERID.
            CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
              EXPORTING
                CAPID = 'PP01'
                DATUV = SY-DATUM
                MKTLS = 'X'
                MTNRV = W_MATNR
                WERKS = PR_WERKS
                STLAL = W_STLAL
              TABLES
                STB   = IT_STPOX.
          ENDIF.
          CLEAR W_TCOUNT.
          LOOP AT IT_BATCH WHERE MARK = 'X'.
              AT NEW WIRECD.
                 W_TCOUNT = W_TCOUNT + 1.
              ENDAT.
          ENDLOOP.
          DESCRIBE TABLE IT_STPOX LINES SY-TFILL.
          IF W_TCOUNT <> SY-TFILL.
           MESSAGE E000(ZSFL) WITH 'Select all Components as in BOM'.
          ENDIF.
          SET SCREEN 0.
          SET USER-COMMAND 'BACK'.
        WHEN 'SAVE'.
          DATA W_MARK TYPE I VALUE 0.
          W_COUNT = 5.
          CLEAR   IT_BACKFLUSH.
          REFRESH IT_BACKFLUSH.
          LOOP AT IT_CONFIRM.
            CLEAR W_ZACQTY.
            CLEAR W_ZREQTY.
            CLEAR W_ZSCQTY.
            CLEAR W_ZSEQTY.
            CLEAR W_ENDBIT.
            CLEAR W_ENDBIT2.
            READ LINE W_COUNT FIELD VALUE IT_CONFIRM-MARK.
            IF IT_CONFIRM-MARK EQ 'X'.
              READ TABLE I_BATCH WITH KEY MATNR = IT_CONFIRM-MATNR  WIRECD = IT_CONFIRM-ZWIRECD
                                  TIMLO = IT_CONFIRM-TIMLO.
              IF SY-SUBRC <> 0.
                W_MARK = W_MARK + 1.
              ENDIF.
              READ LINE W_COUNT FIELD VALUE W_ZACQTY.
              IT_CONFIRM-ZACQTY = W_ZACQTY.
              IF IT_CONFIRM-ZACQTY EQ 0.
                IT_CONFIRM-ZCONFIRM = 'X'.
              ENDIF.
              READ LINE W_COUNT FIELD VALUE W_ZREQTY.
              IT_CONFIRM-ZREQTY = W_ZREQTY.
              IF IT_CONFIRM-ZREQTY EQ 0.
                IT_CONFIRM-ZCONFIRMREJ = 'X'.
              ENDIF.
              READ LINE W_COUNT FIELD VALUE W_ZSCQTY.
              IT_CONFIRM-ZSCQTY = W_ZSCQTY.
              IF IT_CONFIRM-ZSCQTY EQ 0.
                IT_CONFIRM-ZCONFIRMSC = 'X'.
              ENDIF.
              READ LINE W_COUNT FIELD VALUE W_ZSEQTY.
              IT_CONFIRM-ZSEQTY = W_ZSEQTY.
              IF IT_CONFIRM-ZSEQTY EQ 0.
                IT_CONFIRM-ZCONFIRMSE = 'X'.
              ENDIF.
              READ LINE W_COUNT FIELD VALUE W_ENDBIT.
              IT_CONFIRM-ENDBIT = W_ENDBIT.
              IF IT_CONFIRM-ENDBIT EQ 0.
                IT_CONFIRM-ZCONFIRMBIT = 'X'.
              ENDIF.
              READ LINE W_COUNT FIELD VALUE W_ENDBIT2.
              IT_CONFIRM-ENDBIT2 = W_ENDBIT2.
              IF IT_CONFIRM-ENDBIT2 EQ 0.
                IT_CONFIRM-ZCONFIRMBIT2 = 'X'.
              ENDIF.
              PERFORM CHECK_FLAG_ROUTINE.
              PERFORM CHECK_BATCH.
              MODIFY IT_CONFIRM.
              CLEAR IT_BACKFLUSH.
              MOVE-CORRESPONDING IT_CONFIRM TO IT_BACKFLUSH.
              UPDATE ZHT010_FORGE
          SET ZACQTY  = W_ZACQTY
              ZREQTY  = W_ZREQTY
              ZSCQTY  = W_ZSCQTY
              ZSEQTY  = W_ZSEQTY
              ENDBIT  = W_ENDBIT
              ENDBIT2 = W_ENDBIT2
              ZCONFIRM = IT_CONFIRM-ZCONFIRM
              ZCONFIRMREJ = IT_CONFIRM-ZCONFIRMREJ
              ZCONFIRMSC = IT_CONFIRM-ZCONFIRMSC
              ZCONFIRMSE = IT_CONFIRM-ZCONFIRMSE
              ZCONFIRMBIT = IT_CONFIRM-ZCONFIRMBIT
              ZCONFIRMBIT2 = IT_CONFIRM-ZCONFIRMBIT2
        WHERE ZBUDAT EQ IT_CONFIRM-ZBUDAT
        AND   MATNR  EQ IT_CONFIRM-MATNR
        AND   PLWRK  EQ IT_CONFIRM-PLWRK
        AND   ZSHIFT EQ IT_CONFIRM-ZSHIFT
        AND JONUMBER EQ IT_CONFIRM-JONUMBER
        AND   ZWRKCE EQ IT_CONFIRM-ZWRKCE
        AND   TIMLO  EQ IT_CONFIRM-TIMLO.
    Transfer recs into the IT only if atleast one column
    needs to be posted.
              IF ( IT_CONFIRM-ZCONFIRM = '' OR IT_CONFIRM-ZCONFIRMREJ = ''
              OR IT_CONFIRM-ZCONFIRMSC = ''
              OR  IT_CONFIRM-ZCONFIRMSE = '' OR IT_CONFIRM-ZCONFIRMBIT = ''
              OR IT_CONFIRM-ZCONFIRMBIT2 = '' ) .
                APPEND IT_BACKFLUSH.
              ENDIF.
            ENDIF.
            W_MOD = SY-TABIX MOD 46.
            IF W_MOD EQ 0.
              W_COUNT = W_COUNT + 5.
            ELSE.
              W_COUNT = W_COUNT + 2.
            ENDIF.
          ENDLOOP.
          IF W_MARK > 0.
            MESSAGE E000(ZSFL) WITH 'Select the component'.
          ENDIF.
          DELETE IT_BACKFLUSH WHERE ZACQTY = 0 AND ZREQTY = 0 AND ZSCQTY = 0 AND ZSEQTY = 0.
          DESCRIBE TABLE IT_BACKFLUSH.
          CHECK SY-TFILL GT 0.
          SET PARAMETER ID 'ZPLWRK' FIELD PR_WERKS.
          SET PARAMETER ID 'ZBUDAT' FIELD PR_BUDAT.
          IF PR_BIN = 'X'.
            W_BI = 'N'.
          ELSEIF PR_BIA = 'X'.
            W_BI = 'A'.
          ENDIF.
          EXPORT W_BI FROM W_BI TO MEMORY ID 'W_BI'.
          EXPORT IT_BACKFLUSH TO MEMORY ID 'CONFIRM'.
          EXPORT I_BATCH TO MEMORY ID 'TMPBATCH'.
          CALL TRANSACTION 'ZHC010_FINAL'.
          SET SCREEN 0.
          LEAVE SCREEN.
        WHEN 'ENTER'.
          W_COUNT = 7.
          LOOP AT IT_CONFIRM.
            READ LINE W_COUNT FIELD VALUE IT_CONFIRM-MARK.
            IF IT_CONFIRM-MARK EQ 'X'.
              READ LINE W_COUNT FIELD VALUE W_ZACQTY.
              IT_CONFIRM-ZACQTY = W_ZACQTY.
              READ LINE W_COUNT FIELD VALUE W_ZREQTY.
              IT_CONFIRM-ZREQTY = W_ZREQTY.
              READ LINE W_COUNT FIELD VALUE W_ZSCQTY.
              IT_CONFIRM-ZSCQTY = W_ZSCQTY.
              READ LINE W_COUNT FIELD VALUE W_ZSEQTY.
              IT_CONFIRM-ZSEQTY = W_ZSEQTY.
              READ LINE W_COUNT FIELD VALUE W_ENDBIT.
              IT_CONFIRM-ENDBIT = W_ENDBIT.
              READ LINE W_COUNT FIELD VALUE W_ENDBIT2.
              IT_CONFIRM-ENDBIT2 = W_ENDBIT2.
              MODIFY IT_CONFIRM.
            ENDIF.
            W_MOD = SY-TABIX MOD 46.
            IF W_MOD EQ 0.
              W_COUNT = W_COUNT + 7.
            ELSE.
              W_COUNT = W_COUNT + 1.
            ENDIF.
          ENDLOOP.
        WHEN 'DELETE'.
          W_COUNT = 5.
          CLEAR   IT_BACKFLUSH.
          LOOP AT IT_CONFIRM.
            READ LINE W_COUNT FIELD VALUE IT_CONFIRM-DELETE.
            IF IT_CONFIRM-DELETE EQ 'X'.
    Tech Note : Provision to delete any record shld be given cos it wud
    create prbs
              IF ( IT_CONFIRM-ZCONFIRM = '' AND IT_CONFIRM-ZCONFIRMREJ = ''
              AND IT_CONFIRM-ZCONFIRMSC = ''
              AND  IT_CONFIRM-ZCONFIRMSE = '' AND IT_CONFIRM-ZCONFIRMBIT =
              '' AND IT_CONFIRM-ZCONFIRMBIT2 = ''
              AND IT_CONFIRM-ZCONFIRMBUR = '' ) .
                DELETE FROM ZHT010_FORGE
                  WHERE ZBUDAT = IT_CONFIRM-ZBUDAT
                  AND   MATNR  = IT_CONFIRM-MATNR
                  AND   PLWRK  = IT_CONFIRM-PLWRK
                  AND   ZSHIFT = IT_CONFIRM-ZSHIFT
                  AND   ZWRKCE = IT_CONFIRM-ZWRKCE
                  AND   TIMLO  = IT_CONFIRM-TIMLO.
              ENDIF.
            ENDIF.
            W_COUNT = W_COUNT + 1.
          ENDLOOP.
          LEAVE PROGRAM.
        WHEN 'RW'.
          SET SCREEN 0.
        WHEN 'BACK'.
          SET SCREEN 0.
      ENDCASE.
    *&      Form  check_flag_routine
          text
    -->  p1        text
    <--  p2        text
    FORM CHECK_FLAG_ROUTINE .
      IF IT_CONFIRM-ZCONFIRM EQ 'X'.
        IT_CONFIRM-ZACQTY = 0.
      ENDIF.
      IF IT_CONFIRM-ZCONFIRMREJ EQ 'X'.
        IT_CONFIRM-ZREQTY = 0.
      ENDIF.
      IF IT_CONFIRM-ZCONFIRMSC EQ 'X'.
        IT_CONFIRM-ZSCQTY = 0.
      ENDIF.
      IF IT_CONFIRM-ZCONFIRMSE EQ 'X'.
        IT_CONFIRM-ZSEQTY = 0.
      ENDIF.
      IF IT_CONFIRM-ZCONFIRMBIT EQ 'X'.
        IT_CONFIRM-ENDBIT = 0.
      ENDIF.
      IF IT_CONFIRM-ZCONFIRMBIT2 EQ 'X'.
        IT_CONFIRM-ENDBIT2 = 0.
      ENDIF.
    ENDFORM.                    " check_flag_routine
    *&      Form  f001-read_mat
          text
    -->  p1        text
    <--  p2        text
    FORM F001-READ_MAT .
      DATA :W_FERTH LIKE MARA-FERTH.
    **Note: BREMS = 'X' - give limited explosion
         MEHRS = 'X' - give the multi level explosion
      LOOP AT IT_CONFIRM.
        CLEAR W_STLAL.
        SELECT SINGLE STLAL INTO W_STLAL FROM MKAL WHERE WERKS = PR_WERKS AND
                                                         MATNR = IT_CONFIRM-MATNR AND
                                                         VERID = W_VERID.
        CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
          EXPORTING
            BREMS                 = 'X'
            CAPID                 = 'PP01'
            DATUV                 = SY-DATUM
            MEHRS                 = 'X'
            MTNRV                 = IT_CONFIRM-MATNR
            WERKS                 = IT_CONFIRM-PLWRK
            STLAL                 = W_STLAL
          TABLES
            STB                   = IT_STPOX
          EXCEPTIONS
            ALT_NOT_FOUND         = 1
            CALL_INVALID          = 2
            MATERIAL_NOT_FOUND    = 3
            MISSING_AUTHORIZATION = 4
            NO_BOM_FOUND          = 5
            NO_PLANT_DATA         = 6
            NO_SUITABLE_BOM_FOUND = 7
            CONVERSION_ERROR      = 8
            OTHERS                = 9.
        IF SY-SUBRC <> 0.
       MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
        DELETE IT_STPOX WHERE DUMPS = 'x'.
        SORT   IT_STPOX.
        LOOP AT IT_STPOX INTO WA_STPOX.
          CLEAR W_BUOM.
          SELECT SINGLE MEINS INTO W_BUOM
          FROM MARA WHERE MATNR = IT_CONFIRM-ZWIRECD.
          CLEAR IT_ST.
          IT_ST-MATNR    = IT_CONFIRM-MATNR.
          IT_ST-WIRECD   = IT_CONFIRM-ZWIRECD.
          IT_ST-UOM      = W_BUOM.
          IT_ST-RMCODE   = WA_STPOX-IDNRK.
          IT_ST-MEINS    = WA_STPOX-MMEIN.
          APPEND IT_ST.
        ENDLOOP.
      ENDLOOP.
      SORT IT_ST BY MATNR.
      CLEAR: IT_ST.
      LOOP AT IT_ST.
        SELECT SINGLE FERTH INTO W_FERTH FROM MARA WHERE MATNR = IT_ST-MATNR
        CLEAR W_LBKUM.
        SELECT SINGLE LBKUM INTO W_LBKUM FROM MBEW
       WHERE MBEW~MATNR = IT_ST-WIRECD
       AND   MBEW~BWKEY = PR_WERKS
       AND   MBEW~BWTAR = ''.
        IT_ST-SPC = W_LBKUM.
        MODIFY IT_ST INDEX SY-TABIX TRANSPORTING SPC .
      ENDLOOP.
    ENDFORM.                    " f001-read_mat
    *&      Form  f002-get_qty
          text
    -->  p1        text
    <--  p2        text
    ----

  • How to transfer Line Items

    Hi
    How to transfer Line Items from One GL account to another GL account.
    We, at the time of changing Non Open Item Manged account to Open Item Manged account, how can we transfer Line items to make this GL account Zero, If suppose line items are more than 200.
    Satish
    Points assured.

    If you are attempting to change the account from Non Open Item managed,  you need to make the account balance zero. The change will be be effective only for future transactions. You need not transfer all line items,  find the balance and  make an  entry to debit or credit to make it zero, to a temporary account. Later, once you have activated, you can reverse that transaction.
    The OSS 606977 refered may be helpful if you are looking for reverse activation. i.e from Open to Non Open. Here is a brief:
    Symptom
    In the G/L account master record, you can activate/deactivate the 'Open item management' indicator if the balance of the account is zero. In this case, the system does not check whether postings exist on the account.
    If postings exist, this could lead to problems, for example, if the clearing is reversed after the change to the indicator is made.
    Other terms
    FS00, FS02, FSS0, FS02, FH190, XOPVW
    Reason and Prerequisites
    The transactions for the maintenance of the G/L account master record did not check whether postings exist on the account. Now the program checks whether postings exist in the current year or previous two fiscal years.
    Solution
    Implement the attached correction or import the corresponding Support Package. Since it could make sense to change an account with balance zero from open item managed to non-open item managed (and vice versa) - despite postings to the account - the message is delivered as customizable (with error as a default setting).
    The check is also carried out, when open-item management is activated, is postings exist on the account.
    If you implement the note you must also carry out the following:
    Use Transaction SE91 to create message 190 in message class FH with the following text:
    Account balance = 0; however, postings exist on the account
    Use Transaction SM30 to insert the following entry into view T100S:
    Application area   FH
    MsgNo              190
    Allowed            EW
    Standard          E
    Afterwards, the message can be customized in View V_T100C. To do this, you can use Transaction OBA5.

  • Is select from view faster then select from table..???

    Hello Gurus,
    I want to query some data from two tables, both of table have many columns (attributes) and many rows...
    I use several where clauses to retrieve data from those tables..
    witch one is faster, I create a view or I just "select" from those tables???
    Regards.
    Nia...

    riedelme wrote:
    3360 wrote:
    riedelme wrote:
    Selecting through a view almost never helps performance and frequently hurts.Views do not affect performance.
    Views are simply queries and like queries there are fast and slow ones.I disagree.
    First of all, to use a view you are executing a query to get a result set, then accessing the data from that result set - a built-in extra step to perform to get data.First of all that entire explanation of how views work is not correct. The optimizer will rewrite the query to make the view go away if possible.
    SQL> create or replace view v as select * from dual;
    View created.
    SQL> explain plan for select * from dual where dummy = 'X';
    Explained.
    SQL> select * from table(dbms_xplan.display);
    PLAN_TABLE_OUTPUT
    Plan hash value: 272002086
    | Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT  |      |     1 |     2 |     2   (0)| 00:00:01 |
    |*  1 |  TABLE ACCESS FULL| DUAL |     1 |     2 |     2   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       1 - filter("DUMMY"='X')
    13 rows selected.
    SQL> explain plan for select * from v where dummy = 'X';
    Explained.
    SQL> select * from table(dbms_xplan.display);
    PLAN_TABLE_OUTPUT
    Plan hash value: 272002086
    | Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT  |      |     1 |     2 |     2   (0)| 00:00:01 |
    |*  1 |  TABLE ACCESS FULL| DUAL |     1 |     2 |     2   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       1 - filter("DUMMY"='X')
    13 rows selected.Exactly the same.
    >
    Second, when accessing the data from the view the result sets don't have indexes for fast lookups and efficient joins on later steps.This is also known as just making stuff up and is not how the database works. care to share any references at all for any of this?
    >
    Third, the systems I've seen that use views extensively - I am looking at one now - tend to perform joins on views using the same tables with the same data over and over. This is a design issue and not specifically a problem with views but they lend themselves to this misuse much too easilyCorrect as I said a view is just a query, and just like queries there are good fast views and bad slow views
    >
    I'll concede that the problem is not specifically with views themselves but as I just said they lend themselves to misuse. Tuning views of views and views joined to views is difficultYes, queries can be misused as can almost all SQL functions and functionality.
    As I said - Views are simply queries and like queries there are fast and slow ones.
    Nothing that you have posted that is accurate changes that.

  • SQL select * from v$log_history;

    SQL> select * from v$log_history;
    RECID STAMP THREAD# SEQUENCE# FIRST_CHANGE# FIRST_TIM NEXT_CHANGE#
    1 726598206 1 1 190578 08-AUG-10 467652
    2 726663400 1 2 467652 09-AUG-10 719320
    3 726758063 1 3 719320 10-AUG-10 1044278
    (1)From this output how I can know that how often archivelog is getting genarated what should be the actual interval of genaration.
    (2)How can I know the size of redolog group & it's member's size.
    (3)How can I determine that these sizes are perfect with my DB(Because of performance issue).

    You can use this query to see the gap in time between creating archive logs which should give an indication of log switches,
    set linesize 1000
    select name "archive log",
           ftime "first time",
           trunc(ftime- pftime) || ' days ' ||
           trunc( mod( (ftime-pftime)*24, 24 ) ) || ' hours ' ||
           trunc( mod( (ftime-pftime)*24*60, 60 ) )  || ' mins ' ||
           trunc( mod( (ftime-pftime)*24*60*60, 60 ) ) ||' secs ' "Time Gap"
    from
    select name,
            first_time ftime,
            lag(first_time,1) over (order by first_time ) pftime
    from v$archived_log order by first_time
    /The size of the log files are in V$LOG, groups and members in V$LOGFILE.
    You can extract the log switch information from the alert log.
    (there is also the DBA_HIST_LOG table).
    Edited by: stellios3 on Sep 30, 2010 11:27 AM

  • F4IF_INT_TABLE_VALUE_REQUEST - what line was selected from list displayed

    I am building an internal table and displaying it as search help using F4IF_INT_TABLE_VALUE_REQUEST.  How can I tell what line was selected from the search help?  Only one field is filled with the selection, but there are several other fields attached to this that I need in my program - but I can't tell which line was selected, and the one field is not enough information to use to get the record from the internal table.

    Hi,
    RETURN_TAB would have the selected values.
    FIELD_TAB will have the hit list fields.
    DYNPFLD_MAPPING will have the Assignment of the screen fields to the internal table.
    Regards,

  • Abap query to select a line item # from bseg on basis of following pattern:

    Hello,
    I want to retrieve the line item # from bseg which has the following pattern,
    account type = S
    AND
    gl account starting from 135***** , 136***** , 137*****
    , 138***** , 139*****
    hope i am comprehendable. How do i go on writing the query,
    Thanks..
    Shehryar

    Hi Shehryar,
    This will fetch records with GL A/C starting with <b>13</b> only , if you want 14 and others also write sepearate conditions using <b>LIKE</b> statements.
    REPORT zztest.
    DATA : itab TYPE STANDARD TABLE OF bseg WITH HEADER LINE.
    SELECT * FROM bseg INTO TABLE itab WHERE <b>koart = 'S'
    AND
    hkont LIKE '13%'</b>.
    This will take a lot of DB time for fetching the records, try to include Key Fields(BUKRS and GJAHR .. if possible others).
    Regards,
    Arun Sambargi.
    Regards

  • Text is selected one or two lines away from where cursor is located

    I'm viewing a PDF in Adobe Digital Editions 4.0, and when I try to select text, it actually selects text 1-2 lines off from where the cursor (I-bar) is located.  This makes highlighting text extremely difficult.  The PDF was created in Acrobat from a .docx file.  I've also tried creating the PDF from MS Word for Mac 2011.  Same problem.
    If I try opening the very same PDF file in Adobe Reader, the cursor highlights text just fine.  If I open it in Preview, it works fine too.  Just won't work in Adobe Digital Editions.
    System:  Mac OS 10.10 Yosemite

    You say your Powerbook but your profile indicates a MacBook Pro. Sounds more like a hardware issue than anything else. Post over in the hardware forum area of the Mac you have.

  • Select from variable table

    hi,
      I would like to request your help.
      I want to select some data from one table .but the table is dynamic.
      It is continuously changing.So what i thought is accept the tablename as
      parameter and then do the select from the parameter but the select
      statement is not working .
      Please advise whether i can select from parameter any data or is there
      any other way to do that.
    Thanks in advance.
    aasr.

    Post your code.  Are you looking for a dynamic where clause?
    Here is a short sample of a dynamic select statement.
    Enter your table name in the parameter on selection screen.  Enter you where clause in the select-option on selection screen.
    I used.....
    MARA
    MTART = 'HALB'
    report zrich_0004 .
    data: xwhere(30) type c.
    data: iwhere(30) type c occurs 0.
    data:itab(1000) type c occurs 0 with header line.
    parameters: p_table(30) type c.
    select-options: s_where for xwhere.
    loop at s_where.
      clear iwhere.
      xwhere = s_where-low.
      append xwhere to iwhere.
    endloop.
    select * up to 100 rows into table itab
              from (p_table)
                    where (iwhere).
    loop at itab.
      write:/ itab.
    endloop.
    Regards,
    Rich Heilman
    Message was edited by: Rich Heilman

  • Select values from table%ROWTYPE variable into a cursor

    I have a stored procedure which has an OUT parameter of table1%ROWTYPE.
    In future we might have to add more OUT parameters of table2%ROWTYPE etc. But at any point of time only one will have values.
    So instead of having table%ROWTYPE as OUT parameter, can I send these single row ( with variable values) in a cursor, so that declaration part atleast will not change.
    Is it possible to select values from table%ROWTYPE variable into a cursor.
    cursorOUT IS
    SELECT * FROM varREC;
    where varREC is table.ROWTYPE variable.
    Or which is the better solution in this situation.
    Thanks.

    SQL> var a refcursor
    SQL> declare
      2   bb emp%ROWTYPE;
      3  begin
      4   select * into bb from emp where rownum = 1;
      5   open :a for select bb.ename ename, bb.empno empno from dual;
      6  end;
      7  /
    PL/SQL procedure successfully completed.
    SQL> print a
    ENAME                                 EMPNO
    SMITH                                  7369Rgds.

Maybe you are looking for