Multiple callback from cache listener

We added a map listener in the coherence-cache-config.xml file that just prints out details of the MapEvent object. Each time we add an item to the cache the listener gets called twice once with a Map being a SafeNamedCache object and a second time with the Map pointing to the Cache object we configured in the file. Please could you explain why we see two callbacks. Assuming that this behavour which event should we react to (and why).
Many thanks
Jules
java -Dtangosol.coherence.cacheconfig=./coherence-cache-config-test.xml com.tangosol.net.CacheFactory******************************************************************************
* Tangosol Coherence(tm): Enterprise Edition is licensed by Tangosol, Inc.
* License details are available at: http://www.tangosol.com/license.jsp
* Licensed for evaluation use with the following restrictions:
* Effective Date : 1 Nov 2005 00:00:00 GMT
* Termination Date : 1 Jan 2006 00:00:00 GMT
* A production license is required for production use.
* Copyright (c) 2000-2005 Tangosol, Inc.
Tangosol Coherence Version 3.0.1/317
SafeCluster: Group{Address=224.3.0.0, Port=30315, TTL=4}
MasterMemberSet
ThisMember=Member(Id=1, Timestamp=Fri Nov 11 15:29:16 GMT 2005, Address=10.129
.23.94, Port=8088, MachineId=40030)
OldestMember=Member(Id=1, Timestamp=Fri Nov 11 15:29:16 GMT 2005, Address=10.1
29.23.94, Port=8088, MachineId=40030)
ActualMemberSet=MemberSet(Size=1, BitSetCount=2
Member(Id=1, Timestamp=Fri Nov 11 15:29:16 GMT 2005, Address=10.129.23.94, P
ort=8088, MachineId=40030)
RecycleMillis=240000
RecycleSet=MemberSet(Size=0, BitSetCount=0
TcpRing{TcpSocketAccepter{State=STATE_OPEN, ServerSocket=10.129.23.94:8088}, Con
nections=[]}
ClusterService{Name=Cluster, State=(SERVICE_STARTED, STATE_JOINED), Id=0, Versio
n=3.0, OldestMemberId=1}
Map (?): cache GED-test5
<local-scheme>
<scheme-name>example-backing-map</scheme-name>
<eviction-policy>HYBRID</eviction-policy>
<high-units>0</high-units>
<expiry-delay>1h</expiry-delay>
<flush-delay>1m</flush-delay>
<listener>
<class-scheme>
<class-name>Listener</class-name>
</class-scheme>
</listener>
<cachestore-scheme/>
</local-scheme>
Map (GED-test5): bulkput 1 100 1
Fri Nov 11 15:29:42 GMT 2005: adding 1 items (starting with #1) each 100 bytes .
ADDING ******************** key 1, this=Listener@bc8e1e id= 1 map= SafeNamedCa
che: CacheHandler{Name=GED-test5, ServiceName=LocalCache} old null new [B@1167
1b2
ADDING ******************** key 1, this=Listener@82764b id= 1 map= Cache {
[0]: key="1", value="[B@11671b2", priority=0, created=15:29:42, last-use=15:29:4
2, expiry=16:29:42, use-count=0, units=1
} old null new [B@11671b2
Fri Nov 11 15:29:42 GMT 2005: done putting (31ms)
Map (GED-test5):<br><br> <b> Attachment: </b><br><a href="http://www.oracle.com/technology/sample_code/products/coherence/187.bin">Listener.java</a> <br> (*To use this attachment you will need to rename 187.bin to Listener.java after the download is complete.)<br><br> <b> Attachment: </b><br><a href="http://www.oracle.com/technology/sample_code/products/coherence/188.bin">coherence-cache-config-test.xml</a> <br> (*To use this attachment you will need to rename 188.bin to coherence-cache-config-test.xml after the download is complete.)

Hi Jules,
I have reproduced this here (thanks for the files) with a 'local-scheme'. I then added a 'distributed-scheme' using the same 'local-scheme' and added data to the cache and the listener was only called once. Here is the output when using the attached cache configuraion:
Tangosol Coherence Version 3.1/321
SafeCluster: Group{Address=224.3.1.0, Port=31321, TTL=4}
MasterMemberSet
ThisMember=Member(Id=1, Timestamp=Fri Nov 11 12:15:07 EST 2005, Address=192.168.0.248, Port=8088, MachineId=26872)
OldestMember=Member(Id=1, Timestamp=Fri Nov 11 12:15:07 EST 2005, Address=192.168.0.248, Port=8088, MachineId=26872)
ActualMemberSet=MemberSet(Size=1, BitSetCount=2
Member(Id=1, Timestamp=Fri Nov 11 12:15:07 EST 2005, Address=192.168.0.248, Port=8088, MachineId=26872)
RecycleMillis=240000
RecycleSet=MemberSet(Size=0, BitSetCount=0
TcpRing{TcpSocketAccepter{State=STATE_OPEN, ServerSocket=192.168.0.248:8088}, Connections=[]}
ClusterService{Name=Cluster, State=(SERVICE_STARTED, STATE_JOINED), Id=0, Version=3.0, OldestMemberId=1}
Map (?): cache dist
<distributed-scheme>
  <scheme-name>example-distributed</scheme-name>
  <service-name>DistributedCache</service-name>
  <backing-map-scheme>
    <local-scheme>
      <scheme-ref>example-backing-map</scheme-ref>
    </local-scheme>
  </backing-map-scheme>
  <autostart>true</autostart>
</distributed-scheme>Map (dist): put 1 1
ADDING ******************** key Binary(length=2, value=0x0101), this=Listener@1a116c9 id= 1 map= Cache {
[0]: key="Binary(length=2, value=0x0101)", value="Binary(length=2, value=0x0101)", priority=0, created=12:15:20, last-use=12:15:20, expiry=1
3:15:20, use-count=0, units=1
} old null new Binary(length=2, value=0x0101)
null
Map (dist): cache local
<local-scheme>
  <scheme-name>example-backing-map</scheme-name>
  <eviction-policy>HYBRID</eviction-policy>
  <high-units>0</high-units>
  <expiry-delay>1h</expiry-delay>
  <flush-delay>1m</flush-delay>
  <listener>
    <class-scheme>
      <class-name>Listener</class-name>
    </class-scheme>
  </listener>
</local-scheme>Map (local): put 1 1
ADDING ******************** key 1, this=Listener@13e58d4 id= 1 map= SafeNamedCache: CacheHandler{Name=local, ServiceName=LocalCache} old
null new 1
ADDING ******************** key 1, this=Listener@39e5b5 id= 1 map= Cache {
[0]: key="1", value="1", priority=0, created=12:15:29, last-use=12:15:29, expiry=13:15:29, use-count=0, units=1
} old null new 1
null
Map (local):
I will have to pass this along to engineering. I should have more for you by the end of the day.
Later,
Rob Misek
Tangosol, Inc.<br><br> <b> Attachment: </b><br>coherence-cache-config-listener-test.xml <br> (*To use this attachment you will need to rename 189.bin to coherence-cache-config-listener-test.xml after the download is complete.)

Similar Messages

  • Prevent multiple users from updating coherence cache data at the same time

    Hi,
    I have a web application which have a huge amount of data instead of storing the data in Http Session are storing it in coherence. Now multiple groups of users can use or update the same data in coherence. There are 100's of groups with several thousand users in each group. How do I prevent multiple users from updating the cache data. Here is the scenario. User logs-in checks in coherence if the data there and gets it from coherence and displays it on the ui if not get it from backend i.e. mainframe systems and store it in coherence before displaying it on the screen. Now some other user at the same time can also perform the same function and if don't find the data in coherence can get it from backend and start saving it in coherence while the other user is also in the process of saving or updating. How do I prevent this in coherence. As have to use the same key when storing in coherence because the same data is shared across users and don't want to keep multiple copies of the same data. Is there something coherence provides out-of-the-box or what is best approach to handle this scenario.
    Thanks

    Hi,
    actually I believe, that if we are speaking about multiple users each with its own HttpSession, in case of two users accessing the same session attribute in their own session, the actually used cache keys will not be the same.
    On the other hand, this is probably not what you would really like, you would possibly like to share that data among sessions.
    You should probably consider using either read-through caching with the CacheLoader implementor doing the expensive data retrieval (if the data to be cached can be obtained outside of an HTTP container), or side caching with using Coherence locks or entry-processors for concurrency control on the data retrieval operations for the same key (take care of retries in this case).
    Best regards,
    Robert

  • JNI Callback from remote process

    I have an application that calls back from C to Java in multiple situations. In some, I have been successful using the technique of calling AttachCurrentThread as described, for example, in various places, e.g.,
    http://java.sun.com/developer/onlineTraining/Programming/JDCBook/jniref.html#invoke
    and recently in this forum
    http://forum.java.sun.com/thread.jspa?threadID=763205&tstart=45`
    This is an accessibility application and one of the situations I need to callback from is a global keyboard hook. In this context, I call from Java to a C DLL which sets up the keyboard hook using the standard Windows procedure SetWindowsHookEx.
          SetWindowsHookEx(    
                      WH_KEYBOARD,    // type of hook to install
                     (HOOKPROC) mykeyboardProc,    // address of hook procedure
                    ( HINSTANCE__* )hDll,    // handle of application instance
                    0     // identity of thread to install hook for  (all threds)      );The keyboard hook functions in Windows by being "injected" into running applications so that it runs in their process space and therein, apparently, lies the problem.
    The keyboard hook gets callbacks from Windows whenever a key is pressed. This is the information I want to learn about back in Java. Our current approach is to have the keyboard hook write the key data to shared memory. Then the Java application makes polling calls into the previously mentioned C DLL which checks the shared memory and returns anything it finds. The C DLL is compiled with the current MinGW compiler.
    This procedure works alright-- I can access the information using shared memory in C and polling that from Java. It is, however, a tad slow. I'd like to use a callback from C directly to eliminate the extra layer of polling. I could, of course, do the polling in the C DLL and call back to Java from there. That would eliminate a process switch every time we poll, but would still leave the polling.
    In my attempts to set up a direct callback from the keyboard hook to Java, the C code uses AttachCurrentThread using the env pointer obtained from the JNI_OnLoad method. When my application has the focus and I type, I get print statements from the C DLL and the callbacks work fine. When any other application has focus, the callback does not work and there are no print statements. In fact, the keyboard hook crashes and stops responding to any key events.
    Since I do not get print statements when another application has focus (or they go into the ether), I do not know directly whether the JNI_OnLoad function actually gets called each time the DLL is loaded into another application. However, the JVM pointer I cache in the JNI_OnLoad function is NULL when I get a key event callback (when another application has focus). I tested this by putting an "exit" call if the cached JVM was NULL in the keyboard procedure (mykeyboardProc above). When any application has focus and I type a key, that application exits. From this I assume that JNI_OnLoad is not getting called, but since the cached JVM is NULL, that is irrelevant.
    One option I have attempted is to use JNI_GetCreatedJavaVMs to get a list of the JVMs running on the machine. From this, I hoped to somehow deduce which JVM was running my application and use its pointer. However, despite putting some of the the directories` with the jvm.dll into my library path:
       g++ -I/c/Programs/Java/JDK15~1.0_0/include
           -I/c/Programs/Java/JDK15~1.0_0/include/win32
           -L/c/Programs/Java/JDK15~1.0_0/jre/bin \
           ....I get the error:
    undefined reference to `JNI_GetCreatedJavaVMs@12'
    I would be grateful for any suggestions or solutions.
    Rick

    Thanks for the reply Jim,
    I've been compiling in the Msys environment.
    I created the jvm.def and generated the jvm.a as you
    suggested.
    This apparently required copying the jvm.dll from
    /c/Programs/Java/JDK15~1.0_0/jre/bin/client
    de]
    to my working directory.  Before I did that I got a
    message
    about stripping the path components from the dll
    name.
    Then I tried to make the DLL in the fashion I had
    been:g++ -I/c/Programs/Java/JDK15~1.0_0/include \
    -I/c/Programs/Java/JDK15~1.0_0/include/win32 \
    L/c/Programs/Java/JDK15~1.0_0/jre/bin/client \
    -shared -o JKeyboardInterface.dll \     
    jvm.a \
    JKeyboardInterface_wrapper.cpp \
    JKeyboardDllMain.cpp \
    JKeyboardInterface.cpp \
    -Wl,--out-implib,libJKeyboardInterface.a \
         -Wl,--add-stdcall-alias -mno-cygwin \
    -fno-rtti -fno-exceptions -s
    This resulted in this error:
    Creating library file: libJKeyboardInterface.a
    K:/DOCUME~1/rick/LOCALS~1/Temp/ccU1daaa.o:JKeyboardInt
    erface.cpp:(.text+0xafb):
    undefined reference to
    `_imp__JNI_GetCreatedJavaVMs@12'
    collect2: ld returned 1 exit status
    Hmmmmm. What happens if you remove the '-Wl,--out-implib,libJKeyboardInterface.a'? It seems to be failing in the step creating the static lib, which may prevent the DLL from being properly created.
    Since this was a different undefined reference, I
    re-did the jmv.def step
    using imp_JNI_GetCreatedJavaVMs@12 instead of
    JNI_GetCreatedJavaVMs@12
    This generated the same error.Yeah. I'm sure I never had to do anything like that.
    >
    Then I tried to use dllwrap with both versions of the
    jvm.a generated above::
    dllwrap --driver-name=c++ \
    --add-stdcall-alias \
    -o JKeyboardInterface.dll \
           jvm.a \
           JKeyboardInterface_wrapper.cpp \
           JKeyboardDllMain.cpp \
           JKeyboardInterface.cpp \With both versions of the jvm.a, I got the error:
    K:/DOCUME~1/rick/LOCALS~1/Temp/ccSccaaa.o:JKeyboardInt
    erface.cpp:(.text+0xafb):
    undefined reference to `JNI_GetCreatedJavaVMs@12'
    ollect2: ld returned 1 exit statusI'm not clear why the two approaches (g++ -shared and
    dllwrap) yield different reference problems.
    I've read that dllwrap is "deprecated" Probably.
    (http://www.mingw.org/MinGWiki/index.php/dllwrap).
    Do you have any other suggestions about how to do
    this?Have a look at:
    http://www.inonit.com/cygwin/
    Msys (which is Mingw) follows cygwin pretty closely.
    I'm not near a Windows machine to try this at the moment. All I can say is that I have an application using CreateJavaVM, compiled with MSYS and it works. CreateJavaVM has the same problems as GetCreatedJavaVMs that you are seeing. The root cause is that the jvm.lib shipped with the JDK for Windows is not compatible with GCC. Hence the need to create the jvm.a library.
    I build my code using an ANT script. It build the objects first and then links them. Deciphering the build script, it looks like the two steps would have the following command line syntax:
    Compile to object files:
    gcc -D REENTRANT -I <paths to include> somefiles.cpp somefiles.c
    (I have a mix of C and C++)
    Link object files to create DLL:
    gcc -shared -D REENTRANT --kill-at -lstdc++ somefiles.o jvm.a
    Try it in two steps and see if it makes a difference.
    >
    Is trying to use GetCreatedJavaVMs the correct
    approach here?
    If more than one exists, how do I determine which one
    I want to attach to and get an env pointer for?From you original post, it is difficult to understand exactly what you are trying to achieve.
    It seems like you are starting with a Java app that calls into some native code to create the keyboard hook. This hook will then call a callback method in native code when a key is pressed. You want the Java code to see this and act appropriately.
    In Java callbacks are usually handled with events. Just have your native code fire an event in Java and have a Listener on the Java side. I do this in some of my code. Say I have an event called FooEvent and a listener called FooListener. There is also an object called Bar which can fire FooEvents and have FooListeners attached to it. The Bar class has an addFooListener() method which is actually a native method. The native implementation sets up the callback stuff on the native side. When an event occurs on the native side, the callback function is called and it does something like this:
    jclass cls;
    jmethodID mid;
    cls = env->GetObjectClass(javaSource);
    mid = env->GetMethodID(cls, "fireSomeEvent", "()V");
    env->CallVoidMethod(javaSource, mid);In the code above, the 'cls' variable would be the Bar class object and the 'javaSource' variable is a global reference ot the Bar object to which the event listener was added. The 'env' variable is acquired by calling 'AttachCurrentThread' on a cached JavaVM pointer stored in a global reference.
    The Bar class has a fireSomeEvent() method, which calls the event listeners using the event generator idiom:
    http://www.javaworld.com/javaworld/jw-09-1998/jw-09-techniques.html
    The listener on the Java side gets notification when the event occurs and you can take the appropriate action. No polling, no shared memory.
    Jim S.

  • How to prevent multiple users from updating the same data in coherence

    Hi,
    I have a Java Web Application and for data cache am using coherence 3.5. The same data maybe shared by multiple users which maybe in hundreds. Now how do I prevent multiple users from updating the same data in coherence i.e. is there something in coherence that will only allow one user a time to update. If one user is in a process of updating a data in coherence and some other user also tries to update then the second user should get an error.
    Thanks

    I have a question on the same line. How can I restrict someone from updating a cache value when I a process is already working on it. I tried locking the cache key but it does not stop other process to update it , it only does not allow other process to get lock on it.

  • Client automatically cache the data got from cache server?

    Hi expert,
    I have 2 questions about the client local cache. Would you please help to give me some suggestion?
    1. Will client automatically locally cache the data got from cache server the first time and automatically update the data in local cache when getting the same data from cache server again? I go through the API reference but cannot find any API to query the data currently cached in the local cache.
    2. If client will automatically cache the data got from cache server. Is there any way for a client to get the data event that happens to its local cache, such as entry created in local cache, entry deleted from local cache and entry updated in local cache? In my opinion, when getting an entry from cache server the first time, the MapListener's entry create event should be triggered. When getting the same entry again, the entry update event should be triggered.
    However, I have tried a client with replicated cache, a client with partitioned cache, an extend client with remote cache and a client with local cache(front cache part of near cache), the client (the NamedCache object has been set the MapListener) cannot get any event notification after getting data from cache server. By the way, my listener is OK since when putting data the entry create event and entry update event will be triggered.
    Your suggestion is very appreciated. :)

    Hi
    If I were you I would read this http://download.oracle.com/docs/cd/E14526_01/coh.350/e14510/toc.htm
    and particularly the section about Near Caching here http://download.oracle.com/docs/cd/E14526_01/coh.350/e14510/nearcache.htm#CDEFEAJG
    which is what you are asking about in your question.
    Near Caching is how Coherence stores data in the locally - which is the answetr to your first question. How Near Caching works is explained in the documentation.
    Events, which you ask about in your second question are explained here http://download.oracle.com/docs/cd/E14526_01/coh.350/e14510/delivereventsjava.htm#CBBIIEFA
    It might be that ContinuousQueryCache is closer to what you want. This is explained here http://download.oracle.com/docs/cd/E14526_01/coh.350/e14510/queryabledatafabric.htm#sthref38 A ContinuousQueryCache is like having a sub-set of the underlying cache on the local client which you can then listen to etc...
    JK

  • Callback from a stateful bean

    Hello,
    I have a problem performing callback from a session stateful EJB. I have defined
    an interface with a single unimplemented method onMessage in it, and an abstract
    class that implements this interface. The abstract class is extended by another
    class, a broker. In the broker I have fully implemented the method onMessage defined
    in the interface. The broker calls a method in the EJB passing its reference,
    subscribing itself as a listener. When needed, the EJB calls the onMessage method
    of the listener, that in this case is the broker. The method is correctly invoked
    and the code in it is executed, BUT it seems the control is not really passed
    to the broker: the EJB itself seems to be executing the broker code... Note that
    broker and EJB are in differents EAR.
    Infact there are problems of ClassCastException when, in the broker onMessage
    method, are called some other EJBs present in the broker EAR but not present in
    the EJB EAR. It seems the classloader after the callback is the EJB classloader
    and no more the broker classloader!
    I'm only calling a method defined in an interface as a callback method...
    Some hypothesis??
    Thank you!
    Bran

    "Bran" <[email protected]> wrote in message news:4017c933$[email protected]..
    I'm only calling a method defined in an interface as a callback method...
    Some hypothesis??Each EAR receives it's own classloader, so objects are passsed
    always by value to EJBs in different EARs.
    Regards,
    Slava Imeshev

  • Ore.connect - ORA-28578: protocol error during callback from an external procedure

    Hi,
    I am having an issue while connecting my ORE client (Rgui) to my oracle instance:
    >library(ORE)
    Loading required package: OREbase
    Attaching package: ‘OREbase’
    The following object(s) are masked from ‘package:base’:
        cbind, data.frame, eval, interaction, order, paste, pmax, pmin, rbind, table
    Loading required package: OREstats
    Loading required package: MASS
    Loading required package: OREgraphics
    Loading required package: OREeda
    Loading required package: OREdm
    Loading required package: lattice
    Loading required package: OREpredict
    Loading required package: ORExml
    > ore.connect(user="RQUSER", sid="HERA", host="SI-ORACLE-11.polocesena.dir.unibo.it", password="rquser", port=1521, all=TRUE)
    Loading required package: ROracle
    Loading required package: DBI
    Error in .oci.GetQuery(conn, statement, data = data, prefetch = prefetch,  :
      ORA-28578: protocol error during callback from an external procedure
    ORA-06512: at "RQSYS.RQEVALIMPL", line 17
    ORA-06512: at "RQSYS.RQEVALIMPL", line 14
    ORA-06512: at line 4
    However if I check:
    > ore.is.connected()
    [1] TRUE
    But:
    > ore.ls()
    character(0)
    and:
    > ore.push(TABLE1)
    Error in ore.push(TABLE1) :
      error in evaluating the argument 'x' in selecting a method for function 'ore.push': Error: object 'TABLE1' not found
    I did not receive error messages during installation.
    ORE version: 1.3.1
    Rgui version: 2.15.3
    Oracle version: 11.2.0.3.0
    Installation:
    -SERVER
         Installed Open source R
         Installed ORE Server
         Installed ORE Client Supporting Packages
         Created the RQUSER and provided him with the necessary privileges
         Modified the extproc.ora file setting EXTPROC_DLLS=ONLY
    -CLIENT
         Installed Oracle DB Client
         Installed Open source R
         Installed ORE Client
         Installed ORE Client Supporting Packages
    Did not find any other clue in previous discussions, just one was pretty similar but it came to no resolution.
    Thanks,
    Lorenzo

    Hi Sherry,
    tnsnames.ora:
    HERA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 137.204.78.85)(PORT = 1521))
        (CONNECT_DATA =
          (SERVICE_NAME = hera)
    listener.ora:
    # listener.ora Network Configuration File: C:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
    # Generated by Oracle configuration tools.
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = CLRExtProc)
          (ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)
          (PROGRAM = extproc)
          (ENVS = "EXTPROC_DLLS=ONLY:C:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = si-oracle-11.polocesena.dir.unibo.it)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    ADR_BASE_LISTENER = C:\app\Administrator
    extproc.ora:
    SET EXTPROC_DLLS=ONLY
    Thanks,
    Lorenzo

  • How to get multiple values from the list

    I've a list of an item which I queried it from the database. I also created a button that will takes a selected items from the list when it was clicked. I used javabean to get the data from database.
    <%     // clicked on Select District Button
    Vector vselectedDistrict = new Vector();
    Vector vdistrictID = new Vector();
    String tmpSelectDistrict = "";
    tmpSelectDistrict = request.getParameter("bSelectDistrict");
    if(tmpSelectDistrict != null)
         // get multiple values from the list
         String[] selectedDistrict = request.getParameterValues("usrTDistrict");
         vselectedDistrict.clear();
         vdistrictID.clear();
         if((selectedDistrict != null) && (selectedDistrict.length != 0))
                             for(int i=0;i<selectedDistrict.length;i++)
                   vselectedDistrict.addElement(selectedDistrict);           
              vdistrictID = dbaseInfo.getcurrentDistrictID(nstate,vselectedDistrict);
              for(int i=0;i<vdistrictID.size();i++)
                   out.println("district = " + selectedDistrict[i]);                         out.println("district ID= " + vdistrictID.get(i).toString());
    %>
    // get vdistrict from the database here......
    <select name="usrTDistrict" size="5" multiple>
    <%     for(int i = 0; i< vdistrict.size(); i++)
    %>
         <option value="<%=vdistrict.get(i).toString()%>"><%=vdistrict.get(i).toString()%></option>
    <%
    %>          
    </select>
    <input type="submit" name="bSelectDistrict" value="Select District">
    Lets say the item that i selected from the list is 'Xplace' and I clicked on the Select District button,
    what I got is this error message:
    org.apache.jasper.JasperException: Unable to convert string 'Xplace' to class java.util.Vector for attribute usrTDistrict: java.lang.IllegalArgumentException: Property Editor not registered with the PropertyEditorManager
    So where is going wrong and what the message means?. Any help very much appreciated. Thanks

    These are just guesses that might hopefully steer you in directions you haven't looked in yet.
    I presume you used triangle brackets (< >) to avoid having the Jive Forum think it was the "italics" tag?
    Are you certain this: dbaseInfo.getcurrentDistrictID(nstate,vselectedDistrict);
    expects a Vector as its second parameter? And returns a Vector?
    I don't believe you've shown how you use the javabean, or its code? Perhaps it should be rewritten to accept an array of strings instead of a Vector?

  • Our family has multiple products from IPods, IPads, IMac, and Apple TV. However, we made a mistake when registering them so that we seem to have at least two different ITunes accounts. How do I combine them or reset the accounts to make them one?

    Over the years we have purchased multiple products from IPods, IPads, to IMacs. Unfortunately, along the way, we accidentally created more than one ITunes accounts so that we can only access some songs etc on certain devices and not on others. How do we reset our devices to create one account or transfer our music to one account?

    You don't. You cannot combine iTunes accounts at this time. Pick the one that you want to use and stick to that one account for all the purchases.
    Before making any changes read this article - http://support.apple.com/kb/ht4627
    MJ

  • Can you edit multiple images from a PDF in photoshop?

    I scan a lot of old publications with images and drawings. The images are in greyscale, but my scanner produces better results set to color. As such, I have to convert the images to greyscale in Photoshop from Acrobat. I have several PS actions that make this process easier, but I wish there was a way to select multiple images from a page or PDF file and run the actions on them (a batch) instead of one at a time. Is there? Or perhaps another method than what I am doing?

    I recommend that you scan first, save as TIFF, do any desired correction, and only then make PDFs. Scanning direct to PDFs is great for simple uncomplicated workflows, but a liability when correction is needed.

  • How to store multiple files from SAp in to Application server?

    Hi Guys,
                 Can anybody tell me how to store multiple files from SAP into Application server.in my application i have to get the data from SAP tables BSEG , BKPF , BSAK and BSIK that to daily i have to do.
                Any Logic  or Code for how to do is welcomed.
                        plz help me urgently.
    Thanks,
    Gopi

    Hi,
      directories creates basis. If you have task to store data in application server you already should have information into which folder you have to do it. If you don't have this information because it is just for example training for next task then you can use your personal folder into which you have access. To get list of all available folders please look at attached code and form get_directories (you get the list of folders you see in transaction AL11). But don't forget: If you are using open dataset you have to have rights to access application folder!
    Here you are code which I use to upload text files from local disc into application folder
    Regards,
      Karol
    *& Report  FILE_PC_TO_SAP
    REPORT  FILE_PC_TO_SAP.
    DATA: BEGIN OF searchpoints OCCURS 100,
            DIRNAME(200)     TYPE c, " name of directory.
            sp_name(100)     TYPE c," name of entry. (may end with *)
          END OF searchpoints.
    DATA: BEGIN OF isearchpoints OCCURS 10,
            dirname(75) TYPE c,            " name of directory.
            aliass(75)  TYPE c,            " alias for directory.
            svrname(75) TYPE c,            " svr where directory is availabl
            sp_name(75) TYPE c,            " name of entry. (may end with *)
            sp_cs(10)   TYPE c,            " ContainsString pattern for name
          END OF isearchpoints.
    data: l_file type filetable.
    data: l_rc   type i.
    data: itab   type TABLE OF string.
    data: g_tmp_file_path type rlgrap-filename.
    data: wa_itab type string.
    data: h_destin(100) type c.
    data: dat      type string.
    INITIALIZATION.
    perform get_directories.
    START-OF-SELECTION.
    parameters: in_file type string OBLIGATORY LOWER CASE.
    parameters: destin(100) type c OBLIGATORY LOWER CASE.
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
       FILENAME                      = in_file
       "FILETYPE                      = 'BIN'
       FILETYPE                      = 'ASC'
       HAS_FIELD_SEPARATOR           = ' '
       HEADER_LENGTH                 = 0
       READ_BY_LINE                  = 'X'
       DAT_MODE                      = ' '
      TABLES
        DATA_TAB                     = itab
    EXCEPTIONS
       FILE_OPEN_ERROR               = 1
       FILE_READ_ERROR               = 2
       NO_BATCH                      = 3
       GUI_REFUSE_FILETRANSFER       = 4
       INVALID_TYPE                  = 5
       NO_AUTHORITY                  = 6
       UNKNOWN_ERROR                 = 7
       BAD_DATA_FORMAT               = 8
       HEADER_NOT_ALLOWED            = 9
       SEPARATOR_NOT_ALLOWED         = 10
       HEADER_TOO_LONG               = 11
       UNKNOWN_DP_ERROR              = 12
       ACCESS_DENIED                 = 13
       DP_OUT_OF_MEMORY              = 14
       DISK_FULL                     = 15
       DP_TIMEOUT                    = 16
       OTHERS                        = 17.
    IF sy-SUBRC <> 0.
      write: / 'Error during loading input file!'.
    ENDIF.
    if h_destin is INITIAL.
      h_destin = in_file.
    endif.
    CONCATENATE destin h_destin into dat SEPARATED BY '/'.
    *TRANSLATE dat TO UPPER CASE.
    OPEN DATASET dat FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
    IF sy-SUBRC = 0.
      loop at itab into wa_itab.
         TRANSFER: wa_itab TO dat.
      endloop.
      CLOSE DATASET dat.
      write: / 'File uploaded!'.
    ELSE.
      write: / 'Not possible to open dataset'.
    ENDIF.
    at selection-screen on value-request for in_file.
      perform select_input_file_name.
      loop at l_file into g_tmp_file_path.
        move g_tmp_file_path to in_file.
        h_destin = ''.
        SPLIT g_tmp_file_path at '\' into table itab.
        loop at itab into g_tmp_file_path.
          h_destin = g_tmp_file_path.
        endloop.
      endloop.
    at selection-screen on value-request for destin.
      DATA: lt_dfies    TYPE TABLE OF dfies.
      DATA: lwa_dfies   TYPE dfies.
      CALL FUNCTION 'DDIF_FIELDINFO_GET'
        EXPORTING
          tabname    = '/BI0/PCO_AREA'
          lfieldname = 'CO_AREA'
        IMPORTING
          dfies_wa   = lwa_dfies.
      lwa_dfies-tabname = 'searchpoints'.
      lwa_dfies-REPTEXT   = 'Destination directory'.
      lwa_dfies-LENG      = 100.
      lwa_dfies-INTLEN    = 100.
      lwa_dfies-OUTPUTLEN = 100.
      lwa_dfies-fieldname = 'SP_NAME'.
      APPEND lwa_dfies TO lt_dfies.
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          RETFIELD = 'SP_NAME'
          DYNPPROG = SY-REPID
          DYNPNR = SY-DYNNR
          DYNPROFIELD = 'destin'
          VALUE_ORG = 'S'
        TABLES
          VALUE_TAB = searchpoints
          FIELD_TAB = lt_dfies
        EXCEPTIONS
          PARAMETER_ERROR = 1
          NO_VALUES_FOUND = 2
          OTHERS = 3.
    *&      Form  select_input_file_name
    *       text
    form select_input_file_name.
    *  call function 'F4_FILENAME'
    *       exporting
    *            program_name  = sy-repid
    *            dynpro_number = sy-dynnr
    *            field_name    = 'PATH'
    *       importing
    *            file_name     = g_tmp_file_path.
      CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
      EXPORTING
      WINDOW_TITLE = 'Please choose a file'
      "default_extension = '*.TXT'
      "default_filename = 'C:\*.txt'
      initial_directory = 'C:\'
      file_filter = '*.*'
      CHANGING
      FILE_TABLE = l_file
      RC = l_RC
      EXCEPTIONS
      FILE_OPEN_DIALOG_FAILED = 1
      CNTL_ERROR = 2
      ERROR_NO_GUI = 3
      NOT_SUPPORTED_BY_GUI = 4
      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.
    endform.                    "select_input_file_name
    *&      Form  WRITE_DB_HOME
    *       Write DB home directory
    *       no parameters
    FORM write_db_home.
      CASE sy-dbsys(3).
        WHEN 'ORA'.
          CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_ORAHOME'
                             ID 'VALUE' FIELD searchpoints-dirname.
    *--- C5056155 Start of ALV -------------------------------*
    *      PERFORM flip_flop(rsora000) USING cflag.
    *      WRITE: / 'DIR_ORAHOME',       30 searchpoints-dirname.
          MOVE: 'DIR_ORAHOME'        TO searchpoints-sp_name.
          APPEND searchpoints.
    *--- C5056155 End   of ALV -------------------------------*
        WHEN 'ADA'.
          CALL 'C_GETENV' ID 'NAME'  FIELD 'DBROOT'
                          ID 'VALUE' FIELD searchpoints-dirname.
    *--- C5056155 Start of ALV -------------------------------*
    *      PERFORM flip_flop(rsora000) USING cflag.
    *      WRITE: / 'DIR_ADA_DBROOT',    30 searchpoints-dirname.
          MOVE: 'DIR_ADA_DBROOT'     TO searchpoints-sp_name.
          APPEND searchpoints.
    *--- C5056155 End   of ALV -------------------------------*
        WHEN 'INF'.
          CALL 'C_GETENV' ID 'NAME'  FIELD 'INFORMIXDIR'
                          ID 'VALUE' FIELD searchpoints-dirname.
    *--- C5056155 Start of ALV -------------------------------*
    *      PERFORM flip_flop(rsora000) USING cflag.
    *      WRITE: / 'DIR_INF_INFORMIXDIR', 30 searchpoints-dirname.
          MOVE: 'DIR_INF_INFORMIXDIR' TO searchpoints-sp_name.
          APPEND searchpoints..
    *--- C5056155 End   of ALV -------------------------------*
        WHEN 'DB6'.
          CALL 'C_GETENV' ID 'NAME'  FIELD 'INSTHOME'
                          ID 'VALUE' FIELD searchpoints-dirname.
          IF sy-subrc = 0.
    *--- C5056155 Start of ALV -------------------------------*
    *        PERFORM flip_flop(rsora000) USING cflag.
    *        WRITE: / 'DIR_DB2_HOME',    30 searchpoints-dirname.
            MOVE: 'DIR_DB2_HOME'       TO searchpoints-sp_name.
            APPEND searchpoints.
    *--- C5056155 End   of ALV -------------------------------*
          ELSE.
            EXIT.
          ENDIF.
        WHEN OTHERS.
          EXIT.
      ENDCASE.
    ENDFORM.                    " WRITE_DB_HOME
    FORM get_directories.
    * get the name and aliases of ALL userdefined directories
      SELECT * FROM user_dir INTO isearchpoints
        WHERE svrname = sy-uname.
        MOVE isearchpoints-dirname to searchpoints-dirname.
        MOVE isearchpoints-aliass  to searchpoints-sp_name.
        APPEND searchpoints.
      ENDSELECT.
      SELECT * FROM user_dir INTO isearchpoints
        WHERE svrname = 'all'.
        MOVE isearchpoints-dirname to searchpoints-dirname.
        MOVE isearchpoints-aliass  to searchpoints-sp_name.
        APPEND searchpoints.
      ENDSELECT.
    * Get DB home
      IF sy-dbsys(3) = 'ADA'.
        PERFORM write_db_home.
      ENDIF.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_ATRA'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_ATRA'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_BINARY'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_BINARY'         TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory $DIR_CCMS
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_CCMS'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_CCMS'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_CT_LOGGING'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_CT_LOGGING'     TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_CT_RUN'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_CT_RUN'         TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_DATA'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_DATA'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * Get DB home
      IF sy-dbsys(3) = 'DB6'.
        PERFORM write_db_home.
      ENDIF.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_DBMS'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_DBMS'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_EXECUTABLE'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_EXECUTABLE'     TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_EXE_ROOT'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_EXE_ROOT'       TO searchpoints-sp_name.
      APPEND searchpoints.
    *get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_GEN'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_GEN'            TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_GEN_ROOT'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_GEN_ROOT'       TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_GLOBAL'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_GLOBAL'         TO searchpoints-sp_name.
      APPEND searchpoints.
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_GRAPH_EXE'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_GRAPH_EXE'      TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_GRAPH_LIB'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_GRAPH_LIB'      TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_HOME'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_HOME'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * Get DB home
      IF sy-dbsys(3) = 'INF'.
        PERFORM write_db_home.
      ENDIF.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_INSTALL'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_INSTALL'        TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_INSTANCE'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_INSTANCE'       TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_LIBRARY'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_LIBRARY'        TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_LOGGING'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_LOGGING'        TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the files written by the memory inspector
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_MEMORY_INSPECTOR'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_MEMORY_INSPECTOR' TO searchpoints-sp_name.
      APPEND searchpoints.
    * Get DB home
      IF sy-dbsys(3) = 'ORA'.
        PERFORM write_db_home.
      ENDIF.
    *get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_PAGING'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_PAGING'         TO searchpoints-sp_name.
      APPEND searchpoints.
    *get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_PUT'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_PUT'            TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_PERF'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_PERF'           TO searchpoints-sp_name.
      APPEND searchpoints.
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_PROFILE'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_PROFILE'        TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_PROTOKOLLS'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_PROTOKOLLS'     TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_REORG'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_REORG'          TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_ROLL'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_ROLL'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_RSYN'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_RSYN'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * calculate directory for saphostagent (no sapparam available...)
      IF ( sy-opsys(3) = 'WIN' ) OR ( sy-opsys(3) = 'Win' ).
        DATA: windir_path(64),  programfiles_path(64).
    *   hoping that ProgramFiles is set in service user environment
        CALL 'C_GETENV' ID 'NAME'  FIELD 'ProgramFiles'
                        ID 'VALUE' FIELD programfiles_path.
        IF programfiles_path IS INITIAL.
    *     %ProgramFiles% not available. guess from windir
          CALL 'C_GETENV' ID 'NAME'  FIELD 'windir'
                          ID 'VALUE' FIELD windir_path.
    *     e.g. S:\WINDOWS ==> S:\Program Files
          CONCATENATE windir_path(3) 'Program Files' INTO programfiles_path.
        ENDIF.
        CONCATENATE programfiles_path '\SAP\hostctrl'
                                                 INTO searchpoints-dirname.
      ELSE.
    *   on UNIX, the path is hard coded
        searchpoints-dirname = '/usr/sap/hostctrl'.
      ENDIF.
      MOVE: 'DIR_SAPHOSTAGENT' TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_SAPUSERS'
                         ID 'VALUE' FIELD searchpoints-dirname.
      IF searchpoints-dirname = '.'.
        IF sy-opsys = 'Windows NT'.
          searchpoints-dirname = '.\'.
        ELSE.
          searchpoints-dirname = './'.
        ENDIF.
      ENDIF.
      MOVE: 'DIR_SAPUSERS'       TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_SETUPS'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_SETUPS'         TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_SORTTMP'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_SORTTMP'        TO searchpoints-sp_name.
      APPEND searchpoints.
    *get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_SOURCE'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_SOURCE'         TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_TEMP'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_TEMP'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_TRANS'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_TRANS'          TO searchpoints-sp_name.
      APPEND searchpoints.
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_TRFILES'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_TRFILES'        TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_TRSUB'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_TRSUB'          TO searchpoints-sp_name.
      APPEND searchpoints.
    *  get the name of the current server.
      CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'rdisp/myname'
                         ID 'VALUE' FIELD searchpoints-dirname.
      data: h_ind type i.
      LOOP AT searchpoints.
        h_ind = sy-tabix.
        IF searchpoints-sp_name IS INITIAL.
          DELETE searchpoints INDEX h_ind.
        ENDIF.
      ENDLOOP.
    ENDFORM.

  • Emailing multiple photos from camera roll

    Search threads but didn't find. Can multiple photos from camera roll be sent in an email on the iPhone 4

    In round about way yes.
    Go to photos.
    In thumbnail view click menu item (think moved to top right in iOS4) to enable multiselect.
    Select photos (up to 5 ... sorta) and then you can click share.
    The sorta part is that if you do more than 5 the share will go away, but you can still select more, then choose copy, then go open email and paste in more than 5.

  • How do I attach multiple files from the pages app to my email

    I'm trying to attach multiple documents from the "Pages" app to my email.  I'm using an ipad.  It is only letting me attach one at a time and send each document as individual emails.  I would like to be able to send one email with all 4 documents at the same time.  Any suggestions?
    Another thought- When I go to my gmail app to compose an email, I have the following to send:
    to:
    cc:
    subject:
    But there is not a paperclip to click to attach any documents either.  Is this all connected and something in my ipad settings needs to be adjusted?

    You can only attach one file at a time to email in the Pages app
    You cannot attach files in the mail app. If you want to email a file, you do it from within the app where the file is saved such as what you did with Pages.

  • How to transfer multiple pdfs from email to iPad ibooks

    Is there any way to transfer multiple files from email or imessage to ibooks on an Ipad?
    currently email opens each one then have to click on top to open in ibooks.  I have over 50 files and expect more to come.  I have tried hooking up ipad to the macbook that sent the files and put into ibooks that way, but it would require syncing all my media files.
    Icloud and airdrop have failed me miserably for PDFs transfer to my ipad.

    I don't know if this will help you, but for PDFs on my IPad  I use either Note Taker HD or EverNote. Both are available at App Store. However each one is a pay for app. Note Taker HD app is a one time fee. EverNote is monthly. There is also
    FileApp Pro. These are the apps I use. So I have immediate access to any and all PDF's in a second or 2. Note that these are my personal preferences only. Hope this helps. Cheers.

  • Solution for scanning multiple pages from inside the form6i/10g

    Hi All,
    I need to scan multiple pages from Oracle forms (6i/10g) using a scanner which is scanning multiple pages per minute. Can any one post a solution for me.
    Hafeez

    here are the two ways I use to scan images.
    1) if the image is a single TIF image then d2kwutil can upload the image into a BLOB field on the database (but it is limited to only SINGLE-page TIFs).
    2) if the image is a single or multi-page PDF, then your forms client must copy the image to a filesystem location known by the database (where the filesystem location is a directory on the database), and then the database can import the image into a BLOB field within the database.
    either solutions work pretty fast for me (<10 seconds per image)
    Chris

Maybe you are looking for

  • How can I allow multiple users on XP pro to use the same itunes files

    I'm new to this iPod/iTunes stuff and i would like to allow my family to use all the songs that I have on the computer. I installed iTunes 7.0 and loaded all 1800 songs using my user profile. I then let my wife signon and when i opened iTunes she cou

  • Transfer pictures from laptop to ipad

    windows 7 with photoshop extended updated to 2014 new addition. i have o idea how to transfer my pictures from y laptop to my ipad with adobi photoshop touch on it. Is this possble and how, in simple terms please as i am not a professional...all help

  • How do I reinstall downloaded version of PHotoshop CS3 on my new PC

    Help .... my computer crashed. I need to reinstall a downloaded version of Photoshop CS3, PS Elements 6.0 and InDesign CS4 on my new computer . I signed in to Adobe.com but could not find the link "My Products" which is where Adobe told me to go in t

  • Classic won't start under Tiger

    When I try to start classic, it hangs as soon as the startup "Smiley Mac" screen appears" My computer will boot from OS9 system folder, but not start classic either from system preferences or automatically if I'm in Tiger. I've fixed OS9 permissions

  • Thumb Drives Icons only shows file Previews Icon

    Hello all, I am trying to change my icons on my thumb drives and External HDDs and I have googled on how to do this which requires you to open get info and copy and paste. But when I do this I keep getting the wrong I icon I keep getting the preview