Debugging mode only
I'm new in flash and am having a problem with an mpeg file. I
downloaded a music video from lth web and encoded it using Flash 8
video encoder. then loaded the file into flash 8. First, the video
plays with no sound. 2nd, if I debug the video I get both
vid and sound but because I have used embedded swf and play
in timeline option(because any of the other three options
do not work) 3rd, when I double click the flv file it does
not even play in flash. All I want to do is add some graphics to
the file
from another animation that I am doing in xsi. am I going
about this wrong,I wanted to do the video with special effects and
post
it to my web site.
You could do something like the attached modification.Note how I modified the connector pane for the subVI to use the conventional 4-2-2-4 pattern and notice where I connected the terminals.
NOTE: I am assuming the VI is supposed to run just once, and that you're not using the Run Continuously button in the toolbar. You're not, right?
Attachments:
NE-100_StairFlow_w_RUN00 MOD.vi 27 KB
NE-100_RAT_00_XX MOD.vi 18 KB
Similar Messages
-
Strange Error During Page Load in Debug Mode (only) - Please Help!
Hi All,
Data base version: oracle 11g
Apex version: Apex 4.1.1
Webserver: Apache
Need help with how to troubleshoot a Critical problem. The following error only occurs during page load in "Debug" mode. And, only occurs on a specific page within the application. A web page is served-up containing the following message and the application is blocked from running the page. The browser's (IE 8.0) back button must be clicked to proceed outside of "Debug" mode.
"Error occurred while painting error page: ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06502: PL/SQL: numeric or value error: character string buffer too small"
Debug log follows:
"S H O W: application="2006" page="6" workspace="" request="" session="500549669426301"
Computation point: Before Header
...Perform computation of item: APP_SERVER, type=FUNCTION_BODY
...Performing function body computation
...Execute Statement: declare function x return varchar2 is begin return owa_util.get_cgi_env('SERVER_NAME'); return null; end; begin wwv_flow.g_computation_result_vc := x; end;
......Result = 156.9.122.214
...Session State: Save "APP_SERVER" - saving same value: "156.9.122.214"
Processes - point: BEFORE_HEADER
...Process "GET_POSITION" - Type: PLSQL
...Execute Statement: begin wwv_flow.g_boolean := :F109_POSITION_ID IS NULL and :APP_PAGE_ID != 101; end;
......Result = FALSE
......Skip because condition or authorization evaluates to FALSE
...Process "Get JARS Sifter Log File Record Count" - Type: PLSQL
...Execute Statement: begin DECLARE vcnt NUMBER := 0; BEGIN d('Get JARS Sifter Log File Record Count'); Select count(*) into vcnt From JARS.JARS_SIFTER_LOG Where moveid = to_number(:P6_MOVEID) and sifter_status IN ('F','J'); :F1000_P6_SIFTER_LOG_COUNT := to_char(vcnt); END; end;
Custom: Get JARS Sifter Log File Record Count
...Process "Set PTM Planned Trip Status" - Type: PLSQL
......Skip because condition or authorization evaluates to FALSE
...compatibility mode - do not set mime type
...compatibility mode - do not set additional http headers
...close http header
...metadata, fetch item type settings
...metadata, fetch items
Show page template header
Rendering form open tag and internal values
Add error onto error stack
...Error data:
......message: Error processing request.
......additional_info: ORA-06502: PL/SQL: numeric or value error: character string buffer too small
......display_location: ON_ERROR_PAGE
......is_internal_error: true
......apex_error_code: APEX.UNHANDLED_ERROR
......ora_sqlcode: -6502
......ora_sqlerrm: ORA-06502: PL/SQL: numeric or value error: character string buffer too small
......error_backtrace: ORA-06512: at "APEX_040100.WWV_FLOW", line 3027 ORA-06512: at "APEX_040100.WWV_FLOW", line 7867
...Show Error on Error Page
......Performing rollback
Rendering form open tag and internal values
...Unhandled Error while painting error page: ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06502: PL/SQL: numeric or value error: character string buffer too small
...Error Backtrace: ORA-06512: at "APEX_040100.WWV_FLOW", line 2707 ORA-06512: at "APEX_040100.WWV_FLOW_ERROR", line 185
End Page Rendering"
Thanks!
BernardAll,
It appears that the page Javascript maximum limit size was reached. The error stopped appearing after some of the page Javascript code was removed out to Application Static Files. I wonder if there exists any "direct" indicator by the system whenever the size limit has been reached?
Again, the run error only occurred when the page was loaded in "Debug" mode.
Bernard -
Error C3561: tile barrier operation...occurring in debug mode only
Hi,
I am new in C++ AMP, please, help me figure out why my code compile in Release mode, but C3561 occurring in debug mode.
At first, short version to demonstrate compile errors
parallel_for_each(D.extent.tile<TILE_SIZE>(), [=](concurrency::tiled_index<TILE_SIZE> t_idx) restrict(amp)
float threshold = P[t_idx.global];
tile_static float my_tile[TILE_SIZE];
tile_static int calculatedCount;
for (int stride=0; calculatedCount < TILE_SIZE; stride++)
my_tile[t_idx.local[0]] = P[t_idx.global[0] + stride*TILE_SIZE];
t_idx.barrier.wait();
for (int i =0; i < TILE_SIZE; i++)
if (my_tile[i] >= threshold)
D[t_idx.global] = 0;
calculatedCount++;
Short version does not compile in debug and release mode. Occurring very strange "tile barrier error" C3561.
However, full version shows more interesting results: compile errors only in debug mode,
parallel_for_each(D.extent.tile<TILE_SIZE>(), [=](concurrency::tiled_index<TILE_SIZE> t_idx) restrict(amp)
float threshold = P[t_idx.global] + tp;
float maxDrawdown = 0;
float open = P[t_idx.global];
tile_static float my_tile[TILE_SIZE];
tile_static int calculatedCount;
int stride = 0;
bool calculated = false;
calculatedCount = 0;
t_idx.barrier.wait();
for (; calculatedCount < TILE_SIZE; stride++)
if (t_idx.global[0] + stride*TILE_SIZE < sz)
my_tile[t_idx.local[0]] = P[t_idx.global + stride*TILE_SIZE];
t_idx.barrier.wait();
if (calculated)
continue;
for (int i = stride == 0 ? t_idx.local[0] : 0; i < TILE_SIZE; i++)
if (maxDrawdown < open - my_tile[i])
maxDrawdown = open - my_tile[i];
if (my_tile[i] >= threshold)
duration[t_idx.global] = stride*TILE_SIZE + i - t_idx.local[0];
D[t_idx.global] = maxDrawdown;
calculated = true;
calculatedCount++;
break;
if (stride*TILE_SIZE + i >= sz)
calculated = true;
calculatedCount++;
D[t_idx.global] = maxDrawdown;
duration[t_idx.global] = 0;
break;Hello, thank you for your inquiry. The issue here is that you have a race condition and control flow that is conditional on the variable that's subject to the race. To be precise, in the simplified example, the following:
calculatedCount++;
has the effect that every lane tries to increment calculatedCount. Since there are no guarantees about ordering or completion with the given code, the compiler (reasonably) fears that this might result in a case where some lanes break out of the loop while
others do not (different calculatedCount values per lane). This is invalid due to the fact that the body of the loop contains a barrier (all lanes must see a barrier i.e. control flow must not diverge around it). Hence the odd error. The solution here
could be to use an atomic increment on calculatedCount and add a barrier after the innermost loop, so that the outermost loop is tile-synchronous, like so:
for (int stride=0; calculatedCount < TILE_SIZE; stride++) {
my_tile[t_idx.local[0]] = P[t_idx.global[0] + stride*TILE_SIZE];
t_idx.barrier.wait();
for (int i =0; i < TILE_SIZE; i++) {
if (my_tile[i] >= threshold) {
D[t_idx.global] = 0;
concurrency::atomic_fetch_inc(&calculatedCount);
t_idx.barrier.wait();
Also, as a curiosity, what is the intent of the innermost loop? My reading of it suggests that it is in error i.e. each value that you cache ends up being processed multiple times: all lanes process [0], then [1], then [2] etc. If [0] is above the threshold,
this means that you end the loop after processing just that one datum. Since I presume you want to process the data in my_tile, the way to achieve that is to remove the for and leave the body modified like so:
for (int stride=0; calculatedCount < TILE_SIZE; stride++) {
my_tile[t_idx.local[0]] = P[t_idx.global[0] + stride*TILE_SIZE];
t_idx.barrier.wait();
if (my_tile[i] >= threshold) {
D[t_idx.global] = 0;
concurrency::atomic_fetch_inc(&calculatedCount);
t_idx.barrier.wait();
Hope this helps! Cheers! -
How to fill internal table with no data in debugging mode
Hi all,
I modified one existing program.Now I want to test it.I am not given test data.So in the middle of my debugging, I found that one internal table with no data.My problem is how to fill that internal table with few records in that debugging mode just as we change contents in debugging mode.If I want to proceed further means that internal table must have some records.
Please I dont know how to create test data so I am trying to create values temporarily in debugging mode only.
Thanks,
BalajiHi,
In the debugging do the following..
Click the Table button..
Double click on the internal table name..
Then in the bottom of the screen you will get the buttons like CHANGE, INSERT, APPEND, DELETE..
Use the APPEND button to insert records to the internal table..
Thanks,
Naren -
Hi All,
We have recently upgraded our server from SAP R/3 4.6b to ECC 5.0. Whenever we are debugging any program(Both standard and Z-programs) getting short dump
in the select and endselect statements. This is happening only when we are going on DEBUG MODE only Appreciate any lights on this issue.(All programs are Unicode enabled).
Regards,
Ameer.hi
your problem will solve if you put the break point after <b>ENDSELECT</b> statement. let the cursor not go inside the select-endselect statement. it causes short-dump.
thx
murthy -
Visual Studio 2015 strange failure in debug mode
Hi,
I installed the latest vs 2015 on windows 7 (vmware) to test it compiling and running a set of applications (desktop) I have.
The compilation is ok but when I try to run one of those apps, I get this error (running the debug version):
Please note that if I run in release mode, there is no error at all!?
Following the call stack, it seems that it fails somewhere in the STL releasing a temporary string or something like that. Unfortunately, I cannot create just a small example showing the failure.
Any ideas of why will this failure be in debug mode only? Note that the call stack shows that this code:
~_String_alloc() _NOEXCEPT
{ // destroy the object
_Free_proxy();
is run from xstring and it fails calling "_Free_proxy();". Also note that this is called ONLY when _ITERATOR_DEBUG_LEVEL is defined. No such code is run in release mode.
Thanks,
G.Hi,
I think I found the issue and here are some details, hopping that it will help others running in the same problem(s).
First, I did not have just the issue starting this thread, there was another issue related.
I have created a C++ DLL exporting common functions I used in various applications. Most of the time I used this DLL from console programs (servers). However I had two GUI programs where I also used this DLL, one based on MFC and the other on WTL.
These two programs have the issues as follows:
When the MFC program is run in debug mode under the IDE, at exist the IDE will show a memory leak. This happened with both vs 2013 and vs 2015. This is a debug mode only issue.
When the WTL program was run in debug mode under the IDE, it showed no problems at all when using vs 2013 but had the issue described at the starting of this thread under vs 2015. This is also a debug mode only issue.
It turned out that mfc issue was caused by a known bug in MFC where the termination code of the mfc app, is run BEFORE the termination of code of the DLL. This way the IDE give a false memory leak!! There were actually no memory leaks, just the false alarm!
I am not sure exactly what is going on in the WTL but the issue seems somehow similar in the sense that something not loaded in time from the DLL caused the problem.
The solution: For both projects in fact it was very easy to fix this issue by setting the option to delay load the DLL. That in turn will force the MFC to wait to first unload the DLL and then
there is no false leakage info! This also as I said fixed the WTL issue but I am not sure why? Anyway the WTL is no longer maintained (too bad!!) so who know?!
Bottom line: if you use DLLs from WTL or from MFC, delay load your DLLs! Otherwise you may get this nasty false flags in debug mode and the assert issue.
G. -
Hello,
How do I' change the auth object ( S_develop) to a debug mode only?
Thanks
OsamaYou might Create 2 roles and assign to users on PRD on need basis.
1 is with Debug with Replace
Debug with Replace (Activity 02 and 03 ) Object type - Debug is not generally given in PRD system.
Activity 02, 03
Development class for Transpor *
Object name *
Object type DEBUG
Authorization group ABAP/4 *
2 nd with just display access - Debug Mode Only , the one you asked for.
Debug (Activity 03 ) and and Object type - Debug
Auth Object - s_develop
Activity 03
Development class for Transpor *
Object name *
Object type DEBUG
Authorization group ABAP/4 * -
CRM_ORDER_MAINTAIN works only in debug mode
Hi Experts,
I am currently facing a strange issue. I am trying to add a line item to a service ticket, but the code works only in debug mode. Sample code is given below:
lv_product_i-ref_handle = '0000000001'.
lv_product_i-ref_guid = lv_header_guid.
INSERT lv_product_i INTO TABLE lt_product_i.
ls_orderadm_i-header = lv_header_guid.
ls_orderadm_i-itm_type = 'ZSG5'.
ls_orderadm_i-number_int = '0000000010'.
ls_orderadm_i-ordered_prod = 'SERVICEITEM_SG5'.
ls_orderadm_i-handle = '0000000001'.
ls_orderadm_i-mode = 'A'.
ls_orderadm_i-itm_proc_ident = 'SRVC'.
INSERT ls_orderadm_i INTO TABLE lt_orderadm_i.
ls_input_fields-ref_handle = '0000000001'.
ls_input_fields-objectname = 'ORDERADM_I'.
CLEAR ls_field_names.
ls_field_names-fieldname = 'HANDLE'.
APPEND ls_field_names TO ls_input_fields-field_names.
ls_field_names-fieldname = 'HEADER'.
APPEND ls_field_names TO ls_input_fields-field_names.
ls_field_names-fieldname = 'ITM_PROC_IDENT'.
APPEND ls_field_names TO ls_input_fields-field_names.
ls_field_names-fieldname = 'ITM_TYPE'.
APPEND ls_field_names TO ls_input_fields-field_names.
ls_field_names-fieldname = 'MODE'.
APPEND ls_field_names TO ls_input_fields-field_names.
ls_field_names-fieldname = 'NUMBER_INT'.
APPEND ls_field_names TO ls_input_fields-field_names.
ls_field_names-fieldname = 'ORDERED_PROD'.
APPEND ls_field_names TO ls_input_fields-field_names.
INSERT ls_input_fields INTO TABLE lt_input_fields.
CALL FUNCTION 'CRM_ORDER_MAINTAIN'
EXPORTING
it_product_i = lt_product_i
CHANGING
ct_orderadm_i = lt_orderadm_i
ct_input_fields = lt_input_fields
EXCEPTIONS
error_occurred = 1
document_locked = 2
no_change_allowed = 3
no_authority = 4
OTHERS = 5.
LOOP AT lt_orderadm_i INTO lv_tempvar.
lv_item_guid = lv_tempvar-guid.
ENDLOOP.
The item guid is coming as initial and no item is being added.But if i put a breakpoint in CRM_ORDER_MAINTIAN, then the guid is being generated properly. Any pointers why the code is behaving like this or someone has faced a similar issue before?
Thanks and Regards,
RohitHi Rohit,
The above said is also correct + U have to write
CALL FUNCTION 'CRM_ORDER_SAVE'
EXPORTING
IT_OBJECTS_TO_SAVE = GT_OBJ_GUIDS
IMPORTING
ET_SAVED_OBJECTS = GT_SAVED_OBJECTS
EXCEPTIONS
OTHERS = 2.
COMMIT WORK. -
CRM_ORDER_MAINTIAN works only in debug mode!
Hi Experts,
I am currently facing a strange issue. I am trying to add a line item to a service ticket, but the code works only in debug mode. Sample code is given below:
lv_product_i-ref_handle = '0000000001'.
lv_product_i-ref_guid = lv_header_guid.
INSERT lv_product_i INTO TABLE lt_product_i.
ls_orderadm_i-header = lv_header_guid.
ls_orderadm_i-itm_type = 'ZSG5'.
ls_orderadm_i-number_int = '0000000010'.
ls_orderadm_i-ordered_prod = 'SERVICEITEM_SG5'.
ls_orderadm_i-handle = '0000000001'.
ls_orderadm_i-mode = 'A'.
ls_orderadm_i-itm_proc_ident = 'SRVC'.
INSERT ls_orderadm_i INTO TABLE lt_orderadm_i.
ls_input_fields-ref_handle = '0000000001'.
ls_input_fields-objectname = 'ORDERADM_I'.
CLEAR ls_field_names.
ls_field_names-fieldname = 'HANDLE'.
APPEND ls_field_names TO ls_input_fields-field_names.
ls_field_names-fieldname = 'HEADER'.
APPEND ls_field_names TO ls_input_fields-field_names.
ls_field_names-fieldname = 'ITM_PROC_IDENT'.
APPEND ls_field_names TO ls_input_fields-field_names.
ls_field_names-fieldname = 'ITM_TYPE'.
APPEND ls_field_names TO ls_input_fields-field_names.
ls_field_names-fieldname = 'MODE'.
APPEND ls_field_names TO ls_input_fields-field_names.
ls_field_names-fieldname = 'NUMBER_INT'.
APPEND ls_field_names TO ls_input_fields-field_names.
ls_field_names-fieldname = 'ORDERED_PROD'.
APPEND ls_field_names TO ls_input_fields-field_names.
INSERT ls_input_fields INTO TABLE lt_input_fields.
CALL FUNCTION 'CRM_ORDER_MAINTAIN'
EXPORTING
it_product_i = lt_product_i
CHANGING
ct_orderadm_i = lt_orderadm_i
ct_input_fields = lt_input_fields
EXCEPTIONS
error_occurred = 1
document_locked = 2
no_change_allowed = 3
no_authority = 4
OTHERS = 5.
LOOP AT lt_orderadm_i INTO lv_tempvar.
lv_item_guid = lv_tempvar-guid.
ENDLOOP.
The item guid is coming as initial and no item is being added.But if i put a breakpoint in CRM_ORDER_MAINTIAN, then the guid is being generated properly. Any pointers why the code is behaving like this or someone has faced a similar issue before?
Thanks and Regards,
RohitWell, during debugging an implicit COMMIT WORK is executed on a regular basis. This might cause the ITEM GUID to be created during debugging.
However, normally, after CRM_ORDER_MAINTAIN, you should use the CRM_ORDER_SAVE as well. This will return a list of SAVED_OBJECTS. If all objects were saved correctly, do an explicit COMMIT WORK.
Works fine for us..... -
Processing happens only in debug mode.
Hi,
I am calling an RFC enabled FM BAPI_ALM_NOTIF_DATA_MODIFY and BAPI_ALM_NOTIF_SAVE to modify the data of a notification. These function modules are called within another FM which is also a RFC called in background as a separate task. The problem here is that, the data gets modified fine only when I am in the debugging mode and execute it. But if I execute without going to the debug mode, I cannot modify the notification data. Kindly suggest why this is happening and what the solution is. ThanksI am not using any destination. The code is as shown:
WAIT UP TO 5 SECONDS.
CALL FUNCTION 'BAPI_ALM_ORDER_GET_DETAIL'
EXPORTING
number = aufnr
IMPORTING
es_header = gf_header
TABLES
et_olist = it_ord_notif
return = it_ret
CALL FUNCTION 'BAPI_ALM_NOTIF_GET_DETAIL'
EXPORTING
number = gf_header-notif_no
IMPORTING
NOTIFHEADER_EXPORT = gf_notif_exp
CLEAR: gf_notif_no.
DESCRIBE TABLE it_notif_no LINES g_line.
READ TABLE it_notif_no into gf_notif_no INDEX g_line.
IF gf_notif_no-short_text+0(3) = 'PRB'.
clear: gf_notif_imp, gf_notif_imp_x.
gf_notif_imp-desstdate = gf_notif_exp-desstdate.
gf_notif_imp-desenddate = gf_notif_exp-desenddate.
gf_notif_imp_x-desstdate = 'X'.
gf_notif_imp_x-desenddate = 'X'.
CALL FUNCTION 'BAPI_ALM_NOTIF_DATA_MODIFY'
EXPORTING
number = gf_notif_no-notif_no
NOTIFHEADER = gf_notif_imp
NOTIFHEADER_X = gf_notif_imp_x
IMPORTING
NOTIFHEADER_EXPORT = gf_notif_result
TABLES
CALL FUNCTION 'BAPI_ALM_NOTIF_SAVE'
EXPORTING
number = gf_notif_no-notif_no
IMPORTING
NOTIFHEADER = gf_qmnum_save
TABLES
RETURN = it_ret2.
endif.
clear: gf_notif_no.
LOOP AT it_notif_no INTO gf_notif_no.
IF gf_notif_no-short_text+0(3) = 'PRB'.
SELECT SINGLE objnr FROM viqmel
INTO g_objnr
WHERE qmnum = gf_notif_no-notif_no.
SELECT SINGLE stsma INTO g_stsma FROM jsto WHERE objnr = g_objnr.
SELECT SINGLE estat INTO g_stat FROM tj30t WHERE stsma = g_stsma AND
spras = 'EN'
AND txt04 = 'SFMR'.
CALL FUNCTION 'STATUS_CHANGE_EXTERN'
EXPORTING
check_only = ' '
client = sy-mandt
objnr = g_objnr
user_status = g_stat
set_inact = ' '
set_chgkz = 'X'
no_check = ' '
EXCEPTIONS
object_not_found = 1
status_inconsistent = 2
status_not_allowed = 3
OTHERS = 4.
IF sy-subrc = 0.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF. -
Updating Custom Table Only in Debug Mode
Hi All!
I have been encountering issues in updating a custom table. It would work successfully only in debug mode otherwise it won't update an entry in the table.
This is the piece of code that would update an entry in the table specifically used in a user exit. The functionality of this code is to automatically remove a transportation block:
SELECT SINGLE *
INTO wa_zblock
FROM zblock
WHERE zzblknum EQ c_tr01
AND vbeln EQ p_lvbeln
AND zzprocessed EQ space.
IF sy-subrc EQ 0.
DO.
CALL FUNCTION 'ENQUEUE_E_TABLES'
EXPORTING
MODE_RSTABLE = 'S'
TABNAME = c_lzblock
EXCEPTIONS
FOREIGN_LOCK = 1
SYSTEM_FAILURE = 2
OTHERS = 3.
IF sy-subrc EQ 0.
wa_zblock-zzprocessed = c_x.
wa_zblock-zzapproveby = sy-uname.
wa_zblock-zzapproveon = sy-datum.
MODIFY zblock FROM wa_zblock.
if sy-subrc EQ 0.
COMMIT WORK AND WAIT.
endif.
EXIT.
ENDIF.
ENDDO.
CALL FUNCTION 'DEQUEUE_E_TABLES'
EXPORTING
MODE_RSTABLE = 'S'
TABNAME = c_lzblock.
ENDIF.
How can I make this update the custom table successful in undebugged mode? Please let me know your thoughts on this.
Thanks!I also suggest you to lock only the entry that will be updated (and not the whole table!) : you will have then far less problems of conflict with updating this table.
For that, you have to create a lock object on your table (via SE11 - for example EZ_MY_TABLE). This will create 2 function modules named ENQUEUE_E<name of your lock object> (in my example ENQUEUE_EZ_MY_TABLE) and DEQUEUE_E<...>.
You can then call those FM like this :
CALL FUNCTION 'ENQUEUE_EZ_MY_TABLE'
EXPORTING
MODE_RSTABLE = 'S'
KEYFIELD1 = ld_keyfield1 " Here are the key values for the entry that you have to update
KEYFIELD2 = ld_keyfield2
EXCEPTIONS
FOREIGN_LOCK = 1
SYSTEM_FAILURE = 2
OTHERS = 3.
Best regards,
Samuel -
Function Module working only in debug mode
Hi all,
The following Function Module works only in debug mode. The purpose of this FM is to create a notification and to put it in progress status. If I put a breakpoint before "CALL FUNCTION 'BAPI_ALM_NOTIF_PUTINPROGRESS'" it works. If I execute this FM without putting a breakpoint at that place it creates the notification but doesnt put it in progress status.
In other words, the last BAPI call doesnot work if I dont put a breakpoint before.
Can somebody help me to find out where is the problem?
Thanks,
Younes
FUNCTION ZFM_CREATE_NOTIF_IN_PROCESS.
""Local interface:
*" IMPORTING
*" VALUE(NOTIFTYP) TYPE CHAR2
*" VALUE(NOTIFHEADER) TYPE BAPI2080_NOTHDRI
*" EXPORTING
*" VALUE(NOTIFNUMBER) TYPE CHAR12
*" VALUE(NOTIFCURSTATUS) TYPE CHAR40
DATA: gs_bapi2080_nothdre TYPE bapi2080_nothdre,
gt_return TYPE TABLE OF bapiret2.
The notification is created with a temporary number
CALL FUNCTION 'BAPI_ALM_NOTIF_CREATE'
EXPORTING
notif_type = NOTIFTYP
notifheader = NOTIFHEADER
IMPORTING
notifheader_export = gs_bapi2080_nothdre
TABLES
return = gt_return.
READ TABLE gt_return TRANSPORTING NO FIELDS WITH KEY type = 'E'.
CHECK sy-subrc IS NOT INITIAL.
*The notication will be saved with a number which isnt temporary
CALL FUNCTION 'BAPI_ALM_NOTIF_SAVE'
EXPORTING
number = gs_bapi2080_nothdre-notif_no
IMPORTING
notifheader = gs_bapi2080_nothdre
TABLES
return = gt_return.
READ TABLE gt_return TRANSPORTING NO FIELDS WITH KEY type = 'E'.
CHECK sy-subrc IS NOT INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
The Notif is already created, it will be put in progress status
NOTIFNUMBER = gs_bapi2080_nothdre-notif_no.
CALL FUNCTION 'BAPI_ALM_NOTIF_PUTINPROGRESS'
EXPORTING
NUMBER = NOTIFNUMBER
LANGU = SY-LANGU
IMPORTING
SYSTEMSTATUS = NOTIFCURSTATUS
TABLES
RETURN = gt_return.Hi Emmanuel,
Now I get your problem: you want to wait to have the commit finished! The call to BAPI_TRANSACTION_COMMIT has an optional parameter 'WAIT' which is space by default which causes only a commit. When you set this parameter to 'X' it will do a commit work and wait.
This should solve your problem!
Regards,
John. -
My program works only in debugging mode
Dear All,
I am just starting to use LabVIEW and developing a instumental driver.
The program is rather sequentially designed because I am only used to work with text-based program.
The current program is working in debugging mode without any error message.
To give an idea of how it is composed:
1. Set up the serial port setting (machine address, baud rate, parity, etc)
2. Send to the instument the name of a short program to be run.
3. Send mutiple string commands to the instruments. Those string commands construct a short program to control the instrument.
4. Send another string command to run the short program
The issue is that it does not work in excution mode. It looks to me that the communication between the instrument and computer seems to be too fast.
Since the program is designed in a sequential manner, it does not have any while-loop or for-loop so I cannot add any timing function.
Could anyone give me a hint or a right direction to fix this issue? It would be really appreciated. Thank you.
Solved!
Go to Solution.You could do something like the attached modification.Note how I modified the connector pane for the subVI to use the conventional 4-2-2-4 pattern and notice where I connected the terminals.
NOTE: I am assuming the VI is supposed to run just once, and that you're not using the Run Continuously button in the toolbar. You're not, right?
Attachments:
NE-100_StairFlow_w_RUN00 MOD.vi 27 KB
NE-100_RAT_00_XX MOD.vi 18 KB -
WaitFor() works only when in debugging mode!
Hi, im having a problem with making my function waits for a process to end while in run mode!
The function always run and exists while the process is still running...
I checked it in debugging mode and it worked just fine, but i cant seem to be able to make it work in the run mode!
Any hints???
Here is my code:
public void executeBatch (){
try{
Runtime runtime = Runtime.getRuntime();
Process batchProcess = runtime.exec(new String[] {"cmd.exe", "/c", "FetchFiles.bat"}, null, new File(BATCH_FILES_PATH));
BufferedReader b = new BufferedReader(new InputStreamReader(batchProcess.getErrorStream()));
if (b.ready()){
String line=null;
while ( (line = b.readLine()) != null) {
System.out.println(line);
line = b.readLine();
int exitVal = batchProcess.waitFor();
System.out.println("Exit Value = " + exitVal);
} else {
b = new BufferedReader(new InputStreamReader(batchProcess.getInputStream()));
if (b.ready()){
String line=null;
while ( (line = b.readLine()) != null) {
System.out.println(line);
line = b.readLine();
int exitVal = batchProcess.waitFor();
System.out.println("Exit Value = " + exitVal);
} catch ( Exception ex ){
System.out.println("executeBatch : " + ex.getMessage());
btw, the process is a batch that connects to a linux server and "mget" files from some directories in the server...what the ....???
the "BadExecWinDir.java" bad approach is all about
not using an executable command like "dir"... which
im not using at all...More than that but secondary.
>
and for the "GoodWindowsExec.java" concept
demonstrates that you should handle the standard
error and standard input streams and emptying them
both together, which what i exactly did. i USED the
concept...
My piece of code is the same as the
"GoodWindowsExec.java" code except that i made the
code of the StreamGobbler class comes inside the
function directly, and that i didn't use a checkup on
the operating system to decide wither it's a Windows
NT or Windows 95 to decide the command prompt
executable name...StreamGobbler runs as a thread so both streams are emptied in parallel. In your code
String line=null;
while ( (line = brError.readLine()) != null)
System.out.println(line);this will only terminate when the process terminates and closes stderr. This means that the following code
while ( (line = brInput.readLine()) != null)
System.out.println(line);
only starts to run once the process terminates.
BUT, the stderr stream and stdout streams have a limited buffer and block when this buffer becomes full. So, if the stdout stream produces more than a buffer full then it blocks until more room is avaialable and the process cannot terminate so the error stream cannot be closed so the code to empty stdout cannot run to make room in the buffer to put more output. Phew!
If you change the order of emptying the two streams then you have a simillar effect.
The only way I know of dealing with this is to empty both streams at the same time so you need two threads. You can use the default thread for one but you MUST use another thread for the other. Since I use stdout, stderr and stdin I use 3 threads!
>
thats all...Please read the article again. -
NWDS debug mode can only be supported by one client ?
Hi all.
We are 4 persons who are developing webdynpro application together.
However, when we are using NWDS debug mode, we found that only one client debug is supported, when the second person want to debug, the first person have to exit debug mode.
Can WAS support for more debug mode ?Hi Jianhong,
Right now you have only one instance of your server,so only one debug port is available.Hence only one person at a time can debug.
If you need to debug in development environment with more people then you have to create as many instance of server as you need.
Recently i have seen some forum/webblog here about it.
Maybe you are looking for
-
How to access my Epson Perfection 2400 Photo scanner?
How can I access my Epson Perfection 2400 Photo scanner after upgrading from PS CS4 to CS6? There is no Photoshop File/Export/Epson scanner listed anymore. I downloaded a TWAIN plug-in and loaded it in the PS Plug-in folder, but that did not help. Wh
-
Can garage band be used with usb turntable to transfer lp's to digital?
i have a number of lp's that i want to transfer to my mac, is garage band capable of doing that or do i need other software? input appreciated, thanks 17 G4 Powerbook - macmini Mac OS X (10.4.8)
-
Hi Experts, I want to make the zreport of vendor changes record, which table should I refer. Kindly suggest. Regards GR
-
I had an ethernet hard drive on my network and all was good until i replaced my MBP (snow leopard) with a new MBA (lion). Now i can"t see my external drive. I can still see it on one of my old Macs. What do I do?
-
Where is the feature "Send using External Address" gone?
Did someone found the MobileMe feature "Send using External Address" in iCloud?