Looping the tables

hi experts,
             I have a typical requiremnt .i need to get some numbers during section screen .i have created a smartform with a table in it .according to the number i have selected at selection screen .the tables should be printed .how to do this.?

Hi
Use this simple code to generate a  Random number.
Regards
Raj
REPORT ZRANDOM.
Random Numbers
DATA : MYAMOUNT LIKE BBSEG-WRBTR.
DO 5 TIMES.
  PERFORM GENERATE_RND.
ENDDO.
FORM GENERATE_RND.
CALL FUNCTION 'RANDOM_AMOUNT'
  EXPORTING
     RND_MIN  = '1'
     RND_MAX  = '100'
     VALCURR  = 'DEM'
  IMPORTING
     RND_AMOUNT = MYAMOUNT
   EXCEPTIONS
     OTHERS   = 1.
WRITE:/ MYAMOUNT.
ENDFORM.          " GENERATE_RND

Similar Messages

  • Loop the table entry and for every entry perform some action.

    Hello Experts,
    I have a requirement where there are let say n no. of entries in my ITAB and now for every entry i have to check certain field value and based on that i have to send respective mail.
    Now this has to run in background mode and the job will run on daily basis so the entries of table that are already processed should not be reprocessed.The scenario is every day the new entries will be added to ITAB and the newly added entries should be processed only.
    Please provide some sample code if possible.
    Thanks,
    Naveen

    Hi,
    I can not add a new field to the existing ztable. Crating a copy of ztable with addtional field status and setting it as processed against the record whenever i populate ITAB from ztable could be a solution but seems very lenthy method.
    There is one filed zdate  so write the code as below:-
    loop at itab where zdate = sy-datum
    email code------
    endloop.
    OR can i make use of
    loop at itab into wa
      ON change  of <filed1>
    email code-----
       ENDON
    endloop.
    Thanks,
    Naveen

  • Code To Update the Table in ECC from Webdynpro

    Hi All,
    I want to know, the table is dispalyed in the webdynpro browser when we calls the Adaptive RFC Model.
    after i want to add one more row in the webdynpro and just clicking on add button the row will be updated in the ECC server(backend) for that how can i write the coding,  regarding this issue can you please help me.
    ThanX All,

    Hi Sriram,
              Assuming you have a table filled with records by adding one by one, If you want to update a table in SAP ECC, follow these steps..   i think already you are triggering the action for the button in view(for table updation) to method in controller or created a custom controller and mapped the model node.
    1.  Initialize the main model node and bind the model node with the intialised object like
         Zbapi_MainModelNode_Input input = new Zbapi_MainModelNode_Input();
                           wdContext.nodeZbapi_MainModelNode_Input ().bind(input);     
    2.  Now loop the table node and set the values with corresponding class in the generated model (from webdynpro explorer) and initialize like
            IPrivateControllerName.ITableElement myTab = null;     
           for ( int i = 0; i < wdContext.nodeTable().size();i++)
                         myTab = this.wdContext.nodeTable().getTableElementAt(i);
         Bapi_structname name = new Bapi_structname();     
                        name.setFieldName1(myTab.getFieldName1);
                        name.setFieldName2(myTab.getFieldName2);
                        input.addT_Bapi_(name);
    Finally execute the BAPI..
       wdContext.currentZbapi_MainModelNode_Input tElement().modelObject().execute();
    Hope this solves your issue - Update the Table in ECC from Webdynpro.
    Regards,
    Manjunath
    Edited by: Manjunath Subramani on Nov 20, 2009 4:26 PM
    Edited by: Manjunath Subramani on Nov 20, 2009 4:27 PM

  • In "LOOP ... WHERE ..." the line type of the table must be statically defin

    Hi All,
            I have written the code, for greater than (GJAHR) 2007 and restricted company codes ( table name = ZGLCCODE).
         Here I have written the following the code which is giving an error
    In "LOOP ... WHERE ..." the line type of the table must be statically defin
    ZGLCCODE Contains only restricted company codes.
    Code is as follows
    TABLES : ZGLCCODE. 
    DATA : LT_DATAPACKAGE TYPE TABLE OF DTFIGL_4.
    DATA : LS_PACKAGE TYPE DTFIGL_4.
    TYPES: BEGIN OF LS_TZGLCCODE,
           ZBUKRS type BUKRS,
            END OF LS_TZGLCCODE.
    DATA : LT_ITZGLCCODE TYPE LS_TZGLCCODE OCCURS 0 WITH HEADER LINE.
    DATA : LI_NUM TYPE I,
           LC_ZGJAHR TYPE BSEG-GJAHR VALUE '2007'.
    SELECT ZBUKRS INTO TABLE LT_ITZGLCCODE FROM ZGLCCODE.
    Note:  "C_T_DATA" dynamic structure = "DTFIGL_4" structure
    *-  Remove from the DataSource Company Code -
    LOOP AT C_T_DATA INTO LS_PACKAGE WHERE GJAHR GE '2007'.
    READ TABLE LT_ITZGLCCODE WITH KEY ZBUKRS = LS_PACKAGE-BUKRS.
    IF SY-SUBRC <> 0.
       APPEND LS_PACKAGE TO LT_DATAPACKAGE.
    ENDIF.
      CLEAR LS_PACKAGE.
    ENDLOOP.
    IF LT_DATAPACKAGE[] IS NOT INITIAL.
    DESCRIBE TABLE LT_DATAPACKAGE LINES LI_NUM.
    IF LI_NUM GT 0.
       REFRESH C_T_DATA.
       APPEND LINES OF LT_DATAPACKAGE TO C_T_DATA.
       REFRESH LT_DATAPACKAGE.
       FREE LT_DATAPACKAGE.
    endif.
    ELSE.
       REFRESH C_T_DATA.
    ENDIF.
    Please give me your valuable suggestions.
    Thanks
    Ganesh Reddy.

    Hi Ganesh,
    whatever you do, you can try like this:
    1 - any code posted should be wrapped in \
    then try something like this:
    field-symbols:
      <tabrec> type any,
      <field>   type any.
    sort ITZGLCCODE by bukrs.
    LOOP AT C_T_DATA ASSIGNING <tabrec>.
      ASSIGN component 'GJAHR' of structure <tabrec> to <field>.
      check <field> <= 2007.
      ASSIGN component 'BUKRS' of structure <tabrec> to <field>.
      READ TABLE LT_ITZGLCCODE WITH KEY ZBUKRS = <field>
        BINARY SEARCH TRANSPORTING NO FIELDS. "speed up the volume.
      IF SY-SUBRC 0.
        MOVE-CORRESPONDING <tabrec> to  LS_PACKAGE.   
        APPEND LS_PACKAGE TO LT_DATAPACKAGE.
      ENDIF.
    ENDLOOP.
    Regards,
    Clemens

  • Looping the same answer from the 1st row in the table

    I have a database with 3 tables: (1) employeeTable (2) cityTable (3)stateTable.
    I reference the employee's city name and state code by each id number from the cityTable and stateTable.
    My Employee table has about 10 records, 3 has an idcity and idstate input, the rest are blank.
    (1st row) id 9 for Henderson, id 28 for NV (6th row) id 9 for Henderson, id 28 for NV, and (10th row) id 10 for Las Vegas, id 28 for NV
    I run a query:
    <cfquery datasource="dsnName" name="qEmployees">SELECT * FROM users ORDER BY lastName ASC</cfquery>
    <cfquery datasource="dsnName" name="qState">SELECT code FROM states WHERE idstate=#qEmployees.idstate#</cfquery>
    <cfquery datasource="dsnName" name="qCity">SELECT name FROM cities WHERE idcities=#qEmployees.idcity#</cfquery>
    a run the table output:
    <table>
        <cfoutput query="qEmployees">
        <tr>
            <td>#qEmployees.lastName#, #qEmployees.firstName#</td>
            <td>#qCity.name#</td>
            <td width="40">#qState.code#</td>
            <td width="60">#qEmployees.zipCode#</td>
        </tr>
         </cfoutput>
    </table>
    PROBLEM:
    All 10 records output in the table as the same answer from the 1st row (Henderson, NV).
    What's making this loop having the same answer from the 1st row and affects all the rows with blank info or different info?
    I've been trying to figure this out for weeks and I hope the community can help me out. Thanks!

    As Dan rightly says, take a look into table joins; there's no point just giving you the answer as you'll just get stuck next time and these forums are to help people rather than to do their jobs for them.
    What you're looking to do is a relatively simple join, so you shouldn't have to read up for long before you've mastered them. Plus your site will be significantly more efficient

  • How we can loop the screen table.

    Hi All,
    We are used loop the screen table but it is a structure how we are able to do this what sap doing behind this can any body please tell me.
    Thanks,
    Saleem.

    Hi
    SCREEN is a structure only.
    But when you create a screen or selection-screen; the program which controls your screen or selection-screen creates an internal table with header line of type SCREEN.
    So in your program SCREEN is an internal table, you can always loop it.
    To understand it better, write some parameters and select-options in a report program; in debugging mode see the details of SCREEN table.
    Regards
    Surya.

  • Draw the Borders on the Table and Loop Contents.

    Hello Everyone,
    I have a Table and a Loop in the Smartform. I am Printing the Details on the Tabular Format of 5 coulums and a few rows in the table and a loop.
    Now, I want to Draw the table lines for these tables and the Loop.
    The Option of Boxes and Lines are provided but I can not use them.
    Can any one please Suggest me how to use the Lines and the Boxes on the table and the Loop.
    Regards,
    Deepak.

    Hello,
    I tried the way you told me to but then every time I single click or even double click. It just gives me the same error  that
    "The Boxes and shadowing are not allowed in the Table."
    I am doing this in  the Output options tab of the Cell which has been created under the Row line of the table.
    Please suggest me any other possible work around or the solution. Many thanks for your Advice so far.
    Regards,
    Deepak.

  • Segmenting the data in the table

    Hello,
    I need to create the segmentation on a table. Below is the original data in the table.
    Begmeasure       EndMeasure       DetMethod         Testpressure
    0                          7703                  
    Acceptable          1006
    7703                     32149                Acceptable          
    1007
    8323                     32149                Not Verified           1010
    8323                     32149                Not Verified          
    1010
    10988                   32149                Acceptable             1010
    Forst row should be compared to its next row. If the next row beg and end measures are in between the first row's beg and end measures or overlaps with the first row, and first row method is " acceptable" and the test pressure is smaller, the first
    row segment stays as the final record. The logic has to loop through every subsequent row untill there is no overlap between the two compared rows.
    As shown below, the rows 3 and 4 are elimated/replaced with 2nd row becuase the detmethod is "Not Verified". Only 2 types of methods exists in the table, "Acceptable" and "Not Verified". In this 10988 is less than 32149, So
    its an overlap. So, we have to segment as 7703 to 10988 and 10988 to 32149. I want the result set to be like this below:
    After Segmentation :
    BegMeasure                EndMeasure           DetMethod            
    Testpressure
    0                                     7703                     Acceptable              
    1006
    7703                               10988                   Acceptable               
    1007
    10988                             32149                  
    Acceptable                 1010
    Please help me in achieving this. Thanks so much for all the help.
    Thank You

    >First row should be compared to its next row.
    First choice is set-based operations. However, you may have to do a cursor WHILE loop for this one:
    http://www.sqlusa.com/bestpractices2005/runningtotalusingcursor/
    Nested cursor WHILE loops:
    http://www.sqlusa.com/bestpractices2005/doublecursor/
    Kalman Toth Database & OLAP Architect
    IPAD SELECT Query Video Tutorial 3.5 Hours
    New Book / Kindle: Exam 70-461 Bootcamp: Querying Microsoft SQL Server 2012

  • How to update the table available in BADI method

    Hi Friends,
    I have to implement one badi ME_REQ_POSTED for purchase requistion, in this badi  I have to read first line item and do
    some check...if that check is true i need to update subsequent line item (line 20, 30, 40 or so) with purchase group and MRP controller.
    In this BADI i have method POSTED, in this method parameter IM_EBAN is a table which i need to modify with my different
    values for purchase group and MRP controller.
    Kindly let me know how to update this table, so the changes can be reflected in purchase requistion.
    Since when I tried to directly modify the table in a loop, system throw one error stating IM_EBAN can not be modified.
    kindly help.
    pradeep

    hi
    I have implemented this exit but it does not stop at it while saving Purchase requistion. But my previous BADI stops at it when saving.
    Kindly guide.

  • Search cannot be executed because the table has pending changes

    I'm getting the following error ..... The search cannot be executed because the table has pending changes that would be lost .... in the following scenario ....
    My 1st page is a search page with resulting rows from which the user can select specific rows to process ..... next button will populate the VO for the 2nd page by manually looping thru the selected rows in the VO of the 1st page. Loop logic is in the AM and it calls a method in the VORowImpl that uses setAttributeInternal .... the 2nd page displays the selected rows .....
    Pressing the back button of the 2nd page will display the 1st page and if the user tries to do a new search .... the error shows up.
    Any suggestions on how to handle this?
    Thank you.

    It seems to me that you are using the same VO on both the pages. If that is the case try to use separate VO for each page.
    And as suggested by Sumit, Never use/ rely on browser back button. Instead put a Back button on the second page through you can handle the event yourself rather than leaving on the mercy of browser.
    --Saroj                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Getting values from the table control to the program

    Hi Gurus,
    i created a program for sales order creation to transfer order creation and to insert multiple values i defined my own selection screen by inserting table control before that the code executed succesfully but after inserting the table control it is not creating any documents
    code before inserting table control:-
    REPORT  zcl120_sales_n_delivery.
                      SALES DOCUMENT CREATION
    PARAMETERS: p_auart TYPE auart OBLIGATORY.
    PARAMETERS: p_vkorg TYPE vkorg OBLIGATORY.
    PARAMETERS: p_vtweg TYPE vtweg OBLIGATORY.
    PARAMETERS: p_spart TYPE vtweg OBLIGATORY.
    PARAMETERS: p_sold TYPE kunnr OBLIGATORY.
    PARAMETERS: p_ship TYPE kunnr OBLIGATORY.
    *ITEM
    PARAMETERS: p_matnr TYPE matnr OBLIGATORY.
    PARAMETERS: p_menge TYPE kwmeng OBLIGATORY.
    PARAMETERS: p_plant TYPE werks_d OBLIGATORY.
    PARAMETERS: p_itcat TYPE pstyv OBLIGATORY.
    DATA DECLARATIONS.
    DATA: v_vbeln LIKE vbak-vbeln.
    DATA: header LIKE bapisdhead1.
    DATA: headerx LIKE bapisdhead1x.
    DATA: item LIKE bapisditem OCCURS 0 WITH HEADER LINE.
    DATA: itemx LIKE bapisditemx OCCURS 0 WITH HEADER LINE.
    DATA: partner LIKE bapipartnr OCCURS 0 WITH HEADER LINE.
    DATA: return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
    DATA: lt_schedules_inx TYPE STANDARD TABLE OF bapischdlx
    WITH HEADER LINE.
    DATA: lt_schedules_in TYPE STANDARD TABLE OF bapischdl
    WITH HEADER LINE.
    HEADER DATA
    header-doc_type = p_auart.
    headerx-doc_type = 'X'.
    header-sales_org = p_vkorg.
    headerx-sales_org = 'X'.
    header-distr_chan = p_vtweg.
    headerx-distr_chan = 'X'.
    header-division = p_spart.
    headerx-division = 'X'.
    headerx-updateflag = 'I'.
    partner-partn_role = 'AG'.
    partner-partn_numb = p_sold.
    APPEND partner.
    partner-partn_role = 'WE'.
    partner-partn_numb = p_ship.
    APPEND partner.
    item-material = p_matnr.
    item-plant = p_plant.
    item-target_qty = p_menge.
    item-target_qu = 'ST'.
    item-item_categ = p_itcat.
    APPEND item.
    itemx-updateflag = 'I'.
    itemx-material = 'X'.
    itemx-plant = 'X'.
    itemx-target_qty = 'X'.
    itemx-target_qu = 'X'.
    itemx-item_categ = 'X'.
    APPEND itemx.
    Fill schedule lines
    lt_schedules_in-itm_number = '000010'.
    lt_schedules_in-sched_line = '0001'.
    lt_schedules_in-req_qty = p_menge.
    APPEND lt_schedules_in.
    Fill schedule line flags
    lt_schedules_inx-itm_number = '000010'.
    lt_schedules_inx-sched_line = '0001'.
    lt_schedules_inx-updateflag = 'X'.
    lt_schedules_inx-req_qty = 'X'.
    APPEND lt_schedules_inx.
    Call the BAPI
    CALL FUNCTION 'BAPI_SALESDOCU_CREATEFROMDATA1'
      EXPORTING
        sales_header_in     = header
        sales_header_inx    = headerx
      IMPORTING
        salesdocument_ex    = v_vbeln
      TABLES
        return              = return
        sales_items_in      = item
        sales_items_inx     = itemx
        sales_schedules_in  = lt_schedules_in
        sales_schedules_inx = lt_schedules_inx
        sales_partners      = partner.
    LOOP AT return WHERE type = 'E' OR type = 'A'.
      EXIT.
    ENDLOOP.
    IF sy-subrc = 0.
      WRITE / return-message.
      WRITE: / 'Error in creating document'.
    ELSE.
      COMMIT WORK AND WAIT.
      WRITE: / 'Document ', v_vbeln, ' created'.
    ENDIF.
                      DELIVERY ORDER CREATION
    *PARAMETERS: p_vbeln LIKE vbak-vbeln.
    DATA: BEGIN OF t_vbap OCCURS 0,
            vbeln LIKE vbap-vbeln,
            posnr LIKE vbap-posnr,
            kwmeng LIKE vbap-kwmeng,
            matnr  LIKE vbap-matnr,
            werks  LIKE vbap-werks,
          END OF t_vbap.
    DATA: t_request TYPE STANDARD TABLE OF bapideliciousrequest
          WITH HEADER LINE.
    DATA: t_created TYPE STANDARD TABLE OF bapideliciouscreateditems
          WITH HEADER LINE.
    DATA: t_return TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.
    SELECT vbeln posnr kwmeng matnr werks
           INTO TABLE t_vbap
           FROM vbap
           WHERE vbeln = v_vbeln
    LOOP AT t_vbap.
      t_request-document_numb = t_vbap-vbeln.
      t_request-document_item = t_vbap-posnr.
      t_request-quantity_sales_uom = t_vbap-kwmeng.
      t_request-id = 1.
      t_request-document_type = 'A'.
      t_request-delivery_date      = sy-datum.
      t_request-material = t_vbap-matnr.
      t_request-plant = t_vbap-werks.
      t_request-date = sy-datum.
      t_request-goods_issue_date = sy-datum.
      t_request-goods_issue_time = sy-uzeit.
      APPEND t_request.
    ENDLOOP.
    CALL FUNCTION 'BAPI_DELIVERYPROCESSING_EXEC'
      TABLES
        request      = t_request
        createditems = t_created
        return       = t_return.
    READ TABLE t_return WITH KEY type = 'E'.
    IF sy-subrc = 0.
      MESSAGE e208(00) WITH 'Delivery creation error'.
    ENDIF.
    COMMIT WORK.
    READ TABLE t_created INDEX 1.
    WRITE: /  'Delivery Number : ',
             t_created-document_numb.
                      CREATE TRANSFER ORDER
    DATA: w_tanum TYPE ltak-tanum.
    CALL FUNCTION 'L_TO_CREATE_DN'
      EXPORTING
        i_lgnum                          = '010'
        i_vbeln                          = t_created-document_numb
    IMPORTING
       e_tanum                          = w_tanum
    EXCEPTIONS
       foreign_lock                     = 1
       dn_completed                     = 2
       partial_delivery_forbidden       = 3
       xfeld_wrong                      = 4
       ldest_wrong                      = 5
       drukz_wrong                      = 6
       dn_wrong                         = 7
       squit_forbidden                  = 8
       no_to_created                    = 9
       teilk_wrong                      = 10
       update_without_commit            = 11
       no_authority                     = 12
       no_picking_allowed               = 13
       dn_hu_not_choosable              = 14
       input_error                      = 15
       OTHERS                           = 16
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    COMMIT WORK AND WAIT.
    WRITE: / 'Transfer order number',
           w_tanum.
    Code after inserting table control:-
    REPORT  zcl120_sales_n_delivery.
                      SALES DOCUMENT CREATION
    DATA: p_auart TYPE auart .
    DATA: p_vkorg TYPE vkorg .
    DATA: p_vtweg TYPE vtweg .
    DATA: p_spart TYPE vtweg .
    DATA: p_sold TYPE kunnr .
    DATA: p_ship TYPE kunnr .
    *ITEM
    data:
    begin of it_item occurs 0,
       p_matnr TYPE matnr,
       p_menge TYPE kwmeng,
       p_plant TYPE werks_d,
       p_itcat TYPE pstyv,
    end of it_item.
    DATA DECLARATIONS.
    DATA: v_vbeln LIKE vbak-vbeln.
    DATA: header LIKE bapisdhead1.
    DATA: headerx LIKE bapisdhead1x.
    DATA: item LIKE bapisditem OCCURS 0 WITH HEADER LINE.
    DATA: itemx LIKE bapisditemx OCCURS 0 WITH HEADER LINE.
    DATA: partner LIKE bapipartnr OCCURS 0 WITH HEADER LINE.
    DATA: return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
    DATA: lt_schedules_inx TYPE STANDARD TABLE OF bapischdlx
    WITH HEADER LINE.
    DATA: lt_schedules_in TYPE STANDARD TABLE OF bapischdl
    WITH HEADER LINE.
    DATA:
      W_COUNTER TYPE I,
      IT_NUM(6) TYPE C value '000010',
      IT_LINE(4) TYPE C value '0001'.
      CALL SCREEN 100.
    HEADER DATA
    header-doc_type = p_auart.
    headerx-doc_type = 'X'.
    header-sales_org = p_vkorg.
    headerx-sales_org = 'X'.
    header-distr_chan = p_vtweg.
    headerx-distr_chan = 'X'.
    header-division = p_spart.
    headerx-division = 'X'.
    headerx-updateflag = 'I'.
    partner-partn_role = 'AG'.
    partner-partn_numb = p_sold.
    APPEND partner.
    partner-partn_role = 'WE'.
    partner-partn_numb = p_ship.
    APPEND partner.
    loop at it_item.
    CLEAR ITEM.
    item-material = it_item-p_matnr.
    item-plant = it_item-p_plant.
    item-target_qty = it_item-p_menge.
    item-target_qu = 'ST'.
    item-item_categ = it_item-p_itcat.
    APPEND item.
    W_COUNTER = W_COUNTER + 1.
    endloop.
    DO W_COUNTER TIMES.
    itemx-updateflag = 'I'.
    itemx-material = 'X'.
    itemx-plant = 'X'.
    itemx-target_qty = 'X'.
    itemx-target_qu = 'X'.
    itemx-item_categ = 'X'.
    APPEND itemx.
    ENDDO.
    Fill schedule lines
    LOOP AT IT_ITEM.
    CLEAR lt_schedules_in.
    lt_schedules_in-itm_number = IT_NUM.
    lt_schedules_in-sched_line = IT_LINE.
    lt_schedules_in-req_qty = IT_ITEM-p_menge.
    APPEND lt_schedules_in.
    IT_NUM = IT_NUM + 10.
    IT_LINE = IT_LINE + 1.
    ENDLOOP.
    IT_NUM = '000010'.
    IT_LINE = '0001'.
    Fill schedule line flags
    LOOP AT IT_ITEM.
    CLEAR lt_schedules_inx.
    lt_schedules_inx-itm_number = IT_NUM.
    lt_schedules_inx-sched_line = IT_LINE.
    lt_schedules_inx-updateflag = 'X'.
    lt_schedules_inx-req_qty = 'X'.
    APPEND lt_schedules_inx.
    IT_NUM = IT_NUM + 10.
    IT_LINE = IT_LINE + 1.
    ENDLOOP.
    Call the BAPI
    CALL FUNCTION 'BAPI_SALESDOCU_CREATEFROMDATA1'
      EXPORTING
        sales_header_in     = header
        sales_header_inx    = headerx
      IMPORTING
        salesdocument_ex    = v_vbeln
      TABLES
        return              = return
        sales_items_in      = item
        sales_items_inx     = itemx
        sales_schedules_in  = lt_schedules_in
        sales_schedules_inx = lt_schedules_inx
        sales_partners      = partner.
    LOOP AT return WHERE type = 'E' OR type = 'A'.
      EXIT.
    ENDLOOP.
    IF sy-subrc = 0.
      WRITE / return-message.
      WRITE: / 'Error in creating document'.
    ELSE.
      COMMIT WORK AND WAIT.
      WRITE: / 'Document ', v_vbeln, ' created'.
    ENDIF.
                      DELIVERY ORDER CREATION
    *PARAMETERS: p_vbeln LIKE vbak-vbeln.
    DATA: BEGIN OF t_vbap OCCURS 0,
            vbeln LIKE vbap-vbeln,
            posnr LIKE vbap-posnr,
            kwmeng LIKE vbap-kwmeng,
            matnr  LIKE vbap-matnr,
            werks  LIKE vbap-werks,
          END OF t_vbap.
    DATA: t_request TYPE STANDARD TABLE OF bapideliciousrequest
          WITH HEADER LINE.
    DATA: t_created TYPE STANDARD TABLE OF bapideliciouscreateditems
          WITH HEADER LINE.
    DATA: t_return TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.
    SELECT vbeln posnr kwmeng matnr werks
           INTO TABLE t_vbap
           FROM vbap
           WHERE vbeln = v_vbeln
    LOOP AT t_vbap.
      t_request-document_numb = t_vbap-vbeln.
      t_request-document_item = t_vbap-posnr.
      t_request-quantity_sales_uom = t_vbap-kwmeng.
      t_request-id = 1.
      t_request-document_type = 'A'.
      t_request-delivery_date      = sy-datum.
      t_request-material = t_vbap-matnr.
      t_request-plant = t_vbap-werks.
      t_request-date = sy-datum.
      t_request-goods_issue_date = sy-datum.
      t_request-goods_issue_time = sy-uzeit.
      APPEND t_request.
    ENDLOOP.
    CALL FUNCTION 'BAPI_DELIVERYPROCESSING_EXEC'
      TABLES
        request      = t_request
        createditems = t_created
        return       = t_return.
    READ TABLE t_return WITH KEY type = 'E'.
    IF sy-subrc = 0.
      MESSAGE e208(00) WITH 'Delivery creation error'.
    ENDIF.
    COMMIT WORK.
    READ TABLE t_created INDEX 1.
    WRITE: /  'Delivery Number : ',
             t_created-document_numb.
                      CREATE TRANSFER ORDER
    DATA: w_tanum TYPE ltak-tanum.
    CALL FUNCTION 'L_TO_CREATE_DN'
      EXPORTING
        i_lgnum                          = '010'
        i_vbeln                          = t_created-document_numb
    IMPORTING
       e_tanum                          = w_tanum
    EXCEPTIONS
       foreign_lock                     = 1
       dn_completed                     = 2
       partial_delivery_forbidden       = 3
       xfeld_wrong                      = 4
       ldest_wrong                      = 5
       drukz_wrong                      = 6
       dn_wrong                         = 7
       squit_forbidden                  = 8
       no_to_created                    = 9
       teilk_wrong                      = 10
       update_without_commit            = 11
       no_authority                     = 12
       no_picking_allowed               = 13
       dn_hu_not_choosable              = 14
       input_error                      = 15
       OTHERS                           = 16
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    COMMIT WORK AND WAIT.
    WRITE: / 'Transfer order number',
           w_tanum.
    *&SPWIZARD: DECLARATION OF TABLECONTROL 'TAB_CON1' ITSELF
    CONTROLS: TAB_CON1 TYPE TABLEVIEW USING SCREEN 0100.
    *&SPWIZARD: OUTPUT MODULE FOR TC 'TAB_CON1'. DO NOT CHANGE THIS LINE!
    *&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR
    MODULE TAB_CON1_CHANGE_TC_ATTR OUTPUT.
      DESCRIBE TABLE IT_ITEM LINES TAB_CON1-lines.
    ENDMODULE.
    *&      Module  STATUS_0100  OUTPUT
          text
    module STATUS_0100 output.
       SET PF-STATUS 'MENU'.
    SET TITLEBAR 'xxx'.
    endmodule.                 " STATUS_0100  OUTPUT
    *&      Module  USER_COMMAND_0100  INPUT
          text
    module USER_COMMAND_0100 input.
    IF SY-UCOMM EQ 'START'.
    LEAVE to screen 0 .
    ENDIF.
    endmodule.                 " USER_COMMAND_0100  INPUT
    *&      Module  APPEND_IT_ITEM  INPUT
          text
    module APPEND_IT_ITEM input.
    APPEND IT_ITEM.
    CLEAR IT_ITEM.
    endmodule.                 " APPEND_IT_ITEM  INPUT
    plz help me where the error is

    Hi,
    Do same as suggested by Ramesh. Add one user command button after clicking that do the looping and call new screen.
    Ashven.

  • How to update the table when change list item in classic report

    hi ,
    i worked with apex 4.2 and i create normal classic report with one select list(named loved)Column ,now i want to update table when user change the list with new value ,i can't create dynamic action to do this,i create check box with primary key and loop for check item to update the table but i can't get the value of list item. and for more speed the user want to do this when change the list value.
    my question
    1- how to do this by javascript and get the value from list item and update the table with new value
    2- is i must use API to create list item so i can get the value of item in report or what.
    Thanks
    Ahmed

    I coded the following to give you direction:
    1. In the "Element Attributes" section of the DEPTNO column, I call a javascript function as:
    onchange = "javascript:updateTable(this);"2. I wrote a simple javascript function that shows an alert when the user changes the select list as:
    <script language="JavaScript" type="text/javascript">
    function updateTable(pThis)
        var vRow = pThis.id.substr(pThis.id.indexOf('_')+1);
        alert('Row# - '+ vRow + ' has the value - ' + pThis.value);
    </script>Now, you can call a AJAX on-demand process inside the javascript function to update the database value.

  • How to check if a constraint existed in the table and drop it?

    Hi all,
    I want to drop a constraint from a table. I do not know if this constraint already existed in the table. So I want to check if this exists first.
    Below is my query:
    DECLARE
    itemExists NUMBER;
    BEGIN
         itemExists := 0;
    SELECT COUNT(CONSTRAINT_NAME) INTO itemExists
    FROM ALL_CONSTRAINTS
    WHERE UPPER(CONSTRAINT_NAME) = UPPER('my_constraint');
    IF itemExists > 0 THEN
    ALTER TABLE my_table DROP CONSTRAINT my_constraint;
    END IF;
    END;
    Here is the error I got when I executed the above query:
    ORA-06550: line 11, column 5: PLS-00103: Encountered the symbol "ALTER" when expecting one of the following: ( begin case declare exit for goto if loop mod null pragma raise return select update while with <an identifier> <a double-quoted delimited-identifier> <a bind variable> << continue close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe purge
    Please help me with this!
    Greatly appreciate!
    Khoi Le

    Yes, I also tried to put the pl-sql in the Execute Immediate. However, the error still remains
    EXECUTE IMMEDIATE 'DECLARE
    itemExists NUMBER;
    BEGIN
         itemExists := 0;
    SELECT COUNT(CONSTRAINT_NAME) INTO itemExists
    FROM ALL_CONSTRAINTS
    WHERE UPPER(CONSTRAINT_NAME) = UPPER('my_constraint');
    IF itemExists > 0 THEN
    ALTER TABLE my_table DROP CONSTRAINT my_constraint;
    END IF;
    END';
    I execute the above code via running the batch file.
    Here is the error after I ran the batch file:
    ORA-06550: line 11, column 5:
    PLS-00103: Encountered the symbol "ALTER" when expecting one of the following:
    ( begin case declare exit for goto if loop mod null pragma
    raise return select update while with <an identifier>
    <a double-quoted delimited-identifier> <a bind variable> <<
    continue close current delete fetch lock insert open rollback
    savepoint set sql execute commit forall merge pipe purge
    The symbol "lock was inserted before "ALTER" to continue.
    ORA-06550: line 11, column 53:
    PLS-00103: Encountered the symbol "DROP" when expecting one of the following:
    . , @ in <an identifier>
    <a double-quoted delimited-identifier> partition subpartition
    ORA-06512: at line 2117
    I can not manually drop it. I need to do this via running an update script file.
    Is there a different way to accomplish this?
    Thank you very much!

  • How to use the table maintenance events for validating the input entries..?

    Hi,
    I have created a Z table with 6 fields in which all are KEY fields. All are of CHAR type. I have created the Table Maintenance Generator for the same. While maintaining the entries in the table, even though I maintain a blank entry for a field it is saving the entry. But, I don't want that way. All the fields are mandatory in my table. One should enter all the fields. Otherwise it should not allow to save the entry. So, I think it can be done using the Table Maintenance Events. can someone tell me how to use the Table Maintenance Events. and which event to use for my reuqirement and what is the logic to be written.
    Or Is there any other way to solve my problem.
    Please share your inputs. Thanks in advance.
    Best regards,
    paddu.

    In the table maintenance generator, Environment --> Modifications --> Events then a screen will be appear here,we need to create the Events.In the EVENTS screen, press new Entries, there give 01(Before Saving the Data in the Database) and give a name(This will become a PERFORM), then click the Editor pushbutton, this will be there at the right side of the entry, then a popup will be appear, you can create an include program, there inside of the include program write ur code.
    Here is documentation for Event 01(Before Saving the Data in the Database )
    Event 01: Before Saving the Data in the Database
    Use
    This event occurs before new, changed or deleted entries are written to the database. Other activities can be performed, for example:
    hidden entry processing
    fill hidden fields
    flag data to be written to hidden tables after the database change.
    To have the changes saved by the central maintenance dialog routines, SY-SUBRC must be set to 0 at the end of the routine.
    Realization
    This event has no standard routine. The following global data is available for the realization of the user routine:
    internal table TOTAL
    field symbols
    field symbols <ACTION> and <ACTION_TEXT>
    <STATUS>-UPD_FLAG
    If internal table data are to be changed before saving, t he changes should be made in both the internal table TOTAL and in the internal table EXTRACT.
    FORM abc.
    DATA: F_INDEX LIKE SY-TABIX. "Index to note the lines found
    LOOP AT TOTAL.
    IF <ACTION> = desired constant.
    READ TABLE EXTRACT WITH KEY <vim_xtotal_key>.
    IF SY-SUBRC EQ 0.
    F_INDEX = SY-TABIX.
    ELSE.
    CLEAR F_INDX.
    ENDIF.
    (make desired changes to the line TOTAL)
    MODIFY TOTAL.
    CHECK F_INDX GT 0.
    EXTRACT = TOTAL.
    MODIFY EXTRACT INDEX F_INDX.
    ENDIF.
    ENDLOOP.
    SY-SUBRC = 0.
    ENDFORM.
    Regards,
    Joy.

  • How to validate the dates in the table control ?

    How to validate the dates in the table control ?
    Can I write like this ?
    LOOP AT it_tab .
    CHAIN.
    FIELD : it_tab-strtdat,it_tab-enddat.
    module date_validation.
    ENDCHAIN.
    ENDLOOP.
    Module Date_validation.
    ranges : vdat type sy-datum.
    vdat-sign = 'I'.
    VDAT-LOW = it_tab-STRTDAT.
    VDAT-HIGH = it_tab-ENDDAT.
    VDAT-OPTION = 'BT'.
    APPEND VDAT.
    WHAT CODE I have to write here to validate ?
    and If I write like this How can we know which is the current row being add ?
    It loops total internal table ..?
    Bye,
    Muttu.

    Hi,
    I think there is no need to put chain endchain.
    To do validation you have to write module in PAI which does required validations.
    Thanks
    DARSHAN PATEL

Maybe you are looking for