Programming Andor EMCCD GUI with Timed Structures
Hi everyone,
I am currently trying to program a GUI using Labview 2009 for Andor EMCCD camera IXon. I think basically there are 3 things that need to be monitored while running the program.
1. Monitor the temperature of camera to ensure that it is stable at -70 deg C
2. Monitor the inputs from user settings.
3. To do live imaging, viewing and recording of image or image capture (functionality).
For a start, I am actually planning to use three timed loop to run in parallel. I have attached my sample code below. Does anyone know that Is it a good approach and efficient approach to do it? Or is there any other better approach?
Greatly appreciate all your comments and feedback.
Kind regards,
Han Yen
Attachments:
Andor_live_0.0.2.vi 105 KB
Actually I haven't benchmark yet. The vi is not fully tested yet. I saw some examples on textbooks using loops so I am just a little concern whether I am on the right track since I have not much experience with labview..
Similar Messages
-
Timed structure for output in producer consumer data acquisition
Hello LabVIEW community,
I have a bit of a problem. I am writing a program that is primarily for data aquisition but has a few control features as well. I need the program to aquire and write several channels of data at a relitively high speed. The program does this fine ( in the top 3 loops fo the program). I need the program to also send a seires of two output signals in response to a particular condition. When a certain channel registers a value of above a specified number, I need an output channel to write an anologue signal for 225 seconds and then a signal of a differnt value to the same channel untill the condition occurs again (not for several hours).
I put this action in a timed structure inside of a case structure. The case structure and timed structure are inside of a second consumer loop. I have no idea if this is ligitimate. This event takes much longer than any of the other loops which run at 1 or 2 seconds. When I exicute the program with "highlight exexutuion" this longer (case/ timed ) loop never executes. I asssume this has to do with the mismatch in time scales of this loop and the other loops in the program. I also didn't really understand the help information on timed structures, so its possible that I just need better/ different inputs to the timed stuctures.
If anyone can see any obvious problem in the code or suggest a better way to do the output function I would really appreciate the help. My code is attached.
Thanks,
JoI can't figure out how to fix your code, but I can point out the things I see wrong with it.
1. You are dequeueing elements from the same queue in the same loop. In one you are not taking the element, and in parallel, you are taking an element. I see that in your bottom two loops. Why? That code won't execute until the queue gets two elements in it. And which dequeue gets it first and which gets it second is an arbitrary race condition. So there is no certainly of order (first 4 vs. last 4 currents in the one loop), or which gets kept and which gets discarded (in the other loop.)
2. You are creating and/or clearing DAQ tasks in every loop iteration. Tasks should be created before a loop, used inside the loop (read or write), then cleared once the loop is done. Anything else is wasteful, time consuming, and could lead you to run out of resources.
3. You are using the STOP function which is pretty much like hitting the abort button on the toolbar. No program should ever stop that way. All loops should exit gracefully.
4. You have a data dependncy between your bottom two loops because of the boolean wire running from one to the other. That bottom loop will only run once (if the value is True), or run forever (if the value is false).
5. Use of the dynamic datatype. You are taking waveforms, converting them to a blue wire, then coercing them into another datatype such as just displaying a scalar in an indicator. A lot of unnecessary conversions there.
6. Your thermometer indicators have a digital display you can make visible. Then you won't need the separate numeric indicator to display the value.
7. For loop that runs only 1 time because of the constant wired to the N terminal. Get rid of the For Loop.
8. Check your spelling. The word "Temperatures" on the graph, and one instance of "distillate" is missing an "l".
Until all of these problems are fixed, it is not worth talking about timing of timed structures. Some of these problems were discussed in your other thread. http://forums.ni.com/t5/LabVIEW/producer-consumer-missing-channels/m-p/3159757#M911255 But now it seems like you've made things even more complicated without fixing the basic problems. -
Is there a way to interface Labview Web GUI with Fusion Charts?
Is there a way to interface Labview Web GUI with Fusion Charts for dynamic web presentation?
http://www.fusioncharts.com/I have a ballistics program which our clients can use (see attached). Basically there is a series of Cascading Combo boxes that the user must select for Bullet Manufacturer, Caliber, and Bullet ID. The program then goes out to the relevant data file (.CSV) and provides ballistic inputs for the selected projectile. The user is also required to enter in additional data, such as Sight Height, LOS Range, Temp, etc.. Once all data is input, the user either hits the Calculate Button or the Tab (I'm using Event Structures and I now realize this is an issue for Web UI Builder), and the data gets passed to a MathScript which then crunches numbers and spits output to fill a table and a series of Graphs based upon the tablulated data (if so desired).
I was hoping to use Labivew for the first two parts ( Data Collection and Number Crunching) and use something like Fusion Charts for the presentation. I tried learning Ruby on Rails. I was successful with the Ruby part (basically the Mathscript portion) but really got hung up on the Rails section and the need for something like JSON to interface with it. Could not find a useful source of information which really showed you how to combine the two effectively.
Attachments:
Ballistics1.JPG 144 KB
Ballistics2.JPG 265 KB -
Can I control pages in tab control with case structure?
Hi there!
I'm quite new to Labview and my company wants me to make some programs for testing of electronics. I'm currently working on the GUI and I would like to control three pages in a tab control with buttons.
I only got the base package of Labview 2009 so I can't use Event structure.
If you open my .vi you can see I have a tab control with three pages. In the first page I got a "Start" button that should open the next page in the tab control. In the middle page I have a "Tilbake (Back)" button that should go back to the previous page. The button called "Lagre (Save)" should work as a next button and go to the last page. On that page I have a "Tilbake(Back)", "Ny test(New test -> go to first page again)" and "Avslutt (Quit)".
The buttons under the tab control where something I copied from an example just to try out. That works perfectly, but I cannot edit the Event Structure from the example.
Is this possible to solve with Case Structure? Or maybe there are other solutions? Feel free to edit my .vi if you like
Thanks for the help!
Regards,
Even Myhre
Test engineer
Regards,
Even
Certified LabVIEW Associate Developer
Automated Test Developer
Topro AS
Norway
Solved!
Go to Solution.
Attachments:
Test GUI.vi 29 KBHi again!
Well it solved my problem, but I got a strange error while running my program.
When I press "start", the tab control changes page. When I press "tilbake(back)" it is totally random how many clicks it is necessary for it to change back to the first page. It can be from 1 to 20-30 clicks. Which is very strange since all other navigation buttons works perfect. "Tilbake(back)" button on the last page works correctly and has the same structure as the "tilbake(back)" button on the middle page.
I have tried all the different options on how the button will response on a press.
Regrads,
Even
Regards,
Even
Certified LabVIEW Associate Developer
Automated Test Developer
Topro AS
Norway
Attachments:
Test GUI2.vi 28 KB -
Program updating the value with succeeding 0
Hi
We have got a problem.
We have developed a program to update the value of the condition type. The upload file will have the SO, line item, condition type and value.
In the background, the sales order change BAPI is called and the value of the condition type is updated. There is no bug in the program for this functionality with reference to the problem.
When I upload, the value is getting uploaded correctly. But for some users, the value is updated with an additional 0 at the end. For example if 78 is the value of a condition type, the update happens as 780. The strange behaviour is that if I take that user id and password and upload in my laptop, the value is correctly uploaded without any addtional 0.
We have checked the user profile of all the problamatic users. They are fine. The xls sheet decimal notation is checked and they are also fine. There is no bug in the program, as it is working fine for many users.
What else should I be checking to solve this issue. An ABAPer advised to check the GUI level difference. I dont know how to do that but there should not be any such difference in the GUI versions for the users.
Can somebody put some light on this issue.Hi Navaneetha,
The Excel version is the same for you and the user?
Can the same be debugged and rectified?
Regards
Saurabh -
How to use STRANS to translate XML to ABAP with deep structure
every experts, I want to use Tcode: STRANS to translate XML to ABAP, But it does not work well,
here is XML code,I want to translate this XML into an an Inter table gt_orders with deep structure of oeb, and colum oeb is also and intertable,how can I do this.
<?xml version="1.0" encoding="gb2312" ?><axmt410><ObjectID>setSalesOrder</ObjectID><azp01>000000</azp01><oea00>1</oea00><ta_oeaecn>SO-140227-3041</ta_oeaecn><oea03>25325017</oea03><oea02>2014-02-27 17:44:44.0</oea02><ta_oea002>2763.0</ta_oea002><ta_oea001>0.0</ta_oea001><oea14></oea14><oea15>25325017</oea15><oea23>RMB</oea23><oeaconf>S3</oeaconf><oea10></oea10><oeaud01>null</oeaud01><ta_oea007></ta_oea007><oea25>101</oea25><ta_oea008>0</ta_oea008><ta_oea009>null</ta_oea009><oeauser>Hanjingya</oeauser><ta_oeanday>2014-02-27 17:44:44.991</ta_oeanday><ta_oeamday>2014-02-28 08:30:14.866</ta_oeamday><ta_oeacday>2014-02-28 08:30:14.866</ta_oeacday><oeaud02>0</oeaud02><ta_oea030>null</ta_oea030><oeb><oeb03>1</oeb03><oeb04>7400208249</oeb04><oeb05>PCS</oeb05><oeb17>921.0</oeb17><oeb13>921.0</oeb13><oeb15></oeb15><oeb12>5</oeb12><oeb09>990001</oeb09><ta_oeb001></ta_oeb001><ta_oeb002>Yunnan</ta_oeb002><ta_oeb003>address1</ta_oeb003><ta_oeb004>zhangdagui、zhanglan</ta_oeb004><ta_oeb005>15974749998、15987782008</ta_oeb005><ta_oeb006>address and street</ta_oeb006><oebud01></oebud01></oeb><oeb><oeb03>2</oeb03><oeb04>7400208250</oeb04><oeb05>PCS</oeb05><oeb17>921.0</oeb17><oeb13>921.0</oeb13><oeb15></oeb15><oeb12>5</oeb12><oeb09>990001</oeb09><ta_oeb001></ta_oeb001><ta_oeb002>Yunnan</ta_oeb002><ta_oeb003>address2</ta_oeb003><ta_oeb004>zhangdagui、chenlan</ta_oeb004><ta_oeb005>15974749998、15987782008</ta_oeb005><ta_oeb006>address and street</ta_oeb006><oebud01></oebud01></oeb></axmt410>
I write these codes in SAP XSLT editor
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output encoding="iso-8859-1" indent="yes" method="xml" version="1.0"/>
<xsl:strip-space elements="*"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<ORDERS>
<xsl:apply-templates select="//axmt410"/>
</ORDERS>
</asx:values>
</asx:abap>
</xsl:template>
<xsl:template match="axmt410">
<OBJECTID>
<xsl:value-of select="ObjectID"/>
</OBJECTID>
<AZP01>
<xsl:value-of select="azp01"/>
</AZP01>
<OEA00>
<xsl:value-of select="oea00"/>
</OEA00>
<TA_OEAECN>
<xsl:value-of select="ta_oeaecn"/>
</TA_OEAECN>
<OEA03>
<xsl:value-of select="oea03"/>
</OEA03>
<OEA05>
<xsl:value-of select="oea05"/>
</OEA05>
<OEA02>
<xsl:value-of select="oea02"/>
</OEA02>
<TA_OEA002>
<xsl:value-of select="ta_oea002"/>
</TA_OEA002>
<TA_OEA001>
<xsl:value-of select="ta_oea001"/>
</TA_OEA001>
<OEA14>
<xsl:value-of select="ora14"/>
</OEA14>
<OEA15>
<xsl:value-of select="ora15"/>
</OEA15>
<OEA23>
<xsl:value-of select="ora23"/>
</OEA23>
<OEACONF>
<xsl:value-of select="oeaconf"/>
</OEACONF>
<OEA10>
<xsl:value-of select="ora10"/>
</OEA10>
<OEAUD01>
<xsl:value-of select="oeaud01"/>
</OEAUD01>
<TA_OEA007>
<xsl:value-of select="ta_oea007"/>
</TA_OEA007>
<OEA25>
<xsl:value-of select="ora25"/>
</OEA25>
<TA_OEA008>
<xsl:value-of select="ta_oea008"/>
</TA_OEA008>
<TA_OEA009>
<xsl:value-of select="ta_oea009"/>
</TA_OEA009>
<TA_OEA013>
<xsl:value-of select="ta_oea013"/>
</TA_OEA013>
<TA_OEA014>
<xsl:value-of select="ta_oea014"/>
</TA_OEA014>
<TA_OEA015>
<xsl:value-of select="ta_oea015"/>
</TA_OEA015>
<TA_OEA016>
<xsl:value-of select="ta_oea016"/>
</TA_OEA016>
<TA_OEA017>
<xsl:value-of select="ta_oea017"/>
</TA_OEA017>
<TA_OEA018>
<xsl:value-of select="ta_oea018"/>
</TA_OEA018>
<TA_OEA019>
<xsl:value-of select="ta_oea019"/>
</TA_OEA019>
<TA_OEA020>
<xsl:value-of select="ta_oea020"/>
</TA_OEA020>
<TA_OEA021>
<xsl:value-of select="ta_oea021"/>
</TA_OEA021>
<TA_OEA022>
<xsl:value-of select="ta_oea022"/>
</TA_OEA022>
<TA_OEA028>
<xsl:value-of select="ta_oea028"/>
</TA_OEA028>
<OEAUSER>
<xsl:value-of select="oeauser"/>
</OEAUSER>
<TA_OEANDAY>
<xsl:value-of select="ta_oeanday"/>
</TA_OEANDAY>
<TA_OEAMDAY>
<xsl:value-of select="ta_oeamday"/>
</TA_OEAMDAY>
<TA_OEACDAY>
<xsl:value-of select="ta_oeacday"/>
</TA_OEACDAY>
<OEAUD02>
<xsl:value-of select="oeaud02"/>
</OEAUD02>
<TA_OEA030>
<xsl:value-of select="ta_oea030"/>
</TA_OEA030>
<OEB>
<xsl:for-each select="oeb">
<OEB03>
<xsl:value-of select="oeb03"/>
</OEB03>
<OEB04>
<xsl:value-of select="oeb04"/>
</OEB04>
<OEB05>
<xsl:value-of select="oeb05"/>
</OEB05>
<OEB17>
<xsl:value-of select="oeb17"/>
</OEB17>
<OEB13>
<xsl:value-of select="oeb13"/>
</OEB13>
<OEB15>
<xsl:value-of select="oeb15"/>
</OEB15>
<OEB12>
<xsl:value-of select="oeb12"/>
</OEB12>
<OEB09>
<xsl:value-of select="oeb09"/>
</OEB09>
<TA_OEB001>
<xsl:value-of select="ta_oeb001"/>
</TA_OEB001>
<TA_OEB002>
<xsl:value-of select="ta_oeb002"/>
</TA_OEB002>
<TA_OEB003>
<xsl:value-of select="ta_oeb003"/>
</TA_OEB003>
<TA_OEB004>
<xsl:value-of select="ta_oeb004"/>
</TA_OEB004>
<TA_OEB005>
<xsl:value-of select="ta_oeb005"/>
</TA_OEB005>
<TA_OEB006>
<xsl:value-of select="ta_oeb006"/>
</TA_OEB006>
<OEBUD01>
<xsl:value-of select="oebud01"/>
</OEBUD01>
</xsl:for-each>
</OEB>
</xsl:template>
</xsl:transform>
and I use below ABAP program for a test, but the items from XML can not translate into Interner table gt_orders-oeb[]
TYPE-POOLS abap.
CONSTANTS gs_file TYPE string VALUE 'C:\temp\order02.xml'.
* This is the structure for the data from the XML file
TYPES:
BEGIN OF typ_s_oeb,
oeb03 TYPE string, "
oeb04 TYPE string, "
oeb05 TYPE string, "
oeb17 TYPE string, "
oeb13 TYPE string,
oeb15 TYPE string,
oeb12 TYPE string, "
oeb09 TYPE string, "
ta_oeb001 TYPE string, "
ta_oeb002 TYPE string, "
ta_oeb003 TYPE string, "
ta_oeb004 TYPE string, "
ta_oeb005 TYPE string, "
ta_oeb006 TYPE string, "
ta_oeb013 TYPE string, "
ta_oeb014 TYPE string, "
ta_oeb015 TYPE string, "
ta_oeb016 TYPE string, "
ta_oeb017 TYPE string, "
ta_oeb018 TYPE string, "
ta_oeb019 TYPE string, "
ta_oeb020 TYPE string, "
ta_oeb021 TYPE string, "
ta_oeb022 TYPE string, "
oebud01 TYPE string, "
END OF typ_s_oeb.
TYPES: typ_t_oeb TYPE TABLE OF typ_s_oeb WITH KEY oeb03.
TYPES:
BEGIN OF typ_s_order,
objectid TYPE string, "
azp01 TYPE string, "
oea00 TYPE string, "
ta_oeaecn TYPE string, "
oea03 TYPE string, "
oea02 TYPE string, "
ta_oea002 TYPE string, "
ta_oea001 TYPE string, "
oea14 TYPE string, "
oea15 TYPE string,
oea23 TYPE string, "
oeaconf TYPE string, "
oea10 TYPE string, "
oeaud01 TYPE string, "
ta_oea007 TYPE string, "
oea25 TYPE string, "
ta_oea008 TYPE string, "
ta_oea009 TYPE string, "
oeauser TYPE string, "
ta_oeanday TYPE string, "
ta_oeamday TYPE string, "
ta_oeacday TYPE string, "
oeaud02 TYPE string, "
ta_oea030 TYPE string, "
ta_oea013 TYPE string,
ta_oea014 TYPE string,
ta_oea015 TYPE string,
ta_oea016 TYPE string,
ta_oea017 TYPE string,
ta_oea018 TYPE string,
ta_oea019 TYPE string,
ta_oea020 TYPE string,
ta_oea021 TYPE string,
ta_oea022 TYPE string,
ta_oea025 TYPE string,
oeb TYPE typ_t_oeb,
END OF typ_s_order.
* Table for the XML content
DATA: gt_itab TYPE STANDARD TABLE OF char2048,
gs_itab LIKE LINE OF gt_itab.
* Table and work ares for the data from the XML file
DATA: gt_orders TYPE STANDARD TABLE OF typ_s_order,
gs_orders TYPE typ_s_order.
* Result table that contains references
* of the internal tables to be filled
DATA: gt_result_xml TYPE abap_trans_resbind_tab,
gs_result_xml TYPE abap_trans_resbind.
* For error handling
DATA: gs_rif_ex TYPE REF TO cx_root,
gs_var_text TYPE string.
* Get the XML file from your client
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = gs_file
CHANGING
data_tab = gt_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
not_supported_by_gui = 17
error_no_gui = 18
OTHERS = 19.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
* Fill the result table with a reference to the data table.
* Within the XSLT stylesheet, the data table can be accessed with
* "IPERSON".
GET REFERENCE OF gt_orders INTO gs_result_xml-value.
gs_result_xml-name = 'ORDERS'.
APPEND gs_result_xml TO gt_result_xml.
* Perform the XSLT styleshee
TRY.
CALL TRANSFORMATION zfx_so_xml_to_abap
SOURCE XML gt_itab
RESULT (gt_result_xml).
CATCH cx_root INTO gs_rif_ex.
gs_var_text = gs_rif_ex->get_text( ).
MESSAGE gs_var_text TYPE 'S'.
ENDTRY.
LOOP AT gt_orders INTO gs_orders.
ENDLOOP.The simplest way seems to me is to use a XSL file for that. The <xsl:output> attributes doctype-system and doctype-public generate the DTD declaration <!DOCTYPE YOUR_ROOT SYSTEM "yourDTDfile.dtd"> and <!DOCTYPE YOUR_ROOT PUBLIC "yourDTDfile.dtd">, respectively.
When calling transformerInstance.transform() the XSLT processor performs the identity transformation - it just copies elements, attributes, content, processing instructions and comments to the result stream.
If you're using an xsl file for your transformation already, simply add <xsl:output doctype-system="yourDTDfile.dtd"/> to your existing XSL file.
If you're only using the identity transformation you'd need to change the line of code where you obtain the transformer instance from the TransformerFactory to:
t_factory.newTransformer(new StreamSource("test.xsl"));
and use this as test.xsl:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output doctype-system="yourDTDfile.dtd"/>
<!-- this is the identity transformation -->
<xsl:template match="*|@*|comment()|processing-instruction()|text()">
<xsl:copy>
<xsl:apply-templates select="*|@*|comment()|processing-instruction()|text()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>Good luck. -
ABAP program issues..Unicode program "ITAB" must have the same structure?
Dear Expert,
I coded below code in se38, but system give below error message, could please kindly advie issue reason? Thanks!!
Error message: A line of "ITAB" and "LINE" are not mutually convertible. In a Unicode program "ITAB" must have the same structure layout as "LINE" independent of the length of a . Unicode character. Unicode character.
REPORT ZTEST_HIHIHI.
Data: begin of line,
num type i,
sqr type i,
end of line,
itab type standard table of line with key table_line.
Do 5 times.
line-num = sy-index.
line-sqr = sy-index ** 2.
append line to itab.
enddo.
loop at itab into line.
write: / line-num, line-sqr.
endloop.
clear itab.Hello Hoo Laa,
This is because the way you have defined LINE, it is a structure & not a data type. Hence you are facing the issue
You have to change the data declaration to:
itab LIKE STANDARD TABLE OF line WITH KEY table_line.
BR,
Suhas -
Unable to put a timed structure in a parallel for loop, error -808
If I try to place a Timed Structure in a Parallel For Loop, the TS needs a different structure name per instance to prevent collisions. However, setting the Structure Name node to something unique per instance doesn't work, I get error -808. Have I missed something?
Thoric (CLA, CLED, CTD and LabVIEW Champion)That got me thinking - something to do with the number of compiled parallel instances.
Indeed, the compiler creates a number of parallel instances of the for loop in the compiled code (in my case 8), and uses the number requested at the Parallel Instances terminal (just under the Iterations terminal), which is set to 2. Therefore the compiler has created 8 instances of the Timed Structure, each in its own for loop instance, but they all have the same defined Structure Name. When launched, there is an immediate conflict because they can't share the same name, and error -808 is launched before the set Structure Name function can change it. Hence the error still shows when requesting only one instance, because the other seven still exist.
I guess this means you can't have Timed Structures (or Timed Loops for that matter too) in a Parallelised For Loop?
Thoric (CLA, CLED, CTD and LabVIEW Champion) -
Hi,
I develop a Java code using smartcardio API to program a smart card. My GUI allows to add at most 5 smart card readers that will wait for card present, then do authentication and program the smart card with an application, then wait for card removal. This is a separate thread running in a loop for each smart card reader added as programmer.
The problem occurs when a certain smart card is in progress and I inserted another smart card to another smart card reader. Both smart card reader halts and throw sun.security.smartcardio.PCSCException: Unknown error 0x8010002f.
I also observed that every time there is an attempt to insert/remove a smart card in the smart card reader that is connected to the USB port would cause the programming in progress to be interrupted and throw the PCSCException.
These are some exceptions I got during my testing:
sun.security.smartcardio.PCSCException: Unknown error 0x8010002f
at sun.security.smartcardio.PCSC.SCardTransmit(Native Method)
at sun.security.smartcardio.ChannelImpl.doTransmit(ChannelImpl.java:171)
java.lang.Exception: Loader Record Failed: 6E | 0 //Sometimes I got this return code SW1 0x6E SW2 0x00 which means an APDU with an invalid 'CLA' bytes was received. I had check the command before it was sent and it was correct.
Help me understand this issue. I think the CardTerminal.isCardPresent(), CardTerminal.waitForCardPresent(0), and CardTerminal.waitForCardAbsent(0) cause this issue that CardChannel.transmit(apduCommand) is interrupted or the smart card insertion/removal causes the CardChannel.transmit(apduCommand) is interrupted.
Regards,
KnivezHi,
when you work with one smartcard reader only usually you address the slot -1 that means "the first found".
But to deal with multiple readers you have to use slots of course since one reader will be slot 0, next reader will be slot 1 and so on...
So a credential object will be identified on a system by a couple
<slot,alias>
After that, the way to address slots (I mean the syntax) depends on the classes you are using...
Bye -
Function call in SAP GUI with errors
Dear All,
When i am calling FM of Comports using OLE Integration i got " Function call in SAP GUI with errors" error
now my front end version is 6.40. how to solved this problem.
In my Function Module i am creating object like this
CREATE OBJECT O_OBJ 'MSCOMMLib.MSComm.1'.
IF SY-SUBRC <> 0.
RAISE NO_CREATE_OBJECT.
ENDIF.
it raised the sy-subrc = 2 this error is "Function call in SAP GUI with errors"
send to me how to handle this error.
Thank,
Vijay.gHi Vijay,
We are facing the same issue.
Interestingly
From program's code only we are facing this issue.
If we display the program and Execute (Direct processing), it is working fine.
Can you please share how you resolved this issue.
Thanks
Sreedhar -
Creating dynamic internal table with deep structure
Hi all,
I need to create an internal table with deep structure dynamically. I've already created tables with method 'create_dynamic_table' but I'm struggling with the deep structure.
I would need an internal table with the following structure:
DATA: BEGIN OF lt_t1,
s1 TYPE REF TO data,
s2 TYPE REF TO data,
END OF lt_t1.
S1 and S2 have to be tables.
It might be possible with RTTS but all the examples in the forums (that I've found so far) are related to at least one DDIC-structure. And that's my problem because both tables are created during runtime.
Thank you in advance
NicolaHi Frédéric,
I hope my english is good enough to explain it correctly:
We use a function builder for SEM-BPS which copies data from one Cube to another. This Cube is transactional, so you can't easily read a structure out of DDIC.
The export parameter of this function builder is a table with type 'any table'.
Until today we used a fixed definition e.g.:
TYPES:
BEGIN OF xtyp_chas,
/sie/sr_ocomp TYPE /b52/oisr_ocomp,
/sie/ts_03psp TYPE /b52/oits_03psp,
0activity TYPE /bi0/oiactivity,
0acty_elemt TYPE /bi0/oiacty_elemt,
0costelmnt TYPE /bi0/oicostelmnt,
0co_area TYPE /bi0/oico_area,
0creditor TYPE /bi0/oicreditor,
0currency TYPE /bi0/oicurrency,
0curtype TYPE /bi0/oicurtype,
0db_cr_ind TYPE /bi0/oidb_cr_ind,
0fiscper TYPE /bi0/oifiscper,
0fiscper3 TYPE /bi0/oifiscper3,
0fiscyear TYPE /bi0/oifiscyear,
0metype TYPE /bi0/oimetype,
0network TYPE /bi0/oinetwork,
0part_actty TYPE /bi0/oipart_actty,
0part_cctr TYPE /bi0/oipart_cctr,
0piobjsv TYPE /bi0/oipiobjsv,
0project TYPE /bi0/oiproject,
0unit TYPE /bi0/oiunit,
0vtdetail TYPE /bi0/oivtdetail,
0vtstat TYPE /bi0/oivtstat,
0vtype TYPE /bi0/oivtype,
0bus_area TYPE /bi0/oibus_area,
0cashdetail TYPE /bi0/oicashdetail,
0cashtype TYPE /bi0/oicashtype,
0comp_code TYPE /bi0/oicomp_code,
0coorder TYPE /bi0/oicoorder,
0cs_dimen TYPE /bi0/oics_dimen,
0cs_unit TYPE /bi0/oics_unit,
0int_bus TYPE /bi0/oiint_bus,
0part_abcpr TYPE /bi0/oipart_abcpr,
0part_coord TYPE /bi0/oipart_coord,
0part_wbsel TYPE /bi0/oipart_wbsel,
0piovalue TYPE /bi0/oipiovalue,
0profit_ctr TYPE /bi0/oiprofit_ctr,
0ps_obj TYPE /bi0/oips_obj,
0statussys0 TYPE /bi0/oistatussys0,
zfbwheroj TYPE /bic/oizfbwheroj,
END OF xtyp_chas,
BEGIN OF xtyp_kyfs,
0amount TYPE /bi0/oiamount,
0quantity TYPE /bi0/oiquantity,
zf03oaws TYPE /bic/oizf03oaws,
zf03oqty TYPE /bic/oizf03oqty,
zf03ozsta TYPE /bic/oizf03ozsta,
END OF xtyp_kyfs,
BEGIN OF xtyp_zf03g003,
s_chas TYPE xtyp_chas,
s_kyfs TYPE xtyp_kyfs,
END OF xtyp_zf03g003,
xtyp_zf03g003_t TYPE HASHED TABLE OF xtyp_zf03g003
WITH UNIQUE KEY s_chas.
DATA: lt_ibm_data TYPE xtyp_zf03g003_t,
ls_ibm_data TYPE xtyp_zf03g003.
So one table (s_chas) contains the characteristics of the Cube and the other (s_kyfs) contains the keyfigures. That's exactly the format we need for the export parameter. At the end of the program, we use the following coding to fill the export table (eto_chas):
loop at lt_ibm_data into ls_ibm_data.
collect ls_ibm_data-s_chas into eto_chas.
endloop.
So in this moment I give this table the structure that is needed to move the data into the cube. I can't change the requirement because it is a standard interface.
I would like to change that coding to be dynamically. Because if somebody changes a charasteristic or a keyfigure in the cube, we would have to change the function builder too. I don't think that the SEM-BPS department will let us know every time they've changed something anyway.
So I hope that my explanation wasn't too confusing
Nicola -
Transaction iView( Tcode) Error: Function call in SAP GUI with errors
Hey Guys:
I use Transaction iView to show the ABAP application on Portal. The application works to import data from client to BW. After I fill all the information and execute the application, the system returns the error message " Function call in SAP GUI with errors".
The ABAP application works fine on SAP GUI, so it should not be the program problem.
Any Suggestion for this will be nice. Thanks for your help.Hey Duy:
Thanks for your response. I check the servers which i have access, and all of them cannot work correctly.
First, other iViews(Dynpro,BW Report,BSP,KM...) work fine.
Second, our backend system is a BW server.
I try to do so on our EP production and development, also connect them to our BW production and development servers. All of those are failed and have the same problem.
The t-code comes from our abap program and register on BW server, and hte program works fine when I use SE38 to execute it.
PS. The Transaction iView works fine before, but I have no idea why it just crash now.
Please let me know if you have any suggestion about this. -
ALV dynamic with deep structure
Hi All,
I need to program an ALV Report with a deep structure based on a outbound proxy structure, so I should pass to ALV function or ALV Method a dynamic table and a dynamic structure.
I tried to do it but I got a dump using this function module REUSE_ALV_GRID_DISPLAY with these parameters: STRUCTURE_NAME and T_OUTTAB.
Please, some suggestions about this.
Thanks in advance.
Alexis.Hi Vasanth
this is my example:
DATA: tl_proxy TYPE TABLE OF zpidt_operacion.
DATA: sl_proxy TYPE zpidt_operacion.
sl_proxy-dt_operacion-dt_cab_operacion-vkorg = '0001'.
APPEND sl_proxy TO tl_proxy.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_structure_name = 'ZPIDT_OPERACION'
TABLES
t_outtab = tl_proxy
EXCEPTIONS
program_error = 1
OTHERS = 2.
Please, could you tell me how I have to do it.
Thanks,
Alexis. -
What is the Program Reporting in the Project template structure?!
Dear All,
I have a question regarding the program reporting that in the Project Structure what it's used for. In addition i have a question about the two check-boxes under the program reporting what it's used for also:-
a) Setup Project as a program.
b)Allow linked project to belong to multiple program.
Thanks in advance.Here's a quick overview on Program reporting:
A program is a collection of projects linked in a hierarchical fashion. The Oracle Projects program management functionality enables you to create a program by linking multiple
projects (and programs) to form a program hierarchy.
Programs enable you to view and manage workplan and financial information for a group of projects. This capability provides you with benefits that are not available when
you manage each project individually. With programs, you can specify how multiple projects are interrelated within a program and review interrelated project information
as a whole. You can track and report on rolled-up planned, actual, and forecasted effort, cost, and revenue, as well as progress and schedule information for all projects in the
program hierarchy.
Therefore, as a program manager, you have a strategic focus on the overall program, rather than a tactical project-centric focus.
The linking of projects within a program follows a top-down approach. If you have the appropriate security privileges, then you can navigate to and drill down into the individual linked projects within the program hierarchy.
To enable program reporting you have to select the 'Setup Project as a Program' button on your project. Also you can allow one project to be part of one or many programs, so the second check box "Allow linked project to belong to multiple program" controls that feature.
Dean -
Running Java program outside Jdeveloper -- issue with dependent libaries
Hello, I am using Jdeveloper 11.1.1.7 and have built a java application that imports XML Files into Oracle, then exports an XML file for others to pick up. I use jaxb, java persistance, and javax.mail etc....
when I run the application in Jdeveloper it works properly, and now I am trying to place the application in my u:\temp directory to test run from the command line. Later I will move this all to linux to run.
In Jdeveloper I followed the directions about adding all the dependent jars into the application using the File Groups ( http://tompeez.wordpress.com/2011/06/01/creating-a-jar-file-in-jdeveloper/ )
Doing this creates a very big jar file with all of the dependent jar files in it called xmlseprocessing.jar and then I run it as such in dos
set classpath=.;javax.mail_1.4.jar;xmlseprocessing.jar
u:
cd u:\temp
C:\Oracle11117\Middleware\jdk160_24\bin\javac commandLineStartup.java
C:\Oracle11117\Middleware\jdk160_24\bin\java commandLineStartup
I get this error:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/MessagingException
I look on the internet, and finally decide to grab the javax.mail_1.4.jar and put it in my u:\temp directory, and update the classpath, and run it, but then I get this error.
Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/Persistence
at in_jpa_db_objects.JavaServiceFacade.<init>(JavaServiceFacade.java:19)
at util_import_factory.OraConnInput.OraCleaner(OraConnInput.java:43)
at startup.startImport.processIncomingXMLs(startImport.java:49)
at startup.startAll.startupProcesses(startAll.java:92)
at commandLineStartup.main(commandLineStartup.java:23)
Caused by: java.lang.ClassNotFoundException: javax.persistence.Persistence
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:305)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:246)
... 5 more
My assumption is that I am going to have to grab every jar, add it to my local directory and create a very long path like oracle does when starting the application from jdeveloper (see below)
QUESTION: Given that I have added all of the required libraries to the xmlseprocessing.jar -- why is this happening? Any solution? Am I doing something wrong?
Points awarded!!!! Any help would be greatly appreciated.
This is what I see in the log window when I run the application in Jdeveloper.
C:\Oracle11117\Middleware\jdk160_24\bin\javaw.exe -clientlasspath C:\JDeveloper\mywork\xmlProcessing20131021_1100\.adf;C:\JDeveloper\mywork\xmlProcessing20131021_1100\XML_SE\classes;C:\Oracle11117\Middleware\wlserver_10.3\server\lib\weblogic.jar;C:\Oracle11117\Middleware\modules\com.oracle.toplink_1.0.0.0_11-1-1-5-0.jar;C:\Oracle11117\Middleware\modules\org.eclipse.persistence_1.1.0.0_2-1.jar;C:\Oracle11117\Middleware\modules\com.bea.core.antlr.runtime_2.7.7.jar;C:\Oracle11117\Middleware\modules\javax.persistence_1.0.0.0_2-0-0.jar;C:\Oracle11117\Middleware\oracle_common\modules\oracle.xdk_11.1.0\xmlparserv2.jar;C:\Oracle11117\Middleware\oracle_common\modules\oracle.xdk_11.1.0\xml.jar;C:\Oracle11117\Middleware\modules\javax.jsf_1.1.0.0_1-.jar;C:\Oracle11117\Middleware\modules\javax.ejb_3.0.1.jar;C:\Oracle11117\Middleware\modules\javax.enterprise.deploy_1.2.jar;C:\Oracle11117\Middleware\modules\javax.interceptor_1.0.jar;C:\Oracle11117\Middleware\modules\javax.jms_1.1.1.jar;C:\Oracle11117\Middleware\modules\javax.jsp_1.2.0.0_2-.jar;C:\Oracle11117\Middleware\modules\javax.jws_2.0.jar;C:\Oracle11117\Middleware\modules\javax.activation_1.1.0.0_1-1.jar;C:\Oracle11117\Middleware\modules\javax.mail_1.1.0.0_1-4-.jar;C:\Oracle11117\Middleware\modules\javax.xml.soap_1.3.1.0.jar;C:\Oracle11117\Middleware\modules\javax.xml.rpc_1.2.1.jar;C:\Oracle11117\Middleware\modules\javax.xml.ws_2.1.1.jar;C:\Oracle11117\Middleware\modules\javax.management.j2ee_1.0.jar;C:\Oracle11117\Middleware\modules\javax.resource_1.5.1.jar;C:\Oracle11117\Middleware\modules\javax.servlet_1.0.0.0_2-5.jar;C:\Oracle11117\Middleware\modules\javax.transaction_1.0.0.0_1-ar;C:\Oracle11117\Middleware\modules\javax.xml.stream_1.1.1.0.jar;C:\Oracle11117\Middleware\modules\javax.security.jacc_1.0.0.0_1-1.jar;C:\Oracle11117\Middleware\modules\javax.xml.registry_1.0.0.0_1-0.jar;C:\Oracle11117\Middleware\jdeveloper\ide\macros\..\..\..\oracle_common\modules\oracle.jdbc_11.1.1\ojdbc6dms.jar;C:\Oracle11117\Middleware\jdeveloper\ide\macros\..\..\..\oracle_common\modules\oracle.nlsrtl_11.1.0\orai18n.jar;C:\Oracle11117\Middleware\oracle_common\modules\oracle.odl_11.1.1\ojdl.jar;C:\Oracle11117\Middleware\oracle_common\modules\oracle.dms_11.1.1\dms.jar -Djavax.net.ssl.trustStore=C:\Oracle11117\Middleware\wlserver_10.3\server\lib\DemoTrust.jks commandLineStartuprp0428,
Thank you for your reply. Please understand that I am on a tight deadline and have spent two weeks writing an application that I cannot run outside of jdeveloper. I only have some experience with java -- I have been working with Jdeveloper extensively, but have only been deploying to Weblogic, so a lot of this is foreign to me.
I had not noticed the comments underneath. I now understand that I need to extract all the jars that are dependent (all the files added to my jar file when I added the File Group Library), and did so. I also found a blog on this https://blogs.oracle.com/bwb/resource/Jdev_jar_deployments/Creating_Jar_Deployments_with_JDeveloper.html
So I have all these jars and the jar of the application that was created. I created a small class called commandLineStartup.java that simply had a main method in it, where I called the program to run in my xmlseprocessing.jar
I created a bat file that set the classpath (which I painstakingly created by taking the startup script that Jdeveloper created when running the program and replaced the various directory structure to match the location was running from
///// a.bat file runs this:
set classpath=C:\temp\xmlseprocessing.jar;%dir%\wlfullclient.jar;C:\temp\javax.mail_1.1.0.0_1-4-1.jar;C:\temp\wljmsclient.jar;C:\temp\com.oracle.toplink_1.0.0.0_11-1-1-5-0.jar;C:\temp\org.eclipse.persistence_1.1.0.0_2-1.jar;C:\temp\com.bea.core.antlr.runtime_2.7.7.jar;C:\temp\javax.persistence_1.0.0.0_2-0-0.jar;C:\temp\xmlparserv2.jar;C:\temp\xml.jar;C:\temp\javax.jsf_1.1.0.0_1-2.jar;C:\temp\javax.ejb_3.0.1.jar;C:\temp\javax.enterprise.deploy_1.2.jar;C:\temp\javax.interceptor_1.0.jar;C:\temp\modules\javax.jms_1.1.1.jar;C:\temp\javax.jsp_1.2.0.0_2-1.jar;C:\temp\javax.jws_2.0.jar;C:\temp\javax.activation_1.1.0.0_1-1.jar;C:\temp\javax.xml.soap_1.3.1.0.jar;C:\temp\javax.xml.rpc_1.2.1.jar;C:\temp\javax.xml.ws_2.1.1.jar;C:\temp\javax.management.j2ee_1.0.jar;C:\temp\javax.resource_1.5.1.jar;C:\temp\javax.servlet_1.0.0.0_2-5.jar;C:\temp\javax.transaction_1.0.0.0_1-1.jar;C:\temp\javax.xml.stream_1.1.1.0.jar;C:\temp\javax.security.jacc_1.0.0.0_1-1.jar;C:\temp\javax.xml.registry_1.0.0.0_1-0.jar;C:\temp\ojdbc6dms.jar;C:\temp\orai18n.jar;C:\temp\ojdl.jar;.
C:\Oracle11117\Middleware\jdk160_24\bin\javac commandLineStartup.java
C:\Oracle11117\Middleware\jdk160_24\bin\java commandLineStartup
///// This is the commandLineStartup file
public class commandLineStartup{
public static void main(String[] args) {
startup.startAll s = new startup.startAll();
s.startupProcesses() ;
I found this also on including the meta-inf directory files. https://blogs.oracle.com/bwb/resource/Jdev_jar_deployments/Creating_Jar_Deployments_with_JDeveloper.html
Now it blows up with this error java.lang.NoClassDefFoundError: weblogic/utils/NestedException
So I scour the internet and find a solution to create a wlFullClient.jar (http://docs.oracle.com/cd/E12840_01/wls/docs103/client/jarbuilder.html),
Now I run it and get Exception in thread "main" java.lang.NoClassDefFoundError: weblogic/management/WebLogicMBean
And now I get this: Exception in thread "main" java.lang.NoClassDefFoundError: oracle/dms/console/DMSConsole
This is absolutely crazy. I am doing this all manually and by hand, which is error prone. There has got to be a better way of doing it. Does ant make it so you can deploy and run? Is there some program that does this for me? What happens when I throw this out on linux? Another two days of idiotic troubleshooting?
Thank you,
Stuart
All I want to do is run the thing. I have now spent two days putting files into this and that directory, creating the Jar with and without the dependent jars and trying every combination.
Up to this point I have been impressed with Java. Now I am about to throw my computer out the window.
Maybe you are looking for
-
How do I download all my songs from iCloud without having to click on each one?
I have two computers and I would like to have my iTunes library on both. How do I download all my songs from iCloud without having to click on each one?
-
ClassCastException with javax.jms.ObjectMessage
Hello I have the following problem: I filled a JMS queue with ObjectMessages containing a so called container class (self written, plain old java class implementing serializable). I have also written a Servlet that runs
-
Cisco ACS 5.2 authentication against multiple LDAP servers
Hi Folks, I have a wireless network that uses ACS 5.2 to handle authentication. The ACS is integrated with an Active Directory LDAP server (my_ldap) and is working correctly at the moment. The authentication flow looks like this: - User tries t
-
Re: Can WLS 8.1 sp5 work with WLP 8.1 sp2?
We were thinking of upgrading WL server that our WLP 8.1 uses from 8.1 sp2 to 8.1 sp4. Can WLS 8.1 sp5 work with WLP 8.1 sp2? Manish
-
Hi Sometimes I hit unable to extent temp errors. My db version is oracle 9i. I guess the pga is not set. I am not sure why total PGA inuse has a value in second query.. Is there any impact if I set pga? SQL> show parameter pga NAME TYPE VALUE pga_agg