UI5 Training
UI5 Training
UI5 Training
on
SAP Web IDE
HTML5, CSS, Java Script, J Query, Complementary OOPS ABAP, Component JS, Routing, Manifest, Custom Controls
Latest topics covered without copy paste of code.
http://www.onlinefioritrainings.com
For more www.onlinefioritrainings.com
Start Date: 14th Feb 2018
Expected End Date: 18th Mar 2018
Weekdays 7-8 AM India time
Duration : 40+ Hours + Complementary OOPS ABAP
SAP UI5 - is a framework to develop responsive web applications. These applications can be executed on different platforms,
different browsers and devices.
Framework – Collection of libraries, library is a collection of classes, class is a collection of methods, attr, events etc.
Responsive – which adapts itself based on devices.
Webdynpro BSP M T D
Presentation
Application
S/4 HANA CRM/BW p H
Cloud App
Sap.ui.ux3 Sap.ui.table
Renderer
Sap.suite.ui.commons Sap.layout
Declaration
Code – imperative logic
Output
Clean-up
( ) - parenthesis
{ } - braces
[ ] – Bracket
D T M
1. You need to have java installed in your computer (JRE - JDK) 1.8
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2. After installation, before that if you want to check, go to run -> cmd
type command java –version
3. Download SAP WebIDE personal edition from https://tools.hana.ondemand.com/
4. After the download is done, Create a folder in D:\ (C:\) with some small name MyWebIDE
5. Copy the downloaded WebIDE PE zip file inside the above folder and right click and extract.
6. Make sure the right port and run orion.exe as Run as Administrator (do not close opened command prompt).
SAP WebIDE comes with a server, which we have to start. The default port for server is 8080.
If you’re using some local servers for java like tomcat, jboss also has port 8080 used. You have to change port no. of
your WebIDE.
localhost:8080/webide/index.html
<body>
Only what we put inside the body of
HTML is what gets displayed to user.
HTML5 versions and capabilies are managed by w3c And UI5 versions are managed SAP
HTML5 is a markup language, UI5 is a Framework.
<tagName prop=“value”>content</tagName>
HCC
WebIDE
ECC, Gateway
Exercise1 : Design a list with 5 latest topics (ABAP on HANA, LPD, Fiori, UI5, BRF), on click of the list element it should take me
to a youtube video on internet of the particular topic.
Funda fox:
In the structure of an HTML we will have wide verity of elements. If there is a need to address a particular element how can
we do that? In order to achieve this we can assign a unique id to each HTML element on page.
<tag id=“uniqueid”></tag>
Funda fox:
How to display the DOM (Tree data structure of your HTML content)
We can use F12 key on our keyboard on any browsers. We can also right click on page and say inspect element.
The window in which the DOM is displayed is known as Internet Developer toolbar/ Int. developer tools.
For more www.onlinefioritrainings.com
IDT
Elements- Will show the DOM
Console – you can try some piece of code also the errors in you code will be displayed in the console.
Source – Used to display source code, this is also use to debug the code.
Network – used to display the calls made by browser (client) to server.
<header>
<article>
<section>
<article>
<footer>
tr Th Th Th Header - thead
tr Td Td Td
tr Td Td Td Body - tbody
tr Td Td Td
tr Td Td td
<iframe href=http://onlinefioritrainings.com></iframe>
<tagName style=“prop:value;prop:value;prop:value”></tagName>
Internal CSS- the style will be applied at page level, it affects multiple element(s) together, we use a special tag in
header of html called <style>.
<style>
selector: {
prop:val;
prop:val;
prop:val
}
</style>
External CSS- CSS is applied using a ready to use CSS file, CSS by Reference.
For more www.onlinefioritrainings.com
1. Is there any specific difference between JS and HTML View.
Yes, JS view is created using Java script, HTML view is created using HTML.
2. Can We use any of the above type view to create our apps? or SAPUI5
framework is strict to only HTML View.
You can use any type of views. XML views are used instead of JS or HTML.
UI5 topics
selector {
prop: value;
prop: value;
….
}
It is subjected to change multiple elements on page provided they all share same selector.
Tagname – tagname, system will apply style on all the elements which has same tagname.
.className – identifier as . Which indicates class name
#id – apply style on element which has this id.
Responsive Web Design: An application (app) which adapts itself based on size of screen (laptop, tablet, mobile)
automatically. A responsive web design gives coherent experience throughout devices.
padding padding
margin
Html element
HTML
Html element
Element
How much width an element will occupy on screen = Width of actual element + padding + border width + margin
Is used for conditional styling. When we want to change event style on an event or condition we can use pseudo classes. In
this the css will be applied when condition/event occurs and it gets back to normal position when event goes out.
e.g. when I take mouse on to a element I want a special style.
Syntax:
Selector:Pseudo-ClassName{
….
}
Fundafox:
JS stands for Java Script. It is a scripting language. A language which consists of functions and libraries built on top of
programming language. JS is the browser programming language.
We can implement the looping, conditioning and all verity of imperative logic using JS.
Types of JS ?
Client Side JS – The code executes completely on client side (browser, mobile) of users. It is fast. E.g. to build rich UI
applications like UI5, Fiori, HTML based web apps.
Server Side JS – The code is executed on server side. E.g. node JS, XSJS. Purpose is to read data from db, sending emails,
orchestration logic, control flow logic.
Events: When user interact with your UI, he/she will perform actions (click, select, mouse down, mouse hover, key press).
Whenever an action is triggered, the browser will generate an event.
if a click action happens onclick event gets triggered.
Funda fox:
JS is case sensitive e.g. if we use Document it wont work. Right word is document
Every statement in js ends semi-column (;)
Nami-convension in js always follows camel case. If a work is made of 2 words, the first letter is small and next
consecutive letter of second word is caps.
iloveindia - iLoveIndia
spidermanishere spidermanIsHere
We don’t need to explicitly provide data types for variable declaration
Syntax:
var variableName = value;
0 Val1
1 Val2
2 val3
Combine Array and object – Array of Objects – JSON – Java Script Object Notation
Exercise:
Create a JSON with 5 employees inside of an array, each employee should have eName, salary, currency, companyName
http://hcp.sap.com
You can validate your json using http://jsonlint.com
1. Anonymous function – function w/o name, You can pass function as an argument or property to another function.
function(params, param){
return ..;
}
1. Named Function – Functions with name which can be referenced in code using functionName()
function functionName(params…){
return …;
}
What is an API?
Application Programming Interface
It is a class or a function which is provided by a framework on which we are creating our application.
Selectors:
.className, tagName, #id
We can now read the object of HTML (DOM Object) element using the API
Which is the object hold the object of DOM?
Document - document
Funda fox:
In js = operator means assignment and === operator means comparison.
document.getElement….. Always returns an object of HTML element
Breakpoint will only and only hit when console is open.
Add
External JS:
The JS file exist separately.
jQuery is a Java Script library. It is most widely used open source JS library. The main purpose is o “write less and do
more”
jQuery is industry standard used by major software giants like Google, Msoft, NetFlix, SAP.
$(selector).action();
Selector:
Based on tagname – tagname
Elements based on classname .className
Element based on ID #id
Action:
Ready to use function – hide, show, fadeout, fadeIn, toggle, animate
Event – click, dblclick, hover
CSS method – change the css property of a method
Fundafox:
Chaining concept
We can call multiple APIs using jQuery one after another.
$(selector).method1()
$(selector).action1()
$(selector).method1().action1();
Request
Browser Server
Response
UI5 code
(XML, JS) SAP UI5 Framework
Reuse libs (downloaded in browser)
HTML5+CSS
MVC Architecture : MVC DP is used whenever we have a UI as part of our application. This is a common practice across
industry in every framework where have UI involved.
state updates
DE IN US
FR AU UK
onInit
View
Index.html UI Framework 1
getControllerName
createContent(oCon)
UI Controls objects
Return controls;
Controller
Java Script
Model
JSON Model
XML Model
Resource Model
OData Model
When we use SAP UI5 APIs to define a new UI Control, We use SAP UI5 control APIs these are SAP UI5 control objects they
are not the HTML document objects.
document.getElementById("idBtn")
sap.ui.getCore().byId("idBtn")
sap.ui.getCore().byId("idBtn").setText("Anubhav")
document.getElementById("idBtn").setText("New Name")
How to obtain the runtime object of running application
API: sap.ui.getCore();
var oCore = sap.ui.getCore();
var oBtn = oCore.byId("idBtn");
oBtn.setText("Wow");
Whenever we have have a property for a UI control, we always have setter and getter method for every property.
for example, if a button has text property, we will have
setText() and getText() methods available to change and read text of button.
For every event at control level we also have attach, fire, deattach methods also available.
oBtn.firePress()
oBtn.attachPress(function(){alert('this is a dynamic function')})
1. To protect MVC guidelines, if a developer usage JS views then there is chance of putting processing code in view. Which
violates the MVC principle. Because XML is not a programming language, there is no way you can put processing logic in
XML views.
2. XML is the industry standard to put views in a UI based application. Must have
3. Parsing of XML in devices is faster then JS. relationship -
Composition
Association
Association concept in OOPS:
Can you build whole software with one class? Engine
1
Yes. But the code will not be modularized, it will not be reusable.
Base class 1
Plane
Parent class
Table 1
Super class Passenger
n
Should have
Concrete classes relationship -
Child classes Passenger Plane Cargo Plane Aggregation
sap.ui.core.Element
Funda Fox:
In js the inheritance is indicated using keyword called ‘extends’
If you are unable to find a property, event, method in a control, check its parent class. It may have been part of parent.
Open UI5 is subset of SAP UI5 which is free for use, it comes under open source Apache license. Anyone can use, adapt and
change the UI5 framework. However SAP UI5 is a licensed product which comes with SAP NW.
alert()
+
5 calculate
onInit: is like a constructor of a class which gets called when the controller object is created by UI5 framework. All you
initialization code can be placed inside this method. E.g. creating local client side model, initializing variables, handling route
matched handler…
onExit: is like destructor of a class which gets called when the object of class is destroyed. Any kind of clean-up code can be
placed inside of the method.
onBeforeRendering: this methods is called multiple times. Before every time view is displayed to user. Purpose : some UI
changes which want to do before UI is displayed. Compare this with PBO. E.g. setting some default values, make some ui
changes which are visible to user…
onAfterRendering: this method is called multiple times, after the view is displayed. Jquery effect, css changes we want to do
we can do in this method.
sap.ui.controller(“path of Controller”, {
});
-- Load Dependency of some reuse components
jQuery.sap.require(“”);
sap.ui.define(
);
https://stackoverflow.com/questions/1335851/what-does-use-strict-do-in-javascript-and-what-is-the-reasoning-behind-it
For more www.onlinefioritrainings.com
Funda fox:
When we use JS views and want to get object of a UI5 control,
sap.ui.getCore().byId(“id of control”)
This will not work with XML views ? Why?
When we create xml view and controls inside, UI5 framework automatically changes ID of control by pre-fixing id of view
before it.
<View>
<Button id=“Anubhav”>
</View>
__view0-Anubhav
When we use XML views, we need to get the view object first and from the view object we will get the object of UI
control
this.getView().byId(“id of the control”)
<xml>
.NET ABAP
View
View Controller
View
2 ways: Method1(){
Me.x
1. Using scaffolding – only used for dependency purpose X
Me.y
2. Declare at controller level y
Super->
3. Declare inside the onInit method }
Funda fox:
When we use JS views and try to access the global variable/methods inside the controller method using this pointer, it
doesn’t work directly, because the scope of this will point to event handler not to controller.
we have to explicitly pass the object of controller to event handler so that this can point to controller object
press: [oController.Magic, oController]
Class: mvc
ViewType
JS XML JSON HTML
Library.class.strname.constantname
sap.ui.core.mvc.ViewType.XML
Exercise: Design an XML view with user name and password field and login button. When
user clicks on logon button, validate user name and password with your name and display
another view at bottom @ runtime showing a picture of smiley. sap.ui.commons
For more www.onlinefioritrainings.com
Models: Model in MVC architecture represents data. It is an object of data.
Types of Models
JSON Client Side model: because all the data which is required is behold by browser. All the data will be
XML loaded in browser when use this model. Client side models are not suitable when we have large
Resource amount of data. It is suitable when dataset is small and it doesn’t change frequently. Share data
between multiple views/controller.
Server side model: model where data is kept on server side, loaded from the server (ABAP server)
OData using request and response. Best fit for ERP applications. Data which we load from real system and
post back to system which is ERP.
Funda fox:
A model for which no name is assigned while setting the object, works as default model for app/view/control.
this.getView().setModel(oModel);
There is always one default model only and only allowed.
In order to point to named model we use > symbol. If your model name is Anubhav then we use anubhav>proppath.
anubhav
Models
veronica
Q2. When we have 2 views (XML and HTML view) pointing to same controller, then which view's Object
will we get with statement this.getView()?
Typically we have one view per controller, this is why this confusion never happen. Bydefault xml view object is
returned/
Q3. If we have 2 views (XML and HTML view) and one controller common, then to get object of HTML view
element, will we write sap.ui.getCore().byID("") OR this.getView().byID("") in controller function?
this.getView(“id of HTMLView”);
Depends, S/4HANA Cloud edition all systems are internet exposed. HCC.
https://www.youtube.com/watch?v=Cx3cXAEcnUs&list=PLcxqFaocb9WLtnq-rpXbRy5hnKECxr95G&index=7
Q7. Who validates the code changes done and checked in through GIT Repository for OpenUI5 Applications?
Q8. How do I refer to SDK Kit for previous version API (say for eg: 1.38 API) on SDK website if my project
demands to develop UI5 app on version 1.38?
https://sapui5.hana.ondemand.com/1.32.7/explored.html
Q9. In one the classes, you mentioned about unordered list to be used for aligning 3 boxes in CSS Chapter 1.
But we used CSS only to arrange elements in 3 boxes. So, can unordered list also be used?
Possible. For more www.onlinefioritrainings.com
Are there projects which demand complete customization of CSS and not using standard one
https://www.youtube.com/watch?v=ib2SvdXg7X4&list=PLqTi6EAVbKt22btaXn7KTJ4_1Rk2Sujtj
https://blogs.sap.com/2014/11/19/sapui5-pagination-in-
sapmtable-using-skip-and-top-values-of-odata-service/
$top of odata service = 50
$filter = time eq 6 month
Paging in sap ui5.
Gateway – Odata service - Paging
oneWay
View
Model (Object)
twoway
/Entity/Prop
If you want to read data inside model, you can call getProperty method and pass the path.
On the other hand if you want change the data inside model setProperty method.
Example:
Expression Binding
bindingProp = “{expression}”
bindingProp = “{= condition ? ‘return when fulfill’ : ‘doesn’t fulfill’ }”
bindingProp = “{= ${jsonprop} > 10 ? ‘return when fulfill’ : ‘doesn’t fulfill’ }”
Funda fox:
When we use expression binding or put multiple binding paths together we use a syntax in bootstrap like below
data-sap-ui-bindingsyntax="complex"
For more www.onlinefioritrainings.com
Aggregation binding:
When we bind aggregation of a control to the model entity, this becomes aggregation binding.
The path which participate in agg. Binding is known as absolute path. The children's of aggregated control also needs to be
binded with a relative path.
Exercise: Convert the JS view with binding to XML view. Find an API and remove checkbox from table.
“emptab”: [
{
“empid”:”1” /empTab/0 {empId, eName, Salary}
},
{ /empTab/1
“empid”:”2”
} Table (/empTab)
]
}
Simple Form
Exercise: Create a new column for smoker field in table element
as a checkbox. empId
eName
Fundafox: Salary
Always use element binding for master detail scenario.
Binding
1 Add data manually
2
3
4 Exercise: XML model and a JSON model, you need to put a button which
5 does switching between these two models.
6 As a result the whole table data will change between XML and JSON
7 model.
8
9 Hint:
var oTable = sap.ui.getCore().byId("idView--idTable");
oTable.bindRows("/empTab");
sap.ui.getCore().setModel(sap.ui.getCore().getModel("anubhav"));
Sleepers
Snoozers
Backbenchers
ActionPeople
https://www.youtube.com/watch?v=1KACIrCTo04&index=4&list=PLcxqFaocb9WIQJ-kptyPuiMSVWZVd2ff_
https://www.youtube.com/watch?v=aQoB9xhkvQs&index=5&list=PLcxqFaocb9WJZiAhjoR4SOzUn7t6CAmfY
https://www.youtube.com/watch?v=lYtxaGc6tOI&index=10&list=PLcxqFaocb9WIQJ-kptyPuiMSVWZVd2ff_
&sap-ui-language=hi
Fundafox:
Single entry point for all application is fiori launchpad.
Before even user see launchpad, we also have a standard logon pad for user.
View Model
Anubhav Anubhav
Oberoy
Formatter function
Binding syntax
Value : {
path: “/empstr/empId”,
formatter: ‘.objname.methodName’
}
parts: [{path:’/empStr/eName’},{path:’/empStr/surName’}]
SAP Fiori: SAP Fiori is SAP User experience guidelines. We will use sap.m library.
http://sapfioritrial.com/
UI & UX: you can change the UI but you cannot change UX. This UX is achieved by making use of SAP UI5 framework.
Advantages:
Responsive
Single access point for app Fiori applications – Fiori Launchpad
Role based
Themes
All devices, all platforms, all browsers
Co-pilot integration
Open UI5 can be used to create an app and productize
MVC based development
View 1 Controls
View2
Place in the DOM UI Controls
App Container :
The parent for all the views of your
app.
Index.html
View
App Container Object
View 1
View 2 Obj of Page Page Object
Add to DOM
UI Cont
Sap.m
{
fruits : [],
city : [],
suppliers: []
}
Name, color, type, healthben, taste, picture, availability (Available, Out of stock, Discontinued) - 25 fruits
cityName, famousfor, state - 10 cities
Name, city, contactName, phoneno, sincewhen - 15 entries
header
Item 1 sap.m.ListItemBase
Item 2
Item 3
items
..
.. sap.m.DisplayListItem sap.m.StandardListItem
Item n
sap.m.ObjectListItem sap.m.FeedListItem
sap.m.ListBase
items sap.m.ColumnListItem sap.m.CustomListItem
sap.m.InputListItem sap.m.ActionListItem
sap.m.List
Funda fox:
When we are inside of event handler method accessing the event object (oEvent) we get directly obtain the object who
raised that event by oEvent.getSource();
Exercise: transfer the selected fruit from list control to second view using elementBinding Concept.
Hint: bind element with second view object and change the binding path with relative to the binded path inside of second
view.
Element binding
SimpleForm List
(/empTab/0)
{empId} /items Element
binding
View
{eName} /fruits/0
/fruits/1
{ /fruits/2
Name:””, /fruits/3
Type:””,
Image:””
}
Call asyc.
Main Method
Call method2()
ListBase
Table
Exercise: Change the color of status of each supplier based on below rules
Rule Color
Available Green
Not good quality Orange
Obsolete Red
What is the single entry point for all your Fiori Application for end user?
SAP Fiori Launch pad.
An application which has the Component.js file inside is known as “fiori-like app”. We are just trying to kill the dependency
from index.html file. We can index.html file for local testing.
Funda fox:
There is always one Root Component.js for one Fiori Application. Which exist at root folder level.
The name of the file has to be Component.js
Typically it exist at root folder level
sap.ui.define([“sap/ui/core/UIComponent”], function(Component){
return Component.extend(“path”, {
metadata: {},
init: function(){},
destroy: function(){},
createContent: function(){}
});
});
Component.js
Index.html
+
Manifest.json
Component splitApp - ironman
App.view.xml
Container
masterPages
Main.view.xml
Master
{
//fiori app version and details like directory of i18n, title and desc, dataSource
“sap.app”: {},
//relevant for dependencies on theme, devices..
“sap.ui”:{},
//Routing and configuration, starting view details,models, SAP UI5 lib
“sap.ui5”:{
//notation format to create your view objects.
Manifest
https://openui5.hana.ondemand.com/1.34.0/docs/guide/be0cf40f61184b358b5faedaec98b2da.html
https://help.sap.com/doc/saphelp_nw751abap/7.51.0/de-DE/74/038a52dcd7404e82b38be6d5fb1458/frameset.htm
Fundafox:
If you want to create your view object using manifest declaration, You must not use createContent method of Component.js.
Every single state of UI has to be a route path.
For more www.onlinefioritrainings.com
By far with the help of router, i solved followings
What concept do we use to make sure that the state of every single navigation is tracked by browser?
TagName (pattern) - #Trumph
Every fruit which we have a unique fruit name, i need to make the tagname also includes the fruit name so that i can make of
tagname to restore the state of UI.
#Trumph/apple
#Trumph/orange
#Trumph/banana
Permanent
Home
Button
Temp
clickMe Click Me
Click Me
Fragment
Controller 2
View 2
clickMe
Click Me
<core:Fragment name=“path”>
Consuming @ Runtime
this._oRouter.getRoute(sName);
display.fragment.xml
change.fragment.xml
Exercise: Design a input field for supplier names inside 3rd Icon tab filter, When press F4, Display the list of suppliers in a
Select dialog control. On selection of supplier it should be places in input field.
DO NOT DESIGN ONE MORE FRAGMENT. – REUSE
sap.ui.core.Control.extend(“id of control”, {
metadata: {
properties:{}, Put the definition of your custom control prop, event, agg.
aggregation:{},
events:{},
functions:{}
}, Initialize the variables of the class.
init: function(){},
renderer: function(oRm, oControl){
When someone use this control, what is the equivalent
HTML code should be send to browser.
} Talk to Object of the
browser control itself. For more www.onlinefioritrainings.com
});
Use Case: SAP UI5 doesnt offer a heading control for me, my manager asked to create a control which display as heading.
Support for press event which gets called whenever we click. There is a need to also support an additional event like mouse
over for the button (whenever user takes the mouse on to the button), it should fire an event.
sap.m.Button.extend();
Button
Can we use these custom controls in JS views as well,
if yes how.
Google
JS Code
map
My map to come
<div id=“anubhav”>
Odata,xsjs OData
ABAP
Session Application Layer >>
Application Layer
WAS
SQL
OData Service
GW_FND
S/4HANA 1610 OP
Pure Odata and UI5 Local Computer, ADT, Fiori
Remote Desktop Launchpad, HANA DB
1500 INR 2500 INR
AWS
https://www.youtube.com/watch?v=y
rk4BjXSdy8&feature=youtu.be&list=P
LcxqFaocb9WLtnq-
rpXbRy5hnKECxr95G
Request (JSON,XML)
Client Server
Response (JSON,XML)
2. OData metadata document – This gives the detailed information of how Entitysets are build. Each entityset is created by
Entity Type. Entity Types are structures of data, e.g. MaterialType has Mat no, Mat group, Mat Cat, Qty, Stock. Entity Type
also provides semantic for each property like data type, length, label. You can also enhance this metadata document
using SAP Annotation concept.
http://services.odata.org/V3/Northwind/Northwind.svc/$metadata
NWBASIC_DEMO
Format of URL
http://hostname:portno/sap/opu/odata/sap/ServiceName/EntitySet?firstparam&sec..&3rd...
20
JSON format ($format=json) DB
https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/ProductSet?$format=json
Read data chunk by chunk (select * upto 20 rows from dbtab) – Paging ($top=n, $skip=n)
https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/ProductSet?$format=json&$top=2
https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/ProductSet?$format=json&$top=2&$skip=2
https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/ProductSet?$format=json&$filter=Category eq
'Projectors‘
When we don’t want to select all columns (select col1, col2, col3... From tableName) - $select
https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/ProductSet?$format=json&$select=Name,Produ
ctID,Category
How to read data based on key (select single * from dbtab where matnr = val)
https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/ProductSet('HT-1020')?$format=json
https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/ProductSet('HT-
1020')/ToSalesOrderLineItems?$format=json
https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/SalesOrderSet('0500000000')?$format=json&$e
xpand=ToLineItems
SAP Gateway and SAP Backend are installed in one single box.
S/4 HANA 1610
BAPI_EPM_entity_operation
BP
BAPI_EPM_PRODUCT_GET_LIST – all the products Product (Customers and
BAPI_EPM_PRODUCT_GET_DETAIL – Single product detail Suppliers)
BAPI_EPM_PRODUCT_CREATE
BAPI_EPM_PRODUCT_DELETE
BAPI_EPM_PRODUCT_UPDATE
Order
Which FM i use to read all BP (Business Partners)
BAPI_EPM_BP_GET_LIST
BAPI_EPM_BP_GET_DETAIL Order Items
BAPI_EPM_BP_CREATE
Exercise: Create an Odata project with name ZDEMO_ODATA_SAMPLE, Put 2 entity sets inside the Odata ProductSet and
BusinessPartnerSet. Register the service with gateway and check if service document is displayed with Ess.
GET_ENTITYSET
GET_ENTITY
CREATE_ENTITY
UPDATE_ENTITY
DELETE_ENTITY
For more www.onlinefioritrainings.com
For (i=0....)
{
Fiori 1bn
1 Calculate expensive
}
Loop at itab
Processing logic
ABAP
1bn
1
1
Database
1 bn
HANA Cloud Connector or use your WebIDE to connect via destination in SCP
https://youtu.be/Cx3cXAEcnUs?list=PLcxqFaocb9WLtnq-rpXbRy5hnKECxr95G