FormsAPI Master versions

FormsAPI Master helps you to programmatically modify and analyze Oracle Forms
3.0
May 24, 2015
Review
2.0
Jul 6, 2008
Dec 14, 2011
Review
1.0
Review

What's new

v3.0 [Nov 28, 2013]
Batch Admin, Property Extractor tool implemented
Batch Admin, Compiler tool implemented
Batch Admin, new PL/SQL Library manager tool implemented
Script, TPLSQLParser.GetIdentifierParamValue method now supports parsing named-parameters by index instead of by name
PowerSearch, speed and stability improvements

v2.0 [Dec 14, 2011]
- fixed a problem in generic_subclass using temporary filename (FAPxx.fmb) instead of real filename.
- TNSAlias list for parameter screens now returns the one from the right oracle-home.
- TNS_ADMIN is now handled correctly for connecting
- powersearch, open multiline /*...*/ comments in the searchresult messed up pl/sql highlighting
-DevCompare/DevReport, Forms11g item types showed wrong icon
- fixed Forms11g problem with saving (and in some cases loading) of PLL library modules
- scripts are now saved in unicode to allow script-comments with unicode characters
- function CommentOutPLSQL() was not commenting out
- function GetNextWord() was returning the same word instead of the next one.
- new procedure TPLSQLParser.CommentOutPLSQLLineOfToken(idx : integer);
- new procedure TPLSQLParser.CommentOutRange(iFrom : integer; iTo : integer);
- ReportsAPI, fixed X/Y/Width/Height property changes
- Fixed itemtype constants in Forms11g API
- function FileOpen() wasn't returning a file handle.
- DevCompare, fixed exception when closing the application with a DevCompare window still open
- DevCompare, fixed "out-of-bound-index" exception bug happening with some modules
- DevCompare, removed hardcoded limit of 2,000 sub-objects for each object (block->blockitems)
- DevCompare, fixed access violation when watching "new objects" properties.
- Last script engine update removed the CreateOLEObject function, added that one again.
- script engine, fixed **CRITICAL** bug inside the often used "REPLACE" function, that truncated strings > 64kb
- Changed API detection algorithm, 60/6i, 9i/10g aswell as 10gR2/11g API's can now be selected correctly
- DevCompare, fixed access violation on closing the application when there are still diff-windows open
- script engine, fixed exception propagation (raising exception inside an exception handler failed)
- Couple of improvements dealing with WindowState not working too well with maximized windows.
- DevCompare, improved the "Change-of-Position" detection algorithm.
- DevCompare, display of Program-Units is now sorted
- DevCompare, fixed item-type icons for Forms11g
- Read-Only attribute on pll-files caused Forms converter to fail and files to remain in temp-dir
- Fixed Forms11g library compilation (was using old STRIP_SOURCE=YES parameter)
- HTML-Location settings failed when trailing slash was missing
- DevCompare, save of reports compares was using wrong property names (only for *.txt files)
- DevCompare with text-files didn't show filenames in the diff-window
- added new function "procedure Generic_UnSubClass(genobj : number);" ... works with Forms11g and later
- Fixed AdvancedProperty search bug in powersearch
- Fixed Forms 6.0 bug - Check for property default value changed subclass-properties in DevCompare
- Updated oracle library to support Oracle 11g client (Forms11g uses 11g client)
- DevCompare ignored comparing char/byte length semantic in Forms10gR2
- script execution sometimes didn't close the application
- script execution sometimes didn't start (unless window got focused)
- PowerSearch now reports the whole line when "0-lines before/after" is set.
- Added Forms11g support
- Added Reports11g support
- DevCompare in edit mode didn't save changes done in the combolist-editor (for enumerated properties)
- DevCompare was wrongfully inheriting properties in the test to determine if a property is overridden/inherited/default
- Had one last shot at trying to improve PLL load errors
- Fixed memory-leak in script engine on string concatenation (s:=s+','+'xxx')
- when running script from command line the default filename for the log was empty (saved as ".log")
- fixed REP-0024 error for Reports 6.0
- fixed Forms Canvas object not being reported in the Developer Report utility
- implemented workaround for subclassing property class to an object (no applies it as an property class and not as an object)
- ReportsAPI enabled the FORMAT_MASK property to be writable
- Another fix to loading PLL Libraries in case the have missing library attachments
- TPLSQLParser.LineOfToken raised 'Index out of range' expection on lines not ending with linefeed
- Check for read-only file attribute before saving Oracle Reports files
- fixed "Memory Access Violations" in DevCompare when merging objects
- latest script engine in build 402 broke "()"/"[]" access for array properties, feature is now implemented again
- Fixed Reports problem of Fields/Boilerplates having wrong/missing style information (font/color/etc)
- Removed trial limitation to save merged modules from DevCompare
- script engine enhancements (faster and more stable)
- fixed Reports problem with "REP-0024:Property with name not found!" in reports with group-filter triggers
- new script function "CountOfString(s:varchar2; substr:varchar2):number;"
- new script function "function GetIdentifierParamType(idx: integer; Par: integer; ParName: widestring): TPLSQLTokenType;" for TPLSQLParser
- Support for Korean KO16KSC5601 character encoding fixed
- increased stability of TextBinary conversion of Forms modules
- implemented the RepGeneric_GetConstantName function
- fixed reading/writing of D2RP_TEXT property in Reports Boilerplates (text sections)
- owerSearch aborted search (silently) when a file in the list of files to search did not exist anymore
- added object-path to DiffCompare/Property window
- Script engine fix for "Set Operations"
- Script engine fix for assigning a functions return value to a variable which is also used as input parameter
- Script engine enhancement for call-order of unit functions depending on USES clause
- Another script engine fix for improved default parameter expression parsing
- couple of fixes to the search-box (unique MRU list, etc)
- PowerSearch in SQL files(sql/pkb/pkd/fnc/prc) did ignore the PL/SQL Comments option.
- PowerSearch replace in record-group queries wasn't working when not connected (tried to reparse column information)
- script engine fix for using "Default parameters" in procedures/functions
- ctrim/rtrim/ltrim functions now work with a string of trim characters
- Script engine fix: default parameters was not working inside "UNITS"
- license check in FormsAPI Master COM/COM+ API was broken
- Script engine fix: passing string-by-index to function expecting char was broken
- another stability enhancement for script structure (still occasionally raised exceptions after last fix)
- PreviousEOS/PreviousSOL text-parsing function returned position one character off.
- Main window is now showing the Forms API version in the title
- ObjectLib_FindObjByName function now also supports finding library-tabs, not just objects within them.
- Script engine fix: boolean evaluation fixed and improved with full conditional evaluation support
- Script engine fix: lots of varchar/widechar/string typecasting problems resolved
- Script engine fix: exception handling causing "listindex out of bound" in some cases
- Script engine fix: passing around indexed properties of objects sometimes caused wrong return values
- Script engine fix: handling of multi-indexed properties (like TMemStore.Cells property) works now
- exception handling is now logging user-defined exception class names properly
- introduced support for "class" types in script structure view
- enhanced stability of script structure (occasionally raised exceptions)
- added new setting option to override code snippets/quickcodes file location
- Implemented workaround for API_ConvertFile doesn't free memory,#4785
- dropped support for dates in the to_char function because sometimes numbers got returned as date-strings
- new command line parameter "/SHOWSCRIPTLOG" to show current script execution log
- FormsColorAPI was using API_ConvertFile that caused memory leak (known bug #4785)
- DevCompare was causing problems with inherited objects, making them unloadable after saving.
- Scriptengine, the "for...downto" loop command was not parsing expressions for upper/lower bound
- Scriptengine, "IN..SET" operations were not working properly
- Scriptengine, VarType function wasn't working
- DevCompare has now a read-only mode (disabled editing/merging) under Tools/Settings/DevCompare
- DiffEditor had some problems with displaying correct text-diff results in certain combinations
- DevCompare failed with access violation on empty boilerplate text items
- fixed, Legacy Forms50 API support was broken
- fixed, Legacy Forms60 API did not allow subclassing object
- DevCompare/Report did not compare/report Property Class Properties
- resolved issue of running scripts in two (or more) separate instances of FormsAPI Master at the same time
- Fixed another 3 bugs in script engine exception handling. TRY..EXCEPT now allows extended error handling like documented
- Enhanced raising user defined exceptions, can now supply an error code in RaiseException/GetErrorCode
- Fixed another bug in TMemStore LoadAsCSV truncating the lead 2 characters
- TMemStore.Cells propery returned wrong cell-value, added workaround CellsByName if you need to use column name as column index.
- TMemStore SaveAsCSV/LoadAsCSV functions were not working correctly
- scripting engine can now be extended with plug-ins
- PVCS API in scripts is now working again in V2.0 (converted it to a plug-in)
- fixed exception handling for raising user defined exceptions
- Scripting engine, Compile time speedup by a factor x3
- Advanced PowerSearch searches on boolean didn't work (true=false)
- Scripting now supports arrays initialization with constants "CONST C_TEST : array[1..4] of integer = ( 1,2,3,4 )"
- added new AddKeyword, AddOperator, AddDatatype methods to TPLSQLParser class.
- added "$" and "#" characters to list of valid identifiers characters in the TPLSQLParser class
- DevCompare, fixed "missing d2fp_mnu_param constant" exception
- Added new script function GetDirList
- DevCompare security confirmation for saving files with missing attached libraries works opposite (yesno)
- DiffWindow/PropertyViewer now remembers window sizes
- Scriptengine fix, accessing characters in a string by index
- Scriptengine fix, passing dynamic arrays as parameters was broken
- Scriptengine fix, PCHAR data type was broken
- Scriptengine fix, pointing to characters in a string should have been type compatible with PCHAR
- new functions to deal with DLL libraries (LoadLibrary,FreeLibrary,GetProcAddress)
- DevCompare was erroring with oracle forms menu modules
- fixed some Unicode problems with Item_GetListElement/Item_SetListElement/MenuItem_AddRole/MenuItem_GetRole
- IgnoreCase option wasn't handled properly in DevCompare
- fixed script engine bug with passing parameters of type "VARIANT".
- fixed script engine bug with multidimensional arrays.
- fixed script engine bug with calling "TYPE" functions.
- PowerSearch neglected the "Ignore Comments/Strings" option in text files
- fixed problem with multiple units in "USES" compilation.
- fixed problem in Blendout_PLSQL_Comment function with open strings over multiple lines
- fixed problem with open strings over multiple lines in PowerSearch when "Ignore Comments" was selected.
- treat as binary was not working in PowerSearch
- fixed problem with Script Structure and '(' and ')' strings.
- Improved resource management to lessen the EOutOfResources exception
- fix endless loop in Replace_PLSQL_WORD on replace with string that contains searchstring
- fixed exception propagation from within threaded calls (like for example API_LoadModule)
- DiffWindow was setting the property in the wrong module when applying changes
- fixed subclassing problem when module has been loaded from a temporary copy
- Replace_PLSQL_WORD function was still broken
- TPLSQLParser interpreted '(*' as multiline comment start (which is ok for PASCAL but not PL/SQL)
- fixed Find/Replace_PLSQL_WORD functions
- log file from command line can now be suppressed by using /NOLOG parameter
- Fixed object library compare bug (tree display causing access violation with library tab objects)
- fixed TOraSession, should now return Unicode data properly when used with an oracle OCI 8i client (and later)
- New function UTF8ToWide/WideToUTF8 to convert to/from UTF8.
- Fixing trial limit bug on saving Forms modules
- Enabled missing Generic_Create function support for Forms50/52/60
- Number fields on parameter screens lost values on script re-runs
- fixing the ResizeScript compilation bug.
- DevCompare HTML saves didn't align multiline source code properties correctly
- Printing from DevCompare didn't work in Microsoft IE7
- DevCompare/Report and the PowerSearch file/directory edits added double-quotes around the filenames
- fixed command line support for running scripts
- PowerSearch in directories did not match file extensions with different upper/lower case characters.
- fixed FormsAPI context thread problems, broke functions like "Font_StringSize" and some others
- saving DevCompare results didn't work (filename wasn't passed in correctly)
- added support for the CONST procedure parameter syntax
- another couple of compile time enhancements
- improved script editor typing speed
- fixed bug with nested try..except
- improved script-structure viewer - now shows more information
- script-structure viewer now highlights current node depending on editor position
- added WideLineSeperator (character #$2028) support to the TPLSQLParser class
- fixed TOraSession for oracle connections was using the default home instead of the Forms home
- SetLength function for strings was broken
- some changes to make running FormsAPI Master on a server install smother
- fixed memory leak with "STRING" data type
- full support for script defined object classes
- Removed "Beta" from titles/captions
- code-sense was broken for classes without a ":"
- fixed bug with UNITS scripts not compiling correctly
- "Treat as Binary" option in PowerSearch caused missing search results
- script syntax now allows "()" and "[]" to access array properties
- couple of speed enhancements for script compilation
- fixed missing comment open tag "{" when alone on a single line in the script editor
- fixed normalize_cflf function - using normal CR(#13) and LF(#10) character instead of WideLineSeperator(#8232)
- Increased the maximum stacksize to fix the EStackOverflow exception in DevCompare
- fixed missing return value from the TRegExpr.Match property
- added another couple of functions to the TPLSQLParser class (load/save/FindEx regular search expressions)
- new functions NormalizeTabs, BlockIndent, BlockUnindent
- fixed LogAdd function, not anymore ignoring spacing of the first line and handling tabs correctly
- fixed DevCompare exception when opening the Diff-Window
- fixed bug introduced with 372 that breaks function declarations
- GetPreviousWord function returned wrong position for next search
- fixed sl.strings[1] := sl.strings[2] bug when assigning indexed properties directly
- fixed PropExplorer/DevCompare pop-under message dialogs (on library/reference module missing)
- added new TPLSQLParser class (to easy parse and manipulate PL/SQL Code)
- fixed search dialogs in editors - regular search engine used made searches containing unescaped characters like "(.[\" tricky.
- implemented the color-settings page to configure the highlighter for scripts
- fix access violation with opening script from second instance
- fixed another couple of records in arrays bugs.
- add autocomplete for d2fp/d2rro/etc constants
- check that all screens work with 96/120 DPI (small/large fonts)
- now showing d2fc/d2rc constants in PropertyExplorer instead of just number values
- improved structure view further - had problem with "var" parameters parsing
- now checking for code after the last "end" of the main program begin..end block and display an error if anything found!
- translated some more of the file routines to be able to use Unicode in filenames
- RemoveDirectory has another optional parameter to be able to delete directories with files
- fixed rtrim/ltrim/ctrim functions not returning anything
- fixed the "like" function, no more access violations.
- when focus was on the page control search/replace didn't work
- removed double quotes in file/path names on parameter screen (happened when they have spaces in the path/file)
- integer values on parameter screens did set the wrong min/maximum value
- LogAdd function was trimming left side of messages which made intention of text somewhat a problem, fixed that
- added "LongInt" and "real" datatype.. it's the same as "Number/Integer" and "Float"
- fixed internal AdjustLineBreak routine, affected LogAdd calls with "OutOfMemory" error and unexpected script termination
- fixed bug with default parameters not working with varchar2 data types
- fixed bug with "continue" function
- fixed memory overwriting bug with arrays
- fixed bug with variant comparison
- implemented old style "USES" unit syntax
- improved script structure tree view for UNITS
- fixed bug with varchar2 by index accessing (caused by Ansi/Unicode mixing problem)
- fixed bug with "program" keyword causing "Internal Error" on compiling in certain combinations
- added all missing example scripts and checked that they all compile and run
- Added "Assigned" function
- bug with exception handling scope inside scripts fixed
- made some improvements to the find function, can now search up and down (F3 and Shift+F3)
- Bugs with the "WITH..DO" construct in the script engine fixed
- implemented old style "forward" declaration of functions, no need to repeat parameters on implementation
- fixed problem with pl/sql style variable declaration without the ":"
- the "find" function is now implemented in practical all "editor" windows (Script editor/Difference viewer/PowerSearch/etc)
- the find function understands wildcard searches (with the usual "*" and "?" placeholders)
- implemented "Replace" functionality from the toolbar/menu
- fixed "List Index out of bound" exception on code completion
- code completion now also works for class names, not only variables of classes
- Added XMLNode functions to XMLParser tree
- added "free/classname/classtype/inheritsfrom/classparent" to all objects and help file
- added the "||" string concatenation feature to the script engine
- GetError function has now an optional parameter to specify how much detail you want in your error message
- included a bunch of configuration settings for the editors
- fixed Property_GetConstValue returning wrong values
- fixed double quote compile problem
- rpad/deletechar problem is now fixed, char gets automatically converted to widechar if needed.
- Added Move, IndexOfObject,CaseSensitive, LoadFromfile, SaveToFile to TStringlist
- fixed header definition of Random function to old V1.0 definition
- missing StrToInt, FormatDateTime,UpperCase,LowerCase functions added
- Fixed exception that gets raised when exiting/closing a script window while it's running
- empty multiline comments now compile correctly
- fixed if..then compile problem with single line statements
- fixed compile problem with recursive functions
- add tree entry for every enumeration
- fixed bug in using enumerations inside records
- fixed problem with passing records as parameters to procedures/functions
- fixed variable scope problem, global variables are now not anymore accesible from standalone procedures/function
- fixed script structure tree problem not parsing CASE..END correctly
- Click in script structure tree now centers the line
- copy to clipboard from Script Functions tree and from ErroPanel implemented
- Script-editor window display state is now saved/restored for every new window
- Replaced V1.0 help file with the latest V2.0 one
- FormsAPI Master COM/COM+ object updated to use the new V2.0 API.
- fixed IntToStr function
- enabled drag'n drop from script functions and code snippet trees
- linked script functions tree to the help file
- fixed Ord / Pred functions not useable in subroutines problem
- fixed Screen DPI Font problem in the Settings dialog for user running in normal 96 DPI font size
- fixed compiler bug with string comparison (=,,>,<)
- fixed compiler bug with string+char concatenation
- fixed compiler bug with using properties directly of returned objects ( ps.parambyname('MyString').isnewgroup := true; didn't work)
- RPad/LPad/etc functions (any function with default value for a widechar parameter) have been fixed with a temporary workaround
- ReportsAPI now supports jsp/xml reports files
- new TInifile class to handle Windows INI files for storing settings
- new TStringBuilder class to concatenate large strings in the fastest way
- new TXMLParser class to handle reading/writing XML files
- new TMemStore class to store and manipulate data in grid arrays
- Change to open scripts in the same instance
- DevReport now also reports property inheritance
- Fixed script suspend/resume/terminate buttons now work without access violations
- Enabled printing from property-show windows
- OLB support for PropertyExplorer
- Properties are now sorted by name in DevCompare, DevReport, Property Set Manager,#2037
- PropertyExplorer added coord info object
- DevReport remove of objects with no reported properties
- DevReport enable remove of inherited/default props
- Scripts are not anymore limited to 200kb, #3569
- Added list elements to PropertyExplorer
- changed AddParam to a function returning a TParamField
- ":" is now fully optional in variable declaration
- new InitCap function, to uppercase initial characters in strings (like for example in names)
- new CurrentYear function
- new AbsFloat function
- new date/time functions are now CurrentDate/CurrentTime
- new date/time is now a data type
- changed fileread,filewrite to string only
- new function blendout_plsql_strings(s : varchar2) : varchar2;
- new "declare" keyword added for starting a variable definition block
- new GetUnquoted function
- new function AskString(prompt : varchar2; default : varchar2) : varchar2;
- new function AskPassword(prompt : varchar2; default : varchar2) : varchar2;
- new function AskMemo(prompt : varchar2; default : varchar2) : varchar2;
- new function AskNumber(prompt : varchar2; default : number) : number;
- new function AskFloat(prompt : varchar2; default : float) : float;
- new function AskDate(prompt : varchar2; default : date) : date;
- new function AskDirectory(prompt : varchar2; default : varchar2) : varchar2;
- new function AskFilename(prompt : varchar2; default : varchar2; filetypes : varchar2) : varchar2;
- new function AskSaveFilename(prompt : varchar2; default : varchar2; filetypes : varchar2) : varchar2;
- DevCompare - fixed bug with whitespace causing out of memory errors
- new GetCurrentWord function;
- new DeveloperCompare options
- fixed file locking of license file can loose license key
- fixed ReportsAPI time parsing is 1-24 instead of 0-23 for hours/minutes/seconds
- DevCompare edit/merge support for Oracle Reports (stage-1)
- DevCompare keyboard navigable tree
- Get_PLSQL_Param function failed when not called with a parameter
- change of trial limit, make version depended 30days per build
- change of trial limit, allow a weekly less limited license for tests

Alternative downloads

Microsoft SQL Server2014 Transact-SQL ScriptDom
Microsoft SQL Server2014 Transact
Free
rating

It provides parsing and scripting services for Transact-SQL.

Forms Data Loader
Forms Data Loader
rating

Load data from Excel or CSV files into Oracle Apps 11i / R12.

FormsTool
FormsTool
rating

"little brother" of FormsAPI Master.

DataLoad Scripting
DataLoad Scripting
Free
rating

Enable scustom loads and new functionality to be built in DataLoad.

Softgroup .Net Forms Skin
Softgroup .Net Forms Skin
rating

To skin an application just drop a NetSkin component onto your forms.