You are on page 1of 33

SAP ABAP Training

By: Hamad Ahmad


SAP ABAP Trainer
Table of Contents for 4th Week
Su Decision Control Statements
01

Su String Manipulation
02

Su SIMPLE CLASSICAL REPORT


03
6th Week Session Goals
• STRING OPERATION – COMPARE • Operands / Variables  • Simple Classical Report
• Contains Only • String Manipulation • Data Declaration
• Contains Not only • Concatenating String Fields • Value Assignment
• Contains Any • Condensing Character Strings • Output Positioning
• Contains Not Any • Finding the Length of a String • Formatting
• Contains String • Searching for Specific Characters • Write variables.
• contains No String • The SHIFT statement
• Contains Pattern • Splitting Character Strings
• contains No Pattern • SubFields / OFFSET

Decision Control
1st Day STRING OPERATION 2nd Day SIMPLE CLASSICAL REPORT 3rd Day
Statements
Relational operators

Relational operators
Below are the list of relational operators for character-like data types -
--------------------------------------------------
CO [Contains Only]
True when operand1 only contains characters from operand2. It is case-sensitive
and trailing blanks are respected in both operands.
CN [Contains Not Only]
True when a logical expression with CO is false, that is, if operand1 contains not
only characters from operand2.
CA [Contains Any]
True, when operand1 contains at least one character from operand2. It is case-
sensitive and trailing blanks are respected in both operands. DATA res TYPE string VALUE 'SAP ABAP PROGRAM'.
NA [Contains Not Any]
True, when a logical expression with CA is false, that is if operand1 does not IF 'GRA' CO res.
contain any characters from operand2. WRITE :/ 'Success', sy-FDPOS. " Success -> sy-fdpos = strlen ( 'GRA' )
CS [Contains String] ELSE.
True, when the content of operand2 is contained in operand1. It is not case- WRITE :/ 'Failure', sy-FDPOS.
sensitive and trailing blanks in the left operand are respected. ENDIF.
NS [Contains No String] ULINE.
True, when a logical expression with CS is false, i.e., if operand1 does not contain IF 'GRAPX' CO res.
the content of operand2. WRITE :/ 'Success', sy-FDPOS.
CP [Covers Pattern] ELSE.
True, when the content of operand1 fits the pattern in operand2. WRITE :/ 'Failure', sy-FDPOS. " Failure-> sy-fdpos = offset position of X
NP [No Pattern] ENDIF.
True, when a logical expression with CP is false, i.e., if operand1 does not fit the
pattern operand2.
"LINK: https://sapcodes.com/2015/11/17/string-operation-compare/
--------------------------------------------------
Roll Numbers Roll No.
ABAP-E-3-2-110
Student Name
Muhammad Nawaz
ABAP-E-3-2-259 Asma Shahzad
ABAP-E-3-2-459 Hamza Qayoom
ABAP-E-3-2-144 Muhammad Ismail Zia
ABAP-E-3-2-37 Adeel Saeed
ABAP-E-3-2-343 Saad Mehmood
ABAP-E-3-2-159 Muhammad Awais Aleem
ABAP-E-3-2-168 Muhammad Ayub
ABAP-E-3-2-452 Muhammad Farooq
ABAP-E-3-2-191 Arslan Mazhar
ABAP-E-3-2-451 Waqar Hussain Shahid
ABAP-E-3-2-197 Danish Gul
ABAP-E-3-2-340 Qayyum Ahsan
ABAP-E-3-2-254 Hafiz Muhammad Abubkar
ABAP-E-3-2-397 Umar Farooq
ABAP-E-3-2-398 Mateen Munir
ABAP-E-3-2-400 Fahad Khalid
ABAP-E-3-2-401 Zain ulabdeen
ABAP-E-3-2-357 Muhammad Abubakar Saeed
ABAP-E-3-2-377 Aniya Raees
ABAP-E-3-2-413 Abdul Ahad
ABAP-E-3-2-204 Muhammad Ubaidullah
ABAP-E-3-2-418 Hassan Zulfiqar
ABAP-E-3-2-349 Syed Zia Ud Din Ahmed
ABAP-E-3-2-407 Wajid Yousaf
Roll Numbers Roll No.
ABAP-M-2-1-12
Student Name
Muhammad Jhanzaib
ABAP-M-2-1-208 Taimur Ul Hassan Ghouri
ABAP-M-2-1-294 Maryam Arshad
ABAP-M-2-1-310 Faisal Yasin
ABAP-M-2-1-461 Malik Omer
ABAP-M-2-1-1 Syed Ali Mubashar Kazmi
ABAP-M-2-1-85 Mughees Ahmed Mirza
ABAP-M-2-1-9 Sher Ali
ABAP-M-2-1-31 Muhammad Hamid
ABAP-M-2-1-35 Umer Munir
ABAP-M-2-1-447 Kamil Humayun Mirza
ABAP-M-2-1-148 Nadeem Saleem
ABAP-M-2-1-332 Usman Anwar
ABAP-M-2-1-43 Hafiz Muhammad Ishtiaq
ABAP-M-2-1-47 Zain Khawar
ABAP-M-2-1-50 Hamza Amjad
ABAP-M-2-1-52 Muhammad Raza Liaqat
ABAP-M-2-1-62 Hassan Arif
ABAP-M-2-1-82 Rizwan Saeed Khawaja
ABAP-M-2-1-226 Usama Azeem
ABAP-M-2-1-211 Muhammad Faizan Razzaq
ABAP-M-2-1-104 Safi Ur Rehman
ABAP-M-2-1-84 Hafiz Muhammad Naveed
ABAP-M-2-1-330 Muhammad Sumair
ABAP-M-2-1-395 Muhammad Hussain
For feedback, please write at

academy@exdnow.com

Thank you!

*To download application forms, kindly click the below link;


https://cloud.exdnow.com/s/k4Fb52tZfiMf4x5
SAP ABAP Training
By: Hamad Ahmad
SAP ABAP Trainer
Table of Contents for 4th Week
Su Decision Control Statements
01

Su String Manipulation
02

Su SIMPLE CLASSICAL REPORT


03
6th Week Session Goals
• STRING OPERATION – COMPARE • Operands / Variables  • Simple Classical Report
• Contains Only • String Manipulation • Data Declaration
• Contains Not only • Concatenating String Fields • Value Assignment
• Contains Any • Condensing Character Strings • Output Positioning
• Contains Not Any • Finding the Length of a String • Formatting
• Contains String • Searching for Specific Characters • Write variables.
• contains No String • The SHIFT statement
• Contains Pattern • Splitting Character Strings
• contains No Pattern • SubFields / OFFSET

Decision Control
1st Day STRING OPERATION 2nd Day SIMPLE CLASSICAL REPORT 3rd Day
Statements
String Manipulation

String Operations:
Like many other programming languages, ABAP provides the
functionality to interrogate and manipulate the data held in character
strings. This section will look at some of the popular statements which
ABAP provides for carrying out these functions:

Types of Format:
DATA res TYPE string VALUE 'SAP ABAP PROGRAM'.
--------------------------------------------------
Concatenating String Fields IF 'GRA' CO res.
Condensing Character Strings WRITE :/ 'Success', sy-FDPOS. " Success -> sy-fdpos = strlen ( 'GRA' )
ELSE.
Finding the Length of a String
WRITE :/ 'Failure', sy-FDPOS.
Searching for Specific Characters ENDIF.
The SHIFT statement ULINE.
IF 'GRAPX' CO res.
Splitting Character Strings
WRITE :/ 'Success', sy-FDPOS.
Sub-Fields ELSE.
-------------------------------------------------- WRITE :/ 'Failure', sy-FDPOS. " Failure-> sy-fdpos = offset position of X
ENDIF.
STRING OPERATIONS
Operation Description Syntax
DATA: s1(10) VALUE 'Hello', s2(10) VALUE 'ABAP', s3(10) VALUE 'World',
Used to join two or more strings to form a third string. result1(30), result2(30).
SEPERATED BY Clause used to separate the strings by a specified delimiter.
CONCATENATE CONCATENATE s1 s2 s3 INTO result1.
"sy-subrc" identifies whether the concatenate was successful or not. If "sy-subrc" is zero, CONCATENATE s1 s2 s3 INTO result2 SEPARATED BY '-'.
then concatenate successful. Otherwise, concatenate not successful.
WRITE / result1. WRITE / result2.
Used to delete the space characters. DATA: SPACED_NAME(35) TYPE C
Leave only one-character space in between the characters. VALUE 'Mr. Hamad Ahmad'.
CONDENSE SPACED_NAME.
CONDENSE NO-GAPS is optional and used to remove all spaces in between the characters.
"sy-subrc" identifies whether the replace was successful or not. If "sy-subrc" is zero, then TRANSLATE SPACED_NAME TO UPPER CASE. " capitalized text
replace successful. Otherwise, replace not successful. WRITE SPACED_NAME.
Used to replace the characters. DATA: string(30) VALUE 'SAP ABAP Development',
REPLACE replaces the matching first instances of string. str(10) VALUE 'World'.
REPLACE REPLACE 'Development' WITH str INTO string.
"sy-subrc" identifies whether the replace was successful or not. If "sy-subrc" is zero, then
WRITE:/ string.
replace successful. Otherwise, replace not successful.
DATA: string(30) VALUE 'SAP ABAP Development',
str(10) VALUE 'ABAP'.
Used to run searches in character strings. Two system variables are used for search. SEARCH string FOR str.
"sy-subrc" identifies whether the search was successful or not. If "sy-subrc" is zero, then IF sy-subrc = 0.
SEARCH WRITE:/ 'Found'.
search successful. Otherwise, search not successful.
ELSE.
"sy-fdpos" is set to the position of the character string searched if the search is suc¬cessful. WRITE:/ 'Not found'.
ENDIF.
Used to move the string content to left or right. DATA: V_VALUE(20) TYPE C VALUE '00000123'.
If no addition to the SHIFT statement, the system by default shift every-thing just one
SHIFT character to the left and leaving one space to the right. SHIFT V_VALUE LEFT DELETING LEADING '0'.
The CIRCULAR addition to the SHIFT statement to move shift everything just one character WRITE V_VALUE.
to the left and the character deleted from left places at the right end.
Used to split the string content into two or more fields. DATA: s1(10), s2(10), s3(10), source(20) VALUE 'abc-def-ghi'.
SPLIT "sy-subrc" identifies whether the split was successful or not. If "sy-subrc" is zero, then split SPLIT source AT '-' INTO s1 s2 s3.
successful. Otherwise, split not successful. WRITE:/ 'S1 - ', s1. WRITE:/ 'S2 - ', s2. WRITE:/ 'S3 - ', s3.
DATA: V_VALUE(20) TYPE C VALUE 'SAP ABAP'. DATA: V_LENGHT(20) TYPE C.
To find the length of a string, a function rather than a statement is used.
STRING LENGTH V_LENGHT = Strlen( V_VALUE ).
Link for Reference: http://www.saptraininghq.com/10-must-know-sap-abap-character-string-coding-techniques/
WRITE V_LENGHT.
String Manipulation

CONCATENATE :
CONCATENATE – Combines 2 or more strings into one string.

If the concatenated string fits in the result string, then the system
variable sy-subrc is set to 0. If the result has to be truncated then sy-
subrc is set to 4.

Note: If the destination field is shorter than the overall length of the
input fields, the char­acter string will be truncated to the length of the DATA: s1(10) VALUE 'Hello',
destination field, so ensure when using the CONCATENATE statement, s2(10) VALUE 'ABAP',
s3(10) VALUE 'World',
the string data type is being used, as these can hold over 65,000 result1(30),
characters. result2(30).

CONCATENATE s1 s2 s3 INTO result1.


Note: that the text has been aligned to the left, as it is using data CONCATENATE s1 s2 s3 INTO result2 SEPARATED BY '-'.
type c. Also, the code did not include the SEPARATED BY addition, and
WRITE / result1.
so the words have been concatenated without spaces. This can be WRITE / result2.
added, and spaces will appear in the output:
String Manipulation

CONDENSE :
CONDENSE statement. Often an ABAP program will have to deal
with large text fields, with unwanted spaces. The CONDENSE
statement is used to remove these blank characters.

The CONDENSE statement will remove the blank spaces between


words in the variable, leaving only 1 character’s space:

NO-GAPS :
DATA: SPACED_NAME(35) TYPE C VALUE 'Mr. Hamad Ahmad'.
An optional addition to the CONDENSE statement is NO-GAPS, which CONDENSE SPACED_NAME.
as you may guess, removes all spaces from our variable.
TRANSLATE SPACED_NAME TO UPPER CASE. " capitalized text
WRITE SPACED_NAME.

TRANSLATE :
If UPPER is specified, all lowercase letters of the data object text are
translated to uppercase. If LOWER is specified, all uppercase letters
are translated to lowercase.
String Manipulation

Find the Length of a String:


Strlen ( )

To find the length of a string, a function rather than a statement is


used.

The code to find the length of the ‘V_VALUE’ field and display it in the
‘V_LENGHT field appears like this, with “strlen” defining the function.

DATA: V_VALUE(20) TYPE C VALUE 'SAP ABAP'.


DATA: V_LENGHT(20) TYPE C.

V_LENGHT = Strlen( V_VALUE ).

WRITE V_LENGHT.
String Manipulation

Replace :
Created the variable field and define length.

Note: If no TYPE has been defined, so the system will use the default
type, c:

Some text is then moved into the field after which the REPLACE
statement is used to replace the comma with a period:

DATA: string(30) VALUE 'SAP ABAP Development',


str(10) VALUE 'World'.

REPLACE 'Development' WITH str INTO string.

WRITE:/ string.
String Manipulation

Search :
Next, a look will be taken at searching for specific character strings
within fields. Unsur­prisingly, the statement SEARCH is used for this.

Note that here no variable has been declared to hold the result. In the
case of the SEARCH statement, two system variables are used. The
first is “sy-subrc”, which identifies whether the search was successful
or not, and the second is “sy-fdpos”, which, if the search is suc­cessful,
is set to the position of the character string searched. DATA: string(30) VALUE 'SAP ABAP Development',
str(10) VALUE 'ABAP'.
"sy-subrc" identifies whether the search was successful or not. If "sy- SEARCH string FOR str.
IF sy-subrc = 0.
subrc" is zero, then search successful. Otherwise, search not WRITE:/ 'Found'.
successful. ELSE.
WRITE:/ 'Not found'.
ENDIF.
"sy-fdpos" is set to the position of the character string searched if the
search is successful.
String Manipulation

Shift :
The SHIFT statement is a simple statement that allows one to move the contents of
a character string left or right, character by character. In this example, a field’s
contents will be moved to the left, deleting leading zeros.

Using the SHIFT statement, then, the 4 zeros which begin this character string will
be re­moved, and the rest moved across to the left. Type the statement SHIFT, fol­
lowed by the field name. Define that it is to be shifted to the left, deleting leading
zeros (don’t forget the help screen can be used to view similar additions which can
be added to this statement). Then include a WRITE statement so that the result of
the SHIFT statement can be output. To the right of the number here, there will be
four spaces, which have re­placed the leading zeros:
DATA: V_VALUE(20) TYPE C VALUE '00000123'.
If no addition to the SHIFT statement is specified, the system will by default move
every­thing just one character to the left, leaving one space to the right: SHIFT V_VALUE LEFT DELETING LEADING '0'.

The CIRCULAR addition to the SHIFT statement will cause, by default, everything to WRITE V_VALUE.
move one space to the left again, but this time the character which is displaced at
the beginning of the statement will reappear at the end, rather than leaving a blank
space:
String Manipulation

Split :
The SPLIT statement is used to separate the contents of a field into
two or more fields. Observe the code:

Used to split the string content into two or more fields.


"sy-subrc" identifies whether the split was successful or not. If "sy-
subrc" is zero, then split successful. Otherwise, split not successful.

DATA: s1(10), s2(10), s3(10), source(20) VALUE 'abc-def-ghi'.

SPLIT source AT '-' INTO s1 s2 s3.


WRITE:/ 'S1 - ', s1. WRITE:/ 'S2 - ', s2. WRITE:/ 'S3 - ', s3.
String Manipulation

SubFields:
Within ABAP, you have the option of referring to specific characters
within a field. This is referred to as processing subfields, whereby a
specific character’s position within its field is referenced. Again,
observe the code.
DATA:
Then, the field telephone_num is to be filled with 12 characters of the int_mobile_num(16) TYPE C,
country_code(3) TYPE C,
int_mobile_num field, starting after the 4th character. The +4 part of telephone_num(12) TYPE C.
the code here refers to where the field is to begin. Then we have
WRITE statements for both of the fields. int_mobile_num = '+92-0321-9499877'.
country_code = int_mobile_num(3).
telephone_num = int_mobile_num+4(12).
Subfields are regularly used in SAP to save time on creating
unnecessary variables in memory. It is just as easy to use the subfield WRITE:
/ 'Country Code', country_code,
syntax. / 'Mobile Number', telephone_num.

telephone_num+2(2) = '22'.
telephone_num+5(7) = '0000000'.

ULINE.
WRITE / telephone_num.
Roll Numbers Roll No.
ABAP-E-3-2-110
Student Name
Muhammad Nawaz
ABAP-E-3-2-259 Asma Shahzad
ABAP-E-3-2-459 Hamza Qayoom
ABAP-E-3-2-144 Muhammad Ismail Zia
ABAP-E-3-2-37 Adeel Saeed
ABAP-E-3-2-343 Saad Mehmood
ABAP-E-3-2-159 Muhammad Awais Aleem
ABAP-E-3-2-168 Muhammad Ayub
ABAP-E-3-2-452 Muhammad Farooq
ABAP-E-3-2-191 Arslan Mazhar
ABAP-E-3-2-451 Waqar Hussain Shahid
ABAP-E-3-2-197 Danish Gul
ABAP-E-3-2-340 Qayyum Ahsan
ABAP-E-3-2-254 Hafiz Muhammad Abubkar
ABAP-E-3-2-397 Umar Farooq
ABAP-E-3-2-398 Mateen Munir
ABAP-E-3-2-400 Fahad Khalid
ABAP-E-3-2-401 Zain ulabdeen
ABAP-E-3-2-357 Muhammad Abubakar Saeed
ABAP-E-3-2-377 Aniya Raees
ABAP-E-3-2-413 Abdul Ahad
ABAP-E-3-2-204 Muhammad Ubaidullah
ABAP-E-3-2-418 Hassan Zulfiqar
ABAP-E-3-2-349 Syed Zia Ud Din Ahmed
ABAP-E-3-2-407 Wajid Yousaf
Roll Numbers Roll No.
ABAP-M-2-1-12
Student Name
Muhammad Jhanzaib
ABAP-M-2-1-208 Taimur Ul Hassan Ghouri
ABAP-M-2-1-294 Maryam Arshad
ABAP-M-2-1-310 Faisal Yasin
ABAP-M-2-1-461 Malik Omer
ABAP-M-2-1-1 Syed Ali Mubashar Kazmi
ABAP-M-2-1-85 Mughees Ahmed Mirza
ABAP-M-2-1-9 Sher Ali
ABAP-M-2-1-31 Muhammad Hamid
ABAP-M-2-1-35 Umer Munir
ABAP-M-2-1-447 Kamil Humayun Mirza
ABAP-M-2-1-148 Nadeem Saleem
ABAP-M-2-1-332 Usman Anwar
ABAP-M-2-1-43 Hafiz Muhammad Ishtiaq
ABAP-M-2-1-47 Zain Khawar
ABAP-M-2-1-50 Hamza Amjad
ABAP-M-2-1-52 Muhammad Raza Liaqat
ABAP-M-2-1-62 Hassan Arif
ABAP-M-2-1-82 Rizwan Saeed Khawaja
ABAP-M-2-1-226 Usama Azeem
ABAP-M-2-1-211 Muhammad Faizan Razzaq
ABAP-M-2-1-104 Safi Ur Rehman
ABAP-M-2-1-84 Hafiz Muhammad Naveed
ABAP-M-2-1-330 Muhammad Sumair
ABAP-M-2-1-395 Muhammad Hussain
For feedback, please write at

academy@exdnow.com

Thank you!

*To download application forms, kindly click the below link;


https://cloud.exdnow.com/s/k4Fb52tZfiMf4x5
SAP ABAP Training
By: Hamad Ahmad
SAP ABAP Trainer
Table of Contents for 4th Week
Su Decision Control Statements
01

Su String Manipulation
02

Su SIMPLE CLASSICAL REPORT


03
6th Week Session Goals
• STRING OPERATION – COMPARE • Operands / Variables  • Simple Classical Report
• Contains Only • String Manipulation • Data Declaration
• Contains Not only • Concatenating String Fields • Value Assignment
• Contains Any • Condensing Character Strings • Output Positioning
• Contains Not Any • Finding the Length of a String • Formatting
• Contains String • Searching for Specific Characters • Write variables.
• contains No String • The SHIFT statement
• Contains Pattern • Splitting Character Strings
• contains No Pattern • SubFields / OFFSET

Decision Control
1st Day STRING OPERATION 2nd Day SIMPLE CLASSICAL REPORT 3rd Day
Statements
CLASSICAL
REPORT
REPORT Z_FIRST_WEEK.

TYPES: t_name(11) type c,


t_age(2) type n,
t_dob type datum.

DATA: fname type t_name,


age type t_age,
lname type t_name,
dob type t_dob,
education type c length 5 VALUE 'MCS'.

fname = 'HAMAD'.
age = '28'.
lname = 'AHMAD'.
dob = '19921106'.

WRITE: (15) 'First name' COLOR 3 CENTERED,


15(15) 'Last Name' COLOR 3 CENTERED,
30(15) 'Age' COLOR 3 CENTERED,
45(15) 'Date of Birth' COLOR 3 CENTERED,
60(15) 'Education' COLOR 3 CENTERED.

WRITE: /(15) fname CENTERED, Classical Report


15(15) lname CENTERED,
30(15) age CENTERED, (see the above Code). Observe the
45(15) dob CENTERED,
60(15) education CENTERED. code and test in your program.

Assignment

Create the Same program with at least


5 rows.
Roll Numbers Roll No.
ABAP-E-3-2-110
Student Name
Muhammad Nawaz
ABAP-E-3-2-259 Asma Shahzad
ABAP-E-3-2-459 Hamza Qayoom
ABAP-E-3-2-144 Muhammad Ismail Zia
ABAP-E-3-2-37 Adeel Saeed
ABAP-E-3-2-343 Saad Mehmood
ABAP-E-3-2-159 Muhammad Awais Aleem
ABAP-E-3-2-168 Muhammad Ayub
ABAP-E-3-2-452 Muhammad Farooq
ABAP-E-3-2-191 Arslan Mazhar
ABAP-E-3-2-451 Waqar Hussain Shahid
ABAP-E-3-2-197 Danish Gul
ABAP-E-3-2-340 Qayyum Ahsan
ABAP-E-3-2-254 Hafiz Muhammad Abubkar
ABAP-E-3-2-397 Umar Farooq
ABAP-E-3-2-398 Mateen Munir
ABAP-E-3-2-400 Fahad Khalid
ABAP-E-3-2-401 Zain ulabdeen
ABAP-E-3-2-357 Muhammad Abubakar Saeed
ABAP-E-3-2-377 Aniya Raees
ABAP-E-3-2-413 Abdul Ahad
ABAP-E-3-2-204 Muhammad Ubaidullah
ABAP-E-3-2-418 Hassan Zulfiqar
ABAP-E-3-2-349 Syed Zia Ud Din Ahmed
ABAP-E-3-2-407 Wajid Yousaf
Roll Numbers Roll No.
ABAP-M-2-1-12
Student Name
Muhammad Jhanzaib
ABAP-M-2-1-208 Taimur Ul Hassan Ghouri
ABAP-M-2-1-294 Maryam Arshad
ABAP-M-2-1-310 Faisal Yasin
ABAP-M-2-1-461 Malik Omer
ABAP-M-2-1-1 Syed Ali Mubashar Kazmi
ABAP-M-2-1-85 Mughees Ahmed Mirza
ABAP-M-2-1-9 Sher Ali
ABAP-M-2-1-31 Muhammad Hamid
ABAP-M-2-1-35 Umer Munir
ABAP-M-2-1-447 Kamil Humayun Mirza
ABAP-M-2-1-148 Nadeem Saleem
ABAP-M-2-1-332 Usman Anwar
ABAP-M-2-1-43 Hafiz Muhammad Ishtiaq
ABAP-M-2-1-47 Zain Khawar
ABAP-M-2-1-50 Hamza Amjad
ABAP-M-2-1-52 Muhammad Raza Liaqat
ABAP-M-2-1-62 Hassan Arif
ABAP-M-2-1-82 Rizwan Saeed Khawaja
ABAP-M-2-1-226 Usama Azeem
ABAP-M-2-1-211 Muhammad Faizan Razzaq
ABAP-M-2-1-104 Safi Ur Rehman
ABAP-M-2-1-84 Hafiz Muhammad Naveed
ABAP-M-2-1-330 Muhammad Sumair
ABAP-M-2-1-395 Muhammad Hussain
For feedback, please write at

academy@exdnow.com

Thank you!

*To download application forms, kindly click the below link;


https://cloud.exdnow.com/s/k4Fb52tZfiMf4x5

You might also like