Using Message Pool of a common component

Hello All,
We are trying to use the message pool of a common DC in all other DCs to keep single point of change.
We used the public part of common DC in all other DCs.
Currently we are using direct connection between views and the used Interface Controller of common DC. I want to avoid this because i feel view should interact to external interfaces via component controller.
So is there any way we can use the message pool of common DC in views via component controller?
Thanks
Shobhan

Hi Shobhan,
You can create a context attribute in the Component Controller and populate the value using the message pool. Then you can access the Component controllers context element from the view (create a context attribute in the View Controller and link this with the Component Controller) making your controllers work proper according to the MVC principles.
xxxxxxxxxxxxxxxx
Cheers,
Mohan
Edited by: Armin Reichert on Apr 26, 2008 7:10 PM

Similar Messages

  • Dynamic message using message pool

    Hi all,
    I want to print the number of rows in the message using message manager.
    any pointers regarding same will be highly appreciated.
    thanks and regards
    anand

    hi
    check this link 
    http://help.sap.com/saphelp_nw04/helpdata/en/ec/1415b06e76584ca6b92fe565206fed/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/3c/f2674039c6c549e10000000a1550b0/frameset.htm
    Thanks

  • How to read messages in message pool from a java file

    Hi All,
    I want to read a message that is defined in a message pool of a webdynpro component.
    This reading should be done from a java file present in the "src" folder.
    How can I get the handle to the IWDComponent?
    Or is there any other way?
    Or is there any way of reading localized messages in a java file of a webdynpro component?
    Can you kindly guide me out of this issue?
    Thanks and regards
    RB

    Hello,
    my approach is more simple: how can I read within component A the message pool of another webdynpro component B ? Component A has a usage relation to component B .
    I tried this within component A:
    <b>this.wdThis.wdGetBInterface().wdGetAPI().getComponent().getTextAccessor().getText("ANY_TEXT");</b>
    I got the exeption:
    <b>java.lang.UnsupportedOperationException: Embedded Components are black boxes. You should not access parts which are not in their interface</b>.
    Is there any way to share message pools ?
    Thanks
    Kerstin

  • Develop some common component

    Hi All,
    I want to develop a common component which can be used in many different applications. For ex. a common pop up view, which can get some input parameter and return the results to the application. By different application I mean different projects.
    Is it possible.
    I have already explored the option of inter-application navigation and I don't want to use that rather just a common component which I import in my existing project and use it's functionality.
    Plz let me know.
    Regards
    Nikhil

    HI,
    yes it is possible.
    I also have created once an common Component with a LogManager, Messagemananger Popupprovider, Debugviewer etc.
    You can easily do that by creating a Local DC and when you want to use that one, you can import that DC to the NWDI by creating a DC on the DTR with the same name and importing the source of your local DC.
    Regards,
    Dennis

  • Message pool cannot be resolved - importing a project to nwdi dc component

    Hello guys,
    I'm trying import a project to the nwdi structure, but I'm passing by a lot of problems.
    At first I can’t compile my application. The message pool class IMessage[ComponentName] aren’t been generated in the directory .\DCs\[vendor]\atr\_comp\gen_wdp\packages\[package name]\wdp. I try reload, repair, open and close, upgrade the IDE (now I’m with 2.0.12). I tried until put the file manually, I generated by the previous project (out of the nwdi/dc/structure) and I tried put it in the actual solution, however it’s deleted each build.
    Second, I'd like to know how create a dependency to an external jar (for example mail.jar) in the CBS. Should I only put the jar in the lib directory and upload in the dtr? Or should I put it in the CMS dependencies - how to?

    For the first problem.
    Import the project in the NWDI. Then navigate to the component where message pool belongs to. There will be a action Repair in the component. Execute that.It seems the metadata is corrupt and hence generation halts. This will correct the metadata and then generation should work correctly.
    For the second problem.
    You can create a external jar dc. And put the jar in lib folder of that dc.
    Submit this dc.Create dependecy to this dc to access the jar.
    See these bolgs for creation of external dc's
    /people/bala.krishnan2/blog/2006/09/25/bid-adieu-to-bots--using-captchas
    /people/valery.silaev/blog/2005/09/14/a-bit-of-impractical-scripting-for-web-dynpro
    Regards,
    Ashwani Kr Sharma

  • Message Pool for more than a component?

    Hi,
    is there a possibility to use something like a message pool for a whole application or even better for all applications on a WAS? I have many strings whicht are used in more than one component...
    regards,
    Markus

    Hi Markus,
      If you want to have a centralised dump for all the messages, it is possible.Suppose if there are two components A and B,and if A contains the message pool.Create a method in the interface controller of component A say getMessPool()
    In it access the message manager like
    wdComponentAPI.wdGetMessageManager.raiseException(e);
    Like that create for all messages in component A
    Include the component in "used components" of B.
    Then you can access the messages
    It should be like this
    wdthis.getAinterface.getMessPool().....
    Hope this helps you
    Regards
    Rohit

  • How to Use Messge-Pool of Child DC, in the Parent DC

    Hi,
    I am trying to achieve componentization of webdynpro projects.
    I want to use the messages stored in the Messge-Pool of child DC, in the parent DC.
    I have done the following so far:
    I have stored all the messages(error/standard) in the message pool of one DC project.
    I have created the public part of the component of that DC.
    I have Build-deploy-checkin that DC project.
    I have added that public part to another DC.
    I have successfully added it to the "used Webdynpro components" of the second DC.
    I am able to successfully pass values using context mappings, between the two DCs.
    But i am not able to use the Messges available in th message-pool of the first(child) DC.
    I added the childDC to the properties of the Views of the second(Parent) DC, but i am still not able to use the Messages present in the Messagepool of the child DC.
    Is there a way to use the Messages present in the Messagepool of the child DC, in the views of the parent DC???
    Thanks,
    Hanoz

    Hello,
    You have to use EXPORTING LIST TO MEMORY AND RETURN addition with SUBMIT stmt.
    Try like this:
    DATA:
    L_IT_LIST TYPE STANDARD TABLE OF ABAPLIST.
      SUBMIT <Child Program Name>
      WITH SELECTION-TABLE LIT_RSPARAMS
      EXPORTING LIST TO MEMORY AND RETURN.                   "#EC CI_SUBMIT
      CALL FUNCTION 'LIST_FROM_MEMORY'
        TABLES
          LISTOBJECT = L_IT_LIST
        EXCEPTIONS
          NOT_FOUND  = 1
          OTHERS     = 2.
      IF SY-SUBRC = 0.
        CALL FUNCTION 'WRITE_LIST'
          TABLES
            LISTOBJECT = L_IT_LIST
          EXCEPTIONS
            EMPTY_LIST = 1
            OTHERS     = 2.
        IF SY-SUBRC <> 0.                                       "#EC *
    *     Do Nothing
        ENDIF.
    Hope this is clear.
    BR,
    Suhas

  • How to display the Message Pool Messages in CE 7.2

    Hi Experts,
    Please let me know how to display the Message Pool Messages in CE 7.2.
    I have tried with reportContextAttributeMessage, but it is deprecated in CE 7.2.
    Please do the needful.Its Urgent.
    Thanks & Regards,
    SatheshKumar R

    Hi Sathesh,
    Do the following steps:
    1.) After creating a component, under it you will see Message Pools. Double click and open it.
    2).Click "Add Message" and add a new message. (Give a message key, type of message (either warning, error etc ) and message text).
    3). Save the metadata.
    4). Raise this message where all you want by using following code(For example, on click of a button) :
          IWDMessageManager msgnr = wdThis.wdGetAPI().getComponent().getMessageManager();
          msgnr.reportMessage(IMessage<component name>.<message>,null,true);
    For example, I have a component name TestAppComp and under message pool I have message called message1, then use lik this:
            IWDMessageManager msgnr = wdThis.wdGetAPI().getComponent().getMessageManager();
            msgnr.reportMessage(IMessageTestAppComp.MESSAGE1,null,true);
    Reply me if you any doubt.
    Regards,
    Jithin

  • Repost-Best way of using connection pooling

    I am reposting this, seems best suitable in this category.
    I am using Eclipse 3.1 along with Tomcat 5.0, MySQL 4.1, J2EE1.4. I could set up the JNDI Dataresource connection pooling and tested with small test servlet. Now thinking of having common methods for getting connection / closing / commiting ....etc.
    I wrote following. [Please let me know whether it is correct way of doing it - as i am not very sure]
    package common;
    import java.sql.*;
    import javax.sql.*;
    import javax.naming.*;
    import org.apache.log4j.Logger;
    public final class connectionManager {
         private static Logger logger = Logger.getLogger(common.connectionManager.class);
         public connectionManager() {}
         public static Connection getConn () throws NamingException, SQLException
    //JNDI DataSource connection pooling
              Connection conn = null;
              try{
                   Context initContext = new InitialContext();
                   Context envContext  = (Context)initContext.lookup("java:/comp/env");
                   DataSource ds = (DataSource)envContext.lookup("jdbc/TQ3DB");
                   conn = ds.getConnection();
              }catch (NamingException ne) {
                  new GlobalExceptionHandler(logger, ne);
                   conn = null;
                   throw new NamingException();
              }catch (SQLException e){
                   new GlobalExceptionHandler(logger, e);
                   conn = null;
                   throw new SQLException();
              return conn;
           }//getConnection
         public static void commit(Connection conn) throws SQLException
              conn.commit();
         public static void rollback(Connection conn) throws SQLException
              conn.rollback();
           public static void setAutoCommit(Connection conn, boolean autoCommit)
                                        throws SQLException
                conn.setAutoCommit(autoCommit );
         public static void closeConnection(Connection conn) throws SQLException{
              if (conn != null) {
                   conn.close();
                   conn = null;
         }//closeConnection
         public static void closeResources(ResultSet oRS, PreparedStatement pstmt) throws SQLException
              if (oRS != null) {
                   oRS.close();
                   oRS = null;
              if (pstmt != null) {
                        pstmt.close();
                        pstmt = null;
         } // closeResources
    }//ConnectionManager
    I am having a login form which submits user name and password. I am checking this against the database. Following is the servlet to do that.
    package login;
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.sql.*;
    import common.*;
    public class loginServlet extends HttpServlet {
         public void doGet(HttpServletRequest request, HttpServletResponse response)
                   throws ServletException, IOException {          
              doPost(request, response);
         }//doGet
         public void doPost(HttpServletRequest request, HttpServletResponse response)
                   throws ServletException,IOException{
              String userId = request.getParameter("userId");
              String password = request.getParameter("password");
              ** call a method to validate the password which will return the
              ** User Name for authorized users and null string for un-authorised.
              String uName = validateUser(userId, password);
              //if uName is null .. user is not authorized.
              if (uName == null){
                   //redirect to jsp page with error message
                  RequestDispatcher rd =
                       getServletContext().getRequestDispatcher("/jsps/mainmenu.jsp");
                  if (rd != null){
                       rd.forward(request,response);
              else{
                   // the user is valid - create a seesion for this user.
                   HttpSession userSession = request.getSession(true);
                   // put the user name session variable.
                   userSession.setAttribute("userName", uName);
                   //redirect to Main menu page
                   RequestDispatcher rd =
                        getServletContext().getRequestDispatcher("/jsps/mainmenu.jsp");
                   if (rd != null){
                        rd.forward(request,response);
         }// end of doPost
         private String validateUser(String userId, String password)
                   throws SQLException{
              String returnVal = null;
              connectionManager cm = new connectionManager();
              Connection conn = null;
              PreparedStatement pstmt = null;
              ResultSet oRS = null;
              try{
                   //get the connection
                   conn = cm.getConn ();
                   //get records from user table for this user id and password
                   String sQry = "SELECT  user_login FROM user "
                             + "where user_login = ? AND user_pwd = ? ";
                   pstmt = conn.prepareStatement(sQry);
                   pstmt.setString(1, userId);
                   pstmt.setString(2, password);
                   oRS = pstmt.executeQuery();
                   //check for record
                   if (oRS.next()) {
                        returnVal = oRS.getString("user_login");
                   }else {returnVal = null;}
                 }catch (Exception e){            
                      returnVal = null;
              }finally{
                   cm.closeResources(oRS, pstmt);
                   cm.closeConnection(conn);
              return returnVal;
    }// end of servlet class
    But i am unable to compile it and i am also getting lots of warnings.
    I am getting error at line
    1)String uName = validateUser(userId, password);
    Unhandled exception type SQLException loginServlet.java TQ3/WEB-INF/src/login line
    Following warnings:
    2)For loginServlet Declaration
    The serializable class DBTest does not declare a static final serialVersionUID field of type long loginServlet.java
    3)The static method getConn() from the type connectionManager should be accessed in a static way
    4)The static method closeResources(ResultSet, PreparedStatement) from the type connectionManager should be accessed in a static way
    5)The static method closeConnection(Connection) from the type connectionManager should be accessed in a static way
    Definitely I am doing it wrong but exactly where? I am having very strong doubt the way i am using connections is not the correct way. Pls help me.
    regards
    Manisha

    I am in a search of best way to use connection pooling. Initially was using simple JDBC call, then modified to JNDI, afterwards tried to have common class. Later came accross the idea of Singleton/Static. I wanted to have a common class which will handle all connection related issues and at the same time give good performance.
    With due respect to all Java Gurus: i got all from web articles/tutorials/java forum etc. There is a long discussion regarding Singlet vs static in this forum. But finally got confused and could not figure out in my case which method shall i make use of, so tried both.
    What I want is somebody pointing out flwas inside my 2 code snippets and guide me about which method shall i adopt in future.
    Static way:
    package common;
    import java.sql.Connection;
    import javax.sql.DataSource;
    import java.sql.SQLException;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    public final class ConnectionManager_Static {
         private static InitialContext ctx = null;
         private static DataSource ds = null;
         public ConnectionManager_Static(){     }
         //as the staic method is updating static var i am synchonizing it
         private static synchronized void getDatasource () throws NamingException, SQLException
              if (ds == null){
                   ctx = new InitialContext();
                   ds = (DataSource)ctx.lookup("java:comp/env/jdbc/MySql");
         //making getConnection() also static as it is not instance specific     
         public static Connection getConnection () throws NamingException, SQLException, Exception
              Connection conn = null;
              try{     
                   if (ds == null) {getDatasource ();}
                   if (ds != null) {
                        conn = ds.getConnection();                 
              }catch (Exception e){
                   throw new Exception("From ConnectionManager_Static",e);
              return conn;
           }//getConnection
    }Singleton:
    package common;
    import java.sql.*;
    import javax.sql.*;
    import javax.naming.*;
    public final class ConnectionManager_Singleton {
             private static ConnectionManager_Singleton INSTANCE = null;
              private DataSource datasource = null;
              // Private constructor for singleton pattern
             private ConnectionManager_Singleton() throws NamingException{
                   Context ctx = new InitialContext();
                   datasource = (DataSource)ctx.lookup("java:comp/env/jdbc/MySql");
             //synchronized creator for  multi-threading issues
             //another if check to avoid multiple instantiation
             private synchronized static void createInstance() throws NamingException{
                 if (INSTANCE == null) {
                     INSTANCE = new ConnectionManager_Singleton();
             public static ConnectionManager_Singleton getInstance() throws NamingException {
                 if (INSTANCE == null) createInstance();
                 return INSTANCE;
              public Connection getConnection() throws Exception
                   Connection con = null;
                   try{
                        con = datasource.getConnection();
                   }catch(Exception e){
                        throw new Exception("From connection manager singleton ", e);
                   return con;
    }Sorry, It's becoming long.
    Thanaks in advance,
    Manisha

  • Message Pool

    I have created some messages in the message pool.
    Now how do I use them according to the requirement.
    How do we use the messages in the message pool.
    Thanks,
    Sneha Singh.

    Hi Sneha
    1)Goto "WebDynpro Components">"Your Component">Message Pool
    2)Add Message
    a) Message Key -- >this is the name of the message
    b) Message Type ->error/standard/warning/text -->choose the appropriate one
    c)Message Text--> this is the message tobe displayed when error occurs
    3) Create a UIElement "Message Area" (Click on error message to navigate to error)
    following is the code to display the error message
    IWDMessageManager manager = null;
    IWDAttributeInfo attibute = wdContext.getNodeInfo().getAttribute(IPrivateXXXView.IContextElement.xx);
    String message = wdComponentAPI.getTextAccessor().getText(IMessageXX.UR_MESSAGEKEY);
    manager.raiseInvalidContextAttributeException(wdContext.currentContextElement(), attibute, message, true);
    manager.raisePendingException();// this statement will not allow the pointer to go to next,until it satisfies the condition
    Regards
    Chaitanya.A

  • Regarding Message Pool In web Dynpro

    Hi
    I have created the InputForm application for error handling.... In that i have created the Message Pool. A class IMessage<ComponentName> has been genrated automatically. Inside this class whether i have to write the code for create CONSTANT keys or else it will automatically create ... Because i am not getting code inside... its generating empty class.....
    like
    public class IMessageSimpleErrorsForm{
    but i have gone through one application which is already created and deployed.... In that I found the following class for creating CONSTANT keys
    public interface IMessageSimpleErrors {
    ErrorMessage <code>"Please enter a valid date for field {0}. You entered , which is a date in the future  and therefore not a valid date of birth."</code> using
    key "DateIsInFuture".
      public static final IWDMessage DATE_IS_IN_FUTURE = new WDMessage( "com.sap.tc.webdynpro.tutorial.errorbehavior.IMessageSimpleErrors" , "DateIsInFuture", WDMessageType.ERROR);
    Warning <code>"You did not enter an e-mail address. Therefore, you will not be informed about product news and special offers."</code> using
    key "DesiredEMail".
      public static final IWDMessage DESIRED_E_MAIL = new WDMessage( "com.sap.tc.webdynpro.tutorial.errorbehavior.IMessageSimpleErrors" , "DesiredEMail", WDMessageType.WARNING);
    ErrorMessage <code>": Entry of a valid is required for proceeding with the requested service."</code> using
    key "MissingInput".
      public static final IWDMessage MISSING_INPUT = new WDMessage( "com.sap.tc.webdynpro.tutorial.errorbehavior.IMessageSimpleErrors" , "MissingInput", WDMessageType.ERROR);
    please help me
    Thanks & Reagards
    Ravi Shankar B

    Hi Ravi,
    Pay attention that constant are generated only for messages types Standart, Warning and Error but not for Text.
    Best regards, Maksim Rashchynski.

  • I have two Iphones with different email addresses sharing one Apple ID. Will that cause problems with using messaging and FaceTime?

    I have two Iphones 5 with different email addresses sharing one Apple ID account.Both are using IOS 8.
    I would like to set up a new Apple Id for one of the phones and remove it from the old account.
    If I do that, can I move all of the purchased apps and songs to the new Apple account?
    Also, will sharing one Apple ID account with two devices cause problems with using messaging and FaceTime?

    Sharing an iCloud account between two devices can be done without causing issues with iMessage and FaceTime, just go into Settings for each of these functions and designate separate points of contact (i.e. phone number only, or phone number and unique email address).  While that works, you'll then face the problem where a phone call to one iPhone will ring both if on the same Wi-Fi network -- but again, that can be avoided by changing each phone's settings.
    Rather than do all that, don't fight it -- use separate IDs for iCloud.  You can still use a common ID for iTunes purchases (the ID for purchases and iCloud do not have to be the same) or you can use Family Sharing to share purchases from a primary Apple account.

  • How to update field values in a database table using module pool prg?

    hi
    how to update field values in a database table using module pool prg?
    we created a customized table, and we put 2 push buttons in screen painter update and display.
    but update is not working?
    data is enter into screen fields and to internal table, but it is not updated in database table.
    thanks in adv
    vidya

    HI,
    we already used the update statement. but its not working.
    plz check this.
    *& Module Pool       ZCUST_CALL_REC
    PROGRAM  ZCUST_CALL_REC.
    TABLES: ZCUST_CALL_REC,ZREMARKS.
    data:  v_kun_low like ZCUST_CALL_REC-kunnr ,
           v_kun_high like ZCUST_CALL_REC-kunnr,
           v_bud_low like ZCUST_CALL_REC-budat,
           v_bud_high like ZCUST_CALL_REC-budat.
    ranges r_kunnr for ZCUST_CALL_REC-kunnr  .
    ranges r_budat for zcust_call_rec-budat.
    DATA: ITAB TYPE STANDARD TABLE OF ZCUST_CALL_REC WITH HEADER LINE,
          JTAB TYPE STANDARD TABLE OF ZREMARKS WITH HEADER LINE.
    *data:begin of itab occurs 0,
        MANDT LIKE ZCUST_CALL_REC-MANDT,
        kunnr like ZCUST_CALL_REC-kunnr,
        budat like ZCUST_CALL_REC-budat,
        code like ZCUST_CALL_REC-code,
        remarks like ZCUST_CALL_REC-remarks,
        end of itab.
    *data:begin of Jtab occurs 0,
        MANDT LIKE ZCUST_CALL_REC-MANDT,
        kunnr like ZCUST_CALL_REC-kunnr,
        budat like ZCUST_CALL_REC-budat,
        code like ZCUST_CALL_REC-code,
        remarks like ZCUST_CALL_REC-remarks,
        end of Jtab.
    CONTROLS:vcontrol TYPE TABLEVIEW USING SCREEN '9001'.
    CONTROLS:vcontrol1 TYPE TABLEVIEW USING SCREEN '9002'.
    *start-of-selection.
    *&      Module  USER_COMMAND_9000  INPUT
          text
    MODULE USER_COMMAND_9000 INPUT.
    CASE sy-ucomm.
    WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.
    SET SCREEN 0.
    LEAVE SCREEN.
    CLEAR sy-ucomm.
    WHEN 'ENQUIRY'.
    perform multiple_selection.
    perform append_CUSTOMER_code.
    PERFORM SELECT_DATA.
    call screen '9001'.
    WHEN 'UPDATE'.
          perform append_CUSTOMER_code.
          PERFORM SELECT_DATA.
          call screen '9002'.
          perform update on commit.
    WHEN 'DELETE'.
          perform append_CUSTOMER_code.
          PERFORM SELECT_DATA.
          call screen '9002'.
    ENDCASE.
    ENDMODULE.                 " USER_COMMAND_9000  INPUT
    *&      Module  STATUS_9000  OUTPUT
          text
    MODULE STATUS_9000 OUTPUT.
      SET PF-STATUS 'ZCUSTOMER'.
    SET TITLEBAR 'xxx'.
    ENDMODULE.                 " STATUS_9000  OUTPUT
    *&      Module  USER_COMMAND_9001  INPUT
          text
    MODULE USER_COMMAND_9001 INPUT.
    CASE sy-ucomm.
    WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.
    SET SCREEN 0.
    LEAVE SCREEN.
    CLEAR sy-ucomm.
    endcase.
    ENDMODULE.                 " USER_COMMAND_9001  INPUT
    *&      Module  STATUS_9001  OUTPUT
          text
    MODULE STATUS_9001 OUTPUT.
      SET PF-STATUS 'ZCUSTOMER'.
    SET TITLEBAR 'xxx'.
    move itab-MANDT   to zcust_call_rec-MANDT.
    move itab-kunnr   to zcust_call_rec-kunnr.
    move itab-budat   to zcust_call_rec-budat.
    move itab-code    to zcust_call_rec-code.
    move itab-remarks to zcust_call_rec-remarks.
    vcontrol-lines = sy-dbcnt.
    ENDMODULE.                 " STATUS_9001  OUTPUT
    *&      Module  USER_COMMAND_9002  INPUT
          text
    module  USER_COMMAND_9002 input.
    CASE sy-ucomm.
       WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.
          SET SCREEN 0.
          LEAVE SCREEN.
          CLEAR sy-ucomm.
       WHEN 'UPDATE'.
             perform move_data.
         UPDATE ZCUST_CALL_REC FROM TABLE ITAB.
            IF SY-SUBRC = 0.
               MESSAGE I000(0) WITH 'RECORDS ARE UPDATED'.
             ELSE.
               MESSAGE E001(0) WITH 'RECORDS ARE NOT UPDATED'.
            ENDIF.
      WHEN 'DELETE'.
             perform move_data.
             DELETE ZCUST_CALL_REC FROM TABLE ITAB.
              IF SY-SUBRC = 0.
               MESSAGE I000(0) WITH 'RECORDS ARE DELETED'.
             ELSE.
               MESSAGE E001(0) WITH 'RECORDS ARE NOT DELETED'.
            ENDIF.
    endcase.
    endmodule.                 " USER_COMMAND_9002  INPUT
    *&      Module  STATUS_9002  OUTPUT
          text
    module STATUS_9002 output.
      SET PF-STATUS 'ZCUSTOMER1'.
    SET TITLEBAR 'xxx'.
    endmodule.                 " STATUS_9002  OUTPUT
    *&      Module  update_table  OUTPUT
          text
    module update_table output.
         move itab-MANDT   to zcust_call_rec-MANDT.
         move itab-kunnr   to zcust_call_rec-kunnr.
         move itab-budat   to zcust_call_rec-budat.
         move itab-code    to zcust_call_rec-code.
         move itab-remarks to zcust_call_rec-remarks.
    vcontrol-lines = sy-dbcnt.
    endmodule.                 " update_table  OUTPUT
    ***Selection Data
    FORM SELECT_DATA.
    SELECT  mandt kunnr budat code remarks  FROM zcust_call_rec INTO
                            table itab
                             WHERE kunnr IN r_kunnr AND BUDAT IN R_BUDAT.
    ENDFORM.
    ****append vendor code
    FORM APPEND_CUSTOMER_CODE.
    clear r_kunnr.
    clear itab.
    clear r_budat.
    refresh r_kunnr.
    refresh itab.
    refresh r_kunnr.
    IF r_kunnr  IS INITIAL
                  AND NOT v_kun_low IS INITIAL
                   AND NOT v_kun_high IS INITIAL.
                        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
                                    EXPORTING
                                       input         = v_kun_low
                                    IMPORTING
                                       OUTPUT        = r_kunnr-low.
                       CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
                                  EXPORTING
                                      input         = v_kun_high
                                  IMPORTING
                                      OUTPUT        = r_kunnr-high.
                     r_kunnr-option = 'BT'.
                     r_kunnr-sign = 'I'.
                     append r_kunnr.
       PERFORM V_BUDAT.
    ELSEIF r_kunnr  IS INITIAL
                  AND NOT v_kun_low IS INITIAL
                   AND  v_kun_high IS INITIAL.
                        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
                                    EXPORTING
                                       input         = v_kun_low
                                    IMPORTING
                                       OUTPUT        = r_kunnr-low.
                    r_kunnr-SIGN = 'I'.
                    r_kunnr-OPTION = 'EQ'.
                    APPEND r_kunnr.
       PERFORM V_BUDAT.
    ELSEIF r_kunnr IS INITIAL
                  AND  v_kun_low IS INITIAL
                   AND NOT v_kun_high IS INITIAL.
                        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
                                    EXPORTING
                                       input         = v_kun_low
                                    IMPORTING
                                       OUTPUT        = r_kunnr-low.
                    r_kunnr-SIGN = 'I'.
                    r_kunnr-OPTION = 'EQ'.
                    APPEND r_kunnr.
          PERFORM V_BUDAT.
    ELSEIF r_kunnr IS INITIAL
                  AND  v_kun_low IS INITIAL
                   AND  v_kun_high IS INITIAL.
                        IF SY-SUBRC = 0.
                             MESSAGE I003(0) WITH 'ENTER CUSTOMER NUMBER'.
                              CALL SCREEN '9000'.
                        ENDIF.
    PERFORM V_BUDAT.
    ENDIF.
    ENDFORM.
    FORM V_BUDAT.
    IF  R_BUDAT IS INITIAL
                   AND NOT v_BUD_low IS INITIAL
                   AND NOT v_BUD_high IS INITIAL.
                     r_budat-low = v_bud_low.
                     r_budat-high = v_bud_high.
                     r_budat-option = 'BT'.
                     r_budat-sign = 'I'.
                     append r_budat.
             ELSEIF  R_BUDAT IS INITIAL
                   AND NOT v_BUD_low IS INITIAL
                   AND  v_BUD_high IS INITIAL.
                     r_budat-low = v_bud_low.
                     r_budat-high = v_bud_high.
                     r_budat-option = 'EQ'.
                     r_budat-sign = 'I'.
                     append r_budat.
             ELSEIF  R_BUDAT IS INITIAL
                   AND  v_BUD_low IS INITIAL
                   AND NOT v_BUD_high IS INITIAL.
                     r_budat-HIGH = v_bud_HIGH.
                     r_budat-option = 'EQ'.
                     r_budat-sign = 'I'.
                     append r_budat.
              ELSEIF  R_BUDAT IS INITIAL
                   AND  v_BUD_low IS INITIAL
                   AND  v_BUD_high IS INITIAL.
                   IF SY-SUBRC = 0.
                       MESSAGE I002(0) WITH 'ENTER POSTING DATE'.
                      CALL SCREEN '9000'.
                    r_budat-low = ''.
                    r_budat-option = ''.
                    r_budat-sign = ''.
                    ENDIF.
            ENDIF.
    ENDFORM.
    *&      Form  update
          text
    -->  p1        text
    <--  p2        text
    form update .
    commit work.
    endform.                    " update
    *&      Form  move_data
          text
    -->  p1        text
    <--  p2        text
    form move_data .
       clear itab.
      refresh itab.
           move-corresponding  zcust_call_rec to itab.
           MOVE ZCUST_CALL_REC-MANDT   TO ITAB-MANDT.
           MOVE ZCUST_CALL_REC-KUNNR   TO ITAB-KUNNR.
           MOVE ZCUST_CALL_REC-BUDAT   TO ITAB-BUDAT.
           MOVE ZCUST_CALL_REC-CODE    TO ITAB-CODE.
           MOVE ZCUST_CALL_REC-REMARKS TO ITAB-REMARKS.
         APPEND ITAB.
         delete itab where kunnr is initial.
    endform.                    " move_data
    thanks in adv
    vidya

  • Message.messagekey  is coming instead of message text of message pool

    Hi All.
    I am facing one problem , I have created one error message in message pool ,and
    I am validating the field but when I am trying to use this ,Its highlighting the fields but
    message is not coming instead message.messagekey is coming.
    I am using the following code:
    ai=wdContext.getNodeInfo().getAttribute(IPrivateVEmployeeRequestView.IContextElement.DATE_OF_RESIGNATION);
    messageMgr.reportContextAttributeMessage(wdContext.currentContextElement(),ai,IMessageCEmployeeRequest.MSG, new Object[]{" resignation date is a non-working day. Please select a working day"},true);
    Thanks in Advance.
    Regards
    Abhishekh Singh

    Hi Abhishekh,
    Could you please check the message pool entry for the error, refer below example:-
    Message Key    Message Type    Message Text
    MissingInput       error                    : Entry of a valid is required for proceeding with the requested service. 
    Deepak!!!

  • How can I use MESSAGE function in forms 6i

    Hello
    I have an err_msg table that store collections of application message on utf8 database in one language not in english
    I have selected data from the err_msg table and put on variable .I want to display the message on the variable using MESSAGE function(MESSAGE(variable)).Unfortunately what i have seen on message dialog box is replaced characters like rectangles .
    What should I do please?

    Hi,
    We have the same problem in our project . In this case we are upgrading from an older version of forms (3.0) to 6i. The UE worked fine in the older version, but now we get a NON ORACLE ERROR. Our DLL is written in MS-VC++ project.
    We'd like to know whether , besides the common version and platform, you have also written the DLL using MS-VC++ ; otherwise please tell us .
    Regards,

Maybe you are looking for

  • Why do images appear different in Photoshop after being processed in Adobe Camera Raw?

    I would assume that the screen image would appear the same in each application.

  • Tasks not opening in UWL through LR script

    Hi, I am trying to script a scenario in SAP NW Portal. The scripted scenario looks like: 1) VUser.init() section: A user logs in to the portal. 2) VUser.run() section: The User performs few steps in the portal (UWL - WD Java). 3) VUser.end() section:

  • Display problem in JAVA

    Hi I am displaying a page with large set of records say 100-150 and when i dispay the records in the form of table only after all the records are retreived i get the full table. for example out.println("<table>"); while(rs.next()) out.println("<tr><t

  • Why can't you keep addons compatible with your very frequent new version releases?

    While I understand that you don't write the addons, it is very frustrating to me, that you keep releasing major version releases every few months, and the result is large numbers of incompatabilities. Why can't you make your builds more forgiving for

  • Export 64,000 images

    I have over 64,000 images in my Aperture library at present (with another 70-80,000 to be added). A lot of these images have adjustments, crops, caption changes etc. I now need to export all of them as I am moving from one on-line archive service to