Tuesday, May 27, 2008

SAP EDI Process Overview

SAP EDI Process Overview

In any SAP EDI Process a Sub System is required. Basically an EDI Subsystem does the conversion of SAP IDOCs to to EDI fromat and Vice Versa. An EDI subsystem is a thirdparty systems and deals with standards that are most current. Thus as mentioned above the EDI SubSystem acts like a translator. SAP does certify some EDI subsystems and this is based on the version of SAP.

Basically the SAP EDI process is comprised of

OutBound Process
InBound Process

OutBound Process

The OutBound Document is Created. This could be a Sales Order or a Purchase Order or an Invoice. The process of creating the document is no different than the normal way. But prior to this IDOC configuration is made so that on the document is saved an IDOC is generated. The document is saved in the SAP tables in the usual way but in addition to that an IDOC with the same data is also generated and saved. You can view this IDOC using the appropriate transactions.  Example  WE05 --- IDOC List WE02 Display IDOC. Once the IDOC is generated it is transferred to the operating system level for the EDI system to pick it up. Further to this the IDOC is converted to the EDI standards and the IDOC is then transferred to the desired Partner. The status of this transaction is sent back to SAP.

SAP Purchasing Documents

SAP Purchasing Documents

The following types of Purchasing Documents are present in SAP.

Request For Quotation (RFQ).

This document is sent to the potential vendor. This basically is a request to the vendor to send the quotation for a material or a service.

OutBound Process
From Company ----------------------- Vendor
From SAP -------------------------------- Non SAP/SAP

Related Transactions: Create ME41, Change ME42, Display ME43, Maintain Supplement ME44, Release ME45
List Display:                By Vendor ME4L, ME4M by Material, By Service MSRV4, By Collective Number ME4S, By Material Group ME4C,
                                   By Tracking Number ME4B, By RFQ Number ME4N, Transaction Per Tracking Number MELB.
Reporting:                  General Analysis ME80AN, Archived Purchasing Documents ME82            


When the receives the RFQ he responds to it by sending the Quotation. The quotation basically contains the prices and conditions and helps in selecting the Vendor.

InBound Process
Vendor ------------------------------- Company
Non SAP/SAP ---------------------- SAP

Related Transactions: Maintain ME47, Display ME48, Price Comparison ME49.

Purchase Order

This is basically a document that makes request for buying the material or service. the vendor does that supply the material or does not provide the service till the point he receives this document. This document formalizes a purchase transaction.

OutBound Process
From Company ----------------------- Vendor
From SAP -------------------------------- Non SAP/SAP

Related Transactions: Create (Vendor/Supplying Plant Known) ME21N, Vendor Unknown ME25, Via Requisition List ME58, Automatically via Purchase Requisitions ME59. Change ME22N, Display ME23N, Maintain Supplement ME24, Release ME28,  Mass Maintenance MEMASSPO.

List Displays: By Vendor ME2L, BY Material ME2M, By Material Group ME2C, By Tracking Number ME2B, By PO Number ME2N, By Supplying Plant ME2W, Transactions per Tracking Number MELB.

For Account Assignment: General ME2K, By Project ME2J.

Reporting: General Analysis ME80FN, Analysis of Order Values ME81N, Achieved Purchasing Documents ME82, SC Stocks per Vendor ME20, Monitor Confirmations ME2A


This is basically a 'CONTRACT' between the vendor (external entity) and the Company (SAP) and is a legal binding for buying certain material or service over a period of time. The time is specified.

OutBound Process
From Company ----------------------- Vendor
From SAP -------------------------------- Non SAP/SAP

Related Transactions: Create ME31K, Change ME32K, Display ME33K, Maintain Supplement ME34K, Release ME35K

Scheduling Agreement

This is an agreement, or a long term buying arrangement. Basically it defines the delivery schedules. It provides for the creation of delivery schedules and specifies purchase quantities, delivery dates, and defines precise times of delivery over a predefined period.

OutBound Process
From Company ----------------------- Vendor
From SAP -------------------------------- Non SAP/SAP

Related Transactions: Create Vendor Known ME31L, Stock Transport Scheduling Agreement ME37, Change ME32L, Display ME33L, Maintain Supplement ME34L, Release ME35L


PREVIOUS                  NEXT                    RANDOM


Since your web browser does not support JavaScript, here is a non-JavaScript version of the image slideshow:

Always specify your conditions in the Where-clause instead of checking them yourself with check statements. The database system can then use an index (if possible) and the network load is considerably less.

For all frequently used Select statements, try to use an index. You always use an index if you specify (a generic part of) the index fields concatenated with logical Ands in the Select statement's Where clause. Note that complex Where clauses are poison for the statement optimizer in any database system.

If there exists at least one row of a database table or view with a certain condition, use the Select Single statement instead of a Select-Endselect-loop. Select Single requires one communication with the database system, whereas Select-Endselect needs two.

It is always faster to use the Into Table version of a Select statement than to use Append statements.

To read data from several logically connected tables use a join instead of nested Select statements. Network load is considerably less.

If you want to find the maximum, minimum, sum and average value or the count of a database column, use a select list with aggregate functions instead of computing the aggregates yourself. Network load is considerably less.

If you process your data only once, use a Select-Endselect-loop instead of collecting data in an internal table with Select Into Table. Internal table handling takes up much more space.

Use a select list or a view instead of Select * , if you are only interested in specific columns of the table. Network load is considerably less.

For all frequently used, read-only tables, try to use SAP buffering. Network load is considerably less.

Whenever possible, use array operations instead of single-row operations to modify your database tables. Frequent communication between the application program and database system produces considerable overhead.

Whenever possible, use column updates instead of single-row updates to update your database tables. Network load is considerably less.

Instead of using nested Select loops or FOR ALL ENTRIES it is often possible to use subqueries. Network load is considerably less.

Use the special operators CO, CA, CS, instead of programming the operations yourself. If ABAP/4 statements are executed per character on long strings, CPU consumption can rise substantially.

Some function modules for string manipulation have become obsolete and should be replaced by ABAP/4 statements or functions: STRING_CONCATENATE... -> CONCATENATE, STRING_SPLIT... -> SPLIT, STRING_LENGTH -> strlen(), STRING_CENTER -> WRITE...TO...CENTERED, STRING_MOVE_RIGHT -> WRITE...TO...RIGHT-JUSTIFIED

Use the CONCATENATE statement instead of programming a string concatenation of your own.

If you want to delete the leading spaces in a string, use the ABAP/4 statement SHIFT...LEFT DELETING LEADING... .Other constructions (with CN and SHIFT...BY SY-FDPOS PLACES, with CONDENSE if possible, with CN and ASSIGN CLA+SY-FDPOS(LEN) ...) are not as fast. In any case, avoid using SHIFT inside a WHILE-loop!

Use the SPLIT statement instead of programming a string split yourself.

Use the strlen( ) function to restrict the DO loop to the relevant part of the field, e.g. when determinating a check-sum.

Use "CLEAR f WITH val" whenever you want to initialize a field with a value different from the field's type-specific initial value.

Try to keep the table ordered and use binary search or used a table of type SORTED TABLE. If TAB has n entries, linear search runs in O( n ) time, whereas binary search takes only O( log2( n ) ).

A dynamic key access is slower than a static one, since the key specification must be evaluated at runtime. However, for large tables the costs are dominated by number of comparison needed to locate the entry.

If you need to access an internal table with different keys repeatedly, keep your own secondary indices.With a secondary index, you can replace a linear search with a binary search plus an index access.

LOOP ... WHERE is faster than LOOP/CHECK because LOOP ... WHERE evaluates the specified condition internally. As with any logical expressions, the performance is better if the operands of a comparison share a common type. The performance can be further enhanced if LOOP ... WHERE is combined with FROM i1 and/or TO i2, if possible.

Always use Pretty Printer and Extended Program Check before releasing the code. Do not leave unused code in the program. Comment the code thoroughly. Align the comments and the Code. Follow the SAP Standards and SAP Best Practices guidelines. It’s a good practice to take a dump of the code on your local drive.

Ole Automation Part1
Ole Automation Part 2
Processing Blocks in ABAP
Simple ABAP Report
ALV Grid - Changing Colors
ALV Report Example
Creating Variants For ABAP Reports
Recording BDC using Transaction
Sales Document Flow in ABAP
User Exits in SAP SD
SAP ABAP Naming Standards
SAP SD Tables
SAP ABAP Data Dictionary Tables
MM Important Transaction Codes in SAP
Passing g Data From One ABAP Program to Another
ABAP Compute Add Collect and Append
SAP ABAP Determining Attributes of Data
SAP ABAP Editor Icons
BAPI for Displaying Material Data
BAPI to get customer bank details
EDI Outbound Process
SAP EDI Process Overview
Function Module for Vendor Bank details
Creating a Valid Password in SAP
SAP BADIs Introduction
POP UP function Module to Confirm and Save Data
Select Options
BAPI for availability check
String to Numerical
SAP Goods Movement Process
Getting a List of Plants for a Material
SAP R3 Clients Concept
ABAP Adobe Forms
Authorization Object Tables
SAP Industry Specific Solutions

Sap Scripts and SmartForms Bar Codes
Standard Reports and Sap Scripts
Important Standard Reports in SAP
Abap Tricks and Tips
Bapi Sales Order
BAPI Purchase Order
Creating Function Modules in SAP
Creating Tables in SAP
Finding User Exits in SAP
Function Module Create Text and Read Text
Important Transaction Codes in SAP
ABAP Function Module for Submitting a Program
ABAP Game Tic Tac Toe
ABAP Internal Table To Excel Sheet
ABAP Function Module to create Directory
Different Types of Menus in SAP
Function Modules in SAP to check Loged in Users
ABAP Function Module for Adding Days to Dates
Call a Transaction From a Remote System
SAP MM simple Procurement Cycle
BAPI Material EDIT
Finding Decimal Places in Currency
Getting negative sign before a number in ABAP
Program Editor Lock Unlock
Restricting Select Options
List of BAPIs in the system
SAP Function Module Scramble a String
POP up table contents on the screen
SAP R3 Bookmarking Websites
Stock Requirements List Function Module
Retail Transaction Codes
ABAP Debugger Break Points
ABAP Debugger WatchPoints
Drill Down Reports Concept
Creating a HOT SPOT
Interactive Programs and Hide Technique
String Concatenate
Get Week of the Year
SAP ABAP to Add Days to a Date
Add Months to a Date
Get Month in the Year
Display Clock

ABAP Code For Progress BAR
ABAP Function Module For Caluclator
ABAP Function Module For Calender
Displaying Messages in ABAP
Function Module Pop Up To Confirm
Conversion Routines in SAP
SAP ABAP Authorization
SAP ABAP Module Pool Tutorial

Finding Path to SAP Transaction in Menu
SAP Purchasing Documents
SAP and ABAP Shortcuts
Logical Databases
Advantages of Logical Databases
Copy to Clipboard
BAPI Create Material
Finding and Running Programs in ABAP
Program Syntax Check and Extended Syntax Check
Select Options upper lower case
BAPI Sales Order Simulate
Get PLANT and Description for a Material
MRP List Function Module
Production Planning and Controlling
Applications in SAP R3
Tool Based Reports
Important Transaction Codes in SAP
SAP Stock per Bin
Pop Up a Calender
Module to Read a File
Module to Reverse A String
Run an Executable Program with Parameters
Program for POP up Screen
Printing Selection Parameters for a Report
Uploading and DownLoading a Report
SAP ABAP Version Management
SAP ABAP Short Cuts
List of Important System Variables

ABAP Calling a File Selector
Some Important Function Modules
ABAP String Operations

ABAP Function Module to Check Validity of Date
Transfer Internal Table Contents to a File

SAP ABAP Program Types
BAPI to Read Customer Data
Checking Validity of Date
Download to Application Server
ABAP Debugger Breakpoint and Watchpoint
BAPI to get Company Code Details
Creating Material Using BAPI part 2
Generating a Valid Password
Logical Databases Structure
Making Fields OBligatory in Selection Screen
ABAP Views
Getting a Company Code for a Plant
Importing contents of Clipboard in SAP
Getting a Plant for a Material
Plant Material and Storage Location
SAP Production Planning Standard Reports
NetWeaver Components
Supported Databases and Operating Systems