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 Kokil

    Hi 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)
    Thanks

    You 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&#x0D;&#x0A;Thank you
    for your participation.&#x0D;&#x0A;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.
    null

    Sergio,
    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,
    Andrew

    Hi,
    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.
    Shaan

    One 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.

  • HT4972 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

    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 ?

  • By-Pass message ME 095

    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,
    Matteo

    Go 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.Jain

    HI,
    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
    Ajay

    Hi,
    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
    Dan

    Well 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