How to create a hirarchy for this characteristic having lengh 50?

Hi guru's
I have a scenario like characteristic is having lengh 50.Now I want to create a hierarchy for this characteristic.
But Hirarchy allows maximum lengh 32chrs only.
So could you please let me know how to create a hirarchy for this characteristic having lengh 50?
Thanks in advance
Sivanand

Isn't this the same question as here:
Hi all, Have a problem, Please let me know urgently.
Why the duplicate postings with different names??

Similar Messages

  • How to create a PO for a Material having Net Price but without Info Record?

    Hi,
    When I try to create a PO for a Material having Material Master and Vendor Master maintained but no Info Record, system does not accept the Net Price and the Price Condition also does not appear. Is there any way to create a PO for a Material having Net Price but without Info Record?
    Regards.

    Hi,
    The first time you create a PO for a material/vendor combination, then system will not prompt any price as info record or valid conditions have not been found.
    The next time you create a PO for the same material, then the price will be defaulted/found from the order price history from the info record(As info record would be reated after the first PO is created) and the latest PO price for the mat/ven combination would be found.
    Hope you are clear with this..Any doubts revert back.
    Regards,
    Deepak.

  • How to create an object for this Question...

    i want to create an object to Factorial.java, but the class is in String object... how can i do that
    please help me with code how to create an object
    String str = Factorial.java;
    i tried to do like this
    str s1 = new str();
    this way is not working...
    thank u

    yes sir am trying to instantiate and retrieve the metadata, am a student am asked to do Program Analyzer, while fullfilling the application requirements i came across this situation, like i have to find total number of public methods in any source file that is entered as input.
    Am taking the input in String variable, i can have the details of the source class only of i instantiate and create an Object to that....
    Please suggest me some way to do that... JAVA is so interesting am working on the project since 2 weeks am done with all other classes but struck here finding the total number of methods...
    Thank you

  • How to create a constructor for this class?

    Hi everybody!
    I have an applet which loads images from a database.
    i want to draw the images in a textarea, so i wrote an inner class, which extends textarea and overrides the paint method.
    but everytime i try to disply the applet in the browser this happens:
    java.lang.NoClassDefFoundError: WohnungSuchenApplet$Malfl�che
         at java.lang.Class.getDeclaredConstructors0(Native Method)
         at java.lang.Class.privateGetDeclaredConstructors(Class.java:1590)
         at java.lang.Class.getConstructor0(Class.java:1762)
         at java.lang.Class.newInstance0(Class.java:276)
         at java.lang.Class.newInstance(Class.java:259)
         at sun.applet.AppletPanel.createApplet(AppletPanel.java:567)
         at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1778)
         at sun.applet.AppletPanel.runLoader(AppletPanel.java:496)
         at sun.applet.AppletPanel.run(AppletPanel.java:293)
         at java.lang.Thread.run(Thread.java:536)
    so my class has no own constructor, it just has the paint method overwritten.
    my class looks like this:
    public class Malfl�che extends javax.swing.JTextArea{
    public void paint(Graphics g){
    Color grey=new Color(220,220,220);
    g.drawImage(img,10,10,null);
    how should a constructor for this class look like?
    sorry i am quite new to this, so i really dont have a clue!
    my class does not have any attributes or requires any so it doesnt need a constructor, doesnt it?
    thanks a lot
    tim

    If you have no constructor you cant instanciate (I know i just murdered that spelling) the object.
    Malfl�che thisHereThingie = new Malfl�che()assuming that you want to run that class by itself you will need a main method that has the preceeding code in it. If you are running it from another class you need to instanciate it... but anyway at the very least for a constructor you need.
    public Malfl�che(){

  • RethinkDB - how to create a PKGBUILD for this monster?

    Hi!
    After an interesting discussion on HackerNews about RethinkBD, I wanted to take a look for myself. Using it in Ubuntu (my work system) wasn't that bad, they build package for that one, and looked like something I might like to play with. But for that I'd wanted to have a package for my personal system running Arch, and there don't seem to be one.
    I did have a big bunch of packages before (not saying that they were any good, but have seen enough to know what might be relatively easy and what will be hard). When I checked out the build information, it just looks terrifying. The big list of dependencies is not that bad, but the other requires are nodejs, node libraries, ruby libraries, some of them are on AUR but orphaned and cannot be really relied on....
    Any suggestion how to get the bottom of this?

    Trilby wrote:Strictly speaking, your PKGBUILD only has to list the dependencies.  If the dependencies are broken, your PKGBUILD doesn't need to solve that.
    Thinking about it, I see your point, while I still feel that it's not the complete picture. That way I can make a package for myself, and using nvm/rvm for the missing packages, but e.g. then I couldn't really upload it to AUR or if I was, definitely someone would remove it because of being broken (and would be right about it.
    Trilby wrote:
    Of course it would be pointless to have a PKGBUILD that depended on something broken, but you should push those maintainers to fix their PKGBUILDs.
    Have you checked that those dependencies can't be satisfied by packages in the repos?  Nodejs, for example, is in [community] and rubygems is provided by ruby in [extra].  In fact, I don't see anything there that would not likely be provided by something in the main repos.
    EDIT: upon looking closer ruby_protobuf and coffee-script-git are aur-only, do those fail to build from the aur?
    Looking at things, they might need older nodejs version, coffee-script and their dependencies are in AUR, ruby_protobuf and ruby-less (and their dependencies) seem to be orphaned packages on AUR....

  • How to create production order for multiple items having common raw materia

    Dear all,
    We are running a sheet metal fabrication company at Vadodara Gujrat.
    Please guide us how to create single production order for multiple items using single raw material??
    For example, We want to produce baby shirt(item code AAA001), shirt with full sleeve(item code AAA002), shirt with half sleeve(item code AAA003),shirt slim fit (item code AAA004),shirt loose fit(item code AAA005) from single raw material say(item code XXX001).
    Right now we have to create 5 production order to produce above 5 items of single sales order  in SAP B1 though it is made from single raw material which is foolishness and time consuming too. (Please also note that to produce any finfish good item, raw material required for that item may vary every time in our process.)
    Kindly guide us how to solve the problem.
    Thanks.
    RUPESH  +91-9227744273
    WEB : www.gorasia.co.in

    Hi Rupesh Gorashiya,
    This is possible through MRP for that you have to put Sales Order first and Run MRP Wizard
    MRP Wizard Put Multi Production Order as per Item Taking in Sales Order just click it on and execute.
    Thanks,
    Srujal Patel

  • How to create process chain for this data flow

    Hi experts,
    My data flow is:
    ======================================
    2lis_11_vahdr->Transfer rules->2lis_11_vahdr->Update rules->DSO1->Transformation->DTP->Cube1.
    2lis_11_vaitm->Transfer rules->2lis_11_vaitm->Update rules->DSO1->Transformation->DTP->Cube1.
    ======================================
    2lis_12_vchdr->Transfer rules->2lis_12_vchdr->Update rules->DSO2->Transformation->DTP->Cube1.
    2lis_12_vcitm->Transfer rules->2lis_12_vcitm->Update rules->DSO2->Transformation->DTP->Cube1.
    ======================================
    2lis_13_vdhdr->Transfer rules->2lis_13_vdhdr->Update rules->DSO3->Transformation->DTP->Cube1.
    2lis_13_vditm->Transfer rules->2lis_13_vditm->Update rules->DSO3->Transformation->DTP->Cube1.
    ======================================
    Here for each datasource info package brings data upto dso and then from dso dtp fetches the data.
    For deltas i want to keep this data flow in process chain.
    Anyone please guide me how to keep this in a process chain.
    Full points will be assigned.
    Regards,
    Bhadri m.
    Edited by: Bhadri M on Sep 2, 2008 7:20 PM
    Edited by: Bhadri M on Sep 2, 2008 7:21 PM

    Hello,
    Sure it is possible to maintain that dataflow.
    Start here:
    This is a very good document about process chains:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/8da0cd90-0201-0010-2d9a-abab69f10045
    Let me know if you have any doubts.
    Regards,
    Jorge Diogo

  • How to create more instances for this text game.  Help please!

    Hey guys, so far this code works great, but I'm trying to add more questions and answers to this and I'm having trouble doing that. I've tried using different methods and just going from method to another, but I can't seem to get it to work right. Should I be able to do it with different methods or is there another way I should be doing this?? I also want to add a score to this game as well. Adding points for each correct guess and I searched online trying to find a point to start, but couldn't quite get a hold on it. This is just something that would be cool to add, but isn't necessary if you don't think you can help me out. Thanks for checking this out and for the help!!
    public class TextShuffleGame
         private CinReader reader;
         public TextShuffleGame ()
              reader = new CinReader();
         public void go ()
              System.out.println("");
              System.out.println("Welcome to Text Shuffle.");
              int tries = 0;
              boolean correctGuess = false;
              while (correctGuess == false && tries < 5)
              System.out.println("What 6-letter word is made up from the letters \"dunops\"?");
              String guess3 = reader.readString();
              String answer3 = "pounds";
                        if (guess3.equalsIgnoreCase(answer3))
                             System.out.println("Hooray! You are correct!");
                             correctGuess = true;
                        else
                             System.out.println("Sorry, Try again!");
                             tries++;
              public static void main(String[] args)
              TextShuffleGame thisClass3 = new TextShuffleGame();
                   thisClass3.go();
    }

    If I understand you correctly, you want to add more words to the program. If so, then create an array or some other Collection to store a bunch of words. Then you need to randomly select a word from the list. Create another method to randomly shuffle the letters and display that instead of hardcoding it. Then when a user types a guess you compare it to the word in the list, once again instead of hardcoding it.

  • How to create a tableview for this ??

    Hey, i have been stuck to this part for a long time and not able to find any answers, may be i can get some help from you guys.
    See i have a scenario where i have different "items",out of which each will belong to a predefined category. These items have names and then different types(depend on the category), each of these types in turn have a price.
    For example if I have Item1(Bottle Of Water),belongs to category1 and it has different types : 200ml ,500 ml, 1000ml with price tags of 10,20,30 respectively.
    Similarly,I have Item2(Box of Butter),belongs to category2 and it has different types : 100 gm, 200 gm with price tags of 15 and 25 respectively.
    Now, i want these data to be shown on a editable table,when i press on a category button,all items belonging to the category(having the same types) must be displayed, with the headings divided into :
    On pressing category 1
    NAME | PRICE |
    | 200ml |500ml|1000ml |
    | |
    Bottle Of Water | 10 | 20 | 30 |
    On pressing category 2
    NAME | PRICE |
    | 100gm | 200ml |
    | |
    Box Of Butter | 15 | 25 |
    So i want a dyanamic table which can have dynamic nested columns.
    I was trying to make a table from the class
    public class ItemVO()
    String itemName;
    List<ItemTypeVO> type;
    and My ItemTypeVO has the following attributes :
    public class ItemTypeVO()
    String typeName;
    Integer price;
    But m not able to get anywhere with it.
    Many a places i have found dynamic columns with attributes like this :
    public class ItemVO()
    String itemName;
    ItemTypeVO type;
    But this doesnt suit my functionality. i guess .
    Can anybody help me with what change can i make in my class, so that i can make a table and supply me with some code as well.
    Thanks in advance.

    I don't really know what you are trying to do in this Test class.
    I mocked this up with the object model I suggested and a mock data access object which just hard codes a few items, and it works just fine.
    Type.java
    package itemtable;
    public class Type {
      private final String name ;
      public Type(String name) {
        this.name = name ;
      public String getName() {
        return name ;
    }Category.java
    package itemtable;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    public class Category {
      private final List<Type> types ;
      private final String name ;
      public Category(String name, List<Type> types) {
        this.name = name ;
        this.types = new ArrayList<Type>();
        this.types.addAll(types);
      public List<Type> getTypes() {
        return Collections.unmodifiableList(types);
      public String getName() {
        return name ;
      @Override
      public String toString() {
        return name ;
    }Item.java
    package itemtable;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import javafx.beans.property.DoubleProperty;
    import javafx.beans.property.ReadOnlyObjectProperty;
    import javafx.beans.property.SimpleDoubleProperty;
    import javafx.beans.property.SimpleObjectProperty;
    import javafx.beans.property.SimpleStringProperty;
    import javafx.beans.property.StringProperty;
    public class Item {
      private final StringProperty name ;
      private final ReadOnlyObjectProperty<Category> category ;
      private final Map<Type, DoubleProperty> prices ;
      public Item(String name, Category category, Map<Type, Double> prices) {
        this.name = new SimpleStringProperty(name);
        this.category = new SimpleObjectProperty<Category>(category);
        this.prices = new HashMap<Type, DoubleProperty>();
        for (Type type : prices.keySet()) {
          validateType(type);
          this.prices.put(type, new SimpleDoubleProperty(prices.get(type)));
      public String getName() {
        return name.get();
      public Category getCategory() {
        return category.get();
      public double getPrice(Type type) {
        validateType(type);
        return prices.get(type).get();
      public void setName(String name) {
        this.name.set(name);
      public void setPrice(Type type, double price) {
        validateType(type);
        prices.get(type).set(price);
      public StringProperty nameProperty() {
        return name ;
      public ReadOnlyObjectProperty<Category> categoryProperty() {
        return category ;
      public DoubleProperty priceProperty(Type type) {
        return prices.get(type);
      private void validateType(Type type) {
        final List<Type> allowedTypes = category.get().getTypes();
        if (! allowedTypes.contains(type)) {
          throw new IllegalArgumentException("Cannot set a price for "+type.getName()+": it is not a type for the category "+category.getName());
    }DAO.java
    package itemtable;
    import java.util.List;
    public interface DAO {
      public List<Category> getCategories();
      public List<Item> getItemsByCategory(Category category);
    }MockDAO.java
    package itemtable;
    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    public class MockDAO implements DAO {
      private final List<Category> categories ;
      private final Map<Category, List<Item>> itemLookup ;
      public MockDAO() {
        final Type spreadType100g = new Type("100g");
        final Type spreadType200g = new Type("200g");
        final Type drinkType200ml = new Type("200ml");
        final Type drinkType500ml = new Type("500ml");
        final Type drinkType1000ml = new Type("1000ml");
        final Category spreads = new Category(
            "Spreads",
            Arrays.asList(spreadType100g, spreadType200g)
        final Category drinks = new Category(
            "Drinks",
            Arrays.asList(drinkType200ml, drinkType500ml, drinkType1000ml)
        final Map<Type, Double> waterPrices = new HashMap<Type, Double>();
        waterPrices.put(drinkType200ml, 10.0);
        waterPrices.put(drinkType500ml, 20.0);
        waterPrices.put(drinkType1000ml, 30.0);
        final Map<Type, Double> pepsiPrices = new HashMap<Type, Double>();
        pepsiPrices.put(drinkType200ml, 25.0);
        pepsiPrices.put(drinkType500ml, 45.0);
        pepsiPrices.put(drinkType1000ml, 75.0);
        final Map<Type, Double> butterPrices = new HashMap<Type, Double>();
        butterPrices.put(spreadType100g, 15.0);
        butterPrices.put(spreadType200g, 25.0);
        final Map<Type, Double> margarinePrices = new HashMap<Type, Double>();
        margarinePrices.put(spreadType100g, 12.0);
        margarinePrices.put(spreadType200g, 20.0);
        final Map<Type, Double> mayoPrices = new HashMap<Type, Double>();
        mayoPrices.put(spreadType100g, 20.0);
        mayoPrices.put(spreadType200g, 35.0);
        final Item water = new Item("Water", drinks, waterPrices);
        final Item pepsi = new Item("Pepsi", drinks, pepsiPrices);
        final Item butter = new Item("Butter", spreads, butterPrices);
        final Item margarine = new Item("Margarine", spreads, margarinePrices);
        final Item mayonnaise = new Item("Mayonnaise", spreads, mayoPrices);
        this.categories = Arrays.asList(drinks, spreads);
        this.itemLookup = new HashMap<Category, List<Item>>();
        itemLookup.put(drinks, Arrays.asList(water, pepsi));
        itemLookup.put(spreads, Arrays.asList(butter, margarine, mayonnaise));
      @Override
      public List<Category> getCategories() {
        return categories ;
      @Override
      public List<Item> getItemsByCategory(Category category) {
        return itemLookup.get(category);
    }ItemTable.java
    package itemtable;
    import javafx.application.Application;
    import javafx.beans.value.ChangeListener;
    import javafx.beans.value.ObservableValue;
    import javafx.scene.Scene;
    import javafx.scene.control.ChoiceBox;
    import javafx.scene.control.TableColumn;
    import javafx.scene.control.TableColumn.CellDataFeatures;
    import javafx.scene.control.TableView;
    import javafx.scene.control.cell.PropertyValueFactory;
    import javafx.scene.layout.BorderPane;
    import javafx.stage.Stage;
    import javafx.util.Callback;
    public class ItemTable extends Application {
      @Override
      public void start(Stage primaryStage) {
        final DAO dao = new MockDAO();
        final ChoiceBox<Category> choiceBox = new ChoiceBox<Category>();
        choiceBox.getItems().setAll(dao.getCategories());
        final TableView<Item> table = new TableView<Item>();
        final TableColumn<Item, String> nameCol = new TableColumn<Item, String>("Name");
        nameCol.setCellValueFactory(new PropertyValueFactory<Item, String>("name"));
        final TableColumn<Item, Double> priceCol = new TableColumn<Item, Double>("Price");
        table.getColumns().addAll(nameCol, priceCol);
        choiceBox.getSelectionModel().selectedItemProperty()
            .addListener(new ChangeListener<Category>() {
              @Override
              public void changed(ObservableValue<? extends Category> observable, Category oldValue, Category newValue) {
                table.getItems().clear();
                priceCol.getColumns().clear();
                for (final Type type : newValue.getTypes()) {
                  final TableColumn<Item, Number> col = new TableColumn<Item, Number>(type.getName());
                  col.setCellValueFactory(new Callback<CellDataFeatures<Item, Number>, ObservableValue<Number>>() {
                    @Override
                    public ObservableValue<Number> call(CellDataFeatures<Item, Number> cellData) {
                      Item item = cellData.getValue();
                      if (item == null) {
                        return null;
                      } else {
                        return item.priceProperty(type);
                  priceCol.getColumns().add(col);
                table.getItems().setAll(dao.getItemsByCategory(newValue));
        BorderPane root = new BorderPane();
        root.setTop(choiceBox);
        root.setCenter(table);
        Scene scene = new Scene(root, 600, 600);
        primaryStage.setScene(scene);
        primaryStage.show();
      public static void main(String[] args) {
        launch(args);
    }

  • How to create the request for change of selection text into other language.

    Hi,
    In my object requirement is that when login through Japanese language,  then on selection screen selection text should appear in Japanese language. For that I have maintained the text in Japanese language the program where we define the selection text there from translation I have maintained the text in Japanese but while maintain the text it didn't ask me for REQUEST, because of that I am not able to transport the changes to next system, so I want know how to create the request for this case.
    Thanks

    Hello Chetan,
    You could goto the selection screen texts by goto-> selection texts,
    Then you could again goto -> Translation
    or
    Other-> Translation(Not sure )
    Then double click on the Program you should be able to see the Texts that need translation, now change something save and come back and try to activate, now it should propose for a new Transport Request.
    Either create a new transaport request or give one that you have given for the program.
    Hope the issue is resolved.

  • How to create customer exit for characteristic variables and for text vars.

    hi friends,
      can anybody tell me how to create customer exit for characteristic variables and for text variables in bw ides system.
    thanks,
    sree

    Hi,
    Please have a look at:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f1a7e790-0201-0010-0a8d-f08a4662562d
    Krzys

  • How to create a macro for a planning type in MC8b transaction

    Hi,
    I am presently working for a product allocation demand, which have a information structiure with characteristic and key field.
    the characteristic are production allocation quantity, incoming order quantity, and open order quantity.
    i have created a planning type in which the data updation takes from the excel file to the planning type in mc95.
    but i need to create a macro for this planning type .
    can any body give the details information how to create a Macro for a planning type.
    Thanks and regards
    GopalKrishna

    Dear Gopal
    May be the link would be helpful to you.
    [Planning Types and Macros|http://help.sap.com/saphelp_46c/helpdata/en/a5/631cc443a211d189410000e829fbbd/frameset.htm]
    Drill down the left tab once you opened the link, for more information.
    Thanks
    G. Lakshmipathi

  • How to create  a datasource for 0COSTCENTER to load data in csv file  in BI

    how to create  a datasource for 0COSTCENTER to load data in csv file  in BI 7.0 system
    can you emil me the picture of the step about how to  loaded individual values of the hierarchy using CSV file
    thank you very much
    my emil is <Removed>
    allen

    Step 1: Load Required Master Data for 0CostCenter in to BI system
    Step 2: Enable Characteristics to support Hierarchy for this 0Cost Center and specify the External Characteristic(In the Lowest Node or Last Node) while creation of this Characteristic InfoObject
    Step 3: On Last Node of Hierarchy Structure in the InfoObject, Right Click and then Create Hierarchy MANUALLY by Inserting the Master Data Value as BI dosent Support the Hierarchy load directly you need to do it manually....
    Step 4: Mapping
    Create Text Node thats the first node (Root Node)
    Insert Characteristic Nodes
    Insert the Last Node of the Hierarchy
    Then you need to create a Open hub Destination for extracting data into the .csv file...
    Step1 : Create the Open Hub Destination give the Master Data table name and enter all the fields required....and create the transformations for this Open Hub connecting to the External file or excel file source...then give the location on to your local disk or path of the server in the first tab and request for the data...It should work alright let me know if you need anything else...
    Thanks,
    Sandhya

  • How to create new structure for SOP?

    How to create new structure for SOP? and transfer data for long term planning?

    hi dear
    For SOP there are two types
    1. Standard SOP : this the standard SOP  configured by SAP consider the Level by Level planning and planning done for product group .
    2. Flexible planning SOP: this option is given, so that Rough planning/SOP planning can be done as per the client requirement.e.g planning structure can be sales orgn., distribution channel, division, plant, material
    For configuring the flexible planning SOP follow steps
    1. Define info structure in IMG
    where u define the characteristic and Key field
    2. Set parameters for info structures and key figures
    Sales & Operations Planning >Master Data>Set parameters for info structures and key figures
    where u define  Planning method
    Consistent planning
    Level-by-level planning
    Delta planning
    and aggregation type
    1. Average calculated
    2. Total created
    3. No aggregation
    3. create Planning type with reference to info structure
    Regards
    Suresh

  • How to create an extension for generated type idoc

    Hi all,
    Can u please look into this
    How to create an extension for generated type idoc ?  for example Idoc type BATMAS02

    Enter transaction WE30 (ALE->Extension-> IDOC types->Maintain Idoc type)
    - Type in your name of the extended IDOC type (usually starting with 'Z') and click on the Basic IDoc type, click the create icon.
    - Click on Create new and enter a description and press enter.
    - Click on ZIDOCTYPE01 and then on the Create icon.
    - Enter ZIDOCTYPE as the segment type, click on Segment Editor.
    - Enter a description for your segment type and create.
    - Enter a description for your segment, enter each field required in your IDoc and press enter to validate.
    - Save and generate, press back
    - To release the segment choose Goto, Release from the menu.
    - Check the box on the line of your segment.
    - Save, back and enter.
    - Your Idoc type structure should be displayed with your new segment.
    - Save and back.
    - To release the Idoc type choose Extras, Release type from the menu and Yes.
    ALE FUNCTION MODULE ENHANCEMENTS
    Having extended the IDOC type to contain additional fields for an inbound or outbound application, you now want to enhance ALE function modules for populating the additional segment on the outbound or applying the additional segment data on the inbound application.
    The core working code for ALE processes for a given application area is always encapsulated in ABAP/4 function modules. These function modules are associated with such control information as message types and process codes. So the ALE process checks this control information and derives the name of the function module to invoke for that particular IDOC processing from certain database tables. These function modules contain objects known as customer functions, which can be considered SAP Enhanced user exits. A function module is called at a particular point during the processing of the main program or function module, and it can be used to influence data processing at that point by adding code to the customer function. The customer function behaves like a normal function module and has import and export parameters, tables (internal tables) statement, and exception processing. Unlike a conventional user exit, customer functions give you the ability to modify only data available to you by the function moduleâs parameters and internal tables. While most ALE/EDI function modules are supported by customer functions, there are ALE/EDI processes that still use conventional user exits. There are a few ways to determine which function module to enhance for a given message type/process code:
    • For master data distribution, from SALE go to Extensions -> Master data distribution -> Setup additional data for message types. Search for message type DEBMAS in this example. You see an entry for DEBMAS associated with function module MASTERIDOC_CREATE_SMD_DEBMAS. This data is stored on table TBDME. The function module names for all master data message types follow this pattern: MASTERIDOC_CREATE_SMD_messagetype. This function module calls another function module of name MASTERIDOC_CREATE_DEBMAS or MASTERIDOC_CREATE_messagetype. Search for the words customer function, and you find several hits that can be used to add code to the function module.
    • From WEDI got to Control -> Inbound process codes -> Inbound with ALE service -> Processing by function module (transaction WE42), or from WEDI go to Control -> Outbound process codes -> Outbound with ALE service -> With function module (transaction WE41). There will be function modules associated with the process codes. For inbound, the function modules usually follow this pattern: IDOC_INPUT_messagetype: for example, IDOC_INPUT_CHRMAS for inbound characteristics master.
    • Use transaction WE57 or from WEDI go to Development -> Message/Application Object. The entries list the function module, Business Object, message type, and IDOC type that are used for inbound ALE/EDI interfaces.
    Customer functions are not specific only to ALE and EDI but also to all programs/modules in SAP R/3. Customer function is a SAP enhancement component; the other two types are menu and screen enhancements.
    All customer function exits are maintained in SAP enhancements and are found by using transaction SMOD. After executing transaction SMOD, pull down (F4) on the enhancement name field, and execute again. This provides you with a list of all SAP enhancements available. SAP enhancements are grouped by development class pertaining to an application area. Choose Application development R/3 SD master data distribution for development class VSV to lead to a screen that lists VSV00001 as an enhancement (see Figure 5). Press Component +/- to display its function exit components. There are four possible components listed, all of which are function exits (and are function modules) that are called from the ALE function modules in the form Call Customer Function Î001â. This is a special occurrence of the ABAP statement Call. Go to item Exit_SAPLVV01_ 001, which you need to enhance for the Customer Master outbound example of an IDOC extension. In the ALE-function module MASTERIDOC_CREATE_DEBMAS, the statement CALL Customer Function 001 is translated in the background to call component EXIT_SAPLVV01_001. Although this function exit can be edited using transaction SE37, you will use a simpler approach.
    When you use SAP enhancements and their components, you manage them with an SAP object known as a project, which is like an envelope containing the selected enhancements and their components. A project can be used to control the execution of components and to transport them to other clients and instances in SAP. Basically, the process involves creating a project, including enhancements and components that are to be enhanced, editing the components, and then activating the project. The following process creates a project for our example Customer Master IDOC extension:
    • Execute transaction CMOD.
    • Enter name of project, say CSTMAST1.
    • Click on Create.
    • Enter a description of the project.
    • Save.
    • Click on SAP Enhancements.
    • Enter VSV00001 for Enhancement.
    • Save.
    Once youâve created the project, edit the function exit components and activate the project. Remember that the code in the function exit enhancement will execute only if the project is activated. In fact, this is a convenient SAP enhancements feature, whereby the work in progress (developing code in the customer function) will not affect users of that application. When the code is completed, the project can be activated so the enhanced functionality takes effect. It can also be deactivated for maintenance.
    As mentioned earlier, customer functions (function exits) are embedded in ALE function modules and can be used to influence the creation and modification of IDOC data on an outbound application or to post additional or modified IDOC data to an inbound R/3 application. Function exits are similar to regular function modules, with import/export parameters, tables (internal tables), and exceptions.
    The two important factors to consider while developing the customer function are:
    1. The point in the ALE function module where the function exit occurs
    2. The data made available by the customer function that can be modified or posted to the R/3 application, based on the direction.
    Because some function modules have several customer functions, it is critical to choose the function exit best suited for that particular enhancement. Do not attempt to perform activities that the function exit is not designed for. The importance of this point is illustrated by the following description of enhancing function modules for outbound and inbound ALE interfaces.
    Outbound interfaces. In an outbound ALE interface you use function exits (customer functions) to populate additional segments created by an IDOC extension or to modify the existing IDOC data segments as per business requirements. Previously, you identified that enhancement VSV00001 has a component EXIT_SAPLVV01_001 (function exit), which can be used for populating the additional data segment Z1SADRX that you created in the IDOC extension ZDEBMASX (IDOC type ZDEBMASZ, based on Basic IDOC type DEBMAS02). You also learned that the ALE function module that calls this function exit is MASTERIDOC_CREATE_DEBMAS, which has a statement Call Customer Function 001.
    Browse the function module MASTERIDOC_CREATE_DEBMAS using transaction SE37. You will find that this customer function is invoked for every segment of IDOC type DEBMAS02. In fact, the function exit is called soon after the creation of an existing segment has been populated with data and appended to the IDOC data table (internal table). Also, the function exit is exporting the message type, IDOC type, and the segment name and is importing the IDOC extension type. It is also passing the IDOC data internal table. This indicates that the ALE function module is allowing you to populate additional segments for every existing segment and modify the existing segmentâs data.
    Letâs write ABAP/4 code to accomplish the task of populating IDOC segment Z1SADRX with a contact personâs business address:
    • From SE37, display function module MASTERIDOC_CREATE_ DEBMAS.
    • Find Customer Function 001.
    • Double-click on 001.
    • The function EXIT_SAPLVV01_001 will be displayed.
    • Double-click on INCLUDE ZXVSVU01.
    • You will be asked to create a new include object. Proceed as desired.
    • Enter code (as in Listing 1).
    • Be sure to perform a main program check (Function Module -> Check -> main program) and extended program check (Function module -> Check -> Extended check).
    Now that you have extended the IDOC and enhanced the ALE function module based on the requirements for the contact personâs business address on the Customer Master, letâs test the interface. You should create a logical system and define a port for this interface. You should also configure the Customer Distribution Model to indicate that message type DEBMAS is being distributed to this logical system. The only difference in configuration between a regular outbound ALE interface and an enhanced one is the partner profile definition. While maintaining the outbound parameters of the partner profile, make sure the IDOC type is ZDEBMASZ. The fields for Basic IDOC type and extension type are automatically populated with DEBMAS02 and ZDEBMASX, respectively.
    To maintain the contact personâs business address of a customer:
    • Use transaction BD12 or from BALE go to Master Data ->Customer -> Send and send that Customer Master record by executing the transaction after filling in the relevant fields such as customer number, message type, and logical system.
    • Use transaction WE02 or WE05 to verify the IDOC created. You should see the new segment Z1SADRX populated with the correct data.
    With SAP releases below 4.5B, you cannot capture changes to business address through change pointers because a change document object is not available for capturing business address changes, and also earlier releases have not been configured to write change documents for a contact personâs business address. If you would like this functionality, you can either create change document objects, generate function modules to create change documents, and perform ALE configuration to tie it in, or make a cosmetic change to the contact person screen data while changing the contact personâs business address so that it gets captured as a change to the Customer Master. Subsequently, the ALE enhancement that you performed captures the contact personâs business address.
    Inbound interfaces. The process for enhancing inbound ALE interfaces is similar for outbound, with a few exceptions; specifically in the coding of customer functions (function exits) for the ALE/EDI function modules.
    The first step is to create an IDOC extension for the specific Basic IDOC type by adding new segments at the appropriate hierarchy level: that is, associated to the relevant existing segment. Populate the data fields on the new segments with application data by the translator or external system/program before importing them into the R/3 System. Then, find the ALE function module that is invoked by the inbound processing. By browsing through the code or reading the documentation on the function exit enhancements using the SMOD transaction, identify the function exit in which you should place your code. The technique used in the code to post the additional or modified IDOC data to the application can vary based on the application rules and requirements, the data available at that point in processing, and the application function modules available to update the application tables. It is important to search first for application modules that process the data and see if they can be called within the function exit. If the additional data in the extended segments in specific to a custom table or resides in nonkey fields of a single or small set of tables, you may be able to update it directly by SQL statements in the function exit. This approach should be carefully evaluated and is certainly not highly recommended.
    Another option is to use Call Transaction from within the function exit to process the additional data. For example, in the case of message type WMMBXY for inbound goods movements from a warehouse management system, the standard interface creates batches for materials, but does not update its characteristics. In such a case, you can use Call Transaction MSC1 to create the batch and assign characteristic values to it from within the function exit provided.
    regards,
    srinivas

Maybe you are looking for

  • Adobe Photoshop CS3 Bridge

    I finally succeeded installing photoshop CS3. My problem now is Bridge is buggy the only mode that I can use is light table,when I change modes the interface breaks up and I have small broken up ikons every time I try to get a thumb nail to open. Pho

  • Suggestions to bring I-Tunes into the 21st century

    You can tell if a company has loads of problems if the last option on the last menu on the phone is to speak to a person. Apple seems to have taken that to a new extreme. I-Tunes is a good little program with a few little problems. 1) Not all songs a

  • Unable to download and install apps from iTunes store  !!!

    I am in Bosnia and Herzegovina. When I try to install free or purchase apps from apple iTunes store, i click on the desired app and the window pops up where i need to enter and confirm my data, all goes well until the moment when i need to confirm my

  • Media offline...can't be!

    I'm trying to export a short clip. The clip plays on the timeline. The clip plays in the Export Settings box, both in the Source side and the Output side. But when I complete the export I get the 'Media Offline' error on the clip. The media can't be

  • MBP RAM issue

    Hello, I recently upgraded from leopard to snow leopard and love it, it was not until today i looked at my activity monitor to check out how things are doing. I am on a 13 inch MBP with 2 gigs of RAM and 160 gig hard drive. It was today that i notice