Persistence of objects in VIs called from C
In my first case, I have a single VI compiled to a DLL. This VI does three different things, depending on the function call:
This is the first operation. It opens a connection to a UDP stream server. "ID" and "SA" are commands to tell the server to start send UDP data. The function call is:
callout(int Func, char *Address, char *DataOut, int Len);
Func is the operation I want to do, Address is the IP address to the server, DataOut is a container for the returned data and Len is the size of the container.
To start receiving data, I write:
callout(1, addr, data, 5000);
DataOut is ignored in this case. To retrieve UDP packets the next operation is used:
The call is:
callout(2, addr, data, 5000);
In this case, Address isn't used. 5000 bytes of data is copied to the location where data points.
And finally, this operation closes the stream:
callout(3, addr, data, 5000);
"SC" is the command to close the stream.
The above steps work just fine. The state of the VI is persistent between the function calls, and the connection saved in Connection ID is usable all the time.
What I'm trying to do now is streamline the operations by dividing this VI into three separate VIs. The first operation looks like this now:
In this case I try to save pointers to relevant objects in my C code:
TD1 *error;
LVRefNum *connectionid;
The new function call is:
callout_connect(addr, connectionid, error);
The next VI becomes:
With the function call:
callout_receive(connectionid, error, data, 5000);
And finally:
With the function call:
callout_close(addr, connectionid, error);
Needless to say, splitting up the VI into three separate entities has not worked so far. It compiles, sets up a connection, but somewhere the connection is then lost.
My suspicion is that I'm misunderstanding how the connection reference or the pointer to this reference is saved. Any suggestions?
Lars Melander
Uppsala Database Laboratory, Uppsala University
Solved!
Go to Solution.
What you are attempting to do is interesting. Not ever doing this myself, I would say that the problem is that you are passing a pointer that points to nothing and telling LV to fill it in. This would most likely cause your app to crash.
If I were doing this myself, I would not pass such things around across the boundry. I would probably keep these simple and pass base types around. To do this, I would for instance, pass an integer for the connection. This would be done by using a type 1 or 2 global or a local to store the connection in an array and then index that array when the caller wants to access the connection.
Attached is a generic memory allocation vi that I made for things like this.
A
Attachments:
AllocateGetSetDeallocate.vi 88 KB
AllocateGetSetDeallocate_Operation.ctl 7 KB
Similar Messages
-
Some errors when calling LabVIEW VIs Interactively from DIAdem
Hi! I'm having some trouble using the "Calling LabVIEW VIs Interactively from DIAdem" found on:
http://zone.ni.com/devzone/conceptd.nsf/webmain/1A98AB48E35D913086256E23004E6A22
Following the troubleshooting section didn't resolve the issue. I
recompiled and built the exe (DIAdemLabVIEW.exe) for version 7.1.1,
which I am developing on. But still I got the same error message, after
a waiting for about a minute, on a diadem popup window:
Error in <MenuAdd...ctDo.vbs (row:1, column: 1)
Error in <addmenuentry.vbs (row:14, column: 3)
ActiveX component can't create object.: 'DIAdemLabWIEV.Application'
Using the llb's and exe's that was included with the installer worked
flawless, with the exception that LV 7.1.1 vi's didn't appear on the
popup window(DIAdemLabWiev.vi). So I tried to recompile and build for
the 7.1.1, with this result.
I'd be very grateful for fixes or solutions for this problem!
Regards
Roger IsakssonBrad, thanks for the reply! Below is my (correct?) modification of your script. Have I got it right?
Dim lvapp, vi, viPath, paramName(1), paramVal(1)
Set lvapp = CreateObject("LabVIEW.Application")
viPath = "C:\TEMP\Test.exe"
Set vi = lvapp.GetVIReference(viPath)
vi.FPWinOpen = True
paramName(0) = "In Name"
paramVal(0) = "In Value"
paramName(1) = "Ut Name"
Call vi.Call(paramName, paramVal)
Call lvapp.Quit()
MsgBox "Parameter1 Value = " & paramVal(1)
I am not sure about the format of the <paramName(0) = "In Name">.
The control name is "In" and is a I32, the name for the indicator is
"Ut" and has the same storage type as the control.
Running the script gives an error in line 4, that is the <Set vi =
lvapp.GetVIReference(viPath)>. I'll attach the exe and the error
message.
I have another question regarding the relatively large amount of RAM
that diadem uses for export from my labview application to diadem. More
than 10 times the size of the data is required for exporting to diadem.
Since our application use relatively large files, actually up to
several GB's, this soon becomes problematic. See the attached picture
of the memory usage after exporting a 10MB segment (contains 42
channels of measurement data). Your help in these matters would be
appreciated!
Regards
Roger Isaksson, Damill AB
Message Edited by Roger Isaksson on 09-09-2005 10:22 AM
Message Edited by Roger Isaksson on 09-09-2005 10:22 AM
Attachments:
VBError.JPG 181 KB
Test1.vi 9 KB -
ActiveX can't create object when VB Script called from Labview
I have an interesting issue that I can't find a solution for. I am using the DIAdem Run Script.VI in Labview to call a script that opens an Outlook object and sends an email. When the script is called via LabView I get this error:
However, when I manually run the script from the DIAdem script tab it works as expected with no errors.
This is the code:
'Begin email send function
Dim oOutlookApp
Dim oOutlookMail
Dim cnByValue : cnByValue = 1
Dim cnMailItem : cnMailItem = 0
' Get Outlook Application Object
Set oOutlookApp = CreateObject("Outlook.Application")
' Create Mail Item
Set oOutlookMail = oOutlookApp.CreateItem(cnMailItem)
' Set Mail Values
With oOutlookMail
.To = "[email protected]"
.Subject = "Report: " & Data.Root.ActiveChannelGroup.Name & " for " & CurrDate
.Body = "test automatic report emailing with VB Script."
' Add Attachement
Call .Attachments.Add(strLocFileName, cnByValue, 1 )
' Send Mail
Call .Send()
End With
(Original code includes Option Explicit and all variables are properly included/declared, I just took the snippet of what's causing the error).
I have looked at the following threads for info already:
http://forums.ni.com/t5/DIAdem/Some-errors-when-calling-LabVIEW-VIs-Interactively-from-DIAdem/td-p/2...
http://forums.ni.com/t5/DIAdem/Active-X-component-cannot-create-object-Diadem-8-1/m-p/71212/highligh...
-I tried running the script via Windows explorer (per Brad's suggestion) by itself without the DIAdem specific functions and it runs fine.
http://forums.ni.com/t5/DIAdem/Error-while-runing-diadem-asynchronous-script-from-labview-on/m-p/111...
-I am not running the scripts asynchronously
Using Windows 7 (64bit), DIAdem 11.2 and LabView 7.1.1
Thank you.Hey techerdone -
I'm afraid I personally can't be of much help - I tested your code both from DIAdem and from LabVIEW and each worked without issues in both cases (Outlook closed, Outlook open). I'm using DIAdem 2011 SP1, LabVIEW 2011, and Outlook 2007...
Derrick S.
Product Manager
NI DIAdem
National Instruments -
How to pass a object of JSP to a servlet called from JSP
Hi,
I am trying to display an image in the JSP through html image tag. I am using Struts Action class to get the image data from the database through a Session EJB. I am getting a byte array for the image retrieved from the database.
To display the image I need to call a servlet from the JSP from the image tag like this.
<html:img src="imageservlet" border="0"/>
But I need to send the image byte [] array data which is available with the JSP to the servlet to build image. I have a bean object with the JSP which holds the image byte []. The servlet should receive the bean object and will use the byte [] and build the image to be displayed.
My query here is how to send this bean object to the servlet which is getting called from the JSP as shown above.
Thanks in advance.Hi,
Thanks for your response. I knew it is possible with session objects. But I want to perform this operation with out using session objects. Is there a way to accomplish this with out using Session objects.
Please help.
Thanks -
Object synchronization method was called from an unsynchronized block of co
I have installed DotNETWebControlConsumer_3.0_sp1
in my machine I am very much new to Plumtree
I am building the application in vs 2005 or .Net 2.0 environment and plumtree 6.0
here is my web.config file code
<httpModules>
<add type="Com.Plumtree.Remote.Loader.TransformerProxy, Plumtree.WCLoader, Version=3.0.0.0, Culture=neutral, PublicKeyToken=d0e882dd51ca12c5" name="PTWCFilterHttpModule"/>
</httpModules>
and I get the error Object synchronization method was called from an unsynchronized block of code
I just removed the html format for posting purpose i mean all the less than and greater than sign
please I need it so badlyRegarding your first issue (because it looks as if you removed the <httpModules> node from your web.config to move on from that issue), I changed 'Aqualogic.WCLoader' to 'Plumtree.WCLoader' in <httpModules ../>, added a reference to Plumtree.WCLoader in my project , then added another <add assembly="Plumtree.WCLoaderyadayada...> accordingly to the <assemblies> node in the web.config and then it worked. Well, almost, now I'm seeing a new error:
[NullReferenceException: Object reference not set to an instance of an object.]
Com.Plumtree.Remote.Transformer.PTTransformer.HandleRequest(HttpContext ctx) in e:\buildroot\Release\wcfilter\3.0.x\filter\src\Com\Plumtree\Remote\Transformer\PTTransformer.cs:60
Com.Plumtree.Remote.Transformer.PTTransformer.BeginRequestHandler(Object sender, EventArgs e) in e:\buildroot\Release\wcfilter\3.0.x\filter\src\Com\Plumtree\Remote\Transformer\PTTransformer.cs:54
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +92
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +64
Mine is a .net 2.0 portlet that will work if I don't try to use the WCC 3.0SP1 (by pulling the <httpModules> node. But then I'm guaranteed no inline refresh. I have no fix yet, but when I do, I'll post it. I've contacted Plumtree Support in the meantime because others must be having the same problem.
p.s. Also using edk 5.3 signed, though I'm going to upgrade to 5.4 and see if that does anything. -
When a servlet accepts a call from a client, it receives two objects.what??
hi,
When a servlet accepts a call from a client, it receives two objects. What are they???How will u pass the argument from one servlet to another servlet??Actually, it's dead simple: Just tell servlet #1 that servlet #2 said something nasty about servlet #1's mother and sister, so servlet #1 will head-butt servlet #2 and you have the argument passed along ...
-
Can I call an object with synchronized methods from an EJB
I have a need for multiple threads (e.g. Message Driven Beans) to access a shared object, lets say a singleton, I'm aware of the "you can't have a singleton in the EJB world" issues) for read/write operations, so the operations will need to be synchronised.
I've seen various statements such as you can't use read/write static fields in EJBs and you can't use synchronisation primitives in EJBs but I've also seen statements that say its okay to access utility classes such as Vector (which has synchronised methods) from an EJB.
Does anyone know if there is a definitive answer on this? What are the implications of accessing a shared object with synchronised methods from multiple EJBs? Is it just that the EJB's thread may block which limits the ability of the container to manage the EJBs? In the Vector example above (from Professional Java Server Programming) did they mean its okay to use these utility classes provided they aren't shared across threads?
If I can't use a plain old Java Object does anyone know if there are other potential solutions for sharing objects across EJBs?
In my problem, I have an operation that I want to run in a multi-threaded way. Each thread will add information to the shared object, and this info may be used by the other threads. There's no lengthy blocking as such other than the fact that only one thread can be adding/reading information from the shared object at a time.
I've trawled through this forum looking for similar questions of which there seem to be many, but there doesn't seem to be any definitive answers (sorry if there was and I missed it).
Thanks
MartinYou can share objects among EJB's or among objects used by one or more EJB's. You can use synchronization primitives - nothing will prevent you from doing that.
After all, the container classes, JVM-provides classes, JDBC, JCA, JNDI and other such classes do all of this with impunity. You can too. You can use file and socket I/O as well, presuming you configure the security profile to allow it. Should you? Well it depends on what you need to accomplish and if there is another practical alternative.
Yes the specification warns you not to, but you cannot be responsible for the interior hidden implementation of classes provided to you by the JVM or third parties so you can never truly know if your are breaking these written rules.
But when you do these things, you are taking over some part of the role of the container. For short running methods that only block while another thread is using the method or code block and no I/O or use of other potentially blocking operations are contained in the method/block, you will be fine. If you don't watch out and create deadlocks, you will harm the container and its managed thread pool.
You should not define EJB methods as synchronized.
Also, if you share objects between EJB's, you need to realize that the container is free to isolate pools of your EJB in separate classloaders or JVM's. It's behavior can be influenced by your packaging choices (use of .ear, multiple separate .jar's, etc.) and the configuration of the server esp. use of clustering. This will cause duplicate sets of shared classes - so singletons will not necessarily be singleton across the entire server/cluster, but no single EJB instance will see more than one of them. You design needs to be tolerant of that fact in order to work correctly.
This isn't the definitive answer you asked for - I'll leave that to the language/spec lawyers out there. But in my experience I have run across a number of occasions where I had to go outside of the written rules and ave yet to be burned for it.
Chuck -
Need FM which tells whether request received(object call) from R3 OR Portal
Hi All,
I need to differentiate some logic in a method based on whether it is called from R/3 OR Portal. I think there is a function module which tells whether the request is from Portal or not.
Thanks in advance
Regards,
Sudhakar.Hi Sudhakar,
Not aware of any such FM. But this is what you can do.
Any action form portal usually will call an RFC. In that RFC you can use SET parameter (SAP memory). And in your method you can check for that parameter to determine if it was called from portal.
Regards
Krishna Kishor Kammaje -
Uk resident calling from Canada to UK whilst visit...
Hi
I live in the UK but will be spending a lot of time between here and Canada. I currently have a suscriprion that allows me to all any Canadian number for unlimited minutes per month, but how does it work if I want to call the UK whilst I'm in Canada?
Would I need to set up another subscription to call the UK from Canada and is that possible?
Also, I know that it's probaby a stupid question, but does Skpe know which country I'm in when I make a call?
Many thanksHi,
In order to call UK you need a subscription that covers calls to UK. In your case you would need an additional subscription from: http://www.skype.com/go/subscriptions
Tip: In UK mobile numbers have higher rate, therefore in UK there are 2 types of subscriptions. If you wish to call also mobile numbers then make sure you choose a subscription from: "Landlines and mobiles" tab.
Regarding second question, it doesn't matter where you are calling from. All you need to do is to make sure your subscription covers calling destination.
Andre
If answer was helpful please mark it with Kudos and if issue is resolved mark it with solution. This will help other users find this answer more easily. Thanks in advance! -
Error while calling ejb service call from BPM service
Hi,
We are using the Oracle 11.1.1.5.0
We are calling ejb service call from BPM service to update the data to Oracle database.
We are getting the below error when we executing the ejb service call from BPM Service.
<Error> <EJB> <BEA-010026> <Exception occurred du
ring commit of transaction Name=[EJB oracle.bpm.bpmn.engine.ejb.impl.BPMNDeliver
yBean.handleCallback(java.lang.String,java.lang.String,java.lang.String,int,bool
ean)],Xid=BEA1-45B91984D57960994897(30845116),Status=Rolled back. [Reason=javax.
transaction.xa.XAException: JDBC driver does not support XA, hence cannot be a p
articipant in two-phase commit. To force this participation, set the GlobalTrans
actionsProtocol attribute to LoggingLastResource (recommended) or EmulateTwoPhas
eCommit for the Data Source = EBSConnection],numRepliesOwedMe=0,numRepliesOwedOt
hers=0,seconds since begin=1,seconds left=60,XAServerResourceInfo[SOADataSource_
base_domain]=(ServerResourceInfo[SOADataSource_base_domain]=(state=rolledback,as
signed=soa_server1),xar=SOADataSource,re-Registered = false),XAServerResourceInf
o[ArCnTaskForms@EBSConnection@EBSConnection_base_domain]=(ServerResourceInfo[ArC
nTaskForms@EBSConnection@EBSConnection_base_domain]=(state=rolledback,assigned=s
oa_server1),xar=weblogic.jdbc.wrapper.JTSEmulateXAResourceImpl@fa5476,re-Registe
red = false),SCInfo[base_domain+soa_server1]=(state=rolledback),properties=({web
logic.jdbc.remote.EBSConnection=t3://192.168.10.114:8001, weblogic.transaction.n
ame=[EJB oracle.bpm.bpmn.engine.ejb.impl.BPMNDeliveryBean.handleCallback(java.la
ng.String,java.lang.String,java.lang.String,int,boolean)]}),local properties=({w
eblogic.jdbc.jta.SOADataSource=[ No XAConnection is attached to this TxInfo ]}),
OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=soa
server1+192.168.10.114:8001+basedomain+t3+, XAResources={eis/tibjms/Queue, eis
/activemq/Queue, WLStore_base_domain_BPMJMSFileStore, WLStore_base_domain__WLS_s
oa_server1, eis/fioranomq/Topic, eis/jbossmq/Queue, eis/Apps/Apps, eis/websphere
mq/Queue, eis/AQ/aqSample, WLStore_base_domain_SOAJMSFileStore, eis/aqjms/Queue,
WSATGatewayRM_soa_server1_base_domain, eis/sunmq/Queue, eis/pramati/Queue, SSCo
nnectionDS_base_domain, eis/tibjms/Topic, eis/tibjmsDirect/Queue, eis/wls/Queue,
eis/tibjmsDirect/Topic, EDNDataSource_base_domain, eis/wls/Topic, eis/aqjms/Top
ic, RL3TST_base_domain, ArCnTaskForms@EBSConnection@EBSConnection_base_domain, S
OADataSource_base_domain, WLStore_base_domain_UMSJMSFileStore_auto_2},NonXAResou
rces={})],CoordinatorURL=soa_server1+192.168.10.114:8001+base_domain+t3+): weblo
gic.transaction.RollbackException: Could not prepare resource 'ArCnTaskForms@EBS
Connection@EBSConnection_base_domain
JDBC driver does not support XA, hence cannot be a participant in two-phase comm
it. To force this participation, set the GlobalTransactionsProtocol attribute to
LoggingLastResource (recommended) or EmulateTwoPhaseCommit for the Data Source
= EBSConnection
at weblogic.transaction.internal.TransactionImpl.throwRollbackException(
TransactionImpl.java:1881)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(Se
rverTransactionImpl.java:345)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTran
sactionImpl.java:239)
at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocal
Object.java:622)
at weblogic.ejb.container.internal.BaseLocalObject.__WL_postInvokeTxRetr
y(BaseLocalObject.java:455)
at weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(Sess
ionLocalMethodInvoker.java:52)
at oracle.bpm.bpmn.engine.ejb.impl.BPMNDeliveryBean_of8dk6_ICubeDelivery
LocalBeanImpl.handleCallback(Unknown Source)
at com.collaxa.cube.engine.dispatch.message.instance.CallbackDeliveryMes
sageHandler.handle(CallbackDeliveryMessageHandler.java:47)
at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(Dispatc
hHelper.java:140)
at com.collaxa.cube.engine.dispatch.BaseDispatchTask.process(BaseDispatc
hTask.java:88)
at com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTas
k.java:64)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: javax.transaction.xa.XAException: JDBC driver does not support XA, he
nce cannot be a participant in two-phase commit. To force this participation, se
t the GlobalTransactionsProtocol attribute to LoggingLastResource (recommended)
or EmulateTwoPhaseCommit for the Data Source = EBSConnection
at weblogic.jdbc.wrapper.JTSXAResourceImpl.prepare(JTSXAResourceImpl.jav
a:83)
at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerRe
sourceInfo.java:1327)
at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerRe
sourceInfo.java:513)
at weblogic.transaction.internal.ServerSCInfo$1.run(ServerSCInfo.java:36
8)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTunin
gWorkManagerImpl.java:528)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
.>
<12 Oct, 2012 12:34:40 PM IST> <Error> <oracle.soa.bpel.engine.dispatch> <BEA-00
0000> <failed to handle message
javax.transaction.xa.XAException: JDBC driver does not support XA, hence cannot
be a participant in two-phase commit. To force this participation, set the Globa
lTransactionsProtocol attribute to LoggingLastResource (recommended) or EmulateT
woPhaseCommit for the Data Source = EBSConnection
at weblogic.jdbc.wrapper.JTSXAResourceImpl.prepare(JTSXAResourceImpl.jav
a:83)
at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerRe
sourceInfo.java:1327)
at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerRe
sourceInfo.java:513)
at weblogic.transaction.internal.ServerSCInfo$1.run(ServerSCInfo.java:36
8)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTunin
gWorkManagerImpl.java:528)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
>
<12 Oct, 2012 12:34:40 PM IST> <Error> <oracle.soa.bpel.engine.dispatch> <BEA-00
0000> <Failed to handle dispatch message ... exception ORABPEL-05002
Message handle error.
error while attempting to process the message "com.collaxa.cube.engine.dispatch.
message.instance.CallbackDeliveryMessage"; the reported exception is: Error comm
itting transaction:; nested exception is: javax.transaction.xa.XAException: JDBC
driver does not support XA, hence cannot be a participant in two-phase commit.
To force this participation, set the GlobalTransactionsProtocol attribute to Log
gingLastResource (recommended) or EmulateTwoPhaseCommit for the Data Source = EB
SConnection
This error contained an exception thrown by the message handler.
Check the exception trace in the log (with logging level set to debug mode).
ORABPEL-05002
Message handle error.
error while attempting to process the message "com.collaxa.cube.engine.dispatch.
message.instance.CallbackDeliveryMessage"; the reported exception is: Error comm
itting transaction:; nested exception is: javax.transaction.xa.XAException: JDBC
driver does not support XA, hence cannot be a participant in two-phase commit.
To force this participation, set the GlobalTransactionsProtocol attribute to Log
gingLastResource (recommended) or EmulateTwoPhaseCommit for the Data Source = EB
SConnection
This error contained an exception thrown by the message handler.
Check the exception trace in the log (with logging level set to debug mode).
at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(Dispatc
hHelper.java:207)
at com.collaxa.cube.engine.dispatch.BaseDispatchTask.process(BaseDispatc
hTask.java:88)
at com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTas
k.java:64)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:908)
at java.lang.Thread.run(Thread.java:662)
>
Could any body help on this issue.It is little bit urgent for us to resolve.
Thanks in advance.Thanks Sudipto Desmukh,
The link is helpful me to resolve this issue.
Thanks,
Narasimha E -
Fields appear as "Read Only" in an Int.Form called from a WD
Hi Experts!
I am having a doubt in an Adobe Int.Form, that is called from a WD application.
The fields that are in my Form, always appear as a "read only". It is not possible to modify anything there.
Here, I describe the steps that I follow.
I create a very simple WD application. In its WD View, exist an unique Object (Adobe Interactive Form).
In that object, I set the properties:
"Data source": a context variable type "my structure". "My structure", is a simple structure with a couple or three fields, let´s say PERNR, BUKRS, WERKS... It is linked to the Form Interface (ABAP DICTIONARY-BASED INTERFACE). So in this way, the link between my WD and the AdobeInt.Form is working.
"PDF Source": a context variable type XSTRING.
"Template Source": here I have set my Int.Form. Currently, it only contains a couple of fields
"Enabled": True.
"Read Only": False.
In the AdobeForm, I have drag & droped those 2 or 3 fields, save it, and activate it. I guess nothing more is needed, for my test.
And at last, in the View´s method WDDOINIT, I am reading one of those fields, let´s say the employee number (PERNR), and I set by hardcoding its number (let´s say -> 00000001).
Until here, everything seems to work fine. When I launch the WD test, the Adobeform appears, at the moment, with only one of my fields (Employee - PERNR), and its value is filled in with '00000001'.
But now, I would like to write something by myself. And when I try to do it, it is not possible! Field PERNR, is displayed as a "READ ONLY".
Someone knows what is happening here? I guess it should be possible, to activate as a "EDITABLE" that field in my Form.
So here is my doubt.
Am I doing anything wrong? Or am I doing any mistake?
Thank you very much in advance!Finally I think I have found the problem.
In the View where I am printing the ADOBEFORM, it is needed this code under the method WDDOMODIFYVIEW.
method WDDOMODIFYVIEW .
DATA: LV_INTERACTIVE_FORM TYPE REF TO CL_WD_INTERACTIVE_FORM,
LV_METHOD_HANDLER TYPE REF TO IF_WD_IACTIVE_FORM_METHOD_HNDL.
LV_INTERACTIVE_FORM ?= VIEW->GET_ELEMENT( 'INT_FORM' ). " adobeform object in view
IF LV_INTERACTIVE_FORM IS NOT INITIAL.
LV_METHOD_HANDLER ?= LV_INTERACTIVE_FORM->_METHOD_HANDLER.
LV_METHOD_HANDLER->SET_LEGACY_EDITING_ENABLED( ABAP_TRUE ).
LV_METHOD_HANDLER->SET_HIDE_NAVIGATION_PANEL( ABAP_TRUE ).
LV_METHOD_HANDLER->SET_DISABLE_PRINT_BUTTON( ABAP_TRUE ).
WD_THIS->M_METHOD_HANDLER ?= LV_INTERACTIVE_FORM->_METHOD_HANDLER.
WD_THIS->M_METHOD_HANDLER->SET_HIDE_TOOLBARS( ABAP_TRUE ).
ENDIF.
endmethod.
Regards,
Carles -
How can i transfer a call from SIP 9971 to PBX system on CME router
hello everybody,
I have a critical problem about interaction of transfering feature between CME router and pbx panasonic system in some status. let me explain more detail about this issue..i have a SIP 9971(CP-9971) registered on CME at the one site and a voice gateway that is connect with PBX system through a E1 pri trunk connection at the other site. totally the integration between CME and PBX is ok and there is no problem in two direction, i mean i can call pbx system from cp-9971 and vise versa but when i call from a phone which is registered on PBX site to SIP 9971 which is registered on cisco CME call is connected,then when i try to transfer that call to another phone at PBX site, the session is open between two panasonic phones but no audio transmited in two direction. in addition every thing works fine about SCCP phones(transfer feature works fine). here is my configuration file. i hope someone could help me because i've searched a lot but no result help help help plz....
cme router 3845 configuration
VOIP-3845#show running-config
Building configuration...
Current configuration : 12657 bytes
! Last configuration change at 11:44:01 UTC Mon Oct 31 2011 by admin
! NVRAM config last updated at 11:44:02 UTC Mon Oct 31 2011 by admin
! NVRAM config last updated at 11:44:02 UTC Mon Oct 31 2011 by admin
version 15.1
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
hostname VOIP-3845
boot-start-marker
boot-end-marker
no aaa new-model
clock calendar-valid
dot11 syslog
ip source-route
ip cef
no ipv6 cef
multilink bundle-name authenticated
voice-card 0
voice service voip
allow-connections h323 to h323
allow-connections h323 to sip
allow-connections sip to h323
allow-connections sip to sip
supplementary-service h450.12
sip
bind control source-interface Loopback10
bind media source-interface Loopback10
registrar server
voice register global
mode cme
source-address 192.168.2.1 port 5060
max-dn 720
max-pool 262
load 9971 sip9971.9-1-1SR1.loads
authenticate register
authenticate realm cisco.com
tftp-path flash:
file text
create profile sync 0063544528862458
camera
video
voice register dn 1
number 500
voice register dn 2
number 600
voice register dn 3
number 700
name test
voice register template 1
softkeys idle Newcall Redial Cfwdall
softkeys connected Confrn Endcall Hold Trnsfer
voice register pool 1
id mac B8BE.BF23.5242
type 9971
number 1 dn 1
template 1
username test password test
camera
video
blf-speed-dial 4 600 label "test"
voice register pool 2
id mac B8BE.BF9C.5476
type 9971
number 1 dn 2
template 1
username bank password bank
camera
video
voice register pool 3
id mac B8BE.BF9C.51D4
type 9971
number 1 dn 3
template 1
username test1 password test1
camera
video
voice register pool 4
id mac B8BE.BF9C.4FA2
number 1 dn 1
camera
video
crypto pki token default removal timeout 0
crypto pki trustpoint TP-self-signed-1576175886
enrollment selfsigned
subject-name cn=IOS-Self-Signed-Certificate-1576175886
revocation-check none
rsakeypair TP-self-signed-1576175886
crypto pki certificate chain TP-self-signed-1576175886
certificate self-signed 01
30820241 308201AA A0030201 02020101 300D0609 2A864886 F70D0101 04050030
31312F30 2D060355 04031326 494F532D 53656C66 2D536967 6E65642D 43657274
69666963 6174652D 31353736 31373538 3836301E 170D3131 31303038 30393034
34365A17 0D323030 31303130 30303030 305A3031 312F302D 06035504 03132649
4F532D53 656C662D 5369676E 65642D43 65727469 66696361 74652D31 35373631
37353838 3630819F 300D0609 2A864886 F70D0101 01050003 818D0030 81890281
8100D6EC 47BCDC3C 82F43FF3 23522678 2616868D 9910DCD2 E36016B3 D7B40DA7
53A6E339 4978D451 21F051BE B21F8AD5 86B952DC 1ECCE371 3E094B54 26A41E14
A3055C06 AE860756 425E5C50 E62B3287 631B1E87 9BAC2E39 2810E120 DA3BF823
947EA591 81CA5489 1B868239 E835EC7C 0AA7651A 22D6E47F 545EBEF3 A172C9A3
5A0D0203 010001A3 69306730 0F060355 1D130101 FF040530 030101FF 30140603
551D1104 0D300B82 09564F49 502D3338 3435301F 0603551D 23041830 1680146C
934AD072 99DDC600 ECD6F389 8F71E0C2 18EC2E30 1D060355 1D0E0416 04146C93
4AD07299 DDC600EC D6F3898F 71E0C218 EC2E300D 06092A86 4886F70D 01010405
00038181 000E82F6 5FBB847C 49226955 6F7DECE7 0B093513 D57C35D5 4CD22FA7
8144A080 B0D56C8D 86AF8156 0152443A A3FBE59F B1AEFFBC BEB43E09 35757BAD
4C06FC4A 0F3695E0 B00FBD30 4E8F36CE 7748F39C F9602650 7A1D2D48 DBC31237
AE3D63CE 593D31F5 62E4916F D20E30E8 30DC55C0 120FBD26 D2768DBC A67DDC34
5BDB66B1 E3
quit
license udi pid CISCO3845-MB sn FOC14421Q1Y
archive
log config
hidekeys
username admin privilege 15 secret 5 $1$Zf7j$P93opukmmEBIioVpjmHB3.
redundancy
interface Loopback10
ip address 192.168.2.1 255.255.255.0
interface Tunnel1
ip address 172.25.10.1 255.255.255.0
no ip redirects
ip nhrp map multicast dynamic
ip nhrp network-id 10
tunnel source GigabitEthernet0/1.1
tunnel mode gre multipoint
tunnel key 100
interface Tunnel2
ip address 172.25.11.1 255.255.255.0
no ip redirects
ip nhrp map multicast dynamic
ip nhrp network-id 20
tunnel source GigabitEthernet0/1.2
tunnel mode gre multipoint
interface Tunnel14
ip address 192.168.13.129 255.255.255.252
tunnel source GigabitEthernet0/1.1
tunnel destination 10.2.68.25
interface Tunnel18
ip address 192.168.13.137 255.255.255.252
tunnel source GigabitEthernet0/1.1
tunnel destination 10.9.160.236
interface GigabitEthernet0/0
no ip address
shutdown
duplex auto
speed auto
media-type rj45
interface GigabitEthernet0/1
no ip address
duplex auto
speed auto
media-type rj45
interface GigabitEthernet0/1.1
encapsulation dot1Q 10
ip address 10.9.160.25 255.255.255.0
interface GigabitEthernet0/1.2
encapsulation dot1Q 50
ip address 10.10.9.25 255.255.255.0
router eigrp 202
network 172.25.11.0 0.0.0.255
network 192.168.2.0 0.0.0.15
redistribute static route-map MYMAP1
router eigrp 201
network 172.25.10.0 0.0.0.255
network 192.168.2.0 0.0.0.15
redistribute static route-map MYMAP1
ip forward-protocol nd
ip http server
ip http secure-server
ip http path flash:/gui
ip route 10.2.68.0 255.255.255.0 10.9.160.1
ip route 10.10.0.0 255.255.0.0 10.10.9.1
ip route 10.64.164.30 255.255.255.255 10.9.160.1
ip route 192.168.14.0 255.255.255.0 192.168.13.130
ip route 192.168.17.0 255.255.255.0 Tunnel18
ip access-list standard REDIS1
permit 192.168.14.0
permit 192.168.17.0
route-map MYMAP1 permit 10
match ip address REDIS1
snmp-server community test RO
tftp-server flash:term11.default.loads
tftp-server flash:dkern9971.100609R2-9-0-3.sebn
tftp-server flash:kern9971.9-0-3.sebn
tftp-server flash:rootfs9971.9-0-3.sebn
tftp-server flash:sboot9971.111909R1-9-0-3.sebn
tftp-server flash:sip9971.9-0-3.loads
tftp-server flash:skern9971.022809R2-9-0-3.sebn
tftp-server flash:sccp11.9-0-2sr1s
tftp-server flash:SCCP11.9-1-1SR1S.loads
tftp-server flash:apps11.9-1-1TH1-16.sbn
tftp-server flash:cnu11.9-1-1TH1-16.sbn
tftp-server flash:cvm11sccp.9-1-1TH1-16.sbn
tftp-server flash:dsp11.9-1-1TH1-16.sbn
tftp-server flash:jar11sccp.9-1-1TH1-16.sbn
tftp-server flash:term06.default.loads
tftp-server flash:sip9971.9-1-1SR1.loads
tftp-server system:cme/sipphone
tftp-server flash:Desktops/320x212x12/NantucketFlowers.png
tftp-server flash:Desktops/320x212x12/TN-CampusNight.png
tftp-server flash:Desktops/320x212x12/TN-CiscoFountain.png
tftp-server flash:Desktops/320x212x12/TN-Fountain.png
tftp-server flash:Desktops/320x212x12/TN-MorroRock.png
tftp-server flash:Desktops/320x212x12/TN-NantucketFlowers.png
tftp-server flash:Desktops/320x212x12/Fountain.png
tftp-server flash:Desktops/320x212x12/CiscoLogo.png
tftp-server flash:Desktops/320x212x12/TN-CiscoLogo.png
tftp-server flash:Desktops/320x212x12/List.xml
tftp-server flash:Desktops/320x216x16/List.xml
tftp-server flash:Desktops/320x212x16/List.xml
tftp-server flash:gui/admin_user.html
tftp-server flash:gui/admin_user.js
tftp-server flash:gui/CiscoLogo.gif
tftp-server flash:gui/Delete.gif
tftp-server flash:gui/dom.js
tftp-server flash:gui/downarrow.gif
tftp-server flash:gui/ephone_admin.html
tftp-server flash:gui/logohome.gif
tftp-server flash:gui/normal_user.html
tftp-server flash:gui/normal_user.js
tftp-server flash:gui/Plus.gif
tftp-server flash:gui/sxiconad.gif
tftp-server flash:gui/Tab.gif
tftp-server flash:gui/telephony_service.html
tftp-server flash:gui/uparrow.gif
tftp-server flash:gui/xml-test.html
tftp-server flash:gui/xml.template
tftp-server flash:ringtones/Analog1.raw
tftp-server flash:ringtones/Analog2.raw
tftp-server flash:ringtones/AreYouThere.raw
tftp-server flash:ringtones/AreYouThereF.raw
tftp-server flash:ringtones/Bass.raw
tftp-server flash:ringtones/CallBack.raw
tftp-server flash:ringtones/Chime.raw
tftp-server flash:ringtones/Classic1.raw
tftp-server flash:ringtones/Classic2.raw
tftp-server flash:ringtones/ClockShop.raw
tftp-server flash:ringtones/DistinctiveRingList.xml
tftp-server flash:ringtones/Drums1.raw
tftp-server flash:ringtones/Drums2.raw
tftp-server flash:ringtones/FilmScore.raw
tftp-server flash:ringtones/HarpSynth.raw
tftp-server flash:ringtones/Jamaica.raw
tftp-server flash:ringtones/KotoEffect.raw
tftp-server flash:ringtones/MusicBox.raw
tftp-server flash:ringtones/Piano1.raw
tftp-server flash:ringtones/Piano2.raw
tftp-server flash:ringtones/Pop.raw
tftp-server flash:ringtones/Pulse1.raw
tftp-server flash:ringtones/Ring1.raw
tftp-server flash:ringtones/Ring2.raw
tftp-server flash:ringtones/Ring3.raw
tftp-server flash:ringtones/Ring4.raw
tftp-server flash:ringtones/Ring5.raw
tftp-server flash:ringtones/Ring6.raw
tftp-server flash:ringtones/Ring7.raw
tftp-server flash:ringtones/RingList.xml
tftp-server flash:ringtones/Sax1.raw
tftp-server flash:ringtones/Sax2.raw
tftp-server flash:ringtones/Vibe.raw
tftp-server flash:APPS-1.2.1.SBN
tftp-server flash:SYS-1.2.1.SBN
tftp-server flash:GUI-1.2.1.SBN
tftp-server flash:CP7921G-1.2.1.LOADS
tftp-server flash:TNUX-1.2.1.SBN
tftp-server flash:TNUXR-1.2.1.SBN
tftp-server flash:WLAN-1.2.1.SBN
tftp-server flash:apps37sccp.1-2-1-0.bin
tftp-server flash:APPSH-1.3.1.SBN
tftp-server flash:GUIH-1.3.1.SBN
tftp-server flash:CP7925G-1.3.1.LOADS
tftp-server flash:SYSH-1.3.1.SBN
tftp-server flash:TNUXH-1.3.1.SBN
tftp-server flash:WLANH-1.3.1.SBN
tftp-server flash:SCCP11.9-2-1S.loads
tftp-server flash:Desktops/320x212x12/CampusNight.png
tftp-server flash:Desktops/320x212x12/CiscoFountain.png
tftp-server flash:Desktops/320x212x12/MorroRock.png
tftp-server flash:skern9971.022809R2-9-2-1.sebn
tftp-server flash:sip9971.9-2-1.loads
tftp-server flash:sboot9971.031610R1-9-2-1.sebn
tftp-server flash:rootfs9971.9-2-1.sebn
tftp-server flash:dkern9971.100609R2-9-2-1.sebn
tftp-server flash:kern9971.9-2-1.sebn
tftp-server flash:United_States/g4-tones.xml
tftp-server flash:English_United_States/gd-sip.jar
tftp-server flash:sboot9971.031610R1-9-1-1SR1.sebn alias sboot9971.031610R1-9-1-1SR1.sebn
tftp-server flash:rootfs9971.9-1-1SR1.sebn alias rootfs9971.9-1-1SR1.sebn
tftp-server flash:kern9971.9-1-1SR1.sebn alias kern9971.9-1-1SR1.sebn
tftp-server flash:dkern9971.100609R2-9-1-1SR1.sebn alias dkern9971.100609R2-9-1-1SR1.sebn
tftp-server flash:skern9971.022809R2-9-1-1SR1.sebn alias skern9971.022809R2-9-1-1SR1.sebn
control-plane
mgcp profile default
dial-peer voice 1 voip
description connection-trough-PBX
destination-pattern 0....
session target ipv4:192.168.13.130
dtmf-relay h245-alphanumeric
no vad
dial-peer voice 100 voip
description K
destination-pattern 9T
session target ipv4:192.168.13.130
dtmf-relay h245-alphanumeric
no vad
dial-peer voice 5 voip
shutdown
destination-pattern *3709
session protocol sipv2
session target ipv4:192.168.13.130
session transport tcp
dtmf-relay h245-alphanumeric
codec g711ulaw
no vad
dial-peer voice 2 pots
incoming called-number .
dial-peer voice 10 voip
gatekeeper
shutdown
telephony-service
em logout 0:0 0:0 0:0
max-ephones 262
max-dn 400
ip source-address 192.168.2.1 port 2000
load 7911 SCCP11.9-2-1S
max-conferences 12 gain -6
web admin system name admin secret 5 $1$IKnn$tyKyuBcGqXFl6nhxCSu.z0
dn-webedit
time-webedit
transfer-system full-consult
transfer-pattern .T
create cnf-files version-stamp 7960 Oct 29 2011 12:39:25
ephone-template 1
softkeys connected Confrn Endcall Trnsfer Hold
keep-conference endcall
ephone-dn 1 dual-line
number 200
label test
name test
ephone-dn 2 dual-line
number 300
label Sepahbod
name Sepahbod
ephone-dn 4 dual-line
number 666
ephone-dn 5 dual-line
number 660
ephone-dn 6 dual-line
number 670
ephone-dn 7 dual-line
number 770
ephone-dn 8 dual-line
number 770
ephone-dn 9 dual-line
number 999
ephone 1
device-security-mode none
mac-address 18EF.639F.BCB0
keep-conference endcall
button 1:1
ephone 2
device-security-mode none
mac-address 0025.8418.B017
ephone-template 1
keep-conference endcall
button 1:2
ephone 3
device-security-mode none
mac-address F04D.A243.3154
keep-conference endcall
button 1:4
ephone 4
device-security-mode none
mac-address 6CF0.496A.69E9
button 1:4
ephone 5
device-security-mode none
mac-address 0015.E987.345F
keep-conference endcall
button 1:5
ephone 6
device-security-mode none
mac-address 0024.1DEA.614A
keep-conference endcall
button 1:6
ephone 9
device-security-mode none
mac-address 001D.7D4D.4DCB
button 1:9
line con 0
line aux 0
line vty 0 4
login local
transport input telnet
scheduler allocate 20000 1000
end
and Voice Gateway connected two PBX system configuration
Current configuration : 3486 bytes
version 15.1
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
hostname Voice-GW
boot-start-marker
boot-end-marker
card type e1 0 2
no aaa new-model
network-clock-participate wic 2
dot11 syslog
ip source-route
ip cef
no ipv6 cef
multilink bundle-name authenticated
isdn switch-type primary-net5
voice service voip
allow-connections h323 to h323
allow-connections h323 to sip
allow-connections sip to h323
allow-connections sip to sip
h323
voice-card 0
crypto pki token default removal timeout 0
license udi pid CISCO2811 sn FHK1352F0E9
username admin privilege 15 secret 5 $1$O6AN$1kvvqiLdIl3/ZTHoyYRy0/
redundancy
controller E1 0/2/0
framing NO-CRC4
pri-group timeslots 1-31
controller E1 0/2/1
interface Tunnel14
ip address 192.168.13.130 255.255.255.252
tunnel source FastEthernet0/1
tunnel destination 10.9.160.25
interface Tunnel17
ip address 192.168.13.134 255.255.255.252
tunnel source FastEthernet0/1
tunnel destination 10.9.160.25
interface FastEthernet0/0
ip address 192.168.14.252 255.255.255.0
duplex auto
speed auto
interface FastEthernet0/1
ip address 10.2.68.25 255.255.255.0
duplex auto
speed auto
interface Serial0/2/0:15
no ip address
encapsulation hdlc
isdn switch-type primary-net5
isdn overlap-receiving
isdn incoming-voice voice
no cdp enable
router eigrp 201
network 172.25.10.0 0.0.0.255
network 192.168.14.0
ip forward-protocol nd
no ip http server
no ip http secure-server
ip route 10.9.160.0 255.255.255.0 10.2.68.1
ip route 10.128.0.69 255.255.255.255 Tunnel14
ip route 192.168.2.1 255.255.255.255 192.168.13.129
ip route 192.168.17.0 255.255.255.0 Tunnel14
tftp-server flash:SCCP11.9-2-1S.loads
tftp-server flash:jar11sccp.9-2-1TH1-13.sbn
tftp-server flash:dsp11.9-2-1TH1-13.sbn
tftp-server flash:cvm11sccp.9-2-1TH1-13.sbn
tftp-server flash:cnu11.9-2-1TH1-13.sbn
tftp-server flash:apps11.9-2-1TH1-13.sbn
control-plane
voice-port 0/0/0
caller-id enable
voice-port 0/0/1
voice-port 0/0/2
supervisory disconnect dualtone mid-call
dial-type pulse
disc_pi_off
output attenuation 1
echo-cancel coverage 32
timeouts call-disconnect 5
timeouts wait-release 1
timing hookflash-out 50
timing sup-disconnect 50
connection plar 600
caller-id enable
voice-port 0/0/3
caller-id enable
voice-port 0/2/0:15
mgcp profile default
dial-peer voice 1 pots
description connection-to-PBX
destination-pattern 0....
direct-inward-dial
port 0/2/0:15
forward-digits 4
dial-peer voice 10 voip
destination-pattern ...
session target ipv4:192.168.13.129
dtmf-relay h245-alphanumeric
no vad
dial-peer voice 20 pots
description FXO-K
destination-pattern 9T
progress_ind alert enable 8
progress_ind progress enable 8
progress_ind connect enable 8
direct-inward-dial
port 0/0/2
prefix 9
dial-peer voice 30 pots
description FXO-K2
destination-pattern 9T
direct-inward-dial
port 0/0/1
prefix 9
telephony-service
max-ephones 20
max-dn 100
ip source-address 192.168.14.252 port 2000
cnf-file location flash:
load 7911 term11.default.loads
max-conferences 8 gain -6
transfer-system full-consult
create cnf-files version-stamp Jan 01 2002 00:00:00
ephone-dn 1
number 770
line con 0
line aux 0
line 1/0 1/15
line vty 0 4
login local
transport input telnet
scheduler allocate 20000 1000
endHaving looked at your spreadsheet I see you're failing H323 transfers back to your ISDN system, but only under certain circumstances. Quite why, I'm not sure, possibly because you haven't codec defined on your H323 dial peers. or it could be something else
I think you may be able to work around the problem by adding
" supplementary-service h450.12 " under voice service voip on your CME router as a quick fix.
reference
http://www.cisco.com/en/US/docs/voice_ip_comm/cucme/admin/configuration/guide/cmetrans.html#wpxref44614
worth a try
Adam -
Hello,
I have a workflow that needs to be repeated every month and I'd like to optimize it.
1. DB table in SQL Server 2008 looks something like this:
TABLE [CONTRACTS_GCO_LVL2](
[CONTRACTS_BP_ID] [varchar](50),
[Flag 1] [int] ,
[Flag 2] [int] ,
[Flag 3] [int] ,
2. I bring this table into my BOE IDT 4.0.3 and drag it into object folder. All INT columns become dimensions. This is not what I want. These are 1/0 flags for me and I need them to be measures with SUM aggregation.
3. I select all these INT sourced dimensios and right click on them with "Turn into measure with aggregation function - SUM"
The problem is that step #3 is unbelievably slow. I need to spend hours doing this as I have thousands of these flags. I end up selecting all dimensions from one screen and converting them at the same time. This takes 4-5 minutes. IDT runs on a Win 2008 R2 Enterprise server with 32 GB RAM and 4 CPUs.
In Universe Designer there used to be external strategies that allowed some customization of how the objects get automatically created from DB tables. I know there are no strategies in r4 (External strategy for tables) but is there anything else to make this process faster?
Thank you all!
NatasaHrm, I'm suspecting that perhaps it has to do something with setting CHAR fields. Some of the fields in this table are CHAR but I don't see a call in my PreparedStatement that can set a char, only a String, so that's what I've been using, but it may be that that's not the right thing to do. I'm running Java 1.5.10, and looking through the API there doesn't seem to be anything specifically for char.
-
Applet with JFilechooser called from a Javascript blocks paint messages
Hi,
I am trying to create an applet that can:
1) be called from a Javascript
2) displays a file selection dialog for multi-selecting files
3) returns the selected filenames in a string to the JavaScript
I am able to use doPrivileged to apply the necessary security context to launch a JFilechooser and return the filenames selected. However, When the JFilechooser dialog is visible and the user moves the dialog window around the HTML pages dose not receive any repaint messages. They seem to be blocked by the thread that launched the JFilechooser dialog and is probably blocking update events as the dialog is still visible.
I know I need some type of a message pump so the child thread can inform the parent thread and the browser to repaint. However, I don't know how to do this.
Please help.
------Applet Code Begin:-----
import java.awt.Color;
import java.awt.Graphics;
import java.awt.AWTEvent;
import java.awt.event.AWTEventListener.*;
import java.awt.event.MouseMotionListener;
import java.awt.event.MouseEvent;
import java.io.File;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.Properties;
import java.util.ResourceBundle;
import java.util.Vector;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
public class SampleApplet extends JApplet
boolean allowDirs=false;
boolean allowFiles=true;
boolean hidden=false;
File lastUserDir=null;
public void init()
public void start()
public void stop()
public String selectFiles()
String choosenFiles = null;
choosenFiles = new String((String)java.security.AccessController.doPrivileged(
new java.security.PrivilegedAction()
public Object run()
String choosenFiles=new String();
JFilechooser fc = new JFilechooser();
fc.setFileSelectionMode(allowDirs ? (allowFiles ? JFileChooser.FILES_AND_DIRECTORIES
: JFileChooser.DIRECTORIES_ONLY)
: JFileChooser.FILES_ONLY);
fc.setMultiSelectionEnabled(true);
int returnVal = fc.showOpenDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION)
choosenFiles = "The selected filesnames will be stuffed here";
return choosenFiles; //return whatever you want
return choosenFiles;
------Applet Code End:-----
------Html Code Begin:-----
<html>
<applet id="SampleApplet" archive="SampleApplet.jar"; code="SampleApplet.class"; width="2" height="2" codebase=".">
</applet>
<head>
<title>Untitled Page</title>
<script language="javascript" type="text/javascript">
function SelectFiles_onclick()
var s = (document.applets[0].selectFiles());
alert(s);
</script>
</head>
<body>
Click Test button to select files
<input id="SelectFiles" type="button" value="Select Files" onclick="return SelectFiles_onclick()" />
</body>
</html>
------Html Code End:-----try this:
first don't open the file dialog in the SelectFiles call. Start a new thread that does that. Then return from the SelectFiles call immediately. Now after the user selectes the files call back into the javascript by doing something like this:
pass the list of files into this function, each on being a String in the params array
public synchronized void sendDataToUI(Object[] params) {
if (FuserState.hasQuit()) {
return;
String function = "getUpdates";
if (logger.isLoggable(Level.FINE)) {
logger.log(Level.FINE, "Calling Javascript function " + function);
if (getJavaScriptWindow() == null) {
logger.log(Level.SEVERE, "Member javascriptWindow is NULL, no call was made!");
return;
try {
getJavaScriptWindow().call(function, params);
catch (netscape.javascript.JSException x) {
if (params == null) {
logger.log(Level.SEVERE, "p=NULL PARAM");
} else {
logger.log(Level.SEVERE, "p=" + params[0]);
protected JSObject getJavaScriptWindow() {
javascriptWindow = JSObject.getWindow(this);
} -
Open link in object link for calling sap R/3 Transaction.
Hi all,
Can anyone help with the steps to be done in order to call an SAP Transaction in cProjects via services to Object Links. We succeeded to get the object links from R/3, we are able to see the 'open' link under 'Application' in the Object Link Tab for some of the object type like Routing, Inspection Plan .
1. But some of the Object Types like Documents from DMS Etc can be selected and linked but does not have any 'Open' link(blank).
2. But some of the object types are not searchable. (The search provided no results; Choose other search criteria ) Message is appearing even though we give the correct search criteria.
Pls guide me to solve the issue
Thank you,
Ramesh.Hi Dev,
as this thread has been closed in the meantime (the original poster seemed to have found the solution by himself), I'd suggest you post your question as new one.
Or you check the material you can find at [service.sap.com] at the SAP Support Portal. E.g. Release & Upgrade Info > Installation & Upgrade Guides > SAP Business Suite Applications > SAP PLM using cProject Suite 4.5 > cProjects: Guide for Implementing Object Links
I think inside this document you can find all the information you need.
Best regards,
Thomas
Maybe you are looking for
-
How to check if a physical data channel has data on it
I am aquiring data continuously and am trying to check if there is data on the physical line, if there is digital data I want it to be passed to the next stage, if there is not I want the data diguarded. Is there a way of checking this digital line f
-
ITunes 10.6.3.25 mobile device support fail
I have uninstalled and reinstalled iTunes twice now because both my 2G iPod Touch and 1G iPad both get an error mesage. Itunes Aplle mobile device support requires newer version, please unstall iTunes etc. This getting to be a tedious problem as desp
-
Where do I find the UI Scaling option in Photoshop CC 2014?
I have a Companion Cintiq running Win 8.1..I am a new PS user..After searching for an answer to the tiny and unreadable text and icons on my screen and not being able to enlarge them (no, the display fix inside Windows doesn't do it), I basically fou
-
Hi, We got an error in the JMS comunication channel. After we got this error, we restarted the java stack. But then the JMS communication channels did not resume the connectivity automatically. We had to manually start and stop the channels. Even we
-
Annotation coordinate type crashes VB6 IDE
VB6.0 sp6 on windows XP pro with Demo for Measuremnt studio 6 for VB6 In the propert pages for a CWGRAPH control in VB6 I select "Annotations" - "Coordinate type" - when I select "Plot area coordinates" VB6 crashes The instruction at "0x73dd1c9d" ref