Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Sample assignments with code for training purpose

ChandrashekharMahajan
Active Contributor
0 Likes
3,573

Hello All,

could anybody send me some sample ABAP assignments with code for training purpose. the assignments should include data retrival from more than 2-3 tables, loop-read (medium processing logic) and display logic (simple ALV, grid etc)...

i required it urgently...please send me the sample assignments on my email id at

cmmahajan@gmail.com

points will be rewarded...

Regards,

Chandra

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,533

hi chandar ,

hope u can try using this program....which will help u learn on ALV display using 2-3 tables...

<u><b>YOUR AIM</b></u>

Design a Report that would take display all the Sales Order between 2 dates. When the user double clicks on a sales order the report would then display additional details on that Sales Order.

<b>Description:</b>

1)Use Select Options for the range of dates (VBAK-ERDAT).

2)Display the fields

<b>

Document No.

Creation User Name

Creation Date

Customer Name</b>

for the Report from the Sales Document Header (VBAK). Customer name can be found in table (KNA1).

<b>WHEN DCUMENT NO. IS DOUBLE CLICKED DISPLAY THE FOLLOWING FIELDS :

Material No

Material Description.

Batch Number.

Item type</b>

from the Sales Document Item (VBAP). Material Description can be found in table (MAKT).

The program should handle exceptions and display proper error message where required.

<u><b>SAMPLE CODE</b></u>

REPORT sales_report NO STANDARD PAGE HEADING .

TABLES : vbak .

<u><b>STRUCTURE DECLARATION</b></u>

TYPES : BEGIN OF st_vbak ,

vbeln TYPE vbak-vbeln ,

ernam TYPE vbak-ernam ,

erdat TYPE vbak-erdat ,

name1 TYPE kna1-name1 ,

END OF st_vbak .

TYPES : BEGIN OF st_vbap ,

matnr TYPE vbap-matnr ,

maktx TYPE makt-maktx ,

charg TYPE vbap-charg ,

posar TYPE vbap-posar ,

END OF st_vbap .

<b>INTERNAL TABLE & WORK AREA</b>

DATA : it_vbak TYPE TABLE OF st_vbak ,

wa_vbak TYPE st_vbak ,

it_vbap TYPE TABLE OF st_vbap ,

wa_vbap TYPE st_vbap .

<b>

TOP-OF-PAGE .</b>

WRITE :4 sy-vline .

WRITE AT 5(125) sy-uline.

WRITE :130 sy-vline .

WRITE :/4 sy-vline ,

10 DOCUMENT NO ,

39 sy-vline ,

40 USER NAME

69 sy-vline ,

70 DATE

89 sy-vline ,

90 CUSTOMER NAME,

130 sy-vline.

WRITE :/130 sy-vline .

WRITE AT 5(125) sy-uline.

WRITE :4 sy-vline ,130 sy-vline .

<b>TOP-OF-PAGE DURING LINE-SELECTION .</b>

WRITE :4 sy-vline .

WRITE AT 5(125) sy-uline.

WRITE :130 sy-vline .

WRITE :/4 sy-vline ,

10 MATERIAL NO.,

39 sy-vline ,

40 MATERIAL DESCRIPTION

69 sy-vline ,

70 BATCH NUMBER

89 sy-vline ,

90 ITEM TYPE

130 sy-vline.

WRITE :/130 sy-vline .

WRITE AT 5(125) sy-uline.

WRITE :4 sy-vline ,

130 sy-vline .

SELECT-OPTIONS put_date FOR vbak-erdat .

AT LINE-SELECTION .

PERFORM select_and_write_vbap .

START-OF-SELECTION.

PERFORM sales_document .

END-OF-SELECTION.

FORM select_and_write_vbap .

SELECT

vbap~matnr

makt~maktx

vbap~charg

vbap~posar

FROM ( vbap INNER JOIN makt ON vbapmatnr = maktmatnr )

INTO CORRESPONDING FIELDS OF TABLE IT_VBAP

WHERE vbap~vbeln = wa_vbak-vbeln AND spras = 'EN' .

IF sy-subrc EQ 0 .

LOOP AT it_vbap INTO wa_vbap .

WRITE :/4 sy-vline ,

10 wa_vbap-matnr ,

39 sy-vline ,

40 wa_vbap-maktx ,

69 sy-vline ,

70 wa_vbap-charg ,

89 sy-vline ,

90 wa_vbap-posar ,

130 sy-vline .

ENDLOOP.

WRITE :/4 sy-vline.

WRITE AT 5(125) sy-uline.

WRITE 130 sy-vline.

ELSE .

MESSAGE s000(zginni) .

ENDIF .

ENDFORM . "select_vbap

FORM sales_document .

IF put_date-low IS INITIAL AND put_date-high IS NOT INITIAL .

SELECT

vbak~vbeln

vbak~ernam

vbak~erdat

kna1~name1

FROM ( kna1 INNER JOIN vbak ON vbakkunnr = kna1kunnr ) INTO

CORRESPONDING FIELDS OF TABLE IT_VBAK

WHERE vbak~erdat <= put_date-high.

IF sy-subrc EQ 0 .

PERFORM looping_wa_vbak .

ELSE .

MESSAGE s000(zginni) .

ENDIF .

ENDIF .

IF put_date-low IS NOT INITIAL AND put_date-high IS INITIAL .

SELECT vbeln

vbak~ernam

vbak~erdat

kna1~name1

FROM ( kna1 INNER JOIN vbak ON vbakkunnr = kna1kunnr ) INTO

CORRESPONDING FIELDS OF TABLE IT_VBAK

WHERE vbak~erdat EQ put_date-low .

IF sy-subrc EQ 0 .

PERFORM looping_wa_vbak .

ELSE .

MESSAGE s000(zginni) .

ENDIF .

ENDIF .

IF put_date-high IS INITIAL AND put_date-low IS INITIAL .

MESSAGE s000(zginni) .

ELSE .

SELECT

vbak~vbeln

vbak~ernam

vbak~erdat

kna1~name1

FROM ( kna1 INNER JOIN vbak ON vbakkunnr = kna1kunnr ) INTO

CORRESPONDING FIELDS OF TABLE IT_VBAK

WHERE vbak~erdat BETWEEN put_date-low AND put_date-high.

IF sy-subrc EQ 0 .

PERFORM looping_wa_vbak .

ELSE .

MESSAGE s000(zginni) .

ENDIF .

ENDIF .

ENDFORM .

FORM looping_wa_vbak .

LOOP AT it_vbak INTO wa_vbak .

WRITE :/4 sy-vline ,

10 wa_vbak-vbeln .

<b> HIDE wa_vbak-vbeln .

WRITE: 39 sy-vline ,

40 wa_vbak-ernam ,

69 sy-vline ,

70 wa_vbak-erdat ,

89 sy-vline ,

90 wa_vbak-name1 ,

130 sy-vline .</b>

ENDLOOP.

WRITE :/4 sy-vline.

WRITE AT 5(125) sy-uline .

WRITE 130 sy-vline.

ENDFORM.

<b>

USING AT LINE SELECTION EVENT AND THE HIDE STAEMENT THE REPORT CAN BE MAD INTERACTIVE</b>

hope this assignment helps u

reward points if useful

Ginni

4 REPLIES 4
Read only

ChandrashekharMahajan
Active Contributor
0 Likes
1,532

Could anybody help me on this

Read only

Former Member
0 Likes
1,532

HI Chandra shekar..

If you have SAP system then go through

<b>ABAPDOCU transcation</b> which contain all the ABAP Examples

adn go to SE 80 Transaction and give package as

<b>BC400,bc410,bc420,bc470</b>,in these you can find so many sample programs just go through those

RegardsRk

Read only

Former Member
0 Likes
1,532

hi chandra sekar

tcode:abapdocu

& in se 80, view all the pgms in SLIS package for alv pgms

fyi, never type anything as urgent.

regds

kiran

Read only

Former Member
0 Likes
1,535

hi chandar ,

hope u can try using this program....which will help u learn on ALV display using 2-3 tables...

<u><b>YOUR AIM</b></u>

Design a Report that would take display all the Sales Order between 2 dates. When the user double clicks on a sales order the report would then display additional details on that Sales Order.

<b>Description:</b>

1)Use Select Options for the range of dates (VBAK-ERDAT).

2)Display the fields

<b>

Document No.

Creation User Name

Creation Date

Customer Name</b>

for the Report from the Sales Document Header (VBAK). Customer name can be found in table (KNA1).

<b>WHEN DCUMENT NO. IS DOUBLE CLICKED DISPLAY THE FOLLOWING FIELDS :

Material No

Material Description.

Batch Number.

Item type</b>

from the Sales Document Item (VBAP). Material Description can be found in table (MAKT).

The program should handle exceptions and display proper error message where required.

<u><b>SAMPLE CODE</b></u>

REPORT sales_report NO STANDARD PAGE HEADING .

TABLES : vbak .

<u><b>STRUCTURE DECLARATION</b></u>

TYPES : BEGIN OF st_vbak ,

vbeln TYPE vbak-vbeln ,

ernam TYPE vbak-ernam ,

erdat TYPE vbak-erdat ,

name1 TYPE kna1-name1 ,

END OF st_vbak .

TYPES : BEGIN OF st_vbap ,

matnr TYPE vbap-matnr ,

maktx TYPE makt-maktx ,

charg TYPE vbap-charg ,

posar TYPE vbap-posar ,

END OF st_vbap .

<b>INTERNAL TABLE & WORK AREA</b>

DATA : it_vbak TYPE TABLE OF st_vbak ,

wa_vbak TYPE st_vbak ,

it_vbap TYPE TABLE OF st_vbap ,

wa_vbap TYPE st_vbap .

<b>

TOP-OF-PAGE .</b>

WRITE :4 sy-vline .

WRITE AT 5(125) sy-uline.

WRITE :130 sy-vline .

WRITE :/4 sy-vline ,

10 DOCUMENT NO ,

39 sy-vline ,

40 USER NAME

69 sy-vline ,

70 DATE

89 sy-vline ,

90 CUSTOMER NAME,

130 sy-vline.

WRITE :/130 sy-vline .

WRITE AT 5(125) sy-uline.

WRITE :4 sy-vline ,130 sy-vline .

<b>TOP-OF-PAGE DURING LINE-SELECTION .</b>

WRITE :4 sy-vline .

WRITE AT 5(125) sy-uline.

WRITE :130 sy-vline .

WRITE :/4 sy-vline ,

10 MATERIAL NO.,

39 sy-vline ,

40 MATERIAL DESCRIPTION

69 sy-vline ,

70 BATCH NUMBER

89 sy-vline ,

90 ITEM TYPE

130 sy-vline.

WRITE :/130 sy-vline .

WRITE AT 5(125) sy-uline.

WRITE :4 sy-vline ,

130 sy-vline .

SELECT-OPTIONS put_date FOR vbak-erdat .

AT LINE-SELECTION .

PERFORM select_and_write_vbap .

START-OF-SELECTION.

PERFORM sales_document .

END-OF-SELECTION.

FORM select_and_write_vbap .

SELECT

vbap~matnr

makt~maktx

vbap~charg

vbap~posar

FROM ( vbap INNER JOIN makt ON vbapmatnr = maktmatnr )

INTO CORRESPONDING FIELDS OF TABLE IT_VBAP

WHERE vbap~vbeln = wa_vbak-vbeln AND spras = 'EN' .

IF sy-subrc EQ 0 .

LOOP AT it_vbap INTO wa_vbap .

WRITE :/4 sy-vline ,

10 wa_vbap-matnr ,

39 sy-vline ,

40 wa_vbap-maktx ,

69 sy-vline ,

70 wa_vbap-charg ,

89 sy-vline ,

90 wa_vbap-posar ,

130 sy-vline .

ENDLOOP.

WRITE :/4 sy-vline.

WRITE AT 5(125) sy-uline.

WRITE 130 sy-vline.

ELSE .

MESSAGE s000(zginni) .

ENDIF .

ENDFORM . "select_vbap

FORM sales_document .

IF put_date-low IS INITIAL AND put_date-high IS NOT INITIAL .

SELECT

vbak~vbeln

vbak~ernam

vbak~erdat

kna1~name1

FROM ( kna1 INNER JOIN vbak ON vbakkunnr = kna1kunnr ) INTO

CORRESPONDING FIELDS OF TABLE IT_VBAK

WHERE vbak~erdat <= put_date-high.

IF sy-subrc EQ 0 .

PERFORM looping_wa_vbak .

ELSE .

MESSAGE s000(zginni) .

ENDIF .

ENDIF .

IF put_date-low IS NOT INITIAL AND put_date-high IS INITIAL .

SELECT vbeln

vbak~ernam

vbak~erdat

kna1~name1

FROM ( kna1 INNER JOIN vbak ON vbakkunnr = kna1kunnr ) INTO

CORRESPONDING FIELDS OF TABLE IT_VBAK

WHERE vbak~erdat EQ put_date-low .

IF sy-subrc EQ 0 .

PERFORM looping_wa_vbak .

ELSE .

MESSAGE s000(zginni) .

ENDIF .

ENDIF .

IF put_date-high IS INITIAL AND put_date-low IS INITIAL .

MESSAGE s000(zginni) .

ELSE .

SELECT

vbak~vbeln

vbak~ernam

vbak~erdat

kna1~name1

FROM ( kna1 INNER JOIN vbak ON vbakkunnr = kna1kunnr ) INTO

CORRESPONDING FIELDS OF TABLE IT_VBAK

WHERE vbak~erdat BETWEEN put_date-low AND put_date-high.

IF sy-subrc EQ 0 .

PERFORM looping_wa_vbak .

ELSE .

MESSAGE s000(zginni) .

ENDIF .

ENDIF .

ENDFORM .

FORM looping_wa_vbak .

LOOP AT it_vbak INTO wa_vbak .

WRITE :/4 sy-vline ,

10 wa_vbak-vbeln .

<b> HIDE wa_vbak-vbeln .

WRITE: 39 sy-vline ,

40 wa_vbak-ernam ,

69 sy-vline ,

70 wa_vbak-erdat ,

89 sy-vline ,

90 wa_vbak-name1 ,

130 sy-vline .</b>

ENDLOOP.

WRITE :/4 sy-vline.

WRITE AT 5(125) sy-uline .

WRITE 130 sy-vline.

ENDFORM.

<b>

USING AT LINE SELECTION EVENT AND THE HIDE STAEMENT THE REPORT CAN BE MAD INTERACTIVE</b>

hope this assignment helps u

reward points if useful

Ginni