Moving around in the R/3 System Moving around in the R/3 System

Comparison of Exit, Back and Cancel

To clarify the differences between the three basic navigation functions Back, Exit and Cancel let us start with simple examples.

Example 1: Exit

The user has been working on a task and has finished entering data. She wants to leave the application and move over to a different task. In this case, she uses the function Exit. This function reminds her to save her entered data (if she had not already done this) and then returns her to the application level.

Example 2: Cancel

The user has been working on a task and has already entered some data. When she moves to the next screen she realized that she has to enter data which she does not know and has to ask for. Therefore, she decides to cancel the editing and get the required information. This time she chooses the function Cancel. Cancel informs her that she will lose all her data. She may, however, cancel her canceling and go on with the editing. This time, going on with editing makes no sense. So she accepts losing her data and is transferred to the initial screen of her application (note: this is an example, the actual jump target of Cancel depends on the context).

Other examples for uses of Cancel are error conditions where inconsistent data have been entered which cannot be saved or dialogue boxes that have been erroneously initiated.

Example 3: Back

The name of the function Back sounds simple, but this function may not quite be what you and the users expect.

The user edits a document that consists of header data and some more groups of data. All groups have to be entered on separate screens. When the task requires that all groups of data have to be entered, it is useful to put the data screens in a fixed sequence. This time, however, the user wants to access only some of the screens. She does so from a main screen via the Goto menu. After finishing data entry for a group she returns to the main screen via the function Back. As with Exit, Back allows her to save the entered data, if she had not already done this.

It is important to note that the function Back is not to be used in a fixed screen sequence, as many users would expect. Here, you use the functions Next screen and Previous screen for moving between screens! Back, however, always moves "up" in an application hierarchy. Sometimes this is the screen where the user came from, but not always!

Another problem for users may be that in some cases all three functions return them to the same screen, for instance to the initial screen or to the application level. So, they may come to believe that these functions all do the same. This, however, is not the case. You as developer can help users by implementing these functions correctly!

The three functions Exit, Cancel and Back serve different purposes and have quite a different behavior with respect to where the user is transferred and whether he or she may save the entered data or loses them.

Graphical Comparison

We now move on to a more technical comparison of the three navigation functions Exit, Cancel and Back. First we compare the processing within the three navigation functions, especially with respect to when error checks are done and when safety prompts appear.

Figure 1: Graphical comparison of Back, Exit and Cancel

Our graphics reveal that with Back and Exit the error check is performed at different events: With Back, the check is performed at the beginning of the processing, whereas with Exit it is performed at the end. With Cancel, by contrast, no check is performed at all. In addition, the safety prompt with Cancel does not provide the chance to save the data, as data cannot be saved with Cancel. Therefore, it informs the user about the possible loss of data.

Table Comparison

The following table summarizes the most important information on the three navigation functions Back, Exit and Cancel that you as developer need. Among others, it aids you in designing the safety prompts.

Criterion Back
(Zurück
Exit
(Beenden)
Cancel
(Abbrechen
effect exits object component exits task (application) exits processing
jump target returns to previous level screen calling the task if possible, a close and safe screen
save option (dialogue window) Yes Yes No
checks Yes Yes No
sequence of save/check checks first, save option later save option first, checks later ---
example title of dialogue window Back Exit G/L document Cancel editing
diagnosis text in dialogue window No diagnosis text No diagnosis text Unsaved data will be lost (e.g.)
example text in dialogue window Do you want to post the held document?

or

Do you want to post the held document 4712?

Do you want to post the held document?

or

Do you want to post the held document 4712?

Unsaved data will be lost.

--- blank line ---

Do you want to cancel the editing? (1st line is diagnosis text)

pushbuttons in dialogue window (default answer underlined) Yes, No, Cancel Yes, No, Cancel Yes, No
function module popup_to_confirm_ step

or

popup_to_confirm_ with_ value

popup_to_confirm_ step

or

popup_to_confirm_ with_ value

popup_to_confirm_ loss_of_ data
action menu Goto (Springen) <object> (<Objekt>) Edit (Bearbeiten)
F-key F3 (V3) F15 (V15) F12 (V12)

Table 1: Summary of the three navigation functions Back, Exit and Cancel

 

top top

Source:  SAP R/3 Style Guide