Difference between SAP ABAP apps and SAP UI5/FIORI apps
In case of SAP ABAP apps, almost all the functionalities are executed under "Server"
so ABAP apps are technically known as "STATEFULL apps"
IN statefull apps, server will be busy and overloaded , so performance is degraded.
_________________________________________________________________________________
In case of SAP UI5/FIORI apps, almost 95% functionalities are executed under "Client"( BROWSER )
so SAP UI5/FIORI apps are technically known as "STATELESS apps"
IN Stateless apps, server will be free and not overloaded , so we can expect "BEST PERFORMANCE"
____________________________________________________________________________________
SAP ABAP SAP UI5/FIORI
________________________________________________________________________
Statefull apps Stateless apps
Performance is average/poor Performance is better/best
Desktop/laptops DESKTOPS/LAPTOPS/TABLETS/MOBILE devices
GUI based screens Browser based Screens( supports all browsers )
ABAP screens are "heavy weight screens" UI5/FIORI screens are "LIGHT Weight
Screens"
( they consume more memory , more time to load ) ( they consume less memory , less time to load )
15 screen elements 150 screen elements
doesnot support website features supports all website features
( for ex : audio/video integration )
ABAP screens are poor in appearance UI5/FIORI screen are high class in appearance
( bcoz Ui5/FIORI supports CSS cascading style
sheets )
ABAP Apps are mainly suitable for INTRANET UI5/FIORI apps are suitable for INTRANET +
INTERNET
Architecture:
ODATA Services: main purpose is to implement "DATABASE functionality"
ODATA Services are of 3 types
1. OData ABAP Service -> performs Database operations with SAP ECC/CRM/SRM/SCM
2. Odata HANA service -> performs Database operations with SAP HANA
3. odata External Service->performs Database operations with non-SAP
SAP UI5: is a framework used for developing Custom Front-end apps with website features
and these SAP Ui5 Apps can consume/access all types of ODATA Services
to deal with Database functionality
SAP FIORI: is a package with collection of standard front-end apps for "common business activities"
approve/reject Purchase order -----> SAP FIORI app -> internally developed using UI5 + ODATA
approve/reject Timesheet -----> SAP FIORI app -> internally developed using UI5 + ODATA
approve/reject Leave REquest -----> SAP FIORI app -> internally developed using UI5 + ODATA
check price & availability -----> SAP FIORI app -> internally developed using UI5 + ODATA
create sales order -----> SAP FIORI app -> internally developed using UI5 + ODATA
change sales order -----> SAP FIORI app -> internally developed using UI5 + ODATA
Tracking sales Order -----> SAP FIORI App -> internally developed using UI5 + ODATA
Tracking Purchase Order -----> SAP FIORI APP -> internally developed using UI5 + ODATA
etc...etc...
There are more than 500 standard FIORI apps ( developed internally using SAP Ui5 + ODATA )
Note: As developer, we can develop custom Front-end Apps and we can enhance standard Front-end
Apps and we can develop OData services
_____________________________________________________________________________________
SAP UI5 custom Front-end apps can consume all types of OData services
SAP FIORI standard front-end app can consume all types of Odata Services bcoz SAP FIORI is internally
based on SAP UI5
SAP OData Services:
The purpose of OData Service is to implement "Database functionality"
There are mainly 3 types of OData Services
1. OData ABAP service -> interact with Backend systems ( SAP ECC/CRM/SRM/SCM )
2. Odata HANA service -> interact with Backend System ( SAP HANA )
3. Odata External Service -> interact with Backend System ( non-SAP )
OData ABAP service
OData ABAP services are mainly executed under SAP NetWeaver Gateway Component with Database
operation ( SELECT, INSERT , DELETE , UPDATE )
SAP Netweaver Gateway support two formats mainly
a) XML FORMAT
b) JSON FORMAT ( prefered bcoz it is light weight format )
from Front-end if we indicate format with xml , then
SAP NetWeaver Gateway component will hold the data under ENTITYSET in XML format
<empid> 1001 </empid>
<name> vijay </name>
<age> 34 </age>
<empid> 1002 </empid>
<name> suman</name>
<age> 35 </age>
<empid> 1003 </empid>
<name> ajay </name>
<age> 36 </age>
__________________________________________________________________
from front-end if we indicate format with json , then
SAP netweaver Gateway will hold data under ENTITYSET in JSON format
{ empid : 1001,
name : vijay,
age : 34
{ empid : 1002,
name : suman,
age : 35
{ empid : 1003,
name : ajay,
age : 36
____________________________________________________________________
Advantage of OData Services:
OData Services are independent of Front-end app's
i,e
ODATA Services can be accessed in various front-end app's like SAP Ui5 , SAP FIORI, .NET , PHP ,etc...
OData Services can be "re-usable"
_____________________________________________________________________
ODATA ABAP services will be developed under SEGW Tcode ( TRANSACTIOn CODE )
SEGW -> SAP Netweaver Gateway Service BUilder tool
______________________________________________________________________
ODATA ABAP service Project
Every Odata ABAP service Project contains mainly
1. Data Model
2. Service Implementation
3. Runtime Artifacts
4. Service Maintenance
Data Model
Entity Type: is an option to maintain collection of fields with data Type and length
Entity TYpe is similar to STRUCTURE in NORMAL ABAP
Entity: is an option to hold single record at a time
ENTITY is similar to WORKAREA in NOrmal ABAP
Entity Set: is an option to hold collection of records
ENTITYSET is similar to INTERNAL TABLE in NOrmal ABAP
Association: is the relationship between two Entity TYpes
Association Set: is the relationship between Two Entity Sets
Note: under Single Odata Project, we can create any Number of Entity TYpes, ENTITYSETs
Service Implementation: mainly contains "CRUD Methods"
SAP UI5/FIORI ODATA Service
_____________________________________________________________________________________
create -------> Create_ENTITY( ) method -> C -> INSERT statement
bindElement --------> GET_ENTITY( ) method -> R -> SELECT Query ( 0/1 )
bindRows/bindItems----> GET_ENTITYSET( ) method -> R -> SELECT QUERY ( 0/1/N )
update ------> UPDATE_ENTITY( ) method -> U -> UPDATE statement
remove -------> DELETE_ENTITY( ) method -> D -> DELETE statement
Note: The above methods are technically known as "CRUD methods"
_____________
RUNTIME Artifacts:
Runtime Artifacts mainly contains Runtime Classes ( which are autogenerated )
_MPC -> Model Provider Class ( ***** )
_MPC_EXT -> Model Provider Extension Class
_DPC -> Data Provider Class
_DPC_EXT -> Data PRovider Extension Class ( ***** )
_SRV -> REGISTERED SERVICE
_MDL -> REGISTERED MODEL
__________________________________________________________________________
Service Maintainence
_____________________
Error log -> to trace/find out errors occured during service execution
Gateway Client -> temporary screen to test OData Service functionality
Register -> To register odata service under SAP NW Gateway
_______________________________________________________________________________
______________________________________________________________