Catching the succeed BP code

Dear Expert!
     i would like to ask how to catch the BP code that return after adding transaction successfully in UI API (VB.net or C#).
Thanks in advance.

Hi Dara,
If I am getting your question properly then you want to get the BP Code after adding it to Business Partner Master Data ?
If it is so you can use the form data event. After the form data is added you can use a query as follows:
Select MAX(DocEntry) from OCRD
Or
Select top 1 DocEntry, CardCode   from OCRD order by DocEntry desc
This will give you the BP Code that is added very last.
Hope it helps.
Thanks & Regards
Ankit Chauhan

Similar Messages

  • How to catch the error code thrown by Oracle client installation?

    Hi everyone,
    Recently, I'm writing a bat file to install Oracle 11g client for windows, I know the command line should be below, but how to find the error code it return? like the command line I want to run in Windows, the errorlevel will return 0 if the command line is pass, otherwise it will return no-zero:
    oui.exe -silent -waitforcompletion -nowait -force -responseFile ...\response\clientruntime.rsp
    BTW, I know I can find the error info under the path ...\Oracle\Inventory\logs, but I think it is better if you can tell me another way to catch the error in command line. I just wish that I can determine whether the Oracle provider installation is pass......
    Thanks
    Lindsay
    Edited by: lindsaywang on Oct 6, 2008 1:28 PM

    I got it.
    Thanks,
    TD

  • Not able to catch the exception

    Hi,
    I'm trying to run an ADF page (Test.jspx) . The only page content I have is an embedded BI report.
    I have used a report executable in my page definition.
    A sample code snippet is:
    <executables>
    <biContent id="biExecBinding1" connectionId="TMBIPresentationServerConn" path="/shared/TMSharedFolders/MOT_SalesAccount" type="biReportContent" xmlns="http://xmlns.oracle.com/bi/report/bindings">
    </executables>
    Here TMBIPresentationServerConn is the name of the connection of the BI Server.
    If BI Server is down, on running my page , an exception is being thrown by the framework.
    I want to catch this exception and perform my own logic, but since i am using a binding context for report , i am not able to catch this exception.
    Could you please let me know how can i catch the exception if BI is down?
    Thanks
    Nutan

    (as I suspected from your first post)
    You are using a version of JDeveloper that isn't available to the general public, and are asking about it on a public forum. You should use the internal Oracle forum - I don't know the URL, because I am one of the unwashed general public ;)
    John

  • Catch the Excep while clicking on a button and display the msg in JSF UI

    Hi,
    I am facing a issue like i have a add button in my JSF page which will add Partner code, Partner name,etc..,
    If i give the same partner code and partner name second time it is throwing the duplicate key exception
    org.apache.myfaces.component.html.ext.HtmlSelectOneMenu@319e5b
    Calling Save Method.............
    Record Saved..............
    (util.JDBCExceptionReporter 71 ) SQL Error: 1062, SQLState: 23000
    (util.JDBCExceptionReporter 72 ) Duplicate entry 'T1-test1' for key 1
    (def.AbstractFlushingEventListener 299 ) Could not synchronize database state with session
    org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
         at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:69)
         at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
         at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:202)
         at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:230)
         at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
         at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296)
         at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
         at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1007)
         at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:354)
         at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
         at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:584)
         at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:496)
         at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:469)
         at org.springframework.transaction.interceptor.TransactionAspectSupport.doCommitTransactionAfterReturning(TransactionAspectSupport.java:266)
         at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
         at $Proxy31.save(Unknown Source)
         at com.finnair.pba.handler.PartnerMastCtrl.addAction(PartnerMastCtrl.java:110)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:129)
         at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:63)
         at com.sun.rave.web.ui.appbase.faces.ActionListenerImpl.processAction(ActionListenerImpl.java:57)
         at javax.faces.component.UICommand.broadcast(UICommand.java:106)
         at org.ajax4jsf.framework.ajax.AjaxViewRoot.processEvents(AjaxViewRoot.java:180)
         at org.ajax4jsf.framework.ajax.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:158)
         at org.ajax4jsf.framework.ajax.AjaxViewRoot.processApplication(AjaxViewRoot.java:346)
         at org.apache.myfaces.lifecycle.LifecycleImpl.invokeApplication(LifecycleImpl.java:343)
         at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:86)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:137)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
         at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
         at org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
         at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
         at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
         at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
         at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
         at java.lang.Thread.run(Unknown Source)
    Caused by: java.sql.BatchUpdateException: Duplicate entry 'T1-test1' for key 1
         at com.mysql.jdbc.ServerPreparedStatement.executeBatch(ServerPreparedStatement.java:647)
         at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)
         at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195)
         ... 51 more
    I am using JSF,Spring and Hibernate.
    I would like to catch this exception and throw it in the JSF UI near partner code field as a message.
    Is this possible to do.
    My JSF:
    <tr>
    <td width="30%" align="right" ><b><h:outputText id="pPartnerCode" value="Partner Code" /></b><span style="color:red">*</span></td>
    <td width="60%">:
    <h:inputText id="partnerCode" value="#{partnerMast.partnerCode}" required="true">     
    <t:validateRegExpr pattern="^[a-z||A-Z||0-9||_||\s||/]+$" />
    <f:validateLength minimum="1" maximum="3" />     
    </h:inputText>          
    <h:message for="partnerCode" showDetail="true" style="color:red" /></td>
    </tr>
    <tr>
    <td width="40%" align="right"><b><h:outputText id="pPartnerName" value="Partner Name" /><span style="color:red">*</span></b></td>
    <td width="60%" align="left">:               
    <h:inputText id="partnerName" value="#{partnerMast.partnerName}" required="true" >     
    <t:validateRegExpr pattern="^[a-z||A-Z||0-9||_||\s||/]+$" />
    <f:validateLength minimum="1" maximum="50"/>     
    </h:inputText>
    <h:message for="partnerName" showDetail="true" style="color:red" />
    </td>
    </tr>
    <h:commandButton id="addUser" value="Save" action="#{partnerMastCtrl.addAction}" styleClass="style10"/>
    My controller:
    public String addAction()
    try
    partnerMast = (PartnerMast)context.getExternalContext().getSessionMap().get("partnerMast");
    partnerHostingMast = (PartnerHostingMast) context.getExternalContext().getSessionMap().get("partnerHostingMast");
    this.getService();
    if(partnerHostingMast != null && partnerHostingMast.getHostingPartner() != null && partnerMast.getPartnerType().equalsIgnoreCase("Airline"))
    partnerHostingMast.setPartnerCode(partnerMast.getPartnerCode());
    partnerMastService.save(partnerMast);     /* To be noted */
    partnerHostingMastService.saveOrUpdate(partnerHostingMast);
    ret_stat = "Success";
    context.getExternalContext().getSessionMap().put("partnerMast", null);
    } else {
    partnerMastService.save(partnerMast);
    ret_stat = "Success";
    }catch(Exception e){
    ret_stat = "Error";
    FacesMessage message = new FacesMessage("Application facing some problem - Please contact administrator");
    context.addMessage("error", message);
    return ret_stat;
    My Dao :
    public PartnerMast save(PartnerMast entity){
    try{
         System.out.println("Calling Save Method.............");
         entity.setIsActive("Y");
         getHibernateTemplate().save(entity);
         System.out.println("Record Saved..............");
    catch(ConstraintViolationException e){
         System.out.println("Exception ..................."+e);
    return entity;
    I hope u got my question. Is there is any solution for this.
    Pls Anyone help me out.
    Thanks,
    Ambika&#9786;

    Hi,
    I am able to catch the exception, how would i able to display the message in the JSF UI.
    My Controller:
    public String addAction() throws Exception
    try{               
    partnerMast = (PartnerMast)context.getExternalContext().getSessionMap().get("partnerMast");
    partnerHostingMast = (PartnerHostingMast) context.getExternalContext().getSessionMap().get("partnerHostingMast");
    this.getService();
    if(partnerHostingMast != null && partnerHostingMast.getHostingPartner() != null && partnerMast.getPartnerType().equalsIgnoreCase("Airline"))
    partnerHostingMast.setPartnerCode(partnerMast.getPartnerCode());
    partnerMastService.save(partnerMast);     
    partnerHostingMastService.saveOrUpdate(partnerHostingMast);
    ret_stat = "Success";
    context.getExternalContext().getSessionMap().put("partnerMast", null);
    else {
    partnerMastService.save(partnerMast);
    ret_stat = "Success";
    catch(Exception e) {
         ret_stat = "Error";
         FacesMessage message = new FacesMessage("Application facing some problem - Please contact administrator");
         context.addMessage("error", message);
           if(causedByBatchUpdateException(e)) {
                  System.out.println("Yes Exception.........");
                  FacesMessage message1 = new FacesMessage("Duplicate Entry...........");
              context.addMessage("error", message1);
                            //ret_sta="NO";
                     } else {
                             throw e;
              System.out.println("Before returning.............");
              return ret_stat;
              //return ret_sta;
    }It is displaying the message saying "Yes Exception" in the console but not displaying the "Duplicate Entry" in the JSF UI.
    Pls Anyone help me out.
    Thanks,
    Ambika&#9786;

  • Catch the error in to a log file

    Hi Team,
    Created the script for testing the server online or offline, Could you please tell me how to catch the error in to a file
    Try
    $Result = Test-Connection -count 1 -computer (Get-Content ServerName.txt)  -ErrorAction "Continue"
    Catch
       $Result = New-Object PSCustomObject -Property @{
                TimeStamp = Get-Date
                __Server = $env:COMPUTERNAME
                Address = $Computer
                Protocol = ""
                ResponseTime = "Failed"
    $Result | Select TimeStamp,__Server,Address,ProtocolAddress,ResponseTime | ft -AutoSize

    As mjolinor pointed, you should change the -ErrorAction to Stop to make the control flow into catch block when error occurs. Just change alone is not sufficient because, the control will go to catch block if any of the computer in servername.txt gives error,
    and it will not go back to next computer in your text file perform the ping.
    So try chaning the code as shown below.
    $Outarr = @()
    foreach($Comp in (Get-Content C:\temp\servers.txt)) {
    Try {
    $Result = Test-Connection -count 1 -computer $Comp -ErrorAction stop
    Catch {
    $Result = New-Object PSCustomObject -Property @{
    TimeStamp = Get-Date
    __Server = $env:COMPUTERNAME
    Address = $Comp
    Protocol = ""
    ResponseTime = "Failed"
    $Outarr +=$Result
    $Outarr| Select TimeStamp,__Server,Address,ProtocolAddress,ResponseTime | ft -AutoSize
    Hope this helps.
    Thanks,
    Sitaram Pamarthi
    Blog : http://techibee.com
    Follow on Twitter
    This posting is provided AS IS with no warranties or gurentees,and confers no rights
    You can simplify that to:
    $Outarr =
    foreach($Comp in (Get-Content C:\temp\servers.txt)) {
    Try {
    Test-Connection -count 1 -computer $Comp -ErrorAction stop
    Catch {
    [PSCustomObject]@{
    TimeStamp = Get-Date
    __Server = $env:COMPUTERNAME
    Address = $Comp
    Protocol = ""
    ResponseTime = "Failed"
    $Outarr | ft -AutoSize
    The [PSCustomObject] type accelerator will take the hash table as a constructor, and coerce it to an [ordered] hash table, so the properties will stay in the same order they were declared.  That eliminates the need to use Select-Object afterward to
    get them back into the right order.
    [string](0..33|%{[char][int](46+("686552495351636652556262185355647068516270555358646562655775 0645570").substring(($_*2),2))})-replace " "

  • How to catch the value in sum(control break statement).

    hi,
    can any one tell me how to catch the value in sum in control break satament.
    ex.
    at end of brtwr.
    sum.
    endat.
    I need to print the value in sum only.
    I tried to declare a varaible of type i and assigned sum to this variable.
    it is giving syntax error that sum is not identified.
    How should i do this.
    regards.

    Hi Siva,
    In control break statement when we use SUM. it added all the amount fields and stores its in the work area of that field.
    look below code.
    DATA : BEGIN OF itab OCCURS 0,
               name(10),
               num TYPE i,
           END OF itab.
    DATA : num TYPE i .
    itab-name = 'salman'.
    itab-num  = 100.
    APPEND itab.
    itab-name = 'salman'.
    itab-num  = 200.
    APPEND itab.
    itab-name = 'akshay'.
    itab-num  = 500.
    APPEND itab.
    LOOP AT itab.
      AT END OF name.
        SUM.
        WRITE : / itab-num.
      ENDAT.
    ENDLOOP.
    here the SUM value is stored in Workarea,
    the output will be 300 & 500.
    regards
    Kumar M

  • How to catch the return object

    this one is my code
    private static select(){
    String URL = "jdbc:mysql://localhost/Chat";
    String username = "root";
    String password = "";          
    Vector result = new Vector();
    try {
         Class.forName("com.mysql.jdbc.Driver").newInstance();
            } catch (Exception e) {
                System.out.println("Failed to load MySQL driver.");
    Statement stmt = null;
    Connection con=null;
    try {
    con = DriverManager.getConnection(URL,username,password);
    stmt = con.createStatement();
    ResultSet RS = stmt.executeQuery("SELECT * FROM message;");        
             while(RS.next()){
                String command = RS.getString("command");
                String source = RS.getString("source");
                String target = RS.getString("target");
                String message = RS.getString("message");
                String typeuser = RS.getString("typeuser");
                String photouser = RS.getString("photouser");              
                String temp = command+"?"+source+"?"+target+"?"+message+"?"+typeuser+"?"+photouser;
            result.addElement(temp);
               RS.close();
            stmt.close();
               con.close();                
    } catch(SQLException e) {
                System.err.println("******SQLException : *******");
                while (e != null)
                  System.out.println("Message : "+e.getMessage());
                  System.out.println("Etat : "+e.getSQLState());
                  System.out.println("Code Erreur : "+e.getErrorCode()+"\n");
                  e = e.getNextException();
    return *******?; // what should i write here since i want to catch the value of vector, and use it in somewhere else       
        }

    Okay, this method makes no sense. But, if you want it to return a Vector, then it needs to have a return type of Vector.private static Vector select()Then use the return statement as such:return result; // as result is the name of you VectorYou then call the method as such:Vector v = select();I still don't understand the purpose of the method. Why is it static?
    Methinks someone needs to go back to basics of Java programming.
    Hope that helps, though.
    James

  • How to catch the mouse event from the JTable cell of  the DefaultCellEditor

    Hi, my problem is:
    I have a JTable with the cells of DefaultCellEditor(JComboBox) and added the mouse listener to JTable. I can catch the mouse event from any editor cell when this cell didn't be focused. However, when I click the editor to select one JComboBox element, all the mouse events were intercepted by the editor.
    So, how can I catch the mouse event in this case? In other word, even if I do the operation over the editor, I also need to catch the cursor position.
    Any idea will be highly appreciated!
    Thanks in advance!

    Hi, bbritta,
    Thanks very much for your help. Really, your code could run well, but my case is to catch the JComboBox event. So, when I change the JTextField as JComboBox, it still fail to catch the event. The following is my code. Could you give me any other suggestion?
    Also, any one has a good idea for my problem? I look forward to the right solution to this problem.
    Thanks.
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class Test3
    extends JFrame {
    // JTextField jtf = new JTextField();
    Object[] as = {"aa","bb","cc","dd"};
    JComboBox box = new JComboBox(as);
    public Test3() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container content = getContentPane();
    String[] head = {
    "One", "Two", "Three"};
    String[][] data = {
    "R1-C1", "R1-C2", "R1-C3"}
    "R2-C1", "R2-C2", "R2-C3"}
    JTable jt = new JTable(data, head);
    box.addMouseListener(new MouseAdapter() {
    // jtf.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent e)
    System.out.println("-------------------JComboBox mouseclick....");
    jt.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent e)
    System.out.println("-------------------JTable mouseclick....");
    // jt.setDefaultEditor(Object.class, new DefaultCellEditor(jtf));
    jt.setDefaultEditor(Object.class, new DefaultCellEditor(box));
    content.add(new JScrollPane(jt), BorderLayout.CENTER);
    setSize(300, 300);
    public static void main(String[] args) {
    new Test3().setVisible(true);
    }

  • How to catch the event for change dropdown value in alv

    it has a column output by dropdown in alv. the dropdown type cl_salv_wd_uie_dropdown_by_idx.
    now the problem is if change the dropdown value, i want to catch the event to change another column value.
    how can i do it?

    This part contains other ALV initialization code
    *... init ColumnSettings
      DATA:
            lr_column_settings TYPE REF TO if_salv_wd_column_settings.
      lr_column_settings ?= wd_this->r_table.
      DATA:
            lt_columns TYPE salv_wd_t_column_ref.
      lt_columns = lr_column_settings->get_columns( ).
      DATA:
            ls_column     TYPE salv_wd_s_column_ref,
            lr_col_header TYPE REF TO cl_salv_wd_column_header,
            l_tooltip     TYPE string.
      LOOP AT lt_columns INTO ls_column.
        CASE ls_column-id.
          WHEN 'PLANETYPE'.
            DATA:
                  lr_drdn_by_key TYPE REF TO cl_salv_wd_uie_dropdown_by_key.
            CREATE OBJECT lr_drdn_by_key
              EXPORTING
                selected_key_fieldname = ls_column-id.
            lr_drdn_by_key->set_key_visible( abap_true ).
            ls_column-r_column->set_cell_editor( lr_drdn_by_key ).
          WHEN OTHERS.
        ENDCASE.
    ENDLOOP.
      DATA:
            node_info TYPE REF TO if_wd_context_node_info,
            lt_valueset   TYPE STANDARD TABLE OF wdr_context_attr_value,
            l_value       TYPE wdr_context_attr_value.
      node_info = wd_context->get_node_info( ).
      node_info = node_info->get_child_node( 'FLIGHT_INFO' ).
    data : lt_sflight type STANDARD TABLE OF sflight,
           ls_sflight like LINE OF lt_sflight.
    SELECT * from sflight into TABLE lt_sflight.
    LOOP at lt_sflight into ls_sflight.
      l_value-value = ls_sflight-planetype.
      l_value-text  = ls_sflight-planetype.
      INSERT l_value into TABLE lt_valueset.
      ENDLOOP.
      node_info->set_attribute_value_set(
      name = 'PLANETYPE'
      value_set = lt_valueset ).

  • Catch the process id number in unix

    With my java program I run command in Unix. This application I start in background (nohup start.sh &). How can I catch the process ID number of my application? I use next string for code:
    String command[] = {"/bin/sh", "-c", "/bin/" + command, "/bin/searcId"};
    In run this line whit Runtime.exec()
    command is "nohup start.sh &" and the searchId is a Unix script for catching process ID number (this script works fine, when I run it in Unix).
    What can be wrong???
    MArko

    I arrived at this thread doing a Google search on how to obtain the process id of an executable launched from Java. The following code is not recommeded for released code, but it was helpful for my debugging purposes.
    try
        Process proc = Runtime.getRuntime().exec("executable");
        Field pidField = proc.getClass().getDeclaredField("pid");
        //pid field in UNIXProcess class is private - make it accessible
        pidField.setAccessible(true);
        System.out.println("Exec'ed process ID is: " + pidField.get(proc));
    catch (Exception e)
        e.printStackTrace();
    }The process id field for the UNIXProcess is "pid." On Windows, I believe it is "handle."

  • Add button on seeded Advanced Table, to catch the person_id to generate xml report

    Hi All,
    We are having a requirement to generate pdf report from seeded page.
    And we kind a hit dead end. So was really looking for any inputs or insights.
    We personalized page to add a column with a button in it. We used javascript
    in destination URI to catch the event in PFR.
    javascript:submitForm('DefaultFormName',1,{'xxdbPrintPDF':'YES'});
    All is good until this point. But the EVEN_SOURCE_ROW_REFERENCE is showing as null, when we hit that
    personalized button on page. Where as it is giving right values if clicked on other seeded items in table.
    And each row has a distinct person_id. We need handle to person_id to generate that person specific report.
    Any thoughts would be greatly appreciated.
    Thanks
    Hari

    Forgot to mention earlier. Vacancy page has advanced table listing all the applicants applied.
    We need button across each applicant(i.e in each row). And when we hit that button, if we can get person_id.
    We can use that in whereclauseparams() to get specific rows for xml report.
    Tried to create button programmatically, and still not able to retrieve row number/person id
    PR code
        public void processRequest(OAPageContext oapagecontext,
                                   OAWebBean oawebbean) {
            super.processRequest(oapagecontext, oawebbean);
            OAAdvancedTableBean unUsedCCTxnsTable =
                (OAAdvancedTableBean)oawebbean.findIndexedChildRecursive("ApplicantQueryRegion");
            if (unUsedCCTxnsTable !=
                null) //If not able to find the table, skip the process
                //Create new column Category to the table
                OAColumnBean categoryCol =
                    (OAColumnBean)createWebBean(oapagecontext, COLUMN_BEAN, null,
                                                "XxcfiCategoryColumn1");
                OASortableHeaderBean column1Header =
                    (OASortableHeaderBean)createWebBean(oapagecontext,
                                                        SORTABLE_HEADER_BEAN, null,
                                                        "XxcfiCategoryColumn1Header1");
                column1Header.setText("Category");
                categoryCol.setColumnHeader(column1Header);
                // Create the actual leaf item under the first column
                OAMessageStyledTextBean leaf1 =
                    (OAMessageStyledTextBean)createWebBean(oapagecontext,
                                                           MESSAGE_STYLED_TEXT_BEAN,
                                                           null,
                                                           "XxcfiCategoryColumnLeaf1");
                leaf1.setViewAttributeName("AplPersonId");
                categoryCol.addIndexedChild(leaf1);
                unUsedCCTxnsTable.addIndexedChild(categoryCol);
                //add submitbutton
                 //Create new column Category to the table
                 OAColumnBean categoryCol1 =
                     (OAColumnBean)createWebBean(oapagecontext, COLUMN_BEAN, null,
                                                 "XxcfiCategoryColumn2");
                 OASortableHeaderBean column1Header1 =
                     (OASortableHeaderBean)createWebBean(oapagecontext,
                                                         SORTABLE_HEADER_BEAN, null,
                                                         "XxcfiCategoryColumn1Header2");
                 column1Header.setText("PDF");
                 categoryCol.setColumnHeader(column1Header);
                OASubmitButtonBean submitButton =(OASubmitButtonBean)createWebBean(oapagecontext,
                OAWebBeanConstants.BUTTON_SUBMIT_BEAN, null, "submitButton");
                submitButton.setViewAttributeName("AplPersonId");
                unUsedCCTxnsTable.addIndexedChild(submitButton );
    PFR code
        public void processFormRequest(OAPageContext pageContext,
                                       OAWebBean webBean) {
            OAApplicationModule appModule =
                pageContext.getApplicationModule(webBean);
            OAViewObject vo =
                (OAViewObject)appModule.findViewObject("ApplicantListVO");
            oracle.jbo.domain.Number num = null;
            if (vo != null) {
                OARow row = (OARow)vo.getCurrentRow();
                if (row != null) {
                    num =
    (oracle.jbo.domain.Number)row.getAttribute("AplPersonId");
            throw new OAException("Button Clicked by HM " + num.toString() +
                                  "-----" +
                                  pageContext.getParameter("XxcfiCategoryColumnLeaf1") +
                                  "-----" +
                                  pageContext.getParameter("submitButton") +
                                  "-----" +
                                  (String)pageContext.getParameter(OAWebBeanConstants.EVENT_SOURCE_ROW_REFERENCE),
                                  OAException.ERROR);
    Any ideas will be of great help
    Thanks

  • Can I catch the error instead of the DUMP GETWA_NOT_ASSIGNED ???

    Hi:
    I have the following code:
      FIELD-SYMBOLS:  . is executed i got a dump GETWA_NOT_ASSIGNED.
    Can I catch the error instead of the dump ?
    Thank you
    Silvia

    see the following example to avoid DUMP
    PARAMETERS: p_file LIKE rlgrap-filename .
    DATA: v_file TYPE string.
    DATA: BEGIN OF itab OCCURS 0,
          name(23) TYPE  c,
          END OF itab.
    DATA: errormessage TYPE char50.
    v_file = p_file.
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        filename            = v_file
        filetype            = 'ASC'
        has_field_separator = ' '
      TABLES
        data_tab            = itab.
    RECEIVE RESULTS FROM FUNCTION 'GUI_UPLOAD'
    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 .
    break developer.
    CASE sy-subrc.
      WHEN 0.
        errormessage     = 'Data Loaded'.
      WHEN 1.
        errormessage     = 'FILE_OPEN_ERROR'.
      WHEN 2.
        errormessage     = 'FILE_READ_ERROR'.
      WHEN 3.
        errormessage     = 'NO_BATCH'.
      WHEN 4.
        errormessage     = 'GUI_REFUSE_FILETRANSFER'.
      WHEN 5.
        errormessage     = 'INVALID_TYPE'.
      WHEN 6.
        errormessage     = 'NO_AUTHORITY'.
      WHEN 7.
        errormessage     = 'UNKNOWN_ERROR'.
      WHEN 8.
        errormessage     = 'BAD_DATA_FORMAT'.
      WHEN 9.
        errormessage     = 'HEADER_NOT_ALLOWED'.
      WHEN 10.
        errormessage     = 'SEPARATOR_NOT_ALLOWED'.
      WHEN 11.
        errormessage     = 'HEADER_TOO_LONG'.
      WHEN 12.
        errormessage     = 'UNKNOWN_DP_ERROR'.
      WHEN 13.
        errormessage     = 'ACCESS_DENIED'.
      WHEN 14.
        errormessage     = 'DP_OUT_OF_MEMORY'.
      WHEN 15.
        errormessage     = 'DISK_FULL'.
      WHEN 16.
        errormessage     = 'DP_TIMEOUT'.
      WHEN 17.
        errormessage     = 'OTHERS'.
    ENDCASE.
    MESSAGE e000(00) WITH errormessage .

  • How can I catch the exception type c = type i?

    How can I catch the exception and display the error message when I assign the u2018ABC123u2019 value to an int data type.
    Code is as follow.
    REPORT  zfsl_sum_functions.
    DATA: cin(50),
          cout(50),
          iin TYPE i,
          iout TYPE i,
          etext TYPE string.
    cin = '123ABC'.     " how can i catch this
    iout = cin.
    WRITE: iout.

    The CATCH-ENDCATCH statement is obsolete as of release was620. You should use TRY. CATCH. ENDCATCH.
    The exception that will be raise is CX_SY_CONVERSION_NO_NUMBER, so you have to catch that exception or a super class of this exception class.
    REPORT zfsl_sum_functions.
    DATA: cin(50),
    cout(50),
    iin TYPE i,
    iout TYPE i,
    etext TYPE string.
    DATA: rf_cx_error TYPE REF TO CX_SY_CONVERSION_NO_NUMBER,
            errortxt TYPE string.
    TRY.
        cin = '123ABC'. " how can i catch this
        iout = cin.
        WRITE: iout.
      CATCH CX_SY_CONVERSION_NO_NUMBER INTO  rf_cx_error.
        errortxt = rf_cx_error->get_text( ).
        WRITE errortxt.
    ENDTRY.

  • How to catch the error if an RFC fails due to short dump

    Hi All,
      I was calling the RFC Function module in parallel processing depends on the number of work processors available. I am getting the return message from the Function module using the perform statement
       PERFORMING task_return ON END OF TASK
    But I am not able to catch the errors if the RFC has been terminated due to the dump or manually killing the RFC while running.
    I need how to handle the RFC if the call has been terminated due to the dump or system failure. Does the RFC return the sy-subrc at this time or can we able to catch the error in any other way.
    Thanks & regards,
    Vijay

    Hello Vijay,
    If you're calling RFC from outside SAP using the OCX-SAPFunctions-Library, then you can catch the dump or any other exception occuring in your SAP-Function.
    Assuming that, objRFCFunc is the RFC-Function you can get the Excepetion-Code through objRFCFunc.Exception.
    It returns a String. If the error was a dump, the String is "SYSTEM_FAILURE". If it is a "regular" Exception you'll get the Exceptioncode. E.g. "NO_DATA_FOUND".
    If you need any sample code e.g. VBA-code for use in Office-Applications, let me know.
    regards
    Sven

  • Why can not catch the standard BACK event in ALV's USER_COMMAND event,

    Hi expert, why i can not catch the standard BACK event in ALV's USER_COMMAND event,
    Code:
    DATA G_CON_UC_FORM   TYPE SLIS_FORMNAME VALUE 'F_USER_COMMAND',
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM      = SY-REPID
          I_CALLBACK_TOP_OF_PAGE  = G_CON_FORM
          I_CALLBACK_USER_COMMAND = G_CON_UC_FORM
          IT_FIELDCAT             = G_TAB_FIELDCAT
          IT_SORT                 = G_TAB_SORT_INF
          I_SAVE                  = G_CON_U
    *<<<Liang
        IT_EVENTS               = G_TAB_ALV_EVENTS
    *<<<Liang
        TABLES
          T_OUTTAB                = G_TAB_OUTPUT_DATA
        EXCEPTIONS
          PROGRAM_ERROR           = 1
          OTHERS                  = 2.
    *&      Form  F_USER_COMMAND
          ALV USER COMMAND processing
    FORM F_USER_COMMAND .
      IF SY-UCOMM = '&FO3'.
        LEAVE TO SCREEN 0.
      ENDIF.
    ENDFORM.                    " F_USER_COMMAND
    When I set breakpoint on this subrouting ,and try to click stardard  BACK or CANCEL button, the callback form do not run, but if double click one of line of alv report, the callback form works well,
    so why??

    hi
    good
    check this report and change your code accordingly.
    THESE LINES ARE FOR THE MAIN PROGRAM ***
    SAP V40B ***
    REPORT Z_PICK_LIST .
    TABLES: RESB.
    SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-BL1.
    SELECT-OPTIONS: S_WERKS FOR RESB-WERKS," Plant
                    S_AUFNR FOR RESB-AUFNR," Order number
                    S_BDTER FOR RESB-BDTER." Req. date
    SELECTION-SCREEN END OF BLOCK BL1.
    PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT DEFAULT '/STANDARD'.
    DATA: BEGIN OF OUT OCCURS 10,
            AUFNR LIKE RESB-AUFNR,         " Order number
            MATNR LIKE RESB-MATNR,         " Material
            BDMNG LIKE RESB-BDMNG,         " Requirements in UM
            MEINS LIKE RESB-MEINS,         " Unit of Measure (UM)
            ERFMG LIKE RESB-ERFMG,         " Requirements in UE
            ERFME LIKE RESB-ERFME,         " Unit of Entry (UE)
            MAKTX LIKE MAKT-MAKTX,         " Mat. description
          END OF OUT.
    INCLUDE Z_ALV_VARIABLES.
    INITIALIZATION.
      REPNAME = SY-REPID.
      PERFORM INITIALIZE_FIELDCAT USING FIELDTAB[].
      PERFORM BUILD_EVENTTAB USING EVENTS[].
      PERFORM BUILD_COMMENT USING HEADING[].
      PERFORM INITIALIZE_VARIANT.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
      PERFORM F4_FOR_VARIANT.
    AT SELECTION-SCREEN.
      PERFORM PAI_OF_SELECTION_SCREEN.
    START-OF-SELECTION.
      PERFORM GET_ORDERS.
      PERFORM GET_MATERIAL_DESCRIPTION.
    END-OF-SELECTION.
      PERFORM BUILD_LAYOUT USING LAYOUT.
      PERFORM BUILD_PRINT  USING PRINTS.
      PERFORM WRITE_USING_ALV.
          FORM INITIALIZE_FIELDCAT                               *
    -->  P_TAB                                                         *
    FORM INITIALIZE_FIELDCAT USING P_TAB TYPE SLIS_T_FIELDCAT_ALV.
      DATA: CAT TYPE SLIS_FIELDCAT_ALV.
      CLEAR CAT.
    ENDFORM.                               " INITIALIZE_FIELDCAT
    *&      Form  GET_ORDERS
          text
    FORM GET_ORDERS.
      SELECT AUFNR MATNR BDMNG MEINS ERFMG ERFME
             FROM RESB
             APPENDING TABLE OUT
             WHERE XLOEK EQ SPACE          " deletion indicator
             AND   XWAOK EQ 'X'            " goods movement indicator
             AND   WERKS IN S_WERKS        " plant
             AND   BDTER IN S_BDTER        " req. date
             AND   AUFNR IN S_AUFNR.       " pr. order
    ENDFORM.                               " GET_ORDERS
    *&      Form  GET_MATERIAL_DESCRIPTION
          text
    FORM GET_MATERIAL_DESCRIPTION.
      SORT OUT BY MATNR.
      LOOP AT OUT.
        SELECT SINGLE MAKTX
               INTO OUT-MAKTX
               FROM MAKT
               WHERE MATNR EQ OUT-MATNR
               AND   SPRAS EQ 'EN'.
        MODIFY OUT.
      ENDLOOP.
      SORT OUT BY AUFNR MATNR.
    ENDFORM.                               " GET_MATERIAL_DESCRIPTION
          FORM TOP_OF_PAGE                                              *
    FORM TOP_OF_PAGE.
      DATA: L_POS TYPE P.
    first line
      WRITE:/ TEXT-001.                    " Plant:
      IF S_WERKS-HIGH NE SPACE.
        WRITE: S_WERKS-LOW, TEXT-TO1, S_WERKS-HIGH.
      ELSEIF S_WERKS-LOW NE SPACE.
        LOOP AT S_WERKS.
          WRITE: S_WERKS-LOW.
        ENDLOOP.
      ELSEIF S_WERKS-LOW EQ SPACE.
        WRITE: TEXT-ALL.
      ENDIF.
      L_POS = ( SY-LINSZ DIV 2 ) - ( STRLEN( TEXT-TIT ) DIV 2 ).
      POSITION L_POS. WRITE: TEXT-TIT.
      L_POS = SY-LINSZ - 20.
      POSITION L_POS. WRITE: TEXT-011, SY-UNAME RIGHT-JUSTIFIED.  " User:
    second line
      WRITE:/ TEXT-002.                    " Order:
      IF S_AUFNR-HIGH NE SPACE.
        WRITE: S_AUFNR-LOW, TEXT-TO1, S_AUFNR-HIGH.
      ELSEIF S_AUFNR-LOW NE SPACE.
        LOOP AT S_AUFNR.
          WRITE: S_AUFNR-LOW.
        ENDLOOP.
      ELSEIF S_AUFNR-LOW EQ SPACE.
        WRITE: TEXT-ALL.
      ENDIF.
      L_POS = SY-LINSZ - 20.
      POSITION L_POS. WRITE: TEXT-012,SY-DATUM.      " Date:
    third line
      WRITE:/ TEXT-003.                    " Req. Date:
      IF S_BDTER-HIGH(1) NE '0'.
        WRITE: S_BDTER-LOW, TEXT-TO1, S_BDTER-HIGH.
      ELSEIF S_BDTER-LOW(1) NE '0'.
        LOOP AT S_BDTER.
          WRITE: S_BDTER-LOW.
        ENDLOOP.
      ELSEIF S_BDTER-LOW(1) EQ '0'.
        WRITE: TEXT-ALL.
      ENDIF.
      L_POS = SY-LINSZ - 20.
      POSITION L_POS. WRITE: TEXT-013, SY-PAGNO.   " Page:
    ENDFORM.                               " TOP_OF_PAGE
          FORM END_OF_LIST                                              *
    FORM END_OF_LIST.
      DATA: L_POS TYPE P.
      ULINE.
      WRITE:/ '|', TEXT-021.      " Delivered by:
      L_POS = SY-LINSZ DIV 2.
      POSITION L_POS. WRITE: '|', TEXT-031.            " Received by:
      L_POS = SY-LINSZ.
      POSITION L_POS. WRITE: '|'.
      WRITE:/ '|'.
      L_POS = SY-LINSZ DIV 2.
      POSITION L_POS. WRITE: '|'.
      L_POS = SY-LINSZ.
      POSITION L_POS. WRITE: '|'.
      ULINE.
      WRITE:/ '|', TEXT-012.      " Date:
      L_POS = SY-LINSZ DIV 2.
      POSITION L_POS. WRITE: '|', TEXT-012.            " Date:
      L_POS = SY-LINSZ.
      POSITION L_POS. WRITE: '|'.
      WRITE:/ '|'.
      L_POS = SY-LINSZ DIV 2.
      POSITION L_POS. WRITE: '|'.
      L_POS = SY-LINSZ.
      POSITION L_POS. WRITE: '|'.
      ULINE.
    ENDFORM.                               " END_OF_LIST
    *&      Form  WRITE_USING_ALV
          text
    FORM WRITE_USING_ALV.
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
           EXPORTING
                I_PROGRAM_NAME     = REPNAME
                I_INTERNAL_TABNAME = 'OUT'
                I_INCLNAME         = REPNAME
           CHANGING
                CT_FIELDCAT        = FIELDTAB.
      IF SY-SUBRC <> 0.
        WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_FIELDCATALOG_MERGE'.
      ENDIF.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
           EXPORTING
                I_CALLBACK_PROGRAM       = REPNAME
               i_callback_pf_status_set = 'PF_STATUS_SET'
               i_callback_user_command  = 'USER_COMMAND'
                I_STRUCTURE_NAME         = 'OUT'
                IS_LAYOUT                = LAYOUT
                IT_FIELDCAT              = FIELDTAB
                I_DEFAULT                = 'A'
                I_SAVE                   = G_SAVE
                IS_VARIANT               = G_VARIANT
                IT_EVENTS                = EVENTS[]
                IS_PRINT                 = PRINTS
           TABLES
                T_OUTTAB                 = OUT.
      IF SY-SUBRC <> 0.
        WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_LIST_DISPLAY'.
      ENDIF.
    ENDFORM.                               " WRITE_USING_ALV
    THESE LINES ARE FOR THE INCLUDE ***
    ***INCLUDE Z_ALV_VARIABLES .
    TYPE-POOLS: SLIS.
    DATA: FIELDTAB TYPE SLIS_T_FIELDCAT_ALV,
          HEADING  TYPE SLIS_T_LISTHEADER,
          LAYOUT   TYPE SLIS_LAYOUT_ALV,
          EVENTS   TYPE SLIS_T_EVENT,
          REPNAME  LIKE SY-REPID,
          F2CODE   LIKE SY-UCOMM VALUE  '&ETA',
          PRINTS   TYPE SLIS_PRINT_ALV,
          TITLE(40) TYPE C,
          G_SAVE(1) TYPE C,
          G_EXIT(1) TYPE C,
          G_VARIANT LIKE DISVARIANT,
          GX_VARIANT LIKE DISVARIANT.
    CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
               FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE',
               FORMNAME_END_OF_LIST TYPE SLIS_FORMNAME VALUE 'END_OF_LIST',
               FORMNAME_BEFORE_LINE TYPE SLIS_FORMNAME VALUE 'BEFORE_LINE',
               FORMNAME_AFTER_LINE TYPE SLIS_FORMNAME VALUE 'AFTER_LINE'.
          FORM MAIN_STATEMENTS                                          *
    THIS IS THE CODE THAT MUST BE INSERTED IN THE MAIN PROGRAM
    FORM MAIN_STATEMENTS.
    Declare the parameter P_VARI wherever you want it. If you don't
    want it, hide it with NO-DISPLAY, but it must exist.
    parameters: p_vari like disvariant-variant. " ALV Variant
    You have to add the following line after the data and parameter
    declaration:
    include z_alv_variables.
    Then, after the data/parameter declaration, add these lines:
    *initialization.
    repname = sy-repid.
    perform initialize_fieldcat using fieldtab[].
    perform build_eventtab using events[].
    perform build_comment using heading[].
    perform initialize_variant.
    If you are using the variable P_VARI (ALV Variant), also add this:
    *at selection-screen on value-request for p_vari.
    perform f4_for_variant.
    *at selection-screen.
    perform pai_of_selection_screen.
    After the "END-OF-SELECTION" statement, add these lines:
    perform build_layout using layout.
    perform build_print  using prints.
    perform write_using_alv.
    You also have to create the following forms: (you can find samples
    in this program)
    INITIALIZE_FIELDCAT
    USER_COMMAND     (only if you are creating a STATUS)
    WRITE_USING_ALV
    ENDFORM.
    *&      Form  INITIALIZE_FIELDCAT_SAMPLE
          THIS IS A SAMPLE, DO NOT USE THIS FORM IN YOUR PROGRAM
         -->P_FIELDTAB[]  text                                           *
    FORM INITIALIZE_FIELDCAT_SAMPLE USING P_TAB TYPE SLIS_T_FIELDCAT_ALV.
      DATA: CAT TYPE SLIS_FIELDCAT_ALV.
      CLEAR CAT.                           " Always clear before use
      CAT-TABNAME = 'I'.                   " Your internal table
      CAT-REF_TABNAME = 'ZCUSTMAS'.  " The data dictionary reference table
      CAT-FIELDNAME = 'KUNNR'.       " Name of your field in the itable.
      CAT-COL_POS   = 1.                   " Output position
      APPEND CAT TO P_TAB.
      CAT-FIELDNAME = 'NAME1'.             " Next field
      CAT-COL_POS   = 2.
      APPEND CAT TO P_TAB.
      CAT-FIELDNAME = 'STRAS'.             " and the next
      CAT-COL_POS   = 3.
      APPEND CAT TO P_TAB.
      CAT-FIELDNAME = 'LOEVM'.
      CAT-SELTEXT_S = 'Del'.         " You can always override the descrip-
      CAT-SELTEXT_M = 'Delivery'.          " tion (short, medium, large)
      CAT-SELTEXT_L = 'Delivery Num'.
      CAT-COL_POS   = 4.
      APPEND CAT TO P_TAB.
      CAT-FIELDNAME = 'FKIMG'.
      CAT-DO_SUM    = 'X'.                 " You want totals calculated.
      CAT-NO_OUT    = 'X'.                 " and hidden.
      APPEND CAT TO P_TAB.
    ENDFORM.                               " INITIALIZE_FIELDCAT
    *&      Form  BUILD_EVENTTAB
          THIS IS THE SAME FOR ALL THE PROGRAMS
         -->P_EVENTS[]  text                                             *
    FORM BUILD_EVENTTAB USING P_EVENTS TYPE SLIS_T_EVENT.
      DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
           EXPORTING
                I_LIST_TYPE = 0
           IMPORTING
                ET_EVENTS   = P_EVENTS.
      READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
                               INTO LS_EVENT.
      IF SY-SUBRC = 0.
        MOVE FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
        APPEND LS_EVENT TO P_EVENTS.
      ENDIF.
      CLEAR LS_EVENT.
      READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_END_OF_LIST
                               INTO LS_EVENT.
      IF SY-SUBRC = 0.
        MOVE FORMNAME_END_OF_LIST TO LS_EVENT-FORM.
        APPEND LS_EVENT TO P_EVENTS.
      ENDIF.
      CLEAR LS_EVENT.
      READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_BEFORE_LINE_OUTPUT
                               INTO LS_EVENT.
      IF SY-SUBRC = 0.
        MOVE FORMNAME_BEFORE_LINE TO LS_EVENT-FORM.
        APPEND LS_EVENT TO P_EVENTS.
      ENDIF.
      CLEAR LS_EVENT.
      READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_AFTER_LINE_OUTPUT
                               INTO LS_EVENT.
      IF SY-SUBRC = 0.
        MOVE FORMNAME_AFTER_LINE TO LS_EVENT-FORM.
        APPEND LS_EVENT TO P_EVENTS.
      ENDIF.
      CLEAR LS_EVENT.
      READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE
                               INTO LS_EVENT.
      IF SY-SUBRC = 0.
        MOVE FORMNAME_END_OF_PAGE TO LS_EVENT-FORM.
        APPEND LS_EVENT TO P_EVENTS.
      ENDIF.
    ENDFORM.                               " BUILD_EVENTTAB
    *&      Form  BUILD_COMMENT
    NOT REALLY NEEDED, BUT I'LL LEAVE IT THERE, JUST IN CASE...
         -->P_HEADING[]  text                                            *
    FORM BUILD_COMMENT USING P_HEADING TYPE SLIS_T_LISTHEADER.
      DATA: HLINE TYPE SLIS_LISTHEADER,
            TEXT(60) TYPE C,
            SEP(20) TYPE C.
      CLEAR: HLINE, TEXT.
      HLINE-TYP  = 'H'.
    write: text-101 to text+23.
      HLINE-INFO = TEXT.
      APPEND HLINE TO P_HEADING.
    ENDFORM.                               " BUILD_COMMENT
    *&      Form  INITIALIZE_VARIANT
    VERY IMPORTANT WHEN YOU USE VARIANTS!!!
    FORM INITIALIZE_VARIANT.
      G_SAVE = 'A'.
      CLEAR G_VARIANT.
      G_VARIANT-REPORT = REPNAME.
      GX_VARIANT = G_VARIANT.
      CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
           EXPORTING
                I_SAVE     = G_SAVE
           CHANGING
                CS_VARIANT = GX_VARIANT
           EXCEPTIONS
                NOT_FOUND  = 2.
      IF SY-SUBRC = 0.
        P_VARI = GX_VARIANT-VARIANT.
      ENDIF.
    ENDFORM.                               " INITIALIZE_VARIANT
    *&      Form  PAI_OF_SELECTION_SCREEN
    ALSO FOR VARIANTS
    FORM PAI_OF_SELECTION_SCREEN.
      IF NOT P_VARI IS INITIAL.
        MOVE G_VARIANT TO GX_VARIANT.
        MOVE P_VARI TO GX_VARIANT-VARIANT.
        CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
             EXPORTING
                  I_SAVE     = G_SAVE
             CHANGING
                  CS_VARIANT = GX_VARIANT
             EXCEPTIONS
                  WRONG_INPUT   = 1
                  NOT_FOUND     = 2
                  PROGRAM_ERROR = 3.
        IF SY-SUBRC EQ 0.
          G_VARIANT = GX_VARIANT.
        ELSE.
          PERFORM INITIALIZE_VARIANT.
        ENDIF.
      ELSE.
        PERFORM INITIALIZE_VARIANT.
      ENDIF.
    ENDFORM.                               " PAI_OF_SELECTION_SCREEN
    *&      Form  F4_FOR_VARIANT
          text
    FORM F4_FOR_VARIANT.
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
           EXPORTING
                IS_VARIANT = G_VARIANT
                I_SAVE     = G_SAVE
           IMPORTING
                E_EXIT     = G_EXIT
                ES_VARIANT = GX_VARIANT
           EXCEPTIONS
                NOT_FOUND  = 2.
      IF SY-SUBRC = 2.
        MESSAGE ID SY-MSGID TYPE 'S'      NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ELSE.
        IF G_EXIT = SPACE.
          P_VARI = GX_VARIANT-VARIANT.
        ENDIF.
      ENDIF.
    ENDFORM.                               " F4_FOR_VARIANT
    *&      Form  BUILD_LAYOUT
    STANDARD LAYOUT
         -->P_LAYOUT  text                                               *
    FORM BUILD_LAYOUT USING P_LAYOUT TYPE SLIS_LAYOUT_ALV.
      P_LAYOUT-F2CODE       = F2CODE.
      P_LAYOUT-ZEBRA        = 'X'.
    p_layout-detail_popup = 'X'.
      P_LAYOUT-TOTALS_TEXT  = SPACE.
      P_LAYOUT-SUBTOTALS_TEXT = SPACE.
    ENDFORM.                               " BUILD_LAYOUT
          FORM BUILD_PRINT                                              *
    STANDARD PRINT OPTIONS                                             *
    -->  P_PRINT                                                       *
    FORM BUILD_PRINT USING P_PRINT TYPE SLIS_PRINT_ALV.
      P_PRINT-NO_PRINT_LISTINFOS = 'X'.
      P_PRINT-NO_PRINT_SELINFOS  = ' '.
    ENDFORM.                               " BUILD_PRINT
          FORM PF_STATUS_SET                                            *
    NAME YOUR STATUS ALV. IF YOU NEED IT..                             *
    FORM PF_STATUS_SET USING EXTAB TYPE SLIS_T_EXTAB.
      SET PF-STATUS 'ALV' EXCLUDING EXTAB.
    ENDFORM.                               " PF_STATUS_SET
          FORM USER_COMMAND_SAMPLE                                      *
    -->  UCOMM                                                         *
    -->  SELFIELD                                                      *
    FORM USER_COMMAND_SAMPLE USING UCOMM    LIKE SY-UCOMM
                               SELFIELD TYPE SLIS_SELFIELD.
      CASE UCOMM.
        WHEN 'MSXL'.                       " Export to Excel
         perform set_excel_export.
          CLEAR UCOMM.
        WHEN 'MM03'.
         set parameter id 'MAT' field selfield-value.
         call transaction 'MM03' and skip first screen.
          CLEAR UCOMM.
        WHEN 'BGR1'.
         perform fill_available.
         perform graph_available.
          CLEAR UCOMM.
        WHEN 'DOCU'.
         call function 'Z_HELP' exporting repname = repname.
      ENDCASE.
    ENDFORM.                               " USER_COMMAND
    *&      Form  WRITE_USING_ALV_SAMPLE
    *THIS IS A SAMPLE AND MUST BE WRITTEN DIRECTLY IN THE MAIN PROGRAM
    FORM WRITE_USING_ALV_SAMPLE.
    YOU CAN MERGE WITH A DATA DICTIONARY TABLE USING THIS:
    call function 'REUSE_ALV_FIELDCATALOG_MERGE'
          exporting
               i_program_name     = repname
               i_internal_tabname = 'I'
               i_inclname         = repname
          changing
               ct_fieldcat        = fieldtab.
    if sy-subrc <> 0.
       write: 'SY-SUBRC: ', sy-subrc, 'REUSE_ALV_FIELDCATALOG_MERGE'.
    endif.
    OR JUST DISPLAY IT USING THIS:
    call function 'REUSE_ALV_LIST_DISPLAY'
          exporting
               i_callback_program       = repname
               i_callback_pf_status_set = 'PF_STATUS_SET'
               i_callback_user_command  = 'USER_COMMAND'
               i_structure_name         = 'I'
               is_layout                = layout
               it_fieldcat              = fieldtab
               i_default                = 'A'
               i_save                   = g_save
               is_variant               = g_variant
               it_events                = events[]
               is_print                 = prints
          tables
               t_outtab                 = i.
    if sy-subrc <> 0.
       write: 'SY-SUBRC: ', sy-subrc, 'REUSE_ALV_LIST_DISPLAY'.
    endif.
    ENDFORM.                               " WRITE_USING_ALV
    thanks
    mrutyun^

Maybe you are looking for

  • Weird issue - BEX analyser vs Web report

    Hi, In BEX analyser variant screen, I could not find a particular cost center, but I could see it if I use web report. this is really stange since I am running same report. thanks in advance

  • Installing 8.1.5 on Redhat 5.2

    Hi, My PC (Pentium 133) has 64 MB RAM. Can I configure SHMMAX to 64 MB or should I leave it at the default 32 MB? Also after reconfiguring should I rebuild the linux kernel? Thanks null

  • Opening a URL from an application

    Hi everyone, am not quiet skilled with java but i would really appreciate your help with this, as i couldn't find a solution which made me doubt my whole basic knowledge of java. Now am doing this for my school project, it's a speech recognition appl

  • Original Humax Youview box - no picture.

    Hi. Over the month or so my Youview box has been behaving very oddly. When it wakes from sleep very often I get no picture and no sound. My TV says "no input" on the HDMI. The box starts booting with the "Nearly ready" graphic showing... then when th

  • Copy Blog to & Move to New Site

    I have a personal Blog on a professional iWeb site. I'd like to copy the Blog so I have the same data on each site. Then I plan to manipulate each Blog to contain specific entries for each specific use. This will prevent having to recreate many entri