Binding Hell

There does not appear to be much support for debugging
bindings in the SDK. All the relevant classes do not expose the
kind of data that would be needed. For example ChangeWatcher does
not answer what the various values are that define it (host,
target, property to set, property path to watch). I can also not
find some central point where I can see all bindings that are
firing to trace the data flow within the system.
My specific case that is driving my nuts is as follows:
1) I have an ArrayCollection of ObjectProxy objects that wrap
plain old objects with properties set.
2) I have an AdvancedDataGrid that displays this collection
with 2 of the properties displayed as columns.
3) I have a custom form class that is bound to the selection
in the advanced data grid and has form items that are bound to
various properties of the data object for the form which is bound
to the selection.
When a change is made to a form item in 3, it fires a
property change event which I see in my debugging event handler.
This is supposed to be bound to the form data object and as a
result should update the Advanced data grid display. Changing the
selection in the advanced data grid will update the item display
the first time after a change, and does not do so thereafter. The
form bound to the selection always shows the expected changed
value. I even have a debugging function bound to the same value as
the data provider on the grid to ensure that the data provider is
not being altered unexpectedly.
Any suggestions for how to determine what is really happening
under the covers would be appreciated. Bindings are great when they
work. But, figuring out why they are not working is still far from
obvious.

i was modifying a date (setting the hours, minutes) but the
object was still the same object when I set it back to the
property. The bindings did not fire because the value (the object)
was the same.

Similar Messages

  • [SOLVED]openbox key binding hell

    hello everyone I'm having 2 issue setting up new key bindings and I hope someone here can help me I want it to add W-f binding  to open my file manager of choice(pcmanfm) below I will list the two issue and post my rc.xml and all the out put from xev for the f key an the output of xmodmap -pm
    issue #1) when I add a key with obkey the bind I add works but all the others openbox key binds stop working here I'm at a lost after trying it a few times and getting the same result I decide to just edit the xml file here where the second issue begins
    issue #2) when edited the rc.xml to add the key bind I want it I did exactly as the wiki sead but it didn't work so I start looking around and and found out that I can pass the hex value for the key converting the keycode that I get form xev output below
    KeyRelease event, serial 41, synthetic NO, window 0x1a00001,
    root 0xac, subw 0x0, time 1106315, (109,-274), root:(897,143),
    state 0x0, keycode 41 (keysym 0x66, f), same_screen YES,
    XLookupString gives 1 bytes: (66) "f"
    XFilterEvent returns: False
    after doing that seeing that it didn't work ether I found out about the "default" bind the keyboard below is the output
    xmodmap: up to 4 keys per modifier, (keycodes in parentheses):
    shift Shift_L (0x32), Shift_R (0x3e)
    lock Caps_Lock (0x42)
    control Control_L (0x25), Control_R (0x69)
    mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
    mod2 Num_Lock (0x4d)
    mod3
    mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
    mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
    as I read in one of the forum post in the cruchbnag page the mod4 is the for the window key or super
    so I cahnge the W key on my binding for Super_L and that didn't work ether a this point i'm at a lost of what to do or how to fix it blow is the keyboard part of my rc.xml
    <keyboard>
    <chainQuitKey>C-g</chainQuitKey>
    <!-- Keybindings for desktop switching -->
    <keybind key="C-A-Left">
    <action name="GoToDesktop">
    <to>left</to>
    <wrap>no</wrap>
    </action>
    </keybind>
    <keybind key="C-A-Right">
    <action name="GoToDesktop">
    <to>right</to>
    <wrap>no</wrap>
    </action>
    </keybind>
    <keybind key="C-A-Up">
    <action name="GoToDesktop">
    <to>up</to>
    <wrap>no</wrap>
    </action>
    </keybind>
    <keybind key="C-A-Down">
    <action name="GoToDesktop">
    <to>down</to>
    <wrap>no</wrap>
    </action>
    </keybind>
    <keybind key="S-A-Left">
    <action name="SendToDesktop">
    <to>left</to>
    <wrap>no</wrap>
    </action>
    </keybind>
    <keybind key="S-A-Right">
    <action name="SendToDesktop">
    <to>right</to>
    <wrap>no</wrap>
    </action>
    </keybind>
    <keybind key="S-A-Up">
    <action name="SendToDesktop">
    <to>up</to>
    <wrap>no</wrap>
    </action>
    </keybind>
    <keybind key="S-A-Down">
    <action name="SendToDesktop">
    <to>down</to>
    <wrap>no</wrap>
    </action>
    </keybind>
    <keybind key="W-F1">
    <action name="GoToDesktop">
    <to>1</to>
    </action>
    </keybind>
    <keybind key="W-F2">
    <action name="GoToDesktop">
    <to>2</to>
    </action>
    </keybind>
    <keybind key="W-F3">
    <action name="GoToDesktop">
    <to>3</to>
    </action>
    </keybind>
    <keybind key="W-F4">
    <action name="GoToDesktop">
    <to>4</to>
    </action>
    </keybind>
    <keybind key="W-d">
    <action name="ToggleShowDesktop"/>
    </keybind>
    <!-- Keybindings for windows -->
    <keybind key="A-F4">
    <action name="Close"/>
    </keybind>
    <keybind key="A-Escape">
    <action name="Lower"/>
    <action name="FocusToBottom"/>
    <action name="Unfocus"/>
    </keybind>
    <keybind key="A-space">
    <action name="ShowMenu">
    <menu>client-menu</menu>
    </action>
    </keybind>
    <!-- Keybindings for window switching -->
    <keybind key="A-Tab">
    <action name="NextWindow">
    <finalactions>
    <action name="Focus"/>
    <action name="Raise"/>
    <action name="Unshade"/>
    </finalactions>
    </action>
    </keybind>
    <keybind key="A-S-Tab">
    <action name="PreviousWindow">
    <finalactions>
    <action name="Focus"/>
    <action name="Raise"/>
    <action name="Unshade"/>
    </finalactions>
    </action>
    </keybind>
    <keybind key="C-A-Tab">
    <action name="NextWindow">
    <panels>yes</panels>
    <desktop>yes</desktop>
    <finalactions>
    <action name="Focus"/>
    <action name="Raise"/>
    <action name="Unshade"/>
    </finalactions>
    </action>
    </keybind>
    <!-- Keybindings for window switching with the arrow keys -->
    <keybind key="W-S-Right">
    <action name="DirectionalCycleWindows">
    <direction>right</direction>
    </action>
    </keybind>
    <keybind key="W-S-Left">
    <action name="DirectionalCycleWindows">
    <direction>left</direction>
    </action>
    </keybind>
    <keybind key="W-S-Up">
    <action name="DirectionalCycleWindows">
    <direction>up</direction>
    </action>
    </keybind>
    <keybind key="W-S-Down">
    <action name="DirectionalCycleWindows">
    <direction>down</direction>
    </action>
    </keybind>
    <!-- Keybindings for running applications -->
    <keybind key="W-e">
    <action name="Execute">
    <startupnotify>
    <enabled>true</enabled>
    <name>Konqueror</name>
    </startupnotify>
    <command>kfmclient openProfile filemanagement</command>
    </action>
    </keybind>
    <keybind key="Super_L-0x29">
    <action name="Execute">
    <commnad>pcmanfm</commnad>
    </action>
    </keybind>
    </keyboard>
    the last is the is the one I add it I use both the Super_L and the hex valu of the f key to see if will work but it doesn't also as long I add them by hand all the defaults key bind keep working the second i use obkey they stop working as mention in issue 1
    Last edited by gozes (2012-01-01 06:27:00)

    You have a misspelling, twice on the same line: commnad should be command.
    If that doesn't fix it, try using a full path:
    <!-- pcmanfm -->
    <keybind key="W-F">
    <action name="Execute">
    <command>/usr/bin/pcmanfm</command>
    </action>
    </keybind>

  • Gnomes-hell shortcut workaround

    Yesterday I installed cinnamon. Unfortinately I can't found a way to bind it with any DM except gdm. So I got a broken shortcuts with gnomes-hell. No way to switch keyboard layouts. Keyboard panel applet missing at all. When I trying to add him to panel, I getting the battery and the network applets added instead of keyboard layout. The default shortcut (Ctrl+Space) doesn't work.
    I didn't look for solution because developers knows about this issue but does nothing to fix it since 3.6 was released. I think they are going to disable keyboard at all since they can't handle it.
    But I need keyboard layout switcher so I've written a small script:
    #!/bin/bash
    LCUR=`setxkbmap -print | awk -F"+" '/xkb_symbols/ {print $2}'`
    L1="us"
    L2="<your language here>"
    if [[ $LCUR == $L1 ]]; then
    setxkbmap $L2
    /usr/bin/xset led named 'Scroll Lock'
    else
    setxkbmap $L1
    /usr/bin/xset -led named 'Scroll Lock'
    fi
    May be it would be useful for someone else. Scroll Lock Led indicates non-us layout.
    Currently I have this script binded to Ctrl+Space keys (as custom shortcut).
    But I would like to bind it to Ctrl+Shift or Alt+Shift.
    Any suggestions are welcome.

    I don’t think Cinnamon works very well unless you use it as a session. If you don’t want to use gdm, try lightdm: it’s fairly easy to set up, and supports user-switching.
    I’ve been playing around with Cinnamon all weekend and have managed to get it to integrate with my systemd-user setup, though I had to create a target so it wouldn’t start all of my Openbox applications. I’ve set a custom keyboard layout with xkb, but like you, the keyboard layout indicator doesn’t seem to display (even though it’s apparently been added to the panel). It crashes occasionally when you modify keyboard shortcuts too.

  • Bind connection limit

    Hey, im using bind9, and trying to figure out how to change connection limit, i suppose im going to do it via the bind ACL, but hell i cant find anywhere the option statement which limits max number of queries per some time, could anyone help me? thanks in advance

    > 1- How can i close open connections?
    > 2- Is it possible to close open connection automatically?
    Both of them should be handled by the application.
    > com.sap.engine.services.dbpool.exceptions.BaseSQLException: ResourceException in method ConnectionFactoryImpl.getConnection(): com.sap.engine.services.dbpool.exceptions.BaseResourceException: SQLException thrown by the physical connection: com.sap.dbtech.jdbc.exceptions.JDBCDriverException: Cannot connect to jdbc:sapdb://unwsrv/EPP [Task limit].
    you can increase MaxUserTasks.
    Markus

  • Grub-hell, looking for the right way.

    Hi
    due to a problem with my hard disk (4 partitions and over 100Gig free space -> repartitioning needed to be able to use it) I wanted to get grub loaded from another partition, being the one arch resides on. So I used grub-install and I went through hell... Error 15, error 17, ... I used knoppix to restore everything and now I'm able to boot again.
    But I kind of lost my confidence in my grub knowledge and wanted to know what the best way is to install grub. I've tried grub-install and the regular grub prompt root and setup approach but it just didn't work... It may have to do with the funky device names from the new pata driver...
    Does those names influence the interpretation of devices.map or the "root=" flag in the kernel line?

    insulae wrote:
    Ok i have mi GNU/Linux installed in /dev/hda1 so i do:
    1- boot with a liveCD
    2- in a console i run :
    mount /dev/hda1 /mnt/
    mount -o bind /dev/ /mnt/dev/
    mount -o bind /proc/ /mnt/proc/
    then i do a chroot
    chroot /mnt/ /bin/bash
    then i run grub-install
    grub-install --recheck /dev/hda
    if you have a error:
    in some case you must erase the info in you /etc/mtab or replace with the info of the "liveCD /etc/mtab" i don't remember but you can try .
    And can't you do the same when you are already in arch? I am able to boot now but I just want to install the boot loader to another partition (being sda), so last time I just ran grub-install sda and made a menu.lst based on the previous one and the info in devices.map but everything went wrong and I needed to revert to the old situation...
    It seems a little awkward to go download a live cd just to install grub, doesn't it?

  • How to bind an object to JNDI tree in iAS?

    Hi all,
    When I try to bind a string object to jndi tree, the following exception
    occurs:
    javax.naming.NamingException: Unable to get object instance from reference.
    Roo
    t exception is javax.naming.NamingException: Can't bind instance of class
    java.lang.String
    at com.netscape.server.jndi.RootContext.bindCtx(Unknown Source)
    at com.netscape.server.jndi.RootContext.rebind(Unknown Source)
    at com.netscape.server.jndi.RootContext.rebind(Unknown Source)
    at javax.naming.InitialContext.rebind(InitialContext.java:385)
    at jsp.APPS.bmx.test2._jspService(test2.java:76)
    at jsp.APPS.bmx.test2.service(test2.java:42)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
    at
    com.netscape.server.servlet.servletrunner.ServletInfo.service(Unknown
    Source)
    The code fragment is:
    Context ctx = new InitialContext();
    String str = "hell,every one!";
    ctx.rebind("abc", str);
    Can anyone give some help? Thanks in advance.
    Johnson

    To bind an object into the JNDI tree check the documentation here:
    http://e-docs.bea.com/wls/docs81/jndi/jndi.html#475702
    If this is to be used by all your applications that you deploy on the server check out the startup/shutdown class documentation here:
    http://edocs.bea.com/wls/docs81/ConsoleHelp/startup_shutdown.html
    Cheers
    IV

  • OAS4 hell on the RH

    We installed the OAS 4.0.7 (with patch 4.0.7.1) at the RH5.2
    (Kernel 2.2.3) into the same ORACLE_HOME as the Oracle 8.0.5
    RDBMS and got a hell:
    1. All scripts have the Solaris GUID (OTHERS)
    2. OAS manager starts at http://<node name>:<port>, not at
    http://<domain_name>:<port>
    3. OAS can't find the resources.ora - it find it in the wrong
    directory (see 4).
    4. OAS can't start ORB processes, the problem is very fun: it
    can't create log (it tries to create it in the
    ORACLE_BASE/admin/orb/logs directory which doesn't exist instead
    of ORACLE_BASE/admin/orb/website40/logs). The same story with
    the ORACLE_BASE/admin/orb/website40/names directory.
    5. Transaction factory (otsfacsrv) can't find library
    libyxots10.so.
    Yes, we solved all(?) this problems.
    BUT now the OAS lost it's HTTP-listeners (they work once and the
    OAS can neither check nor restart them). Listeners listen
    http:http://<node name>:<port> not http://<domain_name>:<port>;
    in the common HTTP_listeners section listeners' node is
    <domain_name> instead of <node_name>, also in the each private
    section of the HTTP-listeners the node name is correct.
    The OAS show static html pages (only one time) but we can't
    launch any JWEB application (we didn't tried other applications).
    After all, the OAS shut the Linux at the restarting.
    Did anybody have successful installation of the OAS 4.0.7 on the
    Linux?
    Regards,
    Andrew
    null

    Andrew Yevsyevyev (guest) wrote:
    : We installed the OAS 4.0.7 (with patch 4.0.7.1) at the RH5.2
    : (Kernel 2.2.3) into the same ORACLE_HOME as the Oracle 8.0.5
    : RDBMS and got a hell:
    : 1. All scripts have the Solaris GUID (OTHERS)
    : 2. OAS manager starts at http://<node name>:<port>, not at
    : http://<domain_name>:<port>
    : 3. OAS can't find the resources.ora - it find it in the wrong
    : directory (see 4).
    : 4. OAS can't start ORB processes, the problem is very fun: it
    : can't create log (it tries to create it in the
    : ORACLE_BASE/admin/orb/logs directory which doesn't exist
    instead
    : of ORACLE_BASE/admin/orb/website40/logs). The same story with
    : the ORACLE_BASE/admin/orb/website40/names directory.
    : 5. Transaction factory (otsfacsrv) can't find library
    : libyxots10.so.
    : Yes, we solved all(?) this problems.
    : BUT now the OAS lost it's HTTP-listeners (they work once and
    the
    : OAS can neither check nor restart them). Listeners listen
    : http:http://<node name>:<port> not http://<domain_name>:<port>;
    : in the common HTTP_listeners section listeners' node is
    : <domain_name> instead of <node_name>, also in the each private
    : section of the HTTP-listeners the node name is correct.
    : The OAS show static html pages (only one time) but we can't
    : launch any JWEB application (we didn't tried other
    applications).
    : After all, the OAS shut the Linux at the restarting.
    : Did anybody have successful installation of the OAS 4.0.7 on
    the
    : Linux?
    : Regards,
    : Andrew
    I wish I had read this mail yesterday, after fighting through
    exactly the same points. However, we still cannot run - the
    relevant messages are:
    Unable to start a wrb service threads. Exiting ...
    OWS-08820: Unable to start oassrv process
    `/ora/app/oracle/product/806/ows/4.0/bin/oassrv'.
    OWS-08849: Waited 60 secs. Didn't receive initialization complete
    message.
    OWS-08820: Unable to start wrksf process
    `/ora/app/oracle/product/806/ows/4.0/bin/wrksf'.
    OWS-08821: otsfacsrv process `otsfacsrv' is started up at pid
    2914.
    In the .out file we get the following:
    YDMTD-1600, ydmtdInit: exception
    IDL:omg.org/CosNaming/NamingContext/NotFound:1.0 trying to bind
    to name service
    Any ideas on these, or where to look?
    As expected the error message descriptions are not helpful...
    Rupert Eve
    null

  • Changevol - volume management (good for binding multimedia keys)

    I wrote this script to work with my laptop's multimedia keys. It requires python, pygtk, and alsa-utils. It is a non-interactive program that modifies the volume and then pops up a little gui notifier similar to programs like keytouch (but much simpler and less bloated). It was designed to work by binding multimedia keys (using programs like xbindkeys or any WM's/DE's keybinding apps) to the script and that is probably the only real convenient use.
    Here is what it looks like (pops up in the middle of the desktop on top of everything else). Don't worry about the color of the bar and such, it is programmed with gtk2, so it will inherit whatever your gtk theme looks like:
    Here is the script. To use: just dump into a text file called "changevol", chmod +x it, and put it in the PATH somewhere:
    #!/usr/bin/env python
    import pygtk
    import gtk
    import gobject
    import commands
    import sys
    import os
    import re
    import getopt
    def err(msg):
    print msg
    sys.exit(1)
    def usage():
    print '''
    Usage: changevol [options] [argument]
    Options:
    -i, --increase increase volume by `argument'
    -d, --decrease decrease volume by `argument'
    -c, --control specify the mixer control by `argument' (default Master)
    use only to modify a mixer other than Master
    -t, --toggle toggle mute on and off
    -s, --status display current volume status without modifying it
    -q, --quiet don't display the gtk progressbar, just change the volume
    -b, --backlight adjust the backlight using xbacklight
    -h, --help display this help message
    Note:
    Volume increases and decreases won't be exact due to amixer oddities.
    sys.exit(0)
    class GetVolInfo():
    def __init__(self, command):
    self.amixeroutput = commands.getoutput(command)
    if re.compile("off]$", re.M).search(self.amixeroutput, 1):
    self.realvol = "0"
    self.endlabel = "Mute"
    else:
    self.tempvolarray1 = self.amixeroutput.split("[")
    self.tempvolarray2 = self.tempvolarray1[1].split("%")
    self.realvol = self.tempvolarray2[0]
    self.endlabel = self.realvol + " %"
    self.percent = float(self.realvol)/100
    self.label = "Volume " + self.endlabel
    class ProgressBar:
    def timeout_callback(self):
    gtk.main_quit()
    return False
    def __init__(self, fraction, label):
    self.window = gtk.Window(gtk.WINDOW_POPUP)
    self.window.set_border_width(0)
    self.window.set_default_size(180, -1)
    self.window.set_position(gtk.WIN_POS_CENTER)
    timer = gobject.timeout_add(1000, self.timeout_callback)
    self.bar = gtk.ProgressBar()
    self.bar.set_fraction(fraction)
    self.bar.set_orientation(gtk.PROGRESS_LEFT_TO_RIGHT)
    self.bar.set_text(label)
    self.bar.show()
    self.window.add(self.bar)
    self.window.show()
    #Run through parameters, set variables and such
    CONTROL = "Master"
    AMIXEROPTION = "unset"
    QUIET = "NO"
    BACKLIGHT = "NO"
    if (len(sys.argv) < 2):
    usage()
    try:
    opts, args = getopt.getopt(sys.argv[1:], "bqhtsc:i:d:", ["backlight" "quiet", "help", "toggle", "status", "control=", "increase=", "decrease="])
    except getopt.GetoptError:
    err("Incorrect usage, see changevol --help.")
    if (len(opts) == 0):
    err("Incorrect usage, see --help.")
    for opt, arg in opts:
    if opt in ("-h", "--help"):
    usage()
    elif opt in ("-q", "--quiet"):
    QUIET = "YES"
    elif opt in ("-b", "--backlight"):
    BACKLIGHT = "YES"
    elif opt in ("-t", "--toggle"):
    AMIXEROPTION = "toggle"
    elif opt in ("-s", "--status"):
    INCREMENT = "0"
    AMIXEROPTION = INCREMENT + "%+"
    elif opt in ("-c", "--control"):
    CONTROL = arg
    elif opt in ("-i", "--increase"):
    INCREMENT = arg
    AMIXEROPTION = INCREMENT + "%+"
    elif opt in ("-d", "--decrease"):
    INCREMENT = arg
    AMIXEROPTION = INCREMENT + "%-"
    else:
    err("Incorrect usage, see --help")
    if (AMIXEROPTION == "unset"):
    err("No volume changing action has been dictated. See changevol --help.")
    command = "amixer set " + CONTROL + " " + AMIXEROPTION
    #Execution
    volume = GetVolInfo(command)
    if (QUIET == "NO"):
    ProgressBar(volume.percent, volume.label)
    gtk.main()
    if (BACKLIGHT == "YES"):
    os.execv('/usr/bin/xbacklight', ['placeholder', '-set', volume.realvol])
    Here is the usage synopsis (it can be accessed with changevol --help):
    Usage: changevol [options] [argument]
    Options:
      -i, --increase  increase volume by `argument'
      -d, --decrease  decrease volume by `argument'
      -c, --control   specify the mixer control by `argument' (default Master)
                      use only to modify a mixer other than Master
      -t, --toggle    toggle mute on and off
      -s, --status    display current volume status without modifying it
      -q, --quiet     don't display the gtk progressbar, just change the volume
      -b, --backlight adjust the backlight using xbacklight
      -h, --help      display this help message
    Note:
      Volume increases and decreases won't be exact due to amixer oddities.
    Edit: Changed mute handling a bit.
    Edit2: Added a -c, --control option for an amixer interface other than Master
    Edit3: Added a -s, --status option to just display the current volume status without modifying it
    Edit4: Added a -q, --quiet option to not show the progress bar and just change the volume
    Edit5: Added a -b, --backlight option to adjust the backlight along with the volume change (someone asked for it, so why the hell not right?)
    Last edited by bruenig (2008-02-03 06:43:07)

    ralvez wrote:I gave it a spin but every time I get the same answer: "No volume changing action has been dictated."
    Can you provide an example of issuing the command using xbindkeys? or even what I should be issuing on the command line? I must be doing something wrong ... and I do not feel like studying the code to figure it out since you can give me the answer just as fast
    The usage synopsis is in the first post or available by just doing "changevol" or changevol -h|--help.
    But to increase the volume by 5:
    changevol -i 5
    To decrease the volume by 5:
    changevol -d 5
    To toggle mute on and off:
    changevol -t
    If you need to specify a mixer other than "Master" which is the default mixer, you use the -c flag, so say you needed to use the mixer "Front" to increase by 5:
    changevol -c Front -i 5
    I see there is a problem in the code where it says No volume changing action has been dictated when I want it to say Incorrect usage, see changevol --help. I will try to fix that. Still learning python.
    Edit: I have changed it to see if getopts returns no options and then if so print back the Incorrect usage error message. That should do a lot to direct people to the right, direction. I have also, changed the No volume changing action one, to also direct to --help.
    Last edited by bruenig (2007-12-31 03:27:37)

  • Report Performance with Bind Variable

    Getting some very odd behaviour with a report in APEX v 3.2.1.00.10
    I have a complex query that takes 5 seconds to return via TOAD, but takes from 5 to 10 minutes in an APEX report.
    I've narrowed it down to one particular bind. If I hard code the date in it returns in 6 seconds, but if I let the date be passed in from a parameter it takes 5+ minutes again.
    Relevant part of the query (an inline view) is:
    ,(select rglr_lect lect
    ,sum(tpm) mtr_tpm
    ,sum(enrols) mtr_enrols
    from ops_dash_meetings_report
    where meet_ev_date between to_date(:P35_END_DATE,'DD/MM/YYYY') - 363 and to_date(:P35_END_DATE,'DD/MM/YYYY')
    group by rglr_lect) RPV
    I've tried replacing the "to_date(:P35_END_DATE,'DD/MM/YYYY') - 363" with another item which is populated with the date required (and verified by checking session state). If I replace the :P35_END_DATE with an actual date the performance is fine again.
    The weird thing is that a trace file shows me exactly the same Explain Plan as the TOAD Explain where it runs in 5 seconds.
    Another odd thing is that another page in my application has the same inline view and doesn't hit the performance problem.
    The trace file did show some control characters (circumflex M) after each line of this report's query where these weren't anywhere else on the trace queries. I wondered if there was some sort of corruption in the source?
    No problems due to pagination as the result set is only 31 records and all being displayed.
    Really stumped here. Any advice or pointers would be most welcome.
    Jon.

    Don't worry about the Time column, the cost and cardinality are more important to see whther the CBO is making different decisions for whatever reason.
    Remember that the explain plan shows the expected execution plan and a trace shows the actual execution plan. So what you want to do is compare the query with bind variables from an APEX page trace to a trace from TOAD (or sqlplus or whatever). You can do this outside APEX like this...
    ALTER SESSION SET EVENTS '10046 trace name context forever, level 1';Enter and run your SQL statement...;
    ALTER SESSION SET sql_trace=FALSE;This will create a a trace file in the directory returned by...
    SELECT value FROM v$parameter WHERE name = 'user_dump_dest' Which you can use tkprof to format.
    I am assuming that your not going over DB links or anything else slightly unusual?
    Cheers
    Ben

  • How to Dene a Data Link Between Queries: Bind Variables

    This is an interesting topic and I cannot get it to work using Bind Variables.
    I have 2 queries: Q1 and Q2. Q2 needs c_id, account_code and account_type from Q1.
    Whe I run the data template below, I get only the data for Q1.
    Now people may argue that there is no data in Q2 for the relevant clause. So if I even remove the where clause in Q2 I still get no joy i.e Data appears for Q1 but not for Q2
    <dataTemplate name="FLCMR519_DATA_SET" description="Termination Quote Report">
         <parameters>
              <parameter name="cid" dataType="number" defaultValue="1"/>
              <parameter name="p_cln_id" dataType="number" defaultValue="62412"/>
         </parameters>
         <dataQuery>
              <sqlStatement name="Q1">
                   <![CDATA[SELECT qm.qmd_id,
    qm.contract_period,
    qm.quo_quo_id||'/'||qm.quote_no||'/'||qm.revision_no reference_no,
    qm.contract_distance,
    qm.mdl_mdl_id,
    q.qpr_qpr_id,
    q.quo_id,
    q.drv_drv_id,
    qm.revision_user username,
    pb.first_name||' '||pb.last_name op_name,
    pb.telephone_no,
    pb.facsimile_no,
    pb.email,
    q.c_id c_id,
    q.account_type account_type,
    q.account_code account_code,
    m.model_desc,
    ph.payment_description payment_head_desc,
    cl.fms_fms_id,
    cl.start_date,
    cl.end_date,
    cl.actual_end_date,
    cl.con_con_id,
    cl.cln_id,
    cl.term_qmd_id term_qmd_id,
    qm2.contract_period term_period,
    qm2.contract_distance term_distance
    FROM quotations q,
               quotation_models qm,
               contract_lines cl,
               personnel_base pb,
               models m,
               model_types mt,
               payment_headers ph,
               quotation_models qm2
    WHERE q.quo_id = qm.quo_quo_id
           AND cl.cln_id = :p_cln_id
           AND qm.qmd_id = cl.qmd_qmd_id
           AND qm2.revision_user = pb.employee_no (+)
           AND qm.mdl_mdl_id = m.mdl_id
           AND m.mtp_mtp_id = mt.mtp_id
           AND qm.payment_id = ph.payment_header_id
           AND qm2.qmd_id (+) = cl.term_qmd_id
    ]]>
              </sqlStatement>
              <sqlStatement name="Q2">
                   <![CDATA[SELECT ea.c_id,                  ea.account_type,ea.account_code,ea.account_name
    FROM external_accounts ea
                 WHERE ea.c_id = :c_id
                   AND ea.account_type = :account_type
                   AND ea.account_code = :account_code
    ]]>
              </sqlStatement>
         </dataQuery>
    </dataTemplate>

    Defining dataStructure section is mandatory for multiple queries.

  • Problem with binding value on the UI  from a calculated column in the view

    I have calculated field "Readiness" in my db view, which gets calculated based on other columns in the same table. I have added new column to my EO using "Add from table" option and added the same column from to VO using "Add from EO" option. In my application, I will update a particular date field in the UI and this calculated column "Readiness" in the db will be set to yes or no and this logic is working fine, both date date field and calculated field are in same view object. I have added a attribute binding to this "Readiness" column in my view page. The problem is the calculated column value does not reflect the new value in the db, it shows the old value. I have tried different refresh option for the iterator and ppr option for the field binding. Even after reloading the page, the value shown on the UI page is different from the value in db, other bindings on the UI page works fine, not sure any special settings are required for the Calculated columns. any ideas are appreciated.
    Thanks for your help,
    Surya

    I tried to add soms debugging statements in the EO and getters method, the calcaulated column is not picking the value in db view. I'm not any special iterator/field settings are required at BC level. I'm a newbie, any help is appreciated.
    Thanks,
    Surya

  • ORA-03111 - JCA Binding error while invoking a stored procedure in DB

    Hi,
    We are facing this problem for one interface alone.
    Need expert advice to fix this problem..
    This is scheduled to run once in a day and fails daily for past 2 weeks..
    We receive below error as response..
    Same interface worked fine for past 1 yr..
    Also it works fine if we reprocess the batch in next day morning...
    Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'DB_Legacy_To_EBS_Invoice_Conversion' failed due to: Stored procedure invocation error. Error while trying to prepare and execute the IRSOA.AR_SOA_INVOICE.TRN_GET_CUST_INV_RAW_TO_STAGE API. An error occurred while preparing and executing the IRSOA.AR_SOA_INVOICE.TRN_GET_CUST_INV_RAW_TO_STAGE API. Cause: java.sql.SQLException: ORA-03111: break received on communication channel ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution.
    AND
    Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'DB_Legacy_To_EBS_Invoice_Conversion' failed due to: Stored procedure invocation error. Error while trying to prepare and execute the IRSOA.AR_SOA_INVOICE.TRN_GET_CUST_INV_RAW_TO_STAGE API. An error occurred while preparing and executing the IRSOA.AR_SOA_INVOICE.TRN_GET_CUST_INV_RAW_TO_STAGE API. Cause: java.sql.SQLException: ORA-01013: user requested cancel of current operation ORA-06512: at "IRSOA.XXIR_AR_SOA_CUSTOMER_INVOICE", line 213 ORA-06512: at line 1 ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution
    Thanks,
    Sundaram

    Looks like the SQL might be taking a longer time to execute and might be timing out.
    Please refer the following:
    Re: ORA-01013: user requested cancel of current operation
    http://www.dba-oracle.com/t_ora_01013_user_requested_cancel_of_current_operation.htm
    Additionally, ORA-06512 indicates that there is a mismatch of the with the data length that is being processed. Refer http://www.techonthenet.com/oracle/errors/ora06512.php
    Hope this helps.
    Thanks,
    Patrick

  • Error when using Variable Transport Binding in Sender Mail Adapter

    Hi,
    I am using the Sender Mail Adapter to receive an email, convert the attached tab delimited text file into xml and map it to an IDOC.
    I am using PayloadSwapBean and MessageTransformBean in order to do this, and this all works perfectly.
    I am now trying to access the Adapter Specific Message Attributes to retrieve the SHeaderFROM attribute from the message and map it to a field in the idoc.
    However when I check the "Variable Transport Binding" option in the Advanced tab of the mail adapter, the message no longer goes through to SXMB_MONI and I get the following error in the Java logs.
    Transmitting the message to endpoint http://sapserver:53500/sap/xi/engine?type=entry using connection AFW failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Received HTTP response code 500 : Error during parsing of SOAP header.
    Any ideas why this is happening?
    Thanks,
    Brad

    Hi Luciana,
    Honestly, I cant really remember how or if it was resolved and I was just helping out on the issue, but another consultant continued with it, so unfortunately I cant be any help on this.
    Good luck!
    Cheers,
    Brad

  • Mail sender adapter with Variable Transport Binding doesn't work

    Hi,
    we have PI/700 SP7.
    An external partner sends an email with one attachment (a simple csv file).
    I take "PayloadSwapBean" (with swap.keyName = payload-name) to get the attachment.
    Both, the Adapter-Specific Message Attributes indicator and the Variable Transport Binding indicator are set.
    I set the mail package format indicator too.
    What I need is the sender, receiver and subject of the mail plus the attachment.
    Unfortunately it is not possible to read in the email with this configuration - I get an error.
    If I unset the Variable Transport Binding indicator - I get the email but without "sender, receiver and subject" in "SHeaderFROM, SHeaderTO, SHeaderSubject". The "mail package" is overwritten by the attachment.
    Is it a problem of the namespace "http://sap.com/xi/XI/System/Mail"?
    Do I have to define this namespace or do I have to import a content (SAP BASE 700, SP7 is imported)?
    Please help...
    Regards
    Wolfgang

    Hi Wolfgang,
    I hope it is not due to the namespace.
    This might help you.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/9e6c7911-0d01-0010-1aa3-8e1bb1551f05
    Need some Guide regarding Configuration of Sender Mail Adapters....
    Regards
    Agasthuri Doss
    Message was edited by: Agasthuri Doss Baladandapani

  • How to Bind a Combo Box so that it retrieves and display content corresponding to the Id in a link table and populates itself with the data in the main table?

    I am developing a desktop application in Wpf using MVVM and Entity Frameworks. I have the following tables:
    1. Party (PartyId, Name)
    2. Case (CaseId, CaseNo)
    3. Petitioner (CaseId, PartyId) ............. Link Table
    I am completely new to .Net and to begin with I download Microsoft's sample application and
    following the pattern I have been successful in creating several tabs. The problem started only when I wanted to implement many-to-many relationship. The sample application has not covered the scenario where there can be a any-to-many relationship. However
    with the help of MSDN forum I came to know about a link table and managed to solve entity framework issues pertaining to many-to-many relationship. Here is the screenshot of my application to show you what I have achieved so far.
    And now the problem I want the forum to address is how to bind a combo box so that it retrieves Party.Name for the corresponding PartyId in the Link Table and also I want to populate it with Party.Name so that
    users can choose one from the dropdown list to add or edit the petitioner.

    Hello Barry,
    Thanks a lot for responding to my query. As I am completely new to .Net and following the pattern of Microsoft's Employee Tracker sample it seems difficult to clearly understand the concept and implement it in a scenario which is different than what is in
    the sample available at the link you supplied.
    To get the idea of the thing here is my code behind of a view vBoxPetitioner:
    <UserControl x:Class="CCIS.View.Case.vBoxPetitioner"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:v="clr-namespace:CCIS.View.Case"
    xmlns:vm="clr-namespace:CCIS.ViewModel.Case"
    mc:Ignorable="d"
    d:DesignWidth="300"
    d:DesignHeight="200">
    <UserControl.Resources>
    <DataTemplate DataType="{x:Type vm:vmPetitioner}">
    <v:vPetitioner Margin="0,2,0,0" />
    </DataTemplate>
    </UserControl.Resources>
    <Grid>
    <HeaderedContentControl>
    <HeaderedContentControl.Header>
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
    <TextBlock Margin="2">
    <Hyperlink Command="{Binding Path=AddPetitionerCommand}">Add Petitioner</Hyperlink>
    | <Hyperlink Command="{Binding Path=DeletePetitionerCommand}">Delete</Hyperlink>
    </TextBlock>
    </StackPanel>
    </HeaderedContentControl.Header>
    <ListBox BorderThickness="0" SelectedItem="{Binding Path=CurrentPetitioner, Mode=TwoWay}" ItemsSource="{Binding Path=tblParties}" />
    </HeaderedContentControl>
    </Grid>
    </UserControl>
    This part is working fine as it loads another view that is vPetioner perfectly in the manner I want it to be.
    Here is the code of vmPetitioner, a ViewModel:
    Imports Microsoft.VisualBasic
    Imports System.Collections.ObjectModel
    Imports System
    Imports CCIS.Model.Party
    Namespace CCIS.ViewModel.Case
    ''' <summary>
    ''' ViewModel of an individual Email
    ''' </summary>
    Public Class vmPetitioner
    Inherits vmParty
    ''' <summary>
    ''' The Email object backing this ViewModel
    ''' </summary>
    Private petitioner As tblParty
    ''' <summary>
    ''' Initializes a new instance of the EmailViewModel class.
    ''' </summary>
    ''' <param name="detail">The underlying Email this ViewModel is to be based on</param>
    Public Sub New(ByVal detail As tblParty)
    If detail Is Nothing Then
    Throw New ArgumentNullException("detail")
    End If
    Me.petitioner = detail
    End Sub
    ''' <summary>
    ''' Gets the underlying Email this ViewModel is based on
    ''' </summary>
    Public Overrides ReadOnly Property Model() As tblParty
    Get
    Return Me.petitioner
    End Get
    End Property
    ''' <summary>
    ''' Gets or sets the actual email address
    ''' </summary>
    Public Property fldPartyId() As String
    Get
    Return Me.petitioner.fldPartyId
    End Get
    Set(ByVal value As String)
    Me.petitioner.fldPartyId = value
    Me.OnPropertyChanged("fldPartyId")
    End Set
    End Property
    End Class
    End Namespace
    And below is the ViewMode vmParty which vmPetitioner Inherits:
    Imports Microsoft.VisualBasic
    Imports System
    Imports System.Collections.Generic
    Imports CCIS.Model.Case
    Imports CCIS.Model.Party
    Imports CCIS.ViewModel.Helpers
    Namespace CCIS.ViewModel.Case
    ''' <summary>
    ''' Common functionality for ViewModels of an individual ContactDetail
    ''' </summary>
    Public MustInherit Class vmParty
    Inherits ViewModelBase
    ''' <summary>
    ''' Gets the underlying ContactDetail this ViewModel is based on
    ''' </summary>
    Public MustOverride ReadOnly Property Model() As tblParty
    '''' <summary>
    '''' Gets the underlying ContactDetail this ViewModel is based on
    '''' </summary>
    'Public MustOverride ReadOnly Property Model() As tblAdvocate
    ''' <summary>
    ''' Gets or sets the name of this department
    ''' </summary>
    Public Property fldName() As String
    Get
    Return Me.Model.fldName
    End Get
    Set(ByVal value As String)
    Me.Model.fldName = value
    Me.OnPropertyChanged("fldName")
    End Set
    End Property
    ''' <summary>
    ''' Constructs a view model to represent the supplied ContactDetail
    ''' </summary>
    ''' <param name="detail">The detail to build a ViewModel for</param>
    ''' <returns>The constructed ViewModel, null if one can't be built</returns>
    Public Shared Function BuildViewModel(ByVal detail As tblParty) As vmParty
    If detail Is Nothing Then
    Throw New ArgumentNullException("detail")
    End If
    Dim e As tblParty = TryCast(detail, tblParty)
    If e IsNot Nothing Then
    Return New vmPetitioner(e)
    End If
    Return Nothing
    End Function
    End Class
    End Namespace
    And final the code behind of the view vPetitioner:
    <UserControl x:Class="CCIS.View.Case.vPetitioner"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:vm="clr-namespace:CCIS.ViewModel.Case"
    mc:Ignorable="d"
    Width="300">
    <UserControl.Resources>
    <ResourceDictionary Source=".\CompactFormStyles.xaml" />
    </UserControl.Resources>
    <Grid>
    <Border Style="{StaticResource DetailBorder}">
    <Grid>
    <Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto" />
    <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <TextBlock Grid.Column="0" Text="Petitioner:" />
    <ComboBox Grid.Column="1" Width="240" SelectedValuePath="." SelectedItem="{Binding Path=tblParty}" ItemsSource="{Binding Path=PetitionerLookup}" DisplayMemberPath="fldName" />
    </Grid>
    </Border>
    </Grid>
    </UserControl>
    The problem, presumably, seems to be is that the binding path "PetitionerLookup" of the ItemSource of the Combo box in the view vPetitioner exists in a different ViewModel vmCase which serves as an ObservableCollection for MainViewModel. Therefore,
    what I need to Know is how to route the binding path if it exists in a different ViewModel?
    Sir, I look forward to your early reply bringing a workable solution to the problem I face. 
    Warm Regards,
    Arun

Maybe you are looking for