Jdapi ?

What is JDapi and how is it useful in oracle forms 10g?

The Oracle upgrade processes use jdapi for removing obsolete keywords. So, for example, you could search all program units for:
show_menu;
and replace it with:
-- show_menu;
regards,
Steve

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.

  • How can i change the code in when new form instance trigger using JDAPI

    Hi all,
    Can anyone tell me how can i use JDAPI to modify the when-new-form-instance trigger in all my forms,coz we have around 500 FMB's ,if this is possible by using jdapi it will be better for us..
    Thanks in advance..
    Najeeb

    Hi Najeeb,
    The code I've given you should cover the basic steps - you will need to have a basic knowledge of Java if you want to use the JDAPI, there's no way around that unless you go and buy one of the off-the-shelf products for this kind of thing (I think there's one called orcltoolbox..?)
    I've written an application that does all kinds of things to Forms specific to our needs, so it's a bit tricky to just pull out the code you need, but again, the basics will be:
    String formName="C:\some_dir\some_form.fmb";
    FormModule mForm=FormModule.open(formName);
    Trigger myWNFITrig=Trigger.find(mForm,"WHEN-NEW-FORM-INSTANCE");
    String myText=myWNFITrig.getTriggerText();
    And there you have your trigger text, to do with what you please. You could put this code in the main() method of one class if you want to keep things really simple - but see how you get on, if you have any more specific questions, do come back.
    Eric - that's a very good point about using Regular Expressions. I haven't used them in my JDAPI app because I wanted to keep all my .fmbs 6i-compatible for the short-term, and a posting I saw somewhere recommended sticking to Java 1.3. Which rules out the regex facility, which only appeared in Java 1.4. Now, though, I think I needn't have worried - it surely shouldn't matter which version of Java I use to make the changes to the .fmbs. My stupid!
    James

  • 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

  • Library path problem using JDAPI

    HI,
    Under Windows XP, I am trying to attach library to forms using JDAPI. But the path also gets hardcoded in this case. When I move the forms to Linux and try to open the forms, it says library not found.
    Can anyone help me in this regard ?
    I would highly appreciate immediate help.
    Thanks & Regds,
    Nandakumar

    Its home directory does not contain files .profile,.bashrc,.bash_historySo feel free to create it manually.
    I have added LD_PATH_LIBRARY in file /etc/init.d/oracle-xe This not much well but all work. Of course it didn't help. Because you set it for root (again) and this setting is ignored because su command (in that script) uses oracle's enviroment settings.
    So create .bash_profile in /home/oracle (oracle's home) and set the enviroment in that file.

  • 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

  • Added webutil object group with JDAPI - adjust the webutil block sequence ?

    Hi all,
    I'm using the JDAPI to subclass in the webutil object group into Forms in an application. Annoyingly, the webutil block becomes the first block on the Form - which means on some Forms it displays on startup. Is there anyway (programmatically using JDAPI) that I can move the block the end of the block list after I've subclassed in the object group ?
    TIA
    Steve

    Hello,
    move
    void move(JdapiObject nextObject)
    Reorders an object with respect to its siblings in the collection it belongs to. This is similar to using drag and drop in Form Builder to move a block in a list. This method represents a way to do the same thing programmatically. For example, if you want a block appear immediately before Block5 in a list, you pass the object representing Block5 as the nextObject argument.
    Pass null to this method to move the object to the end of the list. If the specified object and the next_object do not share the same owner, or do not have the same type, the method throws an exception.
    You cannot use this method to move objects between parents. For example, it cannot be used to move an Item from one Block to another. If you want to move an object from one parent to another you will have to do something like:
    // to move 'itmA' to be positioned before 'itmB' in block
    // 'blkB' (when 'itmA' is in another block)
    // copy itmA into a new parent (blkB) using same name
    Item newItmA = itmA.clone(blkB, itmA.getName());
    newItmA.move(itmB); // move new item relative to itmB
    itmA.destroy(); // delete original object
    itmA = newItmA;
    Parameters:
    nextObject - the object next to which the specified object is to be moved.
    Throws:
    JdapiException - if you attempt to move an object next to an object that does not share the same owner or is not of the same type.
    Francois

  • JDAPI with multi canvas form and LAF questions

    I'm trying to use jdapi to apply LAF project on my forms, it works great with simple forms, but with multi canvases and blocks form it doesn't apply LAF for all of them. I can follow the code of the done one for the rest, but i have questions:
    do i have to set a different bean for each block?
    who overrides, the bean or the property set for the item?
    and sorry i have another questions concerning LAF:
    can i define a new scheme, and if yes, how?
    if i want to show an image for a button, the path should be relative to what? as till now i failed to set an image for a button.
    Thanks

    Hello,
    I have just tested and the result is OK.
    I have built a Forms module with 2 content canvases, each one containing a block.
    After running the JDAPI_LAF tool, the new module contains a LAF_BLOCK with two Bean area, each one one a different canvas.
    <p>Concerning the image on the button, the syntax is explained in the documentation</p>
    See the SET_IMAGE method.
    Francois

  • Get the form module version using JDAPI program

    Hi
    I have one problem to find the verison of form module using java (JDAPI) programming.
    To the JDAPI program i am just passing the form name. by reading the form it has to say the form version.
    Is there any method to get this...
    Thanks in advance.
    Madhava

    I solved my problem...
    first of all.
    Versioning was enabled for the folder but apparently it didnt work so i disabled it and enabled it again. Then I got the correct reource instead of null.
    second thing
    later in mycode I used this to get the path of the resource
    resource.getRID().getPath();
    but this gives the path to where the version of the document can be found... something like /documents/~System/xx/xxxxx/xxxx
    where x is numbers
    after doing a little debugging I found out that
    resource.getAccessRID().getPath()
    returns the path to where in CM the resource is stored.
    I hope My experience here can help others.
    I am glad that I solved my problem, but I find it extremely worrying that some settings in CM apparently stops working without any apparent reason.
    We have experienced this with other properties like Manual Ordering, Approval process, have any one else had these problems and found the cause then I would like to hear about it

  • 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.

  • JDAPI to search for HOST command in PLSQL

    Hi All
    How do I seach for all host commands in a form. I can convert the form to text or xml but I would like to do that using JDAPI. Has anyone successfully done that.
    Any help is appreciated.
    Rgds
    Arvind Balaraman

    Can someone help me?
    Rgds
    Arvind Balaraman

  • 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

  • Forms jdapi and attached libraries

    using Jdapi to manipulate forms is an exciting experience, especially, when misterious things happen
    i wrote a simple code to list all the attached libraries (the reason for that is i want to migrate Forms application from Windows env to Unix and i wanted to change all attached libraries to lower case)
    JdapiModule.openModule("c:\\MODULE2.FMB");
    JdapiIterator fmbs = Jdapi.getModules();
    FormModule fmb = (FormModule)fmbs.next();
    //FormModule fmb = new FormModule("myform.fmb");
    JdapiIterator libs = fmb.getAttachedLibraries();
    while (libs.hasNext())
    AttachedLibrary lib = (AttachedLibrary)libs.next();
    // System.out.println(lib);
    System.out.println(lib.getLibraryLocation());
    // System.out.println(lib.getLibrarySource());
    System.out.println(lib.getName());
    This works only if the libarary is attached with library path included!
    When i run the same code against a form where the library is attached with path removed, the code above does not detect the attached library at all?
    ie libs.hasNext() return false
    Ammar Sajdi
    www.e-ammar.com
    www.palco-me.com
    founder and managing partner

    I created another form with an attached library on another PC.
    I ran the same program, and the program runs perfectly!!!!!!!
    i really do not understand this behaviour!
    The forms i am using is 9.0.4.19
    Glad it works on other pc's
    Ammar Sajdi

Maybe you are looking for

  • How to create installer for flash app where content is distributed by chapter?

    hi everyone, i wanted to create an application installer (per chapter) like the one implemented on the product on this site: http://www.thelandofme.com/ .. can someone pls guide me on this? i have no problem creating flash apps but i'm so lost on mak

  • Spaces allowed in iPhoto filenames? when syncing to iPhone/iPad?

    It took me a while to narrow this one down, in short, if the underlying filename of the photo you attempt to sync from iPhoto using iTunes to your iPhone/iPod contains a space character, then the sync will fail with the, rather unhelpful "unknown err

  • Event ID 10 with error 0x80041010

    Hello, getting the following event 10 as well as a handful of others differing only in the specific wmi class referenced in the query. Appears to only be logged once at boot. Log Name:      Application Source:        Microsoft-Windows-WMI Event ID:  

  • How data is populated to catA and catB

    Hi  Guys If i modify any data in bcc and deploy the project then how my store app will pick that modified data because  it is pointing to different data source please clarify my doubt and also why we have four different data sources instead of one wh

  • A game's welcome page displays my password

    I have an iphone 4 running os 7 On at least 1 app when I start it up it shows a welcome msg "Welcome Back, (password). This seems a bit insecure to me, but I don't know if it is an iphone problem or the apps problem or something else. Any ideas on ho