Part interchangeability with FFF class and FFFC - HERB material type

Experts-
Have you worked with Part interchangeability with FFF class and FFFC or HERB material type?
I am looking for cross-reference functionality for interchangeable materials from maintenance/service perspective. We have users changing manufacturer's part number as and when needed and maintaining cross-reference via classification. Maintaining SAP part number and HERS is too much data maintenance, so we are looking for simple solution.
We are in standard ECC 6.0. (No APO). I checked OSS 181764, but it doesn't help us in instructions for enhancement.
If this needs activation for DIMP or A&D, do you know enhancement for this?
Thanks for your help.
RP

Hi
I have been involved with a client who is interested to know the implementation of FFF functionality. Can you share your experience  in a bit more details.
The client is interested in using parts where multiple models are available in the market and few of them are interchangeable. They would like to purchase it as an asset and then manage the inventory as non valued material. How does it work throuh the APO for forecasting and demand planning functionalities.
Thanks in advance.

Similar Messages

  • Interchangeability groups (FFF-Class)

    Needs to develop its own program allows to create interchangeability group (type of FFF-class). I've already learned thread List of materials assigned to Interchangeability group. (List of materials assigned to Interchangeability group.) and found a solution how to get a list of materials assigned to interchangeability groups and how to add them to the model.
    But I would like to receive information about FM or BAPI that can help me create and delete groups, and even change the lock status.
    Edited by: Alexander-p on Mar 21, 2011 6:37 PM

    Hi Alexander,
                         /INCMD/EXT_MATNR is the product name from /sapapo/matkey table only.You can check the Function Module documentation of /INCMD/BAPI_GROUP_SAVE in which SAP has provided 5 examples also.
    Example 1: Create supersession chain
    Example 2: Update supersession chain
    Example 3: Create supersession chain with product combination
    Example 4: Create FFF class with FFF subsets
    Example 5: Create procedure
    If you want to get the Product name from Product GUID you can use below available FMs
    /SAPAPO/DM_MATERIAL_GET_MATID - Provides Material ID &
    /SAPAPO/DM_MATID_GET_MATERIAL - Determines External # for Internal Material Number
    Regards,
    Saurabh

  • Help with Runtime class and timeout of Process

    Hi,
    Question regarding using Runtime class, and yes I have looked at the javadocs, but I am still confused and frustrated.
    Here is part of my code.
    Process p;
    Runtime runtime = Runtime.getRuntime();
    p = runtime.exec("rsh localhost ls");
    if you are not familiar with rsh all it does is remote shell into the computer localhost and executes the command ls.
    Now, I dont have rsh running on my computer so it will hang at that line for about 40 sec and eventually time out on its own. Is there anyway I can specify a timeout argument like there is for the ping command? Like if there is no response from localhost after 3 sec, then just kill the process?
    I looked at the Runtime javadoc and Process javadoc and the closest thing I could come to with is something to do with envp (environment parameters), but I dont know what that is.
    Thanks guys.

    You can't timeout the "runtime.exec("rsh localhost ls");" call but if you execute the call in a seperate thread you can "timeout" and continue executing on the original thread (while letting the "runtime" thread to timeout on its own).
    Check the following class that I created for cases like this:
    abstract public class TimeoutHelper implements Runnable
        private Throwable error;
        private boolean running = true;
        private Object retValue;
        protected String name;
        private long waitTime;
        private Thread thread;
         * Creates a new helper. Use {@link #start} to run the code.
         * @param name A name that will be used in the helper thread name
         * @param waitTime The time (in msec) to wait before timeout.
        public TimeoutHelper(String name, long waitTime)
            this.name = name;
            this.waitTime = waitTime;
        public Object start() throws Throwable
            return asyncExecute();
        abstract protected Object execute() throws Throwable;
        private synchronized Object asyncExecute() throws Throwable
            createThread().start();
            if (running)
                try
                    wait(waitTime);
                    if (running)
                        // Timeout!!
                        abortThread();
                        throw new TimeOutException("Timeout for: " + name);
                catch (InterruptedException ie)
                    // Ignore
            if (error != null)
                throw error;
            return retValue;
        private void abortThread()
            if (thread != null)
                thread.interrupt();
        protected Thread createThread()
            thread = new Thread(this, name);
            return thread;
        public void run()
            try
                retValue = execute();
            catch (Throwable th)
                error = th;
            synchronized (this)
                running = false;
                notifyAll();
    }You use the class by extending it and implementing "execute". For example:
            TimeoutHelper helper = new TimeoutHelper("Runner", 5000)
                protected Object execute() throws Throwable
                    Runtime runtime = Runtime.getRuntime();
                    return runtime.exec("rsh localhost ls");
            try
                Process p = (Process)helper.start();
            catch (TimeOutException e)
                // Handle timeout here
            catch (Exception e)
                // Handle other errors here.
            }

  • Write message to Job log with message class and message number

    hi folk,
    When running a background job I'm able to write a message to the job log using the statement - Message "some text..." type 'I'.
    In the Job log I can see the message "some text.." with a "default" message class and message number (but in my report i don't specify any message ID) so I have no idea it comes from.
    Then I try to send a message where I specify the message class/number etc...using message id 'Z1' number 000 with "some text..." In the job log I now can see the "right" message class "Z1" and the number 000, but the message is empty?
    Please advice how to write a message with the message class and message number.
    Best regards
    LinhNg

    Hi Linh,
    How did you provide the text "Some message"? Did you hard code it or used a text element?
    Regards,
    Immanuel.

  • ABAP Objects with Workflows / Classes and Instances

    Hello,
    I am currently designing a workflow using an ABAP-Objects. So far I have been been able to get my Workflow to run with my class, but I have a couple of problems:
    - I am using the Function 'SAP_WAPI_START_WORKFLOW' to start other subflows, which enables me to decide which subflow to start at runtime. All of the subflows have standart importing-parameters in their containers, such as the key of my class. In each workflow I instantiate my class using a self-written method, which checks the table T_INSTANCES in my object, and then either returns the object reference to an existing instance or creates a new one. Obviously all of the subflows that I call from my main workflow should be able to find the instance. As far as I can see in their protocolls, this happens without any problems. The problem starts when I make changes to the instance. For example the changing of attributes (with setter methods) seems not to work. After the subflows are finished, in my main workflow, I do not see (with getter methods) any changes that has been made to the object. Is local persistence really limited to one workflow ?
    - My second problem is basically about the workflow container in workflow protocoll. In the same workflow, I can change the attributes of my object. Nevertheless, the protocoll always show the initial attribute, even though, my task with the getter-method returns the new value of the attribute.
    I appreciate any help and thanks a lot in advance.

    Hello Pauls,
    Thank you for your answer. I think we are misunderstanding each other. The problem occurs (I think) because my class is not a singleton class. Or am I mistaken ?
    When I directly start a subflow from my main workflow, then the instance that I have created in my main workflow is also visible to the subflow. As well as the static table which actually keeps track of the instances. So, in this case the subflows finds the instance and then can use the object as is.
    When I start a subflow from my main workflow using the function I mentioned above, then even though the same object key is used, there is a new instance. And the static table (I assume that you mean a static variable from type table, when you say "class table") is completely empty. In this case, my "new" instance is created which overwrites every attribute that I have set in the main workflow, before I started the subflow. More interestingly, my main workflow instantiates another new object, as soon as the subflow has finished. (I am using an event to wait for the subflow to finish.)
    On the other hand, I am not quite sure that I understood your approach with refresh and how it could help me. This method is not well documented anywhere, and all of the examples that I have found are about "leave it empty"
    As far as I understood, this method is called by the workflow between the steps, when an object is used. I slowly start to think that I need advanced information about Workflows and Memory Management.
    Thanks a lot again. Apparently, I am the only person who came across such a problem
    Greetz
    G.Fendoglu

  • Mandatory Views and Fileds for Material Types

    Hi
    We require the below, Whr can i get this. If any one hv the below requ pls sedn to this srcn dot ram at hot mail dot com
    The requ is we need to know wat are all the mandatory views and mandatory fileds for all std material types provided by SAP.
    When we create a matl with respect to one matl type its ask so many fileds as mandatory and so many fileds as optionsal and display.
    I need to know.. whr can i ge this.. is thr any doc or link for that.
    Vijay

    Never post Mail ids in SAP Forums. what ever the Information you need ask here.
    You can Check in OMSR & OMS9.
    For more Similar threads use SDN search.

  • How to create screen sequence and assign to material type

    Hi,
    How to create new screen sequecnce and how to assign it to material type, is there any link of Industry sector with this.
    regards,
      zafar

    how to assign it to material type and also what is use of industry sector
    Industry sector - it simply mean The industry sector groups companies according to activity, for example, plant engineering and construction, mechanical engineering, the chemical industry, and the pharmaceutical industry
    Field references are defined in Customizing for the Material Master in the activity Maintain Field Selection for Data Screens.
    for see field references run tcode OMs9.
    Assign Field references to Material Type by Tcode OmT3E, You can see in OMS2 in General data See Field references and SRef: material type

  • Is there a user exit to restrict BOM change and display using material type?

    Hi Gurus,
    There’s a need to limit access to BOMs on a per material type however the client does not want to use the functionality of "BOM Authorization Group" in BOM header details.
    Do we have a user exit that can satisfy the said requirement?
    Thanks,
    Mae

    Hi
    Restriction to Changes of BOM will have better control using authorization object .Go to PFCG with your basis guy and try to explore the objects
    You can use C_AENR_BGR object to restrict.
    Otherwise , try apply BADI BOM_UPDATE
    Regards
    JH

  • Regarding Industries type and including the material types in indu sector

    Hi Gurus,
    I have query regarding the above subject.
    i want to add my own material types to my own inds sectors in MM01 screen.
    I dont know how to do that?
    Please help me.
    Pran

    Hi,
    OMS2 - Material Type
    Here you can select the standard material type and copy to new one
    OMS3 - Industry Sector
    Here create industry sector by "New Entries" and assign the field reference as per requirement.
    Then check in MM01, it will start appearing.

  • Doubt  easy program  with a class and cicle for

    im creating a class which target is.... i set a sentence and a key that encrypt that sentence. It depends os de characters of key : example->1234, i ve to create a switch with the four cases and character by character it must change the sentence.
    cases
    1- takeRight ex: michael, change to-> lmichae
    2- takeLeft ex: michael, change to ->ichaelm
    3- takeRightText ex: i am michael, change to-> michael i am
    4- takeLeftText ex: i am michael, change to->am michael i
    How do i do cases 1and 3...? I know that cicle for is a good option...as the creation of String:
    private String text;
    private Int key;
    public Int encrypt() {
    switch (text) {
         case 1:
              for ( ; ; ) //i dont know//
              break;
         case 2:
              break;
         case 3:
              break;
         case 4:
              break;

    but how do i put the code, i read and i didnt
    understand...Which one did you not understand? What did you not understand? Which one are you trying to use?
    Please be specific.

  • How to load an applet with 2 classes and get it to display properly

    Ok I am a very newbie as you can tell by code below but I need help duh. I am a student taking a Java course on my own (ie no marks) so I know what I am doing in a second level java courseI am not sure if my problem is with "Forte for Java 4, CE" or my code. I have two files. Door.java and Exercise4a.java
    The code is as follows:
    Door.java
    package Exercise4.Exercise4a;
    import java.awt.*;
    import java.applet.*;
    public class Door extends java.applet.Applet {
    /** Creates a new instance of Door */
    int x;
    int y;
    public void init() {
    Graphics b;
    public Door(Point aPoint)
    x = (int)aPoint.getX();
    y = (int)aPoint.getY();
    public void paint(Graphics graphics)
    graphics.drawRect(0 + x ,0 + y, 20,30);
    graphics.setColor(Color.black);
    graphics.fillOval(15 + x,15 + y ,5,5);
    graphics.drawImage(buffer,0,0,this);
    public static void main(String args[]){}
    and Exercise4a.java
    package Exercise4.Exercise4a;
    import java.awt.*;
    import java.applet.*;
    public class Exercise4a extends java.applet.Applet {
    Graphics b;
    public void init() {
    Point a = new Point(0,0);
    Door door = new Door(a);
    My problem is that I do not see my door when I compile either file.
    What am I doing wrong? Is this acode problem. ie how do I load the graphics or is it that I am not compiling it correctly.

    package Exercise4.Exercise4a;
    import java.awt.*;
    import java.applet.*;
    public class Exercise4a extends java.applet.Applet {
    Graphics b;
    public void init() {
    Point a = new Point(0,0);
    Door door = new Door(a);// door.paint (b)

  • Dealing with abstract classes and interfaces with XMLBeans

    I'm quite new to XMLBeans and would like some help. I've got things working when
    you are only saving concreate classes as XML, but when it comes to clesses containing
    interfaces I am running into problems.
    I basically have a collection of XY objects (see below) that I want to save as
    XML.
    I want to convert the following java classes to an xml schema:
    public class XY{
    X x;
    Y y;
    public interface X{
    void setA(int a);
    int getA();
    public interface Y{
    void setB(int b);
    int getB();
    public class X1 implements X{
    void setA(int a);
    int getA();
    //other data to save
    public class X2 implements X{
    void setA(int a);
    int getA();
    //other data to save
    public class Y1 implements Y{
    void setB(int b);
    int getB();
    //other data to save
    public class Y2 implements Y{
    void setB(int b);
    int getB();
    //other data to save
    What would be the best way to convert these to XML Schema? I've looked through
    all the XMLBeans documentation, but it doesn't say anything about dealing with
    interfaces/abstract classes. Is there anywhere else to look?
    Thanks in advance,
    Andrew

    Anurag,
    What I really wanted was a work-around to using substiutionGroups as substitution
    groups are not supported in this release.
    I want to convert the following schema:
    <xsd:complexType name="PublicationType">
    <xsd:sequence>
    <xsd:element name="Title" type="xsd:string"/>
    <xsd:element name="Author" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
    <xsd:element name="Date" type="xsd:gYear"/>
    </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="BookType">
    <xsd:complexContent>
    <xsd:extension base="PublicationType" >
    <xsd:sequence>
    <xsd:element name="ISBN" type="xsd:string"/>
    <xsd:element name="Publisher" type="xsd:string"/>
    </xsd:sequence>
    </xsd:extension>
    </xsd:complexContent>
    </xsd:complexType>
    <xsd:complexType name="MagazineType">
    <xsd:complexContent>
    <xsd:restriction base="PublicationType">
    <xsd:sequence>
    <xsd:element name="Title" type="xsd:string"/>
    <xsd:element name="Date" type="xsd:gYear"/>
    </xsd:sequence>
    </xsd:restriction>
    </xsd:complexContent>
    </xsd:complexType>
    <xsd:element name="Publication" type="PublicationType"/>
    <xsd:element name="Book" substitutionGroup="Publication" type="BookType"/>
    <xsd:element name="Magazine" substitutionGroup="Publication" type="MagazineType"/>
    <xsd:element name="BookStore">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element ref="Publication" maxOccurs="unbounded"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    to produce an XML file like:
    <?xml version="1.0"?>
    <BookStore ¡Ä>
    <Book>
    <Title>Illusions: The Adventures of a Reluctant Messiah</Title>
    <Author>Richard Bach</Author>
    <Date>1977</Date>
    <ISBN>0-440-34319-4</ISBN>
    <Publisher>Dell Publishing Co.</Publisher>
    </Book>
    <Magazine>
    <Title>Natural Health</Title>
    <Date>1999</Date>
    </Magazine>
    <Book>
    <Title>The First and Last Freedom</Title>
    <Author>J. Krishnamurti</Author>
    <Date>1954</Date>
    <ISBN>0-06-064831-7</ISBN>
    <Publisher>Harper & Row</Publisher>
    </Book>
    </BookStore>
    What is the best way to do this without using substitution types?
    Thanks,
    Andrew
    "Anurag" <[email protected]> wrote:
    Andrew,
    Could you please paste/attach a sample of the code you are using to convert
    Java bean classes to XMLBeans?
    In the current release the goal of XMLBeans technology was to convert
    from
    XML Schemas or XML files to XMLBeans. The focus was not towards conversion
    of Java beans to XMLBeans.
    Regards,
    Anurag
    "Andrew" <[email protected]> wrote in message news:[email protected]...
    I'm quite new to XMLBeans and would like some help. I've got thingsworking when
    you are only saving concreate classes as XML, but when it comes toclesses
    containing
    interfaces I am running into problems.
    I basically have a collection of XY objects (see below) that I wantto
    save as
    XML.
    I want to convert the following java classes to an xml schema:
    public class XY{
    X x;
    Y y;
    public interface X{
    void setA(int a);
    int getA();
    public interface Y{
    void setB(int b);
    int getB();
    public class X1 implements X{
    void setA(int a);
    int getA();
    //other data to save
    public class X2 implements X{
    void setA(int a);
    int getA();
    //other data to save
    public class Y1 implements Y{
    void setB(int b);
    int getB();
    //other data to save
    public class Y2 implements Y{
    void setB(int b);
    int getB();
    //other data to save
    What would be the best way to convert these to XML Schema? I've lookedthrough
    all the XMLBeans documentation, but it doesn't say anything about dealingwith
    interfaces/abstract classes. Is there anywhere else to look?
    Thanks in advance,
    Andrew

  • New to Jdev: having problem with Helloworld class and the jsp

    Please, i went through the beginner's tour at oracle site and it has been interesting.
    After putting the class name as Hello, the package name as "mypackage1" as in the example, then the extend field as java.lang.object There is always an error saying that "java.lang.object is not a valid base class for this option". Please what can i do, cos it's delaying my practise.
    secondly, practising the jsp stuff is also interesting, but it's not showing the web preview. i mean after designing the stuff myself, it's giving some compilation error.
    What can I do.
    Thanks

    Hello,
    1- Are you running the "Building Your First Program with JDeveloper 10g" located at
    http://www.oracle.com/technology/obe/obe9051jdev/FirstStep/FirstStep.htm
    If not, is it working for you ?
    2- Which exact version of JDeveloper are you running ? (Help -> About)
    You should be running JDeveloper 10.1.2.x.x
    You can get Oracle JDeveloper 10g (Version 10.1.2.1, build 1913) at
    http://www.oracle.com/technology/software/products/jdev/index.html
    look for the chapter "Oracle JDeveloper 10g Production".
    3- Try re-installing JDeveloper (uncompressing the zip file) into a different
    path (ex: C:\JDeveloper10g) and retry the first steps.
    I've retested the "First Steps" against my Windows XP SP2 and it works just fine.
    Regards,
    Steff

  • Help - problems with mixin class and recursion

    I'm trying to set up functionality which will allow me to track gui node nesting.
    Basically, I'd like to have an optional name for each node and be able to generate a string which uses these to track descent. So, e.g., if I have "panel1" as my top scene, "control1" as a node within that scene and "image1" as a node within control1, I'd like to be able to produce the string "panel1.control1.image1" with a call to the image1 node.
    I am attempting to do this with a mixin class, as it seems precisely the sort of situation suited to mixins. So I have:
    import java.lang*;
    public mixin class Descent {
        public-init var objName:String = getClass().toString();
        public function getObjDescent():String;
    }When an object is created, it can be assigned a name - or, if there's no assignment, it gets given its class name. When I want the full "descent name" of the object, I'll call getObjDescent(). So far so good.
    But now it gets trickier. The idea is to track descent within javafx nodes. If I don't want to assume everything is set up properly, I've got to cover a few cases:
    (a) the class into which this object is mixed - the mixee - is not a javafx node
    (b) the mixee is a javafx node, but its parent is not
    (c) the mixee is a javafx node and descends from a javafx node
    Thus:
        public function getObjDescent():String
            var build:String="";
            // get parent's name, if it has it
            try {
                var nodeClass:Class[] = [javafx.scene.Node.class];
                var checkIsNode = this.getClass().getMethod("getNodeMaxHeight",nodeClass);
                if ((this as Node).parent != null) {
                    var parentDescentFn = (this as Node).parent.getClass().getMethod("getObjDescent",(null as Class[])) ;
                    build = ((this as Node).parent as Descent).getObjDescent();
                    build = build.concat(".");
            catch (e:NoSuchMethodException)
                build = "";
            build.concat(this.objName);
        };First I have to check if the mixee is a javafx Node. I can't do this by member checking because javafx doesn't support that. So I have to check by methods. I use one of the Node methods - getNodeMaxHeight - if it is defined for the mixee, the mixee is a node. If not, I'll get an error and can abort down to the catch section.
    If this mixee is a node, then it will have a parent node. If that parent also has descent info, I have to prefix that parent's descent name. So now I need to figure out if I can recursively call getObjDescent() on the parent.
    So I do the same getMethod() approach on the parent (if any) to see if it has a name I have to prefix. If not then, again, we abort out to the NoSuchMethodException error catch.
    Now I should be sure that this is a node and its parent has the Descent fields. So I should be safe to call the parent for its info.
    Here I've done this as
    ((this as Node).parent as Descent).getObjDescent().Though that gives me no errors, I'm not sure if that's the right way to cast things - will it look at the wrong portion of the object to find the method call? Better would be to call the function using the parentDescentFn variable, which I've gotten in checking to see if the parent has the Descent class mixed in, but I can't figure out how to go from a java.lang.reflect.Method variable to generating an actual call of that method. So there's a first question.
    However I get to that recursive call, I will get back the parent's descent name. I add my descent separator, '.', and then append the objName of this particular class. Voila - the full descent name.
    Though the above throws no warnings in the editor, it generates two compile errors.
    First, it tells me it cannot find the symbol:
    symbol  : method get$class()
    location: class javafx.scene.Node
                var nodeClass:Class[] = [javafx.scene.Node.class];I need to construct a Class[] containing Node for my call to getMethod in the next line. Is this not the right way to specify the Node class?
    The next error is:
    non-static variable this cannot be referenced from a static context
                var checkIsNode = this.getClass().getMethod("getNodeMaxHeight",nodeClass);I still find what javafx treats as "static" and what non-static to be mystifying. I'm fairly sure I've seen mixin classes which use "this" to grab the mixee object, and I certainly need to do so in this case to check if the mixee is a javafx Node and, subsequently, to get its parent Node.
    So... three problems:
    - Using "this" in a mixin class ... what's messing that up?
    - constructing the Class[] sequence for the first call to getMethod
    - (possibly) properly generating a call to the parent mixee's getObjDescent() method.
    urg.

    RE static vs non-static of this:
    I'm not sure, but I think it's a little less straightforward:
    e.g. if I type:
    var dummy = this; no problem. (This is analogous to what you did.)
    But if I type:
    var dummy = this.getClass();I get the static/non-static error. I take this to reflect the fact that getClass() is not defined by the mixin class, even if it is defined for any object which might use that class. (Perhaps, down deep in the code, "this" has been redirected to point just to that block of memory which gives the implementation of the mixin information?)
    Yet if I type
    var dummy = getClass();it works fine, and returns the class which is implementing the mixin.
    My guess is that "this" is being treated specially with a mixin class - I think, at compile time, if it just says "this" it is ignored by the "mixin" handling and passed along to the regular class compiling to process, but if it is this.method() or this.member, then the mixin class handles it and will throw that error if it gets any methods or members which it did not itself define.
    I haven't had any trouble using the Class objects in javafx, though I don't think I can easily make them do what I, here, specificly want to do. But getClass() seems to work just fine (as long as I don't say this.getClass() !!), as do calls to get or invoke members - I got that one of the 3 problems solved.
    I discovered that javafx seems to flatten its classes out to the single implementation of FXObject - when I attempted to parse the interfaces of the mixee class to see if "Node" was a member (which it should be, conceptually), I only got 2 interfaces: FXObject and my mixin class. So I can't use the Class commands to find out of the mixee class object implements Node or not.
    I also discovered that, given how javafx seems to compile itself into java, I could actually check for members as well as methods: getMethod("loc$parent") would actually return the parent member, if present. So getMethod can be used to check for the presence of both members and methods in javafx classes. I could not figure out, however, how to get from that reference to the value of the object itself - while invoke() works properly for methods, I couldn't get it to work for the members it retrieved. Though I didn't try too terribly hard.
    The getMethod() Class function did allow me to check if a class had my mixin class present - or, at least, if it contained a method with the same name as one defined in that class.
    Ultimately, though, I'm still stuck with trying to answer the questions, given a generic javafx class (implicit in this, which I could get by getClass()):
    - does this mixee class implement Node?
    - if so, what is the value of its "parent" member ((this as Node).parent didn't seem to work within the mixin class' code. Or so it seemed.)
    I've gotten around that problem by adding a Node member to the class, so that, rather than trying to deduce it from "this" or the Class functions, it simply uses its variable. Less elegant and more memory-using, but quicker and, actually, more flexible. That approach solves my immediate problem, though it does leave unanswered the more basic questions raised by the exercise.
    thanks for the feedback!

  • Developp with multiple class and module

    Hi all,
    I'm a beginner with developping Add-on with SAP. All the example show a "SubMain" which call a unique class where all the code is. I'd like to simplify my code in creating separate module and i have problem with the SBO_Application.
    Here is my code, when I declare Sbo_Application in a general module, the Sub_connect is OK but not the Handles of the SBO_Application_AppEvent. If I declare it like this code. the sub_connect is wrong.
    Have you an idea?
    Sorry for my bad English.
    Thanks in advance
    Sylvie
    Module SubMain
        Public Sub Main()
            Dim obj_Easypay As New Class_Easypay    ' execute the add-on code
            System.Windows.Forms.Application.Run()  ' Starting the Application
        End Sub
    End Module
    Friend Class Class_Easypay
        Public WithEvents SBO_Application As SAPbouiCOM.Application
        Public Sub New()
            MyBase.New()
            'Connection to SAP Business one application
            Sub_Connect_SBO()
        End Sub
        Private Sub SBO_Application_AppEvent(ByVal EventType As SAPbouiCOM.BoAppEventTypes) Handles SBO_Application.AppEvent
             SBO_Application.Messagebox(" ")
        end sub
    end class

    Hello,
    I have readed that your project has been stopped but for logging i am answering your question:
    You should create a global variable for holding the application object tp manupulate with outside your class.
    Module SubMain
      Public g_SBO_Application As SAPbouiCOM.Application ' this is for all modules, without events
      Public Sub Main()
      Dim obj_Easypay As New Class_Easypay ' execute the add-on code
      System.Windows.Forms.Application.Run() ' Starting the Application
      End Sub
    End Module
    ' Do not use Friend class -  memory weaks
    Friend Class Class_Easypay
    Private WithEvents SBO_Application As SAPbouiCOM.Application ' local you can use only inside form the class
    Public Sub New()
      MyBase.New()
      'Connection to SAP Business one application
      Sub_Connect_SBO()
       g_SBO_Application = SBO_Applicatio
    End Sub
    'Use Private
    Private Sub sbo_application_AppEvent (ByVal EventType As SAPbouiCOM.BoAppEventTypes) Handles sbo_application.AppEvent      
      Test ()' or MyModule1.Test()  
    end sub
    end class
    Module MyModule1
      Sub Test
        g_SBO_Application.statusbar.settext("TEST")
      End sub
    End Module
    Module MyModule
      Sub MyApp_EventHandler(sbo_application_AppEvent)
        g_SBO_Application.statusbar.settext("TEST")
      End sub
    End Module
    Regards,
    János

Maybe you are looking for

  • How to configure a internal modem in solaris X86

    Hi, We were testing a solaris installation in one of my friend's sysytem and i would like to know how to configure an internal modem in solaris to dial out to ISP. If some one can help us in setting this up it will be really helpful. Waiting for your

  • A DropDownListbox in a TableViewColumn

    Good Morning, i will take a dropdownlistbox in a tableview, but there is a mistake in the site. i need this, for example: <htmlb:tableView id                   = "test"                    headerText           = "test"                    headerVisible

  • Diplaying Image

    hi, i am trying to display images, which are in db, as report on html db. schema: yy table name ; xxx column ; image(blob) in definition region>source>> select sk,'<img src="#yy# width="480" hight="480" />'img from     xxx S WHERE S.SK = 16310 It doe

  • Opening RAW files from Lumix DMC FZ1000

    Hi Everyone, I've just bought a Lumix DMC FZ1000 bridge camera as well as PSE 12 in the hope that I could continue to use PSE to process my RAW files. When I try to open the .RW2 files though I get the message that the format isn't supported. Does an

  • Enhancement request; Address book unfiled Smart folder, like iPhoto

    I could not seem to create a Smart Folder to contain any address cards not filed in another folder, just like iPhoto. Can this be done? If not, please consider this an enhancement request for the Leapord Address book. It should be an easy addition. T