Monday, May 23, 2016

All About IDOC:Definition, Architecture, Implementation

All About IDOC:Definition, Architecture, Implementation
What is an IDOC?
IDOC is simply a data container used to exchange information between any two processes that can understand the syntax and semantics of the data.

In other words ,an IDOC is like a data file with a specified format which is exchanged between 2 systems which know how to interpret that data.

IDOC stands for " Intermediate Document"

When we execute an outbound ALE or EDI Process, an IDOC is created.

In the SAP System, IDOCs are stored in database.Every IDOC has an unique number(within a client).

Key Features
IDOCs are independent of the sending and receiving systems.(SAP-to-SAP as well as Non-SAP)
IDOCs are based on EDI standards, ANSI ASC X12 and EDIFACT. In case of any conflict in data size, it adopts one with greater length.
IDOCs are independent of the direction of data exchange e.g. ORDERS01 : Purchasing module : Inbound and Outbound
IDOCs can be viewed in a text editor. Data is stored in character format instead of binary format.
Structure of an IDOC
 
The Idoc structure consists of 3 parts -
1. The administration part(Control Record)- which has the type of idoc,message type, the current status, the sender, receiver etc. This is referred to as the Control record.
2. The application data (Data Record) - Which contains the data . These are called the data records/segments.
3. The Status information (Status Record)- These give you information about the various stages the idoc has passed through.
You can view an IDOC using transaction WE02 or WE05
 
As seen in screenshot above IDOC record has three parts Control , Data and Status. Lets look into them in detail - Control Record
All control record data is stored in EDIDC table. The key to this table is the IDOC Number
It contains information like IDOC number, the direction(inbound/outbound),  sender, recipient information, channel it is using, which port it is using etc.
Direction '1' indicates outbound, '2' indicates inbound.
Data Record
Data record contains application data like employee header info, weekly details, client details etc
All data record data is stored in EDID2 to EDID4 tables and EDIDD is a structure where you can see its components.
It contains data like the idoc number, name and number of the segment in the idoc, the hierarchy and the data
The actual data is stored as a string in a field called SDATA, which is a 1000 char long field.
Status Record
Status record are attached to an IDOC at every milestone or when it encounter errors.
All status record data is stored in EDIDS table.
Statuses 1-42 are for outbound while 50-75 for inbound
IDOC Types
An IDOC Type (Basic) defines the structure and format of the business document that is to be exchanged. An IDOC is an instance of an IDOC Type , just like the concept of variables and variables types in programming languages. You can define IDOC types using WE30

What is a Segment?
Segment defines the format and structure of a data record in IDOC. Segments are reusable components.

For each segment SAP creates
Segment Type (version independent)
Segment Definition (version dependent)
Segment Documentation
The last 3 characters is the version of the segment

Definitions keep changing as per the version but the segment type remains the same.

Transaction :WE31
 
What is Extension IDOC type ?
An IDOC is of 2 types:-
1. Basic
2. Extension
 
SAP provides many a pre-defined Basic IDOC Types which can not be modified. In case you want to add more data to these restricted basic type  you may use an extension type. Most of the times you will NOT use extension.
 
Documentation
Each IDOC are thoroughly documented in transaction WE60
 
Message Type
A message represents a specific type of document that is transmitted between two partners Ex. Orders,orders responses,invoices etc

An idoc type can be associated with many message types

Also a message type can be associated with different idoc types. Transaction WE81

 
IDOC Views
An IDOC type can be used for more than one message type, which results in IDOCs containing more fields than required for a particular message type.
IDOC views are used to improve performance in generating IDOCs to ensure only the relevant segments are filled with data. IDOC Views are important only for Outbound Processing.
 
Partner Profiles
A partner is defined as a business partner with whom you conduct business and exchange documents

In the partner profile of a partner that we exchange Idocs with, we maintain the parameters that are necessary for exchanging the data. The transaction used is WE20.

Port
The port defines the technical characteristics of the connection between your SAP system and the other system you want to transfer data with (subsystem). The port defines the medium in which data is exchanged between the 2 systems.

There are different types of ports. The 2 most commonly used are the TRFC ports used in ALE  and File ports which EDI uses.

For TRFC ports we have to give the name of the logical destination created using SM59.

When using file port you can specify the directory where the IDOC file should be placed. The other system or the middleware will pick up the file from here. The Function module can be used to generate a file name for the idoc. While testing you can use "Outbound file" to specify a constant file name. The tab "outbound trigger" can be used to supply information if we want to trigger some processing on the subsystem when an idoc is created at this location. We have to specify the command file name and the directory which has to be run.
 
This is so CONFUSING!
Lets understand the process of creating an IDOC with an example -
Whenever a Purchase Order (PO) is created we want to send the IDOC to a vendor.
The PO is sent in the form of an IDOC to the vendor (partner). That partner has to be EDI enabled in that system. SAP should realize that it could send doc to this vendor electronically.
The PO sent as an outbound idoc by the customer will be inbound idoc for the vendor. The SAP system on the vendors side can process this to create an application document (a sales order) on their system.
Quotation, RFQ, PO, SO, Invoice, delivery note etc are some of the commonly exchanged documents through IDOC
The process of data transfer out of your SAP system is called the Outbound process , while that of data moving into you SAP system is called Inbound process. As a developer or a consultant who will be involved in setting up theses process for your organization. Here are the steps how to set them up-
The Outbound Process
Steps Involved -
1. Create segments(WE31)
2. Create an idoc type(WE30)
3. Create a message type (WE81)
4. Associate a message type to idoc type(WE82)
5. Create a port(WE21)
6. If you are going to use the message control method to trigger idocs then create the function module for creating the idoc and associate the function module to an outbound process code
7. Otherwise create the function module or stand alone program which will create the idoc
8. Create a partner profile(WE20) with the necessary information in the outbound parameters for the partner you want to exchange the idoc with.Trigger the idoc.
The Inbound Process
Steps Involved-
1. Creation of basic Idoc type (Transaction WE30)
2. Creating message type (Transaction WE81)
3. Associating the Message type to basic Idoc type (Transaction WE82)
4. Create the function module for processing the idoc
5. Define the function module characteristics (BD51)
6. Allocate the inbound function module to the message type(WE57)
7. Defining process code (Transaction WE42)
8. Creation of partner profile (Transaction WE20)
What is SAP LSMW ?
The LSMW Workbench is an  tool that supports the transfer of data from non-SAP systems ("Legacy Systems") to SAP  R/3 systems. This can be a one-time transfer as well as a periodic one.
LSMW also supports conversion of data of the legacy system in  numerous way. The data can then be imported into the SAP R/3 system via batch input, direct input, BAPIs or IDocs.
Furthermore, the LSM Workbench provides a recording function that allows generating a "data migration object" to enable migration from any required transaction.


LSMW can be used for following 3 functions -
The main functions of the LSM Workbench are:
1. Import data (legacy data in spreadsheet tables and/or sequential files)
2. Convert data (from source format to target format)
3. Import data (into the database of the R/3 application)
To start the LSMW workbench use transaction LSMW



Also check out next tutorial on executing LSMW Step by Step
How to Migrate Data using LSMW
Enter Transaction LSMW in SAP ,to start the workbench.



LSMW workbench shows the following information-
Project : An ID with a maximum of 10 characters to name your data transfer project. If you want to transfer data from several legacy systems, you may create a project e.g. for every legacy system.
Subproject: An ID with a maximum of 10 characters that is used as a further structuring attribute.
Object : An ID with a maximum of 10 characters to name the business object.
Enter Project ID , Subproject ID , Object ID.  Click Execute The next screen gives the STEPS in your LSMW data Migration



You can select a desired step and click execute. Lets look into each step in details
Step 1- Maintain Object Attributes.


There are four Modes of Data Transfer :
1. Standard/ Batch Input : Standard upload Programs
2. Batch Input Recording : Here you can create a recording of your own and use it to upload / change data
3. BAPIs : Standard BAPIs are used to upload Data
4. IDOCs : Any Inbound IDOC function modules can be used to process the data
Based on the requirement we try to find a suitable method to be processed. If it is a standard Master we can find it in the first method, Otherwise we try to use BAPIs or Idocs. If the requirement is a very custom one we use a recording to process the data.
Step 2 - Maintain  Source Structures


The source structures can be used to design the hierarchy of the files to be uploaded.
Step 3- Maintain  Source Fields
In this screen,the Fields which will be uploaded from the text file can be maintained here. The fields with identical names are taken as the Key



Source Filed  is used to identify whether a certain record should go to the specified structure. Eg : Suppose a file contains header rows and item rows, we can specify the first field as the indicator say 'H' for header and 'I' for Item. Thus when the file is being read, it checks the first field, if it is 'H' then it is read into the Header source structure else it is written to the item source structure.
The Source fields can be easily maintained in the form of a table maintenance.
Step 4 - Maintain Structure Relationships
The Structures which are needed for the processing of the data need to be assigned here. The Object may contain many structures and many source structures. The Mapping between the source and the target structures should be done after careful checking.



Step 5- Maintain Field Mapping and Conversion Rules
In this step, you assign source fields to target fields and define how the field contents will be converted.


  All fields of all target structures, which you selected in the previous step, will be displayed. For each target field the following information is displayed:
Field description
Assigned source fields (if any)
Rule type (fixed value, translation etc.)
Coding.
 Note: Some fields are preset by the system. These fields are called "technical fields" are marked with "Default setting". The coding for these fields is not displayed when first entering the fieldmapping; it can be displayed via the display variant. Changing the default setting may seriously affect the flow of the data conversion. If you erroneously changed the default setting, you can restore it by choosing Extras -> Restore default.
Step 6- Maintain Fixed Values,Translations and User-written Routines
Here the 3 reusable functions are maintained :
1. Fixed Values : Fixed values are values which are fixed across the project eg : Company Code. We can assign a fixed value to BUKRS and this fixed value can be used in all the objects in this project. So if the value changes we can only change at one place i.e. in the fixed values instead of changing in each and every object.
2. Translations : Here you can maintain the fixed translation for any legacy field and the translation can be assigned to the filed in Field Mapping and Conversion Rules. Translation can be 1:1 or many : 1 etc.
3. User Defined Routines : These are user defined subroutines that are used in the object for processing the data.
All the Three functions mentioned above are reusable Rules which are valid for all objects in one Project.


Step7- Specify Files
Here we define the Files that we use to upload the data. The File can be on the Front end or in the application server.


Step 8-  Assign Files
Here we define which file we are going to use for current upload i.e. whether the file is on Presentation server or application server.


Step 9- Read Data
Reading the data from the file gives us an option to read only a few records and not the entire chunk in order to enable testing of first few records. This also provides the user defined selection parameter which can be used to restrict the read data based on the condition specified.

Step 10- Display Read Data
In this step, you can display all or a part of the read data in table form. Clicking on a line displays all information for this line in a clear way. The same happens when you click on Field contents.
Change display allows to select either a one-line or multi-line view.
Display color palette displays the colors for the individual hierarchy levels.
Step 11- Convert Data
Converting the data is the transfer of data from source to target structures based on the conversion routines written in maintain Field Mapping and conversion routines.



Step 12- Import Data
The steps displayed by the program depend on the selected object type:
Standard batch input or recording:
1. Generate batch input session
2. Run batch input session
Standard direct input:
1. Start direct input session
BAPI or IDoc:
1. Start IDoc creation
2. Start IDoc processing
3. Create IDoc overview
4. Start IDoc post processing
This completes a detailed overview of steps to transfer your data using LSMW in SAP.

No comments: