Step by step procedure to Define Class
Hi Experts!!
Anybody please tell me step by step procedure do develop the class.
Thanks
Anee
Hi
Classes are templates for objects. Conversely, you can say that the type of an object is the same as its class.
components of the class describe the state and behavior of objects.
Local and Global Classes: Classes in ABAP Objects can be declared either globally or locally. You define global classes and interfaces in the Class Builder (Transaction SE24) in the ABAP Workbench. They are stored centrally in class pools in the class library in the R/3 Repository.
Local classes are defined within an ABAP program. Local classes and interfaces can only be used in the program in which they are defined.
When you use a class in an ABAP program, the system first searches for a local class with the specified name. If it does not find one, it then looks for a global class.
Apart from the visibility question, there is no difference between using a global class and using a local class.
Certain restrictions apply when you define the interface of a global class, since the system must be able to guarantee that any program using an object of a global class can recognize the data type of each interface parameter.
Defining Local Classes:
A complete class definition consists of a declaration part and, if required, an implementation part.
The declaration part of a class <class>
CLASS <class> DEFINITION. ... ENDCLASS.
It contains the declaration for all components (attributes, methods, events) of the class.
The declaration part belongs to the global program data.
If you declare methods in the declaration part of a class, you must also write an implementation part for it. This consists of a further statement block:
CLASS <class> IMPLEMENTATION. ... ENDCLASS
The implementation part of a local class is a processing block. Subsequent coding that is not itself part of a processing block is therefore not accessible.
REPORT YSUBOOPS17 .
CLASS c1 DEFINITION.
PUBLIC SECTION.
data : w_num type i value 5.
methods : m1.
ENDCLASS.
CLASS c1 IMPLEMENTATION.
METHOD M1.
WRITE:/5 'I am M1 in C1'.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
DATA : oref1 TYPE REF TO c1 .
CREATE OBJECT : oref1.
write:/5 oref1->w_num.
CALL METHOD : oref1->m1 .
Defined in the global area of a local program :-
CLASS <class name> DEFINITION.
ENDCLASS.
All the attributes , methods, events and interfaces are declared here.
Cannot be declared inside a subroutine/function module.
Class definition cannot be nested.
REPORT YSUBOOPS17 .
CLASS c1 DEFINITION.
PUBLIC SECTION.
data : w_num type i value 5.
methods : m1.
ENDCLASS.
CLASS c1 IMPLEMENTATION.
METHOD M1.
WRITE:/5 'I am M1 in C1'.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
DATA : oref1 TYPE REF TO c1 .
CREATE OBJECT : oref1.
write:/5 oref1->w_num.
CALL METHOD : oref1->m1 .
Local class in a program is implemented as follows:-
CLASS <class name> IMPLEMENTATION.
ENDCLASS.
Methods used by the class are described here.
A class can be implemented
At the end of the program( like subroutines).
After the class definition.
If the latter is adopted, one must then assign subsequent non-declarative statements explicitly to a processing block, such as START-OF-SELECTION, so that they can be accessed.
Similar Messages
-
Step by Step Procedure For defining/Implementing a Local Class
Hi!
I need simple step-by-step procedure for defining a local class ( having 1 function only) in ABAPCLASS lcl_class DEFINITION
CLASS lcl_class DEFINITION.
PUBLIC SECTION.
METHODS fm.
ENDCLASS. "lcl_class DEFINITION
CLASS lcl_implementation DEFINITION
CLASS lcl_class IMPLEMENTATION.
METHOD fm.
CALL FUNCTION 'FM'.
ENDMETHOD. "fm
ENDCLASS. "lcl_implementation DEFINITION
This is basic structure, which can be defined in an include (top include for data declaration), or some where local in your report / method.
You can use this class be instantiating it (CREATE OBJECT) and then call the method via the instance like this:
DATA: lr_object TYPE REF TO lcl_class.
START-OF-SELECTION.
CREATE OBJECT lr_object.
CALL METHOD lr_object->fm. -
Item Category step by step procedure
Dear Experts,
Could anyone explain me step by step procedure for define the function of sales document - Item Category exactly meaning and what it is used for as i am beginer in sap-sd. pls send me mail on this id : [email protected]
always rewarded points...
Thax B4 Hand
Vaibhavhi vaibhav,
For creating a sales order, you need tohave a sales document type defined, and then it has to be assigned to sales area,
in a sales order there are three kinds of information.1. Header leverl data - which is controlled by Order Type 2. Item leve- This is controlled by Item category 3. Schedule Line level - this is controlled by Schedule line category.
Now for a sales order to be created all these things have to be define and determined.
Order type determination: Sales Area Assigned to Order Type.
00010101 assign to order type.
Item Category Determination: Orderty type +Item Category Group + Usage Higher Level . for Eg ORNORM+ NIL+NIL determines item category as Tan.
Schedule Line Category: Item Cateogy+ Mrp Type -> Schedule Line Cateogyr
FOR EG: TAN+PD-> CP
I think this should be clear as new comer,
reward points if found helpful -
Pass an array of a user defined class to a stored procedure in java
Hi All,
I am trying to pass an array of a user defined class as an input parameter to a stored procedure. So far i have done the following:
Step 1: created an object type.
CREATE TYPE department_type AS OBJECT (
DNO NUMBER (10),
NAME VARCHAR2 (50),
LOCATION VARCHAR2 (50)
Step 2: created a varray of the above type.
CREATE TYPE dept_array1 AS TABLE OF department_type;
Step 3:Created a package to insert the records.
CREATE OR REPLACE PACKAGE objecttype
AS
PROCEDURE insert_object (d dept_array);
END objecttype;
CREATE OR REPLACE PACKAGE BODY objecttype
AS
PROCEDURE insert_object (d dept_array)
AS
BEGIN
FOR i IN d.FIRST .. d.LAST
LOOP
INSERT INTO department
VALUES (d (i).dno,d (i).name,d (i).location);
END LOOP;
END insert_object;
END objecttype;
Step 4:Created a java class to map the columns of the object type.
public class Department
private double DNO;
private String Name;
private String Loation;
public void setDNO(double DNO)
this.DNO = DNO;
public double getDNO()
return DNO;
public void setName(String Name)
this.Name = Name;
public String getName()
return Name;
public void setLoation(String Loation)
this.Loation = Loation;
public String getLoation()
return Loation;
Step 5: created a method to call the stored procedure.
public static void main(String arg[]){
try{
Department d1 = new Department();
d1.setDNO(1); d1.setName("Accounts"); d1.setLoation("LHR");
Department d2 = new Department();
d2.setDNO(2); d2.setName("HR"); d2.setLoation("ISB");
Department[] deptArray = {d1,d2};
OracleCallableStatement callStatement = null;
DBConnection dbConnection= DBConnection.getInstance();
Connection cn = dbConnection.getDBConnection(false); //using a framework to get connections
ArrayDescriptor arrayDept = ArrayDescriptor.createDescriptor("DEPT_ARRAY", cn);
ARRAY deptArrayObject = new ARRAY(arrayDept, cn, deptArray); //I get an SQLException here
callStatement = (OracleCallableStatement)cn.prepareCall("{call objecttype.insert_object(?)}");
((OracleCallableStatement)callStatement).setArray(1, deptArrayObject);
callStatement.executeUpdate();
cn.commit();
catch(Exception e){
System.out.println(e.toString());
I get the following exception:
java.sql.SQLException: Fail to convert to internal representation
My question is can I pass an array to a stored procedure like this and if so please help me reslove the exception.
Thank you in advance.OK I am back again and seems like talking to myself. Anyways i had a talk with one of the java developers in my team and he said that making an array of structs is not much use to them as they already have a java bean/VO class defined and they want to send an array of its objects to the database not structs so I made the following changes to their java class. (Again hoping some one will find this useful).
Setp1: I implemented the SQLData interface on the department VO class.
import java.sql.SQLData;
import java.sql.SQLOutput;
import java.sql.SQLInput;
import java.sql.SQLException;
public class Department implements SQLData
private double DNO;
private String Name;
private String Location;
public void setDNO(double DNO)
this.DNO = DNO;
public double getDNO()
return DNO;
public void setName(String Name)
this.Name = Name;
public String getName()
return Name;
public void setLocation(String Location)
this.Location = Location;
public String getLoation()
return Location;
public void readSQL(SQLInput stream, String typeName)throws SQLException
public void writeSQL(SQLOutput stream)throws SQLException
stream.writeDouble(this.DNO);
stream.writeString(this.Name);
stream.writeString(this.Location);
public String getSQLTypeName() throws SQLException
return "DOCCOMPLY.DEPARTMENT_TYPE";
Step 2: I made the following changes to the main method.
public static void main(String arg[]){
try{
Department d1 = new Department();
d1.setDNO(1);
d1.setName("CPM");
d1.setLocation("LHR");
Department d2 = new Department();
d2.setDNO(2);
d2.setName("Admin");
d2.setLocation("ISB");
Department[] deptArray = {d1,d2};
OracleCallableStatement callStatement = null;
DBConnection dbConnection= DBConnection.getInstance();
Connection cn = dbConnection.getDBConnection(false);
ArrayDescriptor arrayDept = ArrayDescriptor.createDescriptor("DEPT_ARRAY", cn);
ARRAY deptArrayObject = new ARRAY(arrayDept, cn, deptArray);
callStatement = (OracleCallableStatement)cn.prepareCall("{call objecttype.insert_array_object(?)}");
((OracleCallableStatement)callStatement).setArray(1, deptArrayObject);
callStatement.executeUpdate();
cn.commit();
catch(Exception e){
System.out.println(e.toString());
and it started working no more SQLException. (The changes to the department class were done manfully but they tell me JPublisher would have been better).
Regards,
Shiraz -
Can anyone explain me step by step procedure for creating badi?
hi all,,
Can anyone explain me about badi with step by step procedure with an example like trsn code mm01, xd01 etc.
And what is the significance of badi?
regs
hariHi
Business Add-Ins
Business Add-Ins are a new SAP enhancement technique based on ABAP Objects. They can be inserted into the SAP System to accommodate user requirements too specific to be included in the standard delivery. Since specific industries often require special functions, SAP allows you to predefine these points in your software.
As with customer exits (SMOD/CMOD [Page 40]), two different views are available:
In the definition view, an application programmer predefines exit points in a source that allow specific industry sectors, partners, and customers to attach additional software to standard SAP source code without having to modify the original object.
In the implementation view, the users of Business Add-Ins can customize the logic they need or use a standard logic if one is available.
In contrast to customer exits, Business Add-Ins no longer assume a two-system infrastructure (SAP and customers), but instead allow for multiple levels of software development (by SAP, partners, and customers, and as country versions, industry solutions, and the like). Definitions and implementations of Business Add-Ins can be created at each level within such a system infrastructure.
SAP guarantees the upward compatibility of all Business Add-In interfaces. Release upgrades do not affect enhancement calls from within the standard software nor do they affect the validity of call interfaces. You do not have to register Business Add-Ins in SSCR.
The Business Add-In enhancement technique differentiates between enhancements that can only be implemented once and enhancements that can be used actively by any number of customers at the same time.
In addition, Business Add-Ins can be defined according to filter values. This allows you to control add-in implementation and make it dependent on specific criteria (on a specific Country value, for example). All ABAP sources, screens, GUIs, and table interfaces created using this enhancement technique are defined in a manner that allows customers to include their own enhancements in the standard.
A single Business Add-In contains all of the interfaces necessary to implement a specific task. In Release 4.6A, program and menu enhancements can be made with Business Add-Ins. The actual program code is enhanced using ABAP Objects. In order to better understand the programming techniques behind the Business Add-In enhancement concept, SAP recommends reading the section on ABAP Objects
DEFINING THE BADI
1) execute Tcode SE18.
2) Specify a definition Name : ZBADI_SPFLI
3) Press create
4) Choose the attribute tab. Specify short desc for badi.. and specify the type :
multiple use.
5) Choose the interface tab
6) Specify interface name: ZIF_EX_BADI_SPFLI and save.
7) Dbl clk on interface name to start class builder . specify a method name (name,
level, desc).
Method level desc
Linese;ection instance methos some desc
8) place the cursor on the method name desc its parameters to define the interface.
Parameter type refe field desc
I_carrid import spfli-carrid some
I_connid import spefi-connid some
9) save , check and activate adapter class proposed by system is
ZCL_IM_IM_LINESEL is genereated.
IMPLEMENTATION OF BADI DEFINITION
1) EXECUTE tcode se18.choose menuitem create from the implementation menubar.
2) Specify aname for implementation ZIM_LINESEL
3) Specify short desc.
4) Choose interface tab. System proposes a name fo the implementation class.
ZCL_IM_IMLINESEL which is already generarted.
5) Specify short desc for method
6) Dbl clk on method to insert code..(check the code in AAA).
7) Save , check and activate the code.
Some useful URL
http://www.esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
http://www.esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
http://www.esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
http://www.esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
www.sapgenie.com/publications/saptips/022006%20-%20Zaidi%20BADI.pdf
http://www.sapdevelopment.co.uk/enhance/enhance_badi.htm
http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/c2/eab541c5b63031e10000000a155106/frameset.htm
Now write a sample program to use this badi method..
Look for BBB sample program.
AAA
data : wa_flights type sflight,
it_flights type table of sflight.
format color col_heading.
write:/ 'Flight info of:', i_carrid, i_connid.
format color col_normal.
select * from sflight
into corresponding fields of table it_flights
where carrid = i_carrid
and connid = i_connid.
loop at it_flights into wa_flights.
write:/ wa_flights-fldate,
wa_flights-planetype,
wa_flights-price currency wa_flights-currency,
wa_flights-seatsmax,
wa_flights-seatsocc.
endloop.
BBB
*& Report ZBADI_TEST *
REPORT ZBADI_TEST .
tables: spfli.
data: wa_spfli type spfli,
it_spfli type table of spfli with key carrid connid.
*Initialise the object of the interface.
data: exit_ref type ref to ZCL_IM_IM_LINESEL,
exit_ref1 type ref to ZIF_EX_BADISPFLI1.
selection-screen begin of block b1.
select-options: s_carr for spfli-carrid.
selection-screen end of block b1.
start-of-selection.
select * from spfli into corresponding fields of table it_spfli
where carrid in s_carr.
end-of-selection.
loop at it_spfli into wa_spfli.
write:/ wa_spfli-carrid,
wa_spfli-connid,
wa_spfli-cityfrom,
wa_spfli-deptime,
wa_spfli-arrtime.
hide: wa_spfli-carrid, wa_spfli-connid.
endloop.
at line-selection.
check not wa_spfli-carrid is initial.
create object exit_ref.
exit_ref1 = exit_ref.
call method exit_ref1->lineselection
EXPORTING
i_carrid = wa_spfli-carrid
i_connid = wa_spfli-connid.
clear wa_spfli.
u can find BADI's in different ways...
1>First go to any transaction->iN THE menu bar SYSTEM->STATUS->Get the program name ->double click->u will go to the program attached to the tcode.Now search term will be CALL CL_EXITHANDLER.Now u will get list of BADI'S available..
2>Goto SE24->Give class name as CL_EXITHANDLER->Display->double click on get_instance mathod->Now u will go inside the method->Now put break point on the cl_exithandler.Now go to any transaction code and pass dat..U will see that it will be stopped on the break point which u set on the cl_exithandler...In the exit name u can find list of badi's attached to the tcode..
There are multiple ways of searching for BADI.
Finding BADI Using CL_EXITHANDLER=>GET_INSTANCE
Finding BADI Using SQL Trace (TCODE-ST05).
Finding BADI Using Repository Information System (TCODE- SE84).
1. Go to the Transaction, for which we want to find the BADI, take the example of Transaction VD02. Click on System->Status. Double click on the program name. Once inside the program search for CL_EXITHANDLER=>GET_INSTANCE.
Make sure the radio button In main program is checked. A list of all the programs with call to the BADIs will be listed.
The export parameter EXIT_NAME for the method GET_INSTANCE of class CL_EXITHANDLER will have the user exit assigned to it. The changing parameter INSTANCE will have the interface assigned to it. Double click on the method to enter the source code.Definition of Instance would give you the Interface name.
2. Start transaction ST05 (Performance Analysis).
Set flag field "Buffer trace"
Remark: We need to trace also the buffer calls, because BADI database tables are buffered. (Especially view V_EXT_IMP and V_EXT_ACT)
Push the button "Activate Trace". Start transaction VA02 in a new GUI session. Go back to the Performance trace session.
Push the button "Deactivate Trace".
Push the button "Display Trace".
The popup screen "Set Restrictions for Displaying Trace" appears.
Now, filter the trace on Objects:
V_EXT_IMP
V_EXT_ACT
Push button "Multiple selections" button behind field Objects
Fill: V_EXT_IMP and V_EXT_ACT
All the interface class names of view V_EXT_IMP start with IF_EX_. This is the standard SAP prefix for BADI class interfaces. The BADI name is after the IF_EX_.
So the BADI name of IF_EX_CUSTOMER_ADD_DATA is CUSTOMER_ADD_DATA
3. Go to Maintain Transaction (TCODE- SE93).
Enter the Transaction VD02 for which you want to find BADI.
Click on the Display push buttons.
Get the Package Name. (Package VS in this case)
Go to TCode: SE84->Enhancements->Business Add-inns->Definition
Enter the Package Name and Execute.
Here you get a list of all the Enhancement BADIs for the given package MB.
The simplese way for finding BADI is
1. chooes Tcode Program & package for that Tcode.
2. Go to Tcode se18
3. Press F4
4. search by package or by program.
http://help.sap.com/saphelp_nw04/helpdata/en/eb/3e7cf7940e11d295df0000e82de14a/frameset.htm
and
http://help.sap.com/saphelp_nw04/helpdata/en/eb/3e7cf7940e11d295df0000e82de14a/frameset.htm
Badihttp://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm
http://support.sas.com/rnd/papers/sugi30/SAP.ppt
http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
http://members.aol.com/_ht_a/skarkada/sap/
http://www.ct-software.com/reportpool_frame.htm
http://www.saphelp.com/SAP_Technical.htm
http://www.kabai.com/abaps/q.htm
http://www.guidancetech.com/people/holland/sap/abap/
http://www.planetsap.com/download_abap_programs.htm
http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
/people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
/people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework
http://esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
http://esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
http://esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
http://esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
http://esnips.com/doc/365d4c4d-9fcb-4189-85fd-866b7bf25257/customer-exits--badi.zip
http://esnips.com/doc/3b7bbc09-c095-45a0-9e89-91f2f86ee8e9/BADI-Introduction.ppt
http://help.sap.com//saphelp_470/helpdata/EN/eb/3e7cee940e11d295df0000e82de14a/frameset.htm
sample code for Purchase requisition
BAdI Name: ZPUR_RFQ (Implementation name) Purchase Requisitions
Definition Name: ME_REQ_POSTED
Interface Name : IF_EX_ME_REQ_POSTED
Implementing Class: ZCL_IM_PUR_REQ
Method : POSTED
METHOD if_ex_me_req_posted~posted .
DATA : v_mtart TYPE mtart.
DATA l_s_eban TYPE ueban.
LOOP AT im_eban INTO l_s_eban.
IF l_s_eban-estkz NE 'B'.
CLEAR v_mtart.
SELECT SINGLE mtart INTO v_mtart FROM mara WHERE matnr = l_s_eban-matnr.
IF v_mtart EQ 'ZERS' OR v_mtart EQ 'FHMI' OR v_mtart EQ 'UNBW'.
MESSAGE e000(zm_msg) WITH 'You are not allowed' 'to create PR for stock items'.
ENDIF.
ENDIF.
IF l_s_eban-knttp NE 'F' OR l_s_eban-pstyp NE '9'.
IF l_s_eban-knttp NE 'A'.
IF ( l_s_eban-pstyp NE '9' AND l_s_eban-pstyp NE 'D' ) AND l_s_eban-matnr EQ
space.
MESSAGE e000(zm_msg) WITH 'You cannot create' 'a PR without material number'.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDMETHOD.
<b>Reward points for useful Answers</b>
Regards
Anji -
Pricing step by step procedure
Dear Experts,
pls send me the pricing notes ( step by step procedures) at my mail id
[email protected]
always reward point ...
Thanks b4 hand
VaibhavHi Vaibhav,
Following are the steps you need to follow for pricing.
Reward if this helps you...
PRICING (PG)
This concept is based on condition technique.
Its the combination of:
1) Condition Tables
2) Access Sequence
3) Condition Types
4) Pricing Procedure
1. Condition Tables: - Condition table contain the key fields for maintaining condition records. I.e. in other words condition records are stored in condition table.
Note: - A condition type can have multiple condition tables.
Note: - A condition table can be used for multiple condition types.
Defining condition tables: -
SPRO
Sales and Distribution
Basic functions
Pricing
Pricing control
Define condition tables [V/03]
Create condition tables
Enter a table number beyond 600
From the field catalogue, which is there on the right side of the screen select the required key fields.
To get the valid on / valid to fields while maintaining the condition records we need to check the field with validity period.
Go to icon Technical View
The fields which are marked, as footer field appears at the footer level at the condition records and the remaining fields appears at the key level.
Select the Icon Generate for generating the condition table.
To save the condition table, select the button Local object.
2. Access Sequence: - Access sequence is a search strategy with the help of which the system gets the valid condition records. It contains the required condition tables in the required order.
Note: - If required an access sequence can be used or assigned to multiple
Condition types.
Note: - The order in which the condition table are placed in access sequence
is important generally it is most specific to most generic
Defining Access Sequence: -
SPRO
Sales and distribution
Basic functions
Pricing
Pricing control
Define access sequences
Maintain access sequences
Go to new entries and define the access sequence.
Select the defined access sequence and go to accesses.
Go to new entries and place the condition tables in the required order
While placing the condition tables check the field exclusive. By doing so if the system finds a valid condition record in the first condition table it will not go to the next condition table
Select the condition table and go to fields the system gives the warning message the field assignment has not yet been made say enter till we get the fields.
Repeat the same step for all the condition tables and save it.
Note: - After defining the access sequence assign it to the corresponding condition type.
3. Condition Types: -
Defining condition types: -
SPRO
Sales and Distribution
Basic functions
Pricing
Pricing control
Define condition types.
Maintain condition types.
Functionality of a condition type: -
Access Sequence: - In this field specify the corresponding access sequence for the condition type.
Condition class: - It is the preliminary structuring of condition types.
Ex: - Surcharges or discounts and price
Plus/Minus: - If we specify negative here a condition type becomes discount and if we specify positive it becomes surcharge.
Calculation type: - Determines how the system calculates price discounts and surcharges in a condition type.
For Ex: - the system can calculate a price as a fixed amount or as a percentage based on the quantity, weight, or volume.
Condition Category: - Its a classification of conditions according to pre-defined categories.
Rounding Rule: - The rule that determines how the system rounds of condition values during pricing.
Manual Entries: - Indicator which controls the priority with in a condition type between a condition enter manually and a condition automatically determined by the system.
Amount / Percent: - If we check this field the amount / percentage of a condition type can be change during the document processing.
Quantity Relation: - Specifies whether the conversion factors for the units of measure in the condition type can be change during document processing.
Delete: - If we check this field the condition type can be deleted during the sales document processing.
Value: - If we check this field the condition value can be changed during the document processing.
Calculation type: - If we check this field the calculation type can be change during the document processing.
Item condition: - If we check this field for a condition types it becomes item condition, which has to be enter at the item level only.
Header condition: - If we check this field for a condition type it becomes header condition, which has to be entered at the header level only
Ex: - RB00 (Discount).
Note: - After entering the header condition type click on the button activate.
Note: - The condition amount of the header condition is copied as it is to all the line items in the document
Group condition: - If we check a header condition as a group condition the condition amount is distributed proportionately among all the line items in the sales document.
Valid from & valid to: - specifies the beginning and ending of the validity date that the system automatically proposes when we create condition records for the condition types.
Scale Basis: - Determines how the system interprets a pricing scale in a condition, for Ex: - the scale can be based on quantity weight and volume.
Check value: - Indicates whether the sale rates must be entered in ascending or descending order.
Note: - Header condition wont be having access sequence.
4. Pricing Procedure: - Pricing procedure contains all the required condition types in the required order.
Defining Pricing Procedure: -
SPRO
Sales and Distribution
Basic functions
Pricing
Pricing control
Define and assign pricing procedures.
Maintain pricing procedures
Go to new entries and define the pricing procedure.
Select the defined pricing procedure and go to control data
Go to new entries and place the required condition type in a specified order.
Step: - Specifies the number that determines the sequence of a condition type with in a procedure.
Counter: - Specifies the sequence number of a condition type with in a step in the procedure.
Condition type: - Specify the condition type.
From & To: - If you specify the reference steps in these fields, the condition values of the two steps specified and the condition values of the steps in between are totaled.
Manual: - If we check this field the condition type is only included in determination either if they are entered manually or if they are transferred from an external process such as costing.
Mandatory: - Indicates whether a condition type is mandatory when the system carries out pricing using the pricing procedure.
Statistical: - This indicator causes a condition type to be set in the document statistically only.
Print ID: - Controls the issue of condition lines when printing the documents such as order conformations or invoices. [X]
Sub Total: - Controls whether and in which fields the condition amounts or subtotals are stored.
Requirement: - For the condition type to be executed in the sales document the requirement specified here must be satisfied. [2]
Alternative calculation type: - Specifies the alternative formula to the calculation type in the standard system that determines a condition.
Alternative condition base value: - Specifies the formula for determining the condition basis as an alternative to the standard.
Account key: - This field along with few other fields enables the system to post the sales values to different General Ledger Accounts.
Ex: -
ERL  Sales Revenues
ERS  Sales Deductions
ERF  Freight Revenue
Accruals: - This is exclusively for rebate condition types. [B001 & B002]
Key, which identifies various types of General Ledger accounts for accruals posting.
Note: - to maintain the requirements and routines use the transaction code
[VOFM]
Pricing Procedure Determination: -
SPRO
Sales and Distribution
Basic Functions
Pricing
Pricing control
Define and Assign Pricing Procedures.
Define Pricing procedure determination [OVKK]
We have to assign the pricing procedure to the combination of Sales Organisation, Distribution Channel, Division, Document Pricing Procedure and customer pricing procedure.
Sales Organisations Distribution Channels Divisions Doc. Pricing Procedure Cus. Pricing Procedure
1000 10 00 A 01 & 02
2000 12 00 A 01 & 02 -
Pls Send me Step by Step procedure for a Smartforms
hi all ,
pls send me Step by step procedure for a Smartform creation or PPT to This Email id : [removed by moderator]
thanks in advance
rgds
rafi.vhi mahammad rafi,
u can read this,
smart forms
Introduction to SAP SmartForms
What is SAP Smart Forms?
SAP Smart Forms is introduced in SAP Basis Release 4.6C as the tool for creating and maintaining forms.
SAP Smart Forms allow you to execute simple modifications to the form and in the form logic by using simple graphical tools; in 90% of all
cases, this won't include any programming effort. Thus, a power user without any programming knowledge can
configure forms with data from an SAP System for the relevant business processes.
To print a form, you need a program for data retrieval and a Smart Form that contains the entire from logic. As data retrieval and form logic
are separated, you must only adapt the Smart Form if changes to the form logic are necessary. The application program passes the data via
a function module interface to the Smart Form. When activating the Smart Form, the system automatically generates a function module. At
runtime, the system processes this function module.
You can insert static and dynamic tables. This includes line feeds in individual table cells, triggering events for table headings and subtotals,
and sorting data before output.
You can check individual nodes as well as the entire form and find any existing errors in the tree structure. The data flow analysis checks
whether all fields (variables) have a defined value at the moment they are displayed.
SAP Smart Forms allow you to include graphics, which you can display either as part of the form or as background graphics. You use
background graphics to copy the layout of an existing (scanned) form or to lend forms a company-specific look. During printout, you can
suppress the background graphic, if desired.
SAP Smart Forms also support postage optimizing.
Also read SAP Note No. 168368 - Smart Forms: New form tool in Release 4.6C
What Transaction to start SAP Smart Forms?
Execute transaction SMARTFORMS to start SAP Smart Forms.
Key Benefits of SAP Smart Forms:
SAP Smart Forms allows you to reduce considerably the implementation costs of mySAP.com solutions since forms can be adjusted in
minimum time.
You design a form using the graphical Form Painter and the graphical Table Painter. The form logic is represented by a hierarchy structure
(tree structure) that consists of individual nodes, such as nodes for global settings, nodes for texts, nodes for output tables, or nodes for
graphics.
To make changes, use Drag & Drop, Copy & Paste, and select different attributes.
These actions do not include writing of coding lines or using a Script language.
Using your form description maintained in the Form Builder, Smart Forms generates a function module that encapsulates layout, content
and form logic. So you do not need a group of function modules to print a form, but only one.
For Web publishing, the system provides a generated XML output of the processed form.
Smart Forms provides a data stream called XML for Smart Forms (XSF) to allow the use of 3rd party printing tools. XSF passes form content
from R/3 to an external product without passing any layout information about the Smart Form.
Advantages of SAP Smart Forms
SAP Smart Forms have the following advantages:
1. The adaption of forms is supported to a large extent by graphic tools for layout and logic, so that no programming knowledge is
necessary (at least 90% of all adjustments). Therefore, power user forms can also make configurations for your business processes with
data from an SAP system. Consultants are only required in special cases.
2. Displaying table structures (dynamic framing of texts)
3. Output of background graphics, for form design in particular the use of templates which were scanned.
4. Colored output of texts
5. User-friendly and integrated Form Painter for the graphical design of forms
6. Graphical Table Painter for drawing tables
7. Reusing Font and paragraph formats in forms (Smart Styles)
8. Data interface in XML format (XML for Smart Forms, in short XSF)
9. Form translation is supported by standard translation tools
10. Flexible reuse of text modules
11. HTML output of forms (Basis release 6.10)
12. Interactive Web forms with input fields, pushbuttons, radio buttons, etc. (Basis-Release 6.10)
A Simple Smartform Tutorial
SAP Smartforms can be used for creating and maintaining forms for mass printing in SAP Systems. The output medium for Smartforms
support printer, fax, e-mail, or the Internet (by using the generated XML output).
According to SAP, you need neither have any programming knowledge nor use a Script language to adapt standard forms. However, basic
ABAP programming skills are required only in special cases (for example, to call a function module you created or for complex and extensive
conditions).
1. Create a new smartforms
Transaction code SMARTFORMS
Create new smartforms call ZSMART
2. Define looping process for internal table
Pages and windows
First Page -> Header Window (Cursor at First Page then click Edit -> Node -> Create)
Here, you can specify your title and page numbering
&SFSY-PAGE& (Page 1) of &SFSY-FORMPAGES(Z4.0)& (Total Page)
Main windows -> TABLE -> DATA
In the Loop section, tick Internal table and fill in
ITAB1 (table in ABAP SMARTFORM calling function) INTO ITAB2
3. Define table in smartforms
Global settings :
Form interface
Variable name Type assignment Reference type
ITAB1 TYPE Table Structure
Global definitions
Variable name Type assignment Reference type
ITAB2 TYPE Table Structure
4. To display the data in the form
Make used of the Table Painter and declare the Line Type in Tabstrips Table
e.g. HD_GEN for printing header details,
IT_GEN for printing data details.
You have to specify the Line Type in your Text elements in the Tabstrips Output options.
Tick the New Line and specify the Line Type for outputting the data.
Declare your output fields in Text elements
Tabstrips - Output Options
For different fonts use this Style : IDWTCERTSTYLE
For Quantity or Amout you can used this variable &GS_ITAB-AMOUNT(12.2)&
5. Calling SMARTFORMS from your ABAP program
REPORT ZSMARTFORM.
Calling SMARTFORMS from your ABAP program.
Collecting all the table data in your program, and pass once to SMARTFORMS
SMARTFORMS
Declare your table type in :-
Global Settings -> Form Interface
Global Definintions -> Global Data
Main Window -> Table -> DATA
Written by : SAP Hints and Tips on Configuration and ABAP/4 Programming
http://sapr3.tripod.com
TABLES: MKPF.
DATA: FM_NAME TYPE RS38L_FNAM.
DATA: BEGIN OF INT_MKPF OCCURS 0.
INCLUDE STRUCTURE MKPF.
DATA: END OF INT_MKPF.
SELECT-OPTIONS S_MBLNR FOR MKPF-MBLNR MEMORY ID 001.
SELECT * FROM MKPF WHERE MBLNR IN S_MBLNR.
MOVE-CORRESPONDING MKPF TO INT_MKPF.
APPEND INT_MKPF.
ENDSELECT.
At the end of your program.
Passing data to SMARTFORMS
call function 'SSF_FUNCTION_MODULE_NAME'
exporting
formname = 'ZSMARTFORM'
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
FM_NAME = FM_NAME
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3.
if sy-subrc <> 0.
WRITE: / 'ERROR 1'.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
call function FM_NAME
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS =
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS =
USER_SETTINGS = 'X'
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO =
JOB_OUTPUT_OPTIONS =
TABLES
GS_MKPF = INT_MKPF
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
Additional Fonts for your SMARTFORMS
You can create additional fonts and style with transaction SMARTSTYLES
This can then be define in the paragraph and character formats, which you can then be assign to texts and fields in the Smart Form.
The character formats includes effects such as superscript, subscript, barcode and font attributes.
Difference with SMARTFORMS vs. SapScript(SE71)
The Following are the differences :-
a) Multiple page formats are possible in smartforms which is not the case in SAPScripts
b) It is possible to have a smartform without a main window .
c) Labels cannot be created in smartforms.
d) Routines can be written in smartforms tool.
e) Smartforms generates a function module when activated.
Contributed by : SAP ABAP/4 Programming, Basis Administration, Configuration Hints and Tips
f) Unlike sapscripts (RSTXSCRP), you cannot upload/download Smartform to your local harddisk.
It was said that it was provided in CRM 3.0 version, but not available in R/3. You can download smartforms into Local PC in a XML format.
In the same way you can upload this XML format into Smartform. From the smartform editor itself you can call download option, if you are
working in CRM 3.0 environment.
In R3 also, you can download into XML format. However, it's not sure about uploading. Refer to the program 'SF_XSF_DEMO'.
In 4.7 Enterprise, other have seen this utlity which is completey missing in 4.6c. There is functionality to downlaod a complete form or only a
particular node. (Utilities -> Download form). It will create a XML file and save it in the hard disk.
For others, if you want to download/upload the Smartforms source, you will need the help from the Basis people. What you can do is to
create a Transport and then FTP down to your local harddisk. When you need the Smartform source in another system, you have FTP up
the Smartforms file back to the SAP server. Finally, the Basis team, will tp it into your system.
g) The protect and endprotect command in sapscript doesn't work with smartforms. For example on a invoice: First data of position no 80. is
printed on page one, other data of position no 80 is printed on page 2. And there's nothing you can do about it. Actually, there is
something you can do about it. By using a folder node and checking the 'protect' checkbox, everything in that folder will be page protected.
FAQ on Migrating SAPscript to SmartForms
Is it possible to migrate a SAPscript form to a Smart Form?
Smart Forms provides a migration tool for this purpose which migrates layout and texts of a SAPscript form to a Smart Form. It does not
migrate SAPscript form logic of the print program. Using Smart Forms, this logic is described by the tree structure of the Form Builder. The
effort involved in migrating it depends on the complexity of the print program.
Which Basis Release do I need to use SAP Smart Forms?
SAP Smart Forms is available as of R/3 Basis Release 4.6C.
I have heard that Smart Forms replaces SAPscript. What does "replace" mean?
It does not mean that SAPscript is removed from the Basis shipment. Even as of Basis Release 4.6C, SAPscript remains part of the SAP
standard and there are no plans to remove it. Since Smart Forms is currently, and will continue to be, the tool for form maintenance for
mySAP.com solutions, our further development efforts will focus on Smart Forms, not on SAPscript.
Do we have to migrate all SAPscript forms to Smart Forms?
There is no point in migrating all SAPscript forms already in use. Since SAPscript can still be used and will be available in the future, there is
no need to. If you plan to migrate a SAPscript form, it is recommended that you check whether benefit is worth the effort involved.
Conversion of SAPSCRIPT to SMARTFORMS
SAP provides a conversion for SAPscript documents to SMARTforms.
This is basically a function module, called FB_MIGRATE_FORM. You can start this function module by hand (via SE37), or create a small ABAP
which migrates all SAPscript forms automatically.
You can also do this one-by-one in transaction SMARTFORMS, under
Utilities -> Migrate SAPscript form.
You could also write a small batch program calling transaction SMARTFORMS and running the migration tool.
SmartForms System Fields
Within a form you can use the field string SFSY with its system fields. During form processing the system replaces these fields with the
corresponding values. The field values come from the SAP System or are results of the processing.
System fields of Smart Forms
&SFSY-DATE&
Displays the date. You determine the display format in the user master record.
&SFSY-TIME&
Displays the time of day in the form HH:MM:SS.
&SFSY-PAGE&
Inserts the number of the current print page into the text. You determine the format of the page number (for example, Arabic, numeric) in
the page node.
&SFSY-FORMPAGES&
Displays the total number of pages for the currently processed form. This allows you to include texts such as'Page x of y' into your output.
&SFSY-JOBPAGES&
Contains the total page number of all forms in the currently processed print request.
&SFSY-WINDOWNAME&
Contains the name of the current window (string in the Window field)
&SFSY-PAGENAME&
Contains the name of the current page (string in the Page field)
&SFSY-PAGEBREAK&
Is set to 'X' after a page break (either automatic [Page 7] or command-controlled [Page 46])
&SFSY-MAINEND&
Is set as soon as processing of the main window on the current page ends
&SFSY-EXCEPTION&
Contains the name of the raised exception. You must trigger your own exceptions, which you defined in the form interface, using the
user_exception macro (syntax: user_exception <exception name >).
Example Forms Available in Standard SAP R/3
SF_EXAMPLE_01
Simple example; invoice with table output of flight booking for one customer
SF_EXAMPLE_02
Similar to SF_EXAMPLE_01 but with subtotals
SF_EXAMPLE_03
Similar to SF_EXAMPLE_02, whereby several customers are selected in the application program; the form is called for each customer and all
form outputs are included in an output request
Smart forms Frequently Asked Questions
Forcing a page break within table loop
Create a loop around the table. Put a Command node before the table in the loop that forces a NEWPAGE on whatever condition you want.
Then only loop through a subset of the internal table (based on the conditions in the Command node) of the elements in the Table node.
Font style and Font size
Goto Transaction SMARTSTYLES.
There you can create Paragraph formats etc just like in sapscript.
Then in your window under OUTPUT OPTIONS you include this SMARTSTYLE and use the Paragraph and character formats.
Line in Smartform
Either you can use a window that takes up the width of your page and only has a height of 1 mm.
Then you put a frame around it (in window output options).
Thus you have drawn a box but it looks like a line.
Or you can just draw "__" accross the page and play with the fonts so that it joins each UNDER_SCORE.
Difference between 'forminterface' and 'global definitions' in global settings of smart forms
The Difference is as follows.
To put it very simply:
Form Interface is where you declare what must be passed in and out of the smartform (in from the print program to the smartform and out
from the smartform to the print program).
Global defs. is where you declare data to be used within the smartform on a global scope.
ie: anything you declare here can be used in any other node in the form.
Smartforms function module name
Once you have activated the smartform, go to the environment -> function module name. There you can get the name of funtion module
name.
The key thing is the program that calls it. for instance, the invoice SMARTFORM LB_BIL_INVOICE is ran by the program RLB_INVOICE.
This program uses another FM to determine the name of the FM to use itself. The key thing is that when it calls this FM (using a variable to
store the actual name), that the parameters match the paramters in your smartform.
Another thing to note is that the FM name will change wherever the SF is transported to.
So you need to use the FM to determine the name of the SF.
Here is the code that can be use to determine the internal name of the function module:
Code:
if sf_label(1) <> '/'. " need to resolve by name
move sf_label to externalname.
call function 'SSF_FUNCTION_MODULE_NAME'
exporting
formname = externalname
importing
fm_name = internalname
exceptions
no_form = 1
no_function_module = 2
others = 3.
if sy-subrc <> 0.
message 'e427'.
endif.
move internalname to sf_label.
endif.
It checks to see if the sf_label starts with a '/', which is how the internal names start. if it does, the name has already been converted. If
not, it calls the FM and converts the name.
You would then CALL FUNCTION sf_label.
Smartforms FAQ Part Two
Smartforms output difference
Problem with Smartforms: in a certain form for two differently configured printers, there seem to be a difference in the output of characters
per inch (the distance between characters which gives a layout problem - text in two lines instead of one.
It happens when the two printers having different Printer Controls' if you go to SPAD Menu (Spool Administrator Menu) you can see the
difference in the Printer Control and if you make the Printer control setting for both the printers as same. then it will be ok. and also u have
to check what is the device type used for both the output devices.
SmartForms Output to PDF
There is a way to download smartform in PDF format.
Please do the following:
1. Print the smartform to the spool.
2. Note the spool number.
3. Download a PDF file (Acrobat Reader) version of the spool by running Program RSTXPDFT4 and entering the
noted spool number.
SmartForm Doublesided printing question
Your customer wants your PO SmartForm to be able to print "Terms and Conditinos" on the back side of each page. They don't want to
purchase pre-printed forms with the company's logo on the front and terms & conditions on the back. Now this presents an interesting
problem.
Has anyone else ever had a request like this? If for example there was a 3 page PO to be printed, they want 3 pieces of paper, the front
side of each to containe the PO information (page 1, 2, and 3) and the back side of each piece of paper to containg the static "Terms &
Conditions" information.
Anyone have a clue how to force this out?
Easy - page FRONT lists page CONTACTS as next page and CONTACTS lists FRONT as next page. Since CONTACTS does not contain a MAIN
window, it will print the contacts info and then continue on to FRONT for the rest of the main items. Additionally, set print mode on FRONT to
D (duplex) and set CONTACTS to 'blank' (for both resource name and print mode - this is the only way to get to the back of the page).
Transport Smart Forms
How does one transport SMARTFORM? SE01?
How do you make sure that both, the SMARTFORM & it's function module gets transported? Or does the FM with same name gets generated
automatically in the transported client?
A smartform is transported no differently than any other object. if it is assigned to a development class that is atteched to a transport layer,
it will be transported.
The definition is transported, and when called, the function module is regenerated.
This leads to an interetsing situation. On the new machine, it is very likely the function module name will be different than the name on the
source system. Make sure, before you call the function module, you resolve the external name to the internal name using the
'SSF_FUNCTION_MODULE_NAME' function module.
Typically, generate the SF, then use the pattern to being in the interface. Then change the call function to use the name you get back from
the above function module.
Smartforms: protect lines in main window.
How to protect lines in the main window from splitting between pages?
It was easy with SAPscript, but how to do it with SF's. For 4.7 version if you are using tables, there are two options for protection against
line break:
- You can protect a line type against page break.
- You can protect several table lines against page break for output in the main area.
Protection against page break for line types
- Double-click on your table node and choose the Table tab page.
- Switch to the detail view by choosing the Details pushbutton.
- Set the Protection against page break checkbox in the table for the relevant line type. Table lines that use this line type are output on
one page.
Protection against page break for several table lines
- Expand the main area of your table node in the navigation tree.
- Insert a file node for the table lines to be protected in the main area.
- If you have already created table lines in the main area, you can put the lines that you want to protect again page break under the file
using Drag&Drop. Otherwise, create the table lines as subnodes of the file.
- Choose the Output Options tab page of the file node and set the Page Protection option. All table lines that are in the file with the Page
Protection option set are output on one page.
In 4.6, Alternatively in a paragraph format use the Page protection attribute to determine whether or not to display a paragraph completely
on one page. Mark it if you want to avoid that a paragraph is split up by a page break. If on the current page (only in the main window)
there is not enough space left for the paragraph, the entire paragraph appears on the next page.
Details information about SAP Barcodes
A barcode solution consists of the following:
- a barcode printer
- a barcode reader
- a mobile data collection application/program
A barcode label is a special symbology to represent human readable information such as a material number or batch number
in machine readable format.
There are different symbologies for different applications and different industries. Luckily, you need not worry to much about that as the
logistics supply chain has mostly standardized on 3 of 9 and 128 barcode symbologies - which all barcode readers support and which SAP
support natively in it's printing protocols.
You can print barcodes from SAP by modifying an existing output form.
Behind every output form is a print program that collects all the data and then pass it to the form. The form contains the layout as well as
the font, line and paragraph formats. These forms are designed using SAPScript (a very easy but frustratingly simplistic form format
language) or SmartForms that is more of a graphical form design tool.
Barcodes are nothing more than a font definition and is part of the style sheet associated with a particular SAPScript form. The most
important aspect is to place a parameter in the line of the form that points to the data element that you want to represent as barcode on
the form, i.e. material number. Next you need to set the font for that parameter value to one of the supported barcode symbologies.
The next part of the equation can be a bit tricky as you will need to get a printer to print that barcode font. Regular laser printers does not
normally print barcode fonts, only specialized industrial printers that is specifically designed to support that protocol and that uses
specialized label media and heat transfer (resin) ribbon to create the sharp image required for barcodes.
Not to fear though, there are two ways to get around this:
- You can have your IT department do some research -
most laser printers can accept a font cartridge/dimm chip (similar to computer memory), called a BarDIMM that will allow a laser printer to
support the printing of barcodes.
- Secondly, you can buy software that you can upload in your SAP pri
regards..
seshu. -
Step by step procedure for Upgrade to ECC6.0
Hi,
I gained a lot from this forum . Can someone please mail me at
[email protected]
step by step procedure for upgrade .
Will award full points for helpful documents..
With regards,
MrinalSAP defined a roadmap for upgrade.
1) Project Preparation
Analyze the actual situation
Define the objectives
Create the project plan
Carry out organizational preparation for example identify the project team
2)Upgrade Blueprint
The system and components affected
The mapped business processes
The requirements regarding business data
3)Upgrade Realization -- In this phase the solution described in the design phase is implemented in a test environment. This creates a pilot system landscape, in which the processes and all their interfaces can be mapped individually and tested on the functional basis.
4)Final Preparation for Cutover -- Testing, Training, Minimizing upgrade risks, Detailed upgrade planning
5)Production Cutover and Support
The production solution upgrade
Startup of the solutions in the new release
Post processing activities
Solving typical problems during the initial operation phase.
SAP expects at least 2 to 3 months for Upgrade and that again depends on project scope and complexity and various other factors.
STEPS IN TECHNICAL UPGRADE
Basis Team will do the prepare activities. (UNIX, BASIS, DBA).
Developer need to run the Transaction SPDD which provides the details of SAP Standard Dictionary objects that have been modified by the client. Users need to take a decision to keep the changes or revert back to the SAP Standard Structure. More often decision is to keep the change. This is mandatory activity in upgrade and avoids data loses in new system.
After completing SPDD transaction, we need to run SPAU Transaction to get the list of Standard SAP programs that have been modified. This activity can be done in phases even after the upgrade. Generally this will be done in same go so that your testing results are consistent and have more confident in upgrade.
Run SPUMG Transaction for Unicode Conversion in non-Unicode system. SPUM4 in 4.6c.
Then we need to move Z/Y Objects. Need to do Extended programming check, SQL trace, Unit testing, Integration testing, Final testing, Regression Testing, Acceptance Testing etc.,
The main Category of Objects that needs to be Upgraded is
Includes
Function Groups / Function Modules
Programs / Reports
OSS Notes
SAP Repository Objects
SAP Data Dictionary Objects
Domains, Data Elements
Tables, Structures and Views
Module Pools, Sub Routine pools
BDC Programs
Print Programs
SAP Scripts, Screens
User Exits
Also refer to the links -
http://service.sap.com
http://solutionbrowser.erp.sap.fmpmedia.com/
http://help.sap.com/saphelp_nw2004s/helpdata/en/60/d6ba7bceda11d1953a0000e82de14a/content.htm
http://www.id.unizh.ch/dl/sw/sap/upgrade/Master_Guide_Enh_Package_2005_1.pdf
Hope this helps you. -
Step by step procedure of creation of Search help is required...
Hiii,
Can any one send me the detail step by step procedure for creation of Serach Help... like simple search help , collective search help and complex search help...
If possible send some exampless for creation of search help.
vamsii..Search help is an object of the ABAP Dictionary with which input helps (F4 helps) can be defined.
You can create it in the Transaction Code SE11, choosing "Search Help" Radio-Button.
There are the following types of search helps:
Elementary search helps implement a search path for determining the possible entries.
Collective search helps contain several elementary search helps. A collective search help therefore provides several alternative search paths for possible entries.
Append search helps can be used to enhance collective search helps delivered by SAP with customer-specific search paths without requiring a modification.
Check step-by-step process for creating elementary search help.
http://help.sap.com/saphelp_nw2004s/helpdata/en/cf/21ee5f446011d189700000e8322d00/content.htm
Also check this thread.
what is the use of search helps? where can we creat it?
Regards,
Maha -
XI Installation Step-by-step procedure
Hello XI Guru's,
Can anybody share their SAP XI 3.0 SR1 installation procedure. I am intersted to know what are the DVD/CDs required on a windows environment and step-step procedure.
Thanks in Advance..
LaxmanHi Laxman,
Follow these steps while installing XI:
1. Windows server or advanced server with latest service patch.
2. IE 6.0 with latest service patch
3. Install Microsoft office and winzip, acrobat
4. Install JDK with version 1.4.2_03 or above with the corresponding JVM
5. Install the SAP GUI 6.20
6. Make sure that you have hard disk space of 10 GB in C drive and 50 GB in the installation drive.
7. Make sure the virtual memory is between 512 and 1594 or above for the installation drive.
8. Copy the dumps of following DVDs into the installation drive.
Installation Master DVD
Installation Export
Additonal Components for SAP BW/SAP XI,SAP MI,SAP KW
SAP Web As Java
9. Start the installation from the DVD dump Installation Master DVD.
10. When installing the ABAP Database the SID of the oracle default database should be different the ABAP database SID.
U can go through the Installtion Guides for Installing XI from http://service.sap.com/instguides (SR1 installation)
u can also refer to service.sap.com/platforms to see the available platform on which XI can be installed. ( Windows/linux/UNIX)
or you can even go through this weblog which clearly talks to you about XI installation
<a href="/people/sap.user72/blog/2005/05/31/my-experience-with-xi-installation-on-fedora-core-3-linux installation</a>
In addition to this installation guide you also need to download the XI configuration guide which is very useful for technical configurations of various adapters and XI system.
At the same place you will also get the XI configuration guide e.g XI30ConfigGuideSPS11.pdf.
U can also download SAP Exchange Infrastructure 3.0 SR1 Installtion Guide from the articles scetion.
ABOUT XI :
If its just that you wanted to know more about sap xi....then the information below should definitely help you.
The best way to learn XI would be to make the maximum use of XI from its forums, weblogs, presentations, etc in SDN.
First I thought I will just give u the basic steps involved in doing any scenario in XI. This is very essential for a beginner.
First of all you would need to define your product, software component, business system and configure the technical landscape in the sld.
You then go on to create the objects in the repository, you import your software component here and then begin your design steps. To import your RFCs n Idocs if you require any before proceeding.
Then under the name space which you want, you go on to define your data types, message types and message interfaces.
Then you do your message mappings where you specify your source and target message types and the relation between them, then you do your interface mapping. If you are using a BPM, you do the integration process.
Once you have this done, you will have to move to the directory, here is where you define how you use the objects and how you configure them to work as a scenario.
You assign your business system to the configuration scenario which you have created, and create the communication channels. Then you go on to configure the receiver determination, interface determination, and the sender and receiver agreements. Once youre done you will have make sure you activate your objects. The exact parameters steps depend on what kind of scenario you are implementing.
You can use sxmb moni or the runtime workbench to monitor the entire scenario which you have done.
Also I would suggest this link on SAP help for any info that you want on XI,
http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
Further, this thread deals with everything that is needed for a starter on XI. Do check them out,
JDBC Receiver: exact SQL statement
/message/527697#527697 [original link is broken]
And after you are done with the documentation probably you can go through this scenario,
JDBC Receiver: exact SQL statement
Also check the following threads which might help you a little more,
Learning XI
XI 3.0 Training
In simple words regarding learning XI, there is an abundance of information on SDN and help.sap.com . So I think it will be better for you to search information there rather than me just providing you links .which will just go on and on and on .so I felt it is better for you to go and search so that not only you get information on SAP XI but also explore SDN in its real sense.
Regards,
Abhy -
Friends ! Can you please provide step by step procedure for SOAP Scenario
Can you please provide step by step procedure for SOAP Scenario.
I want to practice it on my PC.Hi
1.First you need to Uploading the WSDL into the Integration Repository
For this
Go to your Software Component Version and open the required Namespace. Create an External Definition:
In the external definition object, choose Category wsdl and click Import external definitions.
2.Now create MI.
In the message interface object, select the message types of the external definition
object by using the input help.
3.Creating a SOAP Sender Channel
Here we have to define the namespace and the name of a message interface (values can be taken from Integration Repository).
Select the Quality of Service
4.Creating a SOAP Receiver Channel
The obligatory parameters in the configuration are Target URL and SOAP action.
5.Create a WSDL from an Interface Definition
Finally Test the Scenario Using a SOAP Client.
Get back if you have some doubts.
Thanks -
Step by step procedure with scren shot for BAPI?
Hi,
could u tell me the senario for bapi in real time ?
how to do in realtime ?
any body tellme the step by step procedure with screen shot pls could u help?
i will be waiting for reply.
rehards
eswarHi
what is BAPI?
BAPI stands for Business API(Application Program Interface).
A BAPI is remotely enabled function module ie it can be invoked from remote programs like standalone JAVA programs, web interface etc..
You can make your function module remotely enabled in attributes of Function module but
A BAPI are standard SAP function modules provided by SAP for remote access. Also they are part of Businees Objest Repository(BOR).
BAPI are RFC enabled function modules. the difference between RFc and BAPI are business objects. You create business objects and those are then registered in your BOR (Business Object Repository) which can be accessed outside the SAP system by using some other applications (Non-SAP) such as VB or JAVA. in this case u only specify the business object and its method from external system in BAPI there is no direct system call. while RFC are direct system call Some BAPIs provide basic functions and can be used for most SAP business object types. These BAPIs should be implemented the same for all business object types. Standardized BAPIs are easier to use and prevent users having to deal with a number of different BAPIs. Whenever possible, a standardized BAPI must be used in preference to an individual BAPI.
The following standardized BAPIs are provided:
Reading instances of SAP business objects
GetList ( ) With the BAPI GetList you can select a range of object key values, for example, company codes and material numbers.
The BAPI GetList() is a class method.
GetDetail() With the BAPI GetDetail() the details of an instance of a business object type are retrieved and returned to the calling program. The instance is identified via its key. The BAPI GetDetail() is an instance method. BAPIs that can create, change or delete instances of a business object type
The following BAPIs of the same object type have to be programmed so that they can be called several times within one transaction. For example, if, after sales order 1 has been created, a second sales order 2 is created in the same transaction, the second BAPI call must not affect the consistency of the sales order 2. After completing the transaction with a COMMIT WORK, both the orders are saved consistently in the database.
Create( ) and CreateFromData! ( )
The BAPIs Create() and CreateFromData() create an instance of an SAP business object type, for example, a purchase order. These BAPIs are class methods.
Change( )
The BAPI Change() changes an existing instance of an SAP business object type, for example, a purchase order. The BAPI Change () is an instance method.
Delete( ) and Undelete( ) The BAPI Delete() deletes an instance of an SAP business object type from the database or sets a deletion flag.
The BAPI Undelete() removes a deletion flag. These BAPIs are instance methods.
Cancel ( ) Unlike the BAPI Delete(), the BAPI Cancel() cancels an instance of a business object type. The instance to be cancelled remains in the database and an additional instance is created and this is the one that is actually canceled. The Cancel() BAPI is an instance method.
Add<subobject> ( ) and Remove<subobject> ( ) The BAPI Add<subobject> adds a subobject to an existing object inst! ance and the BAPI and Remove<subobject> removes a subobject from an object instance. These BAPIs are instance methods.
BAPI-step by step
http://www.sapgenie.com/abap/bapi/example.htm
just refer to the link below
http://www.sapmaterial.com/?gclid=CN322K28t4sCFQ-WbgodSGbK2g
list of all bapis
http://www.planetsap.com/LIST_ALL_BAPIs.htm
for BAPI's
http://www.sappoint.com/abap/bapiintro.pdf
http://www.sappoint.com/abap/bapiprg.pdf
http://www.sappoint.com/abap/bapiactx.pdf
http://www.sappoint.com/abap/bapilst.pdf
http://www.sappoint.com/abap/bapiexer.pdf
http://service.sap.com/ale
http://service.sap.com/bapi
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE8/BCFESDE8.pdf
http://www.planetsap.com/Bapi_main_page.htm
http://www.topxml.com/sap/sap_idoc_xml.asp
http://www.sapdevelopment.co.uk/
http://www.sapdevelopment.co.uk/java/jco/bapi_jco.pdf
Also refer to the following links..
www.sap-img.com/bapi.htm
www.sap-img.com/abap/bapi-conventions.htm
www.planetsap.com/Bapi_main_page.htm
www.sapgenie.com/abap/bapi/index.htm
Checkout !!
http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
http://techrepublic.com.com/5100-6329-1051160.html#
Example Code
U need to give the step_nr, item_nr, cond_count and cond_type so the correct conditon will be updated. If no condition exists for the given parameters, a new condition will be created.
U can find these parameters for a particular condition type in table KONV.
*& Form saveTransactionJOCR
text
--> p1 text
<-- p2 text
FORM saveTransactionJOCR .
data: salesdocument like BAPIVBELN-VBELN,
order_header_inx like bapisdh1x,
order_header_in like bapisdh1,
return type standard table of bapiret2 with header line,
conditions_in type standard table of bapicond with header line,
conditions_inx type standard table of bapicondx with header line,
logic_switch like BAPISDLS,
step_nr like conditions_in-cond_st_no,
item_nr like conditions_in-itm_number,
cond_count like conditions_in-cond_count,
cond_type like conditions_in-cond_type.
salesdocument = wa_order_information-VBELN.
LOGIC_SWITCH-COND_HANDL = 'X'.
order_header_inx-updateflag = 'U'.
conditions
clear conditions_in[].
clear conditions_inx[].
clear: step_nr,
item_nr,
cond_count,
cond_type.
step_nr = '710'.
item_nr = '000000'.
cond_count = '01'.
cond_type = 'ZCP2'.
CONDITIONS_IN-ITM_NUMBER = item_nr.
conditions_in-cond_st_no = step_nr.
CONDITIONS_IN-COND_COUNT = cond_count.
CONDITIONS_IN-COND_TYPE = cond_type.
CONDITIONS_IN-COND_VALUE = 666.
CONDITIONS_IN-CURRENCY = 'EUR'.
append conditions_in.
CONDITIONS_INX-ITM_NUMBER = item_nr.
conditions_inx-cond_st_no = step_nr.
CONDITIONS_INX-COND_COUNT = cond_count.
CONDITIONS_INX-COND_TYPE = cond_type.
CONDITIONS_INX-UPDATEFLAG = 'U'.
CONDITIONS_INX-COND_VALUE = 'X'.
CONDITIONS_INX-CURRENCY = 'X'.
append conditions_inx.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
SALESDOCUMENT = salesdocument
ORDER_HEADER_IN = order_header_in
ORDER_HEADER_INX = order_header_inx
LOGIC_SWITCH = logic_switch
TABLES
RETURN = return
CONDITIONS_IN = conditions_in
CONDITIONS_INX = conditions_inx
if return-type ne 'E'.
commit work and wait.
endif.
ENDFORM. " saveTransactionJOCR
Bdc to Bapi
The steps to be followed are :
1. Find out the relevant BAPI (BAPI_SALESORDER_CHANGE for VA02).
[for VA01 use BAPI_SALESORDER_CREATEFROMDAT2]
2. Create a Z program and call the BAPi (same as a Funtion module call).
2. Now, if you see this BAPi, it has
-> Importing structures.
eg: SALESDOCUMENT: this will take the Sales order header data as input.
-> Tables parameters:
eg: ORDER_ITEM_IN: this will take the line item data as input.
Note :
Only specify fields that should be changed
Select these fields by entering an X in the checkboxes
Enter a U in the UPDATEFLAG field
Always specify key fields when changing the data, including in the checkboxes
The configuration is an exception here. If this needs to be changed, you need to complete it again fully.
Maintain quantities and dates in the schedule line data
Possible UPDATEFLAGS:
U = change
D = delete
I = add
Example
1. Delete the whole order
2. Delete order items
3. Change the order
4. Change the configuration
Notes
1. Minimum entry:
You must enter the order number in the SALESDOCUMENT structure.
You must always enter key fields for changes.
You must always specify the update indicator in the ORDER_HEADER_INX.
2. Commit control:
The BAPI does not run a database Commit, which means that the application must trigger the Commit so that the changes are read to the database. To do this, use the BAPI_TRANSACTION_COMMIT BAPI.
For further details... refer to the Function Module documentation for the BAPi.
Bapi to VB(Visual Basic)
Long back I had used the following flow structure to acheive the same.
Report -> SM59 RFC destination -> COM4ABAP -> VB.exe
my report uses the rfc destination to create a COM session with com4abap. com4abap calls the vb.exe and manages the flow of data between sap and vb exe.
You need to have com4abap.exe
If com4abap is installed you will find it in sapgui installatin directory , C:\Program Files\SAPpc\sapgui\RFCSDK\com4abap.
else refer OSS note 419822 for installation of com4abap
after making the settings in com4abap to point to the vb program and setting up rfc destination in sm59 to point to com4abap session , you can use the following function modules to call the vb code.
for setting up com4abap and rfc destination please refer to the documentation for com4abap.
Invoke NEW DCOM session
call function 'BEGIN_COM_SESSION'
exporting
service_dest = service_dest "(this will be a RFC destination created in SM59)
importing
worker_dest = worker_dest
exceptions
connect_to_dcom_service_failed = 1
connect_to_dcom_worker_failed = 2
others = 3.
call function 'create_com_instance' destination worker_dest
exporting
clsid = g_c_clsid
typelib = g_c_typelib
importing
instid = g_f_oid
exceptions
communication_failure = 1 message g_f_msg
system_failure = 2 message g_f_msg
invalid_instance_id = 3
others = 4.
call function 'com_invoke' destination worker_dest
exporting
%instid = g_f_oid
%method = 'UpdatePDF'
sntemp = g_v_const_filent
snsysid = sy-sysid
snflag = 'N'
tables
rssaptable = g_t_pdfdetail1
%return = g_t_pdfdetail1 "t_test
exceptions
communication_failure = 1 message g_f_msg
system_failure = 2 message g_f_msg
invalid_instance_id = 3
others = 4.
then close the com session , using
FM delete_com_instance
FM END_COM_SESSION
see the sample code
REPORT zpo_bapi_purchord_tej.
DATA DECLARATIONS *
TYPE-POOLS slis.
TYPES: BEGIN OF ty_table,
v_legacy(8),
vendor TYPE bapimepoheader-vendor,
purch_org TYPE bapimepoheader-purch_org,
pur_group TYPE bapimepoheader-pur_group,
material TYPE bapimepoitem-material,
quantity(13),
delivery_date TYPE bapimeposchedule-delivery_date,
net_price(23),
plant TYPE bapimepoitem-plant,
END OF ty_table.
TYPES: BEGIN OF ty_alv,
v_legs(8),
success(10),
v_legf(8),
END OF ty_alv.
TYPES: BEGIN OF ty_alv1,
v_legf1(8),
v_msg(500),
END OF ty_alv1.
*-----Work area declarations.
DATA: x_table TYPE ty_table,
x_header TYPE bapimepoheader,
x_headerx TYPE bapimepoheaderx,
x_item TYPE bapimepoitem,
x_itemx TYPE bapimepoitemx,
x_sched TYPE bapimeposchedule,
x_schedx TYPE bapimeposchedulx,
x_commatable(255),
x_alv TYPE ty_alv,
x_alv1 TYPE ty_alv1,
x_alv2 TYPE ty_alv1.
*-----Internal table declarations.
DATA: it_table TYPE TABLE OF ty_table,
it_commatable LIKE TABLE OF x_commatable,
it_item TYPE TABLE OF bapimepoitem,
it_itemx TYPE TABLE OF bapimepoitemx,
it_sched TYPE TABLE OF bapimeposchedule,
it_schedx TYPE TABLE OF bapimeposchedulx,
it_alv TYPE TABLE OF ty_alv,
it_alv1 TYPE TABLE OF ty_alv1,
it_alv2 TYPE TABLE OF ty_alv1.
DATA: po_number TYPE bapimepoheader-po_number,
x_return TYPE bapiret2,
it_return TYPE TABLE OF bapiret2,
v_file TYPE string,
v_temp(8),
v_succsount TYPE i VALUE 0,
v_failcount TYPE i VALUE 0,
v_total TYPE i.
DATA: v_temp1(5) TYPE n VALUE 0.
DATA: x_event TYPE slis_t_event,
x_fieldcat TYPE slis_t_fieldcat_alv,
x_list_header TYPE slis_t_listheader,
x_event1 LIKE LINE OF x_event,
x_layout1 TYPE slis_layout_alv,
x_variant1 TYPE disvariant,
x_repid2 LIKE sy-repid.
DATA : it_fieldcat TYPE TABLE OF slis_t_fieldcat_alv.
SELECTION-SCREEN *
SELECTION-SCREEN BEGIN OF BLOCK v_b1 WITH FRAME.
*-----To fetch the flat file.
PARAMETERS: p_file TYPE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK v_b1.
AT SELECTION-SCREEN *
AT SELECTION-SCREEN.
IF p_file IS INITIAL.
MESSAGE text-001 TYPE 'E'.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
*-----To use F4 help to find file path.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
IMPORTING
file_name = p_file.
v_file = p_file.
START-OF-SELECTION *
START-OF-SELECTION.
PERFORM gui_upload.
LOOP AT it_table INTO x_table.
PERFORM header_details.
v_temp = x_table-v_legacy.
LOOP AT it_table INTO x_table WHERE v_legacy = v_temp.
PERFORM lineitem.
PERFORM schedule.
ENDLOOP.
DELETE it_table WHERE v_legacy = v_temp.
PERFORM bapicall.
MOVE po_number TO x_alv-success.
APPEND x_alv TO it_alv.
CLEAR x_alv.
*-----To clear the item details in internal table after the operation for a header.
REFRESH: it_item,
it_itemx,
it_sched,
it_schedx.
CLEAR: v_temp1.
ENDLOOP.
v_total = v_succsount + v_failcount.
PERFORM display_alv.
FORM GUI_UPLOAD *
FORM gui_upload .
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_file
filetype = 'ASC'
TABLES
data_tab = it_commatable
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17
IF sy-subrc = 0.
*-----To fetch the comma seperated flat file into an internal table.
LOOP AT it_commatable INTO x_commatable.
IF x_commatable IS NOT INITIAL.
SPLIT x_commatable AT ',' INTO
x_table-v_legacy
x_table-vendor
x_table-purch_org
x_table-pur_group
x_table-material
x_table-quantity
x_table-delivery_date
x_table-net_price
x_table-plant.
APPEND x_table TO it_table.
ENDIF.
CLEAR x_table.
ENDLOOP.
ENDIF.
ENDFORM. " gui_upload
FORM HEADER_DETAILS *
FORM header_details .
MOVE 'NB' TO x_header-doc_type.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = x_table-vendor
IMPORTING
output = x_table-vendor
MOVE x_table-vendor TO x_header-vendor.
MOVE x_table-purch_org TO x_header-purch_org.
MOVE x_table-pur_group TO x_header-pur_group.
x_headerx-doc_type = 'X'.
x_headerx-vendor = 'X'.
x_headerx-purch_org = 'X'.
x_headerx-pur_group = 'X'.
ENDFORM. " header_details
FORM LINEITEM *
FORM lineitem .
v_temp1 = v_temp1 + 10.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = v_temp1
IMPORTING
output = v_temp1.
MOVE v_temp1 TO x_item-po_item.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = x_table-material
IMPORTING
output = x_table-material.
MOVE x_table-material TO x_item-material.
MOVE x_table-quantity TO x_item-quantity.
MOVE x_table-net_price TO x_item-net_price.
MOVE x_table-plant TO x_item-plant.
x_itemx-po_item = v_temp1.
x_itemx-material = 'X'.
x_itemx-quantity = 'X'.
x_itemx-net_price = 'X'.
x_itemx-plant = 'X'.
APPEND x_item TO it_item.
APPEND x_itemx TO it_itemx.
CLEAR: x_item, x_itemx.
ENDFORM. " lineitem1
FORM SCHEDULE *
FORM schedule .
MOVE x_table-delivery_date TO x_sched-delivery_date.
MOVE v_temp1 TO x_sched-po_item.
x_schedx-delivery_date = 'X'.
x_schedx-po_item = v_temp1.
APPEND x_sched TO it_sched.
APPEND x_schedx TO it_schedx.
CLEAR: x_sched, x_schedx.
ENDFORM. " schedule
FORM BAPICALL *
FORM bapicall .
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
poheader = x_header
poheaderx = x_headerx
IMPORTING
exppurchaseorder = po_number
TABLES
return = it_return
poitem = it_item
poitemx = it_itemx
poschedule = it_sched
poschedulex = it_schedx.
IF po_number IS NOT INITIAL.
v_succsount = v_succsount + 1.
MOVE x_table-v_legacy TO x_alv-v_legs.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
ELSE.
v_failcount = v_failcount + 1.
MOVE x_table-v_legacy TO x_alv-v_legf.
MOVE x_table-v_legacy TO x_alv1-v_legf1.
LOOP AT it_return INTO x_return.
IF x_alv1-v_msg IS INITIAL.
MOVE x_return-message TO x_alv1-v_msg.
ELSE.
CONCATENATE x_alv1-v_msg x_return-message INTO x_alv1-v_msg SEPARATED BY space.
ENDIF.
ENDLOOP.
APPEND x_alv1 TO it_alv1.
CLEAR x_alv1.
ENDIF.
ENDFORM. " bapicall
FORM DISPLAY_ALV *
FORM display_alv .
PERFORM x_list_header.
PERFORM build_fieldcat CHANGING x_fieldcat.
x_repid2 = sy-repid.
x_event1-name = 'TOP_OF_PAGE'.
x_event1-form = 'TOP_OF_PAGE'.
APPEND x_event1 TO x_event.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = x_repid2
is_layout = x_layout1
it_fieldcat = x_fieldcat
i_callback_user_command = 'USER_COMMAND'
i_callback_top_of_page = 'TOP_OF_PAGE'
i_save = 'A'
is_variant = x_variant1
it_events = x_event
TABLES
t_outtab = it_alv
EXCEPTIONS
program_error = 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.
ENDIF.
ENDFORM. " display_master_data
FORM USER_COMMAND *
FORM user_command USING ucomm LIKE sy-ucomm selfield
TYPE slis_selfield.
READ TABLE it_alv INTO x_alv INDEX selfield-tabindex.
CLEAR : x_alv2,it_alv2[].
LOOP AT it_alv1 INTO x_alv1 WHERE v_legf1 = x_alv-v_legf.
x_alv2 = x_alv1.
APPEND x_alv2 TO it_alv2 .
ENDLOOP.
DATA : it_fieldcat TYPE slis_t_fieldcat_alv.
DATA : x3_fieldcat LIKE LINE OF it_fieldcat.
CLEAR : x3_fieldcat,it_fieldcat[].
CLEAR x3_fieldcat.
x3_fieldcat-col_pos = '1'.
x3_fieldcat-fieldname = 'V_LEGF1'.
x3_fieldcat-reptext_ddic = text-111.
x3_fieldcat-ref_tabname = 'IT_ALV2'.
APPEND x3_fieldcat TO it_fieldcat.
CLEAR x3_fieldcat.
CLEAR x3_fieldcat.
x3_fieldcat-col_pos = '1'.
x3_fieldcat-fieldname = 'V_MSG'.
x3_fieldcat-reptext_ddic = text-112.
x3_fieldcat-ref_tabname = 'IT_ALV2'.
APPEND x3_fieldcat TO it_fieldcat.
CLEAR x3_fieldcat.
x_layout1-colwidth_optimize = 'X'.
x_layout1-zebra = 'X'.
IF it_alv2[] IS NOT INITIAL.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = x_repid2
is_layout = x_layout1
it_fieldcat = it_fieldcat
i_save = 'A'
i_callback_top_of_page = 'TOP'
is_variant = x_variant1
it_events = x_event
TABLES
t_outtab = it_alv2
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDIF.
ENDFORM.
FORM USER_COMMAND *
FORM top.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = 'Commentry'.
ENDFORM.
FORM BUILD_FIELDCAT *
FORM build_fieldcat CHANGING et_fieldcat TYPE slis_t_fieldcat_alv.
DATA: x1_fieldcat TYPE slis_fieldcat_alv.
CLEAR x1_fieldcat.
x1_fieldcat-col_pos = '1'.
x1_fieldcat-fieldname = 'V_LEGS'.
x1_fieldcat-reptext_ddic = text-108.
x1_fieldcat-ref_tabname = 'IT_ALV'.
APPEND x1_fieldcat TO et_fieldcat.
CLEAR x1_fieldcat.
x1_fieldcat-col_pos = '2'.
x1_fieldcat-fieldname = 'SUCCESS'.
x1_fieldcat-key = 'X'.
x1_fieldcat-reptext_ddic = text-109.
x1_fieldcat-ref_tabname = 'IT_ALV'.
APPEND x1_fieldcat TO et_fieldcat.
CLEAR x1_fieldcat.
x1_fieldcat-col_pos = '3'.
x1_fieldcat-fieldname = 'V_LEGF'.
x1_fieldcat-key = 'X'.
x1_fieldcat-reptext_ddic = text-110.
x1_fieldcat-ref_tabname = 'IT_ALV'.
APPEND x1_fieldcat TO et_fieldcat.
CLEAR x1_fieldcat.
ENDFORM. " build_fieldcat
FORM BUILD_LIST_HEADER *
FORM x_list_header.
DATA: x_list_header1 TYPE slis_listheader.
*-----List Header: type H
CLEAR x_list_header1 .
x_list_header1-typ = 'H'.
x_list_header1-info = text-105.
APPEND x_list_header1 TO x_list_header.
*-----List Key: type S
x_list_header1-typ = 'S'.
x_list_header1-key = text-106.
x_list_header1-info = v_total.
APPEND x_list_header1 TO x_list_header.
*-----List Key: Type S
CLEAR x_list_header1 .
x_list_header1-typ = 'S'.
x_list_header1-key = text-107.
x_list_header1-info = v_succsount.
APPEND x_list_header1 TO x_list_header.
ENDFORM. " build_list_header
FORM TOP_OF_PAGE *
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = x_list_header.
ENDFORM. " TOP_OF_PAGE
<b>Reward points for useful Answers</b>
Regards
Anji -
Step-by step procedure for INBOUND IDOC (VENDOR CREATE / CHANGE)
Hi ,
Can any body provide me the step-by-step procedure for Inbound IDOCS.
As i'm new to this i need the the clarification between Inbound & outbound idocs.
How can we differentiate both?
where to define outbound & where to define Inbound?
( If possible Please explain me the procedure for Vendor Create through INBOUND IDOCS )
Thanks in advance..Hi,
Ale Technology is SAPu2019s technology to support distributed yet integrated processes across several SAP systems.
Outbound Process:
ALE Outbound Process in SAP sends data to one or more SAP Systems. It involves four steps.
1. Identify the need of IDoc: This step starts upon creating a application document, can relate to a change to a master data object.
2. Generate the Master IDoc: The document or master data to be sent is read from the database and formatted into an IDoc format. This IDoc is called as a Master IDoc.
3. Generate the Communication IDoc: The ALE Service layer generates a separate IDoc from the Master IDoc for each recipient who is interested in the data. Separate IDocs are generated because each recipient might demand a different version or a subset of the Master IDoc. These recipient-specific IDocs are called Communication IDocs and are stored in the database.
4. Deliver the Communication IDoc: The IDoc is delivered to the recipients using an asynchronous communication method. This allows the sending system to continue its processing without having to wait for the destination system to receiver or process the IDoc.
Inbound Process:
The inbound process receives an IDoc and creates a document in the system.
1. Store the IDoc in the database: The IDoc is received from the sending system and stored in the database. Then the IDoc goes through a basic integrity check and syntax check.
2. Invoke the Posting Module: The control information in the IDoc and configuration tables are read to determine the posting program. The IDoc is then transferred to its posting program.
3. Create the Document: The posting program reads the IDoc data and then creates a document in the system. The results are logged in the IDoc.
Over view of IDocs:
IDoc is a container that is used to exchange data between any two processes. The document represented in an IDoc is independent of the complex structure SAP uses to store application data. This type of flexibility enables SAP to rearrange its internal structure without affecting the existing interface.
IDoc interface represents an IDoc Type or IDoc data. IDoc Type represents IDocu2019s definition and IDoc Data is an instance of the IDoc Type.
IDoc Types:
IDoc type structure can consist of several segments, and each segment can consist of several data fields. The IDoc structure defines the syntax of the data by specifying a list of permitted segments and arrangement of the segments. Segments define a set of fields and their format.
An IDoc is an instance of an IDoc Type and consists of three types of records.
i. One Control record: each IDoc has only one control record. The control record contains all the control information about an IDoc, including the IDoc number, the sender and recipient information, and information such as the message type it represents and IDoc type. The control record structure is same for all IDocs.
ii. One or Many Data records: An IDoc can have multiple data records, as defined by the IDoc structure. Segments translate into data records, which store application data, such as purchase order header information and purchase order detail lines.
iii. One or Many Status records: An IDoc can have multiple status records. Status record helps to determine whether an IDoc has any error.
Message in IDoc Type:
A Message represents a specific type of document transmitted between two partners.
Outbound Process in IDocs:
Outbound process used the following components to generate an IDoc. A customer model, and IDoc structure, selection programs, filter objects, conversion rules, a port definition, an RFC destination, a partner profile, service programs, and configuration tables.
The Customer Model:
A customer model is used to model a distribution scenario. In a customer model, you identify the systems involved in a distribution scenario and the message exchanged between the systems.
Message control:
Message control is a cross application technology used in pricing, account determination, material determination, and output determination. The output determination technique of Message control triggers the ALE for a business document. Message control separates the logic of generating IDocs from the application logic.
Change Pointers:
The change pointers technique is based on the change document technique, which tracks changes made to key documents in SAP, such as the material master, customer master and sales order.
Changes made to a document are recorded in the change document header table CDHDR, and additional change pointers are written in the BDCP table for the changes relevant to ALE.
IDoc Structure:
A message is defined for data that is exchanged between two systems. The message type is based on one or more IDoc structures.
Selection Program:
Is typically implemented as function modules, are designed to extract application data and create a master IDoc. A selection program exists for each message type. A selection programu2019s design depends on the triggering mechanism used in the process.
Filter Objects;
Filter Objects remove unwanted data for each recipient of the data basing on the recipients requirement.
Port Definition:
A port is used in an outbound process to define the medium in which documents are transferred to the destination system. ALE used a Transactional RFC port, which transfers data in memory buffers.
RFC Destination:
The RFC destination is a logical name used to define the characteristics of a communication link to a remote system on which a function needs to be executed.
Partner Profile:
A partner profile specifies the components used in an outbound process(logical name of the remote SAP system, IDoc Type, message type, TRFC port), an IDocu2019s packet size, the mode in which the process sends an IDoc (batch versus immediate), and the person to be notified in case of error.
Service Programs and Configuration Tables:
The outbound process, being asynchronous, is essentially a sequence of several processes that work together. SAP provides service programs and configuration tables to link these programs and provide customizing options for an outbound process.
Process flow for Distributing Transactional Data:
Transactional data is distributed using two techniques: with Message control and without message control.
Process flow for Distributing Master Data:
Master data between SAP systems is distributed using two techniques: Stand alone Programs and Change Pointers.
Triggering the Outbound Process via Stand-Alone Programs:
Stand-Alone programs are started explicitly by a user to transmit data from one SAP system to another. Standard Programs for several master data objects exist in SAP. Ex. The material master data can be transferred using the RBDSEMAT program or transaction BD10.
The stand-alone programs provide a selection screen to specify the objects to be transferred and the receiving system. After the stand-alone program is executed, it calls the IDoc selection program with the specified parameters.
Triggering the Outbound Process via Change Pointers:
The change pointer technique is used to initiate the outbound process automatically when master data is created or changed.
A standard program, RBDMIDOC, is scheduled to run on a periodic basis to evaluate the change pointers for a message type and start the ALE process for distributing the master data to the appropriate destination. The RBDMIDOC program reads the table TBDME to determine the IDoc selection program for a message type.
Processing in the Application Layer:
The customer distribution model is consulted to make sure that a receiver has been defined for the message to be transmitted. If not, processing ends. If at least one receiver exists, the IDoc selection program reads the master data object from the database and creates a master IDoc from it. The master IDoc is stored in memory. The program then calls the ALE service layer by using the function module MASTER_IDOC_DISTRIBUTE, passing the master IDoc and the receiver information.
Processing in the ALE Interface Layer:
Processing in the ALE Layer consists of the following steps:
u2022 Receiver Determination: The determination of the receiver is done through Customer Distribution Model.
u2022 IDoc Filtering: if an IDoc filter is specified in the distribution model for a receiver, values in the filter are compared against the values in the IDoc data records. If a data record does not meet the filter criteria, it is dropped.
u2022 Segment Filtering: For each sender and receiver combination, a set of segments that are not required can be filtered out.
u2022 Field conversion: Field values in data records are converted by using the conversion rules specified for the segment.
u2022 Version change for segments: Segments are version-controlled. A new version of a segment always contains fields from the preceding version and fields added for the new version. Release in IDoc type field of the partner profile to determine the version of the segment to be generated.
u2022 Version change for IDocs: IDocs are also version controlled. The version is determined from the Basic Type field of the partner profile.
u2022 Communication IDocs generated: The final IDoc generated for a receiver after all the conversions and filtering operations is the communication IDoc. One master IDoc can have multiple communication IDocs depending on the number of receivers identified and the filter operations performed. IDoc gets the status record with a status code of 01 (IDoc Created).
u2022 Syntax check performed: IDoc goes through a syntax check and data integrity validation. If errors found the IDoc get the status of 26 (error during syntax check of IDoc u2013 Outbound). If no errors found the IDoc gets the status 30 (IDoc ready for dispatch u2013 ALE Service).
u2022 IDoc dispatched to the communication Layer: In the ALE process, IDocs are dispatched using the asynchronous RFC method, which means that the sending system does not await for data to be received or processed on the destination system. After IDocs have been transferred to the communication layer, they get a status code 01 (Data Passed to Port OK).
Processing in the Communication Layer:
To dispatch an IDoc to a destination system, the system reads the port definition specified in the partner profile to determine the destination system, which is then used to read the RFC destination. The RFC destination contains communication settings to log o to the remote SAP system. The sending system calls the INBOUND_IDOC_PROCESS function module asynchronously on the destination system and passes the IDoc data via the memory buffers.
Inbound Process in IDocs:
An inbound process used IDoc structure, posting programs, filter objects, conversion rules, a partner profile, service programs, and configuration tables to post an application document from an IDoc.
Posting Program:
Posting programs, which are implemented as function modules, read data from an IDoc and create an application document from it. A posting program exists for each message. Each posting program is assigned a process code. A process code can point to a function module or a work flow. In the standard program process codes always point to a function module.
Ex. The posting program for message type MATMAS is IDOC_INPUT_MATMAS which has a process code MATM.
Workflow:
A workflow represents a sequence of customized steps to be carried out for a process. The workflow management system is used to model the sequence, identify information required to carry out the steps and identify the person responsible for the dialog steps.
Partner Profile;
A partner profile specifies the components used in an inbound process (partner number, message type, and process code), the mode in which IDocs are processed (batch versus immediate), and the person to be notified in case of errors.
Process flow for the Inbound process via a Function Module:
In this process, IDocs are received from another system and passed to the posting function module directly.
1. Processing in the communication Layer:
The IDOC_INBOUND_ASYCHRONOUS program, triggered as a result of an RFC from the sending system, acts as the entry point for all inbound ALE processes. The IDoc to be processed is passed as an input parameter. Control is transferred to the ALE/EDI layer.
2. Processing in the ALE/EDI Interface Layer:
u2022 Basic integrity check: A basic integrity check is performed on the control record.
u2022 Segment Filtering and conversion: Filtering out unwanted segments and carry out any required conversion of field values.
u2022 Creation of Application IDoc: The application IDoc is created and stored in the database and a syntax check is performed. If there are errors it gets status code of 60 (Error during Syntax check of IDoc u2013 Inbound). At this point a tangible IDoc, which can be monitored via one of the monitoring transactions, is created and the IDoc gets status code 50 (IDoc Added).
u2022 IDoc Marked ready for Dispatch: IDoc gets the status code 64 (IDoc ready to be passed to application).
u2022 IDoc is passed to the posting program: The partner profile table is read. If the value of the Processing field is set to Process Immediately, the IDoc is passed to the posting program immediately using the program RBDAPP01.
3. Processing in the Posting Module:
The process code in the partner profile points to a posting module for the specific message in the IDoc. The posting program implemented as a function module either calls a standard SAP transaction by using the Call Transaction command for posting the document or invokes a direct input function module.
The results of execution are passed back via the function moduleu2019s output parameters. If the posting is successful IDoc gets the status code 53 (Application Document Posted) or it gets status code 51 (Error: Application Document Not Posted). -
Step by step procedure to create a partner profile
Hi,
Step by step to create a partner profile using the we20HI,
IAM GIVING THE DOCUMENT WHICH COULD HELPS YOU NOT ONLY CREATING PARTNER PROFILES BUT ALSO TO SEND THE DATA BETWEEN SYSTEMS.
Application Linking and Enabling (ALE)
In this document you will learn the step-by-step procedure to setup the ALE system and go through a transaction between two clients
For our purpose we have two clients
namely Client 100 and Client 200.
System name is SAPKDC (FOR BOTH 100 AND 200 CLIENTS).
Distribution of Material Master Data Between two Systems
1) SETUP LOGICAL SYSTEM: (Note: Do Not Create This Step)
To do this follow the following steps
Execute SALE Transaction Code
On The Screen Click on Sending and Receiving Systems.
Then Click on Logical Systems.
Then Click Defining Logical Systems.
Click New Entries Button
(E.g. (LG100 sending system)
(LG200 receiving system))
Enter two logical system names and their description.
Save
Comeback to SALE Transaction Code screen.
2) Now you have to allocate the created logical systems to respective clients.( Note: Do Not Create This Step)
LG100 assign to client 100
LG200 assign to client 200
To do this, do the following.
Click Assigning Client to Logical System.
Ignore the message that comes up on the screen.
Select client 100
Click details button on the toolbar icon or press F2.
In the logical system box, enter LG100.
Click on the save Icon
Click the back button.
Now select client 200.
Click details icon or press f2.
In logical Systems box, enter LG200.
Save
Back.
Comeback to SALE Transaction Code screen.
3) Maintain RFC Destination: (TR.CODE:SM59)
(Note: Do Not Create This Step)
Click Create Button on the Screen
On the Screen Maintain RFC Destination i.e LG200.
Enter LG200 in RFC destination box.
Connection type is 3
Give a description for the RFC destination.
Maintain Technical Settings on Details on Technical Settings tab
Target Host as : SAPKDC (NOTE: Save it as a Host Name)
Maintain Logon Details on Logon/Security tab.
Language: EN.
User: MMUSER200 (This is the logon for dist.)
Client : 200
Password: MM1234.
Save.
Click on create to do the above process for Client 200 in
The client 200 system.
4) Maintain Distribution Model.(BD64). (ABAPer role starts here)
Execute Maintain distribution model directly for
creating the model.
Click on change mode button on App tool bar of the Screen.
Create Model View pushbutton on App tool bar of the Screen.
A pop screen will appear in which you specify
Short text as Distribution for MM Data.
Enter Technical Name as LGMODEL.
Select Model View and Click on Add Message Type Pushbutton on App toolbar of the Screen.
A popup screen will appear in which you specify
Model View as LGMODEL.
Sender as LG100.
Receiver as LG200.
Again Click on Add Message Type Pushbutton on App toolbar of the Screen.
A popup screen will appear in which you specify
Model View as LGMODEL.
Sender as LG200.
Receiver as LG100.
SAVE.
On the same screen goto Menubar and select Environment.
And then select Generate Partner Profiles , then execute it.
On the Screen specify the Logical System as LG200.
Then execute the screen.
Click back.
Again On the same screen goto Menubar and select EDIT.
Again select Model View and then select Distribute.
****LOGIN to client 200.
Execute Tr.code BD64 and again On the same screen goto Menubar and select Environment.
And then select Generate Partner Profiles , then execute it.
On the Screen specify the Model View as LGMODEL
And Specify the Logical System as LG100.
Then execute the screen.
Click back.
*******Switch back to client 100 Session.
5) Create Material using MM03 Tr.Code.
Enter the material name as LGMATERIAL
Industry sector as Mechanical Engineering
Material Type as Finished Products.
And then Click on Data Pushbutton on the App tool bar.
Select views.
In the select views box for materials check basic data 1 AND 2.
Click enter icon.
In the next screen that you get
Give the text of the material as NEW MATERIAL.
Base unit of measure as KG.
Gross Weight as 200.
Net Weight as 100.
Weight Unit as KG.
In the description area language (E) and material description.
Click Save.
Now I Created a Material in Client 100 , I want to transfer this data to Client 200.
6) Execute BD10 to transfer the material in which you specify
the material as LGMATERIAL and
message type as MATMAS (client100).
Then a Screen will be displayed in which it shows that
1 Master Idoc Generated .. Enter
1 Communication Idoc Generated..Enter.
*******LOGIN to Client 200.
7) Execute BD11 to get the material in which you specify
the material as LGMATERIAL and
message type as MATMAS (client200).
8) Execute Tr.code MM03 and give the material as LGMATERIAL
and see that the material is displayed as it was in Client 100.
If not follow these steps.
9) Execute Tr.code WE19( for rectification of errors in client200).
Specify the Existing Idoc Number and Executes it .
A Screen is displayed in which you specify the corresponding Function Module as INPUT_IDOC_MATMAS01 and execute it.
10) Execute Tr.code MM03 and give the material as LGMATERIAL
and see that the material is displayed as it was in Client 100.
Now the Material is correctly displayed in Client 200.
11) Monitoring of IDOCS.
Transaction Codes:
IDOC Display of Status: WE 05.
IDOC Date and Time: WE07. -
The step-by-step procedure of configuring Split-Valuation
Hi
Can anyone give the step-by-step procedure of configuring Split-Valuation
cheers
MaruthiRamHii,
To used split valuation, you have to activate it using 'OMW0'.
To change split material valuation once it has been set, you must
1. first post out all stocks (for example, to a cost center or with movement type 562)
2. then change the control parameters
3. if necessary, change the automatic account determination
4. finally post the stocks back in again
In split valuation, you can distinguish between partial stocks of a material according to certain criteria and valuate them separately.
The material stock is divided according to valuation category and valuation type.
The valuation category determines how the partial stocks are divided, that is, according to which criteria.
The valuation type describes the characteristics of the individual stocks.
With the function "Setting" you can determine:
which valuation categories exist in your company (global categories)
which valuation types exist in your company (global types)
which valuation types belong to which valuation category
which valuation categories exist in a valuation area (local categories)
Your entries are only relevant if you set split valuation as active in the function "Global settings".
In the standard SAP R/3 System, the following valuation categories are default settings :
B procurement type
with the valuation types:
"EIGEN" for in-house production
"FREMD" for external procurement
H Origin
X automatic valuation (only for batch)
To select split valuation ('OMWC'), proceed as follows:
1. Determine the valuation categories and valuation types that are allowed for all valuation areas:
global valuation categories via menu "Goto --> Global Categories"
global valuation types via menu "Goto --> Global Types"
2. Allocate the valuation types to the valuation categories.
a) Select "Goto --> Global Categories".
b) Position the cursor on a valuation category and select
"Goto --> Global Categories --> Assignments --> 'Types->Category'".
c) Activate the valuation types you want.
3. Determine the local valuation categories for each valuation area.
a) Select "Goto --> Local definitions".
b) Position the cursor on a valuation area and select
"Goto --> Local Definitions --> Allocate Categoires->Org.units (button Cats->(OU)".
You obtain a list of the global valuation categories.
c) Activate the categories to be used in this valuation area.
The system creates the local valuation types based on the allocations under point 2.
Only now can you create a master record with split valuation.
Specifying Split Valuation by creating Material Subject to Split Valuation
1. Create a material master record, selecting the Accounting View 1.
2. Enter your data as required on the Accounting data screen, specifying a valuation category.
(If you can't find the valuation category field, it might be hidden, use OMSR to define the Field Groups.
Look for the field MBEW-BWTTY for Valuation category).
3. Be sure that the price control indicator is V for moving average price and enter a moving average price.
4. In the case of split valuation, you can create only one valuation header record with price control V because the
individual stock values are cumulated, and this total value is written to the valuation header record. This is where the
individual stocks of a material are managed cumulatively. To do this, fill in the Valuation category field on the accounting
screen when you create the material master record and leave the Valuation type field blank.
5. Save your data and the system creates the valuation header record.
6. The initial screen appears.
7. Extend the material by creating new material master records from the Accounting view 1. For the first material, specify a
valuation type in the Organizational Levels dialog box and enter the respective accounting data on the data screen.
Proceed likewise for the other materials, distinguishing between them by valuation type. To do this, call up the material in
creation mode again. Due to the fact that a valuation header record exists, the system requires you to enter a valuation
type for the valuation category.
8. Repeat step seven for every valuation type planned.
You want to valuate the stock of material XYZ that you obtain from manufacturer A in Los Angeles at a different price than the stock you obtain from manufacturer B in Detroit. In this case, the valuation category is H for origin. Your valuation types can be LOS ANGELES and DETROIT.
If a material is subject to split valuation, every quantity (sub-stock) of this material must be assigned to a valuation type (for example, country of origin).
For every valuation type, there are two types of data in the system, as follows:
Valuation data (for example, valuation price, total stock quantity, total stock value), which is defined for every valuation type at valuation-area level and applies to all dependent storage locations.
Stock data, which, like batch data, is managed separately for each storage location. If a material that is subject to split valuation is also subject to management in batches, its stock data is not managed by valuation type, but rather by batch. Every batch is assigned to a valuation type.
The stock quantity, stock value, and valuation price for all valuation types are managed cumulatively at valuation-area level.
Must the Valuation Type Exist Before the First Goods Receipt?
You can post the goods receipt of material of a certain valuation type only if the valuation data for this valuation type already exists, because the system valuates the goods receipt at the price defined in the valuation data. On the other hand, the stock data for the valuation type is created automatically during the first goods receipt into the storage location, if this is defined in Customizing for Inventory Management.
Goods Movements with Materials Subject to Split Valuation
If you want to enter goods movements for materials subject to split valuation, you must enter the valuation type in addition to the material number.
Enter the valuation type in the Batch field for MB01.
In MIGO, there is a valuation type field in Detail data -> Material.
Regards,
Kumar
Maybe you are looking for
-
Goods receipt(PO) - balance sheet account
Hi, Can someone explain to me what does posting to balance sheet account upon goods receipt means? Does balance sheet account = inventory account? Does this mean that the inventory qty has to be increased after GR? Thanks
-
How can I remove the header and footer for more space in my Pages docs?
I could really use the extra space on my docs. How can I get rid of the header and footer? Thanks
-
How to open, edit and compile the order import program.
Order import program deletes the so_header_interface_all and so_lines_interface_all tables after importing, I want to avoid deleting the interface tables. Please ket me know in detail how to comment the delete statement in the order import program. I
-
Hi Everyone, I'm trying to implement a messaging service with JMS, using glassfish v2.x as my queuing server. I have created a requester class (sending messages and waiting for reply) and a replier class (receive messages and reply). I've also config
-
my daughter forgot her password to her ipod touch and in locked out, does anyone have a suggestions for getting it reset