Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 23

1) how to create a custom table

say zdept
say zemp
client dependent tables: mandt -- dataelement = mandt , data type = clnt , lengt
h = 3
dataelement
index
*9)What are the types of repository objects in abap?
a)executable programs
b)Include programs
c)Module pool programs
d)Function group.
e)subroutine pool.
f)Interface pool
g)class pool
h)type pool
i)XSLT programs

2)client independent tables and client independent


There are 2 types of tables in sap
a)Client Dependant table
b)Client Independent table.
Client Dependent table:If the table contains a client field then it is called cl
ient dependent table. The records in these tables are specific to the client.
The data type for client field is CLNT with a size of 3.
e.g table kna1. It has the client field mandt with a size of 3.
Client Independent table:If the table doesn t contain a client field then it is ca
lled client independent table.The records in these fields are not specific to an
y client. For e.g. custom tables
NOTE: IN ABAP WE CANNOT CREATE A TABLE WITHOUT PRIMARY KEY BECAUSE ALL TABLES AR
E NORMALIZED BY DEFAULT. I.E IT IS COMPULSORY TO CREATE PRIMARY KEY.

3) what are the main objects in sap abap?


Dictionary objects are used to store permanent data into the database.
They are created using the transaction codes se11.
a)tables
b)views

c)structures
d)data elements
e)domains
f)type-groups
g)search help (obsolete in 6.0 is Match codes)
h)lock objects
i)table types.
j)Foreign keys
A table is a dictionary object which is a collection of fields.It is used for st
oring the data in the form of records(rows).
SAP package contains many built-in tables related to different modules.
Every table contains a client field which ranges from 000 to 999.

4)How many primary keys can we create on a table in abap?


ans : We cannot create more than 16 primary keys.

5) What are the various data types available in abap?


Char
Clnt
Cuky
Curr
Dats
FLTP
INT4
TIMS
PREC
6)What is Data Class in abap?
Data class specifies the schema in which the table has to be stored.
The schema is a partition in the db.
The basis consultant creates a database and partitions it into 3 different schem
as.
a)Master schema
b)Transaction schema
c)Organization schema
The data class has got the following entries:
APPLO : Master Data,Transparent Tables
APPL1 : Transaction data, transparent Tables
The Size category can range from 0
0 --> 0 to 51000 records
1 --> 51000 to 200000 records

9.

7)In data class if the size category specified is from 0 to 14,000 then what hap
pens if we insert more than 14,000 records.
Ans.The memory size is automatically doubled when we try to insert more than 14,
000 records.

8) what is a view and its types?


a view represents snapshot of table. It is a virtual table. It is not stored phy
sically.
a)Database view
b)Projection view
c)Maintenance view
d)Help view.
Database View:
============
*It can be created either on a single table or multiple tables.
*It supports both projection view and selection view.
*A database view create on a single table can be read or changed mode.
* A database view created on multiple tables is always ReadOnly.
i.e in MaintainStatus Tab --> Table View Maintenance --> Display maintenance all
owed with restrictions.
i.e we cannot edit a database view created on multiple tables.
*In a database view created on multiple tables, if you don t specify the join cond
ition then the output results in an Cartesian product.i.e if table A has 9 recor
ds and table B has 11 records then total 99 records are displayed.
Projection View:
================
* It is always created on single table.It supports only projection but not selec
tion.
* It can be read and change.
Maintenance View.
===============
* It is used to create multiple views at a time.
* We can insert,delete,edit records in a maintenance view.
For a Maintenance view by default the following is set:
Delivery Class: A

Table Maint: Display/Maintenance allowed

9) A structure is a user defined data type which is a collection of different fi


elds.
The size of the structure is equal to the sum of the sizes occupied by structure
fields.
A structure can hold a single record at a given point of time.
Syntax 1:
Data : begin of <structure name>
Field1,
Field2,
Fieldn
End of <structure name>
For e.g
Data : begin of emp,
empno type i.
ename(20) type c.
end of emp.
Write : / emp-empno,
emp-ename.
Syntax 2:
Data <structure> like <existing structure>
For e.g data emp25 like emp.
This syntax only copies the fields but not the values of the previous structure.
Note: memory is automatically allocated to structure.

8)In how many ways can a table be created in sap?

A table can be created in 2 ways.


a)direct approach : we specify the fields first and domain and data element are
created later.
b)Bottom approach : First the domain and data element are created then the field
s.

IF WE CREATE TABLE WITH DIRECT APPROACH, THEN IN THE TECHNICAL SETTINGS TAB, WE
CANNOT CREATE THE SIZE CATEGORY. SO WE CANNOT ACTIVATE THE TABLE.
ALSO WE CANNOT CREATE THE PRIMARY AND FOREIGN KEY.
BUT IF WE CREATE A TABLE USING BOTTOM APPROACH THEN WE CAN ACTIVATE THE TABLE.

9)what is a data element?


ans: a data element is a dictionary object which provides the description for th
e field.
it is a reusable component.
A data element can be created either by referring to an direct data type o
r to a domain.

10)what is the exact use of data element?


ans. To establish a primary-foreign key relationship. Without it we cannot creat
e primary foreign key relationship.

11) what is a domain?


ans: A domain will contain the data type,sizes,value,range and value table. i.e
domain contains the technical properties of a field.
The data element and the domain will have the same name.
Note: The same Domain and data element can be used across several tables.
Note: If we don't want to create the data element, then we create the predefined
type. But it cannot be used across several tables.

12) In how many ways can we create data types for a field.
ans: We can create data types for fields in 2 ways a)Predefined type (Here I don
't require a domain) and b) data element(by creating
a domain)
Creating a domain is preferred because we can use it accross several tables and

also I can create primary-foreign keys.

13) Can you create a field without using Data Element and Domain?
Yes. Using Predefined Type
But they cannot be reused accross several tables and also I cannot create prima
ry-foreign keys.

14)Can you create a Data Element without using Domain?


ans : Yes using Predefined type
But they cannot be reused accross several tables.

9) example on internal table.


types : begin of ty_purchase,
ebeln
bukrs
bsart
lifnr
ekorg
ekgrp

type
type
type
type
type
type

ebeln,
bukrs,
esart,
elifn,
ekorg,
ekgrp,

end of ty_purchase.
Data : lt_pur type standard table of ty_purchase,
wa_pur type ty_purchase.
clear : lt_pur[],
wa_pur.
if lt_pur[] is initial.
select ebeln bukrs bsart lifnr ekorg ekgrp into table lt_pur[]
from ekko.
if sy-subrc eq 0.
read table lt_pur[] into wa_pur with key bsart = 'NB'.
if sy-subrc eq 0.
write : / wa_pur-ebeln,
wa_pur-bsart.
endif.

loop at lt_pur[] into wa_pur where bsart = 'NB'.


write :/ wa_pur-ebeln,
wa_pur-bukrs,
wa_pur-bsart,
wa_pur-lifnr,
wa_pur-ekorg,
wa_pur-ekgrp.
endloop.
endif.
endif.

19)what is index? where it is stored?


ans. Index is basically a table. Index is stored at database level.

20)what is the exact usage of secondary index in abap? when do we go for it.
ans: there are 2 types of secondary indexes a) unique index (doesn't allow dupl
icate values) and b) non unique index(accepts
duplicate values)
if a table does not have primary keys and if we use a where clause then a full t
able scan is performed to search the required entires.
So in such a case we create a secondary index so then we can restrict the table
entries thus improving the performance.
secondary indexes have to be created on columns which are used more often.
But creating too many primary key or secondary key indexes increases load on the
system because whenever the table contents change the indexes have to be update
d.

21)How to create a secondary index in abap?


ans : se11 --> zauthor.
assume the zauthor table has following fields
authfname.

i.e

Goto-->Indexes--> Create Index. say nme.

mandt , isbn , authlname ,

note: we can create only 3 character index


Now specify the field names : authlname , authfname

--se38
DATA : lt_author TYPE TABLE OF zauthor,
ls_author TYPE zauthor.
SELECT * INTO TABLE lt_author
FROM zauthor
%_HINTS ORACLE 'INDEX("ZAUTHOR" "ZAUTHOR~NME")'.
OR
SELECT * INTO TABLE lt_author
FROM zauthor
orderby authfname authlname.

22)Only Primary index is unique index for a table.


But a secondary index can contain duplicate entries.
there can be 16 primary indexes and 9 secondary indexes on a table.

23) I create a table and mention the primary key fields at the end or in the mid
dle? will the table activate
ans: NO. It will not activate because the primary key fields always have to be d
efined at the beginning of the table.

24) Difference between type Vs Like.


* TYPE : refers to an existing data type.
* LIKE : Like is a keyword used to copy the existing properties of an alread
y existing data object. The data type is referenced
indirectly.
for e.g data : cust like kna1 occurs 2 with header line.
data : gt_primary like lt_primary.

1-31) internal table


(VVVIMP)

-- it is a temporary table created in appln server used to temporarily store the


records.
-- data : begin of emp occurs 10,
end of emp.
This declares an internal table with header.
consider another syntax.
data : begin of emp occurs 10 with header line
end of emp.

internal tables. (always displayed on LIST PROCESSING SCREEN)


An header is like a work area or structure which can process the internal table
records.It can handle only a single record.
The body of an internal table can store multiple records.

1-32) clear : it will clear the contents of work area , individual fields and
body of internal table.
If clear stmt is applied to Body of internal table, then all re
cords of Body are cleared but this does not clear the work
area.
for e.g clear ls_emp , clear lt_emp[] , clear p_empno.
refresh : it deletes all the records from the body and retains the last r
ecord in the header.
it can be applied only to internal table.
The statements clear lt_emp[] and refresh lt_emp[] achieve the
same output.
append :

it adds the record from the header to the end of the internal t

able
loop
:
it will read the current record from the body and place the sam
e into the header.
read
ork area)

it will read the current record from the body into the header(w
read TABLE lt_dept into ls_dept INDEX 3.
read TABLE lt_dept into ls_dept WITH KEY deptno = 101 BINARY SE

ARCH.

read table lt_emp into ls_emp where deptno = ls_dept-deptno.

Move :
It checks for the data types . The two structures or internal
tables can have different field names but data types should
be
same.
Move-Corresponding : It only checks for fieldnames and not the data type. If
the field names match then it copies the data also.
It is suggested not to use Move-Corresponding due to the
following reasons.
a)It decreases the performance because each field of sou
rce structure is compared with all the fields of the
target structure.
This comparison is a time consuming process.
b)It may lead to run-time errors because it only checks
for the field names but not for the data types.
consider the following example
MOVE-CORRESPONDING emp to dept. "emp is source struct
ure and dept is target structure

Delete adjacent duplicates : deletes duplicate entries from the internal ta


ble
for example:
delete ADJACENT DUPLICATES FROM lt_itab[].

WRITE stmt : it always refers to the header area.


Index of internal table always starts from 1.
In internal data --pass by reference
- data : cust like kna1 occurs 0 with header line.

1-33) how to read the first and last record from the internal table?

sort lt_emp empno ascending.


read table lt_emp into ls_emp index 1. "<--- this gives the first record.
Now to find the last record.
consider the following example.
DATA: itline TYPE i.
DATA: BEGIN OF it1 OCCURS 10,
key1(10),
key2(10),
a TYPE i,
END OF it1.
it1-key1 = '10001'.
it1-key2 = '20002'.
it1-a = 250.
APPEND it1 TO it1.
it1-key1 = '30003'.
it1-key2 = '40004'.
it1-a = 300.
APPEND it1 TO it1.
DESCRIBE TABLE it1 LINES itline.
READ TABLE it1 into it1 INDEX itline.
WRITE: / it1-key1, it1-key2, it1-a.
output : 30003 40004 300

standard internal tables : *


---------------------*
*
*
*
sorted internal table:
---------------------

uses linear search and binary search


we cannot define unique keys
explicit sort statement is required.
records are read based on the index.
WE USE APPEND

* supports linear search and binary search


* explicit use of sort stmt not required
* we have to use 'insert' statement instead of app

end
* while defining the sorted internal table we must
specify unique / non unique key.
If the unique key is specified, duplicate entrie
s will not be stored even if they are inserted.
================================================
===============================================
data : lt_dept TYPE SORTED TABLE OF ty_dept WITH
UNIQUE key deptno. "cannot insert duplicate records
data : lt_dept TYPE SORTED TABLE OF ty_dept WITH
NON-UNIQUE key deptno,dname. "can insert duplicate records.

hashed internal table:


ary search.
--------------------nd

* supports only linear search. doesn't support bin


* we have to use 'insert' statement instead of appe
* we cannot use the option NON-UNIQUE KEY while def

ining the internal table


* since records are searched based on key, indexing
is slower when compared to sorted table.
=================================================
=======================================
* while defining the hashed internal table we must
specify unique key option.

*hashed tables always run a full table scan because


entries are not sorted and each key is compared.
--------------------------------------------------------------------------------------------------* for e.g the following stmts will throw error if u
sed with hashed table.
read table lt_emp into ls_emp index 2. "ERROR be
cause indexing is not supported in hash table
read table lt_emp into ls_emp WITH KEY deptno = 1
01 BINARY SEARCH "ERROR
BUT THE FOLLOWING STATEMENT IS SUPPORTED WITH HAS
HED TABLE.
read table lt_emp into ls_emp with key empno = 67
89

1-34)FOR ALL ENTRIES :


For all entries statement is used between database
table and internal table provided there exists one
field in common between db table and internal table
.
THE ADVANTAGE OF USING "FOR ALL ENTRIES" IS THAT WE NEED NOT CREATE AN EXPLICIT
WORK AREA.
consider the following example:
select vbeln posnr matnr netwr FROM vbap INTO CORRESPONDING FIE
LDS OF TABLE lt_vbap[]
FOR ALL ENTRIES IN lt_vbak[]
where vbeln = lt_vbak-vbeln.

advantage :
carded.

In the resultset if there are duplicate records then they are dis

Disadvantage : If the internal table in FOR ALL ENTRIES IN < ITAB> is empty th
en all rows of the database table are returned.
If there are internal table in FOR ALL ENTRIES IN < ITAB> conta
ins a large number of records then this results in
performance issue.

1-35) Difference between insert and insert accepting duplicate keys.


For e.g insert <tablename> from Table <itab[]>. This stmt generates a runtime er
ror if a record already exists with the same key.
But insert zemp from Table lt_emp[] accepting duplicate keys statement will n
ot generate a runtime error but simply set the value of sy-subrc to 4.

1-36) Difference between modify and insert. (IT IS ALWAYS SUGGESTED TO USE MODI
FY INSTEAD OF INSERT)
a) Insert stmt only inserts record into the database. But if a record with the s
ame key already exists then it generates a run time error.
Modify stmt inserts record into the database and also updates existing records
with the same key.
example on inserting 5th record in internal table.
types : BEGIN OF nametab,
slno type i,
name(30) type c,
END OF nametab.
DATA : itab_emp TYPE STANDARD TABLE OF nametab,
wa_emp TYPE nametab.
wa_emp-slno = 56.
wa_emp-name = 'radha'.
INSERT wa_emp INTO itab_emp[] INDEX 3.

1-37) Difference between modify stmt and modify with transporting option.
ans : When we use modify stmt without transporting keyword then all fields of w
orkarea is compared with every corresponding row of
internal table.

But using transporting keyword with modify stmt eliminates this drawback
.
for e.g

modify lt_cust from ls_cust transporting mgr


MODIFY lt_comp FROM <fs> TRANSPORTING compaddr

1-38) What are the difference between select option & ranges ?
(IMP)
--select-options implicitly creates an internal table with the fields SIGN , OP
TION , LOW , HIGH.
But While using RANGES keyword we must explicitly create an internal table.
-- select-options we require to create a work area explicitly.
RANGES keyword also we require to explicitly create an work area.
for e.g in case of select-options keyword.
Tables emp. "AN WORK AREA IS EXPLICITLY CREATED
select-options so_empno for zemp-empno.
append sp_empno.
NOTE: SIGN [ e (exlcusive) , i (inclusive) ]. Default is I.

for e.g in case of RANGES keyword.


TABLES YTXLFA1.
RANGES: VENDOR FOR YTXFLA1-LIFNR.
begin of bukrs occurs 0,
SIGN(1)
type c,
OPTION(2) type c,
LOW
like bukrs,
HIGH
like bukrs,
end of bukrs.
http://www.sapdev.co.uk/tips/tips_range.htm

1-39) difference between select single and select upto 1 row.


(VVIMP)

select single:
-------------as told by chandra , it will the db directly and put all records into work area
only once.
UNLIKE SELECT UPTO 1 ROW, IT WILL NOT ACT AS A LOOP.

-- It retrieves the first record which matches the condition in where clause. IF
THE WHERE CLAUSE RESULTSET CONSIST OF MULTIPLE RECORDS ONLY THE FIRST RECORD IS
RETRIVED WHICH MAY NOT BE UNIQUE.
-- used in conjunction with work area only and not with internal table.
-- Where clause is mandatory.
-- cannot use order by clause.
for e.g select SINGLE deptno dname country city
from ydept
into CORRESPONDING FIELDS OF ls_customer
where deptno = p_deptno.
select . upto 1 row
-----------------as told by chandra it works like a loop.
if u say select upto 1 row, then it will hit the db and put the records in work
area and again it will hit the db . it works like a loop.
-- it will scan all the records and then display the record which satisfies the
condition.
-- Where clause is not mandatory. But while using the where clause unlike select
single , it will apply any ordering , aggregate or grouping functions.
-- we can use orderby clause.
PERFORMANCE WISE IT IS SUGGESTED TO USE SELECT UPTO N ROWS .

1-40) will the following statement work?


select single * from mara where matnr = '<some material number>'.
ans: No. we explicitly need to define work area by using the TABLES statement.

consider the correct scenario:


Tables : mara
select single * from mara where matnr = '<some material number>'.
NOTE: WHEN WE USE select-options keyword also then we need to use explicit work
area by defining TABLES statement.

1-41) Joins in abap.


In abap there are only two types of joins a)Inner join b)left outer join.
Inner join:
==========
In inner join if the corresponding row is not available in base table B then at
output that row is completely ignored.
select carrname connid INTO TABLE lt_flight[]
FROM scarr as c
INNER JOIN spfli as p
on p~carrid = c~carrid.

Left Outer Join:


===============
In left outer join if the corresponding row in base table B has no values then a
t output, the row is filled with zeros and NULLS.
here field carrid is primary key field.
SELECT s~carrid carrname connid INTO TABLE lt_flight[]
FROM scarr as s
left OUTER JOIN spfli as p
on s~carrid = p~carrid
and p~cityfrom = p_cityfr.

1-46) How to create foreign key in abap?


---------------------------------ans :
a)create table A with primary key say zdeptno
b)create table B . Table B should contain zdeptno.

Now inside Table B, position the mouse on field deptno and click Foreign Key
button.
check table --> Table A
Then click on generate proposal.
Then add for Table B , select zdeptno

Now in domain zdeptno of Table B, go to Value Range Tab --> Value Table --> Tab
le A.

15)What are the modularization techniques in abap?


ans. subroutines
Includes
function modules
macros

subroud
1-57-a)subroutine
: A subroutine is a block which consists of statements whi
ch can be repeated. A subroutine has to be defined only
once and can be called 'N' number of times.
A subroutine can be defined with / without parameters.

1-57) what is the keyword used to pass parameters to subroutines?


ans : USING keyword

1-57) subroutine and subroutine pool


ans:
There are 2 types of subroutines.
a)Internal subroutine
b)External subroutine
internal subroutine : Perform <subroutine Name>

external subroutine : they are defined in the subroutine pool and they can be ca
lled externally from the external programs.
A subroutine pool is a repository object which is a collection of one or more ex
ternal subroutines.

1-57) How do we return multiple values from subroutine?


ans: CHANGING keyword
perform add using p_x p_y changing res1 res2.

subroutine pool
1-57) subroutine pool is created under se38 and it is a collection of subrouti
nes.

example on creating subroutine.


================================
parameters : p_x type i,
p_y type i.
data : z type i.
start-of-selection.
perform abc.
write : / 'Value of z after subroutine call is ',z.
Form abc .
z = p_x + p_y.
endform.

2a)Passing parameters to subroutines.


PARAMETERS: p_x TYPE i,
p_y TYPE i.
START-OF-SELECTION.
PERFORM abc USING p_x p_y. "actual parameters
FORM abc USING

P_X "formal parameters


P_Y.

WRITE : / p_x,
p_y.
ENDFORM.

4a)Returning multiple values from subroutine. (Internal subroutine)


NOTE: WE MUST USE THE CHANGING KEYWORD.
=======================================
parameters : p_x type i default 670 obligatory,
p_y type i default 670 obligatory.
data : res1 type i,
res2 type i.
perform add using p_x p_y changing res1 res2.
write : / 'Addition Is',res1 left-justified.
write : / 'Multiplication Is',res2 left-justified.
form add using x y changing z1 z2.
z1 = x + y.
z2 = x * y.
endform.

**7a) Passing internal tables as parameters to subroutines.


parameters : p_land1 type kna1-land1.
types : begin of ty_kna1,
kunnr type kna1-kunnr,
land1 type kna1-land1,
name1 type kna1-name1,
end of ty_kna1.
data : lt_kna1 type STANDARD TABLE OF ty_kna1.
PERFORM Mysub TABLES lt_kna1 USING p_land1.
describe table lt_kna1.
write :/ 'No of records after subroutine call',sy-tfill.
FORM Mysub TABLES
USING

GT_KNA1
I_LAND1.

IF i_land1 is NOT INITIAL.


select kunnr land1 name1
from kna1
into table GT_KNA1

where land1 = I_LAND1.


endif.
ENDFORM.

" Mysub

1-27) performance tuning in sap abap


OR
You are running a report and it is taking a long time for execution . what
steps will u do to reduce the execution time?
ans : -- switch on buffering if uing custom tables
-- minimize the number of loops
-- avoid using order by clause
-- avoid extra joins
-- use FOR ALL ENTRIES
-- avoid using Move-Corresponding statement
-- do not call function module inside loop statements.
-- do not sue nested loops.

10) function modules with example.


FUNCTION MODULES:
=================
-->when we create a function module under an function group we get an message sa
ying "Function Module is reserved for
sap".It means that the function module is unique to every client system i.e i
t is client independent.
-->By default when we create an function module then it is Normal function modul
e.
-->BY DEFAULT IN ABAP, PARAMETERS TO FUNCTION MODULES PARAMETERS ARE PASSED BY R
EFERENCE.
=============================================================================
========

-->The parameters defined in fn.module are importing parameters which become exp
orting parameters in the program.
Similarly the exporting parameters become importing parameters in the program
.
-->The EXPORT TAB can export 'N' no. of parameters.

Function modules are of types:


a)Normal Function modules.
b)Remore function modules.
Normal function Module:
By default these are client independent.i.e a function module created in one cli
ent can be accessed from any of the other clients within the same server.
Remote Function Module:
They can be called remotely from the server.
23b)What is function group?
A function group is a repository object which is a collection of different types
of objects like include prgms,function modules,subroutines,modules,screens,dict
ionary objects etc.
Whenever a new function group is created two include programs will be created.
a)Include ending with TOP : It is used for global declarations.
b)Include ending with UXX :It is a collection of sub includes.
Whenever a function module is created inside a function group,a sub include will
be generated for every function module.
Each sub include is a pointer to the function module.
Syntax for calling Normal Remote Function module:
==================================================
Call function <function module> [parameter list].
Syntax for defining functional modules.
Function <function module>.
Statements.
Endfunction.

1)Create a fn.module which accepts 2 inputs and performs addition,multiplication


,division and subtraction.
Note: before creating a fn.module we must create a fun.group.
How to create a package and then function group:?
=================================================

tcode se80 --> select package from dropdownlist --> provide name --> press enter
button --> then click YES
similary create a function group from the above tcode.
every function module needs to be placed inside a function group.

tcode -- se37
IMPORT TAB:
---------Parameter Name: i_x
i_y
Type spec:

Type

Associated Type : I
EXPORT TAB:
---------Parameter Name: e_add
e_sub
e_div
e_mult
Type spec:

Type
Type
Type
Type

Associated Type : I
I
I
I
save and activate the function module. If u want u can test it with dummy data.
se38
parameters : p_x type i,
p_y type i.
data : add type i,
sub type i,
div type i,
mult type i.
"Click on Pattern button in Application Tool Bar
CALL FUNCTION 'YFUNC_MODULE'
EXPORTING

I_X
I_Y
IMPORTING
E_ADD
E_SUB
E_DIV
E_MULT
write
write
write
write

:
:
:
:

/
/
/
/

= p_x
= p_y
=
=
=
=

add
sub
div
mult.

'Addition Is', add left-justified.


'Subtraction Is', sub left-justified.
'Division Is', div left-justified.
'Multiplication Is', mult left-justified.

The parameters defined in fn.module are importing parameters which become export
ing parameters in the program.
Similarly the exporting parameters inside the fun.module become importing parame
ters in the program.
NOTE: SO WHAT IS THE SIGNATURE OF THE FN. MODULE.?
IT IS 2 IMPORT PARAMETERS AND 4 EXPORT PARAMETERS.

11)

You might also like