Trying to use set_value in onChange event handler

Is it acceptable to use p_session.set_value in the onChange event handler?
I am trying to do a couple of things in this event handler, I am trying to validate a code and if the code is invalid I wish to
show an alert. If the code is valid I then wish to fill another field with a value from the database. Both fields I am working
with in the event handler are table columns. I have not been able to track down a specific error message, however, when
I view source the code for this is blinking. Here is what I am trying, in the onChange event handler.
declare
l_acct varchar2(21);
l_codeid number;
begin
l_acct := p_session.get_value
(p_block_name => 'DETAIL_BLOCK',
p_attribute_name => 'A_CONCATENATED_ACCT',
p_index => 1);
if l_acct is not null then
select code_combination_id
into l_codeid
from webapp1.an_code_combinations_v
where concatenated_acct = l_acct;
if sql%found then
p_session.set_value
(p_block_name => 'DETAIL_BLOCK',
p_attribute_name => 'A_CODE_COMBINATION_ID',
p_index => 1,
p_value => l_codeid);
else
--- how can I display an alert?????
end if;
end if;
end;
Any suggestions on how to show an alert, and how to display values into fields would be very helpful.

I think you are trying to use PL/SQL in the JAVASCRIPT onChange event handler. What you need to do is use JAVASCRIPT.
Put the following function on the (... before displaying the page) option on the Additional PL/SQL page.
Javascript function that loop through all fields on a form.
Set value Example:
htp.p('<script language = "JavaScript1.3">
function setCommValue(form,target,value)
var itemname;
for(var i = 0; i < form.length; i++)
itemname = form.elements.name.split(".");
if (itemname[2] == target)
form.elements[i].value = value;
</script>');
You can call the above code from a Javascript Event Handler for a Form item. Example: (an item's OnChange Event)
setCommValue(this.form,'SITE_ID',this.value);
Good Luck and let us know if you experience in Lessons Learned.
Thanks,
Linda Gowen

Similar Messages

  • Trying to Email Photo Using Iphoto 09: Apple Event Handler Failed, WHY?

    Trying to Email Photo Using Iphoto 09: Apple Event Handler Failed, WHY?
    This keeps happening. Please help me solve it

    This one comes up from time to time and it’s caused by a glitch in the AppleScript underpinnings that work in the background. Frankly, I’ve seen no solution for it and suspect that it would require a re-install of the System Software.
    Alternaive:
    Instead of making the email in iPhoto, add the photos to the email in Mail. Use the Photo Browser in the New Message Window and you have full access to the Library.
    Uploaded with plasq's Skitch!
    You can even resize the pics in the New Message Window as you do in iPhoto.
    Uploaded with plasq's Skitch!
    Regards
    TD

  • Using page attribute in event handler method of controller

    Hi all,
      I have created a page attribute GT_TABLE. I need to use this table in one of the event handler methods of the controller of the same page. I tried to use the GET_ATTRIBUTE method but it always returns an empty table.
      Can someone please guide me in this respect.
      Thanking you in advance,
    Regards,
    Sumit.

    Hi Sumit,
    The page attribute you mention (GT_TABLE) it's an internal table, isn't it? So far I know, the value of internal table will gone when BSP finish to load in server. If you want to keep the data in internal table, you need to load the internal table into Session (in one of page event in BSP).
    Regards
    David

  • I'm trying to use DAQmx for simple event counting using PFI8

    Hi,
    I am presently using Traditional DAQ (Legacy) drivers in my software, however I'm in the process of switching over to DAQmx drivers.  Our systems use an E Series DAQ card: PCI-MIO-16XE-10.
    I use PFI8 along with Counter 0 to do simple event counting.  The signal is connected to PFI8 and as it changes, my counter output either increase or decreases in value.  The attached vi shows how I've done it in the past using the Legacy drivers (top portion of the vi) and how I'm attempting to do it using the DAQmx drivers.  I've combined both versions on the single vi just for illustration purposes - when I do my testing they are on separate vi's.
    I'd appreciate it if anyone could help me to figure out why my DAQmx version isn't working properly.  Thank you very much!
    Steve
    Attachments:
    PFI8_DAQ_Comparison.vi ‏36 KB

    Hey Steve,
    The DAQmx driver installs several examples into LabVIEW that
    demonstrate how to implement various event counting applications.  I
    recommend you look over these and see if any of them accomplish what
    you're trying to do.  They're usually very simple to understand and
    well documented, but I'd be happy to help you out with any of them if
    you had a particular question. 
    You can find them in the Example Finder (Help >> Find Examples)
    in LabVIEW.  Drill down to the following location in the directories:
    Hardware Input and Output >> DAQmx >> Counter Measurements >> Count Digital Events
    You'll see a number of examples, but I recommend starting with 'Count Digital Events.vi'
    Since PFI8 corresponds to CTR0 SRC, make sure you set it to use counter 0.  This should work correctly.
    Elijah Kerry
    Senior Product Manager, LabVIEW
    Follow my Software Engineering for LabVIEW Blog

  • Et_FORM_DATA_LOAD event handling

    Hi all!
    I'm trying to handle this event in my sap b1 add-on, but i don't know why the event never fires. I paste here the code i've written to handle the event. Thanks to anyone that would like to help me.Is there some sample in sdk sample code too?
    Private Sub My_ItemEvent(ByVal FormUID As String, ByRef pVal As SAPbouiCOM.ItemEvent, ByRef BubbleEvent As Boolean) Handles SBO_Application.ItemEvent
            ' Testa se stiamo aprendo un ordine di produzione.
            If pVal.FormTypeEx = "65211" Then
                Select Case pVal.EventType
                    Case SAPbouiCOM.BoEventTypes.et_FORM_LOAD
                        'If pVal.EventType = SAPbouiCOM.BoEventTypes.et_FORM_LOAD Then
                        If pVal.Before_Action = False Then
                            oMyClass.Add_ButtonToForm()
                        End If
                    Case SAPbouiCOM.BoEventTypes.et_FORM_DATA_LOAD                   
                        If pVal.Before_Action = False Then
                            oMyClass.Enable_Buttons()
                        End If
                End Select
            End If
    Thanks in advance to anyone that would help me.

    Hi Nicola,
    the et_FORM_DATA_LOAD enum constant is valid only for FormDataEvent (2005A SP1), while you are trying to use it in ItemEvent event handler...
    You should use the FormDataEvent handler instead.
    Here's an example of working code (C#):
    protected void SBO_Application_FormDataEvent(ref SAPbouiCOM.BusinessObjectInfo BusinessObjectInfo, out bool BubbleEvent)
                BubbleEvent = true;
                if (BusinessObjectInfo.EventType == SAPbouiCOM.BoEventTypes.et_FORM_DATA_ADD && BusinessObjectInfo.ActionSuccess && BusinessObjectInfo.Type.Equals("15"))
                    SAPbobsCOM.Documents d = (SAPbobsCOM.Documents) B1Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oDeliveryNotes);
                    string k = BusinessObjectInfo.ObjectKey;
                    if (d.Browser.GetByKeys(k))
                        // Fa qualcosa con il documento...
    As Jurgen states, if you filter events in your add-on you should add the proper events...
    Hope this helps

  • How to show a message in a form 'PL/SQL Button Event Handler'

    We need validate the sal of an employee, and if it is bigger the value musts
    not be inserted.
    We trying a code like the one shown in the note 134312.1 'HOW TO PASS A
    PARAMETER FROM A PORTAL FORM TO A STORED PROCEDURE' and it works in the insert event of the insert button (using 'PL/SQL Button Event Handler') and it works, but we need to show a message that says the data wasn't inserted. How can we do this?
    The code we used is:
    declare
    v_deptno scott.emp.deptno%type;
    v_empno scott.emp.empno%type;
    v_sal scott.emp.sal%type;
    mySal scott.emp.sal%type;
    v_string varchar2(256);
    blk varchar2(10):='DEFAULT';
    begin
    select sal into mySal from scott.emp where empno=7369;
    v_deptno:=p_session.get_value_as_number(p_block_name=>blk,
    p_attribute_name=>'A_DEPTNO');
    v_empno:=p_session.get_value_as_number(p_block_name=>blk,
    p_attribute_name=>'A_EMPNO');
    v_sal:=p_session.get_value_as_number(p_block_name=>blk,
    p_attribute_name=>'A_SAL');
    v_string:='You just inserted empno: '||to_char(v_empno) ||'to deptno ->
    '||to_char(v_deptno);
    if mySal < v_sal then
    doInsert;
    else
    -- We want to display a message here, when mySal > v_sal
    end if;
    end;
    ----------------------------------

    I did something similar but wasn't using a stored procedure. Couldn't you set a flag variable once you know you're not doing the insert and in the "before displaying the form" section put an IF to check if your flag was set, and if so do an HTP.Print('You are overpaid buddy!');
    Then just reset your flag.

  • Passing data to event handler function

    I am trying to pass value to the event handler function but I
    am getting the following error. Can someone please tell me what I
    am doing wrong?
    1067: Implicit coercion of a value of type void to an
    unrelated type function
    here is the code
    private function myClickListener(myid:int):void{
    Alert.show("The button was clicked");
    public function handleStringResult(event:ResultEvent):void{
    catInfo = event.result as ArrayCollection;
    for each(var o:Object in catInfo){
    var b:Button = new Button();
    b.label = o.FILLCOLOR;
    b.id=o.CATID;
    b.setStyle("fillColors",['#'+o.FILLCOLOR,'#'+o.FILLCOLOR]);
    b.setStyle("color","#FFFFFF");
    b.setStyle("fontFamily","Arial");
    b.setStyle("fontSize",8);
    b.setStyle("textRollOverColor", "red");
    b.addEventListener(MouseEvent.CLICK,
    myClickListener(o.CATID));
    myvbox.addChild(b);
    ]]>

    "Merlyn MM" <[email protected]> wrote in
    message
    news:[email protected]...
    > Sure, Here is the code. I am very new to flex and if my
    code doesn't make
    > sense
    > then please let me know the correct way to do this. I
    really appreciate
    > you
    > taking time!
    >
    > <?xml version="1.0" encoding="utf-8"?>
    > <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    > layout="absolute"
    > backgroundColor="#FFFFFF"
    > initialize="myService.getcategories.send()">
    > <mx:WebService id="myService"
    > useProxy="false"
    > wsdl="
    http://devsite/rc/category.cfc?wsdl"
    > showBusyCursor="true">
    > <mx:operation name="getcategories"
    > result="handleStringResult(event)"
    > fault="Alert.show(event.fault.message)"/>
    > <mx:operation name="getsubcounties"
    result="handleStringResult(event)"
    > fault="Alert.show(event.fault.message)"/>
    > <mx:request>CATID</mx:request> //need to
    pass category ID here
    > </mx:operation>
    > </mx:WebService>
    >
    > <mx:Script>
    > <![CDATA[
    > import mx.collections.ArrayCollection;
    > import mx.rpc.events.ResultEvent;
    > import mx.rpc.events.FaultEvent;
    > import mx.controls.Alert;
    > import mx.controls.Button;
    >
    > [Bindable]
    > private var catInfo:ArrayCollection;
    >
    > private function myClickListener(myId:String):void{
    >
    > myService.getcounties.send() // I need to send catid
    here to the
    > webservice
    > }
    >
    >
    > public function
    handleStringResult(event:ResultEvent):void{
    > catInfo = event.result as ArrayCollection;
    > for each(var o:Object in catInfo){
    > var b:Button = new Button();
    > b.label = o.FILLCOLOR;
    > b.id='btn'+o.CATID;
    >
    >
    b.setStyle("fillColors",['#'+o.FILLCOLOR,'#'+o.FILLCOLOR]);
    > b.setStyle("color","#FFFFFF");
    > b.setStyle("fontFamily","Arial");
    > b.setStyle("fontSize",8);
    > b.setStyle("textRollOverColor", "red");
    > b.addEventListener("click", myClickListener);
    > myvbox.addChild(b);
    > }
    > }
    > ]]>
    > </mx:Script>
    I'd change it to this:
    private function myClickListener(e:Event):void{
    //I don't see where you're using the ID, but to get it,
    //use this code:
    var myID = e.currentTarget.data;
    myService.getcounties.send() // I need to send catid here to
    the
    webservice
    public function handleStringResult(event:ResultEvent):void{
    catInfo = event.result as ArrayCollection;
    for each(var o:Object in catInfo){
    var b:Button = new Button();
    b.label = o.FILLCOLOR;
    //note that you couldn't have used your ID
    //as a "handle" to anything, so I replaced
    //that logic with something you _could_ use
    b.data=o.CATID;
    b.setStyle("fillColors",['#'+o.FILLCOLOR,'#'+o.FILLCOLOR]);
    b.setStyle("color","#FFFFFF");
    b.setStyle("fontFamily","Arial");
    b.setStyle("fontSize",8);
    b.setStyle("textRollOverColor", "red");
    b.addEventListener("click", myClickListener);
    myvbox.addChild(b);
    You could also use a Repeater and set this up in MXML.
    HTH;
    Amy

  • Issues with Post Process Event Handler in oim11g

    Hi I am trying to trigger a post process event handler to set middle name but couldn't succeed.
    can you please point out the mistakes if there are any?
    This is the Java code.
    package oim.eventhandler;
    import java.io.Serializable;
    import java.util.HashMap;
    import oim.util.FROLogger;
    import oracle.iam.identity.usermgmt.vo.User;
    import oracle.iam.platform.context.ContextAware;
    import oracle.iam.platform.kernel.spi.PostProcessHandler;
    import oracle.iam.platform.kernel.vo.AbstractGenericOrchestration;
    import oracle.iam.platform.kernel.vo.BulkEventResult;
    import oracle.iam.platform.kernel.vo.BulkOrchestration;
    import oracle.iam.platform.kernel.vo.EventResult;
    import oracle.iam.platform.kernel.vo.Orchestration;
    public class setmiddlename implements PostProcessHandler {
         public void initialize(HashMap<String, String> arg0) {
              // TODO Auto-generated method stub
         public boolean cancel(long arg0, long arg1,
                   AbstractGenericOrchestration arg2) {
              // TODO Auto-generated method stub
              return false;
         public void compensate(long arg0, long arg1,
                   AbstractGenericOrchestration arg2) {
              // TODO Auto-generated method stub
         * public EventResult execute(long arg0, long arg1, Orchestration arg2) { //
         * TODO Auto-generated method stub return null; }
         public BulkEventResult execute(long arg0, long arg1, BulkOrchestration arg2) {
              // TODO Auto-generated method stub
              return null;
         public EventResult execute(long processId, long eventId,
                   Orchestration orchestration) {
              HashMap<String, Serializable> parameters = orchestration.getParameters();
              // If the middle name is empty set the first letter of the first name as the middle initial
              String middleName = getParamaterValue(parameters, "Middle Name");
              if (middleName.trim().length()>0) {
              String firstName = getParamaterValue(parameters, "First Name");
              middleName = firstName.substring(0,1);
              orchestration.addParameter("Middle Name", middleName);
              return new EventResult();
         private String getParamaterValue(HashMap<String, Serializable> parameters, String key) {
              String value = (parameters.get(key) instanceof ContextAware)
              ? (String) ((ContextAware) parameters.get(key)).getObjectValue()
              : (String) parameters.get(key);
              return value;
    ################ PostProcessEventHandlers.XML#############
    <eventhandlers xmlns="http://www.oracle.com/schema/oim/platform/kernel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oracle.com/schema/oim/platform/kernel orchestration-handlers.xsd">
    <!-- Custom validation event handlers -->
    <!-- Custom preprocess event handlers -->
    <action-handler
    class="oim.eventhandler.setmiddlename"
    entity-type="User"
    operation="CREATE"
    name="setmiddlename"
    stage="postprocess"
    order="1000"
    sync="TRUE"/>
    </eventhandlers>
    ################ plugin.xml##############
    <?xml version="1.0" encoding="UTF-8"?>
    <oimplugins>
    <plugins pluginpoint="oracle.iam.platform.kernel.spi.EventHandler">
    <plugin pluginclass="oim.eventhandler.setmiddlename" version="1.0" name="setmiddlename"/>
    </plugins>
    </oimplugins>
    ################ weblogic.properties##############
    wls_servername=oim_server1
    application_name=OIMMetadata
    metadata_from_loc=/data1/oim_install/Oracle/Middleware/Oracle_IDM1/server/temp/import/metadata/custom/PostProcess
    metadata_files=/metadata/custom/PostProcess/PostProcessEventHandlers.xml
    application_version=11.1.1.3.0
    And the PostProcessEventHandlers.zip contains lib\PostProcess.jar
    both PostProcessEventHandlers.zip and PostProcessEventHandlers.xml are placed in the "metadata_from_loc"
    The registration was successful and I could see the entries in the PLUGINS table
    ID: oim.eventhandler.setmiddlename
    TYPE:     oracle.iam.platform.kernel.spi.EventHandler
    VERSION:     1.0
    NAME:     setmiddlename
    ZIPID:     23
    and PLUGIN_METADATA does not contain any values
    PLUGIN_ZIP contains ZIPID as 23 and ZIP as (BLOB)
    Did I miss anything?
    what is the mistake that I am doing?
    Edited by: 883725 on Sep 9, 2011 2:30 AM
    Edited by: 883725 on Sep 9, 2011 2:31 AM

    I am getting this error when running weblogicDeleteMetadata.sh.
    I have set the OIM Home and Weblogic home. Though Import and export works absolutely fine.
    Any other way where I can connect directly to DB and delete the contents?
    +Please enter your username [weblogic] :weblogic+
    +Please enter your password [welcome1] :+
    +Please enter your server URL [t3://localhost:7001] :t3://localhost:10070+
    Connecting to t3://localhost:10070 with userid weblogic ...
    Successfully connected to Admin Server 'AdminServer' that belongs to domain 'IDM_domain'.
    Warning: An insecure protocol was used to connect to the
    server. To ensure on-the-wire security, the SSL port or
    Admin port should be used instead.
    Location changed to domainRuntime tree. This is a read-only tree with DomainMBean as the root.
    For more help, use help(domainRuntime)
    Problem invoking WLST - Traceback (innermost last):
    File "/data1/oim_install/Oracle/Middleware/Oracle_IDM1/server/bin/weblogicDeleteMetadata.py", line 21, in ?
    File "/data1/oim_install/Oracle/Middleware/oracle_common/common/wlst/mdsWLSTCommands.py", line 109, in deleteMetadata
    File "/data1/oim_install/Oracle/Middleware/oracle_common/common/wlst/mdsWLSTCommands.py", line 574, in executeAppRuntimeMBeanOperation
    File "/data1/oim_install/Oracle/Middleware/oracle_common/common/wlst/mdsWLSTCommands.py", line 713, in saveStackAndRaiseException
    WLSTException: MDS-00001: exception in Metadata Services layerMDS-91009: Operation "deleteMetadata" failure. Use dumpStack() to view the full stacktrace.

  • Difference in event handling between Java and Java API

    could anyone list the differences between Java and java-API in event handling??
    thanks,
    cheers,
    Hiru

    the event handling mechanisms in java language
    features and API (java Application Programming
    Features)features .no library can work without a
    language and no language has event handling built in.
    I am trying to compare and contrast the event
    handling mechanisms in the language and library
    combinations such as java/ java API.
    all contributions are welcome!
    thanks
    cheersSorry, I'm still not getting it. I know what Java is, and I know what I think of when I hear API. (Application Programming Interface.) The API is the aggregation of all the classes and methods you can call in Java. If we agree on that, then the event handling mechanisms in Java and its API are one and the same.
    So what do you want to know?
    %

  • Call event handler programatically

    Hi, I have a function that handles a change event from a
    combo box. The problem is that, I also want to call the function
    from within the program, but the function is waiting for a change
    event. Is it possible to call an event handler
    programatically?

    if you're not using the event that is passed to the event
    handler, then you can initialise the event to null, which means
    that Flash won't worry if no event is passed to the event handler,
    and you could either call this as a function or use it as an event
    handler eg:
    function comboChange(event:Event=null):void
    if you were using the event handler(which is probably the
    best idea to target the combo from event.currentTarget rather than
    directly in case you want to extend this handler in future), then
    it might be nicer to do this sort of thing:

  • Repetitive call of event handler method

    hi,
           i ve some 8 screens with alv grid controls on each...i'm using
    same subroutine for event handling for all the controls...the problem
    is whenever i navigate from 1 to the other and return back to the same,
    after data change, the event handler method is getting called as many times
    i ve navigated....for toolbar actions i used befor user command event and
    overcame but for data changed i got struck... Plz tel me the reason and how can we avoid.....
    Thanks
    Swaminathan.

    Hello Swami
    The following sample report shows how to handle the same event for different control instances. The crucial point is to check for the sending control.
    *       CLASS lcl_eventhandler DEFINITION
    CLASS lcl_eventhandler DEFINITION.
      PUBLIC SECTION.
        CLASS-METHODS:
          handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
            IMPORTING
              e_row_id
              e_column_id
              es_row_no
              sender.       " sending control !!!
    ENDCLASS.                    "lcl_eventhandler DEFINITION
    *       CLASS lcl_eventhandler IMPLEMENTATION
    CLASS lcl_eventhandler IMPLEMENTATION.
      METHOD handle_hotspot_click.
    *   define local data
        DATA:
          ls_knb1     TYPE knb1,
          ls_col_id   TYPE lvc_s_col.
        CASE sender.  " check for the sending control (this is known!!!)
          WHEN go_grid1.
            READ TABLE gt_customer1 INTO ls_knb1 INDEX e_row_id-index.
            MESSAGE 'Do event handling for 1st ALV grid!' TYPE 'I'.
          WHEN go_grid2.
            READ TABLE gt_customer2 INTO ls_knb1 INDEX e_row_id-index.
            MESSAGE 'Do event handling for 2nd ALV grid!' TYPE 'I'.
          WHEN OTHERS.
            RETURN.
        ENDCASE.
      ENDMETHOD.                    "handle_hotspot_click
    ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION
    The sample report contains two screens showing two parts of the selected data (just for demonstration). Please do note that it does not matter at all whether the ALV lists are on the same screen or on different screens or whether they are displayed in subscreens of the same dynpro.
    *& Report  ZUS_SDN_ALVGRID_EVENTS_4
    * Both screens have the same flow logic and do not contain any elements:
    *PROCESS BEFORE OUTPUT.
    *  MODULE STATUS_0100.
    *PROCESS AFTER INPUT.
    *  MODULE USER_COMMAND_0100.
    REPORT  ZUS_SDN_ALVGRID_EVENTS_4.
    DATA:
      gd_okcode        TYPE ui_func,
      gt_fcat          TYPE lvc_t_fcat,
      go_docking1      TYPE REF TO cl_gui_docking_container,
      go_docking2      TYPE REF TO cl_gui_docking_container,
      go_grid1         TYPE REF TO cl_gui_alv_grid,
      go_grid2         TYPE REF TO cl_gui_alv_grid.
    DATA:
      gt_customer1     TYPE STANDARD TABLE OF knb1,
      gt_customer2     TYPE STANDARD TABLE OF knb1.
    PARAMETERS:
      p_bukrs      TYPE bukrs  DEFAULT '2000'  OBLIGATORY.
    *       CLASS lcl_eventhandler DEFINITION
    CLASS lcl_eventhandler DEFINITION.
      PUBLIC SECTION.
        CLASS-METHODS:
          handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
            IMPORTING
              e_row_id
              e_column_id
              es_row_no
              sender.
    ENDCLASS.                    "lcl_eventhandler DEFINITION
    *       CLASS lcl_eventhandler IMPLEMENTATION
    CLASS lcl_eventhandler IMPLEMENTATION.
      METHOD handle_hotspot_click.
    *   define local data
        DATA:
          ls_knb1     TYPE knb1,
          ls_col_id   TYPE lvc_s_col.
        CASE sender.
          WHEN go_grid1.
            READ TABLE gt_customer1 INTO ls_knb1 INDEX e_row_id-index.
            MESSAGE 'Do event handling for 1st ALV grid!' TYPE 'I'.
          WHEN go_grid2.
            READ TABLE gt_customer2 INTO ls_knb1 INDEX e_row_id-index.
            MESSAGE 'Do event handling for 2nd ALV grid!' TYPE 'I'.
          WHEN OTHERS.
            RETURN.
        ENDCASE.
        CHECK ( ls_knb1-kunnr IS NOT INITIAL ).
        CASE e_column_id-fieldname.
          WHEN 'KUNNR'.
            SET PARAMETER ID 'KUN' FIELD ls_knb1-kunnr.
            SET PARAMETER ID 'BUK' FIELD ls_knb1-bukrs.
            CALL TRANSACTION 'XD03' AND SKIP FIRST SCREEN.
          WHEN 'ERNAM'.
    *        SET PARAMETER ID 'USR' FIELD ls_knb1-ernam.
    *        NOTE: no parameter id available, yet simply show the priciple
            CALL TRANSACTION 'SU01' AND SKIP FIRST SCREEN.
          WHEN OTHERS.
    *       do nothing
        ENDCASE.
    *   Set active cell to field BUKRS otherwise the focus is still on
    *   field KUNNR which will always raise event HOTSPOT_CLICK
        ls_col_id-fieldname = 'BUKRS'.
        CALL METHOD go_grid1->set_current_cell_via_id
          EXPORTING
            is_row_id    = e_row_id
            is_column_id = ls_col_id.
      ENDMETHOD.                    "handle_hotspot_click
    ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION
    START-OF-SELECTION.
      SELECT * FROM  knb1 INTO TABLE gt_customer1
             WHERE  bukrs  = p_bukrs
             AND    kunnr  <= '0000300000'.
      SELECT * FROM  knb1 INTO TABLE gt_customer2
             WHERE  bukrs  = p_bukrs
             AND    kunnr  > '0000300000'.
    * Create docking container
      CREATE OBJECT go_docking1
        EXPORTING
          parent                      = cl_gui_container=>screen0
          ratio                       = 90
        EXCEPTIONS
          OTHERS                      = 6.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CREATE OBJECT go_docking2
        EXPORTING
          parent                      = cl_gui_container=>screen0
          ratio                       = 90
        EXCEPTIONS
          OTHERS                      = 6.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * Create ALV grid
      CREATE OBJECT go_grid1
        EXPORTING
          i_parent          = go_docking1
        EXCEPTIONS
          OTHERS            = 5.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CREATE OBJECT go_grid2
        EXPORTING
          i_parent          = go_docking2
        EXCEPTIONS
          OTHERS            = 5.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * Set event handler
      SET HANDLER:
        lcl_eventhandler=>handle_hotspot_click FOR ALL INSTANCES.
    * Build fieldcatalog and set hotspot for field KUNNR
      PERFORM build_fieldcatalog_knb1.
    * Display data
      CALL METHOD go_grid1->set_table_for_first_display
        CHANGING
          it_outtab       = gt_customer1
          it_fieldcatalog = gt_fcat
        EXCEPTIONS
          OTHERS          = 4.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CALL METHOD go_grid2->set_table_for_first_display
        CHANGING
          it_outtab       = gt_customer2
          it_fieldcatalog = gt_fcat
        EXCEPTIONS
          OTHERS          = 4.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * Link the docking container to the target dynpro
      CALL METHOD go_docking1->link
        EXPORTING
          repid                       = syst-repid
          dynnr                       = '0100'
    *      CONTAINER                   =
        EXCEPTIONS
          OTHERS                      = 4.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CALL METHOD go_docking2->link
        EXPORTING
          repid                       = syst-repid
          dynnr                       = '0200'
    *      CONTAINER                   =
        EXCEPTIONS
          OTHERS                      = 4.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * ok-code field = GD_OKCODE
      CALL SCREEN '0100'.
    END-OF-SELECTION.
    *&      Module  STATUS_0100  OUTPUT
    *       text
    MODULE status_0100 OUTPUT.
      SET PF-STATUS 'STATUS_0100'.
    *  SET TITLEBAR 'xxx'.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      Module  USER_COMMAND_0100  INPUT
    *       text
    MODULE user_command_0100 INPUT.
      CASE gd_okcode.
        WHEN 'BACK' OR
             'END'  OR
             'CANC'.
          CASE syst-dynnr.
            WHEN '0100'.
              SET SCREEN 0. LEAVE SCREEN.
            WHEN '0200'.
              SET SCREEN 100. LEAVE SCREEN.
          ENDCASE.
        WHEN 'NEXT'.
          SET SCREEN 200. LEAVE SCREEN.
        WHEN OTHERS.
      ENDCASE.
      CLEAR: gd_okcode.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    *&      Form  BUILD_FIELDCATALOG_KNB1
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM build_fieldcatalog_knb1 .
    * define local data
      DATA:
        ls_fcat        TYPE lvc_s_fcat.
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
    *     I_BUFFER_ACTIVE              =
          i_structure_name             = 'KNB1'
    *     I_CLIENT_NEVER_DISPLAY       = 'X'
    *     I_BYPASSING_BUFFER           =
    *     I_INTERNAL_TABNAME           =
        CHANGING
          ct_fieldcat                  = gt_fcat
        EXCEPTIONS
          inconsistent_interface       = 1
          program_error                = 2
          OTHERS                       = 3.
      IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      LOOP AT gt_fcat INTO ls_fcat
              WHERE ( fieldname = 'KUNNR'  OR
                      fieldname = 'ERNAM' ).
        ls_fcat-hotspot = abap_true.
        MODIFY gt_fcat FROM ls_fcat.
      ENDLOOP.
    ENDFORM.                    " BUILD_FIELDCATALOG_KNB1
    Regards
      Uwe

  • Process termination in event handler

    Is there a way to terminate the bussiness process inside an event handler? I would like to have a receive element Cancel which could be executed anytime during the process and which would terminate it. But when I place the Exit element to the event handler, it says that the Sun BPEL engine does not support this.
    Is there any other way to do it? Maybe it' possible to use the fault handler for this? Is this feature planned for future releases of BPEL SE?
    Thank you.

    thanks for filing mark. Can you also send the URI of the bug? so i know which bug tracker you filed it in.
    We deferred this feature for this release, We hope to get this in in the next release.
    We do have support for exit construct in BPEL, but it is beta. What is not well supported is that when it appears in concurrent paths of execution. Hence the validation from the GUI.
    What i can suggest is that you can disable the validations of the NB project and deploy it. You can disable the validation by going to the properties of the bpel project and "check/uncheck" the flag that says something like build with errors. hopefully there are no other validation issues. Bear in mind that this would be a beta feature, may or maynot have other issues when you use it in the event handler.

  • Need Help with Event Handler Code - Doesnt come up in Event Handler Manager

    Hello there,
    Below is the code snippet that I am using to create a event handler:
    package com.oracle.events;
    import com.thortech.util.logging.Logger;
    import com.thortech.xl.client.events.tcBaseEvent;
    import com.thortech.xl.dataobj.tcDataObj;
    import com.thortech.xl.util.logging.LoggerModules;
    public class tcCheckOvrallProvStatusUDFs extends tcBaseEvent
         private static Logger logger = Logger.getLogger(LoggerModules.XL_JAVA_CLIENT);
         public tcCheckOvrallProvStatusUDFs()
              setEventName("Generating tcCheckOvrallProvStatusUDFs");
    * @Override
    * @throws Exception
         protected void implementation() throws Exception {
              tcDataObj data = getDataObject();
              String OIDProvStatus = data.getString("usr_udf_oidusrprovstatus");
    String EBSProvStatus = data.getString("usr_udf_ebstcausrprovstatus");
              if (OIDProvStatus.equals("Provisioned") && EBSProvStatus.equals("Provisioned")) {
                   setOverAllProvStatus(data);
         * @param data
         * @throws Exception
         private void setOverAllProvStatus(tcDataObj data) throws Exception
              data.setString("usr_udf_ovrrscprovstatus", "Provisioned");
    Its a simple code that I am using to populate value of a UDF field depending on the value of other 2 fields. I want to trigger it on Post-Insert and Post-Update events.
    But even if I restart the OIM server after placing the successfully compiled file (0 errors, 0 warnings) into the EventHandlers folder of OIM_HOME; it doesnt show up in the Design Console -> Development Tools -> Business Rule Definition -> Event Handler Manager. :( In order to create a event handler i need that file to show up in the lookup of event handlers/adapters. This JAR file doesnt come up over there.
    Is there anything missing within the code ?
    What else needs to be specified?
    Please provide some guidance.
    Thanks,
    - jhb.

    Now I have placed this JAR file in JAVATasks folder - made an entity adapter - in the event handler manager - i gave the class name/event handler name as 'setUDFValue' and the package as 'project5'. But now im getting it 'DOBJ.EVT_NOT_FOUND - Event Handler not found' error.
    package project5;
    import java.util.Hashtable;
    import Thor.API.Exceptions.tcAPIException;
    import java.util.Hashtable;
    import java.util.HashMap;
    import com.thortech.xl.util.config.ConfigurationClient;
    import Thor.API.tcResultSet;
    import Thor.API.tcUtilityFactory;
    import Thor.API.Operations.tcUserOperationsIntf;
    import java.lang.System;
    import Thor.API.Exceptions.tcUserNotFoundException;
    import java.util.Properties;
    import javax.mail.Message;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    public class setUDFValue {
    private static final String SMTP_HOST_NAME="mail.smtp.host";
    public setUDFValue() {
    // public static void main(String[] args) {
    // setUDFValue.setvalue("jatinbhatt");
    // setUDFValue.sendemail("[email protected]","[email protected]");
    public static void setvalue(String UserID) {   
    try
    System.setProperty("XL.HomeDir", "F:/oim/oimserver/xellerate");
    System.setProperty("log4j.configuration",
    "F:/oim/oimserver/xellerate/config/log.properties");
    System.setProperty("java.security.policy",
    "F:/oim/oimserver/xellerate/config/xl.policy");
    System.setProperty("java.security.auth.login.config",
    "F:/oim/oimserver/xellerate/config/auth.conf");
    System.out.println("Startup...");
    System.out.println("Getting configuration...");
    ConfigurationClient.ComplexSetting config = ConfigurationClient.getComplexSettingByPath("Discovery.CoreServer");
    System.out.println("Login...");
    Hashtable env = config.getAllSettings();
    tcUtilityFactory ioUtilityFactory = new tcUtilityFactory(env,"xelsysadm","oimadmin1");
    System.out.println("Getting utility interfaces...");
    tcUserOperationsIntf moUserUtility = (tcUserOperationsIntf)ioUtilityFactory.getUtility("Thor.API.Operations.tcUserOperationsIntf");
    HashMap userMap = new HashMap();
    String str1 = null;
    String str2 = null;
    userMap.put("Users.User ID",UserID);
    userMap.put("Users.Status", "Active");
    tcResultSet userResultSet = null;
    try {
    userResultSet = moUserUtility.findAllUsers(userMap);
    } catch (tcAPIException e2) {
    // TODO Auto-generated catch block
    e2.printStackTrace();
    for (int i=0; i<userResultSet.getRowCount(); i++)
    userResultSet.goToRow(i);
    str1 = userResultSet.getStringValue("USR_UDF_OIDUSERPROV");
    str2 = userResultSet.getStringValue("USR_UDF_EBSUSERPROV");
    // System.out.println(userResultSet.getStringValue("USR_UDF_OIDUSERPROV"));
    // System.out.println(userResultSet.getStringValue("USR_UDF_EBSUSERPROV"));
    if (str1.equals("Provisioned") && (str2.equals("Provisioned") || str2.equals("NA")))
    userMap.put("USR_UDF_OVRRSCPROVSTATUS","Provisioned");
    moUserUtility.updateUser(userResultSet,userMap);
    moUserUtility.close();
    }catch (Exception e){
    e.printStackTrace();
    ERROR:
    ERROR RMICallHandler-63 XELLERATE.SERVER - Class/Method: tcDataObj/ runEvent encounter some problems: project5.setUDFValue
    java.lang.ClassCastException: project5.setUDFValue
         at com.thortech.xl.dataobj.tcDataObj.runEvent(Unknown Source)
         at com.thortech.xl.dataobj.tcDataObj.eventPostUpdate(Unknown Source)
         at com.thortech.xl.dataobj.tcUSR.eventPostUpdate(Unknown Source)
         at com.thortech.xl.dataobj.tcDataObj.update(Unknown Source)
         at com.thortech.xl.dataobj.tcDataObj.save(Unknown Source)
         at com.thortech.xl.dataobj.tcTableDataObj.save(Unknown Source)
         at com.thortech.xl.ejb.beansimpl.tcUserOperationsBean.updateUserData(Unknown Source)
         at com.thortech.xl.ejb.beansimpl.tcUserOperationsBean.updateUser(Unknown Source)
         at com.thortech.xl.ejb.beans.tcUserOperationsSession.updateUser(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invoke(TxRequiredInterceptor.java:50)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.SecurityRoleInterceptor.invoke(SecurityRoleInterceptor.java:47)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
         at tcUserOperations_RemoteProxy_6ocop18.updateUser(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.evermind.server.rmi.RmiMethodCall.run(RmiMethodCall.java:53)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)
    Thanks,
    - jhb.

  • Dropdown box - which event handler to use ?

    I am having trouble with setting the readonly property (via Javascript) of the adjacent textbox to my dropdown box when the index value is a certain number.
    I tried using MouseUp, MouseDown, and even OnBlur....but the readonly does not seem to be getting set to true or false consistently.
    Could this be a timing issue ? The textbox that I am trying to control is the next tab-order control in the list of controls for this page.
    This same logic is working fine in the MouseUp event handler for check boxes. So I am just wondering if this is a bug or must my implementation change to accomodate dropdown boxes ? For instance, should I move the logic to the Enter event handler of the textbox instead ? Can a control's own eventhandler set itself to readonly when it is the active form field ?

    After tons and tons of testing time, I've come to the conclusion that dropdowns are totally buggy in 11.0.07 release of Acrobat Pro.
    Even if you set the "commit values immediately", you get the PRIOR selected item's value as the event value, not the CURRENT one.
    This occurs in a Validate event handler script. I have not been able to use any other event handlers for a dropdown except the OnBlur....and then, for my purposes, IT'S TOO LATE !!!
    This is totally worthless as I need to setFocus() and set fields to readonly based on the immediate dropdown offset or face value.

  • Swing: when trying to get the values from a JTable inside an event handler

    Hi,
    I am trying to write a graphical interface to compute the Gauss Elimination procedure for solving linear systems. The class for computing the output of a linear system already works fine on console mode, but I am fighting a little bit to make it work with Swing.
    I put two buttons (plus labels) and a JTextField . The buttons have the following role:
    One of them gets the value from the JTextField and it will be used to the system dimension. The other should compute the solution. I also added a JTable so that the user can type the values in the screen.
    So whenever the user hits the button Dimensiona the program should retrieve the values from the table cells and pass them to a 2D Array. However, the program throws a NullPointerException when I try to
    do it. I have put the code for copying this Matrix inside a method and I call it from the inner class event handler.
    I would thank you very much for the help.
    Daniel V. Gomes
    here goes the code:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import AdvanceMath.*;
    public class MathF2 extends JFrame {
    private JTextField ArrayOfFields[];
    private JTextField DimOfSis;
    private JButton Calcular;
    private JButton Ativar;
    private JLabel label1;
    private JLabel label2;
    private Container container;
    private int value;
    private JTable DataTable;
    private double[][] A;
    private double[] B;
    private boolean dimensionado = false;
    private boolean podecalc = false;
    public MathF2 (){
    super("Math Calcs");
    Container container = getContentPane();
    container.setLayout( new FlowLayout(FlowLayout.CENTER) );
    Calcular = new JButton("Resolver");
    Calcular.setEnabled(false);
    Ativar = new JButton("Dimensionar");
    label1 = new JLabel("Clique no bot�o para resolver o sistema.");
    label2 = new JLabel("Qual a ordem do sistema?");
    DimOfSis = new JTextField(4);
    DimOfSis.setText("0");
    JTable DataTable = new JTable(10,10);
    container.add(label2);
    container.add(DimOfSis);
    container.add(Ativar);
    container.add(label1);
    container.add(Calcular);
    container.add(DataTable);
    for ( int i = 0; i < 10 ; i ++ ){
    for ( int j = 0 ; j < 10 ; j++) {
    DataTable.setValueAt("0",i,j);
    myHandler handler = new myHandler();
    Calcular.addActionListener(handler);
    Ativar.addActionListener(handler);
    setSize( 500 , 500 );
    setVisible( true );
    public static void main ( String args[] ){
    MathF2 application = new MathF2();
    application.addWindowListener(
    new WindowAdapter(){
    public void windowClosing (WindowEvent event)
    System.exit( 0 );
    private class myHandler implements ActionListener {
    public void actionPerformed ( ActionEvent event ){
    if ( event.getSource()== Calcular ) {
    if ( event.getSource()== Ativar ) {
    //dimensiona a Matriz A
    if (dimensionado == false) {
    if (DimOfSis.getText()=="0") {
    value = 2;
    } else {
    value = Integer.parseInt(DimOfSis.getText());
    dimensionado = true;
    Ativar.setEnabled(false);
    System.out.println(value);
    } else {
    Ativar.setEnabled(false);
    Calcular.setEnabled(true);
    podecalc = true;
    try {
    InitValores( DataTable, value );
    } catch (Exception e) {
    System.out.println("Erro ao criar matriz" + e );
    private class myHandler2 implements ItemListener {
    public void itemStateChanged( ItemEvent event ){
    private void InitValores( JTable table, int n ) {
    A = new double[n][n];
    B = new double[n];
    javax.swing.table.TableModel model = table.getModel();
    for ( int i = 0 ; i < n ; i++ ){
    for (int j = 0 ; j < n ; j++ ){
    Object temp1 = model.getValueAt(i,j);
    String temp2 = String.valueOf(temp1);
    A[i][j] = Double.parseDouble(temp2);

    What I did is set up a :
    // This code will setup a listener for the table to handle a selection
    players.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    ListSelectionModel rowSM = players.getSelectionModel();
    rowSM.addListSelectionListener(new Delete_Player_row_Selection(this));
    //Class will take the event and call a method inside the Delete_Player object.
    class Delete_Player_row_Selection
    implements javax.swing.event.ListSelectionListener
    Delete_Player adaptee;
    Delete_Player_row_Selection (Delete_Player temp)
    adaptee = temp;
    public void valueChanged (ListSelectionEvent listSelectionEvent)
    adaptee.row_Selection(listSelectionEvent);
    in the row_Selection function
    if(ex.getValueIsAdjusting()) //To remove double selection
    return;
    ListSelectionModel lsm = (ListSelectionModel) ex.getSource();
    if(lsm.isSelectionEmpty())
    System.out.println("EMtpy");
    else
    int selected_row = lsm.getMinSelectionIndex();
    ResultSetTableModel model = (ResultSetTableModel) players.getModel();
    String name = (String) model.getValueAt(selected_row, 1);
    Integer id = (Integer) model.getValueAt(selected_row, 3);
    This is how I got info out of a table when the user selected it

Maybe you are looking for