Вы находитесь на странице: 1из 34

Introduction to SAP

SAP ERP[2] is enterprise resource planning software developed by the German


company SAP SE. SAP ERP incorporates the key business functions of an
organization. The latest version (SAP ERP 6.0) was made available in 2006. The
most recent Enhancement Package (EHP7) for SAP ERP 6.0 was released in 2013.
Business Processes included in SAP ERP include Operations (Sales & Distribution,
Materials Management, Production Planning, Logistics Execution, and Quality
Management), Financials (Financial Accounting, Management Accounting, Financial
Supply Chain Management) and Human Capital Management (Payroll, e-Recruiting)

SAP was founded in 1972 in Walldorf, Germany. It stands for Systems, Applications
and Products in Data Processing. Over the years, it has grown and evolved to become
the world premier provider of client/server business solutions for which it is so well
known today. The SAP R/3 enterprise application suite for open client/server systems
has established a new standards for providing business information management
solutions.
SAP product are consider excellent but not perfect. The main problems with software
product is that it can never be perfect.
The main advantage of using SAP as your company ERP system is that SAP have a
very high level of integration among its individual applications which guarantee
consistency of data throughout the system and the company itself.
In a standard SAP project system, it is divided into three environments, Development,
Quality Assurance and Production.
The development system is where most of the implementation work takes place. The
quality assurance system is where all the final testing is conducted before moving the
transports to the production environment. The production system is where all the
daily business activities occur. It is also the client that all the end users use to perform
their daily job functions.
To all company, the production system should only contains transport that have passed
all the tests.
SAP is a table drive customization software. It allows businesses to make rapid
changes in their business requirements with a common set of programs. User-exits
are provided for business to add in additional source code. Tools such as screen
variants are provided to let you set fields attributes whether to hide, display and make
them mandatory fields.

This is what makes ERP system and SAP in particular so flexible. The table
driven customization are driving the program functionality instead of those old
fashioned hard-coded programs. Therefore, new and changed business requirements
can be quickly implemented and tested in the system.
Many other business application software have seen this table driven customization
advantage and are now changing their application software based on this table
customizing concept.
In order to minimized your upgrading costs, the standard programs and tables
should not be changed as far as possible. The main purpose of using a standard
business application software like SAP is to reduced the amount of time and money
spend on developing and testing all the programs. Therefore, most companies will try
to utilized the available tools provided by SAP.
What is Client? What is the difference between Customization and
Configuration?
The difference between cutomizing and configuration is:
- CONFIGURATION: we will configure the system to meet the needs of your
business by using the existing data.
- CUSTOMIZING: we will customise or adapt the system to your business
requirements, which is the process of mapping SAP to your business process.
- CLIENT: A client is a unique one in organizational structure, can have one or more
company codes. Each company code is its own legal entity in finance.
Configuration vs. Customization
When considering enterprise software of any type, it is important to understand the
difference between configuration and customization.The crux of the difference is
complexity. Configuration uses the inherent flexibility of the enterprise software to
add fields, change field names,modify drop-down lists, or add buttons. Configurations
are made using powerful built-in tool sets. Customization involves code changes to
create functionality that is not available through configuration. Customization can be
costly and can complicate future upgrades to the software because the code changes
may not easily migrate to the new version.Wherever possible, governments should
avoid customization by using configuration to meet their goals.Governments also
should understand their vendor's particular terminology with regard to this issue since
words like "modifications" or "extensions" often mean different things to different
vendors.
*-- Sivaprasad, Sonali Sardesai
What is SAP R3?
We know that SAP R/3 is software, it particular it is client-server software. This

means that the groups/layers


that make up a R/3 System are designed to run simultaneously across several separate
computer systems.
When you install Microsoft Excel on your PC, each component of Excel (printing
components, graphing components, word processing components, and etc.) is stored,
managed, and processed via the hardware of your PC. When a company installs
SAPs software each component (or "layer in R/3s case) is stored, managed, and
processed via the hardware of separate and specialized computer systems. Each of the
various layers is capable of calling upon the specialty of any of the other installed
layers in order to complete a given task.
Those components/layers that are requesting services are called clients, those
components/layers that are providing services are called servers. Thus the term client/server.
*-- Shailesh Kumar (shailesh_das@yahoo.com)
What is meant by SAP ECC?
SAP is an ERP (Enterprise Resource Planning) module, ECC is the version of SAP,
like 4.6, 4.6c and 4.7 in that series new version is ECC-6. Its known as Enterprise core
component.
SAP WORKFLOW INITIAL CONFIGURATION

SAP Workflow Customization Settings (How to do)


This document details the basic workflow customization that needs to be done in any SAP system before
activating the workflow definitions.
Go to transaction SWU3. <For this demo, we have used an ECC 6.0 IDES system>

The description or the help for each of the above steps are available on the right side of the screen.
Configure RFC Destination
This can be done automatically or manually. If done automatically, as mentioned on the right side frame,
the logical RFC destination WORKFLOW_LOCAL_XXX is created (if not available). XXX is the client
number. Also the user WF-BATCH is also created if not already available.
The advantage of executing the above step manually is we can maintain another user and password as
required.
Select the step Configure RFC destination and click on F9.
If you happen to get the following popup, click on Yes.

Once the RFC destination, you can see the Green Tick mark beside Configure RFC Destination (as
shown in the screenshot below)

Maintain Workflow System Administrator


Since the system being used for this demo is an IDES system, some user is maintained as workflow
administrator. You can change this to the desired User using this step.
Select Maintain Workflow System Administrator and click on F8.

Now you can change the Userid to the desired one.


The steps Maintain Active Plan Version, Classify Decision Task as General, Document
Generation/Form Integration, and Maintain Time Units are already in Green. If not in Green, select the
corresponding step and click on F9. The automatic configuration would be done.

Schedule Background Job for Missed Deadlines


This is the job which checks if any work item has
Select this step and click on F8.
There are chances that you might encounter the following error:

To resolve this, you need to maintain the default printer in your user profile of WF-BATCH or change the
printer to a valid one. Go to SWU1 and enter WF-BATCH. Navigate to tab Defaults.

In the above screenshot, the output device is maintained as LP01 which is not valid. Here I am modifying
the same to LOCL. Also the check box Output immediately is marked X.

Save your entries.


Now let us go back to transaction SWU3 and the step Schedule Background Job for Missed Deadlines.
Click on F8.
You would get the following screen:

Depending on the business requirements, we can change the interval to the desired level. However 3
minutes is the minimum duration the system accepts.
Click on Save and Schedule. You would get the prompt for the customization request.
Now similarly schedule the jobs Work items with errors and Condition evaluation.
For the step Schedule Background job for Event Queue, click on F9 (Automatic execution).
See the screenshot below:

Now we can observe the green tick mark beside Maintain Runtime Environment.

Now lets move to Maintain Definition Environment


Maintain Prefix Numbers
All the objects related to workflow (standard task, workflow tasks and others) are assigned a eight digit
number. The prefix number is used for the first 3 digits and the rest five is automatically assigned by the
system (starting with 00001).

Select Maintain Prefix Numbers and click on F8.

Click on Display<->Change.

Click on create.

Enter a prefix number which is not allocated to any other client in the system.

Save your entries.


Now you can observe the green tick mark beside Maintain prefix numbers.

If you do not intend to work with HCM related workflows, the next step Check Entries from HR Control
Tables is not mandatory.
To
maintain
this
step,
visithttp://www.saptechnical.com/Tips/Workflow/Customization/HRTables.htm.

please

After completion of the above step, we can now observe that the steps regarding Maintain Runtime
Environment and Maintain Definition Environment are in green now.

Unless you plan to use the Guided Procedures, the above configuration should be fine to work with the
workflows in SAP R/3.
Now to test the workflow configuration, click on Start verification Workflow (F5). We would get the
following popup message:

Now go to your SAP Inbox to check the work item (Transaction SBWP)

Execute the work item.

We can choose one of the two options to test the workflow configuration. Let us chose the first one.
You would now receive two emails in your SAP inbox:

This completes the workflow configuration.

Working with Business Objects in SAP

By Swetabh Shukla, Infosys


Business Object type contains methods, attributes and events which give a component based view of any
Business Process.
For example we have a Purchase Order business process. This process includes various small functionalities.
It will have process of changing Purchase orders based upon requirements, functionality to retrieve the details
of purchase order etc. Each of these functionalities is encapsulated inside a method. The method can call the
function modules present in R3 system or can have there own code to execute some functionality. So if we
consider Purchase Order as a Business Object then it will be identified by key field Purchase Order number.
Each purchase order business object based upon key field purchase order number is different. Its so because
each purchase order is different and will contain different details.
So the methods contain business functionality. Attributes are just like properties of the Business object. For
example for any purchase order Purchasing Group, Purchasing Organization etc are attributes.
Technically we can say that business object types are just like any template. At runtime we instantiate or create
runtime objects for any BO (Business Object) type based upon the key fields we pass. Two runtime Business
objects of same BO type are different from each other based upon the key fields we pass. So the key field is
the differentiating factor for two or more runtime business objects of same BO type.
To Browse for BO open tcode SWO2 (Path -> Tools ->ABAP Workbench->Overview->Business Object
Browser).

You can expand the nodes and can check various business objects in BOR. You can double click on the BO
node and it will take you to BO display (SWO1).

Working with Business Object in our programs

For creating a Business Object and its attributes there are many already existing tutorials. So in this tutorial we
will not discuss creation of BO and its attributes.

1.1

To create instance of a BO

To create an instance of BO we need to have the key fields of that BO. Key fields will be used to uniquely
identify the BO. We can use the FM 'SWO_CREATE' to create an instance of BO in any report program.

DATA:
i_objtype TYPE swo_objtyp,
i_objkey TYPE swo_typeid,
object TYPE swo_objhnd.
i_objtype = <Business Object>
i_objkey = <BO key>
CALL FUNCTION 'SWO_CREATE'
EXPORTING
objtype = i_objtype
objkey = i_objkey
IMPORTING
object = object.

The variable object will hold runtime instance of the object type.
The other way is to use the macros defined in include <cntn01>

INCLUDE <cntn01>.
DATA:
i_objtype TYPE swo_objtyp,
i_objkey TYPE swo_typeid,
object TYPE swc_object.
*Create instance of Object type
swc_create_object object i_objtype i_objkey.
Internally the macro calls the FM SWO_CREATE. So you can either go for direct FM call or the macro call.

1.2

Container

Basically the term Container is used with reference to Business Objects and Workflows. The Container actually
holds import and export parameters associated with any method of Business Object at runtime. When ever we
are calling any method of Business Object we need to populate container for import parameters and after the
method gets executed it returns the values (export parameters) in Container.
Business Object container is technically of type SWCONT structure.

Here ELEMENT will be name of the variable/internal table which container holds and VALUE will have
corresponding value. For multi line variable or internal tables, the container will hold multiple values with same
element name.

1.2.1

Lets take an example to check what Container is

For example lets create a Business Object ZSWE1 with only one method READ. We will discuss the creation
of BO in very brief.
Key field will be Purchase Order number (EKKO_EBELN) for BO.
Method READ will take Purchase Order number as input and will give all the Purchase Line items in it in an
internal table.
Step 1 : Create BO ZSWE1 for test purpose. You can give it any name.

Step 2 : Now create a method READ

Save the method. Now we will create the parameters of the method.

Import
Parameters
Export
Parameter

PurchaseDocume EKKO-EBELN
nt
ITEM
EKKO-EBELP
line)

(multi

PurchasingDocument will be a import parameter of type EKKO_EBELN.


ITEM will be a export parameter of type EKKO_EBELP and will be a multi line variable(internal table )

Save the method and then Click on the Program button to implement the method. In the method just read all
ebeln (Purchase line items) corresponding to PO number into internal table ITEM and pass it on to container in
the method. Check the snapshot below.

Check the whole code of the BO program here.

*****
Implementation of object type ZSWE1
*****
INCLUDE <OBJECT>.
BEGIN_DATA OBJECT. " Do not change.. DATA is generated
* only private members may be inserted into structure private
DATA:
" begin of private,
"
to declare private attributes remove comments and
"
insert private attributes here ...
" end of private,
BEGIN OF KEY,
PURCHASINGDOCUMENT LIKE EKKO-EBELN,
END OF KEY.
END_DATA OBJECT. " Do not change.. DATA is generated
BEGIN_METHOD READ CHANGING CONTAINER.
DATA:
PURCHASINGDOCUMENT TYPE EKKO-EBELN,
ITEM TYPE EKPO-EBELP OCCURS 0.
SWC_GET_ELEMENT CONTAINER 'PurchasingDocument' PURCHASINGDOCUMENT.
select ebelp into table item from ekpo
where ebeln = PURCHASINGDOCUMENT.
SWC_SET_TABLE CONTAINER 'Item' ITEM.
END_METHOD.

Step 1 : Save the changes and make the status of the BO to implemented for testing purpose. Also generate
the BO.

Step 2 : Now lets test the BO. For this put a break point in the method READ at the select query. Also take any
PO number which will have multiple line items. You can check EKKO and EKPO tables. In my case I am taking
PO 4200000017. In my R3 system this particular PO contains 4 line items in EKPO table. Lets put a break
point and check the method.

Step 3 : Execute the BO with key 4200000017

Execute the method with import parameter as 420000017

It will take you to debugging mode. Now check the container.


In debug mode before the select statement the CONTAINER will hold only import variable

Now execute the last statement in the method and see the contents of CONTAINER (just before exiting the
method.

So we have seen how the CONTAINER holds values while we are working with Business Objects at runtime.

1.2.2

Some common macros defined in include <CNTN01> for working with Containers

Functionality
To write a single line variable in Container
To read a single line variable from Container
To write a multi line variable or internal table in
Container
To read a multi line variable or internal table
from Container
To clear the container

Macro
SWC_SET_ELEMENT
SWC_GET_ELEMENT
SWC_SET_TABLE
SWC_GET_TABLE
SWC_CLEAR_CONTAIN
ER

Further you can check the include <CNTN01> for more macros. Also check the macros. These macros call
some specific function modules that you can use directly in your code.

1.3

Calling a BO Method/Attribute in report programs

We can create a instance of BO method using FM 'SWO_CREATE' or macro SWC_CREATE_OBJECT.


First of all lets consider a BO 'BUS1001006' (StandardMaterial). We will call the method DISPLAY. For this
we will instantiate the BO with key ZSHUKSWE20( material number).
To call a method or attribute of any BO we can use the FM 'SWO_INVOKE'. We have to take care while we call
this FM. Suppose if we want to call an attribute defined in the method, then we need to populate the import

parameter ACCESS with G. If we need to call the method of the BO then we need to populate the import
parameter ACCESS with C.
Lets create a report program and check step by step. We will fetch details of attribute MATERIALTYPE of BO
'BUS1001006'

*&---------------------------------------------------------------------*
*& Report ZSWET_BO1
*&
*&---------------------------------------------------------------------*
*& To get attributes of BO instance in report
*&
*&---------------------------------------------------------------------*
REPORT zswet_bo1.
PARAMETERS: p_busobj(10) TYPE c DEFAULT 'BUS1001006',
p_key(70) TYPE c DEFAULT 'ZSHUKSWE20' ,
p_attr(32) TYPE c DEFAULT 'MATERIALTYPE',
p_access TYPE c DEFAULT 'G'. "To call method put 'C'
DATA:
i_objtype TYPE swo_objtyp,
i_objkey TYPE swo_typeid,
i_element TYPE swo_verb.
DATA object TYPE swo_objhnd.
DATA verb TYPE swo_verb.
DATA return TYPE swotreturn.
DATA lt_container TYPE STANDARD TABLE OF swcont.
DATA line TYPE swcont.
i_objtype = p_busobj.
i_element = p_attr.
i_objkey = p_key.
* Instantiate the business object. i.e give it a key and create it.
CALL FUNCTION 'SWO_CREATE'
EXPORTING
objtype = i_objtype
objkey = i_objkey
IMPORTING
object = object.
* Return attribute.
CALL FUNCTION 'SWO_INVOKE'
EXPORTING
access
= p_access
object
= object
verb
= i_element
IMPORTING
return
= return
verb
= verb
TABLES
container = lt_container.
* The attribute value is in the container returned from FM.
IF return-code = 0.
LOOP AT lt_container INTO line.
WRITE: / 'Attribute MATERIAL TYPE is : ',
line-value.
ENDLOOP.
ENDIF.

Lets execute the report and see the output:

Now lets see how to call a method of BO. The Method DISPLAY will display the material passed in BO
container.

*&---------------------------------------------------------------*
*& Report ZSWET_BO1
*&
*&---------------------------------------------------------------*
*& To call method with import parameters
*&
*&---------------------------------------------------------------*
REPORT zswet_bo1.
* Get an attribute of a business object.
PARAMETERS: p_busobj(10) TYPE c DEFAULT 'BUS1001006',
p_key(70) TYPE c DEFAULT 'ZSHUKSWE20' ,
p_attr(32) TYPE c DEFAULT 'DISPLAY',
p_access TYPE c DEFAULT 'C'. "To call method put 'C'
DATA:
i_objtype TYPE swo_objtyp,
i_objkey TYPE swo_typeid,
i_element TYPE swo_verb.
DATA object TYPE swo_objhnd.
DATA verb TYPE swo_verb.
DATA return TYPE swotreturn.
DATA lt_container TYPE STANDARD TABLE OF swcont.
i_objtype = p_busobj.
i_element = p_attr.
i_objkey = p_key.
*To call the method we need to populate the Container of the
*BO with importing parameters
CALL FUNCTION 'SWC_ELEMENT_SET'
EXPORTING
element
= 'MATERIAL'
field
= p_key(18)
"Material Number
TABLES
container = lt_container
EXCEPTIONS
OTHERS
= 1.
*Instantiate the business object. I.e give it a key and create it.
CALL FUNCTION 'SWO_CREATE'
EXPORTING
objtype = i_objtype
objkey = i_objkey
IMPORTING
object = object.

* To call the
CALL FUNCTION
EXPORTING
access
object
verb
IMPORTING
return
verb
TABLES
container

Method of the BO.


'SWO_INVOKE'
= p_access
= object
= i_element
= return
= verb
= lt_container.

The Output will be:-

Lets see an example below on How to Call the methods using the macros defined in include <CNTN01>.

*&----------------------------------------------------------------*
*& Report ZSWET_BO1
*&
*&----------------------------------------------------------------*
*& Using macros defined in CNTN01 include. To call method of BO
*& For reference check FM DNO_DB_APPENDIX_INSERT
*&----------------------------------------------------------------*
REPORT zswet_bo1.
INCLUDE <cntn01>.
* Get an attribute of a business object.
PARAMETERS: p_busobj(10) TYPE c DEFAULT 'BUS1001006',
p_key(70) TYPE c DEFAULT 'ZSHUKSWE20',

p_attr(32) TYPE c DEFAULT 'DISPLAY',


p_access TYPE c DEFAULT 'C'. "To call method put 'C'
DATA:
i_objtype TYPE swo_objtyp,
i_objkey TYPE swo_typeid,
i_element TYPE swo_verb.
DATA: gv_mat TYPE swc_object.
i_objtype = p_busobj.
i_element = p_attr.
i_objkey = p_key.
*Define container
swc_container container.
*Create instance of Object type
swc_create_object gv_mat i_objtype i_objkey.
**gv_mat will contain instance of the BO
*To clear a continer
swc_clear_container container.
*Now to call a method fill up container with import parameters for method
swc_set_element container 'MATERIAL' p_key(18). "'MATERIAL' ->import parameter
*For container of type table use swc_set_table.
***If any more import parameter are there for the object then populate them
***also using swc_set_element and swc_set_table
*In this case no more import parameters
*To call a method stored in p_attr
swc_call_method gv_mat p_attr container.
*If there are any export parameter, then CONTAINER will have the values
*and we can read from container
The Output will be:-

1.4

To trigger an Event of BO

We can use the FM SWE_EVENT_CREATE to raise an event in any report program. An explicit commit work
is required after the FM call to trigger the event, other wise event will not be raised.

*&---------------------------------------------------------------*
*& Report ZSWET_BO1
*&
*&---------------------------------------------------------------*
REPORT zswet_bo1.
INCLUDE <cntn01>.
* Get an attribute of a business object.
PARAMETERS: p_busobj(10) TYPE c DEFAULT 'BUS1001006',
p_key(70) TYPE c DEFAULT 'ZSHUKSWE20'.
DATA:
i_objtype TYPE swo_objtyp,
i_objkey TYPE swo_typeid.
i_objtype = p_busobj.
i_objkey = p_key.
*Define container
swc_container container.
*To clear a continer
swc_clear_container container.
*You can populate the Container if required
*To generate event
CALL FUNCTION 'SWE_EVENT_CREATE'
EXPORTING
objtype
= i_objtype

objkey
= i_objkey
event
= 'CREATED'
TABLES
event_container
= container
EXCEPTIONS
objtype_not_found = 1
OTHERS
= 2.
IF sy-subrc <> 0.
" MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
"
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4
"
RAISING OBJTYPE_NOT_FOUND.
ENDIF.
COMMIT WORK.

Just triggering an event does not makes any sense until and unless a proper event receiver id is linked to
the event. This event receiver can be a FM or can be any workflow. Event linkage can be done in SWE2
or
SWETYPV
transactions.

BOR
Definition
The Business Object Repository (BOR) is the object-oriented repository in the R/3 System. It
contains the SAP business object types and SAP interface types as well as their components,
such as methods, attributes and events.
BAPIs are defined as methods of SAP business object types (or SAP interface types) in the
BOR. Thus defined, the BAPIs become standard with full stability guarantees as regards their
content and interface.

Use
The BOR has the following functions for SAP business object types and their BAPIs:

Provides an object oriented view of R/3 System data and processes.

R/3 application functions are accessed using methods (BAPIs) of SAP Business
Objects. Implementation information is encapsulated; only the interface functionality
of the method is visible to the user.
Arranges the various interfaces in accordance with the component hierarchy,
enabling functions to be searched and retrieved quickly and simply.
This finds the functionality searched for quickly and simply.
Manages BAPIs in release updates.
BAPI interface enhancements made by adding parameters are recorded in the BOR.
Previous interface versions can thus be reconstructed at any time. When a BAPI is
created the release version of the new BAPI is recorded in the BOR. The same applies
when any interface parameter is created.
The version control of the function module that a BAPI is based on is managed in the
Function Builder.
Ensures interface stability.
Any interface changes that are carried out in the BOR, are automatically checked for
syntax compatibility against the associated development objects in the ABAP
Dictionary.

Integration
A BAPI is implemented as a function module, that is stored and described in the Function
Builder. You should only define a BAPI as a method of an SAP business object type in the
BOR, if the function module that the BAPI is based on has been fully implemented.
Access to the BOR is restricted at SAP.

BOR/BAPI Wizard
Prerequisites
If the function module which your BAPI is based on has been fully implemented or modified
you can define it as a method of an SAP business object type or SAP interface type in the
Business Object Repository (BOR). You use the BOR/BAPI Wizard to do this.

Procedure
First find the relevant SAP business object type in the BOR:
1.
Choose Tools
Business Framework BAPI Development Business Object Builder.
On the initial Business Object Builder screen you can directly access the SAP business object type or
interface type if you know the technical name of the object (object type). You have already identified the
technical name of the object.

Otherwise choose Business Object Repository.

To display object types, in the next dialog box indicate whether you want to display

all object types or only business object types. Then choose Continue.
To display SAP interface types, in the next dialog box choose Other settings and then

select Interface.
The application hierarchy is displayed. Search for the required business object type or
interface type in the application hierarchy and double click it to open it.
2.
When the business object type or interface type is displayed, choose Change.
Creating BAPIs as Methods of Business Object Types or Interface Types
To define your BAPI as a method of a business object type or interface type:
1.
Select Utilities
API Methods Add method.

In the next dialog box enter the name of the function module, for
example,BAPI_COMPANYCODE_GETDETAIL, and choose Continue.
In the next dialog box specify the following information for the method to be defined:

Method
A default name for the method is provided, based on the name of the function
module. You may have to modify the suggested name:
Example: If the name of the function module is SALESORDER_GETSTATUS, the
suggested method name might be BapiSalesorderGetstatus. You should edit
this so that the resulting name isGetStatus.

Texts

Enter meaningful descriptions for your BAPI.


Radio buttons Dialog, Synchronous

Enter relevant details for your BAPI. Make sure that a BAPI is not dialog
orientated. BAPIs are usually implemented synchronously.
Choose Next Step.
A list of parameters and default names is displayed which you need to edit as
required. Modify the parameter names as follows:
Each new word in the parameter name must start with a capital letter, for

example, CompanyCodeDetail.
Make sure that the parameter names of the method in the BOR are identical to the

parameter names in the function module except for the upper/lower case letters.
The import and export behavior of the table parameters must be correctly defined in

the BOR.
Reason : In contrast to the function module, in the BOR you can differentiate between import and
export for tables also. You should therefore only select the standard option Import/export, if the table
is actually going to be imported and exported.
The return parameter is always defined as an export parameter.

4.

5.
Choose Next Step.
To create the method choose Yes in the next dialog box.

Result
After the program has been generated and executed, check that all the definitions have
been made correctly by the BOR/BAPI Wizard. To do this, look at the newly created method
of the business object type or interface type.
The BOR/BAPI Wizard is used only to create new BAPIs for the first time. It is
not used to make changes to existing BAPIs.
If you make changes to the underlying function module after you have created
the BAPI in the BOR, for example, if you make compatible interface
enhancements or modify short texts, such changes donot automatically take
effect in the BOR. You have to make these changes manually in the BOR

Вам также может понравиться