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
anandhi
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
RBHello,
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 -
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
NikhilHI,
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 cant compile my application. The message pool class IMessage[ComponentName] arent 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 Im 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 its 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,
MarkusHi 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,
HanozHello,
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 RHi 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
ManishaI 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 -
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 BHi 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 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
vidyaHI,
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 SinghHi 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:
-
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
-
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