Catching the browser close event...
Hello Fellow Portal-Heads,
There's a nagging issue that I've been pondering (RE EP6 NW04). In the MSS iViews there is the potential issue of a user viewing an employee and then closing the browser via the 'X' (vs. clicking the logoff link). This 'X-ing' out of the browser leaves the viewed employee locked which is to be expected. So... anyone have a good way to catch the 'X-ing' out of the browser and then trigger some code to perform a proper logoff? I've tried inserting code in the masthead which catches a browser unonload() event... but it was not the smoothest operator.
Cheers,
Mike
Message was edited by: Mike Yang
Hi Mike,
I have got a chance to work in a similar issue.The following code traps the 'X' of the browser and logoff the user.
<script type="text/javascript">
window.onunload = function unloadEvent()
if (gIsPreviewMode)
return;
else
if(window.screenLeft < 10004)
//this is refresh
else
logoff();
</script>
Preview is taken care and the code is working fine. I am posting code so that somebody else can use it,
Regards
Message was edited by: Rem Swa
This is for EP6 SP2
Similar Messages
-
Call Webservice/API during browser close event
Hello,
I am using JDEV 11g. My application catches the browser close event to call a return Task Flow.
I am wondering if its possible to call a webservice/API during the same event.
Thanks
PadmapriyaProbababy too late to ask .. did u manage to get this resolved.
I am not able to call any server Listeners during browser close event ...
Details here -Re: Calling an ActionListener on browser window close using JS event queuing -
How to catch browser close event excluding navigation events
Hi,
I tried using onBeforeUnload event and onUnload events.. but they are catching navigation events within the same site. Could you please let me know how I can catch browser close events without catching Navigation events?
Thanks.Just set them to null when navigation takes place.
Said that, you should be asking Javascript/DHTML related questions in a forum devoted to Javascript/DHTML. There are ones at webdeveloper.com and dynamicdrive.com. This has nothing to do with Java. -
Catching browser close event and showing my own popup
Hi,
I want to show my own warning popup on browser close event. Kindly help me with the solution.
Thanks a lot in advance.
Lavanya.Lavanya,
I don't think you could show a ADF Popup during the onload event. Instead, you could use javascript's confirm method to prompt the user to choose what they want to do and perform that operation accordingly.
Ex :
jspx code
<af:document id="d1" onunload="performUnloadEvent" clientComponent="true">
<af:resource type="javascript">
// For Mozilla and Firefox
if(window.addEventListener){
window.addEventListener('beforeunload', function (event) {
showConfirm();
// For IE
else if(window.attachEvent){
window.attachEvent('onbeforeunload', function (event) {
showConfirm();
function showConfirm(){
var eventSource = AdfPage.PAGE.findComponentByAbsoluteId('d1');
var sel = confirm("Are you sure you want to exit?");
if(sel==true){
alert('Perform OK Operation');
var x = AdfCustomEvent.queue(eventSource, "handleOnUnload", {result : 'ok'},false);
var y = 0;
else {
alert('Perform Cancel Operation');
var x = AdfCustomEvent.queue(eventSource, "handleOnUnload", {result : 'cancel'},false);
var y = 0;
</af:resource>
<af:serverListener type="handleOnUnload" method="#{UnloadHandler.onUnloadHandler}"/>
<af:form id="f1" clientComponent="true">
</af:form>
</af:document>onUnloadHandler method in bean
public void onUnloadHandler(ClientEvent clientEvent) {
System.out.println("Unload Event fired..");
String outcome = clientEvent.getParameters().get("result").toString();
if(outcome.equalsIgnoreCase("ok")){
System.out.println("Outcome is OK ");
// Perform some operation like Commit;
else if(outcome.equalsIgnoreCase("cancel")){
System.out.println("Outcome is Cancel ");
// Perform some cleanup operation like Rollback;
}-Arun -
Hi,
I want to track Browser close event in EP to close all the sessions of the user.
Plz guide me with detailed steps.
Thanks in advance.
Regards,
PriyaHi search for "Browser close event" in google.
Result: there is no such thing. You can do something with onbeforeunload but that might not work for all browser.
Kai -
Why can not catch the standard BACK event in ALV's USER_COMMAND event,
Hi expert, why i can not catch the standard BACK event in ALV's USER_COMMAND event,
Code:
DATA G_CON_UC_FORM TYPE SLIS_FORMNAME VALUE 'F_USER_COMMAND',
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_TOP_OF_PAGE = G_CON_FORM
I_CALLBACK_USER_COMMAND = G_CON_UC_FORM
IT_FIELDCAT = G_TAB_FIELDCAT
IT_SORT = G_TAB_SORT_INF
I_SAVE = G_CON_U
*<<<Liang
IT_EVENTS = G_TAB_ALV_EVENTS
*<<<Liang
TABLES
T_OUTTAB = G_TAB_OUTPUT_DATA
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
*& Form F_USER_COMMAND
ALV USER COMMAND processing
FORM F_USER_COMMAND .
IF SY-UCOMM = '&FO3'.
LEAVE TO SCREEN 0.
ENDIF.
ENDFORM. " F_USER_COMMAND
When I set breakpoint on this subrouting ,and try to click stardard BACK or CANCEL button, the callback form do not run, but if double click one of line of alv report, the callback form works well,
so why??hi
good
check this report and change your code accordingly.
THESE LINES ARE FOR THE MAIN PROGRAM ***
SAP V40B ***
REPORT Z_PICK_LIST .
TABLES: RESB.
SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-BL1.
SELECT-OPTIONS: S_WERKS FOR RESB-WERKS," Plant
S_AUFNR FOR RESB-AUFNR," Order number
S_BDTER FOR RESB-BDTER." Req. date
SELECTION-SCREEN END OF BLOCK BL1.
PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT DEFAULT '/STANDARD'.
DATA: BEGIN OF OUT OCCURS 10,
AUFNR LIKE RESB-AUFNR, " Order number
MATNR LIKE RESB-MATNR, " Material
BDMNG LIKE RESB-BDMNG, " Requirements in UM
MEINS LIKE RESB-MEINS, " Unit of Measure (UM)
ERFMG LIKE RESB-ERFMG, " Requirements in UE
ERFME LIKE RESB-ERFME, " Unit of Entry (UE)
MAKTX LIKE MAKT-MAKTX, " Mat. description
END OF OUT.
INCLUDE Z_ALV_VARIABLES.
INITIALIZATION.
REPNAME = SY-REPID.
PERFORM INITIALIZE_FIELDCAT USING FIELDTAB[].
PERFORM BUILD_EVENTTAB USING EVENTS[].
PERFORM BUILD_COMMENT USING HEADING[].
PERFORM INITIALIZE_VARIANT.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
PERFORM F4_FOR_VARIANT.
AT SELECTION-SCREEN.
PERFORM PAI_OF_SELECTION_SCREEN.
START-OF-SELECTION.
PERFORM GET_ORDERS.
PERFORM GET_MATERIAL_DESCRIPTION.
END-OF-SELECTION.
PERFORM BUILD_LAYOUT USING LAYOUT.
PERFORM BUILD_PRINT USING PRINTS.
PERFORM WRITE_USING_ALV.
FORM INITIALIZE_FIELDCAT *
--> P_TAB *
FORM INITIALIZE_FIELDCAT USING P_TAB TYPE SLIS_T_FIELDCAT_ALV.
DATA: CAT TYPE SLIS_FIELDCAT_ALV.
CLEAR CAT.
ENDFORM. " INITIALIZE_FIELDCAT
*& Form GET_ORDERS
text
FORM GET_ORDERS.
SELECT AUFNR MATNR BDMNG MEINS ERFMG ERFME
FROM RESB
APPENDING TABLE OUT
WHERE XLOEK EQ SPACE " deletion indicator
AND XWAOK EQ 'X' " goods movement indicator
AND WERKS IN S_WERKS " plant
AND BDTER IN S_BDTER " req. date
AND AUFNR IN S_AUFNR. " pr. order
ENDFORM. " GET_ORDERS
*& Form GET_MATERIAL_DESCRIPTION
text
FORM GET_MATERIAL_DESCRIPTION.
SORT OUT BY MATNR.
LOOP AT OUT.
SELECT SINGLE MAKTX
INTO OUT-MAKTX
FROM MAKT
WHERE MATNR EQ OUT-MATNR
AND SPRAS EQ 'EN'.
MODIFY OUT.
ENDLOOP.
SORT OUT BY AUFNR MATNR.
ENDFORM. " GET_MATERIAL_DESCRIPTION
FORM TOP_OF_PAGE *
FORM TOP_OF_PAGE.
DATA: L_POS TYPE P.
first line
WRITE:/ TEXT-001. " Plant:
IF S_WERKS-HIGH NE SPACE.
WRITE: S_WERKS-LOW, TEXT-TO1, S_WERKS-HIGH.
ELSEIF S_WERKS-LOW NE SPACE.
LOOP AT S_WERKS.
WRITE: S_WERKS-LOW.
ENDLOOP.
ELSEIF S_WERKS-LOW EQ SPACE.
WRITE: TEXT-ALL.
ENDIF.
L_POS = ( SY-LINSZ DIV 2 ) - ( STRLEN( TEXT-TIT ) DIV 2 ).
POSITION L_POS. WRITE: TEXT-TIT.
L_POS = SY-LINSZ - 20.
POSITION L_POS. WRITE: TEXT-011, SY-UNAME RIGHT-JUSTIFIED. " User:
second line
WRITE:/ TEXT-002. " Order:
IF S_AUFNR-HIGH NE SPACE.
WRITE: S_AUFNR-LOW, TEXT-TO1, S_AUFNR-HIGH.
ELSEIF S_AUFNR-LOW NE SPACE.
LOOP AT S_AUFNR.
WRITE: S_AUFNR-LOW.
ENDLOOP.
ELSEIF S_AUFNR-LOW EQ SPACE.
WRITE: TEXT-ALL.
ENDIF.
L_POS = SY-LINSZ - 20.
POSITION L_POS. WRITE: TEXT-012,SY-DATUM. " Date:
third line
WRITE:/ TEXT-003. " Req. Date:
IF S_BDTER-HIGH(1) NE '0'.
WRITE: S_BDTER-LOW, TEXT-TO1, S_BDTER-HIGH.
ELSEIF S_BDTER-LOW(1) NE '0'.
LOOP AT S_BDTER.
WRITE: S_BDTER-LOW.
ENDLOOP.
ELSEIF S_BDTER-LOW(1) EQ '0'.
WRITE: TEXT-ALL.
ENDIF.
L_POS = SY-LINSZ - 20.
POSITION L_POS. WRITE: TEXT-013, SY-PAGNO. " Page:
ENDFORM. " TOP_OF_PAGE
FORM END_OF_LIST *
FORM END_OF_LIST.
DATA: L_POS TYPE P.
ULINE.
WRITE:/ '|', TEXT-021. " Delivered by:
L_POS = SY-LINSZ DIV 2.
POSITION L_POS. WRITE: '|', TEXT-031. " Received by:
L_POS = SY-LINSZ.
POSITION L_POS. WRITE: '|'.
WRITE:/ '|'.
L_POS = SY-LINSZ DIV 2.
POSITION L_POS. WRITE: '|'.
L_POS = SY-LINSZ.
POSITION L_POS. WRITE: '|'.
ULINE.
WRITE:/ '|', TEXT-012. " Date:
L_POS = SY-LINSZ DIV 2.
POSITION L_POS. WRITE: '|', TEXT-012. " Date:
L_POS = SY-LINSZ.
POSITION L_POS. WRITE: '|'.
WRITE:/ '|'.
L_POS = SY-LINSZ DIV 2.
POSITION L_POS. WRITE: '|'.
L_POS = SY-LINSZ.
POSITION L_POS. WRITE: '|'.
ULINE.
ENDFORM. " END_OF_LIST
*& Form WRITE_USING_ALV
text
FORM WRITE_USING_ALV.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = REPNAME
I_INTERNAL_TABNAME = 'OUT'
I_INCLNAME = REPNAME
CHANGING
CT_FIELDCAT = FIELDTAB.
IF SY-SUBRC <> 0.
WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_FIELDCATALOG_MERGE'.
ENDIF.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = REPNAME
i_callback_pf_status_set = 'PF_STATUS_SET'
i_callback_user_command = 'USER_COMMAND'
I_STRUCTURE_NAME = 'OUT'
IS_LAYOUT = LAYOUT
IT_FIELDCAT = FIELDTAB
I_DEFAULT = 'A'
I_SAVE = G_SAVE
IS_VARIANT = G_VARIANT
IT_EVENTS = EVENTS[]
IS_PRINT = PRINTS
TABLES
T_OUTTAB = OUT.
IF SY-SUBRC <> 0.
WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_LIST_DISPLAY'.
ENDIF.
ENDFORM. " WRITE_USING_ALV
THESE LINES ARE FOR THE INCLUDE ***
***INCLUDE Z_ALV_VARIABLES .
TYPE-POOLS: SLIS.
DATA: FIELDTAB TYPE SLIS_T_FIELDCAT_ALV,
HEADING TYPE SLIS_T_LISTHEADER,
LAYOUT TYPE SLIS_LAYOUT_ALV,
EVENTS TYPE SLIS_T_EVENT,
REPNAME LIKE SY-REPID,
F2CODE LIKE SY-UCOMM VALUE '&ETA',
PRINTS TYPE SLIS_PRINT_ALV,
TITLE(40) TYPE C,
G_SAVE(1) TYPE C,
G_EXIT(1) TYPE C,
G_VARIANT LIKE DISVARIANT,
GX_VARIANT LIKE DISVARIANT.
CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE',
FORMNAME_END_OF_LIST TYPE SLIS_FORMNAME VALUE 'END_OF_LIST',
FORMNAME_BEFORE_LINE TYPE SLIS_FORMNAME VALUE 'BEFORE_LINE',
FORMNAME_AFTER_LINE TYPE SLIS_FORMNAME VALUE 'AFTER_LINE'.
FORM MAIN_STATEMENTS *
THIS IS THE CODE THAT MUST BE INSERTED IN THE MAIN PROGRAM
FORM MAIN_STATEMENTS.
Declare the parameter P_VARI wherever you want it. If you don't
want it, hide it with NO-DISPLAY, but it must exist.
parameters: p_vari like disvariant-variant. " ALV Variant
You have to add the following line after the data and parameter
declaration:
include z_alv_variables.
Then, after the data/parameter declaration, add these lines:
*initialization.
repname = sy-repid.
perform initialize_fieldcat using fieldtab[].
perform build_eventtab using events[].
perform build_comment using heading[].
perform initialize_variant.
If you are using the variable P_VARI (ALV Variant), also add this:
*at selection-screen on value-request for p_vari.
perform f4_for_variant.
*at selection-screen.
perform pai_of_selection_screen.
After the "END-OF-SELECTION" statement, add these lines:
perform build_layout using layout.
perform build_print using prints.
perform write_using_alv.
You also have to create the following forms: (you can find samples
in this program)
INITIALIZE_FIELDCAT
USER_COMMAND (only if you are creating a STATUS)
WRITE_USING_ALV
ENDFORM.
*& Form INITIALIZE_FIELDCAT_SAMPLE
THIS IS A SAMPLE, DO NOT USE THIS FORM IN YOUR PROGRAM
-->P_FIELDTAB[] text *
FORM INITIALIZE_FIELDCAT_SAMPLE USING P_TAB TYPE SLIS_T_FIELDCAT_ALV.
DATA: CAT TYPE SLIS_FIELDCAT_ALV.
CLEAR CAT. " Always clear before use
CAT-TABNAME = 'I'. " Your internal table
CAT-REF_TABNAME = 'ZCUSTMAS'. " The data dictionary reference table
CAT-FIELDNAME = 'KUNNR'. " Name of your field in the itable.
CAT-COL_POS = 1. " Output position
APPEND CAT TO P_TAB.
CAT-FIELDNAME = 'NAME1'. " Next field
CAT-COL_POS = 2.
APPEND CAT TO P_TAB.
CAT-FIELDNAME = 'STRAS'. " and the next
CAT-COL_POS = 3.
APPEND CAT TO P_TAB.
CAT-FIELDNAME = 'LOEVM'.
CAT-SELTEXT_S = 'Del'. " You can always override the descrip-
CAT-SELTEXT_M = 'Delivery'. " tion (short, medium, large)
CAT-SELTEXT_L = 'Delivery Num'.
CAT-COL_POS = 4.
APPEND CAT TO P_TAB.
CAT-FIELDNAME = 'FKIMG'.
CAT-DO_SUM = 'X'. " You want totals calculated.
CAT-NO_OUT = 'X'. " and hidden.
APPEND CAT TO P_TAB.
ENDFORM. " INITIALIZE_FIELDCAT
*& Form BUILD_EVENTTAB
THIS IS THE SAME FOR ALL THE PROGRAMS
-->P_EVENTS[] text *
FORM BUILD_EVENTTAB USING P_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = P_EVENTS.
READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO P_EVENTS.
ENDIF.
CLEAR LS_EVENT.
READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_END_OF_LIST
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE FORMNAME_END_OF_LIST TO LS_EVENT-FORM.
APPEND LS_EVENT TO P_EVENTS.
ENDIF.
CLEAR LS_EVENT.
READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_BEFORE_LINE_OUTPUT
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE FORMNAME_BEFORE_LINE TO LS_EVENT-FORM.
APPEND LS_EVENT TO P_EVENTS.
ENDIF.
CLEAR LS_EVENT.
READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_AFTER_LINE_OUTPUT
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE FORMNAME_AFTER_LINE TO LS_EVENT-FORM.
APPEND LS_EVENT TO P_EVENTS.
ENDIF.
CLEAR LS_EVENT.
READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE FORMNAME_END_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO P_EVENTS.
ENDIF.
ENDFORM. " BUILD_EVENTTAB
*& Form BUILD_COMMENT
NOT REALLY NEEDED, BUT I'LL LEAVE IT THERE, JUST IN CASE...
-->P_HEADING[] text *
FORM BUILD_COMMENT USING P_HEADING TYPE SLIS_T_LISTHEADER.
DATA: HLINE TYPE SLIS_LISTHEADER,
TEXT(60) TYPE C,
SEP(20) TYPE C.
CLEAR: HLINE, TEXT.
HLINE-TYP = 'H'.
write: text-101 to text+23.
HLINE-INFO = TEXT.
APPEND HLINE TO P_HEADING.
ENDFORM. " BUILD_COMMENT
*& Form INITIALIZE_VARIANT
VERY IMPORTANT WHEN YOU USE VARIANTS!!!
FORM INITIALIZE_VARIANT.
G_SAVE = 'A'.
CLEAR G_VARIANT.
G_VARIANT-REPORT = REPNAME.
GX_VARIANT = G_VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 0.
P_VARI = GX_VARIANT-VARIANT.
ENDIF.
ENDFORM. " INITIALIZE_VARIANT
*& Form PAI_OF_SELECTION_SCREEN
ALSO FOR VARIANTS
FORM PAI_OF_SELECTION_SCREEN.
IF NOT P_VARI IS INITIAL.
MOVE G_VARIANT TO GX_VARIANT.
MOVE P_VARI TO GX_VARIANT-VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT
EXCEPTIONS
WRONG_INPUT = 1
NOT_FOUND = 2
PROGRAM_ERROR = 3.
IF SY-SUBRC EQ 0.
G_VARIANT = GX_VARIANT.
ELSE.
PERFORM INITIALIZE_VARIANT.
ENDIF.
ELSE.
PERFORM INITIALIZE_VARIANT.
ENDIF.
ENDFORM. " PAI_OF_SELECTION_SCREEN
*& Form F4_FOR_VARIANT
text
FORM F4_FOR_VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = G_VARIANT
I_SAVE = G_SAVE
IMPORTING
E_EXIT = G_EXIT
ES_VARIANT = GX_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 2.
MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
IF G_EXIT = SPACE.
P_VARI = GX_VARIANT-VARIANT.
ENDIF.
ENDIF.
ENDFORM. " F4_FOR_VARIANT
*& Form BUILD_LAYOUT
STANDARD LAYOUT
-->P_LAYOUT text *
FORM BUILD_LAYOUT USING P_LAYOUT TYPE SLIS_LAYOUT_ALV.
P_LAYOUT-F2CODE = F2CODE.
P_LAYOUT-ZEBRA = 'X'.
p_layout-detail_popup = 'X'.
P_LAYOUT-TOTALS_TEXT = SPACE.
P_LAYOUT-SUBTOTALS_TEXT = SPACE.
ENDFORM. " BUILD_LAYOUT
FORM BUILD_PRINT *
STANDARD PRINT OPTIONS *
--> P_PRINT *
FORM BUILD_PRINT USING P_PRINT TYPE SLIS_PRINT_ALV.
P_PRINT-NO_PRINT_LISTINFOS = 'X'.
P_PRINT-NO_PRINT_SELINFOS = ' '.
ENDFORM. " BUILD_PRINT
FORM PF_STATUS_SET *
NAME YOUR STATUS ALV. IF YOU NEED IT.. *
FORM PF_STATUS_SET USING EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'ALV' EXCLUDING EXTAB.
ENDFORM. " PF_STATUS_SET
FORM USER_COMMAND_SAMPLE *
--> UCOMM *
--> SELFIELD *
FORM USER_COMMAND_SAMPLE USING UCOMM LIKE SY-UCOMM
SELFIELD TYPE SLIS_SELFIELD.
CASE UCOMM.
WHEN 'MSXL'. " Export to Excel
perform set_excel_export.
CLEAR UCOMM.
WHEN 'MM03'.
set parameter id 'MAT' field selfield-value.
call transaction 'MM03' and skip first screen.
CLEAR UCOMM.
WHEN 'BGR1'.
perform fill_available.
perform graph_available.
CLEAR UCOMM.
WHEN 'DOCU'.
call function 'Z_HELP' exporting repname = repname.
ENDCASE.
ENDFORM. " USER_COMMAND
*& Form WRITE_USING_ALV_SAMPLE
*THIS IS A SAMPLE AND MUST BE WRITTEN DIRECTLY IN THE MAIN PROGRAM
FORM WRITE_USING_ALV_SAMPLE.
YOU CAN MERGE WITH A DATA DICTIONARY TABLE USING THIS:
call function 'REUSE_ALV_FIELDCATALOG_MERGE'
exporting
i_program_name = repname
i_internal_tabname = 'I'
i_inclname = repname
changing
ct_fieldcat = fieldtab.
if sy-subrc <> 0.
write: 'SY-SUBRC: ', sy-subrc, 'REUSE_ALV_FIELDCATALOG_MERGE'.
endif.
OR JUST DISPLAY IT USING THIS:
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_callback_program = repname
i_callback_pf_status_set = 'PF_STATUS_SET'
i_callback_user_command = 'USER_COMMAND'
i_structure_name = 'I'
is_layout = layout
it_fieldcat = fieldtab
i_default = 'A'
i_save = g_save
is_variant = g_variant
it_events = events[]
is_print = prints
tables
t_outtab = i.
if sy-subrc <> 0.
write: 'SY-SUBRC: ', sy-subrc, 'REUSE_ALV_LIST_DISPLAY'.
endif.
ENDFORM. " WRITE_USING_ALV
thanks
mrutyun^ -
Can Flex detect browser close event?
Is Flex notified by the browser when the browser is closed
(or browser tab)? I need to be able to save any unsaved data in the
application before the browser closes.
Thanks in advanceThanks for your reply.
I found a good example that I followed and got it working:
http://flexblog.faratasystems.com/?p=134 -
How to detect browser close event in flex ?
How to detect browser close event in flex ?
This link may help:
http://cookbooks.adobe.com/post_Close_event_of_browser_or_browser_tab-18211.html
Best, -
Hello everyone,
Even though this question has been answered before, I find that none of the answers seem to work for me.
My problem is the following: Locks are placed on records and tables at certain points in my application. But if the user simply closes the browser without closing the application properly, all the locks are still in place. So I need to catch an event that allows me to ABAP my way out of this.
I have the following BSP page which loads my application:
function startBSPApplication()
function endBSPApplication()
<frameset id="<%=guid %>_FRAMESET" rows="*,0" onload="startBSPApplication('<%=guid %>_A');" onunload="exitBSPApplication();" noresize framespacing="0" frameborder="0" border="0">
<frame name="<%=guid %>_A" src="session_default_frame.htm">
<noframes>This browser does not support frames.</noframes>
</frameset>
The start and end functions simply start and end a session, and I find myself unable to actually call an ABAP function in there. All ABAP code placed inside the javascript functions is called everytime the page is loaded, not everytime the function is called and that's not what I want.
I also already tried the <bsp:htmlbEvent> tag, but I couldn't get that to work either. I tried it like this:
Notice however that I wrote this on top of the frameset. Does this mean that the onunload event will be called twice and does this cause a problem?
I tried to call the onDestroy event from within my endBSP function, but nothing happened either.
<htmlb:content design="design2003" >
<htmlb:page title="Capture browser close " >
<htmlb:form>
<bsp:htmlbEvent id = "myid"
onClick = "onDestroy"
name = "onDestroy"/>
<script for="window" event="onunload" type="text/javascript">
alert('Starting the Server Event');
onDestroy();
</script>
</htmlb:form>
</htmlb:page>
</htmlb:content>
Does anybody have another suggestion, or notice me overlooking something?
Thank you in advance,
Niels.Hi Eddy,
I can't find anything really helpful in that blog. Except maybe adding the onbeforeunload attribute to my frameset and calling a JS function to back it up.
The problem still persists that any ABAP you put in a JS function is executed regardless of wether or not the function is actually called.
I need to get to my DO_HANDLE_EVENT somehow when the user closes the window. -
Confirmation of browser close event
Hello,
In my application, I have a function "myCloseFunction" which looks something like this:
public function myCloseFunction
Alert.show("This is an alert.");
trace("myCloseFunction called");
This is only called upon closing the browser (set up using ExternalInterface.addCallback and window.onbeforeunload)
The strange thing is, no alert ever pops up BUT the trace does show. I have (of course) imported the alerts library (and used alerts elsewhere successfully in the application). Has anyone ever experienced it or does anyone know of a fix?
I will post my Javascript and .mxml file if needed, though I doubt it is.
Thanks in advance for your help!hi,
Frastructed with the window close example using ExternalInterface.addCallback provided by Adove not working. Any help would truly appreciated. here is what i've found:
1. when tested, it passes data from html to Flex if I use onchange="callApp();" of the <Input> tag by typing something to invoke onchange event;
2. if I choose to use window.onbeforeunload = callApp(); at the JavaScript section to detect window closing event, it does detect window is closing, but it won't pass the data ("Window Closing") to Flex.
Thank you very much for any help.
In Html:
<html><head>
<title>wrapper/AddCallbackWrapper.html</title>
<SCRIPT LANGUAGE="html/JavaScript">
function callApp() {
window.document.title = document.getElementById("newTitle").value;
mySwf.myFlexFunction("Window Closing");
//window.onbeforeunload = callApp();
</SCRIPT>
</head>
<body scroll='no'>
<h1>AddCallback Wrapper</h1>
Enter a new title: <input type="text" size="30" id="newTitle" onchange="callApp();">
<table width='100%' height='100%' cellspacing='0' cellpadding='0'>
<tr>
<td valign='top'>
<object id='mySwf' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab' height='200' width='400'>
<param name='src' value='testWrapper.swf'/>
<param name='flashVars' value=''/>
<embed name='mySwf' src='testWrapper.swf' pluginspage='http://www.adobe.com/go/getflashplayer' height='100%' width='100%' flashVars=''/>
</object>
</td>
</tr>
</table></body></html>
In Flex:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()">
<mx:Script>
<![CDATA[
import flash.external.*;
import mx.rpc.events.ResultEvent;
import flash.events.Event;
import mx.rpc.events.FaultEvent;
import mx.controls.Alert;
public function initApp():void {
ExternalInterface.addCallback("myFlexFunction",myFunc);
public function myFunc(s:String):void {
Alert.show(s);
]]>
</mx:Script>
<mx:Label id="l1"/>
</mx:Application> -
How can i catch the jsp checking event ?
As we know, there are three parameters which is about checking in the weblogic.xml, pageCheckSeconds,*servlet-reload-check-secs*,*resource-reload-check-secs*, but how can i catch the checking event when the webapp is active.
The fellowing is my simple test, i deployed a webapp on a weblogic server instance, and it was actived. I wrote a simple bash shell to try to catch the event, but fail. i througnt it may be dependent on the webapp's stage mode. but i change the mode, and try again, it was fail too.
[weblogic@tdy218 ~]$ ls
getLastAccessTime.sh webapps
[weblogic@tdy218 ~]$ ./getLastAccessTime.sh ~/webapps/Test/login.jsp
The file's last access time is: 2011-05-22 11:10:21.000000000 +0800
The file's last access time is: 2011-05-22 11:10:21.000000000 +0800
The file's last access time is: 2011-05-22 11:10:21.000000000 +0800
The file's last access time is: 2011-05-22 11:10:21.000000000 +0800
The file's last access time is: 2011-05-22 11:10:21.000000000 +0800
The file's last access time is: 2011-05-22 11:10:21.000000000 +0800
The file's last access time is: 2011-05-22 11:10:21.000000000 +0800
[weblogic@tdy218 ~]$ ./getLastAccessTime.sh
/bea/wls924/user_projects/domains/base_domain/servers/AdminServer/stage/Test/Test/login.jsp
The file's last access time is: 2011-05-22 11:11:37.000000000 +0800
The file's last access time is: 2011-05-22 11:11:37.000000000 +0800
The file's last access time is: 2011-05-22 11:11:37.000000000 +0800
The file's last access time is: 2011-05-22 11:11:37.000000000 +0800
The file's last access time is: 2011-05-22 11:11:37.000000000 +0800
The file's last access time is: 2011-05-22 11:11:37.000000000 +0800
The file's last access time is: 2011-05-22 11:11:37.000000000 +0800
The file's last access time is: 2011-05-22 11:11:37.000000000 +0800
[weblogic@tdy218 ~]$ stat
/bea/wls924/user_projects/domains/base_domain/servers/AdminServer/stage/Test/Test/login.jsp
File: `/bea/wls924/user_projects/domains/base_domain/servers/AdminServer/stage/Test/Test/login.jsp'
Size: 634 Blocks: 8 IO Block: 4096 regular file
Device: 804h/2052d Inode: 583725 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 502/weblogic) Gid: ( 500/ bea)
Access: 2011-05-22 11:11:37.000000000 +0800
Modify: 2010-05-24 14:49:08.000000000 +0800
Change: 2011-05-22 11:10:21.000000000 +0800
The jsp file's last access time didn't changed in the past.
[weblogic@tdy218 ~]$ more getLastAccessTime.sh
#!/bin/bash
declare -i m=1
declare -i n=100
while [ $m -le $n ]; do
echo "The file's last access time is: $(stat -c %x $1)"
m=m+1
sleep 3
done
weblogic.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.oracle.com/technology/weblogic/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
<jsp-descriptor>
<jsp-param>
<param-name>pageCheckSeconds</param-name>
<param-value>2</param-value>
</jsp-param>
</jsp-descriptor>
<container-descriptor>
<servlet-reload-check-secs>2</servlet-reload-check-secs>
<resource-reload-check-secs>2</resource-reload-check-secs>
</container-descriptor>
<context-root>/jdbc</context-root>
</weblogic-web-app>
env :
WebLogic 9.2 MP4、Redhat Linux AS 4 Update 8 x86.I tested on WLS 11g ps2(10.3.3) which is running in Development Mode also, but it was the same as WLS 9.2 MP4.
During the weblogic server running, it don't check the application resources , but it will check the $Domain_Home/autodeploy directory every three seconds in Development Mode , the following is the result.
[weblogic@tdy218 ~]$ ./getLastAccessTime.sh /bea/wls924/user_projects/domains/base_domain/autodeploy
The file's last access time is: 2011-05-22 12:01:43.000000000 +0800
The file's last access time is: 2011-05-22 12:01:43.000000000 +0800
The file's last access time is: 2011-05-22 12:01:43.000000000 +0800
The file's last access time is: 2011-05-22 12:01:46.000000000 +0800
The file's last access time is: 2011-05-22 12:01:46.000000000 +0800
The file's last access time is: 2011-05-22 12:01:46.000000000 +0800
The file's last access time is: 2011-05-22 12:01:49.000000000 +0800
The file's last access time is: 2011-05-22 12:01:49.000000000 +0800
The file's last access time is: 2011-05-22 12:01:49.000000000 +0800
The file's last access time is: 2011-05-22 12:01:52.000000000 +0800
Ctrl + ^
[weblogic@tdy218 ~]$ ./getLastAccessTime.sh ~/webapps/Test
The file's last access time is: 2011-05-22 17:26:25.000000000 +0800
The file's last access time is: 2011-05-22 17:26:25.000000000 +0800
The file's last access time is: 2011-05-22 17:26:25.000000000 +0800
The file's last access time is: 2011-05-22 17:26:25.000000000 +0800
The file's last access time is: 2011-05-22 17:26:25.000000000 +0800
The file's last access time is: 2011-05-22 17:26:25.000000000 +0800
The file's last access time is: 2011-05-22 17:26:25.000000000 +0800
The file's last access time is: 2011-05-22 17:26:25.000000000 +0800
The file's last access time is: 2011-05-22 17:26:25.000000000 +0800
Ctrl + ^
[weblogic@tdy218 ~]$ ./getLastAccessTime.sh ~/webapps/Test/
insert.jsp login.jsp query.jsp tdy218.sql WEB-INF/
[weblogic@tdy218 ~]$ ./getLastAccessTime.sh ~/webapps/Test/login.jsp
The file's last access time is: 2011-05-22 11:44:31.000000000 +0800
The file's last access time is: 2011-05-22 11:44:31.000000000 +0800
The file's last access time is: 2011-05-22 11:44:31.000000000 +0800
The file's last access time is: 2011-05-22 11:44:31.000000000 +0800
The file's last access time is: 2011-05-22 11:44:31.000000000 +0800
The file's last access time is: 2011-05-22 11:44:31.000000000 +0800
The file's last access time is: 2011-05-22 11:44:31.000000000 +0800
The file's last access time is: 2011-05-22 11:44:31.000000000 +0800
The file's last access time is: 2011-05-22 11:44:31.000000000 +0800
The file's last access time is: 2011-05-22 11:44:31.000000000 +0800
Ctrl + ^
I set the frequency to every one seconds this time by using sleep method in my Bash Shell script.
#!/bin/bash
declare -i m=1
declare -i n=100
while [ $m -le $n ]; do
echo "The file's last access time is: $(stat -c %x $1)"
m=m+1
sleep 1
done -
Every time I try to use Netflix instant play the browser closes with no explanation.
Every time I click on a link for a Netflix instant-play movie, the browser instantly closes all windows and tabs (quits, in fact) with no explanation. The rest of the processes on the computer are not noticeably disturbed. I use Firefox version 3.6.3 on a MacBook running Mac OS X version 10.4.11, and 1 GB of RAM is available; all of these parameters meet the system requirements listed on Netflix's website. Furthermore, my Microsoft Silverlight is fully updated. Any advice?
www.microsoft.com/getsilverlight/ Try updating to the new silverlight edition. I had it up to date yesterday and it didnt work. i reinstalled today and fixed the problem for me.
-
Very annoying that the browser close when you close the tab !
I have been using Opera browser for years now, and I could close all tabs without closing the browser, so why is Firefox made so it Closes the browser when the last tab is closed ?, it is soooooo very much annoying !
Hello DKfire,
You can use this addon :
''Shows the "Close" button on the last tab in Firefox
Customizable button behavior:
- Open a blank tab or Speed Dial / Fast Dial
- Open the home page
- Close the window''
[https://addons.mozilla.org/fr/firefox/addon/last-tab-close-button/?src=search https://addons.mozilla.org/fr/firefox/addon/last-tab-close-button/?src=search] -
How do I catch the button click event from toolbar for my JSP?
I am using JDev 3.2 and BC4J for my JSP. I am using data web bean methods to create my JSPs. I need to implement a
master-detail relation in my JSP. Currently I put my master browser as the top frame of JSTabContainer bean and put my
6 detailed tables into 6 tabs. I found that when I click the next or previous button of toolbar of master frame, the detail tab
does not display the corresponding detail data properly. I think the reason is that I did not refresh the tab content when
the user change the current record of master table. Now my question is that how do I catch those events so that I can
refresh the content of my detail table? Or whatever suggestion can make this work.
Thanks,
LisaYou posted here with Firefox 17.0.1.
Try running a Norton Live Update so Norton can update their Firefox add-on and get that Toolbar working again.
That said, Norton doesn't do anything about Malware. You need a Malware application to locate and remove Malware.
Install, update, and run these programs in this order. They are listed in order of efficacy.<br />'''''(Not all programs detect the same Malware, so you may need to run them all to solve your problem.)''''' <br />These programs are all free for personal use, but some have limited functionality in the "free mode" - but those are features you really don't need to find and remove the problem that you have.<br />
''Note: If your Malware infection is bad enough and you are mis-directed to URL's other than what is posted, you may have to use a different PC to download these programs and use a USB stick to transfer them to the afflicted PC.''
Malwarebytes' Anti-Malware - [http://www.malwarebytes.org/mbam.php] <br />
SuperAntispyware - [http://www.superantispyware.com/] <br />
AdAware - [http://www.lavasoftusa.com/software/adaware/] <br />
Spybot Search & Destroy - [http://www.safer-networking.org/en/index.html] <br />
Windows Defender: Home Page - [http://windows.microsoft.com/en-US/windows7/products/features/windows-defender]<br />
Also, if you have a search engine re-direct problem, see this:<br />
http://deletemalware.blogspot.com/2010/02/remove-google-redirect-virus.html
If these don't find it or can't clear it, post in one of these forums for specialized malware removal help: <br />
[http://www.spywarewarrior.com/index.php] <br />
[http://forum.aumha.org/] <br />
[http://www.spywareinfoforum.com/] <br />
[http://bleepingcomputer.com] -
Catching the Record Change Event
Hello,
We are currently using SAP 2004, and would like to catch an event when a sap record changes, for example in Item Master Data window when the user clicks on the << < > >> and the Item Number/ Information changes. From what I can tell there is no specific form event that can be caught like on item number text change
Any help with this problem would be greatly appreciated
ThanksHi Bill,
Unfortunately, there is not a "record change".
You'll have to catch all the menu event when the user click on the << < > >>
Private Sub SBO_Application_MenuEvent(pVal As SAPbouiCOM.IMenuEvent, BubbleEvent As Boolean)
If pVal.BeforeAction = False Then
Select Case pVal.MenuUID
Case "1288" 'Next Record
oRecordSet.MoveNext
'// If reached EOF show last
If oRecordSet.EOF = True Then
oRecordSet.MoveLast
End If
Case "1289" 'Previous record
Case "1290" 'First record
Case "1291" 'Last record
End Select
End If
End Sub
Maybe you are looking for
-
Make any database have the ability of logging within 10 seconds
JDBMonitor is an open source project. It allows the developer to add the function of database execution logging to the application. It's so easy to use that the only thing you should do is appending "listenerconfig=/config.xml:url=" to the JDBC conne
-
AI 10 wasn't working right for some time, so I reinstalled hoping for a better performance. Now, there's no plugins, and I get a "missing plugin" message with every old file I open-like Calligraphic Brush, drop shadow missing, etc.; all the tools are
-
Expense A/c / Balance Sheet A/c
Hi Gurus, Please clearify my doubt about Expense A/c / Balance Sheet A/c, As per my knowledge what ever is amount / allowance is paid that will come under Expense A/.c (C), All Deductions and Employer's contributions comes under Balance Sheet A/c (F
-
I am very new to Photoshop (4 days), having just purchased Elements 10 (I was not told that Vers 11 was available and for the same price!!!!!). Yesterday I started a new project and loaded a photo. The photo was of a phone cord and was taken against
-
Save Large Value example & FCKeditor
Hi, I have been trying to use code from example application 'Save Large Value' with FCKeditor. It doesn't work for me. So how make that code to work with FCKeditor text area? Your suggestions are really appreciated. Thanks, Vladimir