BDC for every 80 records

Dear All,
I have one typical BDC problem.
If the number of records in file are crossing 80,my bdc is giving problem. So I need to split total records into sets of 80 and submit them.
So I need to create the session name dynamically, pass the data dynamically.
IF you can send some example code for the above it will be great help for me.
Many Thanks,
Ranjan

Please find my code..
This info may be useful..
I'm doing BDC for KB31N tcode,where i have two items in header(doc date, posting date).Multiple line items(each line item should consists of 4 fields namely cost center,statistical key figure,total qty,text).
When i'm sending more than 80 rec records i'm being populated an error message "BDC_Close_group, session not opened"
Kindly advice me how to handle this
*& Report  ZCO_I025_WSKAZNIKI_STAT_DEV                                 *
*& Interfejs wczytywania wskaŸników statystycznych                     *
REPORT  zco_i025_wskazniki_stat_dev                                 .
TYPES: BEGIN OF l_tab_dane,
    indic LIKE rk23f-stagr,
    quant LIKE rk23f-mbgbtr,
    mpk LIKE rk23f-ekostl,
    order LIKE rk23f-eaufnr,
    text LIKE rk23f-sgtxt,
  END OF l_tab_dane.
DATA: it_excel TYPE TABLE OF alsmex_tabline,
  wa_excel TYPE alsmex_tabline,
  it_data TYPE TABLE OF l_tab_dane,
  wa_data TYPE l_tab_dane,
  error  TYPE C,
  msg TYPE string.
DATA:iv_pole TYPE string,
  ddatum(10),
  kdatum(10),
*Inserted By  Developer
   filelist    TYPE filetable,
        rc          TYPE i.
DATA: BEGIN OF bdctab OCCURS 5.
        INCLUDE STRUCTURE bdcdata.
DATA: END OF bdctab.
SELECTION-SCREEN BEGIN OF BLOCK p1 WITH FRAME TITLE text-001.
PARAMETERS:
  p_zakla LIKE tka01-kokrs DEFAULT '1000',
  p_ddate LIKE sy-datum DEFAULT sy-datum,
  p_kdate LIKE sy-datum DEFAULT sy-datum.
SELECTION-SCREEN ULINE.
PARAMETERS:
  p_fname LIKE rlgrap-filename.  " DEFAULT 'd:dane.xls'.
SELECTION-SCREEN END OF BLOCK p1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
  CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
      file_filter       = cl_gui_frontend_services=>filetype_excel
     multiselection    = 'X'
    CHANGING
      file_table        = filelist
      rc                = rc.
  IF LINES( filelist ) IS INITIAL.
    EXIT.
  ENDIF.
  READ TABLE filelist INDEX 1 INTO p_fname.
START-OF-SELECTION.
AUTHORITY-CHECK OBJECT 'TKA01'
  ID 'KOKRS' FIELD p_zakla.
CONCATENATE p_ddate6(2) '.' p_ddate4(2) '.' p_ddate(4) INTO ddatum.
CONCATENATE p_kdate6(2) '.' p_kdate4(2) '.' p_kdate(4) INTO kdatum.
error = '0'.
PERFORM wczytaj_dane.
IF error = '0'.
  PERFORM utworz_sesje.
  PERFORM wprowadz_dane.
    PERFORM zamknij_sesje.   "comment by prav
ENDIF.
PERFORM zamknij_sesje.        "add by prav
IF error = '1'.
  WRITE: msg, /.
ENDIF.
WRITE: 'Wykonano', /.
*&      Form  wczytaj_dane
      text
FORM wczytaj_dane.
  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      filename                = p_fname
      i_begin_col             = 1
      i_begin_row             = 1
      i_end_col               = 8
      i_end_row               = 65000
    TABLES
      intern                  = it_excel
    EXCEPTIONS
      inconsistent_parameters = 1
      upload_ole              = 2
      OTHERS                  = 3.
  IF sy-subrc <> 0.
    WRITE: / 'B³ad importu pliku wejsciowego: ', p_fname, ' - ',
    sy-subrc.
  ELSE.
    SORT it_excel BY row col.
    LOOP AT it_excel INTO wa_excel.
      IF wa_excel-row = 1.
        CONTINUE.
      ENDIF.
      iv_pole = wa_excel-value.
      CASE wa_excel-col.
        WHEN 1. wa_data-indic = iv_pole.
        WHEN 2.
          REPLACE ',' WITH '.' INTO iv_pole.
          wa_data-quant = iv_pole.
        WHEN 3. wa_data-mpk = iv_pole.
        WHEN 4. wa_data-order = iv_pole.
        WHEN 5. wa_data-text = iv_pole.
      ENDCASE.
      AT END OF row.
        IF wa_data-mpk IS INITIAL AND wa_data-order IS INITIAL.
          error = '1'.
          WRITE:
'Musi byæ podane Stanowisko kosztów lub Zlecenie wewnêtrzne. Rekord: ',
          wa_excel-row, /.
          EXIT.
        ENDIF.
        IF wa_data-mpk IS NOT INITIAL AND wa_data-order IS NOT INITIAL.
          error = '1'.
          WRITE:
'Musi byæ podane Stanowisko kosztów lub Zlecenie wewnêtrzne. Rekord: ',
          wa_excel-row, /.
          EXIT.
        ENDIF.
        IF wa_data-indic IS INITIAL.
          error = '1'.
          WRITE: 'Brak identyfikatora wskaŸnika. Rekord: ', wa_excel-row
          EXIT.
        ENDIF.
        IF wa_data-quant IS INITIAL.
          error = '1'.
          WRITE: 'Brak informacji o iloœci. Rekord: ', wa_excel-row, /.
          EXIT.
        ENDIF.
        APPEND wa_data TO it_data.
        CLEAR wa_data.
      ENDAT.
    ENDLOOP.
  ENDIF.
ENDFORM.                    "wczytaj_dane
*&      Form  wprowadz_dane
      text
FORM wprowadz_dane.
  DATA:licznik TYPE i,
    l_txt TYPE string,
    pole(30) TYPE c,
    liczba(15) TYPE c.
  PERFORM bdc_dynpro      USING 'SAPLSPO4' '0300'.
  PERFORM bdc_field       USING 'BDC_CURSOR' 'SVALD-VALUE(01)'.
  PERFORM bdc_field       USING 'BDC_OKCODE' '=FURT'.
  PERFORM bdc_field       USING 'SVALD-VALUE(01)' p_zakla.
  PERFORM bdc_dynpro      USING 'SAPLK23F1' '1200'.
  PERFORM bdc_field       USING 'BDC_OKCODE' '/00'.
  PERFORM bdc_field       USING 'COHEADER-SEND_REC_REL' '03SAP'.
  PERFORM bdc_field       USING 'RK23F-STATUS' 'L'.
  PERFORM bdc_field       USING 'COHEADER-BLDAT' ddatum.
  PERFORM bdc_field       USING 'COHEADER-BUDAT' kdatum.
  PERFORM bdc_field       USING 'BDC_CURSOR' 'EKOSTL(1)'.
  licznik = 0.
  LOOP AT it_data into wa_data.
    ADD 1 TO licznik.
    l_txt = licznik.
    CONCATENATE 'EL4(' l_txt ')' INTO pole.
    condense pole no-gaps.
    PERFORM bdc_field USING pole wa_data-indic.
    CONCATENATE 'ELR1(' l_txt ')' INTO pole.
       condense pole no-gaps.
      liczba = wa_data-quant.
      if liczba <  0.
          shift liczba circular  left up to '-'.
      endif.
        condense liczba no-gaps.
    PERFORM bdc_field USING pole liczba.
    IF NOT wa_data-mpk IS INITIAL.
      CONCATENATE 'EL2(' l_txt ')' INTO pole.
         condense pole no-gaps.
      PERFORM bdc_field USING pole wa_data-mpk.
    ENDIF.
    IF NOT wa_data-order IS INITIAL.
      CONCATENATE 'EL3(' l_txt ')' INTO pole.
         condense pole no-gaps.
      PERFORM bdc_field USING pole wa_data-order.
    ENDIF.
    CONCATENATE 'EL8(' l_txt ')' INTO pole.
       condense pole no-gaps.
    PERFORM bdc_field USING pole wa_data-text.
  ENDLOOP.
  CALL FUNCTION 'BDC_INSERT'
    EXPORTING
      tcode            = 'KB31N'
    TABLES
      dynprotab        = bdctab
    EXCEPTIONS
      internal_error   = 1
      not_open         = 2
      queue_error      = 3
      tcode_invalid    = 4
      printing_invalid = 5
      posting_invalid  = 6
      OTHERS           = 7.
  IF sy-subrc <> 0.
    WRITE: / text-010 .
  ENDIF.
  REFRESH bdctab.
clear:bdctab.        "by praveen
ENDFORM.                    "wprowadz_dane
*&      Form  bdc_dynpro
      text
     -->PROGRAM    text
     -->DYNPRO     text
FORM bdc_dynpro USING program dynpro.
  CLEAR bdctab.
  MOVE:
    program   TO bdctab-program,
    dynpro    TO bdctab-dynpro,
    'X'       TO bdctab-dynbegin.
  APPEND bdctab.
ENDFORM.                    "bdc_dynpro
*&      Form  bdc_field
      text
     -->POLE       text
     -->WARTOSC    text
FORM bdc_field USING pole wartosc.
  CLEAR bdctab.
  MOVE:
    pole     TO bdctab-fnam,
    wartosc  TO bdctab-fval.
  APPEND bdctab.
ENDFORM.                    "bdc_field
*&      Form  utworz_sesje
      text
FORM utworz_sesje.
  CALL FUNCTION 'BDC_OPEN_GROUP'
    EXPORTING
      client = sy-mandt
      group  = 'WSKASTAT'
      user   = sy-uname
      keep   = 'X'.
ENDFORM.                    "utworz_sesje
*&      Form  zamknij_sesje
      text
FORM zamknij_sesje.
  CALL FUNCTION 'BDC_CLOSE_GROUP'.
  IF sy-subrc NE 0.
    WRITE: /, 'B³ad podczas zamykania sesji'.
    EXIT.
  ENDIF.
ENDFORM.                    "zamknij_sesje

Similar Messages

  • Number for every record that is retrieved from (query)

    Hello
    I wish to put a number for every record that is retrieved
    from the record that is output by this query
    For example
    For the first recored/row
    Generated number, ksnumber, date
    1, gg111 11/05/05
    2, oo235 12/06/05
    the query returned 2 records 1 and 2 are the number that is
    generated with this code.
    In addition if there is a built in function, where in the
    code do I put it???
    <cfquery name="gelov datasource="kl90">
    SELECT
    FROM
    WHERE
    ORDER BY
    <cfswitch expression="#Form.orderBy#">
    <cfks value="KSNUMBER">
    KS.KS_NBR
    </cfks>
    <cfks value="CREATIONDATE">
    KS.KREATDAT
    </cfks>
    </cfswitch>
    </cfquery>
    <!---html report--->
    <cfswitch expression="#Form.outputFormat#">
    <cfks value="HTML">
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
    Transitional//EN" "
    http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="
    http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html;
    charset=iso-8859-1" />
    <title>Ctwye Kss Report</title>
    </head>
    <style type="text/css">
    table{
    font-family:Arial, Helvetica, sans-serif;
    font-size:10px;
    td{
    font-family:Arial, Helvetica, sans-serif;
    font-size:10px;
    th{
    font-family:Arial, Helvetica, sans-serif;
    font-size:10px;
    h2{
    font-family:Arial, Helvetica, sans-serif;
    font-size:12px;
    h3{
    font-family:Arial, Helvetica, sans-serif;
    font-size:13px;
    </style>
    <body>
    <cfoutput>
    <table border="0" cellpadding="3" cellspacing="0">
    <tr>
    <td align="center">
    <h3>Ctwye Kss
    Report</h3><br><br></td>
    </tr>
    <tr>
    <td align="center">
    </h2>report returned #getCtwyeKss.RecordCount#
    records</h2></td>
    </tr>
    <tr>
    <td>
    <table border="1" cellpadding="2" cellspacing="0">
    <tr>
    <td width="160">Ks Number</td>
    <td>Creation Date</td>
    <!--- <td class="dataField">Address</td>
    <td class="dataField">Type</td>
    <td class="dataField">Description</td>--->
    </tr>
    <cfloop query="getCtwyeKss">
    <tr bgcolor="<cfif currentrow mod
    2>GHOSTWHITE<cfelse>WHITE</cfif>">
    <td>#KS_NBR#</td>
    <td>#dateformat(KREATDAT,"mm/dd/yyyy")#</td>
    </tr>
    </cfloop>
    </table>
    </td>
    </tr>
    </table>
    </BODY>
    </HTML>
    </cfoutput>
    </cfks>
    <cfks value="CSV">
    <CFHEADER NAME="Content-Disposition" VALUE="attachment;
    filename=ctwye.csv">
    <cfcontent type="application/msexcel">"Ks
    Number","Creation Date"
    <cfoutput
    query="getCtwyeKss">#ltrim(KS_NBR)#,"#dateformat(KREATDAT,"mm/dd/yyyy")#"
    <tr #IIF(getCtwyeKss.CurrentRow MOD
    2,DE(''),DE('backgroundColor="##999"'))#>
    <!---<tr bgcolor="<cfif currentrow mod
    2>##808080<cfelse>##ffffff</cfif>"> --->
    </cfoutput>
    </cfks>
    </cfswitch>

    <cfks> is not a Coldfusion tag. Use <cfcase>
    instead.
    The following code will print the row numbers
    <cfquery name="gelov" datasource="kl90">
    select ksnumber, date
    from yourTable
    </cfquery>
    <cfoutput query="gelov">
    #currentrow#, #ksnumber#, #date#<br>
    </cfoutput>

  • Page headers repeat for every record on *.CSV export in Crystal 8.5

    I am a MAS 90 reseller.  I have encountered this issue:
    When I try to export a report to a *.csv format in Crystal Reports version 8.5 page headers repeat for every record in the export file.  The Sage MAS 90 database provides this solution:
    This is a known Crystal Reports issue. Download U2FSEPV.DLL, version 8.6.2.475, dated 11/28/2003 from the Business Objects Web site. For more information and a download link, see knowledgebase article c2014451 at support.businessobjects.com
    Note: Be sure to select the download link for Crystal Reports 8.x.
    I cannot locate this download anywhere in the new SAP site.  Can anyone direct me to this download?
    TIA for your help!

    I was finally able to get the uploaded file by right clicking on the file and selecting Save As.  However, when I replace all instances of this dll file with the new one (renamed as directed) I continue to get headers in the CSV file.
    This does not resolve the issue of getting headers only in the output.  Is this the correct dll file or is there another issue causing this output error?

  • Access 2010 Chart - Report returns an identical chart for every record in the underyling query

    Hi there, I hope someone can help me with this. I've created a stacked column chart in a Report. The chart seems to be working fine but my report is returning a chart for every record in the source query.  The chart adds up the days each vehicle in
    a fleet was used in a given time frame.  I'm not a code writer so wizarded my way to the following:
    TRANSFORM Sum(QVehicleDaysUsed.[DaysOfUseThisMonth]) AS SumOfDaysOfUseThisMonth SELECT QVehicleDaysUsed.[YearMakeModelPlate] FROM QVehicleDaysUsed GROUP BY QVehicleDaysUsed.[YearMakeModelPlate] PIVOT QVehicleDaysUsed.VehicleUseForMonthStarting;
    The chart seems to be producing exactly what I want but it's repeated once for every record in the source query. I don't know if this is the issue but I don't have a Master/Child field linking the chart to the report it's in - chart is unbound and therefore
    won't allow me to link fields. I'd sure appreciate any help you can offer! Thanks!
    (Incidentally VehicleUseForMonthStarting is a date field - ideally it should be shown as a DatePart MMMM but for whatever reason Access is balking at the Format expression.)
    Thanks!

    GOT IT! Hurray.  Obvious after giving it more thought... I had to make the report the chart was in Unbound. :) Leaving post up in case it helps someone else out.

  • To genrate individual file for every record.

    Hi Experts,
    I am receiving a message with multiple records. I need to generate individual files for every record.
    How can it be done?
    Thanks
    Karthik

    Bhatia,
    FCC is file content conversion. If your sender communication channel is file and the file is any fixed length or with any separator then you can use this option in your file sender communication channel.
    Regards,
    ---Satish

  • Getting message for every record while pressing down arrow key:apps form

    Hi,
    when i query the form and when I am going through the records by pressing the down arrow of the keyboard I am getting the message 'Do you want to Save the records' for every record even though i did not update any record
    How to avoid the message?
    I developed the form in oracle applications and it is a master detail form which have a header block and lines block.
    thanks & regards
    Deekshit

    Hello,
    You can review the following;
    https://metalink.oracle.com/metalink/plsql/f?p=200:27:627127677634310554::::p27_id,p27_show_header,p27_show_help:173383.995,1,1
    Hope it helps.
    Adith

  • Getting message for every  record while pressing the down arrow

    Hi,
    when i query the form and when I am going through the records by pressing the down arrow of the keyboard I am getting the message 'Do you want to Save the records' for every record.
    How to avoid the message?
    I developed the form in oracle applications and it is a master detail form which have a header block and lines block.

    You are probably changing a value in POST-QUERY trigger, check your trigger and make sure you're not updating any values.
    For Oracle Apps specific questions, I suggest you post in the E Business Suite section of the Forums.
    Tony

  • Text/Label issue - being repeated for every record inside repeating frame.

    Hi
    I have a small issue:
    In the repeating frame, the label (text) for the column is being repeated for every record. How may I have the text (label) appear just once and not for every record?
    Thx!

    Move headings outside of the repeating frame.

  • How to popup editor for every record?

    hi
    i want to popup the editor for every record changed .
    It is a mutli record block.
    I tried it using in pre record trigger using
    go_item(the field name');
    but it is saying illegal restricted porcedure using go_item in the the block level trigger.please someone help me .
    sudharshan

    I want to do this logic
    while querying the records and when-new-record-instance trigger is not firing can someone please help me how to do this.
    Thankyou
    sudharshan

  • Checking for every record in a table using PL/SQL

    Hello Gurus,
    I would need your help in finding the best approach to tackle the below analysis using PL/SQL.
    I have a table which contains two columns
    UserID and Month
    I want to find out the users who made orders every month for the first half of 2012.That is the User ordered on Jan 2012, Feb2012 ... and June 2012.
    The Table is huge and has more than a million records. How do I approach this in PL/SQL.
    Joe

    Hi Justin,
    Thanks for the quick response. This is helpful.However my Intention is to do it using PL/SQL for learning purposes. I am new to PLSQL.
    I wanted to do something like looping through each records in the table for every user ID and If I find orders for six consecutive months for a particular user, I will insert the user id to a temp table.
    Any hints on how can I use this? I heard about cursor. Can I use it. If so how should I approach.
    --Joe                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • How to create checkbox in WAD for every record

    Hi All,
    We have a requirement where in the user selects some of the records from the IP screen and he should be able to see only those selected records and also should be able to plan on the same. So how can i create a checkbox in WAD for each and every record. If this is not possible through check box then are there any other options to achieve this. Request your valuable inputs.

    Hi,
    Not sure if you can create a check-box in wad but for sure you can set properties of the table in which you display your data. There should be something like "Selectable rows" (don't have access to the system now). When you switch it on you will be able to select rows of your report. Then you need to set filter based on the selection you made.
    Tomasz

  • How  to fire a query for every record in a table, pass values in a loop

    Hi,
    For each record in a table, I want to loop through each record and then fire a query by passing acct, product and date from this table to the where clause of the query. I would have to create a pl/sql block..The output of the query I want to spool from sql developer.
    I need the exact syntax please for doing this.. since i am new to Oracle. Just the template will be enough. I will fill in the query.
    Any help is appreciated as always..
    Regards,
    hena

    904385 wrote:
    Hi,
    For each record in a table, I want to loop through each record and then fire a query by passing acct, product and date from this table to the where clause of the query. I would have to create a pl/sql block..The output of the query I want to spool from sql developer.
    I need the exact syntax please for doing this.. since i am new to Oracle. Just the template will be enough. I will fill in the query.
    Any help is appreciated as always..
    Regards,
    henaHave you ever considered using a JOIN ? It does the same thing as looping through a table and applying that to the where clause of a select on a query, only much, much, much faster and without the need to write any code. SQL is a declarative language, so you specify what you want and not how to do it. It can be bit of a journey to change your thought process if you come from a procedural or object world, but once you get there it's a beautiful view.

  • Bdc for info records

    Hi all ,
    i have developed a bdc progoram for inforecords..
                  while uploading the data if there are two conditions or more for same vendor and material i am getting the correct one but netprice for first condition comes correctly . if the second condition comes netprice doesnot occurs..in the purchase org window which as to be generated according to the condition chosen.
    ex: netprice is 250 for cond POOO and second condition is given ROOO(discount) 10  through upload when i go back to purc org window netprice is 0 .
    here my program please suggest me ...
    REPORT ymm_info_bdcrec NO STANDARD PAGE HEADING LINE-SIZE 255.
    INCLUDE bdcrecx1."INCLUDE BDCRECX1.
    DATA : IDX(2) TYPE C VALUE '01'.
    data:  var type string.
    DATA: BEGIN OF lt_infrec OCCURS 0,
          lifnr(20) TYPE c,
          matnr(20) TYPE c,
          ekorg(5) TYPE c,
          werks(5) TYPE c,
          esokz(2) TYPE c,
          mahn1(5) TYPE c,
          urztp(10) TYPE c,
          mahn2(5) TYPE c,
          urznr(10) TYPE c,
          mahn3(5) TYPE c,
          urzdt(10) TYPE c,
          idnlf(10) TYPE c,
          urzla(10) TYPE c,
          ltsnr(10) TYPE c,
          regio(10) TYPE c,
          ltssf(10) TYPE c,
          urzzt(10) TYPE c,
          wglif(10) TYPE c,
          mfrnr(10) TYPE c,
          anzpu(10) TYPE c,
          punei(10) TYPE c,
          verkf(10) TYPE c,
          telf1(10) TYPE c,
          lifab(10) TYPE c,
          rueck(10) TYPE c,
          lifbi(10) TYPE c,
          kolif(10) TYPE c,
          relif(10) TYPE c,
          meins(10) TYPE c,
          umrez(10) TYPE c,
          umren(10) TYPE c,
          vabme(10) TYPE c,
          aplfz(10) TYPE c,
          untto(10) TYPE c,
          mtxno(10) TYPE c,
          ekgrp(10) TYPE c,
          uebto(10) TYPE c,
          kzabs(10) TYPE c,
          norbm(10) TYPE c,
          uebtk(10) TYPE c,
          bstae(10) TYPE c,
          minbm(10) TYPE c,
          webre(10) TYPE c,
          mwskz(10) TYPE c,
          mhdrz(10) TYPE c,
          iprkz(10) TYPE c,
          xersn(10) TYPE c,
          evers(10) TYPE c,
          exprf(10) TYPE c,
          bstma(10) TYPE c,
          rdprf(10) TYPE c,
          megru(10) TYPE c,
          netpr(10) TYPE c,
          waers(10) TYPE c,
          peinh(10) TYPE c,
          bprme(10) TYPE c,
          sktof(10) TYPE c,
          bpumz(10) TYPE c,
          bpumn(10) TYPE c,
          ekkol(10) TYPE c,
          meprf(10) TYPE c,
          inco1(10) TYPE c,
          inco2(10) TYPE c,
          datab(10) TYPE c,
          datbi(10) TYPE c,
          kschl(10) TYPE c,
          kbetr(10) TYPE c,
          konwa(10) TYPE c,
          kpein(10) TYPE c,
          kmein(10) TYPE c,
          end of lt_infrec.
      data: begin of lt_infrec1 occurs 0,
          lifnr(20) TYPE c,
          matnr(20) TYPE c,
          ekorg(5) TYPE c,
          werks(5) TYPE c,
          esokz(2) TYPE c,
          mahn1(5) TYPE c,
          urztp(10) TYPE c,
          mahn2(5) TYPE c,
          urznr(10) TYPE c,
          mahn3(5) TYPE c,
          urzdt(10) TYPE c,
          idnlf(10) TYPE c,
          urzla(10) TYPE c,
          ltsnr(10) TYPE c,
          regio(10) TYPE c,
          ltssf(10) TYPE c,
          urzzt(10) TYPE c,
          wglif(10) TYPE c,
          mfrnr(10) TYPE c,
          anzpu(10) TYPE c,
          punei(10) TYPE c,
          verkf(10) TYPE c,
          telf1(10) TYPE c,
          lifab(10) TYPE c,
          rueck(10) TYPE c,
          lifbi(10) TYPE c,
          kolif(10) TYPE c,
          relif(10) TYPE c,
          meins(10) TYPE c,
          umrez(10) TYPE c,
          umren(10) TYPE c,
          vabme(10) TYPE c,
          aplfz(10) TYPE c,
          untto(10) TYPE c,
          mtxno(10) TYPE c,
          ekgrp(10) TYPE c,
          uebto(10) TYPE c,
          kzabs(10) TYPE c,
          norbm(10) TYPE c,
          uebtk(10) TYPE c,
          bstae(10) TYPE c,
          minbm(10) TYPE c,
          webre(10) TYPE c,
          mwskz(10) TYPE c,
          mhdrz(10) TYPE c,
          iprkz(10) TYPE c,
          xersn(10) TYPE c,
          evers(10) TYPE c,
          exprf(10) TYPE c,
          bstma(10) TYPE c,
          rdprf(10) TYPE c,
          megru(10) TYPE c,
          netpr(10) TYPE c,
          waers(10) TYPE c,
          peinh(10) TYPE c,
          bprme(10) TYPE c,
          sktof(10) TYPE c,
          bpumz(10) TYPE c,
          bpumn(10) TYPE c,
          ekkol(10) TYPE c,
          meprf(10) TYPE c,
          inco1(10) TYPE c,
          inco2(10) TYPE c,
          datab(10) TYPE c,
          datbi(10) TYPE c,
          kschl(10) TYPE c,
          kbetr(10) TYPE c,
          konwa(10) TYPE c,
          kpein(10) TYPE c,
          kmein(10) TYPE c,
         END OF lt_infrec1.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS: p_file LIKE rlgrap-filename.
    SELECTION-SCREEN END OF BLOCK b1.
    DATA: lv_file TYPE string.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
        EXPORTING
          field_name = p_file
        CHANGING
          file_name  = p_file.
      START OF SELECTION
    START-OF-SELECTION.
      UPLOADING THE FILE
      IF p_file IS NOT INITIAL.
        lv_file = p_file.
        CALL FUNCTION 'UPLOAD'
         EXPORTING
      CODEPAGE                      = ' '
           filename                      = ' '
           filetype                      = 'DAT'
      ITEM                          = ' '
      FILEMASK_MASK                 = ' '
      FILEMASK_TEXT                 = ' '
      FILETYPE_NO_CHANGE            = ' '
      FILEMASK_ALL                  = ' '
      FILETYPE_NO_SHOW              = ' '
      LINE_EXIT                     = ' '
      USER_FORM                     = ' '
      USER_PROG                     = ' '
      SILENT                        = 'S'
    IMPORTING
      FILESIZE                      =
      CANCEL                        =
      ACT_FILENAME                  =
      ACT_FILETYPE                  =
          TABLES
            data_tab                      = lt_infrec
         EXCEPTIONS
           conversion_error              = 1
           invalid_table_width           = 2
           invalid_type                  = 3
           no_batch                      = 4
           unknown_error                 = 5
           gui_refuse_filetransfer       = 6
           OTHERS                        = 7
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
    *CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
       filename                      =
      FILETYPE                      = 'DAT'
      HAS_FIELD_SEPARATOR           = ' '
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
      CODEPAGE                      = ' '
      IGNORE_CERR                   = ABAP_TRUE
      REPLACEMENT                   = '#'
      CHECK_BOM                     = ' '
      VIRUS_SCAN_PROFILE            =
      NO_AUTH_CHECK                 = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
    tables
       data_tab                      = lt_infrec
    EXCEPTIONS
      FILE_OPEN_ERROR               = 1
      FILE_READ_ERROR               = 2
      NO_BATCH                      = 3
      GUI_REFUSE_FILETRANSFER       = 4
      INVALID_TYPE                  = 5
      NO_AUTHORITY                  = 6
      UNKNOWN_ERROR                 = 7
      BAD_DATA_FORMAT               = 8
      HEADER_NOT_ALLOWED            = 9
      SEPARATOR_NOT_ALLOWED         = 10
      HEADER_TOO_LONG               = 11
      UNKNOWN_DP_ERROR              = 12
      ACCESS_DENIED                 = 13
      DP_OUT_OF_MEMORY              = 14
      DISK_FULL                     = 15
      DP_TIMEOUT                    = 16
      OTHERS                        = 17
    *IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    *ENDIF.
      ENDIF.
    loop at lt_infrec.
      ON CHANGE OF lt_infrec-lifnr or  lt_infrec-matnr or lt_infrec-ekorg.
    MOVE-CORRESPONDING  lt_infrec TO  lt_infrec1.
    append lt_infrec1.
    endloop.
    DELETE ADJACENT DUPLICATES FROM lt_infrec1 COMPARING  lifnr matnr  ekorg.
       REFRESH t_bdcdata.
       CLEAR lv_lifnr.
       CLEAR lv_matnr.
        PERFORM open_group.
          LOOP AT lt_infrec1.
      SCREEN 1
        PERFORM bdc_dynpro      USING 'SAPMM06I' '0100'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RM06I-NORMB'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'EINA-LIFNR' lt_infrec1-lifnr.
        PERFORM bdc_field       USING 'EINA-MATNR' lt_infrec1-matnr.
        PERFORM bdc_field       USING 'EINE-EKORG' lt_infrec1-ekorg.
        PERFORM bdc_field       USING 'EINE-WERKS' lt_infrec1-werks.
        IF lt_infrec1-esokz = '0'.
          PERFORM bdc_field       USING 'RM06I-NORMB'
                                        'x'.
        ELSEIF lt_infrec1-esokz = '1'.
          PERFORM bdc_field       USING 'RM06I-LOHNB'
                                        'x'.
        ELSEIF lt_infrec1-esokz = '2'.
          PERFORM bdc_field       USING 'RM06I-PIPEL'
                                        'x'.
        ELSEIF lt_infrec1-esokz = '3' .
          PERFORM bdc_field       USING 'RM06I-KONSI'
                                         'x'.
        ENDIF.
      SCREEN 2
        PERFORM bdc_dynpro      USING 'SAPMM06I' '0101'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'EINA-VABME'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=EINE'.
        PERFORM bdc_field       USING 'EINA-MAHN1' lt_infrec1-mahn1.
        PERFORM bdc_field       USING 'EINA-URZTP' lt_infrec1-urztp.
        PERFORM bdc_field       USING 'EINA-MAHN2' lt_infrec1-mahn2.
        PERFORM bdc_field       USING 'EINA-URZNR' lt_infrec1-urznr.
        PERFORM bdc_field       USING 'EINA-MAHN3' lt_infrec1-mahn3.
        PERFORM bdc_field       USING 'EINA-URZDT' lt_infrec1-urzdt.
        PERFORM bdc_field       USING 'EINA-IDNLF' lt_infrec1-idnlf.
        PERFORM bdc_field       USING 'EINA-URZLA' lt_infrec1-urzla.
        PERFORM bdc_field       USING 'EINA-LTSNR' lt_infrec1-ltsnr.
        PERFORM bdc_field       USING 'EINA-REGIO' lt_infrec1-regio.
        PERFORM bdc_field       USING 'EINA-LTSSF' lt_infrec1-ltssf.
        PERFORM bdc_field       USING 'EINA-URZZT' lt_infrec1-urzzt.
        PERFORM bdc_field       USING 'EINA-WGLIF' lt_infrec1-wglif.
        PERFORM bdc_field       USING 'EINA-MFRNR' lt_infrec1-mfrnr.
        PERFORM bdc_field       USING 'EINA-ANZPU' lt_infrec1-anzpu.
        PERFORM bdc_field       USING 'EINA-PUNEI' lt_infrec1-punei.
        PERFORM bdc_field       USING 'EINA-VERKF' lt_infrec1-verkf.
        PERFORM bdc_field       USING 'EINA-TELF1' lt_infrec1-telf1.
        PERFORM bdc_field       USING 'EINA-LIFAB' lt_infrec1-lifab.
        PERFORM bdc_field       USING 'EINA-RUECK' lt_infrec1-rueck.
        PERFORM bdc_field       USING 'EINA-LIFBI' lt_infrec1-lifbi.
        PERFORM bdc_field       USING 'EINA-KOLIF' lt_infrec1-kolif.
        PERFORM bdc_field       USING 'EINA-RELIF' lt_infrec1-relif.
        PERFORM bdc_field       USING 'EINA-MEINS' lt_infrec1-meins.
        PERFORM bdc_field       USING 'EINA-UMREZ' lt_infrec1-umrez.
        PERFORM bdc_field       USING 'EINA-UMREN' lt_infrec1-umren.
        PERFORM bdc_field       USING 'EINA-VABME' lt_infrec1-vabme.
      SCREEN 2(B)
        PERFORM bdc_dynpro      USING 'SAPMM06I' '0102'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'EINE-INCO2'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=KO'.
        PERFORM bdc_field       USING 'EINE-APLFZ' lt_infrec1-aplfz.
        PERFORM bdc_field       USING 'EINE-UNTTO' lt_infrec1-untto.
        PERFORM bdc_field       USING 'EINE-MTXNO' lt_infrec1-mtxno.
        PERFORM bdc_field       USING 'EINE-EKGRP' lt_infrec1-ekgrp.
        PERFORM bdc_field       USING 'EINE-UEBTO' lt_infrec1-uebto.
        PERFORM bdc_field       USING 'EINE-KZABS' lt_infrec1-kzabs.
        PERFORM bdc_field       USING 'EINE-NORBM' lt_infrec1-norbm.
        PERFORM bdc_field       USING 'EINE-UEBTK' lt_infrec1-uebtk.
        PERFORM bdc_field       USING 'EINE-BSTAE' lt_infrec1-bstae.
        PERFORM bdc_field       USING 'EINE-MINBM' lt_infrec1-minbm.
        PERFORM bdc_field       USING 'EINE-WEBRE' lt_infrec1-webre.
        PERFORM bdc_field       USING 'EINE-MWSKZ' lt_infrec1-mwskz.
        PERFORM bdc_field       USING 'EINE-MHDRZ' lt_infrec1-mhdrz.
        PERFORM bdc_field       USING 'EINE-IPRKZ' lt_infrec1-iprkz.
        PERFORM bdc_field       USING 'EINE-XERSN' lt_infrec1-xersn.
        PERFORM bdc_field       USING 'EINE-EVERS' lt_infrec1-evers.
        PERFORM bdc_field       USING 'EINE-EXPRF' lt_infrec1-exprf.
        PERFORM bdc_field       USING 'EINE-BSTMA' lt_infrec1-bstma.
        PERFORM bdc_field       USING 'EINE-RDPRF' lt_infrec1-rdprf.
        PERFORM bdc_field       USING 'EINE-MEGRU' lt_infrec1-megru.
        PERFORM bdc_field       USING 'EINE-NETPR' lt_infrec1-netpr.
        PERFORM bdc_field       USING 'EINE-WAERS' lt_infrec1-waers.
        PERFORM bdc_field       USING 'EINE-PEINH' lt_infrec1-peinh.
        PERFORM bdc_field       USING 'EINE-BPRME' lt_infrec1-bprme.
        PERFORM bdc_field       USING 'EINE-SKTOF' lt_infrec1-sktof.
        PERFORM bdc_field       USING 'EINE-BPUMZ' lt_infrec1-bpumz.
        PERFORM bdc_field       USING 'EINE-BPUMN' lt_infrec1-bpumn.
        PERFORM bdc_field       USING 'EINE-EKKOL' lt_infrec1-ekkol.
        PERFORM bdc_field       USING 'EINE-MEPRF' lt_infrec1-meprf.
        PERFORM bdc_field       USING 'EINE-INCO1' lt_infrec1-inco1.
        PERFORM bdc_field       USING 'EINE-INCO2' lt_infrec1-inco2.
      SCREEN 2(C)
        PERFORM bdc_dynpro      USING 'SAPMV13A' '0201'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'KONP-KMEIN'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'RV13A-DATAB' lt_infrec1-datab.
        PERFORM bdc_field       USING 'RV13A-DATBI' lt_infrec1-datbi.
    loop at lt_infrec where lifnr = lt_infrec-lifnr and
                              matnr = lt_infrec-matnr and
                              ekorg = lt_infrec-ekorg.
            CONCATENATE 'KONP-KSCHL(' IDX ')' INTO var.
           PERFORM bdc_field       USING 'KONP-KSCHL' lt_infrec1-kschl.
            PERFORM bdc_field       USING VAR lt_infrec-kschl.
            CONCATENATE 'KONP-KBETR(' IDX ')' INTO VAR.
           PERFORM bdc_field       USING 'KONP-KBETR' lt_infrec1-kbetr.
             PERFORM bdc_field USING VAR lt_INFREC-KBETR.
             CONCATENATE 'KONP-KONWA(' IDX ')' INTO VAR.
           PERFORM bdc_field       USING 'KONP-KONWA' lt_infrec1-konwa.
            PERFORM bdc_field       USING VAR lt_infrec-KONWA.
            CONCATENATE 'KONP-KPEIN(' IDX ')' INTO VAR.
           PERFORM bdc_field       USING 'KONP-KPEIN' lt_infrec1-kpein.
            PERFORM bdc_field       USING VAR lt_infrec-kPEIN.
            CONCATENATE 'KONP-KMEIN(' IDX ')' INTO VAR.
           PERFORM bdc_field       USING 'KONP-KMEIN' lt_infrec1-kmein.
            PERFORM bdc_field       USING VAR lt_infrec-kMEIN.
            idx = idx + 1.
      ENDLOOP.
      CLEAR idx.
      SCREEN 2(D)
        PERFORM bdc_dynpro      USING 'SAPMV13A' '0201'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RV13A-DATAB'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'RV13A-DATAB' lt_infrec-datab.
        PERFORM bdc_field       USING 'RV13A-DATBI' lt_infrec-datbi.
        PERFORM bdc_dynpro      USING 'SAPMM06I' '0102'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'EINE-APLFZ'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=TEXT'.
        PERFORM bdc_field       USING 'EINE-APLFZ' lt_infrec-aplfz.
        PERFORM bdc_field       USING 'EINE-UNTTO' lt_infrec-untto.
        PERFORM bdc_field       USING 'EINE-EKGRP' lt_infrec-ekgrp.
        PERFORM bdc_field       USING 'EINE-UEBTO' lt_infrec-uebto.
        PERFORM bdc_field       USING 'EINE-KZABS' lt_infrec-kzabs.
        PERFORM bdc_field       USING 'EINE-NORBM' lt_infrec-norbm.
        PERFORM bdc_field       USING 'EINE-MINBM' lt_infrec-minbm.
        PERFORM bdc_field       USING 'EINE-WEBRE' lt_infrec-webre.
        PERFORM bdc_field       USING 'EINE-MWSKZ' lt_infrec-mwskz.
        PERFORM bdc_field       USING 'EINE-IPRKZ' lt_infrec-iprkz.
        PERFORM bdc_field       USING 'EINE-NETPR' lt_infrec-netpr.
        PERFORM bdc_field       USING 'EINE-WAERS' lt_infrec-waers.
        PERFORM bdc_field       USING 'EINE-PEINH' lt_infrec-peinh.
        PERFORM bdc_field       USING 'EINE-BPRME' lt_infrec-bprme.
        PERFORM bdc_field       USING 'EINE-BPUMZ' lt_infrec-bpumz.
        PERFORM bdc_field       USING 'EINE-BPUMN' lt_infrec-bpumn.
        PERFORM bdc_field       USING 'EINE-MEPRF' lt_infrec-meprf.
        PERFORM bdc_field       USING 'EINE-INCO1' lt_infrec-inco1.
        PERFORM bdc_field       USING 'EINE-INCO2' lt_infrec-inco2.
      SCREEN 4
       PERFORM bdc_dynpro      USING 'SAPMM06I' '0103'.
       PERFORM bdc_field       USING 'BDC_CURSOR'
                                     'RM06I-LTEX5(02)'.
       PERFORM bdc_field       USING 'BDC_OKCODE'
                                     '/00'.
       PERFORM bdc_field       USING 'RM06I-SELKZ(02)'
       PERFORM bdc_field       USING 'RM06I-LTEX1(01)'
       PERFORM bdc_field       USING 'RM06I-LTEX1(02)'
       PERFORM bdc_field       USING 'RM06I-LTEX2(01)'
       PERFORM bdc_field       USING 'RM06I-LTEX2(02)'
       PERFORM bdc_field       USING 'RM06I-LTEX3(01)'
       PERFORM bdc_field       USING 'RM06I-LTEX3(02)'
       PERFORM bdc_field       USING 'RM06I-LTEX4(01)'
       PERFORM bdc_field       USING 'RM06I-LTEX4(02)'
       PERFORM bdc_field       USING 'RM06I-LTEX5(01)'
       PERFORM bdc_field       USING 'RM06I-LTEX5(02)'
      SCREEN 5
       PERFORM bdc_dynpro      USING 'SAPMM06I' '0103'.
       PERFORM bdc_field       USING 'BDC_CURSOR'
                                     'RM06I-LTEX1(01)'.
       PERFORM bdc_field       USING 'BDC_OKCODE'
                                     '=BU'.
        PERFORM bdc_transaction USING 'ME11'.
        CLEAR lt_infrec.
        clear lt_infrec1.
       CALL TRANSACTION 'ME11' USING t_bdcdata MODE 'A'.
      ENDLOOP.
      PERFORM close_group.
    *ENDFORM.                    "BDC_FIELD
    thanks in advance ...
    bye
    pradeep

    Hi,
    for loading the Inforecords I suggest you to use LSMW with following methods:
    PurchasingInfoRecord:
    Object               0060   Purchasing info rec.
    Method               0000                      
    Program name         RM06IBI0                  
    Program type         B   Batch input          
    Conditions:
    with IDoc:
    Message type         COND_A         
    Basic type           COND_A02      
    or with BI program:
    Object               0070   Condition record
    Method               0000                   
    Program name         RV14BTCI               
    Program type         B   Batch input       
    The above methods would provide you an efficient & effective way of loading mass data with all possible complexicity w.r.t conditions.
    Hope this helps.
    Best Regards, Murugesh AS

  • BDC for existing record in table control

    Hi,
    I have a requirement to change existing records in table control through BDC. Is there any way I can choose the respective record from Table Control through BDC dynamically.
    Regards
    Akash

    /J4I/015PER, this transaction is used for adding permits to Operation in WEC. It has list of operations in Table Control. Permit can be added for choosing the operation from table control.
    Our custom program is designed to add permits for the operation. So if I have to use the above transaction for adding permits, then first I have to choose the correct operation from the table control and then add permit.

  • Clear the content of Checkbox without looping for every record

    Hi all,
    I am Karthik. I am working in Oracle EBS. I am developing one form in which it contain 2 checkbox. if checkbox1 is selected in 1st record it need to check checkbox2 all the record till the end of the block. when i uncheck it need to do reverse. what i facing during unchecking it need to loop through all the record and it assign the value. I use clear_item(even i know it use only for clearing the text_item) it is not working.
    Is there any other way than this to uncheck?
    Please specify apps property for set_block_property, set_window_property,set_item_instances_property,get_item_property,get_item_instance_property
    the procedure is
    /* This Procedure take care of post processing when button copy is pressed in form
              It take care of
              1.If the number of record in the block exceeds 1000 then it display a message, to confirm the copy to proceed
              2.If it less than 1000 then it directly proceed to copy by enabling copy_from and copy_to checkbox.
              3.Once copy button is pressed the label of copy button changed to cancel copy
              4.Cancel copy button is pressed , copy_from and copy_to checkbox is disabled in form
         Variable Declaration Purpose
         no_alert_button This variable used to track which button is pressed by user when alert message is shown
    PROCEDURE PROC_COPY_BTN_FCN IS
         no_alert_button NUMBER;
    BEGIN
              IF      Get_Item_Property('BLK_PROD_PROFILE.BTN_COPY',LABEL)='Copy'
              THEN
                   IF PACK_FORM_VAR.no_record_count >1000
                   THEN
                                  Fnd_Message.Set_String('Current Block Contain '|| PACK_FORM_VAR.no_record_count ||' Records. Copy may Take Time');
                                  Fnd_message.Show;
                                  no_alert_button :=Show_Alert('ALERT_RECORD_COUNT');
                                  IF no_alert_button =ALERT_BUTTON1
                                  THEN
                                            --IF      Get_Item_Property('BLK_PROD_PROFILE.BTN_COPY',label)='Copy'
                                            --     THEN
                                            --     :parameter.G_query_find := 'FALSE';
                                                 Set_Block_Property('BLK_PROD_PROFILE',Query_allowed,property_false);
                                                 App_Special.Enable('FILE.SMARTBAR_FIND',PROPERTY_OFF);
                                            --     set_menu_item_property('VIEW.FIND',ICON_IN_MENU,property_off);
                                                 App_Special.Enable('VIEW.FIND',property_off);
                                            Set_Window_Property('WIN_PROD_PROFILE',WIDTH,10.3);
                                            Set_Block_Property('BLK_PROD_PROFILE',BLOCKSCROLLBAR_POSITION,9.691,.906);
                                                 App_Item_Property.Set_Property('BLK_PROD_PROFILE.BTN_CONTINUE',VISIBLE,property_true);
                                                 App_Item_Property.Set_Property('BLK_PROD_PROFILE.CKBX_COPY_TO',VISIBLE,property_true);
                                                 App_Item_Property.Set_Property('BLK_PROD_PROFILE.CKBX_COPY_FROM',VISIBLE,property_true);
                                                 App_Item_Property.Set_Property('BLK_PROD_PROFILE.CKBX_COPY_FROM',ENABLED,property_true);
                                                 App_Item_Property.Set_Property('BLK_PROD_PROFILE.CKBX_COPY_FROM',UPDATE_ALLOWED,property_true);
                                            --App_Item_Property.Set_Property('BLK_PROD_PROFILE.BTN_DESELECT',VISIBLE,property_true);
                                            Go_Item('BLK_PROD_PROFILE.TEXT_PROD_BRAND');
                                            --App_Item_Property.Set_Property('BLK_PROD_PROFILE.BTN_COPY',VISIBLE,property_false);
                                                 App_Item_Property.Set_Property('BLK_PROD_PROFILE.BTN_COPY',label,'Cancel Copy');
                                  END IF;
              ELSE
                                  Set_Block_Property('BLK_PROD_PROFILE',Query_allowed,property_false);
                             App_Special.Enable('FILE.SMARTBAR_FIND',PROPERTY_OFF);
                   --     set_menu_item_property('VIEW.FIND',ICON_IN_MENU,property_off);
                        App_Special.Enable('VIEW.FIND',property_off);
                   Set_Window_Property('WIN_PROD_PROFILE',WIDTH,10.3);
                   Set_Block_Property('BLK_PROD_PROFILE',BLOCKSCROLLBAR_POSITION,9.691,.906);
                        App_Item_Property.Set_Property('BLK_PROD_PROFILE.BTN_CONTINUE',VISIBLE,property_true);
                        App_Item_Property.Set_Property('BLK_PROD_PROFILE.CKBX_COPY_TO',VISIBLE,property_true);
                   App_Item_Property.Set_Property('BLK_PROD_PROFILE.CKBX_COPY_FROM',VISIBLE,property_true);
                             App_Item_Property.Set_Property('BLK_PROD_PROFILE.CKBX_COPY_FROM',ENABLED,property_true);
                        App_Item_Property.Set_Property('BLK_PROD_PROFILE.CKBX_COPY_FROM',UPDATE_ALLOWED,property_true);
                   --App_Item_Property.Set_Property('BLK_PROD_PROFILE.BTN_DESELECT',VISIBLE,property_true);
                   Go_Item('BLK_PROD_PROFILE.TEXT_PROD_BRAND');
                   --App_Item_Property.Set_Property('BLK_PROD_PROFILE.BTN_COPY',VISIBLE,property_false);
                        App_Item_Property.Set_Property('BLK_PROD_PROFILE.BTN_COPY',label,'Cancel Copy');
              END IF;
              ELSIF Get_Item_Property('BLK_PROD_PROFILE.BTN_COPY',label)='Cancel Copy'
              THEN
                        Set_Block_Property('BLK_PROD_PROFILE',Query_allowed,property_true);
                        First_Record;
                        LOOP
                             IF :System.Cursor_Record = PACK_FORM_VAR.no_currec
                             THEN
                                            :BLK_PROD_PROFILE.CKBX_COPY_FROM := 'N';
                                            Set_Item_Instance_Property('BLK_PROD_PROFILE.CKBX_COPY_TO',current_record,UPDATE_ALLOWED,property_true);
                             ELSIF :System.Cursor_Record <> PACK_FORM_VAR.no_currec
                             THEN
                                            :BLK_PROD_PROFILE.CKBX_COPY_TO := 'N';
                                       Set_Item_Instance_Property('BLK_PROD_PROFILE.CKBX_COPY_FROM',current_record,UPDATE_ALLOWED,property_true);
                                            Set_Item_Instance_Property('BLK_PROD_PROFILE.CKBX_COPY_FROM',current_record,INSERT_ALLOWED,property_true);
                                  END IF;
                        EXIT WHEN:System.Last_Record ='TRUE';
                        Next_Record;
                        END LOOP;
                        /*     go_item('BLK_PROD_PROFILE.CKBX_COPY_TO');
                             Clear_item;
                                  go_item('BLK_PROD_PROFILE.CKBX_COPY_FROM');
                             Clear_item; */
                             :BLK_PROD_PROFILE.CKBX_SELECT_ALL :='N';
                             --App_Item_Property.Set_property('BLK_PROD_PROFILE.BTN_DESELECT',visible,property_false);
                        --     App_Item_Property.Set_property('BLK_PROD_PROFILE.BTN_DESELECT',enabled,property_false);
                             App_Item_Property.Set_property('BLK_PROD_PROFILE.CKBX_SELECT_ALL',visible,property_false);
                             App_Item_Property.Set_property('BLK_PROD_PROFILE.BTN_COPY',VISIBLE,property_true);
                             App_Item_Property.Set_property('BLK_PROD_PROFILE.BTN_COPY',ENABLED,property_true);
                             App_Item_Property.Set_property('BLK_PROD_PROFILE.BTN_CONTINUE',VISIBLE,property_false);
                             App_Item_Property.Set_property('BLK_PROD_PROFILE.CKBX_COPY_FROM',VISIBLE,property_false);
                             App_Item_Property.Set_property('BLK_PROD_PROFILE.CKBX_COPY_TO',VISIBLE,property_false);
                             --App_Item_Property.Set_property('BLK_PROD_PROFILE.BTN_DESELECT',label,'Deselect');
                             SET_BLOCK_PROPERTY ('BLK_PROD_PROFILE',BLOCKSCROLLBAR_POSITION,8.5,0.906);
                             set_window_property('WIN_PROD_PROFILE',width,8.9);
                             App_Item_Property.Set_Property('BLK_PROD_PROFILE.BTN_COPY',label,'Copy');
                             App_Special.Enable('VIEW.FIND',property_on);
                             App_Special.Enable('FILE.SMARTBAR_FIND',PROPERTY_ON);
              END IF;
    END;
    Please help me to solve this issue.
    thanks and regards
    Karthik M

    You are creating your vaiables in the declerative block as
    <%!
    String [] equipment=new String[60];
    String [] type=new String[60];
    int i=0;
    int j=0;
    %>
    Place these declerations outside the declerative block i.e. in simple scriplets....
    Now on each page access you will get fresh variables
    Hope this helps...

Maybe you are looking for