How to pass more than 3 Items in link of report attribute?

I have a report with edit link.
After user click link, then go to next page. I want to pass more than 3 items in this link, item 1 name=xxx and value=#xxx#.
How can I do this?
Thanks.

Why wouldn't you pass item values through links...is it not why they were created?1. Item values may contain characters that are not URL safe in general ('#') or in APEX (':'), causing the link to fail.
2. Recognisable item values that are visible in the URL are a security issue, and invite URL tampering that in a poorly designed and implemented system may allow unauthorised access to data.
3. There are limits on the length of URL APEX, user agents and servers are capable of handling.
4. Lots of long URLs in links drives up page weight and bandwidth usage.
5. General housekeeping problems and maintainenance issues: think about going backwards and forwards in single-row APEX URL text item showing 60 chars when making changes to a 2000-character URL.
Best practice when passing parameters through a URL is to use as few as possible: preferably single, unique, "meaningless" sequence- or sys_guid-generated references.

Similar Messages

  • How to pass more than one value for one column in procedure

    hi
    select id, name from col_tab where dept_name in ('ECE','CIVIL');
    when i was running this it is working well.
    CREATE OR REPLACE PACKAGE pack_str
    AS
    TYPE type_refcur IS REF CURSOR;
    PROCEDURE str(char_in VARCHAR2,ans OUT type_refcur);
    END pack_str;
    CREATE OR REPLACE PACKAGE BODY pack_str
    AS
    PROCEDURE str(char_in VARCHAR2,ans OUT type_refcur)
    IS
    BEGIN
    OPEN ans FOR
    select id,name from col_tab where dept_name in char_in ;
    END str;
    END pack_str;
    the package was created.
    my doubt is
    1.how to pass more than one value for char_in (e.g ('ECE','CIVIL'))
    2. when i was storing the value in string like val = 'ECE,CIVIL' ,
    how to get the id,name for ECE and CIVIL.
    plz help me

    Hi Rebekh ,
    I am recreating your packages for the desired output.
    CREATE OR REPLACE PACKAGE pack_str
    AS
         TYPE type_refcur IS REF CURSOR;
         PROCEDURE str(char_in VARCHAR2,ans OUT type_refcur);
    END pack_str;
    CREATE OR REPLACE PACKAGE BODY pack_str
    AS
         PROCEDURE str(char_in VARCHAR2,ans OUT type_refcur)
         IS
              lv_t varchar2(200);
         BEGIN
              lv_t := REPLACE(char_in,',',''',''');
              lv_t := 'select id,name from col_tab where dept_name in (''' || lv_t || ''')' ;
              OPEN ans FOR lv_t;
         END str;
    END pack_str;
    Note:-
    Input Parameter char_in is a comma seperated value for dept_name
    -Debamalya

  • How to pass more than one parameter

    Hello,
    This is my code.
    How to pass more than one parameter:
    SELECT:responsibility_name responsibility_name,
    LPAD(' ', 6*(LEVEL-1))
      || menu_entry.entry_sequence sequence ,
      LPAD(' ', 6*(LEVEL-1))
      || menu.user_menu_name SubMenu_Description ,
      LPAD(' ', 6*(LEVEL-1))
      || func.user_function_name Function_Description ,
      LPAD(' ', 6*(LEVEL-1))
      || menu_entry.prompt prompt
      ,menu.menu_id ,
      func.function_id
      --menu_entry.grant_flag Grant_Flag ,
      --DECODE( menu_entry.sub_menu_id , NULL, 'FUNCTION' , DECODE( menu_entry.function_id , NULL, 'SUBMENU' , 'BOTH') ) Type
    FROM fnd_menu_entries_vl menu_entry ,
      fnd_menus_tl menu ,
      fnd_form_functions_tl func
    WHERE menu_entry.sub_menu_id    = menu.menu_id(+)
    AND menu_entry.function_id      = func.function_id(+)
    AND MENU.LANGUAGE(+) = 'US'
    AND FUNC.LANGUAGE(+) = 'US'
    --AND func.user_function_name LIKE '%Primary Care Providers%'
    AND grant_flag                  = 'Y'
      START WITH menu_entry.menu_id =
      (SELECT menu2.menu_id
      FROM fnd_menus_tl menu2,apps.fnd_responsibility_vl resp
      WHERE menu2.menu_id=resp.menu_id
      and resp.responsibility_name= :responsibility_name
      --and menu2.user_menu_name = ('ATCO HR INQ USER'
      AND LANGUAGE = 'US'
      CONNECT BY MENU_ENTRY.MENU_ID = PRIOR MENU_ENTRY.SUB_MENU_ID
       and menu_entry.function_id not in (select func.function_id
                                       from --fnd_form_functions_vl fnc,
                                       apps.fnd_resp_functions exc,
                                       apps.fnd_responsibility_vl res
                                      where func.function_id = exc.action_id
                                      and res.responsibility_name =:responsibility_name
                                      and res.responsibility_id=exc.responsibility_id)
      and menu_entry.sub_menu_id  not in (select menu.menu_id
                                       from --fnd_menus_vl imn,
                                       apps.fnd_resp_functions exc,
                                       apps.fnd_responsibility_vl res
                                       where menu.menu_id = exc.action_id
                                       and res.responsibility_name =:responsibility_name
                                      and res.responsibility_id=exc.responsibility_id)
    ORDER SIBLINGS BY menu_entry.entry_sequence;
    Thank you for your help
    Shuishenming

    Hi, Ming,
    One way is to put the "parameters" in a table, and join to that table in your query.  If you make it a Global Temporary Table, then multiple sessions can run the query at the same time, and each can be seeing different responsibilities.
    I hope this answers your question.
    If not, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) for all the tables involved, and the results you want from that data.  Since this problem involves parameters, you should give a couple of different sets of parameters, and the results you want from the same sample data for each set.
    Explain, using specific examples, how you get those results from that data.
    Always say what version of Oracle you're using (e.g. 11.2.0.2.0).
    See the forum FAQ: https://forums.oracle.com/message/9362002

  • How to create more than 21 lists in interactive reports

    hello everyone,
    I am new to ABAP as well as this site. Kindly help, I want to know how to create more than 21 lists in interactive reports.
    Also, how can i create them without using WHEN 1, wHEN 2 and so on...
    Kindly help.
    thank you

    Hello,
    Using Intracive Reports its not possible to cretate more than 21 lists.
    But its possible to create more than 21 using ALV concept.
    for sample ALV u can serch in SDN.
    Regards,
    Anil.

  • How to pass more than one value to the procedure

    How can I pass more than one letting date to this procedure. If it is only one letting date, I do not have a problem but when it is more than one letting date at the same time then I am stuck. please help
    example I would like to pass this three letting dates : '01/17/2010', '01/27/2010','05/22/2010'
    CEATE OR REPLACE PROCEDURE TPLCP.PLANHOLDERSLIST
    P_LettingDate IN  VARCHAR2,
    p_results OUT sys_refcursor
    AS
    BEGIN
        OPEN p_results FOR
    SELECT DISTINCT DECODE (TRIM (MIN (j.route)), NULL, 'N/A',TRIM (MIN (j.route))) rt,l.lcontid conid,
                     SUBSTR (q.cprojnum, 1, 10) pr, SUBSTR (l.letting, 3, 2)|| '-'|| SUBSTR (l.letting, 5, 2)|| '-'|| SUBSTR (l.letting, 1, 2) lt,
                    (q.cdescr) jbtyp, INITCAP (q.clocat1 || q.clocat2) loc
               FROM vendor v,
                    vendaddr r,
                    letprop l,
                    planhold p,
                    proposal q,
                    project j,
                    propproj k,
                    bidlet bd
              WHERE v.vendor = r.vendor
                AND k.contid = q.contid
                AND k.pcn = j.pcn
                AND l.lcontid = k.contid
                AND p.vendor = v.vendor
                AND l.letting = p.letting
                AND TO_CHAR (bd.datelet, 'MM/DD/YYYY') IN P_LettingDate
                AND l.CALL = p.CALL
                AND r.addrnum = p.billto
                AND bd.letting = l.letting
           GROUP BY v.vendor,
                    r.addrnum,
                    v.vnamel,
                    r.aaddr1,
                    p.billto,
                    r.acity,
                    r.astate,
                    q.cdescr,
                    q.clocat1,
                    q.clocat2,
                    bd.letting,
                    r.azipcode,
                    r.vasst1,
                    r.aphone,
                    l.letting,
                    l.lcontid,
                    q.cprojnum;
    END PLANHOLDERSLIST;

    you can create your on array type and then pass that as the parameter. I use the suffix of ttyp to represent a table type.  The name of the column when using the table() syntax is columnvalue.
    I altered my session to set the default date format to match your format. you could have used the to_date function to set the values for the arr type.
    Hope this helps.
    create type msw_ttyp as table of date
    create or replace
    procedure msw_test(p_arr     in msw_ttyp) as
    v     integer;
    begin
    select count(*)
       into v
       from table(p_arr);
    dbms_output.put_line('count: '||v);
    for rec in (select column_value
                   from table(p_arr))
    loop
      dbms_output.put_line(rec.column_value);
    end loop;
    end msw_test;
    alter session set nls_date_format = 'MM/DD/YYYY';
    set serveroutput on size 1000000
    exec msw_test(msw_ttyp('01/17/2010', '01/27/2010','05/22/2010'));
    begin
    msw_test(msw_ttyp(to_date('01/17/2010', 'MM/DD/YYYY'),
                       to_date('01/27/2010', 'MM/DD/YYYY'),
                       to_date('05/22/2010', 'MM/DD/YYYY')));
    end;
    /

  • How to pass more than one parameter using common...

    Hi,
    I am using ODP.NET with my 2005 VB
    I want to create function from where I can pass more than one parameter to execute SP, or query just like i created for SQL SERVER as below
    Public shared Function CreateParameter(ByVal paramname As String, ByVal paramvalue As Object) As DbParameter
    Dim param As DbParameter
    param = New SqlParameter
    param.ParameterName = paramname
    param.Value = paramvalue
    Return param
    End Function
    Public Shared Function ExecuteQuery(ByVal sql As String, ByVal commtype As CommandType, ByVal ParamArray parameter As DbParameter())
    Dim cmd As DbCommand = New SqlCommand()
    cmd.Connection = OpenConnection()
    cmd.CommandType = commtype
    cmd.CommandText = sql
    cmd.Parameters.AddRange(parameter)
    Dim RetVal As Integer = cmd.ExecuteNonQuery()
    Return RetVal
    End Function
    specially part is in bold to be converted
    I tried like but oracleCommand.parameters doesnt support AddRange
    please help me out
    Regards

    Hello,
    I used the following way:
    pCommand.CommandText = "Update " + sDataTable + " set "
    + sColumnName + " = :1 ";
    pCommand.Parameters.Add("ValueToDb",
    this.DefaultDbType,
    this.m_Value,
    System.Data.ParameterDirection.Input);
    Of course, you can add :2,... to your command text, too.
    The way back is:
    sEndOfTheClause += " RETURNING " + sDataTable + "." + sColName + " INTO :iNewValue";
    pCommand.CommandText = ... + sEndOfTheClause;
    pCommand.Parameters.Add("iNewValue", this.DefaultDbType,
    ParameterDirection.Output);
    bool bReturn = (pCommand.ExecuteNonQuery() != 0);
    if ((bReturn == true) && (pCommand.Parameters.Count > 0))
    this.Value = DataService.Convert<DATA_TYPE>(pCommand.Parameters[0].Value);
    ....

  • How to display more than 60 columns in a report

    I have a table defined as follows
    id
    column_name
    column_value
    data sample
    id col_name column_value
    1 col1 val1
    1 col2 val2
    1 col3 val3
    2 col1 val1
    2 col2 val2
    2 col3 val3
    now I want to display the data in a report as follows
    id col1 col2 col3
    1 val1 val2 val3
    2 val1 val2 val3
    I was able to generate output using pivots [http://technology.amis.nl/blog/1197/pivot-dynamic-data]
    the problem is that I can have more that 60 columns retrieved in each row, the pivot solution will retrieve them correctly but I can't display more than 60 columns in apex reports, why this restriction in apex, any solution

    Hello:
    In the Source section of the report definition choose 'Use Generic Column Names (parse query at runtime only)' and then specify a suitable value for 'Maximum number of generic report columns:'
    Varad

  • How to pass more than 1000 entries in 'IN' clause, Oracle 11g

    Hi All,
    I know this is a very common question in Oracle discussion forum. But, Im in different zone.
    I use C#, .NET and Oracle 11g. I have a situation where I will create a query statement using 'IN' clause in C# code based on my requirement and execute that statement from code itself with oracle connection object. I do not have any procedures. I must phrase my query statement and pass it on to OracleConnection object to execute it.
    My code looks like this....
    List<decimal> x_Ids = new List<decimal>();
    I will load my IDs into x_Ids here;
    string whereInClause = ........I will prepare a 'IN' clause (All IDs separated by ',')
    My query would looks like this....
    string query = select * from MYTABLE where X_ID in [ whereInClause with more than 1000 entries]
    oraConn.ExecuteQuery(query);
    I have a workaround with OR operator with 'IN' clause like below.
    X_ID in [ Ids till 1000 entries] OR X_ID in [Next 1000 entries] OR X_ID in [Next 1000 entries] ....so on.....
    It is working, but, I heard that this may slowdown the performance of the application. Is this really a performance hit to my application?
    Can you please suggest any other workaround to overcome this situation?

    >
    I have a workaround with OR operator with 'IN' clause like below.
    X_ID in [ Ids till 1000 entries] OR X_ID in [Next 1000 entries] OR X_ID in [Next 1000 entries] ....so on.....
    It is working, but, I heard that this may slowdown the performance of the application. Is this really a performance hit to my application?There should be no performance difference between a statement like
    select * from myTab
    where ID in (1,2,3,4,5)
    OR ID in (6,7,8,10,12) and
    select * from myTab
    where ID in (1,2,3,4,5,6,7,8,10,12) The execution plan should be identical.
    However those values might better be send as a single object (collection or table of numbers type).
    I think the ODP or OO4O connectivity allows to create and such oracle object types.
    Another way could be to think about how all the values are created? Did any user enter them manually? Certainly not. Then maybe you can apply the same logic to the SQL statement that created those values in your .Net application.
    something like
    select * from myTab
    where ID in (select t2.FK_ID from otherTab t2 where t2.Col1 = 100) This approach would probably beat all others performancewise. Since you avoid the overhead of constructing the in-lists.

  • How to pass more than 10 parameters to OnDemand process?

    If have created some application items to use as parameters.
    When I do in my javascript
    get.addParam('F_PAR_REPORT',pReport);
    and I use this parameter in onDemand process as :F_PAR_REPORT , I get
    The requested URL /pls/apex/<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><HTML><HEAD><TITLE>404 Not Found</TITLE></HEAD><BODY><H1>Not Found</H1>The requested URL /pls/apex/wwv_flow.show was not found on this server.<P><HR><ADDRESS>Oracle-Application-Server-10g/10.1.2.0.0 Oracle-HTTP-Server Server at kor.ofisa.ch Port 7777</ADDRESS></BODY></HTML> was not found on this server.
    If I use x01 - x10, with iwwv_flow.g_x01, it works, but I need to pass more that 10 parameters.
    Can anyone give me correct syntax? I remember that before v3, there was a possibility, but I don't remember what it was.
    Igor

    Hi Igor
    I'd recommend that you try the following, as this is how I work around the problem:
    Put your items and values into two delimited strings (use javascript arrays and the join function to simplify the process) and set g_x01 for the items and g_x02 for the values, ensuring each named item has a value and vice versa. On thr processing side use the apex_util.string_to_table function and process them, i.e. set session state etc.
    Hope that helps!
    Cheers
    Matt

  • How to pass more than one value in RfcRequest ?

    Hi  Experts,
    I have a FModule (addition) which is exposed as an Enterprise Service. This FM takes two values as input(VAL1 and VAL2) and gives the result (RESULT). I have done the configuration to connect to the backend system via SAP Widget Foundation. When i tried to test in URL :
    http://localhost:7531/SapMiddleTier/REST/ewcs/service/rfct/form , i gave the input for the RFC Query Parameters as : <VAL1>10</VAL1><VAL2>20</VAL2> , but i get an error "Expecting Expression" .
    Am i giving the input in the wrong format ?
    I wrote another FM which doesnt take any input but returns some text as output and  when i queried it via the above URL, i get the correct result. I again tested with changing the Fmodule that accepts one input and returns one output and i find that it returning perfectly.  But when i try with more than one input i get the below error.
    Could some one please help ?
    See the error :
    <?xml version="1.0" encoding="UTF-8"?>
          <root>
             <Status text="expecting expression" code="-1" type="E"/>
             <StatusDetailList>
                <StatusDetail type="I" text="expecting expression" code="0"/>
                <StatusDetail text="" code="0" type="I" source="net.axyana.qizxopen.xquery.XQEvalException: expecting expression at net.axyana.qizxopen.xquery.ext.XfnEval$Exec.eval(XfnEval.java:62) at net.axyana.qizxopen.xquery.op.Expression.evalAsEvents(Expression.java:556) at net.axyana.qizxopen.xquery.op.ElementConstructor.evalAsEvents(ElementConstructor.java:105) at net.axyana.qizxopen.xquery.op.FLWRExpr.evalAsEvents(FLWRExpr.java:423) at net.axyana.qizxopen.xquery.impl.CompiledQuery.evalAsEvents(CompiledQuery.java:82) at net.axyana.qizxopen.xquery.impl.XQueryExprImpl.doExecuteQuery(XQueryExprImpl.java:267) at
    Best Regards,
    Sam..

    Hi John,
    Thank you for your reply.
    Am trying to test my FM(using http://localhost:7531/SapMiddleTier/REST/ewcs/service/rfct/form) as mentioned in this link:
    http://nvpal168.pal.sap.corp:1080/widgetgallery/staticPage.seam?pageId=staticPage9
    I had downloaded the SAP Widget Foundation and its running.
    Using the link : http://localhost:7531/SapMiddleTier/REST/ewcs/service/rfct/form we can test exposed function modules . If you are using SAP Widget Foundation, then the above link will open up a form
    where in the user gives RFC parameters.
    I gave it as <VAL1>10</VAL1><VAL2>20</VAL2> and click on Query RFC = > i get the above mentioned error. If this works, then i can call my function module via Adobe flex using HTTP Service with the service url as "http://localhost:7531/SapMiddleTier/REST/ewcs/service/rfct/form".
    Best Regards,
    Sam.

  • How to pass more than one email address in email template

    Hi all.
    I need to pass email address list in TO field of email template.I passed the list with comma delimeter but even though mail is trigerring only to the first email address in the list...
    If any one come across this please mail me...
    It is bit urgent....
    Thanks in advance....

    Hi Thanks for your reply.
    No there is no space between two mail ids and also i tried by hardcoding the email id's in TO field even though mail is not triggering....
    Through rules i am pasisng the notifer list.Just i am calling the rules in variable and passing that variable in TO field....
    Is there any other way to solve this problem...

  • How to display more than 255 characters in the report

    Hi all,
    In my program, i try to output a variable type c length 500 in the report. But this report still keep on display 255 characters only although i had set the line-size to 500.
    Is there any method output all characters?
    thanks,
    Janice

    Hi Janice Yeoh,
      I am assuming this is classical report......And just need to do is increase the line-size in report statement. Find below for small example which i ve tried..
    REPORT  ytest1 LINE-SIZE 500.
    DATA :  BEGIN OF it OCCURS 500,
            v TYPE c,
            END OF it.
    DO 503 TIMES.
      IF sy-index = 500.
        WRITE '500'.
      ELSE.
        WRITE : 'X' NO-GAP.
      ENDIF.
    ENDDO.
    Dont forgot to Reward me points .....All the very best....
    Regards,
    Sreenivasa sarma K.

  • How to pass more that 3 items in Column Link

    Hi,
    I need to pass 4 items as link values from page 1 to page 2 . Under Report Attributes-> Column
    Attributes -> Link I cannot set more than 3 items. Can some please advice the best method of passing more than 3 values from page 1 to page 2.
    Thanks in advance
    Aali

    Hi,
    If you report have unique key/primary key, you can just pass that to another page.
    Then computation other items before header e.g. selecting by that key.
    Br,Jari

  • How can I pass more than one parameters in PDK-URL services?

    Hi all,
    How can I pass more than one parameters in PDK-URL service? All samples on Portal Center shows just one parameter passing.
    <inputParameter class="oracle.portal.provider.v1.URLPortletParameter">
    <name>csz</name>
    <isMandatory>false</isMandatory>
    <displayName>What location do you want a map for (City, State or Zip)?</displayName>
    </inputParameter>
    How can I write the privider.xml file for passing multiple parameters?

    I answer to my question. I've got the answer.
    I repeatly write down the <inputParameter> tags, and it works.

  • How to insert more than 12 items using BDC for MB1C

    Hi,
    When we use LSMW for data transfer of MB1C transaction, more than 12 items can be  inserted in a document.
    But using BDC only 12 and below is possible, if the flat file system has more that 12 item, then the document is not created.
    How to insert more than 12 item in a document.
    Regards

    Hi Gow,
    I have uploaded the MB1C through a BDC and it is working fine for n no of items.
    Here is the code. May be this will be of your help.
    *& Report  ZMB1C
    report ZMB1C
           no standard page heading line-size 255.
    type-pools : slis.
    tables : t100.
    data: begin of record,
            MATNR(018),
            ERFMG(017),
            EXBWR(016),
          end of record.
    data : itab like table of record with header line.
    data : w_bdcdata type bdcdata.
    data : t_bdcdata type standard table of bdcdata initial size 1.
    data : messtab type standard table of bdcmsgcoll with header line.
    data : mstring(300).
    data : vf_index type i,
           no_lines type i,
           count type i value 0.
    data : v_bldat(20),
           v_budat(20).
    *Excel Sheet Data Upload Details
    data : vf_start_col type i value '1',      "start column
           vf_start_row type i value '2',      "start row
           vf_end_col   type i value '100',    "maximum column
           vf_end_row   type i value '10000'.  "maximum row
    */ Internal Table For Excel Data
    data : it_excel type  kcde_cells occurs 0 with header line.
    */ Field symbol
    field-symbols : <fs>.
    data : begin of it_messtab occurs 0,
           plant(10) type c,
           status(10) type c,
           message(90) type c,
           end of it_messtab.
    *Data for ALV display
    data : wa_fcat type slis_fieldcat_alv,
           colcnt type i.
    data : it_fieldcat type slis_t_fieldcat_alv,
           i_events type slis_t_event.
    data : l_title type sychar70.
    data : l_repid like sy-repid.
    * Selction Screen
    selection-screen begin of block b1 with frame title text-000.
    parameters : p_file like ibipparms-path obligatory,
                 p_mode like ctu_params-dismode default 'A'.
    selection-screen end of block b1.
    selection-screen begin of block b2 with frame title text-001.
    parameters : p_bldat like MKPF-BLDAT obligatory,
                 p_budat like MKPF-BUDAT obligatory,
                 p_bwart like RM07M-BWARTWA obligatory,
                 p_werks like RM07M-WERKS obligatory,
                 p_lgort like RM07M-LGORT obligatory.
    selection-screen end of block b2.
    * At Selction Screen
    at selection-screen on value-request for p_file.
      call function 'F4_FILENAME'
        EXPORTING
          program_name  = syst-cprog
          dynpro_number = syst-dynnr
          field_name    = ''
        IMPORTING
          file_name     = p_file.
    *Start of Selection Event
    start-of-selection.
      call function 'KCD_EXCEL_OLE_TO_INT_CONVERT'
        EXPORTING
          filename                = p_file
          i_begin_col             = vf_start_col
          i_begin_row             = vf_start_row
          i_end_col               = vf_end_col
          i_end_row               = vf_end_row
        TABLES
          intern                  = it_excel
        EXCEPTIONS
          inconsistent_parameters = 1
          upload_ole              = 2
          others                  = 3.
      if sy-subrc <> 0.
    * MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    *         WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.
      if it_excel[] is initial.
        MESSAGE I000(ZCL_TCSABAP).
      else.
        sort it_excel by row col.
        loop at it_excel.
          move : it_excel-col to vf_index.
          assign component vf_index of structure itab to <fs>.
          move : it_excel-value to <fs>.
          at end of row.
            append itab.
            clear itab.
          endat.
        endloop.
      endif.
      if not itab[] is initial.
        DESCRIBE TABLE itab LINES no_lines.
        clear messtab.
        refresh messtab.
        CONCATENATE p_bldat+6(2) '.' p_bldat+4(2) '.' p_bldat(4) into v_bldat.
        CONCATENATE p_budat+6(2) '.' p_budat+4(2) '.' p_budat(4) into v_budat.
        perform map_rec.
        call transaction 'MB1C' using t_bdcdata mode p_mode update 'A'
        messages into messtab .
        clear t_bdcdata.
        refresh t_bdcdata.
        loop at messtab where msgtyp = 'E' or msgtyp = 'S' .
          select single * from t100 where sprsl = messtab-msgspra
                                    and   arbgb = messtab-msgid
                                    and   msgnr = messtab-msgnr.
          if sy-subrc = 0.
            mstring = t100-text.
            if mstring cs '&1'.
              replace '&1' with messtab-msgv1 into mstring.
              replace '&2' with messtab-msgv2 into mstring.
              replace '&3' with messtab-msgv3 into mstring.
              replace '&4' with messtab-msgv4 into mstring.
            else.
              replace '&' with messtab-msgv1 into mstring.
              replace '&' with messtab-msgv2 into mstring.
              replace '&' with messtab-msgv3 into mstring.
              replace '&' with messtab-msgv4 into mstring.
            endif.
            condense mstring.
            it_messtab-message = mstring(300).
            it_messtab-plant = p_werks.
            if messtab-msgtyp = 'E'.
              it_messtab-status = 'Error'.
            else.
              it_messtab-status = 'Success'.
            endif.
            append it_messtab.
            clear it_messtab.
          endif.
        endloop. "messtab
        if not it_messtab[] is initial.
          perform buildcatalog.
          perform display.
        endif.
      endif.
    *&      Form  Map_Rec
    *       text
    form  map_rec.
      perform bdc_dynpro      using 'SAPMM07M' '0400'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'RM07M-WVERS3'.
      perform bdc_field       using 'BDC_OKCODE'
                                    'NPE'.
      perform bdc_field       using 'MKPF-BLDAT'
                                    v_bldat.
      perform bdc_field       using 'MKPF-BUDAT'
                                    v_budat.
      perform bdc_field       using 'RM07M-BWARTWA'
                                    p_bwart.
      perform bdc_field       using 'RM07M-WERKS'
                                    p_werks.
      perform bdc_field       using 'RM07M-LGORT'
                                    p_lgort.
      perform bdc_field       using 'XFULL'
      perform bdc_field       using 'RM07M-XNAPR'
                                    'X'.
      perform bdc_field       using 'RM07M-WVERS2'
      perform bdc_field       using 'RM07M-WVERS3'
                                    'X'.
      loop at itab.
        count = count + 1.
        perform bdc_dynpro      using 'SAPMM07M' '0410'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'MSEG-EXBWR'.
        if count <> no_lines.
          perform bdc_field       using 'BDC_OKCODE'
                                        '=NPE'.
        elseif count = no_lines.
          perform bdc_field       using 'BDC_OKCODE'
                                        '=BU'.
        endif.
        perform bdc_field       using 'MSEG-MATNR'
                                      itab-MATNR.
        perform bdc_field       using 'MSEG-ERFMG'
                                      itab-ERFMG.
        perform bdc_field       using 'MSEG-EXBWR'
                                      itab-EXBWR.
      endloop. "itab
    endform. "Map_Rec
    **      Form  BDC_DYNPRO
    form bdc_dynpro using program dynpro.
      clear w_bdcdata.
      w_bdcdata-program  = program.
      w_bdcdata-dynpro   = dynpro.
      w_bdcdata-dynbegin = 'X'.
      append w_bdcdata to t_bdcdata.
    endform.                    "bdc_dynpro
    **      Form  BDC_FIELD
    form bdc_field using fnam fval.
      if fval <> space.
        clear w_bdcdata.
        w_bdcdata-fnam = fnam.
        w_bdcdata-fval = fval.
        append w_bdcdata to t_bdcdata.
      else.
        clear w_bdcdata.
        w_bdcdata-fnam = fnam.
        w_bdcdata-fval = fval.
        append w_bdcdata to t_bdcdata.
      endif.
    endform.                    "bdc_field
    *       FORM buildcatalog                                             *
    form buildcatalog.
      clear wa_fcat.
      clear it_fieldcat.
      colcnt = colcnt + 1.
      wa_fcat-col_pos      = colcnt.
      wa_fcat-fieldname    = 'PLANT'.
      wa_fcat-tabname      = it_messtab.
      wa_fcat-seltext_l    = 'PLANT'.
      wa_fcat-key          = 'X'.
      wa_fcat-outputlen  = '10'.
      append wa_fcat to it_fieldcat.
      clear wa_fcat.
      colcnt = colcnt + 1.
      wa_fcat-col_pos      = colcnt.
      wa_fcat-fieldname    = 'STATUS'.
      wa_fcat-tabname      = it_messtab.
      wa_fcat-seltext_l    = 'STATUS'.
      wa_fcat-outputlen  = '10'.
      append wa_fcat to it_fieldcat.
      clear wa_fcat.
      colcnt = colcnt + 1.
      wa_fcat-col_pos      = colcnt.
      wa_fcat-fieldname    = 'MESSAGE'.
      wa_fcat-tabname      = it_messtab.
      wa_fcat-seltext_l    = 'Message'.
      wa_fcat-outputlen  = '90'.
      append wa_fcat to it_fieldcat.
    endform.                    "buildcatalog
    *       FORM display                                                  *
    form display.
      l_title = text-002.
      l_repid = sy-repid.
      call function 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program = l_repid
          i_grid_title       = l_title
          it_fieldcat        = it_fieldcat
          it_events          = i_events[]
        TABLES
          t_outtab           = it_messtab
        EXCEPTIONS
          program_error      = 1
          others             = 2.
      if sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      endif.
    endform.                    "display
    Regards,
    Amit

Maybe you are looking for

  • Connecting my MBP Unibody, to a VGA monitor.

    As the subject says, i'm so confused with all the adapter options are out there for connecting my mbp to a vga monitor. Do i buy the expensive, apple branded cable, or the substitute? In many of the product descriptions it says the adapter works with

  • PS CS4 hanging up

    Hi all, I am having an issue with my Photoshop CS4 version 11.0.2 I am running it in a Macintosh environment. Mac Pro 2.8 GHz Quad-Core Intel Xeon with 12 GB ram. OS Snow Leopard 10.6.8, the scratch disk is set to an empty partition on an external La

  • I need a driver for Canon MP950. Canon or Apple do not have it

    I moved up from OS X 10.6 to 10.9 and lost the driver for my printer (Canon Pixma MP950) .Canon does not have a driver for this printer on Maverick and. Apple does not have one either. Do I have to buy a new printer? Any other solution?

  • Hide Tree Nodes

    I've searched for some time, but have yet to find a solution to this: I wish to hide items ( html help item associated with each node) in a tree with a xmlListCollection data provider . I found this article: http://www.axelscript.com/2008/02/20/using

  • Need Help! Ospprearm.exe not working with Windows 8 and Micorsoft Office 2013

    I am running 64 bit win 8 and office 2013.  I searched in my whole PC and I found Ospprearm.exe in this location C:\Program Files (x86)\Microsoft Office\Office15 That was the only place I found ospprearm.exe.  When I opened it I got this error There