B1DE Advanced setup and creating UDO object during installation

Hi,
I am developping addons on B1 2007B and use the B1DE advanced setup package.
Is there a way in the CustomInstallerClass to connect to the B1 Application to create UDO tables ?
Regards,
Grégory

Hi Gregory,
Tables and UDOs creation in DI API should not be done during installation. You should do that in your addon after connecting to the DI API.
You need some code in your addon checking whether the UDT, UDF, UDOs,... already exist, if they don't exist then you create them. You can manage that with a user table were you can keep the current version of your installed addon, this way you can know whether you need to create/update something in your Db every time you start your addon or not.
Regards,
Trinidad.

Similar Messages

  • How do I create multiple objects during runtime?

    I don't know how to create multiple objects during runtime, here's my problem:
    I get a String as input. Then I create an object called newobject. I put the object in a hashtable with the above string as key.
    Then comes the problem, in order to create a new object, I have to rerun the same class, which uses the same name (newobject) to create a 2nd object. Now my hashtable doesn't reference to my 1st object anymore...
    Is there anyway I can fill up the hashtable with different objects, and make each key point to each object it was supposed to?
    For those who want to see a bit of the program:
    public class PlayBalloon{
    public Hashtable ht = new Hashtable();
    for(){
    Balloon pB = newBalloon;
    newBalloon=new Balloon(pB);
    ht.put("Some input from user", newBalloon);
    for(){
    ht.get(s).draw;<= s=string, draw=own meth. in Balloon
    }

    I think i can see the problem that you are having. You have, in effect, duplicate keys in your hashtable - ie, two strings used as keys with the same name.
    The way that a hashtable works is as follows...
    When you ask for a value that is mapped to a key it will go through the table and return the first occurence it finds of the key you asked for. It does this by using the equals() method of whatever object the key is (in your case it is a String).
    If you cant use different Strings for your keys in your hashtable then i would consider writing an ObjectNameKey class which contains the String value that you are trying to put in the hashtable and an occurrence number/index or something to make it unique. Remember to override the equals method in your ObjectNameKey object or else the hash lookup will not work. For example
    class ObjectNameKey {
        private String name;
        private int occurence;
        public ObjectNameKey(String name, int occ) {
            this.name = name;
            this.occurence = occ;
        public String getName() {
            return name;
        public String getOccur() {
            return occurence;
        public boolean equals(Object o) {
            if (!(o instanceof ObjectNameKey)) {
                return false;
            ObjectNameKey onk = (ObjectNameKey)o;
            if (onk.getName().equals(name) && onk.getOccur() == occurence) return true;
            return false;

  • What is the diffrence between extends and creating new object?

    HI ALL,
    what is the diffrence between extends and creating new object?
    meaning
    class base{
    class derived extends base{
    class base{
    class derived {
    derived(){
    base var = new base();
    can u people tell me diffence from the above examples.
    THANKS.
    ANANDA

    When you create a new object you have to supply the class to which that
    object belongs. A class can extend from another class. If it does so
    explicitly you can define the 'parent' class from which the class extends.
    If you don't explicitly mention anything, the class will implicitly extend
    from the absolute base class named 'Object'.
    Your example is a bit convoluted: when you create a Derived object,
    its constructor creates another object, i.e. an object from the class from
    which the Derived class extends.
    Extending from a class and creating an object don't have much in common.
    kind regards,
    Jos

  • Is oracle user created by default during installation of OEL 5

    i want to know that is oracle user and its groups already created by default during installation of OEL 5.5 ??

    user13376823 wrote:
    i want to know that is oracle user and its groups already created by default during installation of OEL 5.5 ??Why would it? It's just an operating system. It doesn't know or care what applications you may or may not choose to install at any time in the future after it (the OS) is installed, nor does it know or care about the requirements of any application you may choose to install at any time in the future.

  • Create UDO object through DI API

    Hi folks,
    I want to create an UDO object directly from the code. Deep inside, I have an UDO that wraps an authorization document.
    How can I create an object from my AddOn and add it in SAP BO.
    Thanks in advance!
    Oscar S.M.

    example is for master data and masterdata lines UDO. For other types is almost same.
    Dim oUserObjectMD As SAPbobsCOM.UserObjectsMD
            oUserObjectMD = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserObjectsMD)
            oUserObjectMD.CanCancel = SAPbobsCOM.BoYesNoEnum.tNO
            oUserObjectMD.CanClose = SAPbobsCOM.BoYesNoEnum.tNO
            oUserObjectMD.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tNO
            oUserObjectMD.CanDelete = SAPbobsCOM.BoYesNoEnum.tNO
            oUserObjectMD.CanFind = SAPbobsCOM.BoYesNoEnum.tNO
            oUserObjectMD.CanYearTransfer = SAPbobsCOM.BoYesNoEnum.tYES
            oUserObjectMD.ChildTables.TableName = "LINES"
            oUserObjectMD.Code = "DATA"
            oUserObjectMD.ManageSeries = SAPbobsCOM.BoYesNoEnum.tNO
            oUserObjectMD.Name = "Data"
            oUserObjectMD.ObjectType = SAPbobsCOM.BoUDOObjType.boud_MasterData
            oUserObjectMD.TableName = "DATA"
            lRetCode = oUserObjectMD.Add()
            If lRetCode <> 0 Then
                oCompany.GetLastError(lRetCode, sErrMsg)
                MsgBox(sErrMsg)
            End If
            oUserObjectMD = Nothing
            GC.Collect()

  • Any ideas about creating persistant object during execution?

    As a newbie, I wrote a badly designed applet which is used to share different keys with different devices. Now I got a problem about if the number of devices increased, how to generate new key objects during the execution and store it as a persistant object. I would use a (short) variable to restrict the number of devices and I only know using JCSystem. Transaction to update a byte array. Does anyone has good ideas about this problem?

    Could you explain a little more detail about what you are trying to do? Are you allocating a certain amount of space for keys at install time and setting a limit to this or do you plan to allocate memory at runtime as new devices come along? Do you have some sample code to share that would clarify what you are trying to do?
    I would suggest creating all your data up front and tracking which keys are allocated.
    - Shane

  • Import package and create view object

    Hi,
    How can i import package from another project and create a new view object with my package and with the imported package.
    Thanks
    null

    Hi,
    How can i import package from another project and create a new view object with my package and with the imported package.
    Thanks
    null

  • How to make use of XMLDB to process large XML and create spatial objects

    For someone new to XMLDB I find it hard to make sense of the enormous amount of information (and easy to get lost in it). So I come here to ask for directions.
    I have to build a procedure that fills a table of spatial objects based on XML input. Basically the XML contains a large amount of elements that describe the geometry type and contain the geometries coordinates. The XML can get quite large (200-300Mb).
    Somehow I have to process each element and create an sdo_geometry object.
    Now let me ask a very broad question: What would be a good way to handle this?

    I have the same question. Any news on this?
    Wijnand

  • Include a custom Excel Template into installer and get it installed during installation

    Hi
    I ve developed a code for acquiring data and writng into an excel file.Now I want to  create an installer, I want to keep a custom template of the excel file as part of the installed so that During installation of the file it will get installed on C drive-> My Document.How I can Do it?
    Thanks for your time
    Augustin
    Certified LabVIEW Associate Developer
    Solved!
    Go to Solution.

    Please find the attached procedure.
    I am not allergic to Kudos, in fact I love Kudos.
     Make your LabVIEW experience more CONVENIENT.
    Attachments:
    Procedure.doc ‏344 KB

  • HP Deskjet and Officejet Full Feature Software and Drivers - Fatal error during installation

    The "HP Print and Scan Doctor" reports software install problem on the scanner text.
    In 2008 I bought an HP Pavilion Elite with Vista with a HP OfficeJet 5610 All-In-One connected through USB. About a year ago I upgraded to Windows 7 and print and scan worked OK. Last week I received an e-mail from HP for HP Print and Scan Doctor (ver 4.3) and installed it. I have had a problem trying to install the software updates that it said that I need. I have uninstall and reinstalled many times.
    The HP Print and Scan Doctor said that the printing works but the scanner part fails at Registery, HP Scan Flow Manager, and Front Panel Test.
    Any help would be appreacited.
    The HP Print and Scan Doctor reports:
    A later version of software is available for this product.
    I used the install file: AIO_CDB_NonNet_Full_Win_WW_130_141.EXE.
    It usually gets:
    Sample Error log file:
    This question was solved.
    View Solution.

    Hello NotHome,
    Welcome to the HP Forums!
    I understand you're receiving a "Fatal Error" during the installation. I will do my best to assist you! I would start off by following this HP document on Fatal Error 'Error 1603. A fatal error occurred during installation' (MSI Error 1603) Displays Durin...
    Please post your results, as I will be looking forward to hearing from you.
    Have a great night.
    I worked on behalf of HP.

  • Windows 10 and Spotify install crashes during installation fix

    Hi all! For those of you having issues with installing Spotify in Windows 10, here might be a easy fix for you. Dowload the primary installer from the Spotify Website, the file should be named "SpotifySetup.exe" (if you have downloaded the files several times it might be named "SpotifySetup(1).exe, where the 1 can be any number from 1 and up). Run the installer if has not automatically run, when it runs it downloads the full installtion of spotify to the folder"C:\Users\YOUR-USER-NAME\AppData\Roaming\Spotify - example: C:\Users\johndoe\AppData\Roaming\Spotify(YOUR-USER-NAME must be your user name in windows) If this is still confusing open up a file browser and in the address field enter %appdata% this will enter the correct path for your user, then just go into the Spotify folder. In this folder there should be a file "SpWebInst0.exe", right click the file and in the menu choose "Properties", select the tab "Compatibility" 
    Check the box: Run this program in compatibility mode for:and select "Windows 8".
    Press the OK button and run the file "SpWebInst0.exe", this time it will hopefully not crash. See the pics included. Good luck! /Dave  

    hello...i can't even download the spotify after upgrading to windows 10 today... i get error52 (can't connect to the internet or some firewall thingy I don't get..) can't even get skype to work or any other application

  • Batch number format setup and auto batch creation during first GR

    Dear all,
    This is a batch question.
    I know that both the master batch and the stock data for the batch are created automatically during the first goods receipt. Thus, I do not need to create this data manually.
    My question are following:
    1 - what is the machnism that trigger this auto-batch creation in the system during the first goods receipt? is it from some kind of configuration?
    2 - If I want my batch number to appear in certain format, for example, first four digit is customer code, middle two code is country code (i.e. US, UK), and the remaining as goods receipt date. How do I setup this in the SAP system.
    3 - If batch classification is active, one can assign characteristic values to the batch when entering the goods receipt. HOwever, normally when I perform a goods receipt in MIGO, after putting in the production date and the batch number, I will hits the checkbox and if no problem, I will post the 101 document. WHERE in the MIGO screen I can assign the characteristic value to the batch?
    Thanks.

    My question are following:
    1 - what is the machnism that trigger this auto-batch creation in the system during the first goods receipt? is it from some kind of configuration?
    ==> Yes - See IMG activity 'Define batch creation for Goods Movements'
    2 - If I want my batch number to appear in certain format, for example, first four digit is customer code, middle two code is country code (i.e. US, UK), and the remaining as goods receipt date. How do I setup this in the SAP system.
    ==> See exit EXIT_SAPLV01Z_003
    3 - If batch classification is active, one can assign characteristic values to the batch when entering the goods receipt. HOwever, normally when I perform a goods receipt in MIGO, after putting in the production date and the batch number, I will hits the checkbox and if no problem, I will post the 101 document. WHERE in the MIGO screen I can assign the characteristic value to the batch?
    [[> See IMG activity 'Activate Batch Classification for Goods Movements in IM"

  • Question about declare and create an object

    There are 2 classes and one is subclass of another like below:
    class A { }
    class B extends A {
    1. A x = new B();  // x is a *reference variable* of class A and it points to( refer to) an *object* of class B
    2. B x = new A();  // x is a *reference variable* of class B and it points to( refer to) an *object* of class A
    }       The first one is correct one but the second. I do not have a good explanation for that. The only thing I just know is just because B extends A. Im not convinced myself. Pls help, thanks
    Edited by: newbie on Oct 25, 2010 11:03 PM
    Edited by: newbie on Oct 25, 2010 11:26 PM

    newbie wrote:
    There are 2 classes and one is subclass of another like below:
    class A { }
    class B extends A {
    1. A x = new B();  // x is a *reference variable* of class A and it points to( refer to) an *object* of class B
    2. B x = new A();  // x is a *reference variable* of class B and it points to( refer to) an *object* of class A
    }       The first one is correct one but the second. I do not have a good explanation for that. The only thing I just know is just because B extends A. Im not convinced myself. Pls help, thanksB extends A means that every B is-an A. That's part of what inheritance means. The main part, IMHO. When you do new B(), you are creating a B object. That B is also an A. Therefore, it is legal to refer to it with a reference variable of type A.
    A a; // this says that variable "a" must point to an A object.
    a = new B(); // this is legal because every B is an A, so, by pointing to a B object, it is in fact pointing to an AHowever, not all A objects are also B objects
    B b; // this says that varaible "b" must point to a B object
    b = new A(); // That A is NOT a B object.If you say "hand me a fruit", and someone hands you a pear, and apple, or a banana, he has handed you a fruit.
    But if you say "hand me a banana", not just any fruit will do.
    Edited by: jverd on Oct 26, 2010 9:55 AM

  • Calling Reports from Forms, and creating Reports objects

    Hello I'm trying to create a Form which lists and launches all of our Reports. In our Client/Server set up we just have a Form which is based on a lookup table of Reports. When the user selects a report on the Form RUN_PRODUCT is used to call the report.
    In Forms 9, do I have to create a Report object in the Form for every Report in our system and do I really have to modify the Form every time a new Report is created to add the new Report in?

    Hello,
    <p>No, one single report object could fit for any report, if you modify its properties at runtime.<br>
    For information, I have written a Forms 9i module able to run any report with 0 up to 10 parameters</p>
    <p>Hope this helps</p>
    Francois

  • Generics and creating new objects

    Assume this class:
    class Yatta<T>
      public Yatta()
        T t = new T();
    }When compiling I get "unexpected type" refering to the "T" in "new T()". Why isn't this allowed? Is there any way of doing something similar without creating a huge chain of factories for each type?

    Please use single letters for type parameters. Doing what you've done with "Type" makes reading the code difficult...
    Since duplicate() is declared in Component I assume it is declared to return Component. How can the compiler possibly know that it is going to return a more specific type? It can't. (Well... you can tell it... see below)
    Because of what I wrote in the first paragraph, it's not immediately obvious that Type is a type parameter, but it is, and casting to a type parameter doesn't get you anywhere. From this code and your original post, you appear to be treating Java Generics like C++ templates. They are not the same. In particular, Generics are implemented using a technique called erasure which means that the type parameter information is not present in the compiled class files. The practical upshot of this is that the cast in the line you highlight is in fact a cast to Component (since that is the upper bound of Type) and this cast is useless because we already know the c is a Component. So the compiler is correctly warning you that the typecast will not actually perform the check that you want it to.
    (In fact, if you try this in Eclipse, you get a better warning: "Type safety: The cast from Component to T is actually checking against the erased type Component")
    So... how to fix this...?
    Well, you need to make the return type of duplicate() change depending on the concrete implementation. You could do this by parameterising Component thus:
      public interface Component<T extends Component<T>> {
        public T duplicate();
      }Now, every use of Component will need to be parameterised. In the case of the code you have below, you'll need:
    public class Container<T extends Component<T>> extends ArrayList<T> {
      public Container() {
        //Empty
        // Why write it then??? Get rid of it.
      public Container(Container<T> object) {
        Iterator<T> i = object.iterator();  // don't need ListIterator here
        while(i.hasNext()) {
          add(i.next().duplicate());
    }and every implementation of Component needs to look like this:
    public static class Something implements Component<Something> {
      public Something duplicate() {  // note the return type
        return null;  // or something more useful!
    }Hope that helps.
    (PS 'tabs' are the work of satan and should never be found in source code)

Maybe you are looking for