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 ABAP

          CLASS 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
    Vaibhav

    hi 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
    hari

    Hi
    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 BADI’s 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 BADI’s 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
    Vaibhav

    Hi 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.
    It’s 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: - It’s 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 won’t 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     &#61672;     Sales Revenues
    ERS     &#61672;     Sales Deductions
    ERF     &#61672;     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.v

    hi 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,
    Mrinal

    SAP 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..
    Laxman

    Hi 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 it’s 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 you’re 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
    eswar

    Hi
    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 we20

    HI,
    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
    MaruthiRam

    Hii,
    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