Custom Event generation and Handling

HI all,
I am new to java. I have a dataset which changes dynamically and this dataset is responsible for some other dataset(s). So whenever the original dataset is modified, the other datasets based on this dataset should be updated automatically so as to preserve the consistency.
What I want to do is to write a custom event which is to be fired whenever the original dataset is modified and notify it to other datasets so as to ensure the consistency.
Any help in this regard is extremely appreciated.

HI Duffymo,
Here is my problem for better understanding:
I have a vector data in a NodePanel (this vector data originates from some other datastructure...but that is immaterial as we know that this data is an instance of that datastructure). This vectordata in NodePanel is responsible for another vectordata in SchedulePanel. The NodePanel and SchedulePanel are tabbedPanels in a tabbedframe. Whenever I update the vector data in NodePanel, the vector data in SchedulePanel needs to be updated.
The solution you gave me, taught me an insight of the event handling in Java.
I am quoting my source for your reference as I am unable to incorporate your idea into my project.
Event class:
import java.util.*;
public class VectorUpdateEvent extends EventObject
     public VectorUpdateEvent(Object source)
          super(source);
Interface to EventListener
public interface VectorUpdateListener
     public void eventVectorUpdated(VectorUpdateEvent event);
class EventGenerator
import java.util.*;
public class VectorUpdateEventIssuer
     implements EventListener
     public VectorUpdateEventIssuer()
          listListeners = new ArrayList();
     public synchronized void addVectorUpdateEventListener(VectorUpdateEvent l)
          listListeners.add(l);
     protected synchronized void removeVectorUpdateEventListener(VectorUpdateEvent l)
          listListeners.remove(listListeners.indexOf(l));
     protected void notifyVectorUpdateEvent(Object source)
          VectorUpdateEvent evt = new VectorUpdateEvent(source);
          Iterator itr = listListeners.iterator();
          while (itr.hasNext())
               ((VectorUpdateListener)itr.next()).eventVectorUpdated(evt);
     private ArrayList listListeners;
class where the event originates
class NodePanel
     extends JPanel
     implements ActionListener, ListSelectionListener
     /////////////Constructors/////////////////////////
     public NodePanel()
          addNodeButton = new JButton("Add Node");
          delNodeButton = new JButton("Delete Node");
          dumpNodeButton = new JButton("Dump Node");
          reloadNodeButton = new JButton("Reload Node");
          browseButton = new JButton("Browse Node");
          exitButton = new JButton("Exit");
          add(addNodeButton);
          add(delNodeButton);
          add(dumpNodeButton);
          add(reloadNodeButton);
          add(browseButton);
          add(exitButton);
          setButtonsEnabled(false);
          addNodeButton.addActionListener(this);
          delNodeButton.addActionListener(this);
          dumpNodeButton.addActionListener(this);
          reloadNodeButton.addActionListener(this);
          browseButton.addActionListener(this);
          exitButton.addActionListener(this);
          nodesVector = new Vector();
          nodesList = new JList(nodesVector);
          this.vectorNodeAttributes = new Vector();
          JScrollPane scrollPane = new JScrollPane(nodesList);
          add(scrollPane,BorderLayout.CENTER);
          nodesList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
          nodesList.addListSelectionListener(this);
     ////////////////Methods///////////////////////////
     /////////////Event valueChanged///////////////////
     public void valueChanged(ListSelectionEvent evt)
          JList source = (JList) evt.getSource();
          setButtonsEnabled(true);
          desiredNode = (String) source.getSelectedValue();
          if (desiredNode == null)
               setButtonsEnabled(false);
     //////////////Event actionPerformed////////////
     public void actionPerformed(ActionEvent evt)
          Object source = evt.getSource();
          if (source == addNodeButton)
               addNodeButtonClicked();
          else if (source == delNodeButton && desiredNode != null)
               deleteNodeButtonClicked();
          else if (source == dumpNodeButton && desiredNode != null)
               JFileChooser d = new JFileChooser();
               //d.setCurrentDirectory("");
               d.setFileFilter(new XMLFilter());
               int result = d.showSaveDialog(this);
          else if (source == reloadNodeButton && desiredNode != null)
               JFileChooser d1 = new JFileChooser();
               //d.setCurrentDirectory("");
               d1.setFileFilter(new XMLFilter());
               int result = d1.showOpenDialog(this);
               //String filename=d1.getSelectedFile().getName();
          if (source == browseButton && desiredNode != null)
               browseButtonClicked();
          else if (source == exitButton)
               System.exit(0);
     //////////Enables or Diables the Buttons////////
     private void setButtonsEnabled(boolean enable)
          delNodeButton.setEnabled(enable);
          dumpNodeButton.setEnabled(enable);
          reloadNodeButton.setEnabled(enable);
          browseButton.setEnabled(enable);
          private void deleteNodeButtonClicked()
          if (noFieldDlg != null)
               noFieldDlg.dispose();
          noFieldDlg = new NoFieldDialog("Delete the Node?");
          noFieldDlg.show();
          if (noFieldDlg.getDialogResult() == DialogResult.OK)
               int nodeToRemove=0;
               for (int i=0; i< vectorNodeAttributes.size(); i++)
                    if(((NodeAttributes)(vectorNodeAttributes.get(i))).getNodeName().compareTo(nodesList.getSelectedValue()) == 0)
                         nodeToRemove = i;
               vectorNodeAttributes.remove(nodeToRemove);
               nodesVector.removeElement(nodesList.getSelectedValue());
               this.nodesList.setListData(nodesVector);
               NodePanel.nodesPresent = nodesVector;
               updateStaticNodeList();
/*************** as soon as the NodePanel.nodesPresent is updated, the changes are to be reflected in the Schedule Panel ******************/
               VectorUpdateEvent e = new VectorUpdateEvent(this);
               VectorUpdateEventIssuer v = new VectorUpdateEventIssuer();
               v.addVectorUpdateEventListener(e);
               v.notifyVectorUpdateEvent(this);
     ///////////////Data Members////////////////////
     private JButton addNodeButton;
     private JButton delNodeButton;
     private JButton dumpNodeButton;
     private JButton reloadNodeButton;
     private JButton browseButton;
     private JButton exitButton;
     private String desiredNode;
     private OneFieldDialog oneFieldDlg = null;
     private NoFieldDialog noFieldDlg = null;
     private JList nodesList;
     private Vector nodesVector;
     private Vector vectorNodeAttributes;
     private static Vector nodesPresent = null;
} // end class NodePanel
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;
////////////////Class SchedulePanel////////////////
class SchedulePanel extends JPanel
implements ActionListener, ListSelectionListener, VectorUpdateListener
     ////////////////Constructors//////////////////
     public SchedulePanel()
          addScheduleButton = new JButton("Add Schedule");
          delScheduleButton = new JButton("Delete Schedule");
          dumpScheduleButton = new JButton("Dump Schedule");
          reloadScheduleButton = new JButton("Reload Schedule");
          browseScheduleButton = new JButton("Browse Schedule");
          exitButton = new JButton("Exit");
          add(addScheduleButton);
          add(delScheduleButton);
          add(dumpScheduleButton);
          add(reloadScheduleButton);
          add(browseScheduleButton);
          add(exitButton);
          setButtonsEnabled(false);
          addScheduleButton.addActionListener(this);
          delScheduleButton.addActionListener(this);
          dumpScheduleButton.addActionListener(this);
          reloadScheduleButton.addActionListener(this);
          browseScheduleButton.addActionListener(this);
          exitButton.addActionListener(this);
          scheduleVector = new Vector();
          scheduleList = new JList(scheduleVector);
          this.vectorScheduleOperations = new Vector();
          JScrollPane scrollPane = new JScrollPane(scheduleList);
          add(scrollPane);
          scheduleList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
          scheduleList.addListSelectionListener(this);
          //updateEventListener = new VectorUpdateEventIssuer();
          //updateEventListener.addVectorUpdateEventListener(this);
     /////////////Methods///////////////////////
     ////////////Event valueChanged/////////////
     public void valueChanged(ListSelectionEvent evt)
          JList source = (JList)evt.getSource();
          setButtonsEnabled(true);
          desiredSchedule = (String)source.getSelectedValue();
          if (desiredSchedule == null)
               setButtonsEnabled(false);
     ////////////Event actionPerformed////////
     public void actionPerformed(ActionEvent evt)
          Object source = evt.getSource();
          if (source == addScheduleButton )
               addScheduleButtonClicked();
          else if (source==delScheduleButton && desiredSchedule!=null)
               deleteScheduleButtonClicked();
          else if (source == dumpScheduleButton && desiredSchedule!=null)
               JFileChooser d = new JFileChooser();
               d.setFileFilter(new XMLFilter());
               int result = d.showSaveDialog(this);
          else if (source == reloadScheduleButton && desiredSchedule!=null)
               JFileChooser d1 = new JFileChooser();
               d1.setFileFilter(new XMLFilter());
               int result = d1.showOpenDialog(this);
          else if (source == browseScheduleButton && desiredSchedule!=null)
               browseScheduleButtonClicked();
          else if (source == exitButton)
               System.exit(0);
     public void eventVectorUpdated(VectorUpdateEvent event)
          System.out.println("Hello! EventRaised");
     ///////////Data Members//////////////////
     private JButton addScheduleButton;
     private JButton delScheduleButton;
     private JButton dumpScheduleButton;
     private JButton reloadScheduleButton;
     private JButton browseScheduleButton;
     private JButton exitButton;
     private String desiredSchedule;
     private OneFieldDialog oneFieldDlg = null;
     private NoFieldDialog noFieldDlg = null;
     private JList scheduleList;
     private Vector scheduleVector;
     private Vector vectorScheduleOperations;
     private VectorUpdateEventIssuer updateEventListener;
} // end class SchedulePanel
I hope you understood my problem now. The NodeAttributes is a datastructure containing the node name and an associated table for that. THe ScheduleOperations is similar to the NodeAttributes but it contains a DefaultTableModel which inturn consists of a column which is filled with the list of current nodes available + their schedules.
I am sorry for my long posting.
Thanks once again in anticipation.

Similar Messages

  • Custom Event generation

    My question is in relation to generating events. Is there any means in Java to write your own custom Events. What I am looking for is to be able to produce an event and have the actionPerformed method react to it. If this is not possible, then writting my own interface similar to ActionListener and fully implementing it to act in the same way, except that it only listens to events that I have generated. Is this possible, or do I have to hit assembler and make my own ISR's and have it interface with Java somehow?
    Any guidance would be appreciated

    You can generate your custom events and it is very easy.
    You will have to extend the EventObject class in order to make an class representing the event.
    Iam giving a brief eg:
    class MyEvent extends EventObject
    MyEvent(Object source)
    super(source);//source which generated the event.
    //your own code
    interface MyEventListener
    public void myEventPerformed(MyEvent e);
    class abc
    java.util.ArrayList arr;
    abc
    arr = new java.util.ArrayList();
    public synchronized void addMyEventListener (MyEventListener l)
    arr.add(l);
    public synchronized void removeMyEventListener (MyEventListener l)
    arr.remove(arr.indexOf(l));
    protected void notifyTransEvent(Object source)
    MyEvent tEvent = new MyEvent(source);
    Iterator itr = arr.iterator();
    Iterator itr = arr.iterator();
    while(itr.hasNext())
    ((MyEventListener)itr.next()).myEventPerformed(tEvent);
    Now anyone implementing the MyEventListener inetrface can be added in the ArrayList.The ArrayList is the list representing the interesting parties who want to receive the event.When registered they will receive the event.
    This class abc is just like an component which on certain situations generate event.You can call notifyEvent in any case where you want the event to be generated.
    You will then add this class to your main class as this
    class xyz implements MyEventListener
    abc obj;
    xyz()
    obj.addMyEventListener(this);
    public void myEventPerformed(MyEvent e)
    //your handling code
    }

  • Dispatch custom event from itemClick handler

    hi,
    I'm trying to dispatch a custom event from my itemClick handler.
    So when I click on an item of my datagrid, I want to send a custom event.
    private function dataGridItemClickHandler( event:ListEvent): void
         dispatchEvent( new myEvent( myEvent.NEW, values[event.columnIndex]["name"]) );
    <mx:DataGrid dataProvider="{values}" itemClick="dataGridItemClickHandler(event)">
    </mx:DataGrid>
    but this code doesn't work.
    Can you help me
    thanks
    best regards

    Please see that you override the function clone() and return the new function.If that is correct.you can call the super() method to initialize your base class.
    If your custom event {myEvent} is in package say: CustomEvent,
    1)import package CustomEvent.myEvent
    2) keep in <mx:metadata>[Event(name="NEW", type="CustomEvent.myEvent")]</mx:metadata>.. name suggest  what type of event you want
    3)Create an itemclick listener and in dataGridItemClickHandler
    private function dataGridItemClickHandler( event:ListEvent): void
         dispatchEvent( new myEvent( ' NEW ', values[event.columnIndex]["name"]) );
    private funcation myEventListener(evt:myEvent):void
    //Put your logic
    4)Use this event by name NEW="myEventListener(event)"  this will behave as event type in the datagrid tag like click, hover and others.
    Hope this helps! Please excuse if anything is logically incorrect.Do point out.Thanks.

  • Adding button to a custom table cell (and handling them)

    Hi
    I'm wondering if it's possible to add a button on each row of a table view using a custom table cell view. If it's possible, I'm really wondering how I can handle the click events on these buttons.
    Thanks

    No.
    Try creating a view and adding it to a cell. Let us know what problems you have, and we can try to help.

  • Custom Video Generation and Streaming

    Hi,
    Suppose I have a server-side component which generates video
    on-the-fly. For example, it could be a component which creates a
    short sequence of video from a fly through of a 3D model. I want to
    be able to have a client browse to my website, click on a link and
    view the video. Clicking on the link would create a new video from
    the 3D model and stream it to a flash video player within the
    webpage. I want the video generation to be done server-side.
    Is this possible by writing a custom application for Flash
    media server? Do I have to write this component in server-side
    ActionScript or could I write it in C++ and some-how interface to
    it from a server-side ActionScript application?
    As you can guess, I'm a bit of a novice at all this flash
    stuff but I'm working on a project which requires it.
    Thanks a lot!
    Nick.

    Unless the video is completely downloaded to the iMac you can not rule out the Internet connection.
    Since it plays all other video with no problem the downloading stream would seem to be the source of the problem.
    I had cable modem and it is no guarantee of a fast connection. Also even having a fast connection on one end doesn't mean that the source of the video is pushing it all that fast.

  • Dynamic Event Creation and Handling the events

    Hi All
    I am using WAS 6.4.
    I have two components say Component A and Component B in which Component A is a reusable component and is used by other components say for e.g the Component B.
    The following is the requirement.
    Component A should create buttons for other components dynamically.
    As an example, Component B specifies to Component A the buttons required say button B1 and button B2.
    Component B also contains methods M1 and M2 for the buttons created by the component A.
    Now I would like to associate these buttons created by component A with the methods created in Component B
    The number of buttons that are to be created may vary from component to component.
    If any one as any suggestion or solution, help me out.
    Thanks
    Regards
    NagaKishore

    Hi NagaKishore,
         I'm not exactly sure why you want to do this, but it is pretty easy if I switch it up a bit.  (Maybe you are trying to create a navigation page or something?) 
         Instead of your component B using component A, if you define a Web Dynpro interface in component A, then implement this interface in component B (or all component Bs), achieving your goal would not be too difficult.  It could define a generic method (or event) with a "button key" as an argument that would tell component B which button was pressed and allow it to behave as desired.  The Web Dynpro interface defined in A could also have an interface context that would allow the the button text to be passed along with (for the sake of simplicity) a "button key" that component that should be triggered when the button is pressed.  (Note this could be a varying size list as required.)
         The component B(s) need not be known until run-time.  They can be created using something like:
    wdThis.wdGet<Used Compontne Name>ComponentUsage().createComponent(<Component Name>,<Object Name (if in a different component)>)
         Once the component is created, the context can be accessed giving the list of buttons to create and the values.  The buttons can be created in the wdModifyView during the first pass of the creation of the view displaying the buttons (after the dynamic creation of the used components which can occur in the wdDoInit of the component controller).
         If the user presses a chosen button on component A, then the generic method (most likely an event) of component Bs interface is called and passed the "button key", component B then takes over.  Note this would also work if component B had a visualization component that must be displayed through an interface view that is defined on the web dynpro component interface that is implemented by B.
         Hope this helps or at least triggers discussion that will answer your question,
           --Greg

  • Re:Event declaration and handling in portals

    Hi,
    I am new to portal and I got struck in how to access events and to declare events as well .
    Please guide me in this issue
                                         Thank You,
                                         D.Durga Rao

    Hi,
      Check this link for the tag for button. It shows onClientClick and onClick. onClientClick is client side validation (code written in javascript inside jsp itself) and onClick is server side validation.
    http://help.sap.com/saphelp_nw70/helpdata/en/f1/9a0e41a346ef6fe10000000a1550b0/content.htm
    For server side: Use onClick:
    JSP DynPage: Declaration of the method that processes the event:
    public void myClick (Event event) { ..coding.. }
    or
    public void onMyClick (Event event) { ..coding.. }
    Here myClick is like ProcessConfirm defined for button. It can be defined as
    public void ProcessConfirm (Event event) { ..coding.. }
    or
    public void onProcessConfirm (Event event) { ..coding.. }
    Regards,
    Harini S

  • Query regarding creating a Custom Event and Firing.

    I have created a custom event,a custom listener and a custom button.
    But when I click on custom button,my event is not being fired.
    When and how do I need to invoke the fireEvent() ?
    Please can any body tell me if I have overlooked any thing ?
    Thanks,
    // 1 Custom Event
    import java.util.EventObject;
    public class MyActionEvent extends EventObject{
            public MyActionEvent(Object arg0) {
         super(arg0);
    // 2 Custom Listener
    import java.util.EventListener;
    public interface MyActionListener extends EventListener {
          public void myActionPerformed(MyActionEvent myEvent);
    // 3 Custom Button
    public class MyButton extends JButton {
        // Create the listener list
        protected javax.swing.event.EventListenerList listenerList = new javax.swing.event.EventListenerList();
          public MyButton(String str){
         super(str);
         public void addMyActionEventListener(MyActionListener listener) {
             listenerList.add(MyActionListener.class, listener);
        protected void fireMyActionEvent() {
            MyActionEvent evt = new MyActionEvent(this);
            Object[] listeners = listenerList.getListenerList();
           for (int i = 0; i < listeners.length; i = i+2) {
                 if (listeners[i] == MyActionListener.class) {
                      ((MyActionListener) listeners[i+1]).myActionPerformed(evt);
    } // end of class MyButton.
    // 4 Test my Custom Event,Listener and Button
    public class MyButtonDemo extends JPanel {
        protected MyButton b1;
        public MyButtonDemo() {
            b1 = new MyButton("Disable Button");
            b1.setToolTipText("Click this button to disable the middle button.");
            b1.addMyActionEventListener(new MyActionListener() {
         @Override
         public void myActionPerformed(MyActionEvent myEvent) {
         System.out.println("My ActionEvent....");
            add(b1);
        private static void createAndShowGUI() {
            JFrame frame = new JFrame("ButtonDemo");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            MyButtonDemo newContentPane = new MyButtonDemo();
            newContentPane.setOpaque(true);
            frame.setContentPane(newContentPane);
            //Display the window.
            frame.pack();
            frame.setVisible(true);
        public static void main(String[] args) {
            javax.swing.SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    createAndShowGUI();
    }

    Hi Stan,
    I would like to use my custom action listener rather that using the the normal actionPerformed(ActionEvent e)
    But some how this event is not being fired.
    Any suggestions to fire this?
    b1.addMyActionEventListener(new MyActionListener() {
             @Override
             public void myActionPerformed(MyActionEvent myEvent) {
         System.out.println("My ActionEvent triggered....");
    });

  • Portal Custom Event

    Hi,
    I wrote a Custome Event class and a Listner to support my Event. They
    compile fine as I extended com.bea.p13n.events.Event and implemented
    EventListener. However, from the docs
    (http://edocs.bea.com/wlp/docs40/events/custmevt.htm), I am not sure
    where to drop my custom Event and Listner class so that they can be
    used from my portal within a portlet.
    Should I place the classes inside a particular directory of the Portal
    product? Should I add them to the Event and Listener JARs? Any help is
    appreciated.
    Thanks in advance.
    -n

    Hello,
    The problem appears to be that you are trying to determine if the portlet was targeted and to send events in preRender()-- this should be done in your backing file's handlePostbackData() method. Some of the earlier links and examples on this discussion thread mixed up "campaign events" with "interportlet events"-- they are two different things. The information about inter-portlet events is located at http://edocs.bea.com/wlp/docs81/ipcguide/overview.html .
    Interportlet events can only be sent during the handlePostbackData() backing file lifecycle phase, or when handling another incoming event. If an event is sent during preRender() it may not be delivered to any other portlets, and in later versions of WLP it will actually result in an error being logged.
    So your backing file should probably look something like this:
    import com.bea.netuix.servlets.controls.content.backing.AbstractJspBacking;
    import com.bea.netuix.servlets.controls.portlet.backing.PortletBackingContext;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    * Sample backing file for sending an event when the portlet
    * is clicked.
    public class SampleBacking extends AbstractJspBacking
    public boolean handlePostbackData(HttpServletRequest request,
    HttpServletResponse response)
    // Determine if this request originated due to an action
    // on our portlet
    if(isRequestTargeted(request))
    PortletBackingContext context = PortletBackingContext.getPortletBackingContext(request);
    context.fireCustomEvent("portletClicked", "my portlet was clicked");
    return false;
    }

  • Documentation for custom event listeners

    Hi,
    I am searching in portal 8.1 documents for using custom events, coding and registering event listeners, and using them in jsp pages. So far my search has been unsuccessful.
    Can some one let me know where i find this info?
    -thanks

    Hi J, 
    Thanks for your reply.
    I didn’t find the custom work item Web Access control Official documents, but you can refer to the information in these articles(it’s same in TFS 2013):
    http://blogs.msdn.com/b/serkani/archive/2012/06/22/work-item-custom-control-development-in-tf-web-access-2012-development.aspx
    http://blogs.msdn.com/b/serkani/archive/2012/06/22/work-item-custom-control-development-in-tf-web-access-2012-deployment.aspx
    For how to debug TFS Web Access Extensions, please refer to:
    http://www.alexandervanwynsberghe.be/debugging-tfs-web-access-customizations/.
    For the custom work item Web Access control Official documents, you can
    submit it to User Voice site at: http://visualstudio.uservoice.com/forums/121579-visual-studio. Microsoft engineers will evaluate them seriously.
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Event Log Trigger on New-Mailbox Event in MSExchange Management Event Log and Email in HTML Format

    I created a custom event view and created "Attach Task to this custom view" task scheduler job based on the custom view. Whenever a new user is created a receive the email however, the body of the email is blank. I'd like to pass the event detail
    into the body of the email as HTML. Any assistance on how to create a script to accomplish is much appreciated.

    Did you find an answer to this question yet?
    ¯\_(ツ)_/¯

  • 2 custom events getting triggered on user status change

    Hi all,
    In IQS21 transaction, once a user changes the user status I need to send a work item to the superior.So for this I have delegated
    the business object BUS7051 to ZBUS7051. I have created 2 custom events HOD and APP.
    I have even configured all the settings in BSVZ.
    There are 3 user statuses 1.Created 2.HOD 3 .APP
    Once user changes the status from Created to HOD a work item(notification in change mode) should go to the superior and similarly from HOD to APP also.
    The problem is when I change status from Created to HOD,APP event is also getting triggered along with HOD.
    Please tell me where I am wrong.
    Refards,
    Nishant

    Nishant,
    The APP event is used for Display the notification right? The two events are triggered for the same process. So the two events are linked with same process. Have you done anything in SWEC?
    Thanks.

  • Custom Event - Issues with triggering

    Hi Experts,
    I've developed one workflow for travel management. The flow is as below.
    1. Whenever expense report is created, workflow will get triggered
    2. If the expense report requires receipts, workflow will be waiting for the receipts attachment. After attaching the receipts workflow will move further for approval process. For this I've created one custom event, which will be triggered from enhance spot (OA_BADI_LINK) implementation when receipts are attached
    3. I'm using the custom event created and wait step to hold the workflow till the event get triggered
    4. If receipts are required and not attached for 2 days, workflow will be terminated
    It was working fine in development server. After transporting the all related objects to testing server, in testing server the workflow was not moving further even after attaching the receipts. I wanted to check whether the custom event is getting triggered or not, while attaching the receipts. For this, I've requested admin team to switch on the event trace (SWELS) in testing server. After switching on the event trace, my workflow is working fine. I mean, the workflow is moving further whenever receipts are attached.
    I'm with no clue, why it was not working before activating the event trace and why it is working after that.
    Can any one help me in finding out the cause?
    Thanks in Advance,
    Siva Sankar.

    Hi Shital,
    Thanks for ur reply.
    Standard event that is maintained in SWE2 was getting triggered and workflow was getting started. But, the custom event that is getting triggered from enhancement was not working properly.
    What settings admin do using SWEQADM tcode?
    Thanks,
    Siva Sankar.

  • Custom Events and Scheduling more than once

    Hi,
    in BO 4.1, I successfully triggered WebI Report instance generation by a "Custom Event" through scheduling.
    Now, we have the requirement that the report should not be triggered only once but always when the event is triggered.
    At first glance, this looks tricky bc. in order that the report "reacts" to the event, the report itself must be scheduled with the event (it gets an instance "pending" that "wait + reacts" to the event). So it looks like we need schedule the report always manually with "event" before it is ready to react to the event specified in the scheduling.
    Is there any user-friendly trick to make the report react upon every fired event without having to "schedule" the report manually with the event?
    (Similar to schedule daily, just that the event is the trigger, note a daytime...)
    Best Regards

    Hi Florian,
    What is the frequency set under Recurrence option for the report instance?
    Can you give an idea like after how much time the event can be triggered?
    For example, if you are expecting the event to change in an hour, you can schedule the recurrence as hourly or you can specify something like 0 hours and 15 minutes or something like that.
    In that case, once the event is fired, your report instance will be ready to trigger after 15 minutes for the next run.
    Would suggest you to sync with the BO administrator as concurrent triggering of large number of instances can give load on Job Servers.
    Hope it will help in some way.
    Regards,
    Yuvraj

  • Problem reading custom property file from custom event handler.

    Hi,
    My custom event handler needs some bits of information that I have set up in a property file. However, when the event handler runs it throws a FileNotFound exception - actually its because permission was denied.
    I have added the code System.getProperty("user.name") to find out the actual user that the event handler is running as. It reports that "oracle" is the user.
    That's great. However, the permissions on the file will allow oracle to read/write the file. If I log onto the server where OCDB runs (as oracle), I can vi the file.
    The file is owned by another user, but the "oracle" is a member of the group that has read/write (we're running on a unix box). The file is not 777.
    The event handler is actually calling a static utility method that returns the Properties. This utility is used elsewhere in other custom apps in conjunction with OCDB (on the same server). It works there, so the utility is functioning correctly.
    Is there something going on that I'm missing? Like somehow the event handler is acually runn as somebody else?
    Here is the node log.
    2007/07/17 12:52:16 [oracle.ifs] [37] 434364 system FINE: Error /opt/csc/sfi/configuration/sfi.properties (Permission
    denied) Additional INFO: java.io.FileNotFoundException: /opt/csc/sfi/configuration/sfi.properties (Permission denied)
    Thanks in advance for the help.
    Winston

    Matt,
    Sorry to have wasted your time. It was a server reboot issue. The ocdb server hasn't been restarted since early July. We added the users and groups late last week. Although we tested on line, the server wasn't quite up to speed with the new changes.
    We bounced the server and all is well.
    Thanks
    Winston

Maybe you are looking for