Error JDAPI

Hello, I have this error:
Exception in thread "main" java.lang.UnsatisfiedLinkError: D:\Oracle\Dev6i\BIN\ifjapi60.DLL: The operating system cannot run %1
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1676)
at java.lang.Runtime.loadLibrary0(Runtime.java:822)
at java.lang.System.loadLibrary(System.java:992)
at oracle.forms.jdapi.Jdapi.<clinit>(Unknown Source)
at oracle.forms.jdapi.FormModule.open(Unknown Source)
at oracle.forms.jdapi.FormModule.open(Unknown Source)
at pkg_ana.AnalizarFormularios.main(AnalizarFormularios.java:179)
How can I fix it?
Thanks

I know this problem in 10g jdapi; you have to put your JDAPI Oracle-Home entries before all other Oracle Homes in the Path...that worked for me in 10g...
regards

Similar Messages

  • Error in Using JDAPI (Java Development API)

    I have some forms developed in Version 6.0.8.8.0 I am using Oracle JDeveloper 9.0.4 But when I try to test these code for upgrading from version 6 to 10g I am getting following Error
    My Program Codes
    import java.io.*;
    import oracle.forms.jdapi.*;
    public class Example1 {
    // generic part
    public static void main(String[] args) {
    Jdapi.setFailLibraryLoad(true);
    Jdapi.setFailSubclassLoad(true);
    try {
    File file = new File("c:\\Amsorcl\\Forms\\chart.fmb");
    System.out.println("Exist=" + file.exists());
    System.out.println("Can Read=" + file.canRead());
    System.out.println("Can Write=" + file.canWrite());
    //JdapiModule.openModule(file);
    //JdapiModule.openModule("c:\\Amsorcl\\Forms\\chart.fmb");
    FormModule form = FormModule.open("C:\\AMSORCL\\FORMS\\CHART.FMB");
    finally {
    Jdapi.shutdown();
    Error as the result of progam
    Exist=true
    Can Read=true
    Can Write=true
    oracle.forms.jdapi.JdapiStatusException: jniinitialize: Failed to create new forms context
         at oracle.forms.jdapi.BaseAPI._jni_initialize(Native Method)
         at oracle.forms.jdapi.Jdapi.initialize(Unknown Source)
         at oracle.forms.jdapi.Jdapi.getContextPointer(Unknown Source)
         at oracle.forms.jdapi.FormModule.open(Unknown Source)
         at oracle.forms.jdapi.FormModule.open(Unknown Source)
         at Example1.main(Example1.java:22)
    Exception in thread main
    Process exited with exit code 1.

    1. Why are you using JDAPI to upgrade from 6i to 10g? You can use the Forms Migration Utility instead.
    2. Are you running this in UNIX environment? If yes, have you set the LD_LIBRARY_PATH to $ORACLE_HOME/lib directory?

  • JDAPI Error: ORA-04020: deadlock detected while trying to lock object

    I have written a JDAPI program to perform read-only impact analysis and report any problems.
    The following error is occurring:
    "A deadlock among DDL and parse locks is detected.
    This deadlock is usually due to user errors in the design of an application or from issuing a set of concurrent statements which can cause a deadlock.
    ORA-04020: deadlock detected while trying to lock object /NSPC6/CHECK_FOR_FORM_CHANGE"
    The error refers to a procedure in a PL/SQL library.
    In one case the error occurred after my final "end of processing" message, which is followed only by a call to "Jdapi.shutdown()".
    Any ideas?
    Thanks,
    Neville Sweet.

    I have written a JDAPI program to perform read-only impact analysis and report any problems.
    The following error is occurring:
    "A deadlock among DDL and parse locks is detected.
    This deadlock is usually due to user errors in the design of an application or from issuing a set of concurrent statements which can cause a deadlock.
    ORA-04020: deadlock detected while trying to lock object /NSPC6/CHECK_FOR_FORM_CHANGE"
    The error refers to a procedure in a PL/SQL library.
    In one case the error occurred after my final "end of processing" message, which is followed only by a call to "Jdapi.shutdown()".
    Any ideas?
    Thanks,
    Neville Sweet.

  • Error initialising the Forms Jdapi

    Hi there
    We in the process of migrating from 6i to 10g. The process is convert all the .fmb to .xml, make neccessary changes and convert .xml to .fmb
    I used the Oracle utility tool
    frmf2xml.sh /oracle/test.fmb
    Error initialising the Forms Jdapi:
    jniinitialize: Failed to create new forms context
    I have set the DISPLAY as well. I have set all the relevant path etc to the Java files and also as recommended by Oracle.
    Our OS version is: Sun Solaris 5.10
    Dev Suite: 10.1.0.2
    $java -version
    java version "1.5.0_06"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
    Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)
    This is quite urgent.
    I would appreciate your quick response. Thanks all for your help in advance.
    Regards
    PC

    This is a duplicate of
    frmf2xml.sh: need help

  • JDAPI error: _jni_initialize

    HI,
    I use JDAPI for batch converting forms 6i to forms 9i (add webutil, change PLSQL code, save in a 9i directory, compile....).
    When converting many (more then 80) fmbs I get a Exception: jniinitialize: Failed to create new forms context
    Restarting my JAVA application and convert only lets say 50 modules works fine.
    Is there someone how had similar problems?
    Thanks,
    Michael

    After you have processed each module try calling Jdapi.shutdown(). This will free up resources

  • Error while invoking bpel through java

    when i was using java to invoke iam getting an exception
    com.oracle.bpel.client.ServerException: IDeliveryService.request() invoked for one-way operation 'initiate'. This method can only be used to invoke two-way operations which return an output message. Please check the WSDL which defines this operation and use the method IDeliveryService.post() to invoke a one-way operation.
    when iam using html the bpel works fine.
    But when i use java with IDeliveryService.post() it is giving error in Bpel flow by saying
    exception on JaxRpc invoke:
    start fault message:
    Internal Server Error (Caught exception while handling request: oracle.forms.jdapi.JdapiException: '' does not have an extension)
    :end fault message.
    Please help me in this issue.

    try as follows
    Invoking a one-way operation via Java API The procedure for invoking a one-way BPEL operation via the Java API is very similar, except that you will use the IDeliveryService.post() method (which is also overloaded). These methods invoke a one-way operation on a BPEL process and thus return void since a response is not expected (at least not a synchronous response). In the code example shown here, the post method used is exactly the same as the request() shown above, except that it returns void: From JavaDoc for com.oracle.bpel.client.dispatch.IDeliveryService <br><br>
    public void post(java.lang.String processId, java.lang.String operationName, NormalizedMessage message) throws java.rmi.RemoteException <br>
    <br><br>Selected JSP source:<br><br>
    <%@page import="com.oracle.bpel.client.Locator" %> <br>
    <%@page import="com.oracle.bpel.client.NormalizedMessage" %> <br>
    <%@page import="com.oracle.bpel.client.dispatch.IDeliveryService" %> ... <br>Locator locator = new Locator("default", "bpel", null); <br>
    ... NormalizedMessage nm = new NormalizedMessage( ); <br>
    nm.addPart("payload" , xml ); <br>
    deliveryService.post("HelloWorld", "initiate", nm); <br>
    out.println( "BPELProcess HelloWorld initiated!" ); %>

  • Using JDAPI to set the height of the Forms Canvas to it's default value

    Hi,
    I've been trying for a while to use the JDAPI to set the height of the Oracle Form Canvas to it's default value.
    Can anyone advice how to do this ?
    Can the currCanvas.inheritProperty(arg0) be used in this case ?
    Thanks in advance,
    regards

    Hi David,
    Note that I used a Footer Row in my Table. Headers and Footers have special properties. (A poster in the last couple of weeks asked for a summary of Header and Footer properties - somewhat frustrated that he couldn't find a succinct description in the User Guide. Well, there isn't one and the answer is so complicated that nobody has taken on the project. Now we have a new version of Numbers and the answer would need to change.)
    The way to avoid the error is to use a Footer Row and to use the shortcut cell reference notation: =SUMIF(C,TRUE,B). The columns are specified, but the row range is not. Footers are exempt in this notation, so no error is generated regarding a circular reference.
    Hope this clears it up.
    Jerry

  • How do i get the FormDumper.java from JDAPI working?

    Hi,
    I am a novice in Java and Forms Api (C). I am interested in a solution that would reduce the time for us to make some sweeping changes across applications and hence became interested in this. By trial and error, I got a couple of examples of the Forms Api (JDAPI) working. Now I would like to test the most important thing for us the FormDumper.java (available in online help of Form9i-JDAPI). However, I get an error like "import oracle.forms.jdapi.util.Getopt.*; "failed. There exists no classes, methods, packages called util in the f90jdapi.jar. Could somebody please help me here? You can also contact me on my private mail id [email protected]
    TIA!
    Cheers
    Pramodh

    Hi Duncan,
    Are the classes available on Technet or would you send me a copy of the zipped classes as well?
    Thanks
    Kenneth
    The Doc example is missing some utility classes which are simply used to parse the command line options - I'll send you a zip file containing the classes offline
    I also notices that a few typo's (capitalisation, extra brackets) have crept into that sample - I'll get the do corrected so it will be compilable - thanks for alerting us to this.

  • JDAPI DETACH()

    My purpose is to convert "windows-developed" .fmb files to run on an AIX box (ie case-sensitive issues).
    I was advised (by Oracle) to avoid using DETACH() with the iterator current, so I copied the details and then re-visted them. Although I am able to attach libraries, I am unable to detach some.
    I'm no C expert, but I was also lead to believe that this problem exist in the C API too. Nevertheless, a working API to workaround case-sensitive issues remains my gaol.
    I have documented out -> detachId.detach();
    With detach() put back in, I get the error :-
    Connecting to un/pwd@dbase_aliasConnected to un/pwd@dbase_alias
    Processing form form1.fmbForm Name module is FORM1
    Examining menuAttached Menu needs changing=FO_MENU
    Examining librariesAttached Library requires no change=d2kwutil
    Attached Library name to be changed=allpack
    Attached Library requires no change=allproc
    Attached Library name to be changed=allshare
    Attached Library requires no change=webutil
    Detachingd2kwutil
    ALLPACK
    allproc
    ALLSHARE
    Exception in thread main
    webutil
    Attachingoracle.forms.jdapi.JdapiIllegalStateException: Null d2fob pointer at oracle.forms.jdapi.BaseFormsObject.getStringProperty(Unknown Source)
         at oracle.forms.jdapi.AttachedLibrary.getName(Unknown Source)
         at fixForm.main(fixForm.java:146)
    Process exited with exit code 1.
    import java.io.*;
    import oracle.forms.jdapi.*;
    public class fixForm
    static FormModule fmb;
    public static void main(String[] args)
    String debug="";
    String formName="";
    String menuName="";
    String libName="";
    String connString="";
    String pad=" ";
    String line="------------------------------------------------------------------------------";
    boolean menuIsChanged = false;
    boolean libIsChanged = false;
    AttachedLibrary[] arrayOfLibs = new AttachedLibrary[15];
    AttachedLibrary attachId;
    AttachedLibrary detachId;
    int noOfLibs = 0;
    if (args.length != 3)
    System.out.println("");
    System.out.println(line);
    System.out.println("Usage: java fixForm <module name> <user/password@connectString> <Debug>");
    System.out.println(" eg java fixForm form1.fmb un/pwd@dbase_alias Y");
    System.out.println(line);
    //System.exit(0);
    formName = "form1.fmb";
    connString = "un/pwd@dbase_alias";
    debug = "Y";
    else
    formName = args[0];
    connString = args[1];
    debug = args[2];
    // Connect to the database
    if (debug.equals("Y")) {System.out.println(">>> Connecting to " + connString);}
    Jdapi.connectToDatabase(connString);
    if (debug.equals("Y")) {System.out.println(pad+"Connected to " + connString);}
    // Identify the form.
    if (debug.equals("Y")) {System.out.println(">>> Processing form " + formName);}
    fmb = FormModule.open(formName);
    if (debug.equals("Y")) {System.out.println(pad+"Form Name module is " + fmb.getName());}
    // Identify the menu, if applicable.
    if (debug.equals("Y")) {System.out.println(">>> Examining menu");}
    menuName = fmb.getMenuModule();
    // See if set.
    if ( (menuName.length() == 0) | (menuName.toUpperCase() == "DEFAULT") )
    if (debug.equals("Y")) {System.out.println(pad+"Menu is blank, or default");}
    else
    // Check case sensitivity is lower case.
    if (menuName == menuName.toLowerCase())
    if (debug.equals("Y")) {System.out.println(pad+"Attached Menu is fine=" + menuName);}
    // Otherwise, re-attach with correct case sensitivity.
    else
    if (debug.equals("Y")) {System.out.println(pad+"Attached Menu needs changing=" + menuName);}
    menuIsChanged = true;
    try
    fmb.setMenuModule(menuName.toLowerCase());
    catch(Exception e1)
    System.out.println(line);
    System.out.println("Error: "
    + formName
    + " could not re-attach menu "
    + menuName.toLowerCase());
    System.out.println(line);
    System.exit(0);
    // Identify all associated libraries.
    JdapiIterator all_libs = fmb.getAttachedLibraries();
    // Process the above list of attached libraries
    if (debug.equals("Y")) {System.out.println(">>> Examining libraries");}
    while (all_libs.hasNext())
    noOfLibs++;
    // Identify each library name.
    AttachedLibrary lib = (AttachedLibrary)all_libs.next();
    arrayOfLibs[noOfLibs] = lib;
    libName = lib.getLibraryLocation();
    // See if it's not all lower case
    if (libName == libName.toLowerCase())
    if (debug.equals("Y")) {System.out.println(pad+"Attached Library requires no change=" + libName);}
    else
    libIsChanged = true;
    libName = libName.toLowerCase();
    if (debug.equals("Y")) {System.out.println(pad+"Attached Library name to be changed=" + libName);}
    // If their are case-sensitive libs, then re-build the attachments accordingly.
    if (libIsChanged = true)
    // Now we have the list, de-attach all libraries.
    if (debug.equals("Y")) {System.out.println(">>> Detaching");}
    for (int j = 1; j <= noOfLibs; j++)
    detachId = arrayOfLibs[j];
    libName = detachId.getLibraryLocation();
    if (debug.equals("Y")) {System.out.println(pad+libName);}
    try
    //detachId.detach();
    catch(Exception e2)
    System.out.println(line);
    System.out.println("Error: "
    + formName
    + " could not detach library "
    + libName);
    System.out.println(line);
    System.exit(0);
    // Now that no libs are attached, re-attach, based on list.
    if (debug.equals("Y")) {System.out.println(">>> Attaching");}
    for (int k = 1; k <= noOfLibs; k++)
    attachId = arrayOfLibs[k];
    libName = attachId.getName().toLowerCase();
    if (debug.equals("Y")) {System.out.println(pad+libName);}
    try
    AttachedLibrary new_lib = new AttachedLibrary(fmb,libName);
    catch(Exception e3)
    System.out.println(line);
    System.out.println("Error: "
    + formName
    + " could not attach library "
    + libName);
    System.out.println(line);
    System.exit(0);
    // If the form has been changed, then compile and save.
    if (menuIsChanged | libIsChanged)
    // Compile the form to create a fmx.
    if (debug.equals("Y")) {System.out.println(">>> Compiling");}
    try
    fmb.compile();
    catch(Exception e4)
    System.out.println(line);
    System.out.println("Error: "
    + formName
    + " could not recompile");
    System.out.println(line);
    System.exit(0);
    // Save the form.
    if (debug.equals("Y")) {System.out.println(">>> Saving");}
    try
    fmb.save(formName);
    catch(Exception e5)
    System.out.println(line);
    System.out.println("Error: "
    + formName
    + " could not save");
    System.out.println(line);
    // Free the underlying native object
    fmb.destroy();
    // Shutsdown the Jdapi instance
    Jdapi.shutdown();
    if (debug.equals("Y")) {System.out.println(">>> Quiting");}
    I would be very grateful if you are able to offer me some advice here.
    Rgds,
    Mark . Spooner @ Investmaster . Com

    My purpose is to convert "windows-developed" .fmb files to run on an AIX box (ie case-sensitive issues).
    I was advised (by Oracle) to avoid using DETACH() with the iterator current, so I copied the details and then re-visted them. Although I am able to attach libraries, I am unable to detach some.
    I'm no C expert, but I was also lead to believe that this problem exist in the C API too. Nevertheless, a working API to workaround case-sensitive issues remains my gaol.
    I have documented out -> detachId.detach();
    With detach() put back in, I get the error :-
    Connecting to un/pwd@dbase_aliasConnected to un/pwd@dbase_alias
    Processing form form1.fmbForm Name module is FORM1
    Examining menuAttached Menu needs changing=FO_MENU
    Examining librariesAttached Library requires no change=d2kwutil
    Attached Library name to be changed=allpack
    Attached Library requires no change=allproc
    Attached Library name to be changed=allshare
    Attached Library requires no change=webutil
    Detachingd2kwutil
    ALLPACK
    allproc
    ALLSHARE
    Exception in thread main
    webutil
    Attachingoracle.forms.jdapi.JdapiIllegalStateException: Null d2fob pointer at oracle.forms.jdapi.BaseFormsObject.getStringProperty(Unknown Source)
         at oracle.forms.jdapi.AttachedLibrary.getName(Unknown Source)
         at fixForm.main(fixForm.java:146)
    Process exited with exit code 1.
    import java.io.*;
    import oracle.forms.jdapi.*;
    public class fixForm
    static FormModule fmb;
    public static void main(String[] args)
    String debug="";
    String formName="";
    String menuName="";
    String libName="";
    String connString="";
    String pad=" ";
    String line="------------------------------------------------------------------------------";
    boolean menuIsChanged = false;
    boolean libIsChanged = false;
    AttachedLibrary[] arrayOfLibs = new AttachedLibrary[15];
    AttachedLibrary attachId;
    AttachedLibrary detachId;
    int noOfLibs = 0;
    if (args.length != 3)
    System.out.println("");
    System.out.println(line);
    System.out.println("Usage: java fixForm <module name> <user/password@connectString> <Debug>");
    System.out.println(" eg java fixForm form1.fmb un/pwd@dbase_alias Y");
    System.out.println(line);
    //System.exit(0);
    formName = "form1.fmb";
    connString = "un/pwd@dbase_alias";
    debug = "Y";
    else
    formName = args[0];
    connString = args[1];
    debug = args[2];
    // Connect to the database
    if (debug.equals("Y")) {System.out.println(">>> Connecting to " + connString);}
    Jdapi.connectToDatabase(connString);
    if (debug.equals("Y")) {System.out.println(pad+"Connected to " + connString);}
    // Identify the form.
    if (debug.equals("Y")) {System.out.println(">>> Processing form " + formName);}
    fmb = FormModule.open(formName);
    if (debug.equals("Y")) {System.out.println(pad+"Form Name module is " + fmb.getName());}
    // Identify the menu, if applicable.
    if (debug.equals("Y")) {System.out.println(">>> Examining menu");}
    menuName = fmb.getMenuModule();
    // See if set.
    if ( (menuName.length() == 0) | (menuName.toUpperCase() == "DEFAULT") )
    if (debug.equals("Y")) {System.out.println(pad+"Menu is blank, or default");}
    else
    // Check case sensitivity is lower case.
    if (menuName == menuName.toLowerCase())
    if (debug.equals("Y")) {System.out.println(pad+"Attached Menu is fine=" + menuName);}
    // Otherwise, re-attach with correct case sensitivity.
    else
    if (debug.equals("Y")) {System.out.println(pad+"Attached Menu needs changing=" + menuName);}
    menuIsChanged = true;
    try
    fmb.setMenuModule(menuName.toLowerCase());
    catch(Exception e1)
    System.out.println(line);
    System.out.println("Error: "
    + formName
    + " could not re-attach menu "
    + menuName.toLowerCase());
    System.out.println(line);
    System.exit(0);
    // Identify all associated libraries.
    JdapiIterator all_libs = fmb.getAttachedLibraries();
    // Process the above list of attached libraries
    if (debug.equals("Y")) {System.out.println(">>> Examining libraries");}
    while (all_libs.hasNext())
    noOfLibs++;
    // Identify each library name.
    AttachedLibrary lib = (AttachedLibrary)all_libs.next();
    arrayOfLibs[noOfLibs] = lib;
    libName = lib.getLibraryLocation();
    // See if it's not all lower case
    if (libName == libName.toLowerCase())
    if (debug.equals("Y")) {System.out.println(pad+"Attached Library requires no change=" + libName);}
    else
    libIsChanged = true;
    libName = libName.toLowerCase();
    if (debug.equals("Y")) {System.out.println(pad+"Attached Library name to be changed=" + libName);}
    // If their are case-sensitive libs, then re-build the attachments accordingly.
    if (libIsChanged = true)
    // Now we have the list, de-attach all libraries.
    if (debug.equals("Y")) {System.out.println(">>> Detaching");}
    for (int j = 1; j <= noOfLibs; j++)
    detachId = arrayOfLibs[j];
    libName = detachId.getLibraryLocation();
    if (debug.equals("Y")) {System.out.println(pad+libName);}
    try
    //detachId.detach();
    catch(Exception e2)
    System.out.println(line);
    System.out.println("Error: "
    + formName
    + " could not detach library "
    + libName);
    System.out.println(line);
    System.exit(0);
    // Now that no libs are attached, re-attach, based on list.
    if (debug.equals("Y")) {System.out.println(">>> Attaching");}
    for (int k = 1; k <= noOfLibs; k++)
    attachId = arrayOfLibs[k];
    libName = attachId.getName().toLowerCase();
    if (debug.equals("Y")) {System.out.println(pad+libName);}
    try
    AttachedLibrary new_lib = new AttachedLibrary(fmb,libName);
    catch(Exception e3)
    System.out.println(line);
    System.out.println("Error: "
    + formName
    + " could not attach library "
    + libName);
    System.out.println(line);
    System.exit(0);
    // If the form has been changed, then compile and save.
    if (menuIsChanged | libIsChanged)
    // Compile the form to create a fmx.
    if (debug.equals("Y")) {System.out.println(">>> Compiling");}
    try
    fmb.compile();
    catch(Exception e4)
    System.out.println(line);
    System.out.println("Error: "
    + formName
    + " could not recompile");
    System.out.println(line);
    System.exit(0);
    // Save the form.
    if (debug.equals("Y")) {System.out.println(">>> Saving");}
    try
    fmb.save(formName);
    catch(Exception e5)
    System.out.println(line);
    System.out.println("Error: "
    + formName
    + " could not save");
    System.out.println(line);
    // Free the underlying native object
    fmb.destroy();
    // Shutsdown the Jdapi instance
    Jdapi.shutdown();
    if (debug.equals("Y")) {System.out.println(">>> Quiting");}
    I would be very grateful if you are able to offer me some advice here.
    Rgds,
    Mark . Spooner @ Investmaster . Com

  • Using JDAPI to manipulate record group

    Hi.
    I am doing a migration from oracle forms 4.5 to 10g. For now I was able to manage/fix everyting using JDAPI interface. Now I am stuck with the following problem. In forms 4.5 it was perfectly legal to use a value of record group column larger than data length of that column. From forms 6+ there is a runtime error generated when this situation is met. What I wanted to do is to change/truncate record group value to the length of that column using JDAPI. No matter how I search I cant find proper metod to do the job. That is to change the value of record group column. Did anybody had a similar situation and was able to solve it.
    Best regards.

    Hi.
    I am doing a migration from oracle forms 4.5 to 10g. For now I was able to manage/fix everyting using JDAPI interface. Now I am stuck with the following problem. In forms 4.5 it was perfectly legal to use a value of record group column larger than data length of that column. From forms 6+ there is a runtime error generated when this situation is met. What I wanted to do is to change/truncate record group value to the length of that column using JDAPI. No matter how I search I cant find proper metod to do the job. That is to change the value of record group column. Did anybody had a similar situation and was able to solve it.
    Best regards.

  • Using JDAPI to reattach PLL Library/Libraries

    Hi
    I am attempting to change the libraries attached to some forms, to convert the names to lowercase as part of a Unix deployment project.
    I am using the standard code posted on Metalink. The Forms were Designer-generated as Forms 4.5 originally and have been upgraded to Forms 9.0.4.0.19. I am using the JDK in the Developer Suite Oracle Home. The Forms are in a different directory to the Libraries, but all the directories are in the FORMS90_PATH set both in the Registry and as a cmd.exe environment variable.
    I have two problems:
    1) If I attempt to just list the libraries attached to the Form, with something like:
         FormModule fmd;
         fmd=FormModule.open(args[0]);
         System.out.println("Processing module " + fmd.getName() + "...");
         JdapiIterator all_libs = fmd.getAttachedLibraries();
         while (all_libs.hasNext())
              AttachedLibrary lib = (AttachedLibrary)all_libs.next();
              System.out.println("Attached Library = " + lib.getName());
         fmd.destroy();
    This returns:
         Processing module MODULE...
         Attached Library = OFG4TEL
         Attached Library = OFG4MES
         Attached Library = OFG4BSL
         Attached Library = OFGMES
    Unfortunately, I know that there are more libraries than this. The Form is attached to a single module library (called MODULE.pll), which is attached to an application-level library, which is then attached to the Designer-libraries (OFG4*).
    Does anyone know why this code lists the Designer libraries, but not the others?
    If you convert the FMB to XML, it also has only the Designer-libraries, but opening the Form in Form Builder shows the full list.
    2) I attempted to remove all the libraries from the Form by adding a lib.destroy(); into the loop above and a fmd.save(args[0]); after it. When I run this the loop terminates after the first iteration. It doesn't report any errors, but it doesn't actually remove the module library either. It is doing something though, because if you reopen the Form in Form Builder the module and application library attachments have been lost and just the Designer ones remain?
    I don't really want to update all the modules by hand, and any assistance would be greatly appreciated.
    FWIW I also tried converting the FMBs to XML using the IFF2XML90 batch file, and then doing a search & replace on the XML file before converting back into a Form using IFXML2F90.bat. This doesn't work either because it also loses the module and application library attachments as described above, possibly because these batch files are using JDAPI internally and JDAPI doesn't like my Forms!
    Thanks
    Roger

    I sincerely hope that you have found a solution by now....
    It is a strange situation that you describe.
    I think you might have found that the OFG-libraries are actually in a different directory from where you expected them to be found by JDAPI. Have you used lib.getLibraryLocation()?
    The next step would have entail trying to find out where this different path was set, and why JDAPI uses that setting, instead of the settings in registry and batchfile.
    Just some thoughts.
    Greetings!
    Remco

  • JDAPI - method getAttachedLibraries does not get all attached libraries

    Hello,
    i've a strange behavior while using JDAPI to list all Libraries attached to forms.
    I've the following code:
    Jdapi.startup(true, true, true);
    String startModule = new String("c:\\test.fmb");
    FormModule fmd = FormModule.open(startModule);
    System.out.println(formPath+"\\"+form);
    JdapiIterator libs = fmd.getAttachedLibraries();
    while ( libs.hasNext())
    AttachedLibrary currLib = (AttachedLibrary) libs.next();
    System.out.println("Lib="+currLib.getName());
    if (currLib.getName().equalsIgnoreCase("WEBUTIL") || currLib.getName().equalsIgnoreCase("WEBUTIL_LIB")) {
    System.out.println("->"+startModule);
    Jdapi.shutdown();
    This code is very simple and the idea is to check form for Attached Libraries named WEBUTIL or WEBUTIL_LIB.
    However i'm getting an annoying behavior, because i see that it is not reading all Libraries attached to the form, but only some of them ... is there anything i'm doing wrong?
    Thanks,
    Pedro Ribeiro
    Edited by: pribeiro on Sep 23, 2009 11:36 AM

    Hi Ruslim,
    you get the below mentioned error due to following:
    1: for payment method T = "ACH" street, bank address is a required filed in FBZP configuration. so vendor master data needs to have street, city & bank inforamtion filled.
    2: vendor line items should have payment method as T = "ACH"
    3: delete all the previous open proposal for same vendor
    Hope this helps
    Pls assing points as way to say thanks

  • JDAPI A subclassed module could not be found during loading.

    Hi,
    How to over come following error while compiling jdapi java program.
    Exception in thread "main" oracle.forms.jdapi.JdapiException: A subclassed module could not be found
    during loading
            at oracle.forms.jdapi.BaseAPI._jni_load_form(Native Method)
            at oracle.forms.jdapi.FormModule.open(Unknown Source)
            at oracle.forms.jdapi.JdapiModule.openModule(Unknown Source)
            at oracle.forms.jdapi.JdapiModule.openModule(Unknown Source)
            at myfmbApi.main(myfmbApi.java:52)I searched on other forums and found that i need to use API_IgnoreMissingReferences(true); statement just before loading form. I am new to java programming and I tried this several ways but got error everytime.
    I am using 9iDS on windows, GlassFish3 Java version.
    JdapiModule jdapmod;
    API_IgnoreMissingReferences(true);
    jdapmod = JdapiModule.openModule(filename);While compiling java class, I am getting this error.
    myfmbApi.java:52: cannot find symbol
    symbol  : method API_IgnoreMissingReferences(boolean)
    location: class myfmbApi
                    API_IgnoreMissingReferences(true);Thanks

    I haven't seen that method before, I've used these myself:
    Jdapi.setFailLibraryLoad(false);
    Jdapi.setFailSubclassLoad(false);
    Steve
    * Actually looking on Google, yours looks like a call from FormsAPIMaster ?
    Edited by: spilgrim on Apr 11, 2012 8:09 AM

  • JDAPI: add Object library or PLSQL libs

    Hi,
    I miss 2 things in JDAPI:
    there is a methods getAttachedLibraries() and getObjectGroups(). Fine, but how to add a library or ObjectGroup. There is no add-Method.
    What I want is the same as drag and drop a object library to a form in Forms Builder...
    Anybody there, who knows...
    Thanks a lot,
    Michael

    Hi Duncan,
    Thank you very much for your help! Works great!
    Another JDAPI question:
    I add webutil via JDAPI (and modify some ProgramUnits) to a 6i form and found a very strange behaviour: When try to compile the form I get incorrect compiler errors...
    I have to save form, Jdapi.shutdown() and then Reopen form. After that I can compile without any error?!
    Similar happens, when subclass webutil and use the Block.find(...): JDAPI can't find the before added webutil block! After saving, reinitializing and reloading the form the form find works correct...
    But these are minor problems...
    Thank's again,
    Michael

  • How to compile forms with JDAPI ?

    Hi everyone:
    I have more than 200 forms need to compile. All the forms have libraries, object groups attached, they also call stored procedures in the database.
    When I run this code :
    FormModule frm= (FormModule) JdapiModule.openModule("/tmp/"+fileName);
    frm.compile();It reports error like this :
    Exception in thread "main" oracle.forms.jdapi.JdapiStatusException: _jni_compile_form failed
         at oracle.forms.jdapi.BaseAPI._jni_compile_form(Native Method)
         at oracle.forms.jdapi.FormModule.compile(Unknown Source)
         at oracle.forms.developer.JDAPIFormsApi.attachObject(JDAPIFormsApi.java:54)
         at oracle.forms.developer.JDAPIFormsApi.main(JDAPIFormsApi.java:71)Through forms builder, I need to connect to database, put all libraries and resources in the folder included in FORMS_PATH, to get them compiled.
    But how to compile them with all prerequisite conditions set up in my java code ?

    An easier way would be to compile the forms via script, there are several examples on the forum.

Maybe you are looking for