abap questions teched

27
Question: Within the TOP-OF-PAGE event the following code represents write: /1 text-001. Answer: A: A selection text. B: A basic list row. C: A page footer D: A page header Question: Given the two ABAP Dictioary tables below, the Customer number field in table one must contain a value from table two. The Customer number field is known as a ____. Table one: Customer number (Primary key) Company code (Primary key) Other data Table two: Customer number (Primary key) Customer name Other data Answer: A: Secondary index B: Matchcode object C: Validation field D: Foreign key Question: A batch input job with two steps is processed. IMPORT/EXPORT statements are used to pass values between the steps.

Upload: akhil-verma

Post on 10-Dec-2015

40 views

Category:

Documents


1 download

DESCRIPTION

ques abap sap

TRANSCRIPT

Page 1: ABAP Questions TechED

Question: Within the TOP-OF-PAGE event the following code represents 

  write: /1 text-001. 

Answer:   A:  A selection text.    B:  A basic list row.    C:  A page footer    D:  A page header 

Question: Given the two ABAP Dictioary tables below, the Customer number field in table one must contain a value from table two. The Customer number field is known as a ____. 

  Table one:     Customer number (Primary key)     Company code (Primary key)     Other data 

   Table two:     Customer number (Primary key)     Customer name     Other data 

Answer:    A:  Secondary index     B:  Matchcode object     C:  Validation field     D:  Foreign key 

Question: A batch input job with two steps is processed.  IMPORT/EXPORT statements are used to pass values between the steps.

Step 1 contains the statements   STATUS='S'. CONT = 'C'.   EXPORT STATUS CONT TO MEMORY ID 'XXXX'.

Step 2 contains the statements   CLEAR:CONT, STATUS, FLAG.   IMPORT CONT FLAG FROM MEMORY ID 'XXXX'.

What do the fields SY-SUBRC, CONT and FLAG contain after the IMPORT statement have been executed?

Page 2: ABAP Questions TechED

Answer: A.  SY-SUBRC=4. CONT='C'. FLAG=''. B.  SY-SUBRC=0. CONT='C'. FLAG=''. C.  SY-SUBRC=0. CONT=''.   FLAG=''.

Question: The structure of a table has been changed in the ABAP/4 Dictionary. Which of the following adjustments in the relevant database table is correct, if you want to retain the previous data?

Answer: A.  Delete and recreate the database table. B.  Change the database directory (ALTER TABLE) where the structure change with ALTER TABLE is supported by the database. C.  Convert the table.

Question: Must Exits be predefined by SAP programmers?

Answer: A.  No B.  Yes C.  Customers can determine for themselves where they want to use exits

REPORT Z_LIST_MATERIALS.

TYPE-POOLS: SLIS.TABLES:MARC, MARD, VBAP, LIPS, EKPO, VBFA, EKBE, MARM, VBBE, MARA, MBEW.

SELECTION-SCREEN BEGIN OF BLOCK SEL WITH FRAME TITLE TEXT-001.SELECT-OPTIONS: S_WERKS FOR MARC-WERKS, " Plant               S_MATNR FOR MARC-MATNR, " Material               S_MTART FOR MARA-MTART. " Material Type SELECTION-SCREEN END OF BLOCK SEL.PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT. " ALV Variant

CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.

DATA: BEGIN OF INV OCCURS 100,       WERKS LIKE MARD-WERKS, " Plant       MATNR LIKE MARD-MATNR, " Material       MTART LIKE MARA-MTART, " Material Type       STPRS LIKE MBEW-STPRS, " Standard Price       AVAIL LIKE MARD-LABST, " Available       LABST LIKE MARD-LABST, " Unrestricted use       INSME LIKE MARD-INSME, " Quality Inspection       RETME LIKE MARD-RETME, " Returns       TRANS LIKE MARC-UMLMC, " Stock in transit (calculated)       UMLMC LIKE MARC-UMLMC, " Stock Transfer (plant)       UMLME LIKE MARD-UMLME, " Transfer (SLoc)

Page 3: ABAP Questions TechED

       WESBS LIKE EKBE-WESBS, " GR Blocked Stock       TRAME LIKE MARC-TRAME, " Stock in transit       SPEME LIKE MARD-SPEME, " Blocked       KWMENG LIKE VBAP-KWMENG, " Sales orders       LFIMG LIKE LIPS-LFIMG, " Scheduled for Delivery       MENGE LIKE EKPO-MENGE, " Open Purch. Orders       VALUE LIKE MBEW-SALK3, " Stock Value (Calculated)       MEINS LIKE MARA-MEINS, " Unit of measure     END OF INV.

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',     G_SAVE(1) TYPE C,     G_EXIT(1) TYPE C,     G_VARIANT LIKE DISVARIANT,     GX_VARIANT LIKE DISVARIANT.

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_MARD. PERFORM GET_UNIT_OF_MEASURE. PERFORM GET_MARC. PERFORM GET_EKPO. PERFORM GET_LIPS. PERFORM GET_VBAP. PERFORM GET_OPEN. PERFORM GET_PRICE.

END-OF-SELECTION.

 PERFORM BUILD_LAYOUT USING LAYOUT. PERFORM WRITE_OUTPUT.

*&---------------------------------------------------------------------**&      Form  INITIALIZE_FIELDCAT*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**      -->P_FIELDTAB[]  text                                           **----------------------------------------------------------------------*

Page 4: ABAP Questions TechED

FORM INITIALIZE_FIELDCAT USING P_FIELDTAB TYPE SLIS_T_FIELDCAT_ALV. DATA: L_FIELDCAT TYPE SLIS_FIELDCAT_ALV.* fixed columns (obligatory) CLEAR L_FIELDCAT. L_FIELDCAT-TABNAME    = 'INV'. L_FIELDCAT-FIX_COLUMN = 'X'. L_FIELDCAT-NO_OUT     = 'O'. L_FIELDCAT-FIELDNAME  = 'WERKS'. APPEND L_FIELDCAT TO P_FIELDTAB. L_FIELDCAT-FIELDNAME  = 'MATNR'. APPEND L_FIELDCAT TO P_FIELDTAB.

* totalized columns CLEAR L_FIELDCAT. L_FIELDCAT-TABNAME   = 'INV'. L_FIELDCAT-SP_GROUP  = 'A'. L_FIELDCAT-DO_SUM    = 'X'. L_FIELDCAT-FIELDNAME = 'LABST'. APPEND L_FIELDCAT TO P_FIELDTAB. L_FIELDCAT-FIELDNAME = 'INSME'. APPEND L_FIELDCAT TO P_FIELDTAB. L_FIELDCAT-FIELDNAME = 'RETME'. APPEND L_FIELDCAT TO P_FIELDTAB. L_FIELDCAT-FIELDNAME = 'UMLME'. APPEND L_FIELDCAT TO P_FIELDTAB. L_FIELDCAT-FIELDNAME = 'WESBS'. APPEND L_FIELDCAT TO P_FIELDTAB. L_FIELDCAT-FIELDNAME = 'SPEME'. APPEND L_FIELDCAT TO P_FIELDTAB.* columns with different description L_FIELDCAT-FIELDNAME = 'KWMENG'. L_FIELDCAT-SELTEXT_M = 'Sales Orders'. L_FIELDCAT-SELTEXT_S = 'Sales Or'. L_FIELDCAT-SELTEXT_L = 'Sales Orders Qty'. APPEND L_FIELDCAT TO P_FIELDTAB. L_FIELDCAT-FIELDNAME = 'LFIMG'. L_FIELDCAT-SELTEXT_M = 'Sched. Delivery'. L_FIELDCAT-SELTEXT_S = 'Schd. Del'. L_FIELDCAT-SELTEXT_L = 'Scheduled for Delivery'. APPEND L_FIELDCAT TO P_FIELDTAB. L_FIELDCAT-FIELDNAME = 'TRANS'. L_FIELDCAT-SELTEXT_M = 'Stk. in transit'. L_FIELDCAT-SELTEXT_S = 'Stk. trns'. L_FIELDCAT-SELTEXT_L = 'Stock in transit (sum)'. APPEND L_FIELDCAT TO P_FIELDTAB. L_FIELDCAT-FIELDNAME = 'AVAIL'. L_FIELDCAT-SELTEXT_M = 'Available'. L_FIELDCAT-SELTEXT_S = 'Avail.'. L_FIELDCAT-SELTEXT_L = 'Stock Available'. APPEND L_FIELDCAT TO P_FIELDTAB. L_FIELDCAT-FIELDNAME = 'MENGE'. L_FIELDCAT-SELTEXT_M = 'Open Orders'. L_FIELDCAT-SELTEXT_S = 'Open Ord'. L_FIELDCAT-SELTEXT_L = 'Open Purchase Orders'. APPEND L_FIELDCAT TO P_FIELDTAB.

* columns not displayed

Page 5: ABAP Questions TechED

 CLEAR L_FIELDCAT. L_FIELDCAT-TABNAME   = 'INV'. L_FIELDCAT-SP_GROUP  = 'A'. L_FIELDCAT-NO_OUT    = 'X'. L_FIELDCAT-FIELDNAME = 'MEINS'. APPEND L_FIELDCAT TO P_FIELDTAB. L_FIELDCAT-FIELDNAME = 'UMLMC'. APPEND L_FIELDCAT TO P_FIELDTAB. L_FIELDCAT-FIELDNAME = 'TRAME'. APPEND L_FIELDCAT TO P_FIELDTAB. L_FIELDCAT-FIELDNAME = 'STPRS'. APPEND L_FIELDCAT TO P_FIELDTAB. L_FIELDCAT-FIELDNAME = 'VALUE'. APPEND L_FIELDCAT TO P_FIELDTAB.ENDFORM.                               " INITIALIZE_FIELDCAT

*&---------------------------------------------------------------------**&      Form  BUILD_EVENTTAB*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**      -->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.ENDFORM.                               " BUILD_EVENTTAB

*&---------------------------------------------------------------------**&      Form  BUILD_COMMENT*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**      -->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. CLEAR TEXT. WRITE: 'User: ' TO TEXT,        SY-UNAME TO TEXT+6,

Page 6: ABAP Questions TechED

        'Date: ' TO TEXT+25,        SY-DATUM TO TEXT+31,        'Page: ' TO TEXT+50,        SY-PAGNO TO TEXT+56. HLINE-INFO = TEXT. APPEND HLINE TO P_HEADING.

ENDFORM.                    " BUILD_COMMENT

*---------------------------------------------------------------------**       FORM TOP_OF_PAGE                                              **---------------------------------------------------------------------**       ........                                                      **---------------------------------------------------------------------*FORM TOP_OF_PAGE. CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'      EXPORTING           IT_LIST_COMMENTARY = HEADING.ENDFORM.*&---------------------------------------------------------------------**&      Form  INITIALIZE_VARIANT*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------*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  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

Page 7: ABAP Questions TechED

           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  PAI_OF_SELECTION_SCREEN*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------*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.   G_VARIANT = GX_VARIANT. ELSE.   PERFORM INITIALIZE_VARIANT. ENDIF.ENDFORM.                               " PAI_OF_SELECTION_SCREEN

*&---------------------------------------------------------------------**&      Form  GET_MARD*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------*FORM GET_MARD. SELECT MATNR WERKS LABST INSME RETME UMLME SPEME        FROM MARD        INTO CORRESPONDING FIELDS OF INV        WHERE MATNR IN S_MATNR        AND   WERKS IN S_WERKS.   COLLECT INV. ENDSELECT. PERFORM FILTER_BY_MATERIAL_TYPE.ENDFORM.                               " GET_MARD

*&---------------------------------------------------------------------**&      Form  FILTER_BY_MATERIAL_TYPE*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------*FORM FILTER_BY_MATERIAL_TYPE. LOOP AT INV.   CLEAR INV-MTART.

Page 8: ABAP Questions TechED

   SELECT SINGLE MTART          INTO INV-MTART          FROM MARA          WHERE MATNR EQ INV-MATNR          AND   MTART IN S_MTART.   IF SY-SUBRC EQ 0.     MODIFY INV.   ELSE.     DELETE INV.   ENDIF. ENDLOOP.ENDFORM.                    " FILTER_BY_MATERIAL_TYPE

*&---------------------------------------------------------------------**&      Form  GET_MARC*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------*FORM GET_MARC. LOOP AT INV.   SELECT SINGLE UMLMC TRAME          FROM MARC          INTO CORRESPONDING FIELDS OF INV          WHERE MATNR EQ INV-MATNR          AND   WERKS EQ INV-WERKS.   IF SY-SUBRC EQ 0.     INV-TRANS = INV-UMLMC + INV-TRAME.     MODIFY INV.   ENDIF. ENDLOOP.ENDFORM.                               " GET_MARC*&---------------------------------------------------------------------**&      Form  GET_EKPO*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------*FORM GET_EKPO. DATA: WESBS LIKE INV-WESBS,       SHKZG LIKE EKBE-SHKZG,       MEINS LIKE EKPO-MEINS,       LMEIN LIKE EKPO-LMEIN. LOOP AT INV.   CLEAR: WESBS, SHKZG, MEINS, LMEIN.   SELECT YWESBS YSHKZG XMEINS XLMEIN          INTO (WESBS, SHKZG, MEINS, LMEIN)          FROM EKPO AS X JOIN EKBE AS Y          ON   XEBELN = YEBELN          AND  XEBELP = YEBELP          WHERE XMATNR EQ INV-MATNR          AND   XWERKS EQ INV-WERKS          AND   XLOEKZ NE 'L'.     IF SHKZG EQ 'H'.       MULTIPLY WESBS BY -1.     ENDIF.     IF MEINS NE LMEIN.       PERFORM CONVERT_UNIT_OF_MEASURE CHANGING INV-MATNR MEINS WESBS.     ENDIF.

Page 9: ABAP Questions TechED

     ADD WESBS TO INV-WESBS.   ENDSELECT.   MODIFY INV. ENDLOOP.ENDFORM.                               " GET_EKPO*&---------------------------------------------------------------------**&      Form  GET_LIPS*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------*FORM GET_LIPS. DATA: LFIMG LIKE INV-LFIMG. LOOP AT INV.   CLEAR: LFIMG, INV-LFIMG.   SELECT OMENG          INTO LFIMG          FROM VBBE          WHERE MATNR EQ INV-MATNR          AND   WERKS EQ INV-WERKS          AND   VBTYP EQ 'J'.     ADD LFIMG TO INV-LFIMG.   ENDSELECT.   MODIFY INV. ENDLOOP.ENDFORM.                               " GET_LIPS*&---------------------------------------------------------------------**&      Form  GET_VBAP*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------*FORM GET_VBAP. DATA: KWMENG LIKE INV-KWMENG. LOOP AT INV.   CLEAR: KWMENG, INV-KWMENG.   SELECT OMENG          INTO KWMENG          FROM VBBE          WHERE MATNR EQ INV-MATNR          AND   WERKS EQ INV-WERKS          AND   VBTYP EQ 'C'.     ADD KWMENG TO INV-KWMENG.   ENDSELECT.   INV-AVAIL = INV-LABST - INV-INSME - INV-KWMENG - INV-LFIMG.   MODIFY INV. ENDLOOP.ENDFORM.                               " GET_VBAP

*&---------------------------------------------------------------------**&      Form  GET_UNIT_OF_MEASURE*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**  -->  p1        text*  <--  p2        text*----------------------------------------------------------------------*FORM GET_UNIT_OF_MEASURE. LOOP AT INV.

Page 10: ABAP Questions TechED

   SELECT SINGLE MEINS          FROM MARA          INTO INV-MEINS          WHERE MATNR EQ INV-MATNR.   MODIFY INV. ENDLOOP.ENDFORM.                               " GET_UNIT_OF_MEASURE

*&---------------------------------------------------------------------**&      Form  GET_OPEN*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------*FORM GET_OPEN. DATA: BEGIN OF XTAB OCCURS 10,       " Open orders table          WERKS LIKE EKPO-WERKS,          LGORT LIKE EKPO-LGORT,          MATNR LIKE EKPO-MATNR,          MENGE LIKE EKPO-MENGE,          MENGK LIKE EKPO-MENGE,        END OF XTAB. RANGES: L_WERKS FOR MARD-WERKS.

 LOOP AT INV.   REFRESH XTAB.   CLEAR: XTAB, L_WERKS.   MOVE INV-WERKS TO L_WERKS-LOW.   CALL FUNCTION 'MB_ADD_PURCHASE_ORDER_QUANTITY'        EXPORTING             X_MATNR = INV-MATNR             X_MEINS = INV-MEINS             X_ELIKZ = SPACE             X_LOEKZ = SPACE        TABLES             XTAB    = XTAB             XWERKS  = L_WERKS.   MOVE XTAB-MENGE TO INV-MENGE.   MODIFY INV. ENDLOOP.ENDFORM.                               " GET_OPEN

*&---------------------------------------------------------------------**&      Form  GET_PRICE*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------*FORM GET_PRICE. LOOP AT INV.   SELECT SINGLE STPRS          FROM MBEW          INTO INV-STPRS          WHERE MATNR EQ INV-MATNR          AND   BWKEY EQ INV-WERKS          AND   BWTAR EQ SPACE.     IF SY-SUBRC EQ 0.       INV-VALUE = INV-STPRS *                 ( INV-LABST + INV-INSME + INV-TRANS + INV-SPEME ).

Page 11: ABAP Questions TechED

       MODIFY INV.     ENDIF. ENDLOOP.ENDFORM.                    " GET_PRICE

*---------------------------------------------------------------------**       FORM CONVERT_UNIT_OF_MEASURE                                  **---------------------------------------------------------------------**       text                                                          **---------------------------------------------------------------------**  -->  P_MATNR                                                       **  -->  P_VRKME                                                       **  -->  P_QUANT                                                       **---------------------------------------------------------------------*FORM CONVERT_UNIT_OF_MEASURE USING P_MATNR P_VRKME P_QUANT. DATA: UMREZ LIKE MARM-UMREZ,       UMREN LIKE MARM-UMREN. SELECT SINGLE UMREZ UMREN        INTO (UMREZ, UMREN)        FROM MARM        WHERE MATNR EQ P_MATNR        AND   MEINH EQ P_VRKME. IF SY-SUBRC EQ 0.   COMPUTE P_QUANT = ( P_QUANT * UMREZ ) / UMREN. ENDIF.ENDFORM.

*&---------------------------------------------------------------------**&      Form  BUILD_LAYOUT*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**      -->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'.ENDFORM.                               " BUILD_LAYOUT

*&---------------------------------------------------------------------**&      Form  WRITE_OUTPUT*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------*FORM WRITE_OUTPUT. SORT INV BY WERKS MATNR. CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'      EXPORTING           I_PROGRAM_NAME     = REPNAME           I_INTERNAL_TABNAME = 'INV'           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'

Page 12: ABAP Questions TechED

      EXPORTING           I_CALLBACK_PROGRAM = REPNAME           I_STRUCTURE_NAME   = 'INV'           IS_LAYOUT          = LAYOUT           IT_FIELDCAT        = FIELDTAB           I_DEFAULT          = 'A'           I_SAVE             = G_SAVE           IS_VARIANT         = G_VARIANT           IT_EVENTS          = EVENTS[]      TABLES           T_OUTTAB           = INV. IF SY-SUBRC <> 0.   WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_LIST_DISPLAY'.  ENDIF.ENDFORM.                               " WRITE_OUTPUT

1. How data is stored in cluster table?  Each field of cluster table behaves as tables which contains the no. of entries. 

2. What are client dependant objects in abap/sap?  SAP Script layout, text element, and some DDIC objects. 

3. On which event we can validate the input fields in module progams?  In PAI (Write field statement on field you want to validate, if you want to validate group of fields put in chain and End chain statement.) 

4. In selection screen I have three fields, plant mat no and material group. If I input plant how do I get the mat no and material group based on plant dynamically?  AT SELECTION-SCREEN ON VALUE-REQUEST FOR MATERIAL.  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' to get material and material group for the plant. 

5. How do you get output from IDOC?  Data in IDOc is stored in segments, the output from Idoc is obtained by reading the data stored in its respective segments. 

6. When top of the page event is triggered?  After excuteing first write statement in start-of-selection event. 

7. Can we create field without data element and how?  In SE11 one option is available above the fields strip. Data element/ direct type. 

8. How do we debug sapscript?  Go to SE71 give lay set name , go to utilities select debugger mode on.

9. Which transaction code can I used to analyze the performance of ABAP program.  TCode AL21.

Page 13: ABAP Questions TechED

10. How can I copy a standard table to make my own z_table. Go to transaction SE11. Then there is one option to copy table. Press that button.  Enter the name of the standard table and in the Target table enter Z table name and press enter.

Following are some of the answers which I gave upto my knowledge.    1. What is the use of 'outerjoin'  Ans. With the use of outer join you can join the tables even there is no entry in all the tables used in the view.         In case of inner join there should be an entry in al the tables use in the view.

2. When to  use logical database? Ans. Advantage of Logical databases:         less coding s required to retrieve data compared to normal internel tables.         Tables used LDB are in hierarchial structure.

3. What is the use of 'table index'? Ans .Index is used for faster access of data base tables.

4. What is the use of 'FOR ALL ENTRIES'? Ans. To avoid nested select statements we use SELECT FOR ALL ENTRIES statement.         If there r more than 10000 records SELECT FOR ALL ENTRIES is used.         Performance wise SELECT FOR ALL ENTRIES is better to use.

5. Can you set up background processing using CALL TRANSACTION?        Yes,Using No Screen Mode.

6. What are table buffers?     Table buffers reside locally on each application server in the system. The data of buffered tables can thus be accessed      directly  from the buffer of the application server. This avoids the time-consuming process of accessing the database.

    Buffering is useful if table needs to be accessed more no. of times in a program.

1) How do you backup script layout sets? 2) What type of variables normally used in script to o/p data? 3) How do you use tabsets in layouts?

1)  Use this Std program RSTXSCRP.      1) First Export to Presentation file(.doc).      2) Whenever you need that Export into SAP.

Page 14: ABAP Questions TechED

2)  Normally we call them as Program symbols.  Those are defined in Driver program. We can use in Script as for exp. &itab-matnr& Other variables ---System symbols : ex  &page&                         ---Std symbols :                         ---Text symbols :We define them in script editor itself.                              Ex : /: Define &mysymbol&   =  'XX'

3)  We can control the tab feed in a paragraph with tab positions. The tab stops us define in the paragraph format replace the tab spacing we defined in the header data of the form. However, this depends on the extent to which we have defined tab stops in the paragraph format. If there are fewer tabs in the paragraph formats than in the header data, the tab stops of the header data are used for the rest of the line.   SAPscripts Tips by : Venkat O

Q: We get the total number of pages as expected by using 'SAPSCRIPT-FORMPAGES' in a duplex layout. In our case duplex case is always 'Terms & Conditions'. We do not want the number of pages as in duplex printing. What is the best possible solution?

A: On the Terms & Conditions page, Change the Page counter mode to 'HOLD' to keep the page counter from incrementing when you print the Term & Conditions.

Q: Can I Print a logo on an Invoice?

A: Save a Logo using Paintshop Pro or Corel Draw as Tiff file. Use RSTXLDMC to convert the logo to standard text in SapScript. When the program is executed, the path and file name have to be correctly specified.

Process could be like the following: Run RSTXLDMC Enter file name C:\MAIL\COMPLOGO.TIF Resolution for Tiff file Absolute X-position Absolute Y-position Absolute positioning Reserved height Shift to right UOM = CM Text title Line width for text = 132 Text name ZHEX-MACRO-COMPLOGO Text ID ST Text language = E Postscript scaling Width & Height according to PS scaling

Page 15: ABAP Questions TechED

Number of Tiff gray levels (2,4,9) 2 Then Create a new window 'COMP' with attributes; Window COMP description Company Logo Window type CONST Left margin 7.00 CH window width 10.00 CH Upper margin LN window height 8.00 LN

Finally in the text element , mention /: INCLUDE 'ZHEX-MACRO-COMPLOGO' OBJECT TEXT ID ST LANGUAGE 'E'.

Please note that if object name is not indicated as 'ZHEX...', the logo may not be printed!

You will not be able to see the logo in a test print. The same will be printed in actual printout.

If you are using two logos in the same layout, the names of the logos should be unique. Say 'ZHEX-MACRO-LOGO1' and 'ZHEX-MACRO-LOGO2'. Else all the information will be overwritten.

If the logo is not EXACTLY TIFF 6.0, the same will not be printed.

See OSS notes 5995, 18045, 39031 for some inputs.

The following system fields are always set automatically. 

The GET TIME statement synchronizes the time on the application server with the time on the database server and writes it to the field SY-UZEIT. SY-DATUM and the system fields for the local timezone (SY-TIMLO, SY-DATLO, and SY-ZONLO) are also reset. 

SY-DATLO

User’s local date, for example 19981129, 19990628, …

SY-DATUM

Current application server date, for example 19981130, 19990627, …

SY-DAYST

X during summertime, otherwise space. 

SY-FDAYW

Factory calendar day of the week: Monday = 1 … Friday = 5.

Page 16: ABAP Questions TechED

SY-TIMLO

User’s local time, for example 154353, 225312, …

SY-TZONE

Time difference in seconds between local time and Greenwich Mean Time (UTC), for example,  360, 10800.

SY-UZEIT

Current application server time. for example 164353, 215312, …

SY-ZONLO

User’s time zone, for example, EST, UTC, …

SY-BATCH

X   if the ABAP program is running in the background, otherwise space  

Batch Input

SY-BINPT

X   while a batch input session is running and when an ABAP program is called using       CALL TRANSACTION USING, otherwise space. 

     OPTIONS FROM in the CALL TRANSACTION USING statement can set SY-BINPT to space either for      the entire duration of the program, or at the end of the BDC data.   

     SY-BINPT is always space during a CATT procedure.

SY-TABIX

Current line of an internal table. SY-TABIX is set by the statements below, but only for index tables. The field is either not set or is set to 0 for hashed tables. 

APPEND sets SY-TABIX to the index of the last line of the table, that is, it contains the overall number of entries in the table. 

Page 17: ABAP Questions TechED

COLLECT sets SY-TABIX to the index of the existing or inserted line in the table. If the table has the type HASHED TABLE, SY-TABIX is set to 0.

LOOP AT sets SY-TABIX to the index of the current line at the beginning of each loop lass. At the end of the loop, SY-TABIX is reset to the value that it had before entering the loop. It is set to 0 if the table has the type HASHED TABLE. 

READ TABLE sets SY-TABIX to the index of the table line read. If you use a binary search, and the system does not find a line, SY-TABIX contains the total number of lines, or one more than the total number of lines. SY-INDEX is undefined if a linear search fails to return an entry. 

SEARCH <itab> FOR sets SY-TABIX to the index of the table line in which the search string is found.  

SY-TFILL

After the statements DESCRIBE TABLE, LOOP AT, and READ TABLE, SY-TFILL contains the number of lines in the relevant internal table.   

SY-TLENG

After the statements DESCRIBE TABLE, LOOP AT, and READ TABLE, SY-TLENG contains the length of the lines in the relevant internal table.   

SY-TOCCU

After the statements DESCRIBE TABLE, LOOP AT, and READ TABLE, SY-TLENG contains the initial amount of memory allocated to the relevant internal table.

REPORT ZFONT NO STANDARD PAGE HEADING LINE-SIZE 80 LINE-COUNT 65.

* Start of print-controlNEW-PAGE PRINT ON.

PRINT-CONTROL FUNCTION 'SF000'.WRITE: / 'This is CPI 20'.

SKIP.PRINT-CONTROL FUNCTION 'SF020'.WRITE: / 'This is CPI 6'.

SKIP.PRINT-CONTROL FUNCTION 'SF008'.

Page 18: ABAP Questions TechED

WRITE: / 'This is CPI 12'.

* Depending on your SAP printer device, this may also workPRINT-CONTROL FONT 1 LPI 6.* you can try to change font and LPI numbersWRITE: / 'font 1 lpi 6'.

PRINT-CONTROL FONT 2 LPI 6.WRITE: / 'font 2 lpi 6'.

PRINT-CONTROL FONT 3 LPI 6.WRITE: / 'font 3 lpi 6'.

* End of print-control

NEW-PAGE PRINT OFF.

REPORT  ZTABSTRIPS  LINE-SIZE 120        NO STANDARD PAGE HEADING.

TABLES: ekko, ekpo, eket, marc, t134h.

*---------------------------------------------------------------------**   Tab Strips 1*---------------------------------------------------------------------*SELECTION-SCREEN BEGIN OF SCREEN 101 AS SUBSCREEN.SELECTION-SCREEN BEGIN OF BLOCK vendor WITH FRAME TITLE text-t00.SELECT-OPTIONS vendor FOR ekko-lifnr.SELECTION-SCREEN SKIP.SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN COMMENT (10) text-m01.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN SKIP.SELECT-OPTIONS vplant FOR ekko-reswk.SELECTION-SCREEN END OF BLOCK vendor.SELECTION-SCREEN END OF SCREEN 101.*---------------------------------------------------------------------**   Tab Strips 2*---------------------------------------------------------------------*SELECTION-SCREEN BEGIN OF SCREEN 102 AS SUBSCREEN.SELECTION-SCREEN BEGIN OF BLOCK data1 WITH FRAME TITLE text-t02.SELECT-OPTIONS: busarea FOR t134h-gsber,                plant   FOR ekpo-werks,                puorg   FOR ekko-ekorg.SELECTION-SCREEN END OF BLOCK data1.SELECTION-SCREEN SKIP.SELECTION-SCREEN BEGIN OF BLOCK data2 WITH FRAME TITLE text-t03.SELECT-OPTIONS  sched   FOR ekko-ebeln.SELECT-OPTIONS  matl    FOR ekpo-matnr.SELECTION-SCREEN END OF BLOCK data2.SELECTION-SCREEN END OF SCREEN 102.*---------------------------------------------------------------------**   Tab Strips 3*---------------------------------------------------------------------*SELECTION-SCREEN BEGIN OF SCREEN 103 AS SUBSCREEN.SELECTION-SCREEN BEGIN OF BLOCK rype WITH FRAME TITLE text-t04.

Page 19: ABAP Questions TechED

SELECTION-SCREEN BEGIN OF LINE.PARAMETERS del RADIOBUTTON GROUP one.SELECTION-SCREEN COMMENT 4(35) text-c05 FOR FIELD del.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN BEGIN OF LINE.PARAMETERS fix RADIOBUTTON GROUP one.SELECTION-SCREEN COMMENT 4(35) text-c06 FOR FIELD fix.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN END OF BLOCK rype.SELECTION-SCREEN SKIP.SELECTION-SCREEN BEGIN OF BLOCK interval WITH FRAME TITLE text-t05.SELECTION-SCREEN BEGIN OF LINE.PARAMETERS mon RADIOBUTTON GROUP two.SELECTION-SCREEN COMMENT 4(15) text-c01 FOR FIELD mon.PARAMETERS evalmon TYPE spbup.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN BEGIN OF LINE.PARAMETERS wek RADIOBUTTON GROUP two.SELECTION-SCREEN COMMENT 4(15) text-c02 FOR FIELD wek.PARAMETERS evalweek TYPE sptag.SELECTION-SCREEN COMMENT 35(30) text-i01.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN END OF BLOCK interval.SELECTION-SCREEN SKIP.SELECTION-SCREEN BEGIN OF BLOCK type WITH FRAME TITLE text-t01.SELECTION-SCREEN BEGIN OF LINE.PARAMETERS ext RADIOBUTTON GROUP thr.SELECTION-SCREEN COMMENT 4(15) text-c08 FOR FIELD int.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN BEGIN OF LINE.PARAMETERS int RADIOBUTTON GROUP thr.SELECTION-SCREEN COMMENT 4(15) text-c07 FOR FIELD ext.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN END OF BLOCK type.SELECTION-SCREEN BEGIN OF BLOCK pre WITH FRAME TITLE text-t06.SELECTION-SCREEN BEGIN OF LINE.PARAMETERS vn RADIOBUTTON GROUP slv.SELECTION-SCREEN COMMENT 4(15) text-c09 FOR FIELD vn.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN BEGIN OF LINE.PARAMETERS bp RADIOBUTTON GROUP slv.SELECTION-SCREEN COMMENT 4(17) text-c10 FOR FIELD bp.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN END OF BLOCK pre.SELECTION-SCREEN END OF SCREEN 103.

SELECTION-SCREEN BEGIN OF TABBED BLOCK uno FOR 20 LINES.SELECTION-SCREEN TAB (15) name1 USER-COMMAND ucomm1DEFAULT SCREEN 101.SELECTION-SCREEN TAB (17) name2 USER-COMMAND ucomm2DEFAULT SCREEN 102.SELECTION-SCREEN TAB (23) name3 USER-COMMAND ucomm3DEFAULT SCREEN 103.SELECTION-SCREEN END OF BLOCK uno.

INITIALIZATION.  name1 = text-n01.

Page 20: ABAP Questions TechED

  name2 = text-n02.

name3 = text-n03.

REPORT ZSUBSCREEN.

TABLES: USR02,       "Logon data        SSCRFIELDS.  "FIELDS ON SELECTION SCREENS*---------------------------------------------------------------* SUBSCREEN 1*---------------------------------------------------------------SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-010.   SELECT-OPTIONS: USERNAME FOR USR02-BNAME.SELECTION-SCREEN END OF BLOCK B1.SELECTION-SCREEN END OF SCREEN 100.

*---------------------------------------------------------------* SUBSCREEN 2*---------------------------------------------------------------SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-020.   SELECT-OPTIONS: LASTLOGI FOR USR02-TRDAT.SELECTION-SCREEN END OF BLOCK B2.SELECTION-SCREEN END OF SCREEN 200.

*---------------------------------------------------------------* SUBSCREEN 3*---------------------------------------------------------------SELECTION-SCREEN BEGIN OF SCREEN 300 AS SUBSCREEN.SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-030.   SELECT-OPTIONS: CLASSTYP FOR USR02-CLASS.SELECTION-SCREEN END OF BLOCK B3.SELECTION-SCREEN END OF SCREEN 300.

* STANDARD SELECTION SCREEN FOR SCROLLING LEFT AND RIGHTSELECTION-SCREEN: FUNCTION KEY 1,                  FUNCTION KEY 2.

SELECTION-SCREEN: BEGIN OF TABBED BLOCK SUB FOR 15 LINES,                  END OF BLOCK SUB.

START-OF-SELECTION.    SELECT * FROM USR02 WHERE BNAME IN USERNAME                          AND ERDAT IN LASTLOGI                          AND CLASS IN CLASSTYP.       WRITE: / 'User ', USR02-BNAME,                'Last Login Date ', USR02-TRDAT,                'Last Login Time ', USR02-LTIME,                'CLASS ', USR02-CLASS.    ENDSELECT.END-OF-SELECTION.

INITIALIZATION.* SCREEN ICON LEFT AND RIGHT  SSCRFIELDS-FUNCTXT_01 = '@0D@'.  SSCRFIELDS-FUNCTXT_02 = '@0E@'.

Page 21: ABAP Questions TechED

  SUB-PROG = SY-REPID.  SUB-DYNNR = 100.

AT SELECTION-SCREEN.  CASE SY-DYNNR.

    WHEN 100.      IF SSCRFIELDS-UCOMM = 'FC01'.        SUB-DYNNR = 300.      ELSEIF SSCRFIELDS-UCOMM = 'FC02'.        SUB-DYNNR = 200.      ENDIF.

    WHEN 200.      IF SSCRFIELDS-UCOMM = 'FC01'.        SUB-DYNNR = 100.      ELSEIF SSCRFIELDS-UCOMM = 'FC02'.        SUB-DYNNR = 300.      ENDIF.

    WHEN 300.      IF SSCRFIELDS-UCOMM = 'FC01'.        SUB-DYNNR = 200.      ELSEIF SSCRFIELDS-UCOMM = 'FC02'.        SUB-DYNNR = 100.      ENDIF.

  ENDCASE.