2007A: Comments on GetDICompany method

According to the help center:
<i>"When running several DI add-ons performance may degrades significantly, because each additional connection to the DI API loads a new DI and ObServer DLLs.
You can improve performance using a new connection interface to DI API. This method is recommended when running multiple DI add-ons connected to the same Company database.
You must handle shut down events properly, otherwise add-on process remains in memory"</i>
I'd like to ask SDK Architects two simple questions before i test it by myself:
<b>1</b>. Wll GetLastError, GetNewObjectCode and other process-specific methods work properly? Imagine you have 2 addons and 2 connections returned by GetDICompany as well. What will be the result of GetNewObjectCode method executed by 2nd addon: will it be the the code of the latest object added by 2nd addon's DI connection or will it be the code of the latest object added by 'joined' processes of 1st and 2nd addons?
<b>2</b>. Should we keep in mind anything while coding the shut-down events?
These questions are the cause and effect of the lack of GetDICompany-mechanism's descriptions and comments. Detailed comments on its core are appreciate.
Regards,
Alexey

Hi Alexey,
Re 1. Of course that should work per Add-On!
...I just double-checked it with GetNewObjectCode - to have seen it myself before replying ;-)!
Re 2. I am not aware of anything you should keep in mind so far...; we'll double-check with R&D and let you know in case there is something!
Thank you very much for raising this!
Regards,
Frank

Similar Messages

  • Adobe Reader drawing without Comment Tools or Method to set "Make Properties Default" without popup

    Hi everyone,
    Spending a few days to find a solution for drawing lines, polylines, polygons, circles, rectangles, etc. It looks like a "dead end" since I want to develop a plugin for Adobe Reader that can draw custom Lines, Polylines, Polygons, ... (objects I can set my styles without using built-in style dialog). I want to use my custom dialog to set styles and do drawing without using Comment Tools. The problem is: when I use AVPageViewDrawingProc callback, I can draw only rectangle, polyline, polygon, no way to draw circle, text, etc.
    Another solution is to use Comment Tools. But when changing between tools I want to apply my styles to the tool (line color, text color, text size, ...), like the way you right click on an annotation and select "Properties", then mark "Make Properties Default" as checked before selecting "OK". I don't want to show the dialog to confuse user when he changes tools. So, is there any API method to help me selecting an annotation and mark this selected annotation to be default styles?
    I still can't find a way to change text size of FreeText realtime.
    Anybody can help me?
    Kind Regards

    If I were building something like this, I would have my plugin create custom annotations.  You can draw whatever you want in the appearance of the annotation.

  • DocCheck comments on deprecated methods

    I am using the DocCheck utility to check the comments in my java packages, classes and methods. Methods that are deprecated have a @deprecated tag in the method comment, but DocCheck then complains about missing @params, etc. Is there any way that I can suppress the checking of deprecated methods?

    was just giving the way old doccheck tool a try - found it to be really useful
    and I ran into the problem mentioned here, I wished, doccheck wouldn't check deprecated methods ...
    so, what has happened to
    ericArmstrong wrote:
    I'll add it to the list of desired features, and give it
    a high priority.;-)
    Anyone still using doccheck? Are there any other tools, I mean, maybe doccheck will fail on some javadoc features introduced with Java 5 or 6 or ... 11 ;-)
    I like it! E.g., it gave me hints, to add @see in my getter and setter methods ... cool stuff!
    Merten

  • Get javadoc comment for concrete methods

    Hi all,
    How to get javadoc comments to our concrete methods same as default methods.suppose if i generate action class, action method will generate with parameters and for this total java doc comments with method descritption generated whenver i choose yello bulb(at left indent) ---> Add missing java doc.
    So this type of facility i want to add to my own method .How can i do ?

    Hi all,
    How to get javadoc comments to our concrete methods same as default methods.suppose if i generate action class, action method will generate with parameters and for this total java doc comments with method descritption generated whenver i choose yello bulb(at left indent) ---> Add missing java doc.
    So this type of facility i want to add to my own method .How can i do ?

  • JavaDoc: inherit method comment from jdk classes?

    My goal is to let custom classes inherit method comments from overridden methods of jdk classes. From the doctool documentation, I would assume that the way to go is to set the path to the jdk sources in the -sourcepath option. My problem is that this doesn't seem to work at all - looks like JavaDoc is simply not parsing the JDK source files at all.
    The relevant (methinks :) part of the verbose output:
    // these are the input options as created by ant run from eclipse under win2k
    Executing 'D:\jdk\150_u6\bin\javadoc.exe' with arguments:
    '-d'
    'D:\JavaWorkspace\harvest\eclipse\javadesktop\jdnc-swingx\dist\javadoc'
    '-use'
    '-splitindex'
    '-verbose'
    '-classpath'
    'D:\JavaWorkspace\harvest\eclipse\javadesktop\jdnc-swingx\lib\optional\MultipleGradientPaint.jar'
    '-sourcepath'
    'D:\jdk_doc\srcjdk1.5.0;D:\JavaWorkspace\harvest\eclipse\javadesktop\jdnc-swingx\src\java'
    '-link'
    'file:D:/jdk_doc/jdk1.5b/docs/api'
    '-source'
    '1.5'
    'org.jdesktop.swingx.table'
    The ' characters around the executable and arguments are
    not part of the command.
    // following is the javadoc output
       [javadoc] [search path for source files: [D:\jdk_doc\srcjdk1.5.0,
    D:\JavaWorkspace\harvest\eclipse\javadesktop\jdnc-swingx\src\java]]
       [javadoc] [search path for class files:
    [D:\jdk\150_u6\jre\lib\rt.jar, D:\jdk\150_u6\jre\lib\jsse.jar,
    D:\jdk\150_u6\jre\lib\jce.jar, D:\jdk\150_u6\jre\lib\charsets.jar,
    D:\jdk\150_u6\jre\lib\ext\dnsns.jar,
    D:\jdk\150_u6\jre\lib\ext\junit.jar,
    D:\jdk\150_u6\jre\lib\ext\localedata.jar,
    D:\jdk\150_u6\jre\lib\ext\sunjce_provider.jar,
    D:\jdk\150_u6\jre\lib\ext\sunpkcs11.jar,
    D:\JavaWorkspace\harvest\eclipse\javadesktop\jdnc-swingx\lib\optional\MultipleGradientPaint.jar]]
       [javadoc] Loading source files for package org.jdesktop.swingx.table...
       [javadoc] [parsing started
    D:\JavaWorkspace\harvest\eclipse\javadesktop\jdnc-swingx\src\java\org\jdesktop\swingx\table\ColumnControlButton.java]
    ..snip..
       [javadoc] Constructing Javadoc information...
       [javadoc] [loading
    D:\jdk\150_u6\jre\lib\rt.jar(java/awt/ComponentOrientation.class)]
       [javadoc] [loading
    D:\jdk\150_u6\jre\lib\rt.jar(java/awt/Dimension.class)]
       [javadoc] [loading D:\jdk\150_u6\jre\lib\rt.jar(java/awt/Insets.class)]It doesn't seem to matter if javadoc is run from the commandline or through an ant task, the output is basically the same.
    The loading from the rt.jar might be the problem, at least when comparing to a report about (maybe exactly the same) problem back in 2004
    http://forum.java.sun.com/thread.jspa?forumID=41&threadID=536074
    The posters stated that the -sourcepath didn't appear to work under win, while it did work under Solaris. When working, the [loading..] output contained the path to the sources instead of to the classes.
    Any help, hint, thought, comment highly welcome!
    Thanks in advance
    Jeanette

    Hi Doug,
    thanks for your prompt reply!
    My first question is what does the source tree look
    below this directory:
    -sourcepath 'D:\jdk_doc\srcjdk1.5.0
    de]
    To work, the the full path to, say, String.java,
    would need to be:D:\jdk_docs\srcjdk1.5.0\java\lang\String.java
    Because -sourcepath must point to the root of the
    source tree. Is this what you have?
    exactly, that's the case. In the meantime, I tried to put the sources somewhere relative to the classes (to exlude the possibility that the absolute path poses a problem)I want to document - to no avail.
    >
    Are you thinking that the class files are loaded from
    rt.jar rather than the source .java files from the
    source tree?
    well, you are the expert to interpret the output :-) All I can be sure of is that this looks similar to output (for windows) in the old forum thread I mentioned and similar to a couple of bug reports. f.i.
    http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5079630 (which is closed as a duplicate) or
    http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5105600 which is still open (but probably should be closed - it's a usage error to point to the zipped sources).
    Hmm... thinking aloud: comparing my output to the output of the latter (it's quite analogous) it seems that in both cases the sources aren't found .. and the javadoctool falls back to get some search the missing information on the classpath. Maybe the question is: what could possibly go wrong (windows only) to not find the extracted sources (they are definitely there in my context ;-)?
    You might try setting -bootclasspath to the empty
    string, as describe here:
    http://java.sun.com/j2se/javadoc/faq/#bootclasspath
    I'll give it a try. BTW, this problem cropped up in the SwingLabs project, we are collectively scratching our heads in:
    http://forums.java.net/jive/thread.jspa?threadID=18409
    Thanks again!
    Jeanette

  • Providing new doc comments w/o overriding a method

    Is there a way to provide new documentation of a method inherited from a subclass with out overriding it? The superclass' implementation is
    fine however the comments are not descriptive enough so I'd like to add more. But I dont' want to idiotically override it like so:
    * new comment
    public void method()
    super.method();
    thanks,
    n.r.

    Yes, use in-line tag {@inheritDoc}./**
    * new comment
    * <p>
    * {@inheritDoc}
    public void method()
      super.method();
    }You can write above or below in-line tags.
    I show it with a <p> paragraph separator.
    -Doug

  • Connection error in GetDICompany

    Hi Experts
    I want to use multiple AddOn connection type. When I am using GetDICompany function, it is giving error explicit type conversion error
    code is
    SAPbobsCOM.Company oCompany = default(SAPbobsCOM.Company);
      oCompany = SBO_Application.Company.GetDICompany();
    Regards
    Jitender

    Hi Jairo,
    Try using the old way first :
            SAPbobsCOM.Company oCompany = new SAPbobsCOM.Company();
            string sCookie = oCompany.GetContextCookie();
            string sConnectionContext = eCommon.SBO_Application.Company.GetConnectionContext(sCookie);
            int SetConnectionContext = oCompany.SetSboLoginContext(sConnectionContext);
            oCompany.Connect();
    My experience is that the old method will give you a more clearer human understandable error message .
    Once you have corrected the problem, then move it to the new GetDICompany method.
    Regards
    Edy

  • Image trouble in application + comments on code ?

    I have tried to insert an image in this slowly-becoming application but it won't work.
    I have commented the parts that don't work (the paint method).
    The error only occurs when I un-comment the Paint-method.
    It would also be great if you would like to give some comments on my code, this is my first 'project' and I'm going to be grateful for any feedback.
    thanks,
    David
    Here's my code:
    import java.awt.*;
    import java.awt.image.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.awt.Toolkit;
    public class MainWindow {
    public JFrame frame;
    public Image img;
         public MainWindow() {
              frame = new JFrame("App. Title here");
              frame.setResizable(false);
              frame.setSize(620,420);
              frame.setBackground(Color.white);
              frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
              JPanel panel = new JPanel();
              Font font = new Font("Verdana", Font.BOLD, 12);
              JLabel heading = new JLabel("Application Heading");
              heading.setFont(font);
              heading.setBackground(Color.white);
              heading.setOpaque(true);
              img = Toolkit.getDefaultToolkit().getImage("image.jpg");
              buildMenu();
              panel.add(heading);
              frame.setContentPane(panel);
              frame.setVisible(true);
         public void buildMenu() {
              JMenuBar mb = new JMenuBar();
              JMenu menu = new JMenu("File");
              JMenuItem item = new JMenuItem("Exit");
              //Closes the application from the Exit menu item.
              item.addActionListener(new ActionListener() {
                   public void actionPerformed(ActionEvent e) {
                        System.exit(0);
              menu.add(item);
              mb.add(menu);
              frame.setJMenuBar(mb);
         public static void main(String[] args) {
              try {
                   UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
              catch (Exception err) {
                   System.out.println("Error loading Look & Feel: "+ err);
              MainWindow SplashScreen = new MainWindow();
         public void paint(Graphics g) {
              g.drawImage(img, 4, 20, this);
    }

    Thanks for your reply, but another problem has occured.
    The image shows up now, which is great, but the menu doesn't ? I have tried to find the problem with no luck.
    Here's my code:
    many thanks,
    David
    import java.awt.*;
    import java.awt.image.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.awt.Toolkit;
    public class MainWindow_new extends JFrame { // JWindow for splashScreen
    public JFrame frame;
    public Image img;
         public MainWindow_new() {
              super("App. Title here");
              setResizable(false);
              setSize(620,420);
              setBackground(Color.white);
              setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
              JPanel panel = new JPanel();
              Font font = new Font("Verdana", Font.BOLD, 12);
              MediaTracker tracker = new MediaTracker(this);
              img = Toolkit.getDefaultToolkit().getImage("images\\jpgs\\arena.jpg");
              try {
                   tracker.addImage(img, 0);
                   tracker.waitForID(0);
              catch (InterruptedException err) {
                   System.out.println("MediaTracker Interrupted");
                   err.printStackTrace();
              buildMenu();
              setContentPane(panel);
              setVisible(true);
         public void buildMenu() { // Opens buildMenu method definition
              JMenuBar mb = new JMenuBar();
              JMenu menu = new JMenu("File");
              JMenuItem NewItem = new JMenuItem("New Game");
              JMenuItem LoadItem = new JMenuItem("Load Game");
              JMenuItem ExitItem = new JMenuItem("Exit");
              //Closes the application from the Exit menu item.
              ExitItem.addActionListener(new ActionListener() { // Opens addActionListener method
                   public void actionPerformed(ActionEvent e) { // Opens actionPerformed method
                        System.exit(0);
              menu.add(NewItem);
              menu.add(LoadItem);
              menu.addSeparator();
              menu.add(ExitItem);
              mb.add(menu);
              setJMenuBar(mb);
         public static void main(String[] args) {
              try {
                   UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
              catch (Exception err) {
                   System.out.println("Error loading Look & Feel: "+ err);
              MainWindow_new mainWindow = new MainWindow_new();
         public void paint(Graphics g) {
              g.drawImage(img,10,10,this);
    }

  • Should I denote that a method satisfies an interface?

    When writing a class which has ("satisfies") 1 or more interfaces, should I note somehow (e.g. in an XML comment, or with an attribute) that a particular method was added for one of the interfaces?
    For example, the IComparable interface requires an int
    CompareTo(Object) method.
    I know I don't need to do anything other than implement the appropriate methods, but for maintainability and ease of understanding are there any "best practices"
    for letting others know why the method exists?

    Yes. Your inclination is sound. You should leave a comment in the method's source code and/or larger documentation.
    // Implements IComparable interface
    in the method source should do the trick, allowing those who will be reading the code closely (you later on, or someone else maintaining, modifying, or adapting it) to easily and rapidly acertain why the method exists.
    If the method is part of a promoted API, it can also be mentioned in the API docs (the form of which will vary based on what documentation system you're using).
    Even if you're not fully committed to literate programming, in which
    an explanation of the code is considered co-equal to the code itself, it is an excellent practice to use comments in the program source and notes in the API documentation to explain how the program works, why it is defined and implemented as it is, and how
    to use it.

  • Javadoc at the time of method creation

    Hi,
    i want javadoc comments at the time of creation of java bean with default commens.How can i get comments without clicking on method to (add missing java doc tags).This is a time consume process on clicking each and every method.If my bean has 50 methods each time clicking on yellow tube to highlight the java doc comment for that method takes lot of time and it gives me nerves.So ciuld you give me alternative to get javadoc while the cration time.

    Hi Anandhakumar,
    Debugg the transaction with help of ABAPER.
    System will show you the reason for the above error.
    Hope this should solve your problem.
    Thanks and regards 
    Gitesh

  • More the 1 return in a method, Good or Bad?

    Hello, quick question. Is it bad programming, and maybe even dangerous to have more that 1 return in a class. for example which of these code would be correct?
    int value = 0;
    if(one==true)
    value = 1;
    else if(two==true)
    value = 2;
    else if(three==true)
    value = 3;
    else if(four==true)
    value = 4;
    else if(five==true)
    value = 5;
    return retValue;
    ------------------------OR
    f(one==true)
    return 1;
    else if(two==true)
    return 2;
    else if(three==true)
    return 3;
    else if(four==true)
    return 4;
    else if(five==true)
    return 5;

    As a general rule, yes. Returning a value from the
    middle of a for-loop inside an if-statement would not
    be good style. But I do find myself writing methods
    that get the trivial cases out of the way first,
    before getting into the real code.
    Example:public String extractNames(NodeObject
    node) {
    if (node == null) return null;
    // complex code follows on here
    I agree with you in practice and in general. In fact, I also do the same thing although I would throw in a comment like //exit method if no valid processing possible due to null parameter or just invoke another method to do the complex logic part and have a member variable that is null or what is returned from the complex logic method.
    I try to have one return for several reasons :
    1) as listed above - for ease of debugging
    2) multiple returns reminds me of the code that used "goto exit" to get out of a loop because the programmer could not figure out any better way to get out without overly complex code.
    3) standards of only one point of entry and exit from a method.
    The only reason I can see for the complex code not to be in another method (at least in the simple example above) would be for performance reasons.

  • Advantage of abstract methods

    hi, i am a bit confuse abt the abstract methods in an abstract class. what are the advantages of declaring them as abstract? all the classes that extend it need to implement the methods although the classes do not require implementation of that method which resulted in an empty method body. If i juz comment the abstract methods in the abstract class, my whole program still can compile and run to my expectation. So, why we need to do extra work by writing the abstract methods in the abstract class?
    i'm sorry that i'm a bit stupid to understand this although i have been looking for answer from books and online resources. Would appreciate if anyone of u can help explaining to me. thx.
    Regards,
    cy

    Ooops.
    Didn't read your whole reply.
    But I'm not sure what you mean by "Often when it is,
    the default implementation given is a no-op."Instead of public abstract void walk(); you do public void walk {}  This is not necssarily a good idea though. By declaring it abstract, you force subclasses to impelement it. With the no-op (the empty, non-abstract method), subclasses don't have to do anything, and they just have a useless, meaningless, probably incorrect walk method.
    However, there are cases when it's useful. I forget the details of exactly which classes and methods, but for some of the Swing (or maybe AWT) stuff, the various listeners have to respond to a bunch of events. WindowListener might have 5 or 10 or 15 different events it listens to. The interface or abstract base class leaves them all abstract. It might be that your WindowListener implementation really only reacts to two of them. So you have to provide empty methods for all the rest. To make this more convenient, the API provides XxxAdapter classes. These implement all the event handling methods with no-ops, and you can extend that class and just override the ones your Listener needs.

  • How to create Method Detail in javadoc

    I am using NetBeans 5.0. I have generated javadoc giving explanation to my classes. But I don't know how to create Method Detail in javadoc to give explanations to my methods.
    Could anyone please help me with this.

    For a class, I am creating comments as shown below in my source code and it's displaying fine in the javadoc
    * <pre>
    * This is className
    * </pre>
    public class className
    }In the same way, I am giving comments to my method, but it's not getting displayed in the Method Detail section of the javadoc.
    * This is methodName
    private static String methodName(String line)
    }Could you please help me with this.

  • Network Model: Class casting, NPE, method design

    Hello, all!
    I have several specific questions. I have an agent-based network model which has no current (visible) errors. I have several conceptual problems with it, nonetheless. I'm going to list the problems with the associated code, and would very much appreciate any suggestions and help that can be offered.
    (1) This is in the secondary class called Node.java. Though I've never really used strings, I think I'm correctly using them in these two methods. In them, I take a 5-digit integer (culture, a random number from 10000-99999), attempt to convert it to a string, compare it to another agent's culture (digit by digit, with the int variable "similarity" increasing by 1 each time a matching digit is found), and calculate a double variable "culturalSimilarity" which will give me a percentage of .00, .20, .40, .60, .80, or 1.00 if none, some, or all of the digits match. If my predetermined value for culturalSimilarity is reached (probably 40%, and meaning that out of the 5 digit string each agent has, 2 digits match), I want the agent to change one of its non-matching digits to match one of those of the other agent. I don't actually know how to design the second method, and just have pseudocode there. First, does the first method work well, or are there things in there that I should change to improve it/make it better code? Second, how the heck do I design the second method? I don't even know where to start...
      public void howCloselyDoOurCulturesMatch() {
           String stringCulture = String.valueOf(culture);
           int similarity = 0;
           for( int i = 0; i < stringCulture.length(); ++i ) {
                if( stringCulture.equals( stringCulture.substring( i, i+1 ) ) ) {
                     similarity++;
           if ( (similarity/5) >= culturalSimilarity) {
                exchangeCulture();
      public void exchangeCulture() {
           //make one of my non-matching digits match one of his.
    (2) This is in the primary class called Model.java. I am getting a NPE in the main model in the buildModel() method at this line: "Node node = (Node) nodeList.get(i);" I think it has to do with my class casting. My casting is a mess, but I'm not sure how to fix it. Here are the three methods in which I create a network with nodes in it.
      public List makeNetwork () {
           System.out.println("Model.createWattsStrogatzNetwork() beginning.");
           List networkList = (List) NetworkFactory.createWattsStrogatzNetwork( numAgents,
                  connectRadius, pRewiring, Node.class, Edge.class);
           System.out.println("Model.makeNetwork() finished.");
           return networkList;
      public void sortNetwork() {
              Vector nodeList = new Vector();
              System.out.println("==> created variables in the step method");
              for (int i = 0; i < networkList.size(); i++) {
                   Object o = networkList.get(i);
                   if (o instanceof Edge){
                        edgeList.add(o);
                   System.out.println("==> edge added to edgeList");
                   else if (o instanceof Node){
                        nodeList.add(o);
                   System.out.println("==> node added to nodeList");
           //HELP maybe convert nodeList and edgeList back to ArrayLists with Nodes and Edges in them, not
           //Vectors with objects in them.
      private void buildModel () {
           System.out.println("Model.buildModel() beginning.");
           networkList = makeNetwork();//IS THIS A DUPLICATE?  SHOULD THIS BE HERE?
           //HELP this is defined in two different places.  nodeList needs to be only the Nodes.
           for (int i = 0; i < numAgents; i++) {
                Node node = (Node) nodeList.get(i);//HERE IS THE NULL POINTER EXCEPTION
                int x = Random.uniform.nextIntFromTo (0, worldXSize - 1);
                int y = Random.uniform.nextIntFromTo (0, worldYSize - 1);
                int nodeID = node.getID();
                node.setX(x);
                node.setY(y);
                int culture = node.getCulture();
                node.setNodeLabel ("Culture - " + culture);
                node.setBorderColor (Color.magenta);
                node.setBorderWidth (4);
                System.out.println("Model.buildModel() finished.");
      }So first, "networkList" is a List full of different kinds of information. I try to sort out the Nodes in that list with the Vector "nodeList", into which I add Objects that WERE Nodes and apparently aren't anymore. There is a comment under the method sortNetwork() saying I need the nodes back in an ArrayList, but I'm willing to go with any kind of list that ensures that the Nodes still possess the information they had when they were in networkList, specifically the edges that go into and out of them. I don't know how much information I'm stripping away from the Nodes by calling them Objects and putting them in a Vector. Any suggestions are extremely welcome.

    I think I may understand what part of the NPE problem is, but I don't know how to fix it. The problem seems to be with the variable "networkList". It stores a lot of information from the makeWattsStrogatzNetwork method. When I use this for loop:
              for (int i = 0; i < networkList.size(); i++) {
                   Object o = networkList.get(i);
                   if (o instanceof Edge){
                        edgeList.add(o);
                   System.out.println("==> edge added to edgeList");
                   else if (o instanceof Node){
                        nodeList.add(o);
                   System.out.println("==> node added to nodeList");
              }I get the NPE at the first line. My problem is that I have to iterate through networkList and all the different kinds of information it possesses, and pull all the nodes out into a Vector called nodeList. How do I do that? The big disconnect in my whole model is right here--networkList contains variables, Nodes, Edges, and parameters. I just want to suck the Nodes out of the list. What am I doing wrong?

  • Questions about the new SBO2007 connection method

    Hi all
    Anyone who can clear up the following programs for me:
    1 - With the new DI connection method multible add-ons can share the same DI-API connection (1 add-on = 80 MB, 2 add-ons = 81.5 MB and so on). But is this sharing user-specific or machine specific... Imagine 10 user on a terminal server all running only one add-on. Will those 10 instances of the same add-on share DI-API connections and in total use 93.5MB (80 + 91.5) or 800MB (1080)?
    2 - Am I correct in assuming that the new connection method works when creating internal add-ons (running within the SBO client) or will external add-ons benefit in any way?
    3 - Does the SAP add-ons allready use the new connection system?
    4 - In the explaination of the new DI connect method the help file states "It is highly recommended to use XML format of the DI-API.".. What does this mean?... The connection itself does not seem to have any xml involved.

    Hi Rasmus,
    I haven't seen any official test results but here's what we have found so far:
    1) The shared DI API resource is stored within the SAP Business One client executable. This means that this grows by 80MB during the first connection but stays the same size as other addons connect. The addons themselves typically now take up 10-15MB (ie like an addon that only uses the UI API). On a Citrix or Terminal Server, as each user has their own SBO executable, the DI API connection will take 80MB+ per user session (assuming all addons are connecting using this new method).
    2) As far as I know, this new connection method is only available for applications that use the UI API to connect to the SBO client (the GetDICompany method is on the UI API company object and not part of the DI API).
    3) The SAP Fixed Assets and Outlook Integration addons do not use the new connection method (tested on patch 35). The rest I don't know about as we don't typically use them here in NZ. It would be really useful for SAP to make an official statement on this topic as it would definitely influence my decisions on using the new method.
    4) I'm not sure what they mean either :-\
    The biggest problem I found with this new connection method is debugging. When writing an addon, each time I ran a new debug session, the SBO client executable would grow by 70-80MB as it created a new DI API connection. However, when the debug session ended, the SBO executable did not release the memory used. After 4-5 debug sessions, the SBO client was taking 1/2GB of memory and couldn't be closed. This meant I had to close and reopen SBO every 2-3 debug sessions, which was a bit of a pain. In the end I reverted to writing using the old connection method and changed it over as a last step. Not sure if I was doing something wrong or this is a weakness in the new connection method while developing.
    I also read that SAP are advising that a shared DI API connection can lower performance in some cases.
    Kind Regards,
    Owen

Maybe you are looking for

  • EJB 3.0 injection in a web service

    Hello, I have the following situation: I have a defined remote EJB in an EAR: @Remote @Stateless(mappedName = "MyTestService") public class MyTestService {   public String doThis() {return "done";} }In another WAR, which is not part of the EAR and is

  • SFTP adapter issue with dupliacate files

    Hello Guys, I am working on file to proxy scenario on PI 7.31 Java only system. I am facing issue with SFTP sender adapter, i wanted to reprocess the same file again. Although i unchecked the duplicate file checkbox. File is not getting processed and

  • Websites not displaying content

    Hello all, I've been having issues with browsing on Internet. With all my browsers, Chrome, Safari and Firefox, I've got web content that is not displaying and working correctly. I think this is due to a Privacy Scan I did a few days ago with the sof

  • TS1559 my phone has a wifi address but the wifi icon is greyed out, how do I sort this

    I have tired to reset the phone 3 times but this has not worked, I really feel like throwing my phone across the room it was working before then my battery died so it turned itself off only when I turned it back on it the wifi icon is now grey out

  • Can't load class: _dasadmin_3._index - Unable to Start Dyn Admin

    16:22:03,248 ERROR [STDERR] java.lang.UnsupportedClassVersionError: Bad version number in .class file 16:22:03,248 ERROR [STDERR]      at java.lang.ClassLoader.defineClass1(Native Method) 16:22:03,248 ERROR [STDERR]      at java.lang.ClassLoader.defi