Monday, March 21

SAP EP-Developing portal content and assigning permissions

In this post I shall explain content admin feature of sap enterprise portals. Main topics to be covered in this post are
Developing content and assigning permissions
Developing iviews and pages
Developing roles and worksets
Immediately after the portal is installed, content developer may be needed to develop content like iviews, pages, roles and worksets.  Once the content objects are in place,  few content admin roles can be created in portal and permission to maintain portal content objects can be given to various administrators. There is something called the access control list (ACL). ACL is a list of users and user groups mapped and a list of actions which are possible for those users or group of users. ACL is used to assign permissions to content objects in portal.
Portal can have three type of content after installation :
Content provided by SAP
Custom developed content
Business packages
SAP provides some portal content objects be default. These content objects can be modified while installation. Portal content can be seen in the portal content catalogue present in a tree structure in content admin tab.  Default administrator roles are content admin, system admin, user admin and super admin.  Super admin has the access to all the content to which content, system and user administrators have. The Super Administrator role has portal permissions for all initial portal content.
Default user roles provided by SAP areControl Center User role, Every User Core role, and Standard User role. Control centre user role has a workset called home workset. It contains iviews and pages which display things like top news, inbox, daily calendar, discussions, team rooms etc. These are daily business activities. Control Center User role requires KM components to be installed. Every user core role personalization iviews and and empty workset. Why does it have an empty home workset ? Contents from other home worksets can be merged in this empty home workset of the every user core role using merge IDs.

Using the personalization option, user can change the look and feel of portal for himself. Various personalization iviews are present in the personalization workset like portal theme,  user profile etc. The Personalization link will not appear in the portal desktop unless the user is assigned to the standard user role.

Page: Container for Iviews
A page can contain a iview or a page inside  it. The way ivies and pages are arranged in a page is called its layout. There are various types of layout provided by SAP EP. Three column layout, T layout, wide-narrow-wide layout etc. At runtime, while doing personalization, end user can chose from the layouts assigned to a page. Also end user can move containers of iviews within a page from one place to another.

Workset:  A Container for Day-to-Day Activities
Workset contains related iviews and pages. It should be designed keeping in mind the day to day activities of a user or group of users. For example, in a IT Company, the workset assigned to a project manager role should contain iviiews and pages which help him to track the attendance and performance of a project team members, it should contain iview which gives him clear picture of the growth of the project and its deadlines etc.

Role:  Enables Navigation and Personalization
Role is same as workset with the only difference that a role can be assigned to a user or a group of users. Role also allows a user or a group of users to navigate within portal. Depending upon the roles assigned to the user’s profile, he will be able to see tabs on the first level and second level menus. Also items in the detailed level menu depend upon role provided to him.
Depending on the role, pages and iviews will be visible to the user. The location of pages and iviews is also decided by the role. So if important things are there, they can be displayed in the top level menu of that role otherwise things can be moved down to navigation menu or second level menu.

Folders are used for structuring content in the portal. This type of structure is useful in delegated administration. Later on , when administrator wants to assign permissions to other administrators (ie delegate administration) , he can do so by assigning permission for few folders or  subfolders and content within that folder or subfolder.

Related Articles :


SAP EP - Standard Portal Services
Portal Eventing and Navigation
Portal Look and Feel - Branding the Portal
How to Develop Portal Applications
SAP EP-Role maintenance
SAP EP-How to make Enterprise Portal highly available
SAP Material Management Introduction
SAP EP-J2EE architechture

Friday, March 18

SAP EP-Role maintenance


What are Portal Roles?
Technically speaking, a role is a hierarchy of folders. Folders in the hierarchy contain portal content. Portal content is iviews, pages, worksets etc. Portal roles can be assigned to user or a group of users. IN an organization there are various responsibilities assigned to various people. Based on their responsibility and daily work, they are assigned roles in portal. So a market analyst would have say role 1 and a marketing executive would have another role say role 2. The content of these roles will differ from each other. Roles are created in the portal based on the requirement of the company. As a portal user I will be able to see only that content of the portal whose role is assigned to me ID in portal. So only a single portal can cater to the needs to various department employees in an organization.

As already mentioned worksets are assigned to role. So to better understand the role concepts, we must be clear with what is a workset ?
Workset is a collection of applications or information which caters to a specific activity area like controlling and budgeting.
A role is based on the organizational structure. There are managers in the organization, there are delivery heads, there are marketing executives, there are business analysts. So corresponding these roles in the organization, there are roles defined in the enterprise portal.
 Now a manager may have various responsibilities or activities to do in his/her job. These activities are modeled as worksets in the portal. Then these worksets are assigned to respective roles.  Portal content is stored in portal content directory.

Maintaining portal content
Portal content is available in portal catalog and can be maintained in portal content studio. In the content administration role, choose Content Administration -> Portal Content. Enter general properties for the new role. Enter the folder for storing the new role in the Portal Catalog. Check all properties. The new role is created and is now visible in the Role Editor. Create the role hierarchy and add content objects (roles, worksets, pages, iViews) to the role as delta link. Change the properties in the Property Editor (optional)  Objects are added to roles and worksets as delta links.

Delta Links

We can maintain relationship between portal content. In a relationship using the delta link, there are two objects, the source object and the target object. The properties of the source object are copied to the target object.
And if a change is made in the source object’s properties, they are reflected in the target object. But vice versa is not possible.


There are few points which should always be kept in my while creating roles in a portal. Please read below…

 The basic purpose of enterprise portal is to provide a single point of access to all the people and teams involved in a business. So while creating roles, all of them should be kept in mind and then roles should be decided upon. Also long term goals of the company should be kept in mind while creating roles.
Analyse what all content will the portal hold to be displayed to its users. If it mainly contains static content like standalone websites and there is not going to be any more additions, roles are not so important there.
Based on roles, navigation structure within the portal is defined. But in some scenarios, the content available to a user (ie to his role) is very large. In such cases, search functionality using TREX and SAP KM gives faster results than using the portal roles navigation and reaching the desired content.
The best person to describe what all content should be available in a role is the one to whom that role in the organization belongs to.
As a good practice not more that 8 to 10 roles should be given to a portal user. Whatever content is needed by the user of that role should be wrapped up within 8 to 10 roles. Navigation becomes a real irritant if huge number of roles are present for that user.
While creating the content of the role, key consideration should be that the user navigates to the right content be reading the description of the portal content. So the description of portal content within a role should be consistent with each other rather than being consistent with the description of the actual content.
There should not be too many levels while designing the portal roles. It becomes a real problem if the portal role structure is deep say 5 levels deep. Also each level should not have more that 10 to 12 items.
The content available in a portal role should not be repeated in other roles. This may happen as per business needs but should be avoided as much as possible. The portal roles should be planned and designed for growth and change.
The number of portal roles should be as low as possible. This will reduce total cost of ownership of the portal.
Always keep in mind to arrange the content within a portal nicely. Avoid putting huge number of menu items. It becomes difficult for a end user to find out a specific content.
Few things like favorite-style iviews, portal eventing functionality come handy to simplify portal structures.
Out of all the content present in a role, some is used very frequently by the user and the user would want to see that first as soon as he/she navigates to his page. A well designed role should arrange the content in such a manner that most frequently content is displayed first.
Portal may use content from many resources. One such source is the SAP R/3 system. So a relationship between portal roles and the sap r/3 authorization roles should be established.
There are various ways portal roles and hence navigation can be designed. But the aim should be keep it simple. Avoid embedding roles within roles. You should bear in mind that whatever is created during implementation needs to maintained as the organization changes and grows. So the cost of maintenance should be as low as possible. Delta link capabilities should be least used.
Some portal roles need to be assigned to huge number of people in the organization whose responsibilities are heterogenous in nature. Roles should be designed only if they are usable. For the people in the company who are not versed with the IT solutions, designing role is waste of time and money and maintaining it is a paranoid.





SAP EP-How to make Enterprise Portal highly available.

High availability of portals
Before portal implementation starts, its planning should be done. The most important part of planning is portal technical infrastructure design. The technical infrastructure should be such that users get the following benefits from it.

Robustness
Optimized performance
Scalibility – how many concurrent users can use the portal drawing good performance from it.
Security.

In order to achieve the above objectives, we need to know what are the factors  which affect high availability of portal.

We draw various benefits if the portal implemented has the above features in it.
reduced unplanned downtimes, reduced unplanned maintenance effort, and ultimately increased customer satisfaction.

Essentials of Good Portal Infrastructure Design
A good portal should have following features :

Should serve the customers with proper functionality and that too with quick responses.

If the population using the portal increases or the functionality being served by the portal increases, it should be able to handle it. So it should be scalable.

Machines on which portal installations (single or cluster) is done whould be in good condition and shape so that good performance is derived from them.

Should  be highly available, minimum downtimes. Must have only planned downtimes ideally.

Portal should be secure enough as it is a platform for business critical data of the organization.

In order to get a high-end and highly available portal application, cost may increase. A proper tradeoff should be done between creating a highly available portal application and the total cost of ownership.


Portal System Landscape Design
Generally there are 4 systems which comprise of the portal system landscape : sandbox, development,
quality, and production systems.

Technical infrastructure for the all the systems has to be designed.

For each system, we have to find out how many host machines will be needed. Number of host machines depends upon the number of software units. Each software unit in turn will have specific requirements from which we will come to know about the server requirements. Once the software units are decided, next step to choose a host machine to install a software unit. Then we need out how much load will be imposed on the host machine after installing the software unit. Depending upon load, the sizing of the machine should be done ie. number of processors, gigabytes of RAM, disk size etc

Related Articles :

SAP EP - Standard Portal Services
Portal Eventing and Navigation
Portal Look and Feel - Branding the Portal
How to Develop Portal Applications
SAP EP-Developing portal content and assigning permissions
SAP EP-Role maintenance
SAP Material Management Introduction
SAP EP-J2EE architechture

Thursday, March 17

SAP Material Management Introduction

Material Management Introduction
Managing materials is a must in manufacturing and trading industries. MM is the internal part of supply chain. Generally, for every big company, supply chain is implemented in IT. In such a IT framework, ERP is central part of a the supply chain.
The phases that occur in the life of a material are sourcing, procurement, storing, processing or producing, distributing and finally selling. This is what is called as supply chain.
Within the scope of SAP, MM module covers only sourcing, supply (procurement) and inventory management
Once MM module is implemented in a company, it can benefit by getting answers to the following questions.
What to buy ?
When to Buy ?
How much to Buy ?
Where to buy from ?
Material
A material is something which can be touched and is part of a business. All the materials can not stored. There are few materials which need to consumed as soon they are received. Such material are called non-stock materials. There are various categories of materials viz raw, semi-finished, finished etc.

Procurement
Procurement covers two processes : Sourcing and supply. Sourcing should be done proactively so that lack of material to the business do not occur.

Sourcing
To do sourcing, a strategy should be in place. Sourcing and supply are part of procurement and generally they are managed by same group of people in most companies.
Essentially Sourcing means to find sources of materials. Sourcing can take place within the organization if the organization is a huge one. Sourcing as already mentioned should be strategic. Sourcing always keeps finding the best vendors for  materials, finding competitive prices, ensuring that supplies to the company are smooth during political, climatic or any other kind of emergencies.
When a new vendor is added to the vendor list, materials are sourced on a trial basis. When sourcing for a material is done, R&D team or marketing team is instructed not to over specify the material needed. IF over specification is done, then the vendor might find it difficult to produce and hence cost would increase. Also the number of vendors producing  that material will be less. When a new material is produced by the vendor on demand then sourcing team can guarantee some minimum volume of purchase. This generally happens.
One of the important thing to consider while sourcing is the tax structure of the country or location where vendor is located. Various benefits can be drawn by the sourcing team by studying the tax structure and tax holidays of that location.
In huge companies like P&G, chevron etc there are two types of sourcing teams viz local and global sourcing teams. These teams have to be in continuous coordination to make sure that best materials at best prices and with best quality are being supplied to the business. They need to make sure that supply of materials to the business never stops or never becomes inadequate.
If you are in a manufacturing company and in the sourcing team then you should know the following points very well to source well for your company
Understand what the material does ? ie what if the function of the material you are going to source
What is its need in the organization ? where will it be used, which process will it be used in ?
The chemicals or the substance used to make that material.
For safety purpose you should be aware about the nature of the material and the chemical with which it is made up.
How was it manufactured?
After sourcing, how will you store it? how will the packaging me done ? how will it be transported ? what all legal documents need to be made to transport it? and obviously the cost of the material.

But if you are in a trading industry, try to learn the following things about the material being sourced.
Understand the requirement of the customer, function of the material, how much comfort and  safety does the material provide ? how to store, handle and package the material ? how to transport and do the legal documentation while transporting the material. And again, the cost of the material.
Now the question is : how to find a source ?
Various things can be done to find a source. You can publish tenders and vendors will approach you with their offerings. Visiting various trade fairs. Go through a directory of traders and manufacturers. Asking a vendor to create a particular kind of a material.
Once the vendor has been finalized, a sequence of steps follow for sourcing the materials :
Negotiate for price and volume of supply, prepare a contract, ensure proper supply of materials to the business as per contract terms and conditions. Evaluate the performance of vendor. Decide whether to Continue with the vendor of hunt for another vendor.

Wednesday, March 16

SAP EP-J2EE architechture

Introduction
This post will discuss about the important components of portal technical infrastructure.
I will talk about the main components called SAP WAS, ABAP and TREX. I will also dicuss about the minimal WAS java installation and a large cluster installation in which we use load balancer.  Once you have a complete understanding of the J2EE infrastructure, you are in a position to design a optimal portal infrastructure which will have all the important features : high availability, scalability, performance, security, and so on.

Components of a Portal Infrastructure
Various systems and devices comprise or come together to form the technical infrastructure :  operating systems, network systems, firewalls, high availability solutions, load-balancing devices, and storage devices etc…

Major components of a portal technical infrastructure are :
• Web clients
• Internet browsers
• PDAs
• Mobile solutions
• Web infrastructure
• Load balancer
• Web servers
• Web dispatchers
• Proxy servers
• Portal server
• Portal platform
• Knowledge management
• Content management
• Collaboration platform
• J2EE engine
• Web AS database
• User Management Engine (UME)
• TREX components
• Web server
• Retrieval and Classification Engine
• Retrieval and Classification Index


In this post I shall discuss mainly about the J2EE architecture and the TREX components.


Web AS Java Architecture
We will have a look at components in a Web AS Java installation. A typical installation has
a central instance, a central services instance, a Java instance, and a database instance.

What does the central instance consist of ? it consists of a dispatcher, a server, and a Software Delivery Manager (SDM).
The central services instance contains the message service and the enqueue service
installed together on one machine.
The Java instance does not contain an SDM. The Java instance can contain a dispatcher and one or more J2EE server processes.

These various instances can be installed on separate physical machines and if they are installed in this way, scalability and availability of the system can be enhanced.


When we form a java cluster, more than one java instances can be there but only one central service instance. If there are more than one java instances then there has to be a load balancer such as a sap web dispatcher to distribute the load or the incoming requests to various java instances in the cluster.

A java instance has n number of server processes. The number of server processes available in a java instance depends upon RAM of the host on which that Java instance is installed.

Apart from server processes, a Java  instance has something called java dispatcher.
It is a kind of load balancer that receives the client request and forwards it to the server process. Message service tells the java dispatcher as to which is the most suitable server process to which the request should be routed.
Server process will process  the request and will store the user session.
The java instance in the cluster which has a SDM installed on it is called the central java instance.
There is something called Java Startup and Control Framework which is used for starting and stopping the Java instance. So it can be controlled and monitored using the SCF.

NetWeaver AS Java vs. Add-In Installation
There are two types of installations possible for Netweaver WAS : Netweaver AS Java only and netweaver AS Add-in system installation.
The add-in installation is a dual installation which consists of both the stacks : the java and the  ABAP stack. The Netweaver AS Add-in installation is needed only when XI is also needed only If we are implementing SAP XI. SAP enterprise portal can run only if the simple installation without add-in is available.
If dual installation is used for portal installation then it will expose the abap layer to internet.
And ABAP layer is generally used to host SAP ECC, SAP CRM, SAP SCM etc. This information is very crucial and sensitive for a company and therefore should not be exposed to the internet.
If portal is required to be installed then it is recommended to use Netweaver AS Java only.

Central Instance
There always can be only one central instance per sap Installation.

Java Stack of the Netweaver AS Add- In installation consists of the following.
• Java dispatcher
• Java Server processes
• Software Delivery Manager (SDM)
• Internet Graphics Service (IGS)

ABAP stack consists of the following:
• ABAP dispatcher
• Work processes
• Gateway
• Enqueue server
• Message server
• CCMS agent SAPCCMSR
• Internet Communication Manager (ICM)
• IGS


Central Services Instance
Java Stack has components called the enqueue server and Message server Which are responsible for communication and synchronization in the java cluster across server and dispatcher nodes.
Server process in java stack is analogous to work process in ABAP stack. When a incoming request comes from a client, the ICM receives it and routes it to appropriate dispatcher. If it is a java request, it is routed to java dispatcher and if it is a ABAP request, it is routed to ABAP dispatcher. The dispatcher routes it to appropriate server process in case of java or a work process in case of ABAP.


Dialog Instances
Dialog instance is also called an application server. It is most often referred to as a application server and it is usually installed on a separate host. A dialog instance can be added to  existing cluster. When a dialog instance is added in the cluster, the central instance initiates an update of the dialog instance so that dialog instance comes to know which all applications are deployed in the cluster so that dialog instance can access those applications. A dialog instance can be a java or a ABAP instance.

Following are the components in the Java dialog instance:
• Java stack or the Java dialog instance
• Java dispatcher
• Java Server processes
• IGS

For ABAP Dialog instance:
• ABAP stack
• ABAP dispatcher
• Work processes (dialog, batch, spool, or update)
• Gateway
• IGS
• ICM


Java Dispatcher Components
Java Dispatcher that has the following components:

connection request handler
connection manager,
load balancer
session level services,
request queue  and
communication handler.

As soon as the connection request handler receives a request, it initializes a connection object.
Then connection manager analyses the request and submits it to appropriate session service such as HTTP, RMI etc. Requests can also be placed in queue is they are many I number. The communication handler in dispatcher then forwards the request to the communication handler in the server process.


Java Server Process
Dispatcher sends requests to server processes. Server process has a component called communication handler. Communication handler receives the incoming dispatcher requests. In order to process the request, there should be a thread available. If no thread is available, the request is send in a queue. Communication handler sends it to session service which in turn sends it to the application level service where it is actually processed by the java application.
In order to fine tune WAS Java’s performance, you must be aware of the components of java dispatcher and the server.

SAP Management Console
WAS can be managed by a tool called sap management console. From here the administrator can monitor all the servers and services that are running in the cluster. And it can be installed as a part of portal installation.


Java Startup and Control Framework
Java startup and control framework is a important feature of SAP Netweaver application server.
There are two main programs contained in it : The JControl and the JLaunch. If someone stops and service deliberately or accidentally, the JControl program makes it sure that the service is up and running again. The JStartup program takes care fo the processes that may have crashed. So it restarts the processes that are crashed. It loads the JVM. So these features of the Control and Startup framework makes sure that the system is available all the time.

TREX: Technical Infrastructure
Working of TREX is independent from portal. There are few things for which TREX is used like :

• Searching and retrieving large document collections
• Text mining
• Automatically classifying documents
• Searching information from SAP applications

TREX is based in a client server setup.

TREX Client
Where is TREX used ?

Mostly TREX is used for searching. In portal, there is a service called content management. In content management, search for the content can be done using the TREX client. TREX client essentially is a application programming interface which can access various TREX functions like creating searches and indexes, querying internal status of TREX etc. TREX client can be of two types : the TREX java client and the TREX ABAP Client.
If SAP ABAP system wants to communicate with the TREX server, RFC server component of the TREX comes into picture. SAP system send the requests to RFC server component and it converts it into in a format which TREX can understand and then routes it to the TREX server.

Summary of the post
In the above post, I discussed about the J2EE engine and TREX engine.
During the discussion of J2EE engine, we saw types of installations of WAS viz simple java stack installation (sufficient for EP installation) , Add-In installation, minimal installation and cluster installation. We saw how load balancing in case of a cluster installation is done. We learnt about various components of WAS installation; various components like sentral instance, central services instance, dialog instance, message service, enque service, dispatcher process, java server proceses etc. We learnt about the Java startup and control framework. Knowledge of all these components is very useful after while portal implementation and more useful after the portal has gone live and you need to support it.

Related Articles :




Saturday, March 12

Basics of Web Dynpro ABAP

Basics
Web Dynpro applications  can be created and edited in the web dynpro explorer in the ABAP development environment

It has been fully integrated into the ABAP Workbench so there is no separate transaction code. we use the object list selection to display  or create Web Dynpro component.

When we try to create a new web dynpro component, the system asks for creation of web dynpro component or a web dynpro component interface.


Component
The first step when we create a web dynpro application is to create a we dynpro component. It can have many views and those views can be embedded in windows.

Web Dynpro View
View is the smallest unit of a web dynpro application visible to the user. Various  UI elements like text fields, radio buttons, checkboxes, buttons. Links etc can be put on the view. View also has a context and a controller. Context holds temporarily ie during the session of the application.

Creating a View
View can be created  in the web dynpro explorer in the object list. In order to see the view in the browser, it has to be embedded in a window. The web dynpro design time does not enbed it in the window automatically even if the component has only one window.

View Editor
Once the view is created, it can be modified by using the layout tab of the view. So graphically UI elements can be removed or replaced. Their properties can be changed.

Context data is stored in a tree format. It has got nodes and attributes. Node is a collection of elements. No of elements inside the node  depends upon the cardinality of the node. Attributes present in the node are present in each element belonging  to that node.

Attributes Flagged as "Nullable"
Some data types like numeric or time etc are output by a default value null. For a num4c type the default output value is “0000” and for time it is 00:00:00. This type of behavior is undesirable for some situations. To solve this, we can do the following
First, you must use the method
IF_WD_CONTEXT_NODE_INFO=>SET_NULLABLE( ). This will flag the value in the node as nullable.
all attributes or individual attributes can be set nullable.
Secondly, actual value can be set to “null”. For this purpose, the
interface IF_WD_CONTEXT_NODE provides the method set_attribute_null(
'”Node_Name”' ). 

Related Articles :


ABAP Data Types and Objects
ABAP Statements
WD4A - Topics to be covered in the upcoming posts
WD4A - Introduction
WDA - SAP Logon Procedures
WD4A-Format the Values appearing on value Axis of Business Graphic
WD4A-Navigate from one view to another and back to previous view
WD4A - How to Calculate next 12 months from current month in web dynpro ABAP
WD4A - Validate Inputs in a web dynpro ABAP Application

Friday, March 11

ABAP Data Types and Objects

There are physical units with which ABAP statements work at runtime. These units are called program data Objects. Data object occupy space in memory.
There are some technical attributes associated with each ABAP data object. Like Data type, field length,
and number of decimal places.

The data type tells how the contents of a data object should be interpreted by ABAP statements.
data type can also be defined independently.
This can be done in the declaration part of an ABAP program using the TYPES statement. This can also be done in the ABAP Dictionary.
The data types you will use in a program depend on how you will use your data objects.
ABAP program can pass simple input data to the database also it can process
and out a large quantity of structured data from the database. following
data types are present in ABAP.

Predefined Types
Five predefined non-numeric data types:
Date (D), Time (T), Character string (C), Numeric character string (N) and
Hexadecimal (X)

Three predefined numeric types:
Packed number (P), Integer (I) and Floating-point number (F).
For D, F, I, and T,field length is fixed. For C, N ,X and P field length gets determined when you declare the data object in your program.
in a business context , Data type P is useful as it can give exact calculations. number of decimal places should be specified When you define an an object of type P.

User-defined Types
Own elementary types can always be defined using the TYPES statement.the basis of elementary data types will be predefined data types.For eg: we can define a data type P_3 with three decimal places. This is based on the predefined data type P. So now elementary data objects can be defined using elementary data types. Elementary data types can be used to form Aggregated data types
An aggregated data type can be an internal table or a structure.

Structures
ABAP does not have predefined
structures. We need to define structures, either in the ABAP program in
or in the ABAP Dictionary.
What is a structure used for ? structures can group work areas that belong together logically. For example,
Structures can contain elementary as well as aggregated data types
Internal Tables
Internal tables is a series of lines that all have same data type.
Characteristics of internal table are :

line type.
The line type can be any ABAP data type - a
Structure, an elementary type or an internal table.
key
key is used to identify lines in the internal table.
Access type
How ABAP statements will access the entries of the internal table is determined by the access type.
three access types are unsorted tables, sorted index tables and hash tables.
For index tables, access to the table entires is done by specifying the index or the key.
Hashed tables can only be accessed by specifying the key.
The system has its own hash algorithm for managing the table.

Data Types for Reference
in ABAP Objects , references are used to refer to objects. There are reference variables where we store the references. The way the program handles a reference is determined by it data type. there are various types of interface and class reference variables.
Reference variable can become component of a internal table or a structure.

Declaring Data Objects
Declaration of data objects in done using the declarative statements of ABAP. This is done before actual execution of the program starts.
The interface parameters of the routine become local data objects as soon as the routine is called. If technical attributes for the data type of these data objects is defined during interface definition then it is ok otherwise the data object take up the attributes of the parameter assigned to it at runtime.

Related Articles :

Basics of Web Dynpro ABAP
ABAP Statements
WD4A - Topics to be covered in the upcoming posts
WD4A - Introduction
WDA - SAP Logon Procedures
WD4A-Format the Values appearing on value Axis of Business Graphic
WD4A-Navigate from one view to another and back to previous view
WD4A - How to Calculate next 12 months from current month in web dynpro ABAP
WD4A - Validate Inputs in a web dynpro ABAP Application

ABAP Statements

ABAP Source code consists for comments and statements.
Various kind of ABAP statements are :
Declarative statements
They define data type or declare data objects. A collection of declarative statement in the program is called declaration part.
Examples of declarative keywords: TYPES, DATA, TABLES


Modularization Statements

processing blocks in an ABAP program are defined by these statements.
The modularization keywords are of two types:
 Event Keywords and Defining keywords

Event Keywords are used to define event blocks. There are no
special statements to conclude processing blocks – a processing block ends when the next proc block starts.
Examples of event keywords are:
START-OF-SELECTION, AT USER-COMMAND, AT SELECTION SCREEN,
Defining keywords Are used  to define dialog modules, methods , subroutines, function modules.
We can conclude them using the ENDstatements.

Examples of definitive keywords: MODULE ... ENDMODULE.
FORM ..... ENDFORM, FUNCTION ... ENDFUNCTION.


Control Statements

within a processing block , Control statements control the flow of an ABAP program
according to certain conditions.
Examples of control keywords: IF, WHILE, CASE


Call Statements

Call Statements call processing blocks
The block can reside anywhere either in the same program or in other program.
Examples of call keywords:
SUBMIT, LEAVE TO, PERFORM, CALL, SET USER-COMMAND,


Operational Statements

Operational Statements process the data.
 Examples of operational keywords:
MOVE, ADD. WRITE,

Database Statements

Database Statements access the tables form central database
system. These are of 2 types: Open SQL and Native SQL.
Open SQL
Open SQL contains only Data Manipulation
Language (DML) statements, such as , IINSERT, DELETE and SELECT.No
Data Definition Language (DDL) statements (such as CREATE TABLE or CREATE INDEX) are present in open SQL..
Functions of this type are contained in the ABAP Dictionary
ABAP programs that use only Open SQL statements to
access the database are fully portable ie they can be run on a different database or operating system. Database interface helps in the conversion of OPEN SQL into commands of the relevant database.

Native SQL
These statements go directly from the database interface to the database without
being converted. It is possible to use DDL operations in native SQL. The ABAP Dictionary uses
Native SQL for database tables creation.it is recommended to use open sql in ABAP programs. Data dictionary used native sql and is created for DDL so better make use of Data dictionary if you are creating a ABAP program.

WD4A - Topics to be covered in the upcoming posts

In the subsequent posts, I will discuss:

Particularities regarding the design and development of web based applications.  I will compare BSP and WD4A so that the advantages of WD4A can be clearly seen.

I will talk about the web dynpro explorer which is embedded in the object navigator in R/3 system. I will teach you how to create a simple structured view and embed it in a window.
I will create “hello world” application using three different structures to explain you the concept of context, data biding, view element properties, supply functions.

I will discuss the functions of action, event handelars, parts of the context and framework controller methods. Then I will explain the phase model of WD4A framework.

Then we will create more complex components based on available view elements.
Relationship between component window and view elements.
More UI elements like dropdown lists, radio buttons. We will learn how to output messages about the user using the message manager. Also we will discuss the usage of the most common UI element called the Table UI element. We will discuss the handeling of cell variants. Creating popus, implementing the roadmap UI and the tree UI. Then we will learn the concept of input helps in WD4A.

Then we shall learn how to develop multi component applications. Concept of direct and reverse context mapping will be discussed. Dynamic programming.
We will discuss about the reusability of software modules so that we can achieve accelerated development cycles and cost reduction.

Use of ALV component, OVS component, selection options component and the user specific development of input helps component.

At last I will write about the integration of WD4A applications with SAP netweaver portal. We will learn about client side eventing. We will discuss business graphics. I will show you how to integrate Adobe document services in WD4A with which we can create interactive PDF forms that can edited both online and offline.

Related Articles :

Basics of Web Dynpro ABAP
ABAP Data Types and Objects
ABAP Statements
WD4A - Introduction
WDA - SAP Logon Procedures
WD4A-Format the Values appearing on value Axis of Business Graphic
WD4A-Navigate from one view to another and back to previous view
WD4A - How to Calculate next 12 months from current month in web dynpro ABAP
WD4A - Validate Inputs in a web dynpro ABAP Application

WD4A - Introduction

This Blog is for ABAP developers who are familiar with the ABAP development workbench and the user interface development methods available and who now want to implement business processes and their user interaction based on the WD4A framework.
This blog will help you better support users and it will help you with problems that can arise during the migration to WD4A framework. This Blog will discuss general concepts for designing and developing web-based systems and specifically details their specifications when the are implemented within the WD4A framework.
If you are experienced in developing web applications based on JSP and BSP or other technologies
you might be surprised at the restrictive handeling of  the WD4A framework when it comes to the manual integration of javascript. This restriction was introduced in order to enable the WD4A applications to support emerging client technologies that don’t use javascript for client-side flow control.

Sound knowledge of object oriented ABAP programming is a must for understating WD4A concepts. A number of technologies like HTTP, HTML, CSS, XML and client side scripting etc are integrated in WD4A applications.
These technologies are encapsulated and details of these are not shown to you when you use the WD4A framework for web application so that you can focus more on the business process and implementing it rather on the intricacies of these web development technologies. That is the magic of WD4A framework.

To clearly understand WD4A framework, one should know the following :

Communication process in HTTP and HTTPs ie the request response cycles.
Programming in a distributed development environment.
Difference between client side and server side scripting
Use of design patterns in programming

Related Articles :

Basics of Web Dynpro ABAP
ABAP Data Types and Objects
ABAP Statements
WD4A - Topics to be covered in the upcoming posts
WDA - SAP Logon Procedures
WD4A-Format the Values appearing on value Axis of Business Graphic
WD4A-Navigate from one view to another and back to previous view
WD4A - How to Calculate next 12 months from current month in web dynpro ABAP
WD4A - Validate Inputs in a web dynpro ABAP Application