+ All Categories
Home > Documents > PART1-MPP notes

PART1-MPP notes

Date post: 11-Apr-2015
Category:
Upload: api-3746151
View: 765 times
Download: 6 times
Share this document with a friend
45
5THFEB Introduction to MPP MPP : ARCHITECTURE OF MPP. SE51 : SCREEN PAINTER TYPE OF PROGRAMS EXECUTABLE PROGRAMS ( REPORTS ) F8 MPP TYPE ( M ) PROGRAMS CAN'T BE EXECUTED DIRECTLY , SHOULD BE EXECUTED WITH HELP OF TCODE. STEP 1 SE80 -> SELECT PROGRAM TYPE OBJECT -> NAME THE OBJECT ( SAPMZMPP9301 ) -> preses enter -> create -> prompts message to be created with top include file -> select the check box -> OPENS INTERFACE WITH NAME OF TOP INCLUDE FILE ( NAME SHOULD BE ENDED WITH "TOP") -> SAVE BOTH FILES ( MAIN PROGRAM AND TOP INCLUDE FILE ). STEP 2 ( CREATE SCREEN UNDER MPP ) RIGHT CLICK ON MAIN PROGRAM -> CREATE -> SCREEN -> NUMBER THE SCREEN ( 100 ) -> OK -> OPENS SE51 TCODE. OPTIONS OF SE51 SCREENS: 1) ATTRIBUTES I) SPECIFIES SHORT TEXT FOR THE SCREEN II) TYPE OF SCREEN a) Normal Screen Main screen in sap can be assed for tcodes to be executed , has window properties and component features.
Transcript
Page 1: PART1-MPP notes

5THFEB Introduction to MPP

MPP : ARCHITECTURE OF MPP.

SE51 : SCREEN PAINTERTYPE OF PROGRAMS

EXECUTABLE PROGRAMS ( REPORTS )F8

MPP TYPE ( M ) PROGRAMS CAN'T BE EXECUTED DIRECTLY , SHOULD BE EXECUTED WITH HELP

OF TCODE.

STEP 1

SE80 -> SELECT PROGRAM TYPE OBJECT -> NAME THE OBJECT ( SAPMZMPP9301 ) -> preses enter -> create -> prompts message to be created with top include file -> select the check box -> OPENS INTERFACE WITH NAME OF TOP INCLUDE FILE ( NAME SHOULD BE ENDED WITH "TOP") -> SAVE BOTH FILES ( MAIN PROGRAM AND TOP INCLUDE FILE ).

STEP 2 ( CREATE SCREEN UNDER MPP )

RIGHT CLICK ON MAIN PROGRAM -> CREATE -> SCREEN -> NUMBER THE SCREEN ( 100 ) -> OK -> OPENS SE51 TCODE.

OPTIONS OF SE51 SCREENS:

1) ATTRIBUTES I) SPECIFIES SHORT TEXT FOR THE SCREEN II) TYPE OF SCREEN

a) Normal Screen Main screen in sap can be assed for tcodes to be executed , has window

properties and component features.

b) SubScreen : is a component has ability to attach other component , can be called by main screen from PBO and PAI events.

c) Model dialog: is a dialog based screen, this can be called from main screen , can't be acted as main screen , tcodes can't be created for dialog screens.

2) Layout :

Page 2: PART1-MPP notes

is used to add components on the screen using toolbox. Designing the screen is very easy using this option.

3) Element list:displays the list of components which are added from layout editor and also with a

component field type with "ok" type. Abaper must declare the variable in the OK field used to identify the type of action is performed on the screen.

4) Flow logic editor : Is the Event defined editor used to perform action for the screen based on type of event functionality.

This editor basically has 4 type of eventsi) PBO ( Process before output) :

this event is raise when ever the screen loading.ii) PAI ( Process After Input ): This event is raised when ever action is performed on the screeniii) Process on value-request:

this event is raised based on value request from input field to fetch data from data base into the field using Search help functionality.

iv) Process on help-request:this event used to provide help functionality for the input fields.

Note :Flow logic editor can't understand ABAP programming code. But invokes the

ABAP code using "Module" statement.

ABAP'er has to activate module statements in flow logic editor by removing comments , and invoke abap editor using double click, generate code in abap editor , declare okcode in main top include file so it can be accssed from other programs.

7th FEB

MESSAGE I000(ZMSG930)

CREATE SAMPLE PROGRAM TO ACCEPT DATA OF INTEGER TYPE AND DISPLAY RESULTS IN ANOTHER INPUT FIELD.

CREATE AN INTERFACE TO PERFORM DML OPERATIONS FROM MPP.

Page 3: PART1-MPP notes

INSERT INTO <DB_TAB> VALUES <WA/ITAB>.

WA STRUCTURE SIZE SHOULD BE SAME AS <DB_TAB> STRUCTURE SIZE.

TO DO THIS USE FOLLOWING NAVIGATIONS

1) CREATE MPP.2) OPEN TOP INCLUDE FILE AND CREATE A STRUCTURE AS "WA" AND ACTIVTE THE CODE.3) CREATE A SCREEN .4) FROM MPP GRAPHICAL PAINTER USE DICTIONARY/PROGRAM FIELDS TO ADD FIELDS FROM DATA BASE TABLES OR PROGRAM WORK AREA OR INTERNAL TABLES. CLICK ON DICTIONARY FILES -> OPENS AN INTERFACE -> ENTER NAME OF STRUCTURE ( WA ) -> SELECT FROM PROGRAM -> DISPLAYS ALL FIELDS OF STRUCTURE -> SELECT THE REQUIRED FIELDS ANC CLICK ON OK -> PLACE THE COMPONENTS ON THE SCREEN -> IF REQUIRED ADD OTHER COMPONENTS -> SAVE THE ENTRIES -> CLICK ON ELEMENT LIST.

5) DECALRE OKCODE IN ELEMENT LIST.6) GENEATE PAI CODE USING MODULE STATEMENT FROM FLOW LOGIC EDITOR.7) DECALRE OKCODE IN TOP INCLUDE AND ACTIVATE ALL PROGRAMS UNDER MPP -> CREATE TCODE -> AND EXECUTE.

PROGRAM CODING1) TOP INCLUDE FILE.

DATA WA LIKE MARA.DATA OKCODE LIKE SY-UCOMM.

2) PAI CODE.MODULE USER_COMMAND_1234 INPUT. CASE OKCODE. WHEN 'INSERT'. INSERT INTO MARA VALUES WA.

IF SY-SUBRC = 0. MESSAGE I089(ZMSGCLS) WITH 'RECORD IS INSERTED'.

ELSE. MESSAGE I987(ZMSGCLS) WITH 'UNABLE TO INSERT RECORD'. ENDIF. WHEN 'EXIT'.

Page 4: PART1-MPP notes

LEAVE PROGRAM. ENDCASE.ENDMODULE.

WRITE : STATEMENT GENERATES OUTPUT TO LPS, BUT MPP'S CANT CALL LPS DIRECTLY.

WE NEED TO CALL LPS MANUALLY USING "LEAVE" STATEMENT.

SYNTAX:

LEAVE TO LIST-PROCESSING.THIS STATEMENT CAN BE USED IN MPP TO CALL LPS BY

TERMINATING CURRENT SCREEN, SO WE CAN'T COMEBACK FROM LPS TO SCREEN, ONLY THE WAY TO TERMINATE APPLICATION IS "/N".

LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN <SC_NUM> USING THIS STATEMENT WE GENERATE REPORT AND ALSO CAN COME BACK TO PREVIOUS SCREEN.

1) TOP INCLUDE FILE

DATA : ITAB LIKE KNA1 OCCURS 0 WITH HEADER LINE.DATA : OKCODE LIKE SY-UCOMM.DATA: NUM TYPE I.

2) PAI CODEMODULE USER_COMMAND_0100 INPUT.

CASE OKCODE. WHEN 'FETCH'. SELECT * FROM KNA1 INTO TABLE ITAB. NUM = 1. READ TABLE ITAB INDEX NUM. WHEN 'NEXT'. NUM = NUM + 1. DESCRIBE TABLE ITAB. IF NUM > SY-TFILL.MESSAGE I876(ZMSGCLS) WITH 'CAN NOT BEYOND LAST RECORD '.

ELSE. READ TABLE ITAB INDEX NUM. ENDIF. WHEN 'PREV'.

Page 5: PART1-MPP notes

NUM = NUM - 1. IF NUM < 0. MESSAGE I973(ZMSGCLS) WITH 'UR IN FIRST RECORD'. ELSE. READ TABLE ITAB INDEX NUM. ENDIF. WHEN 'FIRST'. NUM = 1. READ TABLE ITAB INDEX NUM. WHEN 'LAST'. DESCRIBE TABLE ITAB. NUM = SY-TFILL. READ TABLE ITAB INDEX NUM. WHEN 'EXIT'. LEAVE PROGRAM. ENDCASE.ENDMODULE.

8 th FEB

PBO FUNCTIONALITY IN ABAP.

PBO IS RAISE WHEN EVER THE SCREEN IS LOADING FOR THE FIRST TIME AND ALSO RAISED WHEN EVER ACTION IS PERFORMED ON PAI.

FOR EVERY ACTION ON PAI THE SCREEN IS RELOADED, HENCE PBO IS RELOADED AUTOMATICALLY.

WHILE GENERATING CODE IN PBO, CHECK SELECT STATEMENTS MUST BE EXECUTED ONLY FOR ONCE.

PBO IS USED TO SET MENUS AND FUNCTION KEYS FOR THE MODULE POOL PROGRAMMING.

ADDING MENUS IN MPP SCREENS.

AS WE ACTIVATE MODULE STATEMENT IN PBO, SAP CREATES THE MODULE CODE WITH TWO STATEMENTS.

INVOKES THE MENU1) MENUBARS2) APPLICATION TOOLBARS3) FUNCTION KEYS

Page 6: PART1-MPP notes

NOTE : IF THE ACTION IS RAISE IN LPS FROM MENU'S RAISES THE ACTION IN "AT USER-COMMAND" EVENT.

WHERE AS IN MPP, MENUS CAN RAISE ACTION ON PAI.

EXAMPLE CODE FOR MENUS AND TITLEBAR IN MPP SCREENS.1) TOP INCLUDE FILE. *DATA : OKCODE TYPE OK. *DATA : OKCODE LIKE SY-UCOMM. DATA OKCODE(5) TYPE C.2) FLOW LOGIC EDITOR.PROCESS BEFORE OUTPUT. MODULE STATUS_0123.

PROCESS AFTER INPUT. MODULE USER_COMMAND_0123.3) PBO AND PAI CODE.MODULE STATUS_0123 OUTPUT. SET PF-STATUS 'MYMENU'. SET TITLEBAR 'MYTIT'.ENDMODULE.

MODULE USER_COMMAND_0123 INPUT. CASE OKCODE. WHEN 'MI1'. MESSAGE I098(ZMSG930) WITH 'ACTION ON OPEN'. WHEN 'MI2' OR 'ATCEX'. LEAVE PROGRAM. ENDCASE.ENDMODULE.

BOX is the component in MPP to perform similer action as Selection-screen begin of block and end of block. IN Mpp Box size is in the hands of ABAP'er.

IF A SCREEN IS CREATED IN MPP , CAN BE CALLED USING STATEMENT

CALL SCREEN <NUM> [STARTING AT X1 Y1] [ENDING AT X2 Y2].

Create a simple Application in MPP FOR FLIGHT RESERVATIONS.

9 TH FEB TABSTRIPS : IS A CONTROL IN ABAP TO ATTACH OTHER SUBSCREENS

MM01 :

Page 7: PART1-MPP notes

MASTERDATA INFO :23 SUB SCREEN INFO

TO DEFINE TABSTRIPS IN ABAP CODE USE FOLLOWING SYNTAX.

CONTROLS <COMP_NAME> TYPE TABSTRIP.

TYPES : OWN DATA TYPESDATA : TO DECLARE VARIABLES.

PARAMETETERS : GUI VARIABLES.

CONTROLS STATEMENT IS USED TO DEFINE TABSTRIPS AND TABLE CONTROL.

CALL SUBSCREEN <SUB_AREA> INCLUDING <PRG_NAME> <SCR_NUM>.

TABSTRIP IS A COMPONENT IN ABAP SCREEN, WITH DIFFERENT TAB TITLES , UNDER ONE TABSTRIP CONTROL 999 TAB TITLES CAN BE ADDED.

ABAPER CAN ATTACH SUBSCREENS FOR EACH TAB BUTTON ( TITLE ).

CALL SUBSCREEN SUB1 INCLUDING <PRG_NAME>

123: MAIN SCREEN10 : SUBSCREEN20 : "30 : "

CALL SUBSCREEN : IS NOT ABAP STATEMENT.

IN SE38 ABOVE STATEMENT IS INVALID, THIS STATEMENT MUST BE USED IN FLOW LOGIC EDITOR.

1) TOP INCLUDE FILEDATA : OKCODE LIKE SY-UCOMM, DYNNR LIKE SY-DYNNR VALUE 10.CONTROLS TBSTR TYPE TABSTRIP.2) FLOW LOGIC EDITOR CODE.PROCESS BEFORE OUTPUT.

Page 8: PART1-MPP notes

CALL SUBSCREEN SUB1 INCLUDING 'SAPMZTABSTR930' DYNNR. MODULE STATUS_0123.

PROCESS AFTER INPUT. MODULE USER_COMMAND_0123.3) PBO AND PAI MODULE CODEMODULE STATUS_0123 OUTPUT. SET PF-STATUS 'MYGUI'. SET TITLEBAR 'MYTIT'.ENDMODULE.MODULE USER_COMMAND_0123 INPUT. CASE OKCODE. WHEN 'TAB1'. TBSTR-ACTIVETAB = 'TAB1'. DYNNR = '10'. WHEN 'TAB2'. TBSTR-ACTIVETAB = 'TAB2'. DYNNR = '20'. WHEN 'TAB3'. TBSTR-ACTIVETAB = 'TAB3'. DYNNR = '30'. WHEN 'EXT'. LEAVE PROGRAM. ENDCASE.ENDMODULE.

REQUIREMENTS FOR THE TABSTRIPS1) TABSTRIP CONTROL2) SUBSCREEN AREA3) SUBSCREENS4) CONTROLS STATEMENT , DYNNR VARIABLE AND CALL SUBSCREEN STATEMENT.

TABSTRIP CONTROL IS CONTAINER OF SUBSCREEN AREA AND TAB BUTTONS, IS USED TO ATTACH OTHE SUBSCREENS IN THE MAIN SCREEN , IT HAS CAPACITY OF 999 SUBSCREENS UNDER ONE COMPONENT.

SUBSCREEN AREA: IS ONLY THE COMPONENT CAN BE ATTACHED ON TOP OF TABSTRIP CONTROLS, USING THIS SCREEN AREA ABAPER CAN CALL SUBSCREENS DYNAMICALLY.

SUBSCREENS : IS A TYPE OF SCREEN WITH SUBSCREEN PROPERTY , ACTS AS A CONTAINER OF SCREEN COMPONENTS BUT CAN BE CALLED USING CALL SUBSCREEN STATEMENT ONLY

Page 9: PART1-MPP notes

CONTROLS STATEMENT : IS USED IN ABAP TO DEFINE TABSTRIP CONTROL OR TABLE CONTROL.

SYNTAX: CONTROLS <TB_STR> TYPE TABSTRIP.

DYNNR : IS A VARIABLE DEFINED FOR SY-DYNNR TO INDICATE SCREEN NUMBER , THIS MUST BE INITILIZED WITH INITIAL SUBSCREEN NUMBER.

CALL SUBSCREEN : IS A STATEMENT OF FLOW LOGIC EDITOR TO CALL REQUIRED SUBSCREENS ON TOP OF MAIN SCREEN.

NAVIGATIONS TO CREATE MPP WITH TABSTRIPS CONTROL.

1) CREATE MPP.2) CREATE MAIN SCREEN ATTACH TABSTRIP CONTROL, NAME THE COMPONENT ( TBSTR ) AND NUMBER OF TABS REQUIRED ON TABSTRIP.3) ON TOP OF TABSTRIP ATTACH SUBSCREEN AREA COMPONENT AND NAME THE SUBSCREEN AREA( SUB1 )4) SET TABSTRIP BUTTON PROPERTY ( NAME , LABEL , FCT CODE AND REF FIELD [ NAME OF SUBSCREEN AREA ] , IF REQUIRED ADD OTHER COMPOMENTS5) DEFINE OKCODE IN ELEMENT LIST.6) BASED ON NUMBER OF TAB BUTTON ON TABSTRIP CREATE SUBSCREENS , RIGHT CLICK ON SCREEN -> CREATE -> ENTER SCREEN NUMBER -> SET SUBSCREEN PROPERTY -> SHORT TEXT -> ADD SCREEN COMPONENTS.7) DECLARE THE FIELDS IN TOP INCLUDE FILE8) DECLARE CALL SUBSCREEN IN PBO EVENT AND ALSO GENERATE PAI CODE.9) SAVE AND ACTIVATE ALL PROGRAMS -> CREATE TCODE -> EXECUTE.

1) TYPE-POOLS 2) LOV'S ( LIST OF VALUES ) : ADDING DROP DOWN FACILITY 3) TABLE CONTROL

10 TH FEB TABLE CONTROL IS A COMPONENT USED IN MPP'S TO DIPLAY THE DATA OF INTERNAL TABLE ON SCREEN IT SELECT. IT IS USED TO FETCH DATA FROM DATA BASE TABLES AND ALSO ALLOWS MODIFICATION ON THE CONTROL TO PERFORM DML OPERATIONS.

SAPMZTBCL930 : MPP PROGRAM.1) TABLE CONTROL IS CONTAINER OF ITAB FIELDS.2) WHEN EVER A TABLE CONTROL IS ADDED ON THE SCREEN THEN IN PBO AND PAI ABAMER MUST USE "LOOP AT ITAB".

Page 10: PART1-MPP notes

LOOP AT ITAB IN PBO USED TO FETCH DATA FROM INTERNAL TABLE TO THE SCREEN COMPONENTS.

LOOP AT ITAB IN PAI ALLOWS MODIFICATION TO BE PERFORMED ON ITAB OR DATA BASE TABLE.

SYNTAX OF LOOP AT ITAB IN PBO.

LOOP AT ITAB CURSOR <CUR> WITH CONTROL <TBCL>.ENDLOOP.

WHERE <CUR> IS INTEGER TYPE FIELD

AND <TBCL> IS NAME OF TABLE CONTROL.

CONTROLS <TBSTR> TYPE TABSTRIP.

CONTROLS <TBCL> TYPE TABLEVIEW USING SCREEN <NUM>.

TBCL-LINES : LINES IS THE PROPERTY OF THE TABLE CONTROL SPECIFIES NUMBER OF LINES REQUIRED IN TABLE CONTROL. BY DEFULT NUMBER OF LINES ARE NUMBER ROWS WHICH ARE VISIBLE ON THE SCREEN.

CODING : 1) TOP INCLUDE FILEDATA : ITAB LIKE MARA OCCURS 0 WITH HEADER LINE.DATA : CUR TYPE I.CONTROLS TBCL TYPE TABLEVIEW USING SCREEN 100.DATA : OKCODE LIKE SY-UCOMM.

2) FLOW LOGIC EDITOR

PROCESS BEFORE OUTPUT.LOOP AT ITAB CURSOR CUR WITH CONTROL TBCL.ENDLOOP.* MODULE STATUS_0100.

PROCESS AFTER INPUT.LOOP AT ITAB.ENDLOOP. MODULE USER_COMMAND_0100.

3) PAI CODE.MODULE USER_COMMAND_0100 INPUT.

Page 11: PART1-MPP notes

CASE OKCODE. WHEN 'FETCH'. SELECT * FROM MARA INTO TABLE ITAB. DESCRIBE TABLE ITAB. TBCL-LINES = SY-TFILL. WHEN 'EXIT'. LEAVE PROGRAM. ENDCASE.ENDMODULE.

PAI LOOP AT ITAB IS USED TO ALLOW THE MODIFICATION ON TABLE CONTROL.

ITAB DATA IS DIFFERENT FROM SCREEN MODIFIED DATA. ON THE SCREEN IF USER ENTRY IS MODIFIED THEN ABAPER HAS MAKE CHANGES MANUALLY.

TO ALLOW MODIFICATIONS USE FOLLOWING STEPS.

1) USE SECOND INTERNAL TABLE.

DATA : ITAB1 LIKE MARA OCCURS 0 WITH HEADER LINE. 2) MOVE THE DATA FROM SCREEN TABLE CONTROL TO SECOND ITAB.

3) THEN USE MODIFY STATEMENT OR UPDATE STATEMENT TO ALLOW MODIFICATION ON DATA BASE TABLE BASED ON SECOND ITAB.

PAI CODE.

PROCESS AFTER INPUT.MODULE CLEARITAB1.

LOOP AT ITAB. MODULE MOVEDATA.ENDLOOP.

MODULE USER_COMMAND_0100.

MODULE MOVEDATA INPUT. APPEND ITAB TO ITAB1.ENDMODULE.

PAI : WHEN 'MODI'. LOOP AT ITAB1.

Page 12: PART1-MPP notes

MODIFY MARA FROM ITAB1. ENDLOOP.

SELECT * FROM MARA INTO TABLE ITAB.

MODIFICATION ON TABLE CONROL.

1) TOP INCLUDE FILE.DATA : ITAB LIKE MARA OCCURS 0 WITH HEADER LINE.DATA : ITAB1 LIKE MARA OCCURS 0 WITH HEADER LINE.DATA : CUR TYPE I.CONTROLS TBCL TYPE TABLEVIEW USING SCREEN 100.

DATA : OKCODE LIKE SY-UCOMM.2) FLOW LOGIC EDITOR.PROCESS BEFORE OUTPUT.LOOP AT ITAB CURSOR CUR WITH CONTROL TBCL.ENDLOOP.* MODULE STATUS_0100.*PROCESS AFTER INPUT.MODULE CLEARITAB1.

LOOP AT ITAB. MODULE MOVEDATA.ENDLOOP. MODULE USER_COMMAND_0100.3) PAI CODE.

MODULE USER_COMMAND_0100 INPUT.

CASE OKCODE. WHEN 'FETCH'. SELECT * FROM MARA INTO TABLE ITAB. DESCRIBE TABLE ITAB. TBCL-LINES = SY-TFILL. WHEN 'EXIT'. LEAVE PROGRAM.

WHEN 'MODI'.* LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 100.* LOOP AT ITAB1.*WRITE : / ITAB1-MATNR , ITAB1-MBRSH , ITAB1-MTART, ITAB1-MEINS.* ENDLOOP.

LOOP AT ITAB1.

Page 13: PART1-MPP notes

MODIFY MARA FROM ITAB1. ENDLOOP. SELECT * FROM MARA INTO TABLE ITAB. ENDCASE.ENDMODULE.

MODULE CLEARITAB1 INPUT. CLEAR ITAB1. REFRESH ITAB1.ENDMODULE.

MODULE MOVEDATA INPUT. APPEND ITAB TO ITAB1.ENDMODULE.

12 TH FEB

LOV's ( List of values )

Adding Dropdown facility in abap screens is the concept of LOV.

Use following navigation to add LOV's.

1) CREATE MPP ( SAPMZLOV930) 2) ADD A SCREEN ( 100)3) ADD THE INPUT FILES, NAME THE COMPONENT AND SET LISTBOX PROPERTY IN DROPDOWN OPTION.

WHEN EVER THE LIST BOX IS ADDED FOR INPUT FIELDS, ABAPER HAS TO ADD THE VALUES IN TO THE LISTBOX FIELD FROM PBO CODE.

TYPE-POOL IS A DICTIONARY OBJECT IN SAP AS COLLECTION USER DEFINED DATA TYPES CAN BE ACCESSED FROM ALL PROGAMS USING "TYPE-POOLS" STATEMENT.

IN THE VRM TYPE SAP IS DEFINED A STRUCTURE AS VRM_VALUE AND VRM_VALUES AS INTERNAL TABLE.

TYPES: BEGIN OF VRM_VALUE, KEY(40) TYPE C, TEXT(80) TYPE C, END OF VRM_VALUE,VRM_VALUES TYPE VRM_VALUE OCCURS 0.

Page 14: PART1-MPP notes

VRM_SET_VALUESEXPORING ID = ' VALUES = ITAB.

TOP INCLUDE FILE.

1) DATA : ITAB TYPE TABLE OF VRM_VALUES.

ITAB'S : INDEXED INTERNAL TABLES NON -INDEX ITAB

1) STRUCTURED INTERNAL TABLES2) SORTED INTER TABLES3) STANDARD INTERNAL TABLES

DATA : ITAB LIKE MARA OCCURS 0 WITH HEADER.

DATA : ITAB LIKE STANDARD TABLE OF MARA WITH NON-UNIQUE KEY MBRSH WITH HEADER LINE INITIAL SIZE 0.

NON-INDEX. HASHED INTERNAL TABLES.

VRM_VALUE KEY(40) TEXT(80)

DATA : ITAB TYPE TABLE OF VRM_VALUES.

DATA : WA LIKE LINE OF ITAB.

WA-KEY=''.WA-TEXT= ''.APPEND WA TO ITAB.1) TOP INCLUDE .TYPE-POOLS VRM.

DATA : ITAB TYPE TABLE OF VRM_VALUES.DATA : WA LIKE LINE OF ITAB.

Page 15: PART1-MPP notes

DATA : OKCODE LIKE SY-UCOMM.

DATA : BEGIN OF CC OCCURS 0, BUKRS LIKE T001-BUKRS, END OF CC.DATA : CNT TYPE I.

2) flow logic editor PROCESS BEFORE OUTPUT.MODULE STATUS_0100. PROCESS AFTER INPUT.MODULE USER_COMMAND_01003) PBo AND PAI code.MODULE STATUS_0100 OUTPUT.

IF CNT = 0. SELECT BUKRS INTO TABLE CC FROM T001. CNT = 10.

LOOP AT CC.WA-KEY = CC-BUKRSWA-TEXT = CC-BUKRS.APPEND WA TO ITAB.ENDLOOP. CALL FUNCTION 'VRM_SET_VALUES' EXPORTING ID = 'IO1' VALUES = ITAB.ENDIF.ENDMODULE.MODULE USER_COMMAND_0100 INPUT. LEAVE PROGRAM.ENDMODULE.

DATA : CNT TYPE I.

IF CNT = 0. SELECT * FROM <> INTO CNT = 10.ENDIF.

DATA : BEGIN OF CC OCCURS 0, BUKRS LIKE T001-BUKRS, END OF CC.

Page 16: PART1-MPP notes

15 TH FEB ABAP OBJECT ORIENTED

WHAT IS OBJECT?1) THINGS WE CAN SEE AND TOUCH2) AN ENTITY WHICH IDENTIFIES ENVIRONEMENT

PHYSICAL INSTANCE (MEMORY) IN THE WORLD IS CALLED AS AN OBJECT.

TECH DEF: INSTANCE OF A CLASS IS CALLED AS AN OBJECT.

VARIABLE : OBJECT

MEMORY ALLOCATED FOR A DATA TYPE IS CALLED AS VARIABLE.

OBJECT IS THE MEMORY ALLOCATED FOR A CLASS, WHICH HAS BEHAVIOUR AND FUNCTIONLITY.

class <name>{ public: private: protected:};

class is a user defined data type , in any language where programmer has to set class behaviour.

class is a collection of attributes and methods in c++ and java.

where as class is collection of attributes , methods and events in abap.

classes in abap must be defined with two block of statements.

1)CLASS class DEFINITION. ... ENDCLASS. 2) CLASS class IMPLEMENTATION. ... ENDCLASS.

class DEFINITION , DEFINES THE ATTRIBUTES METHODS OR EVENTS USED FOR THE CLASS.

Page 17: PART1-MPP notes

But at the time of declaring the atributes we need to define access specifiers.

Person1:private section.

which gives complete security for the data, denies the accessbility from other persons.protected section.

is also denies the accessbility for all others but can be accessed by related members.public section. data in this section can be accessed by all others.

EXAMPLE

class ABC DEFINITION. PUBLIC SECTION.

METHODS SAYHELLO.ENDCLASS.

class ABC IMPLEMENTATION. METHOD SAYHELLO. WRITE : / 'WELCOME TO ABAP OBJECT ORINTED'. ENDMETHOD.ENDCLASS.

DATA <OBJ> TYPE REF TO ABC.

IF AN OBJECT IS DEFINED, THE NO MEMORY IS ALLOCATED FOR THE OBJECT.

FOR THE OBJECT DEFINED, MEMORY SHOULD BE ALLOCATED BY ABAPER USING "CREATE OBJECT" STATEMENT.

OBJ = NEW ABC(); " SYNTAX IN JAVA

CREATE OBJECT OBJ. " SYNTAX IN ABAP.

IS THE STATEMENT ALLOCATES THE MEMORY FOR OBJECT BASED ON CLASS ASSIGNED.

FOR THE <OBJ> MEMORY IS ALLOCATED THEN TO ACCESS THE METHODS USE FOLLOWING SYNTAX.

CALL METHOD OBJ->SAYHELLO.

Page 18: PART1-MPP notes

DEMO EXAMPLE FOR CLASSES USED IN ABAP.REPORT ZOOABAP_930 .class ABC DEFINITION. PUBLIC SECTION.

METHODS SAYHELLO.ENDCLASS.class ABC IMPLEMENTATION. METHOD SAYHELLO. WRITE : / 'WELCOME TO ABAP OBJECT ORINTED'. ENDMETHOD.ENDCLASS.DATA:OBJ TYPE REF TO ABC.START-OF-SELECTION.CREATE OBJECT OBJ.CALL METHOD OBJ->SAYHELLO.

CONTROLS TBSTR TYPE TABSTRIP.CONTROLS TBCL TYPE TABLEVIEW USING SCREEN <NUM>.

CUSTOM CONTAINER IS A TYPE OF OBJECT IN MPP SCREEN TO ATTACH OTHER ENVIRONMENT OBJECT INTO SAP , VB GRID CONTROLS , IMAGE CONTROLS ETC.

This programming deals with Object orinted concepts.

1) what is name of class2) how to declate object 3) how to allocate memory4) how to call methods... of a class.

ABS( SUM ) IF SUM < 0.

DATA STR(10) TYPE C.MOVE SUM TO STR.CONCATENEATE '-' STR TO STR.

ELSE.MOVE SUM TO STR.

ENDIF.

1) Generate a report to display number of Sales organization existing under a company.what is the table used for company....?

what is the name of table used to store sales organization details for a company code.query return number of org details for the requirements.

Page 19: PART1-MPP notes

fields

XD01: IS THE TCODE FOR CUSTOMER MASTER CRETION.

SALES ORGANIZATION:SALES GROUPS SELES PERONS

CUSTOMERS

CUSTOMER MASTER INFO TO BE ADDED FOR ALL DEPARTMENTS.

XD01 : 17 MANDATORY FIELDS.

KNA1 : ( FIELDS )

HOW MANY PARENT TABLES ? HOW MANY CHILD TABLES?

who is vendor? how sap identifies vendor?

1) Implementation TimesCompany Requirements

2) Documentation Maintainace : what is the table,

WHAT IS MOVEMEN TYPE? IN SAP

ABAPER: ( FENNER INDIA LTD )BOLT, GEARS TECHNICAL CONSULTANT ( MADHUSUDHAN )HR:

CLIENT ( 30 HR )

WHAT IS PROJECT IN SAP ABAP? CUSTOMIZING THE SCREEN OF SAP WHICH ARE CREATED ALREADY, FOR THE COMPANY REQUIREMENTS.

THIS CAN BE PERFORMED BY ABAER HAS 2+ EXP.

COMPANY ASKED TO CREATE A NEW SCREEN FOR CUSTOMER INQUIRY RELATED TO MATERIALS OF ORGANIZTIONS.

AS THIS NOT EXISTING IN SAP, THEN CREATED AS SCREE USING MPP ....

Page 20: PART1-MPP notes

PROJECT :

IF THE SCREEN ARE CREATED FOR TRANSACTIONAL DATA THEN ABAPER HAS TO CREATE THREE TCODES 1) CREATE 2) CHANGE 3) DISPLAY. IF THE SAME SCREEN IS CREATED FOR MASTER DATA ONLY ONE SCREEN WITH TABLE CONTROL WITH ALL CHANGE ,INSERT AND DELETE OPTIONS.

CREATED A REPORT FOR SLAES ORDERS FROM R/3 DATA BASE.

IF THE DATA IS INSERTED FROM "VA01" IDENTIFY THE WHERE DATA IS FLOWING

SAP HAS BUILT IN REPORTS, BUT THESE ARE NOT MATCHING FOR MY REQUIREMENTS SO , MY TECHNICAL CONSTULTENT ASKED TO DEVELOPME THE CODE

1) REPORTS2) BDC3) SAPSCRIPT AND SMARTFORMS4) MPP'S5) CROSS APPLICATIONS.

16 TH FEB

Demo example for Grid control

PROGRAM TEST.DATA: OK_CODE LIKE SY-UCOMM, GT_SFLIGHT TYPE TABLE OF SFLIGHT, G_CONTAINER TYPE SCRFNAME VALUE 'BCALV_GRID_DEMO_0100_CONT1', GRID1 TYPE REF TO CL_GUI_ALV_GRID, G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.*---------------------------------------------------------------------** MAIN **---------------------------------------------------------------------*

SELECT * FROM SFLIGHT INTO TABLE GT_SFLIGHT.

CALL SCREEN 100.

*---------------------------------------------------------------------** MODULE PBO OUTPUT **---------------------------------------------------------------------*

Page 21: PART1-MPP notes

MODULE PBO OUTPUT. SET PF-STATUS 'MAIN100'. IF G_CUSTOM_CONTAINER IS INITIAL. CREATE OBJECT G_CUSTOM_CONTAINER EXPORTING CONTAINER_NAME = G_CONTAINER. CREATE OBJECT GRID1 EXPORTING I_PARENT = G_CUSTOM_CONTAINER. CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING I_STRUCTURE_NAME = 'SFLIGHT' CHANGING IT_OUTTAB = GT_SFLIGHT. ENDIF.ENDMODULE.*---------------------------------------------------------------------** MODULE PAI INPUT **---------------------------------------------------------------------*MODULE PAI INPUT.* to react on oi_custom_events: call method cl_gui_cfw=>dispatch. CASE OK_CODE. WHEN 'EXIT'. PERFORM EXIT_PROGRAM. WHEN OTHERS.* do nothing ENDCASE. CLEAR OK_CODE.ENDMODULE.*---------------------------------------------------------------------** FORM EXIT_PROGRAM **---------------------------------------------------------------------*FORM EXIT_PROGRAM.* CALL METHOD G_CUSTOM_CONTAINER->FREE.* CALL METHOD CL_GUI_CFW=>FLUSH. LEAVE PROGRAM.ENDFORM.

Grid controls : IS SIMILER TO TABLE CONTROL OF MPP'S.

Requirements: classes 1) CL_GUI_CUSTOM_CONTAINER2) CL_GUI_ALV_GRID

TOP INCLUDE

Page 22: PART1-MPP notes

DATA : MYCTRL TYPE REF TO CL_GUI_CUSTOM_CONTAINER , MYGRID TYPE REF TO CL_GUI_ALV_GRID.

1) CREATE MPP AND A SCREEN2) ADD A CONTROL ON THE SCREEN AS CUSTOM CONTROL AND NAME THE CUSTOM CONTROL ( CUSTCTRL ).

3) CREATE OBJECT MYCTRL EXPORTING CONTAINER_NAME = 'CUSTCTRL'.

USING THIS STAEMENT MEMORY IS ALLOCATED FOR MYCTRL, HAS A REFERENCE TO SCREEN CONTROL "CUSTCTRL".

4) CREATE MEMORY FOR GRID CONTROL ALSO USING

CREATE OBJECT MYGRID EXPORTING I_PARENT = MYCTRL.

GRID CONTROL IS A CONTAINER OF INTERNAL TABLE FIELDS.FOR THE GRID CONTROL ADD INTERNAL DATA FOR A DATA BASE TABLE.

5) SELECT THE DATA FROM DATA BASE TABLE INTO INTERNAL TABLE TO POPULATE DATA TO GRID CONTROL.

SELECT * FROM SFLIGHT INTO TABLE ITAB.

6) POPULATE ITAB DATA INTO GRID CONTROL USING

CALL METHOD MYGRID->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING I_STRUCTURE_NAME = 'SFLIGHT' CHANGING IT_OUTTAB = ITAB.

1) OBJECT FOR CUSTOM CONTROL AND GRID CONTROL2) CREATE INSTANCE FOR BOTH OBJECT IN PBO.3) SELECT THE DATA FROM DATABASE TABLE INTO ITAB4) POPULATE THE DATA FROM ITAB INTO GRID CONTROL.

Page 23: PART1-MPP notes

EXPORTING OPTION IN CALL METHOD OR CALL FUNCTION STATEMENT SENDS ARGUMENTS FROM CURRRENT PROGRAM TO THE CLASS METHODS OR FUNCTION MODULES.

IN A SIMPLE WAY USED TO SEND ARGS TO METHOD OR FUNCTION MODULES.

IMPORTING IS TO RECEIVE ARGS FROM METHOD OR FUNCTION MODULE.

CHANGING ANOTHER OPTION FOR ARGUMENT TYPE USED FOR FLAG VARIBLES, DEFAULT THESE ARE PASS BY REFERENCE ARGS.

HELP NUMBER FOR GRID CONTROL : 2857.chmEXAMPLE CODE1) TOP INCLUDE FILE DATA : MYCTRL TYPE REF TO CL_GUI_CUSTOM_CONTAINER, MYGRID TYPE REF TO CL_GUI_ALV_GRID. DATA ITAB TYPE TABLE OF SFLIGHT.

2)FLOW LOGIC EDITORPROCESS BEFORE OUTPUT. MODULE STATUS_0123.PROCESS AFTER INPUT. MODULE USER_COMMAND_0123.3) PAI AND PBO CODE.

MODULE USER_COMMAND_0123 INPUT. LEAVE PROGRAM.ENDMODULE.MODULE STATUS_0123 OUTPUT. CREATE OBJECT MYCTRL EXPORTING CONTAINER_NAME = 'CUSTCTRL'.

CREATE OBJECT MYGRID EXPORTING I_PARENT = MYCTRL.

SELECT * FROM SFLIGHT INTO TABLE ITAB. CALL METHOD MYGRID->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING I_STRUCTURE_NAME = 'SFLIGHT' CHANGING IT_OUTTAB = ITAB.ENDMODULE.

Page 24: PART1-MPP notes

16 TH FEB \\project-2

demo example for image controlprogram sap_picture_demo.set screen 200.

TYPE-POOLS cndp.

************************************************************************* CLASS c_event_receiver* DEFINITION************************************************************************class c_event_receiver definition.* The class is used to test the events raised by the cl_gui_picture* class public section. methods event_handler_picture_dblclick for event picture_dblclick of cl_gui_picture importing mouse_pos_x mouse_pos_y sender. methods event_handler_context_menu for event context_menu of cl_gui_picture importing sender. methods event_handler_context_menu_sel for event context_menu_selected of cl_gui_picture importing fcode sender. endclass.

************************************************************************* DATA************************************************************************ data function like sy-ucomm. " OK-Code field in screen 200 data url type cndp_url. " URL-field in screen 200 data url2 type cndp_url. " URL-field in screen 200 data picture_control_1 type ref to cl_gui_picture. data picture_control_2 type ref to cl_gui_picture. data container_1 type ref to cl_gui_custom_container. data container_2 type ref to cl_gui_custom_container. data event_receiver type ref to c_event_receiver. data event_tab type cntl_simple_events. data event_tab_line type cntl_simple_event. data return type i.

************************************************************************* PBO

Page 25: PART1-MPP notes

* before_output************************************************************************module before_output output. set pf-status 'MAIN0001'. IF PICTURE_CONTROL_1 IS INITIAL.

* Create controls create object container_1 exporting container_name = 'PICTURE_CONTROL_1'. create object container_2 exporting container_name = 'PICTURE_CONTROL_2'.

CREATE OBJECT PICTURE_CONTROL_1 exporting parent = container_1. CREATE OBJECT PICTURE_CONTROL_2 exporting parent = container_2.

* Register the events EVENT_TAB_LINE-EVENTID = CL_GUI_PICTURE=>EVENTID_PICTURE_DBLCLICK. append EVENT_TAB_LINE to EVENT_TAB. EVENT_TAB_LINE-EVENTID = CL_GUI_PICTURE=>EVENTID_CONTEXT_MENU. append EVENT_TAB_LINE to EVENT_TAB. EVENT_TAB_LINE-EVENTID = CL_GUI_PICTURE=>EVENTID_CONTEXT_MENU_SELECTED. append EVENT_TAB_LINE to EVENT_TAB.

CALL METHOD PICTURE_CONTROL_1->SET_REGISTERED_EVENTS exporting EVENTS = event_tab.

CALL METHOD PICTURE_CONTROL_2->SET_REGISTERED_EVENTS exporting EVENTS = event_tab.

* Create the event_receiver object and set the handlers for the events* of the picture controls create object event_receiver. set handler event_receiver->event_handler_picture_dblclick FOR PICTURE_CONTROL_1. set handler event_receiver->event_handler_context_menu FOR PICTURE_CONTROL_1. set handler event_receiver->event_handler_context_menu_sel FOR PICTURE_CONTROL_1. set handler event_receiver->event_handler_picture_dblclick FOR PICTURE_CONTROL_2. set handler event_receiver->event_handler_context_menu

Page 26: PART1-MPP notes

FOR PICTURE_CONTROL_2. set handler event_receiver->event_handler_context_menu_sel FOR PICTURE_CONTROL_2.

* Set the display mode to 'normal' (0) CALL METHOD PICTURE_CONTROL_1->SET_DISPLAY_MODE EXPORTING DISPLAY_MODE = CL_GUI_PICTURE=>DISPLAY_MODE_NORMAL. CALL METHOD PICTURE_CONTROL_2->SET_DISPLAY_MODE EXPORTING DISPLAY_MODE = CL_GUI_PICTURE=>DISPLAY_MODE_NORMAL.

* Set 3D Border CALL METHOD PICTURE_CONTROL_1->SET_3D_BORDER exporting border = 1. CALL METHOD PICTURE_CONTROL_2->SET_3D_BORDER exporting border = 1.

* new async implementation since 4.6CCALL FUNCTION 'DP_PUBLISH_WWW_URL' EXPORTING OBJID = 'HTMLCNTL_TESTHTM2_SAP_AG' LIFETIME = cndp_lifetime_transaction IMPORTING URL = url EXCEPTIONS OTHERS = 1.

* Load the picture by using the url generated by the data provider. if sy-subrc = 0. CALL METHOD PICTURE_CONTROL_1->LOAD_PICTURE_FROM_URL_ASYNC exporting url = url. endif.

CALL FUNCTION 'DP_PUBLISH_WWW_URL' EXPORTING OBJID = 'DEMOWORD97SAPLOGO' LIFETIME = cndp_lifetime_transaction IMPORTING URL = url2 EXCEPTIONS OTHERS = 1.

* load image if sy-subrc = 0.

Page 27: PART1-MPP notes

CALL METHOD PICTURE_CONTROL_2->LOAD_PICTURE_FROM_URL_async exporting url = url2. endif.

endif.endmodule.************************************************************************* PAI* after_input************************************************************************module after_input input. case function.* At the end of the program destroy the control when 'BACK'. CALL METHOD container_1->FREE. CALL METHOD container_2->FREE. leave to screen 0.

* Change the display mode when 'NORMAL'. CALL METHOD PICTURE_CONTROL_1->SET_DISPLAY_MODE EXPORTING DISPLAY_MODE = CL_GUI_PICTURE=>DISPLAY_MODE_NORMAL. CALL METHOD PICTURE_CONTROL_2->SET_DISPLAY_MODE EXPORTING DISPLAY_MODE = CL_GUI_PICTURE=>DISPLAY_MODE_NORMAL. when 'STRETCH'. CALL METHOD PICTURE_CONTROL_1->SET_DISPLAY_MODE EXPORTING DISPLAY_MODE = CL_GUI_PICTURE=>DISPLAY_MODE_STRETCH. CALL METHOD PICTURE_CONTROL_2->SET_DISPLAY_MODE EXPORTING DISPLAY_MODE = CL_GUI_PICTURE=>DISPLAY_MODE_STRETCH. when 'FIT'. CALL METHOD PICTURE_CONTROL_1->SET_DISPLAY_MODE EXPORTING DISPLAY_MODE = CL_GUI_PICTURE=>DISPLAY_MODE_FIT. CALL METHOD PICTURE_CONTROL_2->SET_DISPLAY_MODE EXPORTING DISPLAY_MODE = CL_GUI_PICTURE=>DISPLAY_MODE_FIT. when 'NORMAL_CTR'. CALL METHOD PICTURE_CONTROL_1->SET_DISPLAY_MODE EXPORTING DISPLAY_MODE = CL_GUI_PICTURE=>DISPLAY_MODE_NORMAL_CENTER. CALL METHOD PICTURE_CONTROL_2->SET_DISPLAY_MODE

Page 28: PART1-MPP notes

EXPORTING DISPLAY_MODE = CL_GUI_PICTURE=>DISPLAY_MODE_NORMAL_CENTER. when 'FIT_CTR'. CALL METHOD PICTURE_CONTROL_1->SET_DISPLAY_MODE EXPORTING DISPLAY_MODE = CL_GUI_PICTURE=>DISPLAY_MODE_FIT_CENTER. CALL METHOD PICTURE_CONTROL_2->SET_DISPLAY_MODE EXPORTING DISPLAY_MODE = CL_GUI_PICTURE=>DISPLAY_MODE_FIT_CENTER.

* Clear the picture when 'CLEAR'. CALL METHOD PICTURE_CONTROL_1->CLEAR_PICTURE.

* Load a new picture when space. CALL METHOD PICTURE_CONTROL_1->LOAD_PICTURE_FROM_URL exporting url = url importing result = return. call method cl_gui_cfw=>flush. if return = 0. url = text-000. endif.endcase. clear function.endmodule.************************************************************************* CLASS c_event_receiver* IMPLEMENTATION************************************************************************CLASS C_event_receiver implementation.

************************************************************************* CLASS c_event_receiver* METHOD event_handler_picture_dblclick************************************************************************ METHOD EVENT_HANDLER_PICTURE_DBLCLICK.* for event picture_dblclick of c_picture_control* importing mouse_pos_x mouse_pos_y. DATA pos_x(5) type c. DATA pos_y(5) type c. pos_x = mouse_pos_x. pos_y = mouse_pos_y.

IF SENDER = PICTURE_CONTROL_1. MESSAGE I000(0K) WITH

Page 29: PART1-MPP notes

'DoubleClick' 'Upper Picture' POS_X POS_Y. "#EC NOTEXT else. MESSAGE I000(0K) WITH 'DoubleClick' 'Lower Picture' POS_X POS_Y. "#EC NOTEXT endif. endmethod.

************************************************************************* CLASS c_event_receiver* METHOD event_handler_context_menu************************************************************************ METHOD EVENT_HANDLER_CONTEXT_MENU. data menu type ref to cl_ctmenu. create object menu. call method menu->ADD_FUNCTION exporting fcode = text-001 TEXT = TEXT-001. call method menu->ADD_FUNCTION exporting FCODE = TEXT-002 TEXT = TEXT-002. call method menu->ADD_FUNCTION exporting FCODE = TEXT-003 TEXT = TEXT-003. call method menu->ADD_FUNCTION exporting FCODE = TEXT-004 TEXT = TEXT-004. call method menu->ADD_FUNCTION exporting FCODE = TEXT-005 TEXT = TEXT-005.

CALL METHOD SENDER->DISPLAY_CONTEXT_MENU EXPORTING CONTEXT_MENU = MENU. endmethod.

************************************************************************* CLASS c_event_receiver* METHOD event_handler_context_menu_sel************************************************************************ METHOD EVENT_HANDLER_CONTEXT_MENU_sel. DATA DISPLAY_MODE TYPE I. IF FCODE = TEXT-001. DISPLAY_MODE = CL_GUI_PICTURE=>DISPLAY_MODE_NORMAL. ENDIF. IF FCODE = TEXT-002. DISPLAY_MODE = CL_GUI_PICTURE=>DISPLAY_MODE_STRETCH. ENDIF.

Page 30: PART1-MPP notes

IF FCODE = TEXT-003. DISPLAY_MODE = CL_GUI_PICTURE=>DISPLAY_MODE_FIT. ENDIF. IF FCODE = TEXT-004. DISPLAY_MODE = CL_GUI_PICTURE=>DISPLAY_MODE_NORMAL_CENTER. ENDIF. IF FCODE = TEXT-005. DISPLAY_MODE = CL_GUI_PICTURE=>DISPLAY_MODE_FIT_CENTER. ENDIF. CALL METHOD SENDER->SET_DISPLAY_MODE EXPORTING DISPLAY_MODE = DISPLAY_MODE. endmethod.endclass.

17 TH FEB

FUNCTION MODULE OPTIONS ( SE37 ) IMPORT ( ARGUMENTS TAKEN BY THE FUNCTION MODULE IN THE FORM OF PASS BY VALUE AND PASS BY REFERECE ) EXPORT

RETURN VALUES FROM THE FUNCTION MODULE USING PASS BY VALUE OR PASS BY REFERENCE. TABLES

IS USED FOR STRUCTURES OR INTERNAL TABLE ARGUMENTS THESE ARE BY DEFAULT PASS BY REFERECE. CHANGING

USED FOR FLAG VARIABLES, BY DEFAULT THESE ARE PASS BY REFERENCE, IF ANY CHANGES IN FUNCTION MODULE WILL EFFECT THE PROGRAM VARIABLE ALSO. EXCEPTIONS SOURCE CODE.CLASS MODULES

DATA : ITAB TYPE TABLE OF KNA1.ITAB SIZE IS THE SIZE DB TABLE.

DATA : BEGIN OF WA OCCURS 0, KUNNR LIKE KNA1-KUNNR, LAND1 LIKE KNA1-LAND1, MATNR LIKE MARA-MATNR, MBRSH LIKE MARA-MBRSH, LIFNR LIKE LFA1-LIFNR, END OF ITAB.

Page 31: PART1-MPP notes

IF THE MPP ARE GETTING CREATED FROM SE38 THEN OPENS ABAP EDITOR, IT SELF IS THE TOP INCLUDE AND MAIN CODING AREA.

SAVE_OKCODE IS THE NAME OF VARIABLE DEFINED IN ELEMENT LIST BY SAP.

WHEN EVER THE ACTION IS RAISED ON COMPONENT, FCT ARGUMENT IS SAVED UNDER OKCODE VAIRABLE, SO THE NAME IS PROVIDED AS SAVE_OKCODE.

CLEAR SAVE_OKCODE.

IS THE STATEMENT USED IN PAI TO RELEASE SAVED DATA IN SAVE_OKCODE VARIABLE. SCROLLING

FETCH , EXIT , MODIFY ( MODI )PAI

LEAVE TO LIST-PROCESSING AND RETURN TO 100.WRITE 'WELCOME'.

1) CREATED INSTANCE FOR CUSTOM CONTAINER2) CREATE INSTACE FOR GRID CONTROL3) FETCHED DATA FROM DB INTO ITAB.4) ADDED ITAB DATA INTO GRID CONTROL.

required classes for adding images.1) data myctrl type ref to CL_GUI_CUSTOM_CONTAINER.2)data mypicture type ref to cl_gui_picture.1) CREATE INSTANCE FOR CUSTOM CONTAINER create object myctrl exporting Container_name = 'custctrl'.2) CREATE INSTANCE FOR PICTURE CONTROL. CREATE OBJECT mypicture exporting parent = myctrl.3) GET THE IMAGE FROM DATA BASE TABLE "WWWDATA" INTO URL VARIABLE.

CALL FUNCTION 'DP_PUBLISH_WWW_URL' EXPORTING OBJID = 'HTMLCNTL_TESTHTM2_SAP_AG' LIFETIME = cndp_lifetime_transaction IMPORTING

Page 32: PART1-MPP notes

URL = url EXCEPTIONS OTHERS = 1.

4) ADD THE IMAGE ON TOP OF IMAGE CONTROL.CALL METHOD mypicture->LOAD_PICTURE_FROM_URL_ASYNC exporting url = url.

CNDP :

TYPES : CNDP_URL(256) TYPE C.

CNDP_LIFETIME_VOLATILE ( SESSION TIME)CNDP_LIFETIME_TRANSACTION ( TRANSACTION TIME)CNDP_LIFETIME_ALL ( TILL APPLICATION IS DOWN )

EXAMPLE CODE.

TYPE-POOLS CNDP.DATA : OKCODE LIKE SY-UCOMM.DATA : MYURL TYPE CNDP_URL.DATA : MYCTRL TYPE REF TO CL_GUI_CUSTOM_CONTAINER, MYPICTURE TYPE REF TO CL_GUI_PICTURE.

CALL SCREEN 100.

MODULE STATUS_0100 OUTPUT.

create object myctrl exporting Container_name = 'CUSTCTRL'.

CREATE OBJECT mypicture exporting parent = myctrl.

CALL FUNCTION 'DP_PUBLISH_WWW_URL' EXPORTING OBJID = 'HTMLCNTL_TESTHTM2_SAP_AG' LIFETIME = cndp_lifetime_transaction IMPORTING URL = MYURL EXCEPTIONS OTHERS = 1.

CALL METHOD mypicture->LOAD_PICTURE_FROM_URL_ASYNC

Page 33: PART1-MPP notes

exporting url = MYurl.

ENDMODULE.

MODULE USER_COMMAND_0100 INPUT.

CASE OKCODE. WHEN 'EXIT'. LEAVE PROGRAM. ENDCASE.

ENDMODULE.

18 TH FEB

MAKING INPUT FIELD AS MANDATORY FROM SELECTION SCREEN USING "OBLIGATORY" OPTION.

REPORT ZDEMO_SCR_VALIDATIONS.PARAMETERS : NAME(20) TYPE C OBLIGATORY.WRITE : NAME.

USING THIS STATEMENT FROM SELECTION-SCREEN SAP WILL NOT ACCEPT NULL VALUES.

TO APPLY THESE OPTIONS IN MPP SCREEN USE FOLLOWING NAVIGATIONS.

SCREEN-GROUP1 = 'G1'

SCREEN-REQUIRED = 1. ( MANDATORY )SCREEN-REQUIRED = 0. ( OPTIONAL )

LOOP AT SCREEN.ENDLOOP.

IS A LOOP USED IN ABAP MODULE POOL PROGRAMMING TO SET SCREEN PROPERTIES, USE THIS LOOP IN PBO EVENT. THIS LOOP IS USED TO SET DYNAMIC PROPERTIES FOR THE SCREENS.MOSTLY FOR COMPANY REQUIREMENTS PROPERTIES REQUIRED ARE 1) REQUIRED : SETS MANDATORY OPTION FOR INPUT FIELDS BY ASSIGNING VALUE AS 1. 2) INPUT : SET ENABLE OR DISABLE PROPERTY FOR THE INPUT FIELDS.EXAMPLE 1 FOR REQUIRED OPTION.PBO AND PAI CODE.MODULE USER_COMMAND_1234 INPUT.

Page 34: PART1-MPP notes

CASE OKCODE. WHEN 'EXIT'. LEAVE PROGRAM. WHEN 'MODIFY'. IF FLAG = 'X'. FLAG = ' '. ELSE. FLAG = 'X'. ENDIF. ENDCASE.ENDMODULE.MODULE STATUS_1234 OUTPUT. LOOP AT SCREEN. IF SCREEN-GROUP1 = 'MOD'. IF FLAG = 'X'. SCREEN-REQUIRED = 1. ELSE. SCREEN-REQUIRED = 0. ENDIF. ENDIF. MODIFY SCREEN. ENDLOOP.ENDMODULE.

FOR ENABLE OR DISABLE MODE

MODULE STATUS_1234 OUTPUT. LOOP AT SCREEN. IF SCREEN-GROUP1 = 'MOD'. IF FLAG = 'X'. SCREEN-INPUT = 1. ELSE. SCREEN-INPUT = 0. ENDIF. ENDIF. MODIFY SCREEN. ENDLOOP.ENDMODULE.

IF SCREEN-INPUT = 1, THE COMPONENT IS IN DISABLE MODE, ELSE IF SCREEN-INPUT VALUE IS 0 THEN IS IN ENABLE MODE.

SCREEN-INVISIBLE = 1. ( PASSWORD FIELD )SCREEN=INVISINLE = 0. ( NORMAL FIELD)

Page 35: PART1-MPP notes

SCREEN-ACTIVE = 1. ( HIDE ) SCREEN=ACTIVE = 0. ( SHOW )

MODULE STATUS_1234 OUTPUT. LOOP AT SCREEN. IF SCREEN-GROUP1 = 'MOD'. IF FLAG = 'X'. SCREEN-ACTIVE = 1. ELSE. SCREEN-ACTIVE = 0. ENDIF. ENDIF. MODIFY SCREEN. ENDLOOP.ENDMODULE.

MPP'S PROCESS ON VALUE-REQUEST. ( F4) PROCESS ON HELP-REQUEST. (F1)

TABLE CONTROL :

IS COLLECTION OF ITAB FIELDS.SINGLE INPUT FIELD.

SELECT-OPTIONS : RANGE OF INPUT 1) SCREEN 1 : SELECT-OPTIONS2) TABLE CONTROL : ITAB DATA.

22 ND FEB

Search Helps in abap: Adding F4 Functionality for Input fields is called as Search Helps.

SEARCH HELP IS A DICTIONARY OBJECT IN SAP, CAN BE CREATED FROM "SE11" TCODE.

SEARCH HELP OBJECT CAN BE CREATED FOR THE FIELDS WHICH ARE ASSIGNED TO DATA ELEMENT.

CREATION OF THE SEARCH HELPS

SE11 -> SELECT SEARCH HELP OBJECT -> NAME THE SEARCH HELP -> CREATE -> SELECT ELEMENTORY SEARCH HELP -> OK -> SHORT TEXT ->

Page 36: PART1-MPP notes

NAME THE TABLE -> SPECIFY THE COLUMN -> SPECIFY IMP, EXP, LPOS AND SPOS FIELD VALUES -> SAVE -> ACTIVATE THE SEARCH HELP.

USAGE OF THE SEARCH HELP.1) FOR SELECTION SCREEN PARAMETERS

PARAMETERS : NAME1 LIKE KNA1-NAME1 MATCHCODE OBJECT ZSHLP930.

PARAMETERS : NAME(15) TYPE C MATCHCODE OBJECT ZSHLP930.

2)USING SEARCH HELPS FOR DATA ELEMENTS. ADDING SEARCH HELPS FOR DATA ELEMENTS

CHANGE THE PROPERTIES OF DATA ELEMENTS FROM "SE11" -> WHILE CHANGING ABAPER CAN ASSIGN DOMAIN NAME IN TABSTRIP "DATA TYPE" -> TO ASSIGN SEARCH HELP FOR THE DATAMENT CLICK ON FURTHER CHARACTERISTICS -> ASSIGN SEARCH HELP NAME CREATED FROM SE11 -> AND ASSIGN FIELD NAME IN PARAMETERS -> SAVE -> ACTIVATE.

THE DATA ELEMENTS ASSIGNED WITH SEARCH HELPS CAN ASSIGN "F4" FUNCTIONALITY TO I/O FIELDS AUTOMATICALLY FROM SE38 REPORTS.

NOTE : THIS FUNCTIONALITY CAN'T BE APPLIED FOR MPP SCREENS.PARAMETERS : SALEID LIKE ZCNTSALES-SALEID.

3) ADDING SEARCH HELPS FOR MPP SCREENS. OPEN I/O PARAMETERS FROM SCREEN PAINTER LAYOUT MANAGER -> SEARCH HELP IS ONE OF THE OPTION -> NAME THE SEARCH HELP FOR WHICH ARE EXISTING IN SE11 TO THE IO FIELD -> ADDS THE F4 FUNCTIONLITY.P ON HELP-REQUEST(ADDING F1 FUNCTIONALITY).P ON VALUE-REQUEST. ( F4 )


Recommended