Pass message token to OAAttrValException
Hi All,
I am performing some validation at validateEntity() level in my EO.
I want to throw an error message like this:
Receipt &RECEIPT_NO has an invoice number completed but no supporter has been specified.
I can do this message with the below code:
MessageToken[] tokens =
new MessageToken("RECEIPT_NO", getReceiptIdDsp())
throw new OAException("XX", "CUST_QEP_SUPPORTER_NO_REQUIRED", tokens, OAException.ERROR, null);
but this obviously wont highlight the field that caused the error on the page unlike the below code:
throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT,
getEntityDef().getFullName(), // EO name
getPrimaryKey(), // EO PK
"SupporterId", // Attribute Name
getSupporterId(), // Attribute value
"XX", // Message product short name
"CUST_QEP_SUPPORTER_NO_REQUIRED"); // Message name
My question is how do I pass a token containing my error message params using OAAttrValException so my message will pick them up?
Thanks
Keith
Try this one:
throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT,
getEntityDef().getFullName(), // EO name
getPrimaryKey(), // EO PK
"SupporterId", // Attribute Name
getSupporterId(), // Attribute value
"XX", // Message product short name
"CUST_QEP_SUPPORTER_NO_REQUIRED", // Message name
new MessageToken("RECEIPT_NO", getReceiptIdDsp())); //Message Token
Please let me know if you face any problems.
Thanks
Sumit
Similar Messages
-
Could not retrieve the document with the passed obsolete token.
Hi,
Issue is with the specific report not able to execute when the query is cancelled and getting an error when you are cancelling an already executing query.
Receiving an error message during running one of our report in the
following way:
- Run the Webi report
- Select the value for 8 prompts
- Click on cancel
- try to re-run by clicking on re-fresh and receive an error message.
The error message is the following:
"Could not retrieve the document with the passed obsolete token (Error: RWI 00323) (Error: INF)"
Till now we have made the following changes:
This might be caused by a storage token that identifies a document state, which is no longer available in the storage tokens stack.
In the webi.properties file, increased the value of storage tokens stack size.
1. Edit the webi.properties file found in the following location:
u2022 <Installed dir>\program files\businessobjects\BOenterprise115\Web services\en\dsws_webservice_boe\data\asemble\dsewsBobjJava\src\WEB-INF\classes\webi.properties.
2. Add or change the following variables:
u2022 WID_FAILOVER_SIZE (This sets the maximum number of tokens to keep in memory. It is 10 by default.)
u2022 WID_STORAGE_TOKEN_STACK_SIZE (this sets the maximum number of tokens stored on disk. It is 10 by default.)
u2022 Deleted cookies.
u2022 Add the Java Runtime Parameter value from following path:
Start - > Control Panel-> Java -> Java Applet Runtime Settings
Click on View.
Add the Java runtime Parameter value: Xmx200.
It is not a machine specific issue however it is intermittent.
Please advice.
Regards,
Pradnya KokilHi Pradnya,
Following solutions might help you to resolve the issue.
Solution1:
To achieve optimum performance, the developer should limit the number of new windows that can be opened using the OpenDocument function, particularly if using it within the drill function.
If you must open a new window each time, you can increase the number of document instances available on the system by modifying parameters in the webi.properties file:
1. On the Business Objects server, navigate to the following directory:
C:\Program Files\Business Objects\Tomcat\webapps\businessobjects\enterprise115\desktoplaunch\WEB-INF\classes
2. Open the webi.properties file using a text editor.
3. Uncomment the FAILOVER_SIZE=10 line by removing the # from the beginning of the line.
4. After FAILOVER_SIZE, add the following:
STORAGE_TOKEN_STACK_SIZE=40
5. Save the file.
6. Restart the application server
Solution2:
Do not use Control Key + N or File New from Browser for invoking new instance of Browser
Avoid opening Infoview by Hyperlinks.
Alternatively, by setting logontoken.enabled property in web.xml for desktop.war, will stop users allowing using old token
Locate web.xml file in desktop.war file deployed on your application server
Locate the following string in web.xml:<param-name>logontoken.enabled</param-name>
Change the <param-value> for logontoken.enabled from true to false (forexample, <param-value>false</param-value>)
Save and close the file
Restart the web application server to apply the changes
Regards,
Sarbhjeet Kaur -
Setting message tokens for short tips
I have a field with a shorttip defined. I want to be able to make the message dynamic, i.e. set message tokens. Is this possible?
There are two ways of doing this in processFormRequest,
(1) Easier and not recommended.
Use the same code that I gave in my previous post, but put it in your processFormRequest. However, note that OA Framework coding guidelines prohibit you from changing web bean properties during processFormRequest.
(2) Write your custom bound value.
Write your own bound value implementation extending oracle.apps.fnd.framework.webui.OAAbstractBoundValue. Implement the constructor, and getValue(object) method. In the getValue method, put in your code that recognizes the tip value to be rendered.
In the processRequest of your controller, attach the above bound value class to the tip property as follows,
inputFieldBean.setAttributeValue(TIP_ATTR, new <yourTipBoundValueClass>());
Define the constructor such that you pass in parameters necessary to calculate the tip. Note that the bean on which you are setting the bound value must be sent in as a parameter (inputFieldBean). In the constructor implementation, set this parameter to mOAWebBean which is a public variable defined in OAAbstractBoundValue. -
Could not retrieve the doc with the passed obsolete token(Error: RWI 00323)
Error using WebService API via Tomcat and .NET framework 2.0. Am storing ReportEngine and Session instance memory as suggested but still get this error. How can I reset tokens or increase token limit so this error does not occur.
Inner Exception
Type : BusinessObjects.DSWS.DSWSException, BusinessObjects.DSWS, Version=11.5.4100.0, Culture=neutral, PublicKeyToken=692fbea5521e1304
Message : getDocumentInformation exception (Error: RWI 00323)
Source : DSWS Web Service Consumer
Help link :
ID : R1
WebServiceID :
Operation : reportengine.dsws.businessobjects.com/getDocumentInformation
CallStackTrace : com.businessobjects.rebean.wi.ConfigurationException: Could not retrieve the document with the passed obsolete token. (Error: RWI 00323)
at com.businessobjects.rebean.wi.ReportEngineImpl.getDocumentFromStorageToken(ReportEngineImpl.java:461)
at com.businessobjects.rebean.wi.occa.WebiReportEngine.getDocumentFromStorageToken(WebiReportEngine.java:239)
at com.businessobjects.dsws.WebIntelligenceReportEngineManager.openDocument(Unknown Source)
at com.businessobjects.dsws.wsb.reportengine.WebIntelligenceReportEngineSoapImpl.getDocumentInformation(Unknown Source)
at com.businessobjects.dsws.reportengine.ReportEngineSoapImpl.getDocumentInformation(Unknown Source)
at com.businessobjects.dsws.reportengine.ReportEngineSoapSkeleton.getDocumentInformation(Unknown Source)
at sun.reflect.GeneratedMethodAccessor166.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:402)
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:309)
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:333)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:481)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:323)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:854)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:339)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at com.businessobjects.dsws.wsc.common.axis.FlashFilter.doFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
Caused by: com.businessobjects.rebean.internal.util.storage.InternalStorageException: token:we00100000e9816b1c411b is probably too old, could not be found in token history...
at com.businessobjects.rebean.internal.util.storage.ClusterStorageManager.retrieveObject(ClusterStorageManager.java:380)
at com.businessobjects.rebean.wi.ReportEngineImpl.getDocumentFromStorageToken(ReportEngineImpl.java:449)
... 47 more
CauseID : RWI 00323
CauseMessage : Could not retrieve the document with the passed obsolete token. (Error: RWI 00323)
CauseDetail :
CauseException : com.businessobjects.rebean.wi.ConfigurationException
Data : System.Collections.ListDictionaryInternal
TargetSite : BusinessObjects.DSWS.ReportEngine.DocumentInformation GetDocumentInformation(System.String, BusinessObjects.DSWS.ReportEngine.RetrieveMustFillInfo, BusinessObjects.DSWS.ReportEngine.Action[], BusinessObjects.DSWS.ReportEngine.Navigate, BusinessObjects.DSWS.ReportEngine.RetrieveData)
Stack Trace : at BusinessObjects.DSWS.ReportEngine.ReportEngine.GetDocumentInformation(String documentReference, RetrieveMustFillInfo retrieveMustFillInfo, Action[] actions, Navigate navigate, RetrieveData retrieveData)
ThanksYou can reclaim storage token stack space by sending Close action to any document you're done with.
You can increase the storage token stack space by editing the Web Services Provider app dswsbobje.war, the file WEB-INF\classes\webi.properties. Look inside that file for the storaget token stack size setting.
Sincerely,
Ted Ueda -
Pass Message not working properly
My pass message in the quiz manager should say - My company's
name and number(next line)Thank you for your partipation (next
line) Please click the "Email your evaluation" button. This is what
it produces:
My company's name - 205-9xx-xxxx
Thank you
for your participation.
Please click the "Email
Your Evaluation" button.
Any ideas?Hi Brock22
Sure looks like the same codes you see in web pages. The most
common (I think) is the %20 everywhere a space occurs in a URL. If
I recall correctly, the 0D and 0A are the same codes one uses to
force carraige returns in E-Mail messages when doing these via
JavaScript.
Wish I had an answer for you. Fact is, i'm sure they never
dreamed that someone would want a message that may span two or more
lines. Hopefully we will see improvement with this aspect in the
next version.
Cheers... Rick -
How to pass message in Status Bar
How can I pass message in status bar.
I typed bellow line but get some error.
void itemFileOpen_actionPerformed (ActionEvent e) {
statusBar.setText(" need Help ");
Error: (456) method setText(java.lang.String) not found in class oracle.dacf.control.swing.StatusBarControl.
Warning: Deprecated APIs are used. Please recompile with the 'deprecation' option for details.
nullSergio,
Even though your form is based on the Apps Template form, double-check to ensure it has all of the triggers it should have, like the Form level Key-Commit. The easiest way to make this comparison would be to open your custom form and then open one of the EBS forms like "ARXCUDCI". If your comparison shows no significant differences you might be dealing with a situation when the message is displaying in the Console (status bar) but something else is clearing the console. Check for any Clear_Message calls.
Hope this helps.
Craig...
If my response or the response of another was helpful, please mark it accordingly -
Passing messages from BW customer-exit variables to WebI
Hi
Is it possible to pass messages from a BW customer-exit variable to WebI?
We have a scenario where we have some validation done on a customer-exit variable, and under certain conditions a message should be returned to the user running the WebI report. Ideally, then report should stop executing at this time.
The ABAP is in place, and I can return an error message. If the query is run in RSRT / Web Template, the error message is correctly displayed and processing stops.
However, in WebI, if the error condition is met, a rather messy looking generic error message is displayed. In this case, the error number I've used in the ABAP is 000, which WebI then interprets as somthing to do with query dimensions could not be retrieved, or a null pointer exception.
I am not interested in the WebI error message that is being generated ... I know why it is being generated.
All I'd like to know is whether it is possible to pass an error message from within the customer exit code back to WebI.
Any ideas?
Regards,
AndrewHi,
I think that the problem is the User Exit is called anew for every query, so the global tables you declared will be empty for the query2.
One way to do this is create a table using the SE11 and populate it with the Variable from Query1, and use this data to populate the Variable2 of Query2.
Hope it helps. -
Passing SAML Tokens to Webservice
Hi All
I have to create a webservice client which passes
Username token, SAML1.1 , 2 , X509 Tokens.
My experience runs low on webservices.
Kindly point to some documents, which specifies
the way to incorporate these token to the webservice call.
Thanks in advance.
ShaanOne method to accomplish this is to leverage an STS to issue security tokens. These security tokens can then be placed into the WS-Security headers of the SOAP requests generated by your web service client. Ping Identity has a product called PingTrust. It is an STS that can issue SAML 1.x, SAML 2.0 and custom tokens, and validate SAML 1.x, SAML 2.0, UserName/Password, Kerberos, X.509 and custom tokens. The product includes SDK;s and JAX-RPC security interceptors that can be used by the application developer to integrate with PingTrust.
-
when restoring cannot pass message (There is no SIM card installed in the iPhone you are attempting to activate.) and there is a active Sim card inside. How can I get Pass that message?
Was your phone locked on a carrier and you unlocked it by jailbreaking ?
-
Dear All,
I have to by-pass message ME 095 (language of material text) during creation/modification of scheduling agreement (tcode ME31L / ME32L).
I would not use Tcode OME0 and change message category or create a new version to assign to a user master record through parameter MSV.
Is there same user exit or any otherway?
Thanks a lot,
Bye,
MatteoGo To SPRO Material Management Purchasing - Environment Data - Define Attributes of System Messages
Here you can change the message category for Message ME095 from Error to Warning.
I hope it will work.
Regards,
Manish -
How to pass authentication token with the request. Error in executing
Hi,
I am trying to do a service call. This service is provided by a third party. I used SOAP UI tester to test the service and it gives proper response for a request.
I tried to create a client proxy and execute the method call, but it fails. In SICF recorder, I found that the request that goes into the service does not contain the authentication token. But in the SOAP UI tool when I input the WSDL file, it created a sample request, with authentication token in header section.
But the proxy class generated in the system, contains a input structure, which does not have this authentication structure in it.
Please guide me if there is any different method used to pass this authentication information. The structure of authentication structure is
<web:licenseKey>?</web:licenseKey>
<web:password>?</web:password>
<web:username>?</web:username>
I thought that this authentication information should be given in settings of logical port. But the logical port has only user name and password. There is no place holder for License key.
In summary: My query is that, there is no structure generated for SOAP header where I can pass authentication information, hence the request that goes into the service from SAP does not contain the authentication token. This results in a error non-soap message/error type 500.
Sample request that worked in SOAP UI tester is
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservices.smc.com">
<soapenv:Header>
<web:AuthenticationToken>
<web:licenseKey>XYZA</web:licenseKey>
<web:password>ABC123</web:password>
<web:username>suresh<AT>gmail<DOT>com</web:username>
</web:AuthenticationToken>
</soapenv:Header>
<soapenv:Body>
<web:isReady/>
</soapenv:Body>
</soapenv:Envelope>
The request that goes out of the SAP system does not contain, the AuthenticationToken part.
Thanks and best regards,
Suresh.You would need to write a webservice handler for your physical data service to implement the security.
http://download.oracle.com/docs/cd/E13162_01/odsi/docs10gr3/datasrvc/How%20To%20Create%20SOAP%20Handlers%20for%20Imported%20WSDLs.html -
Function Module for getting message details on passing message ID.
Dear All,
Is there any way in XI through which I can get the complete details about the message if I pass the message ID to it. I am having message ID with me but I am not able to find its all details, is there any function module available??
Warm Regards,
N.JainHI,
Go through the below thread for the same information
SXMB_MONI transaction table
In Which Database Table the Messages are Stored in XI
Thnx
Chirag -
Passing Message number as an parameter in a Function module
Hi all,
I have to pass the Message number(sy-msgno) as an parameter into an function module
and that Message should be like "PO NUMBER ####### is deleted"
This Funtion module is an loop and PO number changes for every loop
How to define this Message in the Message class.
Regards
AjayHi,
Message definition SE91 should be like below.
PO NUMBER & is deleted.
Here & is the place holder where u can pass one value dynamically. If u want to pass 2 dynamic values then u have to use 2 place holder and so on.
eg: PO NUMBER & is deleted by user &.
When u call this message it will display like
PO NUMBER 12345 is deleted by user user1.
Thanks,
vinod. -
Best practice from passing messages from servlets
Is there a best practice for passing user messages (typically errors) back to the page from servlets?
e.g. http://localhost:4502/content/geometrixx/en.html?message=Some user error message
DanWell I suppose that answer to that question depends somewhat on your requirements, but I would say using a query string as you have indicated would be less than ideal because the page with the message would not be cached. No depending on your requirements and what sort of message you are passing that might be OK - especially if you message is highly personalized.
If however you have a limited number of standard messages to display a more common approach is to have each message have it's own page and then to configure the servlet to redirect to the appropriate page based on the desired message.
If you want the user to end up on the same page they submitted to the servlet from then another common approach would be to have the post to the servlet be AJAX and then display the message client side without having to change the URL. -
Identity 6.0 issues passing SSO token from JSP to web service
Hi,
Environment: Solaris 8, SunOne IS 6.0, SP1, Sun One WebServer
We're using a JSP (based on the samples) to pass an SSO token to a java based web-service (everthing is running locally on one server):
The token string resulting from calling mgr.createSSOToken is different from the value examined in the browser/JSP initial cookie and is practically useless when passed to the web-services for use as an SSO token (doesn't work and IS doesn't recognize it as a valid session/token).
Here's the code:
>>>>>>>
SSOTokenManager mgr = SSOTokenManager.getInstance();
SSOToken token;
if (request.getParameter("token") == null)
token = mgr.createSSOToken(request);
else
token = mgr.createSSOToken(request.getParameter("token"));
mgr.validateToken(token);
>>>>>>>>
What are we doing wrong?not resolved closed
Maybe you are looking for
-
I'm editing with fianlcut pro just using the the computer monitor.I want to connect my tv as a second monitor for viewing. My question is what do I need to do.
-
I use the tab grouping feature a lot. That means I have 100s of tabs open at any one time. The problem: once one switch between tab groups, the Firefox icon on the taskbar changes to what looks like multiple echoes of the Firefox icon. I guess it is
-
I have 2 monitors and downloaded a dual monitor wallpaper (3200 x 1200) but I cannot find a preference to stretch the wallpaper across both monitors so half appears on one and the other half appears on the other. Does such a setting exist or do I hav
-
How to Reconcile Photoshop Elements 12 Organizer's New People with Previous Versions.
On updating earlier version catalog (Photoshop Elements 10) to Version 12, the older version's "People" tags were not converted to new People (Faces) tags. Images with People tags but not tagged faces were also not converted. Now I have a mess of Fam
-
How can I transfer my photos from iphoto5 to iphoto9?
My computer came with iphoto 9 and it will allow me to open my library from iphoto 5 can anyone help with this?