以下为正文

CALL FUNCTION 'POPUP_TO_CONFIRM'   
EXPORTING   
*   TITLEBAR                    = ' '   
*   DIAGNOSE_OBJECT             = ' '   
TEXT_QUESTION               =   
*   TEXT_BUTTON_1               = 'Ja'(001)   
*   ICON_BUTTON_1               = ' '   
*   TEXT_BUTTON_2               = 'Nein'(002)   
*   ICON_BUTTON_2               = ' '   
*   DEFAULT_BUTTON              = '1'   
*   DISPLAY_CANCEL_BUTTON       = 'X'   
*   USERDEFINED_F1_HELP         = ' '   
*   START_COLUMN                = 25   
*   START_ROW                   = 6   
*   POPUP_TYPE                  =   
*   IV_QUICKINFO_BUTTON_1       = ' '   
*   IV_QUICKINFO_BUTTON_2       = ' '   
* IMPORTING   
*   ANSWER                      =   
* TABLES   
*   PARAMETER                   =   
* EXCEPTIONS   
*   TEXT_NOT_FOUND              = 1   
*   OTHERS                      = 2  
​ 
POPUP_TO_CONFIRM in ECC600 have to be used instead of the obsolete function module: 
 
POPUP_FOR_INFO 
POPUP_TO_CONFIRM_LOSS_OF_DATA 
POPUP_TO_CONFIRM_STEP 
POPUP_TO_CONFIRM_WITH_MESSAGE 
POPUP_TO_CONFIRM_WITH_VALUE 
POPUP_TO_CONFIRM_WITH_VALUE_2 
POPUP_TO_DECIDE 
POPUP_TO_DECIDE_WITH_MESSAGE 
 
Even if most of these function modules are obsolete also in SAP 4.7, I would like to analyze it because are largely used. Below for each obsolete function module I give the new coding (default use) through POPUP_TO_CONFIRM. 
 
​

1. POPUP_FOR_INFO:

CALL FUNCTION 'POPUP_FOR_INFO'   
EXPORTING   
INFO1           = text-001   
TEXTLINE1       = text-002   
TITEL           = text-003.   
 
​
CALL FUNCTION 'POPUP_TO_CONFIRM'   
EXPORTING   
TITLEBAR = text-003   
TEXT_QUESTION = text-002   
DISPLAY_CANCEL_BUTTON = ' '.   
 
​

2. POPUP_TO_CONFIRM_LOSS_OF_DATA:

CALL FUNCTION 'POPUP_TO_CONFIRM_LOSS_OF_DATA'   
EXPORTING   
TEXTLINE1 = text-001   
*   TEXTLINE2 = ' '   
TITEL = text-002   
*   START_COLUMN = 25   
*   START_ROW = 6   
*   DEFAULTOPTION = 'N'   
* IMPORTING   
*   ANSWER =   
.   
 
​

CALL FUNCTION 'POPUP_TO_CONFIRM'   
EXPORTING   
TITLEBAR = text-002   
DIAGNOSE_OBJECT = 'CACS_CONFIRM_LOSS_OF_DATA'   
TEXT_QUESTION = text-001   
DISPLAY_CANCEL_BUTTON       = ' '   
POPUP_TYPE                  = 'ICON_MESSAGE_WARNING'.   
 
​

3. POPUP_TO_CONFIRM_STEP:

CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'   
EXPORTING   
*   DEFAULTOPTION = 'Y'   
TEXTLINE1 = text-001   
*   TEXTLINE2 = ' '   
TITEL = text-002   
*   START_COLUMN = 25   
*   START_ROW = 6   
*   CANCEL_DISPLAY = 'X'   
* IMPORTING   
*   ANSWER =   
.   
 
​

CALL FUNCTION 'POPUP_TO_CONFIRM'   
EXPORTING   
TITLEBAR = text-002   
TEXT_QUESTION = text-001.   
 
​

4. POPUP_TO_CONFIRM_WITH_MESSAGE:

CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'   
EXPORTING   
*   DEFAULTOPTION        = 'Y'   
DIAGNOSETEXT1        = text-004   
*   DIAGNOSETEXT2        = ' '   
*   DIAGNOSETEXT3        = ' '   
TEXTLINE1            = text-002   
*   TEXTLINE2            = ' '   
TITEL                = text-001   
*   START_COLUMN         = 25   
*   START_ROW            = 6   
*   CANCEL_DISPLAY       = 'X'   
* IMPORTING   
*   ANSWER               =   
.   
 
​

CALL FUNCTION 'POPUP_TO_CONFIRM'    
EXPORTING   
TITLEBAR = text-001   
DIAGNOSE_OBJECT = 'Z_CONFIRM_WITH_MESSAGE'   
TEXT_QUESTION = text-002.   
 
​

Z_CONFIRM_WITH_MESSAGE should be created as shown in image below from Transaction SE61

5. POPUP_TO_CONFIRM_WITH_VALUE
This function creates a popup with a dynamic text with this pattern <TEXT_BEFORE><OBJECTVALUE><TEXT_AFTER>.

OBJECTVALUE could be any type of parameter that could be implicitly converted to a sequence of chars.

CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_VALUE'   
EXPORTING   
*   DEFAULTOPTION = 'Y'   
OBJECTVALUE = lv_value   
*   TEXT_AFTER = ' '   
TEXT_BEFORE = text-001   
TITEL = text-002   
*   START_COLUMN = 25   
*   START_ROW = 6   
*   CANCEL_DISPLAY = 'X'   
* IMPORTING   
*   ANSWER =   
* EXCEPTIONS   
*   TEXT_TOO_LONG = 1   
*   OTHERS = 2   
.   
 
​

DATA: TEXT_QUESTION(256) TYPE C,   
TEXT_BEFORE(256) TYPE C,   
TEXT_AFTER(256) TYPE C,   
VALUE(256) TYPE C.   
   
VALUE = lv_value.   
TEXT_BEFORE = text-001.   
TEXT_AFTER = text-003.   
   
CONCATENATE TEXT_BEFORE VALUE TEXT_AFTER INTO TEXT_QUESTION SEPARATED BY SPACE.   
   
IF SY-SUBRC = 4.   
*     TO DO: text too long   
ENDIF.   
   
CALL FUNCTION 'POPUP_TO_CONFIRM'   
EXPORTING   
TITLEBAR = text-002   
TEXT_QUESTION = TEXT_QUESTION.   
 
​

DATA: PARAMETERS LIKE SPAR OCCURS 0 WITH HEADER LINE.   
   
MOVE lv_value TO PARAMETERS-VALUE.   
MOVE 'VALUE' TO PARAMETERS-PARAM. 'PARAM must have the same name of the symbol in the dialog text   
APPEND PARAMETERS.   
   
CALL FUNCTION 'POPUP_TO_CONFIRM'   
EXPORTING   
TITLEBAR = text-002   
DIAGNOSE_OBJECT = 'Z_CONFIRM_WITH_VALUE'   
TEXT_QUESTION = ''   
TABLES   
PARAMETER = PARAMETERS.   
 
​

Z_CONFIRM_WITH_VALUE is a dialog text created with SE61 with a symbol named &VALUE&.

6. POPUP_TO_CONFIRM_WITH_VALUE_2
This function is very similar to POPUP_TO_CONFIRM_WITH_VALUE but it uses only one parameter to generate test before and test after value. Separating char is '&'.


In ECC6 this function module is no longer usable because it generates a dump.
See POPUP_TO_CONFIRM_WITH_VALUE.


7. POPUP_TO_DECIDE
This function creates a popup with customizable button. This function is a default in the new POPUP_TO_CONFIRM.

CALL FUNCTION 'POPUP_TO_DECIDE'   
EXPORTING   
*   DEFAULTOPTION           = '1'   
TEXTLINE1               = text-001   
*   TEXTLINE2               = ' '   
*   TEXTLINE3               = ' '   
TEXT_OPTION1            = 'TEXT_OPTION1'   
TEXT_OPTION2            = 'TEXT_OPTION2'   
*   ICON_TEXT_OPTION1       = ' '   
*   ICON_TEXT_OPTION2       = ' '   
TITEL                   = text-002   
*   START_COLUMN            = 25   
*   START_ROW               = 6   
*   CANCEL_DISPLAY          = 'X'   
* IMPORTING   
*   ANSWER                  =   
.   
 
​

CALL FUNCTION 'POPUP_TO_CONFIRM'   
EXPORTING   
TITLEBAR = text-002   
TEXT_QUESTION = text-001   
TEXT_BUTTON_1 = 'TEXT_OPTION1'   
TEXT_BUTTON_2 = 'TEXT_OPTION2'.   
 
​

8. POPUP_TO_DECIDE_WITH_MESSAGE
This function is the same as POPUP_TO_DECIDE, but with a DIAGNOSE TEXT.

CALL FUNCTION 'POPUP_TO_DECIDE_WITH_MESSAGE'   
EXPORTING   
*   DEFAULTOPTION           = '1'   
DIAGNOSETEXT1           =   
*   DIAGNOSETEXT2           = ' '   
*   DIAGNOSETEXT3           = ' '   
TEXTLINE1               =   
*   TEXTLINE2               = ' '   
*   TEXTLINE3               = ' '   
TEXT_OPTION1            =   
TEXT_OPTION2            =   
*   ICON_TEXT_OPTION1       =   
*   ICON_TEXT_OPTION2       =   
TITEL                   =   
*   START_COLUMN            = 25   
*   START_ROW               = 6   
*   CANCEL_DISPLAY          = 'X'   
* IMPORTING   
*   ANSWER                  =   
.   
 
​


See POPUP_TO_DECIDE and POPUP_TO_CONFIRM_WITH_MESSAGE.
Finally it's very important to know how to manage the answer. In the old popup answer is a char with 3 possible value: 'J' (Yes), 'N' (No) and 'A' (Abort); in the function module POPUP_TO_CONFIRM the output answer could be: 1 (Yes), 2 (No) and 'A' (Abort), so pay much attention when you make the substitution of obsolete function with the new one.


Suggestions and critics are welcome.


In the next article I would like to analyze the class CL_GUI_FRONTEND_SERVICES.


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

【ABAP系列】SAP 面试 ABAPer的一些感想