Navigating away from Web Dynpro after warning.
Hi Experts,
I wanted to see if anyone can shed light on something I've been trying to implement. I'm working with NWDS 7.0.18
I developed a collection of WDP Java apps that reside in the same workset.
While working in one of the apps, if the user clicks a link to another app in the detailed navigation area and they haven't saved what they have been doing in the current app, then I want to display a message like: "You haven't saved you worked, are you sure you want to leave?? YES/NO"
If the user clicks yes, how do I navigate them to the app they clicked on? Or the role they clicked on? Or the workset they clicked on? I have put the above message in the wdDoExit() method of the View controller. The method checks for unsaved changes and if so, displays the message. I have two event handlers YesExit and NoExit. NoExit does nothing, what do I need to put in YesExit??
Any help is greatly appreciated.
Thanks
MM
Hi,
have you tried "work protect mode"? I don't know, if it works, when work protect mode is set in the onExit function, but give it a try.
The first example demonstrates how to define the work-protect mode level:
// Define the needed level. The level can be switched during
// the application lift time, i.e. it can for example be
// switched for different views.
WDPortalWorkProtectMode.setApplicationDirtyControl(
WDApplicationIsDirtyMode.NONE);
WDPortalWorkProtectMode.setApplicationDirtyControl(
WDApplicationIsDirtyMode.APPLICATION_ONLY);
WDPortalWorkProtectMode.setApplicationDirtyControl(
WDApplicationIsDirtyMode.STANDARD);
The second example demonstrates how to define the u201Cdirty stateu201D of an application:
// Set the u201Cdirty stateu201D to YES, i.e. the application is dirty and
// a navigation should be launched in a new window to make sure that
// no data is lost
WDPortalWorkProtectMode.setApplicationDirty(true);
// Set the u201Cdirty stateu201D to FALSE, i.e. the application state is u201Ccleanu201D
// and therefore the navigation is launched inplace and the
// running application is left.
WDPortalWorkProtectMode.setApplicationDirty(true);
Here is the document, i got this code from with some explanations about work protect mode: http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/a891e490-0201-0010-fb99-b7e4f5dda2ec&overridelayout=true
best regard,
Christian
Similar Messages
-
CAF DB Update for CAF Entity Service from Web Dynpro
Hi all,
I have created an entity service in CAF called Contacts which contains the following attributes.
phoneNo
cellNo
emailID.
Another entity service called "Person" is created. This contains the following attributes.
personId
personName
personAddr
contactsRef. (Cardinality -> 0..n , Relational Type -> Composition)
That means Contacts entity service is used within Person entity service. Now it is working fine within CAF service browser. Now the Web Dynpro DC of CAF application is used within another custom Web Dynpro DC project. I want to store data from Web Dynpro.
Within the context of component controller of Web Dynpro the structure is like
APerson
|_ personId
|_ personName
|_ personAddr
|_ contactsRef
|_ phoneNo (Under contactsRef)
|_ cellNo (Under contactsRef)
|_ emailID (Under contactsRef)
So I have written the following code within web dynpro custom method.
APerson person = PersonServiceProxy.create();
java.util.List ls = new ArrayList();
for(int i=0; i<4;i++)
AContacts contact = ContactsServiceProxy.create();
contact.setCellNo("9092130156");
contact.setEmailID("[email protected]");
contact.setPhoneNo("432258");
contact.getAspect().sendChanges();
ls.add(contact);
person.setRelatedModelObjects("contactsRef",ls);
person.setPersonID("9999");
person.setPersonName("xyz");
person.setPersonAddr("ABC, KOL");
wdContext.nodeAPerson().bind(person);
person.getAspect().sendChanges();
CAFServiceFactory.getServiceFacade(idendityDefinition.class);
After saving the data from Web Dynpro I am trying to test it from CAF service browser. But I am getting only the parent row. I mean only the value of personId, personName and personAddr fields which I have stored from Web Dynpro. But no value is coming within the table for Contacts entity service for composition relation.
Could anybody help me how can I solve my problem?
Thanks & Regards
Chandan
Message was edited by:
Chandan JashHi Chandan,
Can you do person.getRelatedModelObjects() and get the contact object, to check whether it is null, also check in the CAF DB whether the data you entered is present.
I am not sure the code is actually adding the contact model object to person.
Go thru this SDN Blog on usage of the CMI API's, there is a link for CMI documentation in it which might help you get the right code for adding the contact object.
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/cef4f43e-0d01-0010-db84-ede25c874115.
award points if info is helpful
Regards,
Anish -
Detecting navigation away from a screen
To play mp3 files in my web application, I've a simple audio player with play/pause buttons, progress bar, etc. Just the way VideoPlayer stops playing video when user of the application switches to some other screen, I would like my audio player to stop playing audio when the user switches to some other screen. What event can I use to detect that the audio player (s:VGroup) isn't 'visible'?
Although this question is framed around stopping an audio player, the same applies to a situation where user is navigating away from a form without saving modified data.
Thanks,
DilipHey Dilip,
You need to include Javascript here. What you need to do is put an event on window.blur and on window.blur call a code of Flex application to make the audio player mute.
I think that make sense to you still if you have any question let me know.
Thanks & Regards
Ankur Arora
Project Leader(Flash and Flex)
http://flashdeveloper.blogspot.com
http://www.ankur-arora.com -
Navigate from Web Dynpro app to portal page
Dear All,
I've created a number of Web Dynpro applications which I run from various portal pages. From one of the Web Dynpro's I navigate to a different portal page using the WDPortalNavigation.navigateAbsolute method. This works fine, but I'm left with one problem:
I'd like to pass parameters from the Web Dynpro which navigates to the portal page to the Web Dynpro applications which run on that specific page. I've appended the parameters to the URL I'm navigating to (eg ROLES://<pcd location>?<param=xxx>) and in the Web Dynpro's I've added a parameter to the Default interface plug. This doesn't seem to work. As an alternative I've added the statement WDWebContextAdapter.getWebContextAdapter().getRequestParameter("param") to the doInit() method of the view, but this also doesn't work.
Either I'm doing something wrong, or what I want to accomplish is not possible. Does anybody know of a way to access parameters passed to a portal page from Web Dynpro applications contained on that page?
Thanks,
ArnoudI hope you are passing parameters between two WebDynpro applications.
Please go through the example available for passing interaction between two webdynpro components.
Please check the following link
Alternative method for navigating to another page ?
or the following link
Re: Can we pass parameters in querystring of the webdynpro application? -
HTTP form post from Web Dynpro Java Application without opening new window
Hi Experts,
We are trying to submit form data to an external URL from Web Dynpro Java application. We are achieving this with the following piece of code.
try
strPrintContent="<html>"+
"<head>"+
"<script type=\"text/javascript\">"+
"function myfunc () "+
"{"+
"var frm = document.getElementById(\"paymentForm\");"+
"frm.submit();"+
"}"+
"</script>"+
"</head>"+
"<body onLoad=myfunc()>"+
"<form id=paymentForm method=post action=\""+merchantURLPart+"\">"+
"<INPUT type=hidden name=username value="+userName+">"+
"<INPUT type=hidden name=pass value="+passWord+">"+
"<INPUT type=hidden name=senderid value="+senderID+">"+
"<INPUT type=hidden name=dest_mobileno value="+mobile+">"+
"<INPUT type=hidden name=message value='"+msg+"'>"+
"<INPUT type=hidden name=response value="+response+">"+
"</form>"+
"</body>"+
"</html>";
IWDWebResource webResource = WDWebResource.getWebResource(strPrintContent.getBytes(),WDWebResourceType.HTML);
IWDWindow window = wdComponentAPI.getWindowManager().createNonModalExternalWindow(webResource.getAbsoluteURL(),"WBSEDCL");
window.show();
catch(Exception e)
wdComponentAPI.getMessageManager().reportException("Error : "+e.toString(),false);
But it opens another window. We dont need that. We have to stay on the same window. Please suggest what can be done.Hi,
You can create a HTML file with the request post parameters and the external URL something like this:
public java.lang.String GetRedirecturl( )
// External URL
String html = "<html><head></head><body onload=\"load()\"> " +
"<form id=\"form1\" action=\"https://www.abc.com/xyz.jsp\" method=\"POST\">" +
// Post Parameters
"<INPUT TYPE=\"HIDDEN\" NAME=\"Param1\"VALUE=\""+Param1Value+"\">"+
"<input name=\"sap-wd-resumeurl\" type=\"hidden\"/>" +
"</form> " +
"" +
"<script>" +
"function load(){" +
"var loc = window.location.search.substring(1);" +
"var queryString = loc.split(\"sap-wd-resumeurl=\");" +
"if(queryString.length > 0)" +
"{" +
"var resumeURL = queryString[1].split(\"&\");" +
"if(resumeURL.length >= 0)" +
"{" +
" document.forms['form1'].elements['sap-wd-resumeurl'].value= unescape(resumeURL[0])" +
"}" +
"}" +
"document.getElementById('form1').submit();" +
"}" +
"</script>" +
"</body> </html>";
String redirectUrl = "";
byte[] byteArrayHtmlData = null;
try {
byteArrayHtmlData = html.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
wdComponentAPI.getMessageManager().reportException("Internal error occurred. Please try after some time",true);
IWDResource htmlResource = WDResourceFactory.createCachedResource(new ByteArrayInputStream(byteArrayHtmlData), "Redirect.html", WDWebResourceType.HTML, true);
redirectUrl = htmlResource.getUrl(WDFileDownloadBehaviour.AUTO.ordinal());
return redirectUrl;
Hope this will be helpful.
Regards,
Anurag -
Hi all,
I have created an entity service in CAF called Contacts which contains the following attributes.
phoneNo
cellNo
emailId.
Another entity service called "Person" is created. This contains the following attributes.
personId
personName
personAddr
contactsRef. (Cardinality -> 0..n , Relational Type -> Composition)
That means Contacts entity service is used within Person entity service. Now it is working fine within CAF service browser. Now the Web Dynpro DC of CAF application is used within another custom Web Dynpro DC project. I want to store data from Web Dynpro. So I have written the following code within web dynpro custom method.
APerson person = PersonServiceProxy.create();
java.util.List ls = new ArrayList();
for(int i=0; i<4;i++)
AContacts contact = ContactsServiceProxy.create();
contact.setCellNo("9092130156");
contact.setEmailID("[email protected]");
contact.setPhoneNo("432258");
contact.getAspect().sendChanges();
ls.add(contact);
person.setRelatedModelObjects("contactRef",ls);
person.setPersonID("9999");
person.setPersonName("xyz");
person.setPersonAddr("ABC, KOL");
wdContext.nodeAPerson().bind(person);
person.getAspect().sendChanges();
CAFServiceFactory.getServiceFacade(idendityDefinition.class);
After saving the data from Web Dynpro I am trying to test it from CAF service browser. But I am getting only the parent row. I mean only the value of personId, personName and personAddr fields which I have stored from Web Dynpro. But no value is coming within the table for Contacts entity service for composition relation.
Could anybody help me how can I solve my problem?
Thanks & Regards
ChandanHi Chandan,
Can you do person.getRelatedModelObjects() and get the contact object, to check whether it is null, also check in the CAF DB whether the data you entered is present.
I am not sure the code is actually adding the contact model object to person.
Go thru this SDN Blog on usage of the CMI API's, there is a link for CMI documentation in it which might help you get the right code for adding the contact object.
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/cef4f43e-0d01-0010-db84-ede25c874115.
award points if info is helpful
Regards,
Anish -
Window size, and navigation issues with Web Dynpro and GP
I have a Web Dynpro application which navigates to other Web Dynpro applications. I also need to integrate this application into a GP. When I create a process that calls the Web Dynpro app, two things I've noticed are:
1. The window size presented in the GP process is too small, and there is no way to scroll to see the rest of the app. How can I change the initial size of the Window to show the entire application? This is an absolute show stopper...
2. Other functionality is made available to the Web Dynpro app by navigating to other Web Dynpro applications. Outside of the GP, this works correctly. However, from within the application when started via a GP, I get the following error when I try to trigger an action that will lead to a navigation event:
com.sap.tc.webdynpro.services.exceptions.WDRuntimeException: Cannot navigate via outbound plug CreatePdf of view TestView because there is no navigational link attached to it
at com.sap.tc.webdynpro.progmodel.view.View.navigate(View.java:541)
at com.sap.tc.webdynpro.progmodel.view.View.navigate(View.java:462)
Any ideas? Do I have to manually instantiate the various components when the root Web Dynpro app is called from a GP?Update: this was my mistake - I had neglected to configure all the view containers in the WebDynproCO window, which was generated by adding the GP interface to the component. All is well.
-
How to get the Response Code when a URL is launched from Web Dynpro
Hello Experts,
I have a Web Dynpro Application in which in one of its views i have an IFrame UI element in which i will show a resource stored somewhere ..
But before showing it i want to check if the resource actually exists. For this i have to check the HTTP Response code from Web Dynpro Application without setting it in the Iframe..
I am using the following code to get the Response Code:
try{
URL url = new URL("Some Url");
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.connect();
wdComponentAPI.getMessageManager().reportSuccess("Response code ="+connection.getResponseCode());
}catch(Exception e){
wdComponentAPI.getMessageManager().reportSuccess("Exception");
Now the Problem is whatever response Code occurs 403 (for No Proper Authorization), 404 (for Resource not found) etc..
i always get Response Code= 500 (which is for Internal Server Error) shown in the messgae i have printed.
Please let me know the correct way of getting the Response Code from Web Dynpro.
Also my resource is lying on a SAP Portal 6.4
Best Regards
Sundeep
Edited by: Sundeep Sethi on Feb 18, 2008 9:07 AM
Edited by: Sundeep Sethi on Feb 18, 2008 10:23 AMHi,
Check this code from /thread/5242768 [original link is broken] if it works.
try{
URL myurl = new URL("http://calendar.google.com");
URLConnection connection = myurl.openConnection();
if(connection instanceof HttpURLConnection) {
HttpURLConnection httpConnection = (HttpURLConnection) connection;
HttpURLConnection.setFollowRedirects(true);
httpConnection.setRequestMethod("HEAD");
httpConnection.connect();
System.out.println("Response = "+httpConnection.getResponseCode());
catch(Exception e) {
// print exception
Regards,
Harini S -
Regarding how to pass the data from web dynpro to workflow
hi gurus,
how to pass the data from web dynpro to workflow.
Regards
vijayCheck this [thread|SAP_WAPI_START_WORKFLOW;
-
How to pass the data from web dynpro to workflow.
hi gurus,
how to pass the data from web dynpro to workflow.
Regards
vijayHi
you can use function module
data ls_input_container TYPE swr_cont.
data lt_input_container TYPE TABLE OF swr_cont.
CALL FUNCTION 'SAP_WAPI_START_WORKFLOW'
EXPORTING
task = ptask
IMPORTING
return_code = lv_return_code
new_status = lv_new_status
TABLES
input_container = pinput_container
message_lines = lt_message_lines
message_struct = lt_message_struct.
where you pass the data in imnternal table "pinput_container" as
ls_input_container-element = 'KUNNR'.
ls_input_container-value = ls_skna1-kunnr ."wd_this->lv_kunnr.
APPEND ls_input_container TO lt_input_container .
ls_input_container-element = 'CLUSER'.
ls_input_container-value = lv_cluser.
APPEND ls_input_container TO lt_input_container .
ls_input_container-element = 'BUKRS'.
ls_input_container-value = lv_bukrs. " youe value as per requirement.
APPEND ls_input_container TO lt_input_container .
ls_input_container-element = 'VKORG'.
ls_input_container-value = ls_sknvv-vkorg. " youe value as per requirement
APPEND ls_input_container TO lt_input_container .
ls_input_container-element = 'VTWEG'.
ls_input_container-value = ls_sknvv-vtweg. "youe value as per requirement.
APPEND ls_input_container TO lt_input_container .
ls_input_container-element = 'SPART'.
ls_input_container-value = ls_sknvv-spart. "youe value as per requirement.
APPEND ls_input_container TO lt_input_container .
*Also Forgot to mention where ptask is your workflow ID *
Regards,
Arvind
Edited by: Arvind Patel on May 14, 2010 7:38 AM -
Passing parameters to Transactions from Web dynpro Application through ITS
Hi,
i need to call a transaction from Web dynpro through ITS. On action from web dynpro application, i am concatenating the respective parameters mentioned below along with URL. The problem is one parameter(VARIANT) is being passed to the t-code CAT3 correctly. The next mandatory parameter(PERNR) is not passed to the respective field.Here is the URL Code:
CONCATENATE 'http'
'://' host ':' port
'/sap/bc/gui/sap/its/webgui/?sap-client=&~transaction=' 'CAT3'
'%20TCATST-VARIANT=' lv_name2 '&CATSFIELDS-PERNR=' lv_name1 INTO url.
Called T-Code CAT3
Passing Parameters are:
Data Profile TCATST-VARIANT
Pernr: CATSFIELDS-PERNRPradeep,
iam trying to pass values from webdynpro application to SAP GUI Transaction
here is the sample code which iam using
CONCATENATE 'http://s0164dep01.adta.uae:50000/irj/portal/interop?NavigationTarget=pcd:portal_content/Testing/trn_iw33?'
'%20CAUFVD-AUFNR='
'ApplicationParameter=CAUFVD-AUFNR='
lv_workorder';'
'DYNP_OKCODE=SHOW'
INTO lv_url.
i could'nt able to succed as its displaying page not found exception.
Help me on this to proceed further
Regards
Jaipal.E -
Cannot print from web sites after update to FF 7.0.1
cannot print from web sites after update to FF 7.0.1
Printing from my email account (Cox) is OK
System Windows VistaWhen my wife updated Firefox to version 7.0.1 she was no longer able to print items from the web such as coupons. She can print from her email (Cox) account.
She is running Vista.
When I updated to Firefox 7.0.1, I did not have a problem. I am running Vista also.
Tried using the Firefox help page but no help so far.
I did notice that on her computer in the "Plugins" for Firefox that HP Smart Web Printing is now disabled and is not compatible with Firefox 7.0.1. She had no problems until she did the update. -
Calling adobe form from Web Dynpro ABAP
Hi Friends,
This is the following error, which i got when i tested my application. Calling adobe form from Web Dynpro ABAP.
WebDynpro Exception: ADS: Request start time: Tue Nov 16 14:00:22 YEKT
2010(200,101).
Can some one tell me how to solve this....
Regards
SankarHi,
Please refer to this same link in forum
WebDynpro Exception: ADS: Request start time, start Interactive Form
WebDynpro Exception: ADS: Request start time
Thanks
Pradeep -
Calling Batch input from Web Dynpro - any alternatives for table updates?
Hi!
I am asked to create a screen in Web Dynpro for the GJ30 transaction (JV Cutback mapping of WBS' elements). I created a remote enabled function module which call batch input for GJ30 . Testing the Function modules direclty goes fine, but not calling the function module from WD. then I get the same error message as when I once tried to call SAP GUI from Web Dynpro ( Call transaction /submit program).
My next step is to try to create a batch input session (instead of call transaction) and run it using rsbdcsub, and then check the result of the run. But maybe this will fail of the same reason as well, and I suppose this will make the user waiting longer for the response .
I read somewhere that Web Dynpro does not support batch Input. But what can you do when there are no standard BAPI's for the update you want to do in SAP ? We are not supposed to do direct table updates.
Anyone who have struggled with the same issues and found a solution??
regards, TineHi,
as BDC is calling screens and in Webdynpro ABAP you cannot use SAP GUI sceeen, you are getting short dump.
Refer CNTL_SYSTEM_ERROR in webservices from r/3 system
Thanks,
Chandra -
Trigger File Generation to a Server from Web Dynpro Application
Hi Everybody! Hope you had a good new years eve
Is it possible to generate a File on a Server outgoing from Web Dynpro?
I tried to use GUI_DOWNLOAD. But as I couldn't use the GUI_DOWNLOAD from the Web Dynpro, I wrote a Report "ZCMI_EXPORT_FILE" that generates a Text-File. When I start the Report by myself, the file gets generated. All fine.
To be able to generate the File from Web Dynpro, I created a Batch Input Function Module, that I call in the Web Dynpro. The File is not created and it does not show any errors.
Do you have any idea how i can get this working? I'd also be happy with a different approach.
Best Regards and Thanks,
Steffen
REPORT that is called with Batch Input from Web Dynpro:
call function 'ZFM_GENERATE_EXPORT'
exporting
it_detail_record = lt_records
is_export = gs_export
importing
ev_string = gs_export-document
et_dataset = data_tab
exceptions
parameter_is_initial = 1
others = 2.
if sy-subrc <> 0.
endif.
concatenate '\\SERVER\EXPORT\' gs_export-filename into lv_filename.
call function 'GUI_DOWNLOAD'
exporting
filename = lv_filename
tables
data_tab = data_tab
exceptions
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
others = 5.
if sy-subrc <> 0.
exit.
endif.HI,
GUI_DOWNLOAD does not get's executed in the Backgroud.
there is no way to do it as a background job.. create the folder.. transfer the file to the application server in the backgorund using OPEN DATASET... use the tcode CG3Y to download the file from the app server to your folder..
Maybe you are looking for
-
How to restrict the users in ALV Report
HI Experts, I have a requirement that in an ALV report i have 10colums in the otput of an alv report program now if i want the 5 users to see only the 4 column and if i want the other users to see only 3colums how can we do thal please help me on thi
-
Purchase Requisitions Approval Error
Hi, We are working in Oracle Applications 11i. We have the follwoing modules installed and used: Purchasing, Inventory, HRMS(Payrol), General Ledger, Assets, Payables. I am trying to fill in the gaps in our initial setup in order to enable the user t
-
How can I put data in FCE?
Hello, After I had finally managed to install FCE (4.0) , I connected my Sony HDR-CX155 with my computer. It appears on the desktop and in FCE, I can also "look" in the camera's recorded clips via FCE, but it is not possible to get the chosen clips o
-
Use of netweaver in java programming
Hi! I want to know the use of netweaver in java application as compare to other IDE's. Thnk u
-
Powermac G3: max 4x256Mbyte. Can you confirm?
Hi to everybody. I believe the title of the subject is clear but can somebody confirm that the size limit of RAM in each slot is 256Mbyte (machine is produced in july 1999). Does also anybody know if PC-133 256Mbyte DIMM are OK? Thank you very much.