Action BC Class Functionality

Please help on below two scenarios
Can you please help with your ideas/expertise around stopping Siebel OOTB functionality for the below scenario?
1) As per vanilla functionality in Action BC, when status is updated to 'Done', Actual End Date field (TODO_ACTL_END_DT) gets updated with time stamp. This is class functionality.
We have a requirement, where when status is changed to 'Done', an error message must pop up requesting the user to fill the 'Actual End Date' field.
To avoid this OOTB behavior, we  have written a browser script to throw an alert message using SWEAlert and we are returning CancelOperation, hence OOTB behavior is being bypassed and it doesn’t populate Actual End Date with timestamp.
2) Another OOTB functionality is, when Actual End Date is populated, system automatically sets status to 'Done'. We are unable to control this behavior of not populating Status to Done when Actual End Date is filled by the user. Once system populates the status to Done, we are populating status to the old value in the script itself, so when the user gets back control, he would see the old status value.
Once the user fills the 'Actual End Date' field and changes the status to 'Done', system should create another activity (as per our requirement).
Currently, the issue we are facing is, system is not behaving as expected when Status is changed to 'Done' or when Actual End Date is being populated. System is not behaving consistently.
Request your help in understanding if OOTB class functionality with Status=Done and Actual End Date can be tweaked or not.
Regards
Bhaskara
+91-7702577769

Hi Vicas,
Can you please provide me the Active Calls/Events info from the dump?
Best regards,
Maggie
Edited by: Maggie Su on May 19, 2010 7:09 AM

Similar Messages

  • How to run a class function on the click event ?

    Hi Tecs,
    i want tht when someone click on some paricular location on the form, then the class function must be called with some parameter, when someone click on some other location, the function should be called with different parameters.
    How this can be done , plz help.
    Thnx in advance.

    Almost every tag supports onclick .. For example h:panelGrid and even h:form.
    JSF<h:panelGrid onclick="document.getElementById('formId:hiddenActionId').click(); return false;">
        <h:form id="formId">
            <h:commandButton id="hiddenActionId" value="action" actionListener="#{myBean.action}" style="display: none;">
                <f:attribute name="param1" value="value1" />
                <f:attribute name="param2" value="value2" />
            </h:commandButton>
        </h:form>
    </h:panelGrid>MyBeanpublic void action(ActionEvent event) {
        String param1 = (String) event.getComponent().getAttributes().get("param1"); // returns "value1"
        String param2 = (String) event.getComponent().getAttributes().get("param2"); // returns "value2"
        // do your thing
    }[EDIT]You really cannot avoid JavaScript. Heck, JSF itself also generates a heap of JavaScript ;)
    Message was edited by:
    BalusC

  • I need a mechanism to expose action script class reference to java script

    I need a mechanism to expose action script class reference to java script

    Adobe, I think, are quite happy leaving the StageWebView as a highly efficient and low-level component accessing native functionality, so I wouldn't hold my breath on them extending it.
    That said, I believe somebody did implement an ANE that gives much more access and, according to the docs, does allow Javascript access.
    See UIWebView as per this thread; http://forums.adobe.com/message/4832821#4832821
    http://darkredz.com/ios-uiwebview-and-videoplayer-native-extension-for-air-mobile/
    G

  • Creating a action script class for a flex component

    Hi,
    I am new to flex.
    I have designed a flex component into that I have 4 action script function. I have to write all those function in a separate action script class.
    Can anyone tell me how to do that?
    Thanks,
    Tushar

    I'm not sure I understand the question.
    Alex Harui
    Flex SDK Developer
    Adobe Systems Inc.
    Blog: http://blogs.adobe.com/aharui

  • PLEASE help..class function not found..

    I am writing a simple email validation and I get a TON of errors.
    1) is Class function not found. on - function validateEmail();
    2) and 11 Undefined variable or class name: document .
    The code is listed below -
    <html>
    <head>
    <meta http-equiv="Content-Language" content="en-us">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>New Page 1</title>
    <%
    function validateEmail();
    if (document.forms[0].EMAIL_ADDRESS.value.length != 0)
    if ( (document.forms[0].EMAIL_ADDRESS.value.indexOf("@") == -1) ||
    (document.forms[0].EMAIL_ADDRESS.value.charAt(0) == ".") ||
    (document.forms[0].EMAIL_ADDRESS.value.charAt(0) == "@") ||
    (document.forms[0].EMAIL_ADDRESS.value.length < 6) ||
    (document.forms[0].EMAIL_ADDRESS.value.indexOf(".") == -1) ||
    (document.forms[0].EMAIL_ADDRESS.charAt(document.forms[0].EMAIL_ADDRESS.value.indexOf("@")+1) == ".") ||
    (document.forms[0].EMAIL_ADDRESS.value.charAt(document.forms[0].EMAIL_ADDRESS.value.indexOf("@")-1) == ".") ||
    (document.forms[0].EMAIL_ADDRESS.value.charAt(0) == ' ') )
    alert ("Please enter valid email address");
    document.forms[0].EMAIL_ADDRESS.focus();
    document.forms[0].EMAIL_ADDRESS.select();
    return false;
    else
    return true;
    %>
    </head>
    -- lots of input fields with the last being -
    <input type="text" name=EMAIL_ADDRESS onBlur="validateEmail();"></td>
    ????

    When I remove tags <% %> all of the function ends up in html and thus on my page.
    <html>
    <head>
    <meta http-equiv="Content-Language" content="en-us">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>New Page 1</title>
    <%
    function validateEmail();
    if (document.forms[0].EMAIL_ADDRESS.value.length != 0)
    if ( (document.forms[0].EMAIL_ADDRESS.value.indexOf("@") == -1) ||
    (document.forms[0].EMAIL_ADDRESS.value.charAt(0) == ".") ||
    (document.forms[0].EMAIL_ADDRESS.value.charAt(0) == "@") ||
    (document.forms[0].EMAIL_ADDRESS.value.length < 6) ||
    (document.forms[0].EMAIL_ADDRESS.value.indexOf(".") == -1) ||
    (document.forms[0].EMAIL_ADDRESS.charAt(document.forms[0].EMAIL_ADDRESS.value.indexOf("@")+1) == ".") ||
    (document.forms[0].EMAIL_ADDRESS.value.charAt(document.forms[0].EMAIL_ADDRESS.value.indexOf("@")-1) == ".") ||
    (document.forms[0].EMAIL_ADDRESS.value.charAt(0) == ' ') )
    alert ("Please enter valid email address");
    document.forms[0].EMAIL_ADDRESS.focus();
    document.forms[0].EMAIL_ADDRESS.select();
    return false;
    else
    return true;
    %>
    </head>
    <body bgcolor="powderblue">
    <Form Name="My Form" Action=userInfoInsert.jsp Method=Post>
    <table border="0" width="100%">
    <tr>
    <td width="100%">
    <table border="0" width="100%">
    <tr>
    <td width="41%">First Name     <input type="text" name=FIRST_NAME ></td>
    <td width="59%">Last Name
    <input type="text" name=LAST_NAME ></td>
    </tr>
    </table>
    </td>
    </tr>
    <tr>
    <td width="100%">Address         
    <input type="text" name=Address ></td>
    </tr>
    <tr>
    <td width="100%">Address         
    <input type="text" name=Address ></td>
    </tr>
    <tr>
    <td width="100%">
    <table border="0" width="100%">
    <tr>
    <td width="32%">City            
       <input type="text" name=CITY size=10></td>
    <td width="18%">State
    <input type="text" name=STATE size=5></td>
    <td width="50%">Zip Code
    <input type="text" name=ZIP_CODE size=10 ></td>
    </tr>
    </table>
    </td>
    </tr>
    <tr>
    <td width="100%">Phone #         
    <input type="text" name=PHONE size="15" ></td>
    </tr>
    <tr>
    <td width="100%">SSN              
    <input type="text" name=SSN size="17" ></td>
    </tr>
    <tr>
    <td width="100%">
    <table border="0" width="100%">
    <tr>
    <td width="41%">Hint Question <input type="text" name=FIRST_NAME ></td>
    <td width="59%">Hint Answer <input type="text" name=LAST_NAME ></td>
    </tr>
    </table>
    </tr>
    <tr>
    <td width="100%">User Name     <input type="text" name=USER_NAME ></td>
    </tr>
    <tr>
    <td width="100%">Password        <input type="text" name=PASSWORD ></td>
    </tr>
    <tr>
    <td width="100%">Re-Password  <input type="text" name=RE_PASSWORD ></td>
    </tr>
    <tr>
    <td width="100%">Email Address
    <input type="text" name=EMAIL_ADDRESS onBlur="validateEmail();"></td>
    </tr>
    </table>
    <INPUT type=Submit Value=Submit>
    </form>
    </body>
    </html>

  • Help with SMTP class function with authentication

    My server is no longer supporting the php mail() functionality.  I need to use SMTP class function with authentication in my php code and they suggested this to replace it: http://www.yrhostsupport.com/index.php?/Knowledgebase/Article/View/101/2/smtp-class-functi on-with-authentication-in-php-code
    So I tried it, but can't get it to work. This is my test form:
    <form method="post" action="forms/sendmail-test2.php" onsubmit="return checkEmail(this);">
    <script type="text/javascript" language="JavaScript">
    </script>
    <fieldset><legend>Info</legend>
    <label> Name </label>
      <input type="text"
      name="name" size="30" maxlength="40"/><br />
    <label> <span class="redText">*</span> Email </label>
        <input name="email" type="text" size="30" maxlength="40"/>
        <br />
    <label><span class="redText">*</span> Message </label>
      <textarea cols="40" rows="5" name="message" type="text" /></textarea><br />
        </fieldset>
    <input type="reset" value="Reset" />
    <input type=submit value="Submit Form" />
    </fieldset>
    </form>
    This is sendmail-test2.php where the form goes. It won't send unless I comment out the first 10 lines.
    <?php
    include('Mail.php');
    //$to = "[email protected]";
    //$name = $_REQUEST['name'] ;
    //$email = $_REQUEST['email'] ;
    //$message = $_REQUEST['name'] ;
    //$headers = "From: $email";
    //$subject = " price quote";
    //$fields = array();
    //$fields{"name"} = "Name"; 
    //$fields{"email"} = "Email";
    //$fields{"message"} = "Message";
    $recipients = '[email protected]'; //CHANGE
    $headers['From']    = '[email protected]'; //CHANGE
    $headers['To']      = '[email protected]'; //CHANGE
    $headers['Subject'] = 'Test message';
    $body = 'Test message';
    // Define SMTP Parameters
    $params['host'] = 'levy.dnsbox25.com';
    $params['port'] = '25';
    $params['auth'] = 'PLAIN';
    $params['username'] = '[email protected]'; //CHANGE
    $params['password'] = 'xxxxxx'; //CHANGE
    /* The following option enables SMTP debugging and will print the SMTP
    conversation to the page, it will only help with authentication issues. */
    $params['debug'] = 'true';
    // Create the mail object using the Mail::factory method
    $mail_object =& Mail::factory('smtp', $params);
    // Print the parameters you are using to the page
    foreach ($params as $p){
          echo "$p<br />";
    // Send the message
    $mail_object->send($recipients, $headers, $body);
    ?>
    It used to work fine when I used
    $send = mail($to, $subject, $body, $headers);
    $send2 = mail($from, $subject2, $autoreply, $headers2);
    But they said I can't use it any more. I'm good with HTML and CSS but I don't know much about php. Thanks for any help integrating a from into this new code!

    Thanks, bregent. I changed it to this and it sends, but nothing shows up in the body except "Test message". How would I "insert the form fields' 'email' and 'name' and 'message' in the body"?
    <?php
    include('Mail.php');
    $to = "[email protected]";
    $name = $_REQUEST['name'] ;
    $email = $_REQUEST['email'] ;
    $message = $_REQUEST['name'] ;
    //$headers = "From: $email";
    $subject = " price quote";
    $fields = array();
    $fields{"name"} = "Name"; 
    $fields{"email"} = "Email";
    $fields{"message"} = "Message";
    $recipients = '[email protected]'; //CHANGE
    $headers['From']    = '[email protected]'; //CHANGE
    $headers['To']      = '[email protected]'; //CHANGE
    $headers['Subject'] = 'Test message';
    $body = 'Test message';
    $fields = array();
    $fields{"name"} = "Name"; 
    $fields{"email"} = "Email";
    $fields{"message"} = "Message";
    // Define SMTP Parameters
    $params['host'] = 'levy.dnsbox25.com';
    $params['port'] = '25';
    $params['auth'] = 'PLAIN';
    $params['username'] = '[email protected]'; //CHANGE
    $params['password'] = xxx'; //CHANGE
    /* The following option enables SMTP debugging and will print the SMTP
    conversation to the page, it will only help with authentication issues. */
    $params['debug'] = 'true';
    // Create the mail object using the Mail::factory method
    $mail_object =& Mail::factory('smtp', $params);
    // Print the parameters you are using to the page
    foreach ($params as $p){
          echo "$p<br />";
    // Send the message
    $mail_object->send($recipients, $headers, $body);
    ?>

  • How to remove the rule or class function in CS5

    i need to know how to remove the rule or class function in CS5  at the bottom of the screen there are two options for formating HTML and Css when i click the HTML it only allows me to change the bold or italics or link something but when i click CSS it allows me to format how i want the paragraph aligned and the text size and font when i click on lets say changing the font size a box comes up asking me to name a rule so it applies it to everything else i type i want to know how to stop tht like edit everything on my own and if i use CS5 here will it be compatible with CS4 or CS3 at my skool plzz help ive been frustrated with this

    If I use CS5 here will it be compatible with CS4 or CS3 at my skool plzz help ive been frustrated with this
    Code is code.   It doesn't matter which product you use.
    i need to know how to remove the rule or class function in CS5
    You can't.  DW encourages you to use good coding methods, which means using CSS classes and to keep content (HTML) separate from styles (CSS).  For example, if you change font-size on p tags like so:
         p {font-size: 38px}
    Every paragraph will have 38px sized text.
    If you want to apply a special style to just a portion of your text, you must define a CSS class name like so:
    .foo {
    font-size: 38px;
    color: red;
    HTML:
    <p>This is normal paragraph text <span class="foo"> And this is very big and red.</span></p>
    This is normal paragraph text And this is very big and red. 
    Nancy O.
    Alt-Web Design & Publishing
    Web | Graphics | Print | Media  Specialists 
    http://alt-web.com/
    http://twitter.com/altweb
    Message was edited by: Nancy O.  -- unfortunately, this forum doesn't support Raw HTML with inline styles. You'll need to paste my code examples into your DW page to see the effect.

  • How to set the classpath and path from the jsp to call  java class function

    Hi Exprets,
    I have a requirement to call a java class function which returns a hashmap object from the jsp. The java class in present in one jar file and that jar file is location somewhere in unix path. So the requirement is to set the classpath for that jar file and then create the object of the java class and then call the function.
    If any one know how to achieve it, please reply as soon as possible.
    thanks in advance,
    swapna soni.

    It is never advisable to store large data sets in the session. But it will depend on a lot of factors:
    1. How costly is the query retrieving the data from the database?
    If it's a complex query with lots of joins and stuff, then it will be better to store it in the session as processing the query each time will take a lot of time and will decrease performance. On the other hand if the query is simple then it's advisable not to store it in the session, and fetch it each time.
    2. Are there chances for the data to become stale within a session?
    In this case storing the data is session will mean holding the stale data till the user session lasts which is not right.
    3. How many data sets does the session already holds?
    If there are large no. of data sets already present in the session, then it's strictly not advisable to store the data in the session.
    4. Does the server employ some kind of caching mechanism?
    Using session cache can definitely improve performance.
    You will have to figure out, what is the best way analyzing all the factors and which would be best in the situation. As per my knowledge, session is the only place where session specific data can be stored.
    Also, another thing, if the data set retrieved is some kind of data to be displayed in reports, then it would be better to use a pagination query, which will retrieve only the specific no. of rows at a time. A navigation provided in the UI will retrieve the next/previous data set to display.
    Thanks,
    Shakti

  • Loading Variables in a Class Function

    I am having problems loading variables from an external text
    file inside of a class function. The text file has been created
    properly, and the code that I use in the class is as follows:
    _root.createEmptyMovieClip("texRules", -100);
    loadVariables("texRules.txt", _root.texRules);
    m_Rules = _root.texRules.rules;
    I create an empty movie clip on the root frame named
    texRules, load the variables into that movie clip with the next
    line and then set my member string value equal to the text file
    variable named rules. When I run the program, I get an undefined
    for my m_Rules.
    Here is my texRules.txt:
    rules=THESE ARE THE TEXAS HOLD'EM RULES.
    Any ideas as to what I am doing incorrectly?

    I've opted to use the LoadVars instead of creating an empty
    movie clip and loading the variables there. Here is my new code.
    public function setRules():Void
    var rulesLoader:LoadVars = new LoadVars();
    rulesLoader.onLoad = function (success:Boolean):Void
    if (success)
    trace(rulesLoader.rules);
    this.m_Rules = rulesLoader.rules;
    else
    trace( "Unable to load external file.");
    rulesLoader.load("texRules.txt");
    Here is where I define my properties of my class:
    class TexHoldem extends Game
    //Class member properties
    //Private Properties
    private var m_Rules:String;
    private var m_Target:MovieClip;
    Here is my constructor:
    public function TexHoldem(target)
    this.m_Target = target;
    super("Texas No Limit Hold'Em", 0, 1);
    setRules();
    The setRules function works fine, the only problem now is
    that I can't save the variables once the onLoad function goes out
    of scope. I've thought of modifying it so that it returns a type,
    but that seems difficult. The two easiest solutions I see is to
    create an empty text field that holds the string or find a way to
    get the rulesLoader.rules outside of the onLoad scope. Any
    suggestions now? Sorry to change the problem on you.

  • Static Class Function vs. Instance Variables

    I'm making a Wheel class to spin the wheels on some toy
    trains as they move back and forth.
    Each wheel on the train is an instance of the Wheel class and
    there are several of them.
    I thought it would be great to just have a static class
    function to tell all the Wheels to start turning:
    Wheel.go();
    The Wheel class keeps a static array of all of its instances
    so I thought I would just loop through all of those instances and
    issue the wheelInstance.roll() method.
    So far it all works. But I was planning to use a setInterval
    to call the roll() method and each instance has its own rollID
    property that I would like to assign the setInterval ID to. Here is
    the problem.
    Since the rollID is an instance property I can't access them
    from a static class function. Is there any way to do this?
    Currently I"m just using an onEnterFrame which doesn't require me
    to use the instance properties.

    Technically yes, realistically for this class no.A
    class will probably take several hundred bytes at
    least to load, with no data of your own. So adding4
    bytes for a int is less than 1% of the total size.
    And if you are loading millions of differentclasses
    then you should rethink your design.If you don't instantiate the class when you reference
    a static variable why would you consume memory for the
    class other than the variable itself? I don't
    understand what you are talking about with the
    "millions of different classes", it's not germane to
    the question. Bottom line, referencing a static
    variable more than once will save memory.Using a class, static or by instance, requires that the class be loaded. A loaded class creates, at the very least, an instance of java.lang.Class. Any static members of the class are in addition to the storage space needed for the instance of java.lang.Class and for any internal storage needed by the JVM in addition to that.
    Thus if one has a static data member when the class is used in any way, the static data member takes storage space. However a member (non-static) does not take storage space.
    Of course the meta data for the member could take as much space as the static member so the point could be moot. Is that what you were referring to?

  • Static class functions: PLS-00801: internal error [phd_get_defn:D_S_ED:LHS]

    Any ideas why this would generate an internal error - referring to a static class function in that class constructor's parameter signature?
    Test case (on 11.2.0.2) as follows:
    SQL> create or replace type TMyObject is object(
      2          id      integer,
      3          name    varchar2(30),
      4 
      5          static function DefaultID return integer,
      6          static function DefaultName return varchar2,
      7 
      8          constructor function TMyObject(
      9                  objID integer default TMyObject.DefaultID(), objName varchar2 default TMyObject.DefaultName()
    10          )return self as result
    11  );
    12  /
    Type created.
    SQL>
    SQL> create or replace type body TMyObject is
      2 
      3          static function DefaultID return integer is
      4          begin
      5                  return( 0 );
      6          end;
      7 
      8          static function DefaultName return varchar2 is
      9          begin
    10                  return( 'foo' );
    11          end;
    12 
    13          constructor function TMyObject(
    14                  objID integer default TMyObject.DefaultID(), objName varchar2 default TMyObject.DefaultName()
    15          )return self as result is
    16          begin
    17                  self.id := objId;
    18                  self.name := objName;
    19                  return;
    20          end;
    21 
    22  end;
    23  /
    Type body created.
    SQL>
    SQL> declare
      2          obj     TMyObject;
      3  begin
      4          obj := new TMyObject();
      5  end;
      6  /
    declare
    ERROR at line 1:
    ORA-06550: line 0, column 0:
    PLS-00801: internal error [phd_get_defn:D_S_ED:LHS]If the static class functions are removed from the constructor and applied instead inside the constructor body, it works without error. Likewise you can call the constructor with the static class functions as parameters, without an internal error resulting.
    SQL> create or replace type TMyObject is object(
      2          id      integer,
      3          name    varchar2(30),
      4 
      5          static function DefaultID return integer,
      6          static function DefaultName return varchar2,
      7 
      8          constructor function TMyObject(
      9                  objID integer default null, objName varchar2 default null
    10          )return self as result
    11  );
    12  /
    Type created.
    SQL>
    SQL> create or replace type body TMyObject is
      2 
      3          static function DefaultID return integer is
      4          begin
      5                  return( 0 );
      6          end;
      7 
      8          static function DefaultName return varchar2 is
      9          begin
    10                  return( 'foo' );
    11          end;
    12 
    13          constructor function TMyObject(
    14                  objID integer default null, objName varchar2 default null
    15          )return self as result is
    16          begin
    17                  self.id := nvl( objId, TMyObject.DefaultID() );
    18                  self.name := nvl( objName, TMyObject.DefaultName() );
    19                  return;
    20          end;
    21 
    22  end;
    23  /
    Type body created.
    SQL>
    SQL> declare
      2          obj     TMyObject;
      3  begin
      4          obj := new TMyObject();
      5  end;
      6  /
    PL/SQL procedure successfully completed.
    SQL>
    SQL> declare
      2          obj     TMyObject;
      3  begin
      4          obj := new TMyObject(
      5                          objID => TMyObject.DefaultID(),
      6                          objName => TMyObject.DefaultName()
      7                  );
      8  end;
      9  /
    PL/SQL procedure successfully completed.
    SQL> Had a quick look on support.oracle.com and did not turn up any specific notes dealing with the use of static class functions in the parameter signature of the constructor. Known issue? Any other workaround besides the one above?

    Hi,
    there is a bug: "Bug 8470406: OBJECT INSTANCE CREATION FAILS WITH ERROR PLS-00801 IN 11GR1", it shows the behaviour in 11g but not in 10.2. It gives exactly the symptoms you also see, move it to the body and it works. But there is no solution/patch given.
    Herald ten Dam
    http://htendam.wordpress.com

  • Access another class function

    Hey,
    I am trying to access another class function. I have 2 Classes and my main menu features are in my Main Class and I want to call that function from my Level Class
    What is a good idea to approach this, some how I need to import it in a way but I don't know how I could do that.
    Thanks,
    McbainGames11

    Fixed it myself
    Answer:
                        public static var instance:Main;
                        public function Main()
                                  instance = this;
    And I called a function from Main Class in my Level Class using:
    Main.instance.function();

  • Instantiation order: package , class , function

    hello;
    I have a document class, booger.as:
    package
    trace( "package " );
    import flash.display.Sprite;
    public class booger extends Sprite
    trace( "class " );
    public function booger ()
    { trace( "function " );
    I would expect the firing order to be:
    package
    class
    function
    but the output says otherwise:
    class
    package
    function
    any thoughts?
    thanks
    dsdsdsdsd

    Sweet! Thanks. I am not used to creating an instance of a
    class since my background is from mostly VBA programming. I had the
    import statement, but not the variable creating an instance of my
    timer class. I kept trying to simply call the function by using its
    name in the click event of a button. It all makes sense now.

  • Action & Java class

    Experts,
      I have a button called 'Go' in JSP.
    1. When I click on the button, how can I capture the events?
    2. After clicking on the event, I need to call the Java class to perform some backend activity. Pls guide me how?
    3. After this, goto next page called result.jsp.
    I've gone thro, "Development and Extension Guide u2013 SAP E-Commerce 7.0", but I dont understand how to intergrate the JSP & actions.
    Please advise with steps & code..Appreciate your help..
    BM

    Hi Bharathi,
    If you can open JSP file code in text editor then you can see what JavaScript function is called when you click Go.
    Suppose you do not know JSP file name on which Go button is then call your application by below URL with parameter to display JSP File name.
    http://<server>:<port>/b2b/b2b/init.do?showmodulename=true
    Suppose your go button is on xyz.jsp file and your Go button call submitXYZform() JavaScript function. If submitXYZform() javascript function not define in the file xyz.jsp then try to find out in included Javascript file in xyz.jsp
    If java script function just submit the form then check <form> element in xyz.jsp file.
    Suppose you use below form.
    <form action="<isa:webappsURL name="b2b/xyzformAction.do"/>"
                id="form_positions"
                name="form_positions"
                method="post">
    Go to config.xml file and try to find action as below
    <action path="/b2b/xyzformAction" type="com.sap.isa.isacore.action.order.xyzformAction">
                   <forward name="success" path="/b2b/result.do"/>
              </action>
    If you want to add some custom code then you have to extend standard action class xyzformAction to Z_xyzformAction and update config.xml file
    <!--<action path="/b2b/xyzformAction" type="com.sap.isa.isacore.action.order.xyzformAction">
                   <forward name="success" path="/b2b/result.do"/>
              </action>-->
    <action path="/b2b/xyzformAction" type="com.sap.isa.isacore.action.orderZ_.xyzformAction">
                   <forward name="success" path="/b2b/result.do"/>
              </action>
    As you have mentioned that you want to perform backend activity then you have to follow below step.
    1. Create Backend Interface
    2. Create Backend Object which Implement Backend Interface created in Step 1. Here you will use JCO API to call RFC, Set import parameter and get value and set value in Java varialbe from Export parameter
    3. Add your backend Object class in "backend-config.xml file
    4 Create Business Object to access Back end object
    5 Create Business Object Manager to manage Business Object created in Step 4
    6 Update "bom-config.xml" file for Business Object Manager created in Step 5
    7 Use Busines Object in Action class or in JSP page to access data from Backend
    After going through above step read Dev and Ext. Guide or Dev and Ext. Tutorial you will understand how to do it.
    I hope this information will help you.
    Regards.
    eCommerce Developer

  • BPEL 11g fault policy action java class not sending email

    Hi All,
    I am trying to attach fault policy to my bpel process. The fault conditions are working fine but the email part from the action class is not able to send email. The code execute properly , i can't see any error message in the log but I cant access the email in my inbox.
    I am able to send email from using email bpel activity and also test work flow notification from em console.
    I have used both the java options for sending email like javax.mail and oracle.sdp.messaging .
    JAVA CODE FOR EMAIL javax.mail
    public String handleFault(IFaultRecoveryContext iFaultRecoveryContext){
    //Print Fault Meta Data to Console
    System.out.println("****************Fault Metadata********************************");
    System.out.println("Fault policy id: " + iFaultRecoveryContext.getPolicyId());
    System.out.println("Fault type: " + iFaultRecoveryContext.getType());
    System.out.println("Partnerlink: " + iFaultRecoveryContext.getReferenceName());
    System.out.println("Port type: " + iFaultRecoveryContext.getPortType());
    System.out.println("**************************************************************");
    //print all properties defined in the fault-policy file
    System.out.println("Properties Set for the Fault");
    //Print Fault Details to Console if it exists
    System.out.println("****************Fault Details********************************");
    // if(iFaultRecoveryContext instanceof BPELFaultRecoveryContextImpl)
    BPELFaultRecoveryContextImpl bpelCtx = (BPELFaultRecoveryContextImpl)iFaultRecoveryContext;
    System.out.println("Fault: " + bpelCtx.getFault());
    System.out.println("Activity: " + bpelCtx.getActivityName());
    System.out.println("Composite Instance: " + bpelCtx.getCompositeInstanceId());
    System.out.println("Composite Name: " + bpelCtx.getCompositeName());
    System.out.println("***********************************************************");
    try {
    bpelCtx.addAuditTrailEntry("Sending Email...");
    Map props = iFaultRecoveryContext.getProperties();
    if (props != null && props.size() > 0) {
    setFrom(getParameterValue((ArrayList)props.get("from")));
    setTo(getParameterValue((ArrayList)props.get("to")));
    setSubject(getParameterValue((ArrayList)props.get("subject")) + bpelCtx.getTitle());
    setText(getParameterValue((ArrayList)props.get("text")) + "\n" + "BPEL Process Instance: " + bpelCtx.getInstanceId() + " needs intervention to recover from a technical exception: " + bpelCtx.getFault().getMessage() + ".\n" + "Check the Activities tab in the BPEL Management Console in order to resolve the error as soon as possible.\n" + "This message was automatically generated, please do not reply to it.");
    setHost(getParameterValue((ArrayList)props.get("host")));
    setPort(getParameterValue((ArrayList)props.get("port")));
    bpelCtx.addAuditTrailEntry("to Email getFrom..."+getFrom());
    bpelCtx.addAuditTrailEntry("to Email getTo..."+getTo());
    bpelCtx.addAuditTrailEntry("to Email getText..."+getText());
    bpelCtx.addAuditTrailEntry("to Email getHost..."+getHost());
    bpelCtx.addAuditTrailEntry("to Email getPort..."+getPort());
    Session mailSession = Session.getDefaultInstance(properties);
    Message simpleMessage = new MimeMessage(mailSession);
    bpelCtx.addAuditTrailEntry("to Email toAddresses2...");
    InternetAddress fromAddress = new InternetAddress(from);
    bpelCtx.addAuditTrailEntry("to Email fromAddress..."+fromAddress);
    simpleMessage.setFrom(fromAddress);
    String[] toAddresses = to.split(";");
    if (toAddresses != null && toAddresses.length > 0)
    bpelCtx.addAuditTrailEntry("to Email toAddresses3...");
    InternetAddress[] toInternetAddresses =new InternetAddress[toAddresses.length];
    for (int i = 0; i < toAddresses.length; i++)
    bpelCtx.addAuditTrailEntry("to Email toAddresses4444..."+ toAddresses);
    toInternetAddresses[i] = new InternetAddress(toAddresses[i]);
    bpelCtx.addAuditTrailEntry("to Email toInternetAddresses..."+ toInternetAddresses[i]);
    simpleMessage.setRecipients(RecipientType.TO,toInternetAddresses);
    simpleMessage.setSubject(subject);
    simpleMessage.setText(text);
    Transport.send(simpleMessage);
    bpelCtx.addAuditTrailEntry("After Email...");
    } catch (Exception e) {
    bpelCtx.addAuditTrailEntry("fault Message:" + e.getMessage());
    //Custom Code to Log Fault to File/DB/JMS or send Emails etc.
    return "Manual";
    private String getParameterValue(ArrayList parameterList) {
    String value = null;
    if (parameterList != null && parameterList.size() > 0)
    value = (String)parameterList.get(0);
    return value;
    JAVA CODE FOR EMAIL oracle.sdp.messaging 
    private void sendMail(IFaultRecoveryContext iFaultRecoveryContext) {
    BPELFaultRecoveryContextImpl bpelCtx = (BPELFaultRecoveryContextImpl)iFaultRecoveryContext;
    bpelCtx.addAuditTrailEntry("In sendMail...");
    Map<String, Object> params = new HashMap<String, Object>();
    // params.put(key, value); // if optional parameters need to be specified.
    MessagingClient messagingClient;
    try {
    bpelCtx.addAuditTrailEntry("In sendMail111...");
    messagingClient =
    MessagingClientFactory.createMessagingClient(params);
    Message newMessage = MessagingFactory.createMessage();
    // newMessage.setContent(createEventPayload(iFaultRecoveryContext),"text/plain");
    newMessage.setContent("Component Name :"+bpelCtx.getComponentName()+ "\n Instacne Id :"+bpelCtx.getComponentInstanceId()+
    "\n Composite Instance Id :"+bpelCtx.getCompositeInstanceId()+ "\n Composite Name :" bpelCtx.getCompositeName()
    "\n Activity name :"+bpelCtx.getActivityName() + "\n Activity Id :" bpelCtx.getActivityId() "\n ECID :" bpelCtx.getECID()
    "\n Reference Name :"+bpelCtx.getReferenceName()+ "\n Title :" bpelCtx.getTitle()
    "\n Fault :" + bpelCtx.getFault()+ "\n Port Name :"+bpelCtx.getPortType(), "text/plain");
    bpelCtx.addAuditTrailEntry("In sendMail222...");
    Address sender = MessagingFactory.createAddress(getFrom());
    bpelCtx.addAuditTrailEntry("In sendMail sender..."+sender.toString());
    bpelCtx.addAuditTrailEntry("from Email..."+getFrom());
    String recipientsStr[] = to.split(";");
    bpelCtx.addAuditTrailEntry("to Email..."+getTo());
    bpelCtx.addAuditTrailEntry("In sendMail333...");
    Address[] recipients = MessagingFactory.createAddress(recipientsStr);
    bpelCtx.addAuditTrailEntry("In sendMail444...");
    newMessage.addSender(sender);
    messagingClient.registerAccessPoint(MessagingFactory.createAccessPoint(sender));
    newMessage.addAllRecipients(recipients);
    bpelCtx.addAuditTrailEntry("In sendMail5555...");
    newMessage.getMessageInfo().setSession(MessageSessionType.INBOUND_SESSION);
    newMessage.setSubject(getSubject());
    bpelCtx.addAuditTrailEntry("Subject..."+getSubject());
    String messageId = "";
    bpelCtx.addAuditTrailEntry("In sendMail666...");
    synchronized (this) {
    bpelCtx.addAuditTrailEntry("In sendMail777...");
    messageId = messagingClient.send(newMessage);
    bpelCtx.addAuditTrailEntry("In sendMail888...");
    Status[] statuses = messagingClient.getStatus(messageId);
    bpelCtx.addAuditTrailEntry("In sendMail999...");
    } catch (MessagingException e) {
    bpelCtx.addAuditTrailEntry("inside exception email fault Message:" + e.getMessage());
    //e.printStackTrace();
    MESSAGES FROM SOA SERVER OUT LOG after test the bpel process:
    ===========================================
    ****************Fault?Metadata********************************
    Fault?policy?id:?SimpleFaultPolicy
    Fault?type:?bpel
    Partnerlink:?Service1
    Port?type:?{http://kacst.edu.sa/process/nstip/coPINotifyProcess}kacst_process_nstipCoPIMotifyProcess
    Properties?Set?for?the?Fault
    ****************Fault?Details********************************
    Fault:?com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.oracle.com/bpel/extension}remoteFault}
    messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
    parts: {{
    summary=<summary>Message Router for nstip/nstip_Pro_CoPiNotificationProcess!1.0*soa_084da522-a825-4aa6-9d1c-ca1d50b4595b is not able to process messages. The composite state is set to "off". The composite can be turned "on" by using the administrative consoles.</summary>
    ,detail=<detail>&lt;exception>Message Router for nstip/nstip_Pro_CoPiNotificationProcess!1.0*soa_084da522-a825-4aa6-9d1c-ca1d50b4595b is not able to process messages. The composite state is set to "off". The composite can be turned "on" by using the administrative consoles.&lt;/exception>
    </detail>
    ,code=<code>env:Server</code>}
    Activity:?Invoke1
    Composite?Instance:?740332
    Composite?Name:?TestBPELFaultPolicy
    DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
    DEBUG SMTP: useEhlo true, useAuth false
    DEBUG SMTP: trying to connect to host "localhost", port 25, isSSL false
    220 taisirsit.kacst.edu.sa ESMTP Sendmail 8.14.4+Sun/8.14.4; Fri, 12 Oct 2012 13:00:45 +0300 (AST)
    DEBUG SMTP: connected to host "localhost", port: 25
    EHLO taisirsit.kacst.edu.sa
    250-taisirsit.kacst.edu.sa Hello localhost [127.0.0.1], pleased to meet you
    250-ENHANCEDSTATUSCODES
    250-PIPELINING
    250-EXPN
    250-VERB
    250-8BITMIME
    250-SIZE
    250-DSN
    250-ETRN
    250-DELIVERBY
    250 HELP
    DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""
    DEBUG SMTP: Found extension "PIPELINING", arg ""
    DEBUG SMTP: Found extension "EXPN", arg ""
    DEBUG SMTP: Found extension "VERB", arg ""
    DEBUG SMTP: Found extension "8BITMIME", arg ""
    DEBUG SMTP: Found extension "SIZE", arg ""
    DEBUG SMTP: Found extension "DSN", arg ""
    DEBUG SMTP: Found extension "ETRN", arg ""
    DEBUG SMTP: Found extension "DELIVERBY", arg ""
    DEBUG SMTP: Found extension "HELP", arg ""
    DEBUG SMTP: use8bit false
    MAIL FROM:<[email protected]>
    250 2.1.0 <[email protected]>... Sender ok
    RCPT TO:<[email protected]>
    250 2.1.5 <[email protected]>... Recipient ok
    DEBUG SMTP: Verified Addresses
    DEBUG SMTP: [email protected]
    DATA
    354 Enter mail, end with "." on a line by itself
    From: [email protected]
    To: [email protected]
    Message-ID: <[email protected].sa>
    Subject: SOA EXCEPTIONInstance #890381 of BPELProcess1
    MIME-Version: 1.0
    Content-Type: text/plain; charset=us-ascii
    Content-Transfer-Encoding: 7bit
    Testing Email From Fault
    BPEL Process Instance: 890381 needs intervention to recover from a technical exception: faultName: {{http://schemas.oracle.com/bpel/extension}remoteFault}
    messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
    parts: {{
    summary=<summary>Message Router for nstip/nstip_Pro_CoPiNotificationProcess!1.0*soa_084da522-a825-4aa6-9d1c-ca1d50b4595b is not able to process messages. The composite state is set to "off". The composite can be turned "on" by using the administrative consoles.</summary>
    ,detail=<detail>&lt;exception>Message Router for nstip/nstip_Pro_CoPiNotificationProcess!1.0*soa_084da522-a825-4aa6-9d1c-ca1d50b4595b is not able to process messages. The composite state is set to "off". The composite can be turned "on" by using the administrative consoles.&lt;/exception>
    </detail>
    ,code=<code>env:Server</code>}
    Check the Activities tab in the BPEL Management Console in order to resolve the error as soon as possible.
    This message was automatically generated, please do not reply to it.
    250 2.0.0 q9CA0j30012424 Message accepted for delivery
    QUIT
    221 2.0.0 taisirsit.kacst.edu.sa closing connection
    Details from Instance of BPEL PROCESS :
    Started invocation of operation "process" on partner "Service1".
    Oct 12, 2012 10:00:45 AM [FAULT RECOVERY] Invoked handleBPELFault on custom java action class "com.kacst.fault.CustomFaultHandler".
    Oct 12, 2012 10:00:45 AM Sending Email...
    Oct 12, 2012 10:00:45 AM to Email [email protected]
    Oct 12, 2012 10:00:45 AM to Email [email protected]
    Oct 12, 2012 10:00:45 AM to Email getText...Testing Email From Fault BPEL Process Instance: 890381 needs intervention to recover from a technical exception: faultName: {{http://schemas.oracle.com/bpel/extension}remoteFault} messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage} parts: {{ summary=<summary>Message Router for nstip/nstip_Pro_CoPiNotificationProcess!1.0*soa_084da522-a825-4aa6-9d1c-ca1d50b4595b is not able to process messages. The composite state is set to "off". The composite can be turned "on" by using the administrative consoles.</summary> ,detail=<detail>&lt;exception>Message Router for nstip/nstip_Pro_CoPiNotificationProcess!1.0*soa_084da522-a825-4aa6-9d1c-ca1d50b4595b is not able to process messages. The composite state is set to "off". The composite can be turned "on" by using the administrative consoles.&lt;/exception> </detail> ,code=<code>env:Server</code>} . Check the Activities tab in the BPEL Management Console in order to resolve the error as soon as possible. This message was automatically generated, please do not reply to it.
    Oct 12, 2012 10:00:45 AM to Email getHost...smtp.kacst.edu.sa
    Oct 12, 2012 10:00:45 AM to Email getPort...25
    Oct 12, 2012 10:00:45 AM to Email toAddresses2...
    Oct 12, 2012 10:00:45 AM to Email [email protected]
    Oct 12, 2012 10:00:45 AM to Email toAddresses3...
    Oct 12, 2012 10:00:45 AM to Email [email protected]
    Oct 12, 2012 10:00:45 AM to Email [email protected]
    Oct 12, 2012 10:00:45 AM After Email...
    Oct 12, 2012 10:00:45 AM [FAULT RECOVERY] Marked Invoke activity as "pending manual recovery".
    Oct 12, 2012 10:00:45 AM Faulted while invoking operation "process" on provider "Service1".
    Please suggest.
    Thanks

    Hi,
    I got the solution. our email server is sending email to the mail accounts those are in the same domain but for different domains its not able to send the email.
    you can try with the email those are created on the same email server.
    Thanks
    Tuku

Maybe you are looking for