Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
Created On: 28 March 2012 Problem: In Visual COBOL, is there a way to have a user click on a button in a .NET Windows Form application and have it automatically print the current form to the default printer? Resolution: Windows Forms Screen PrintThis sample program demonstrates how to use the System.Drawing.Printing class to both provide a means of doing a Print Preview via Dialog Box for the current Form and provide a means to print the form to the default printer. The attached program displays two buttons that can be clicked,one to invoke the print preview function and one to print the current form. Incident #2566324 Attachments screenprintvc.zip Old KB# 35713
Created On: 22 March 2012 Problem: Which port does the Micro Focus License Server use when a client requests a license using the License Administration on their PC? A customer needs to open up the port on their firewall as currently they have access blocked when requesting a new key. Resolution: The default port is 5093. Old KB# 35676
Created On: 30 March 2012 Problem: Visual COBOL R4 was installed on a new computer on which older applications developed with Net Express also existed. Visual COBOL starts OK but when attempting to create a new or open an existing COBOL project the following error is displayed: “Runtime DLL ‘CBLRTSM’ version 1.3, entry point mf_id_dynlink_lib_check not recorded in registry, not found or incompatible with requirements of dynamically bound COBOL program. Dynamic binding of RTS required Any Runtime DLL, at least Version 3.0” What does this mean? Resolution: This particular problem occurs because Visual Studio is trying to load one of its system .DLLs but it is finding and loading a .DLL that was compiled with Net Express 3.0 which was linked for dynamic binding. This is why this particular .DLL is trying to load the COBOL run-time "cblrtsm.dll" for Net Express 3.0.Since the COBOL run-time system "cblrstm.dll" from Visual COBOL is already loaded into
Created On: 28 March 2012 Problem: Is there a way for one program (Program A) to open files, accept input from a screen, then call a second program (Program B) for file processing without Program A closing the files and Program B reopening files? Resolution: Declaring the file FD as external in both programs accomplish the desired task: FD custom-file external. 01 custom-record ....etc This way the file can be opened and closed in ProgramA and read, write, etc. in ProgramB. ProgramB can not open again the file because it will generate an error. Incident #2191524 Old KB# 35719
Created On: 28 March 2012 Problem: I'm trying to get an F4-key exception from a Combo Box control it seems that doesn’t work. Any other F1-F9 keys generate an exception, but an F4-key won’t. Is this a limitation? Or what needs to be done to make this happen? Resolution: There is a configuration variable called WIN_F4_DROPS_COMBOBOX This configuration variable applies only to programs running under Windows. Its default value is "1" (on, true, yes), so, combo boxes use the standard Windows handling for the key. Pressing while a combo box is active causes it to drop its drop-down list, and the COBOL program is not notified of an exception. When this variable is set to "0" (off, false, no), pressing with a combo box active causes the COBOL program to get the exception, but the combo box does not drop its drop-down list. Incident #2191737 Old KB# 35720
Created On: 12 March 2012 Problem: I created a Visual COBOL program that uses the following syntax: SELECT OPTIONAL TEST-FILE ASSIGN TO DISC FILENAME ORGANIZATION IS LINE SEQUENTIAL FILE STATUS IS FILE-STATUS.where FILENAME is defined as:01 FILENAME PIC X(30) VALUE "TESTFILE.DAT".When performing the statement:OPEN OUTPUT TEST-FILEa file-status value of "35" is returned which means file does not exist.This program worked fine under RM/COBOL.What is causing this problem? Resolution: The word "DISC" is not recognized by the Visual COBOL compiler. According to the documentation for the File-Control entry the keyword should be "DISK" and not "DISC".The compiler is interpreting the word "DISC" as being a data-item name that should contain the name of the file when it is opened. Since
Created On: 27 February 2012 Problem: When closing the Net Express IDE a message box is displayed for the following error message: "X016: Undefined query identifier or location not open"This follows another message for "The SQL option XBD local server option is running. Would you like to stop the server" to which I click on the "YES" button. What does this X016 error mean and how can I get rid of it? Resolution: This error message is simply an annoyance and there is a simple way to get rid of it by uninstalling the XDB component of Net Express, if you are not using it. Go to Control Panel > Add Remove Programs and click on Net Express 5.1 and select Change. When it asks what you would like to do select Modify. When the Net Express install screen shows you a list of components, click on the box to the left of XDB Relational Database and select the last option which is to not install the component. It sh
Created On: 14 March 2012 Problem: When trying to run ccitcp2 or another Micro Focus application that uses port 86 (for example Enterprise Server) you get a message saying port 86 is in use. Resolution: Port 86 is recognized as a standard for Micro Focus. There is a file called /etc/services that lists ports, and often port 86 is already shown there, populated when the OS is installed, for mfcobol. Search the file /etc/services for “mfcobol”. You should find several lines that look similar to this one: mfcobol 86/udp &n
Created On: 08 March 2012 Problem: In debugging of version 9.1, if customer double clicks on variable, it it displays the fully-qualified name of the variable then the value. Resolution: The program needs to be compiled with -Gd and –Gy compiler options, using -Ga will result in the reported behavior. Incident #2561768 Old KB# 35626
Created On: 08 March 2012 Problem: Alfred is no longer in the AcuBench Tools menu. How do you get Alfred back in the Tools menu like in previous versions? Resolution: In AcuBench go to the Tools menu, Customize, Tools tab. Click the plus sign, , then name it Alfred and enter the following: Command: C:\\Program Files (x86)\\Micro Focus\\Acucbl910\\AcuGT\\bin\\wrun32.exe Arguments: -c ..\\tools\\alfred.cfg ..\\tools\\alfred.acu Working Directory: C:\\Program Files (x86)\\Micro Focus\\Acucbl910\\AcuGT\\bin\\ Then click Close. Alfred can now be started from Tools, Launch Tools. Incident #2561976 Old KB# 35627
Created On: 01 March 2012 Problem: On UNIX, using the allocation override with SUBDIR($ENVVAR) in the config file doesn't seem to be able to recognise the AllocOverride.cfg file allocations. For example, having an allocation override of: OFFSET(324) VALUE(VSAM) SUBDIR($VSAMPATH) create the datasets in the allocated default dataset location. Resolution: On UNIX, we cannot expand a path that contains only an environment variable. It must contain the environment and a slash and additionaldirectory in which the files for those datasets will be created. Changing this to:OFFSET(324) VALUE(VSAM) SUBDIR($VSAMPATH/PRODV) will avoid the problem. Incidents #2561963, #2487875 Old KB# 35589#ES_ALLOC_OVERRIDE
Created On: 24 February 2012 Problem: Attempting to register the version 9.1.0 AcuToNet.dll assembly using: regasm20acu.exe /register /codebase AcuToNet.dll Gives this error: RegAsm : error RA0000 : Failed to load 'C:\\Program Files (x86)\\Micro Focus\\Acucbl910\\AcuGT\\bin\\AcuToNet.dll' because it is not a valid .NET assembly Resolution: In version 9.1.0 the AcuToNet.dll is a .Net version 4 assembly so the regasm20acu.exe will not work. There is a new version attached to this article, regasm40acu.exe which will successfully register the AcuToNet.dll assembly in version 9.1.0. Download regasm40acu.zip and extract it to the 9.1.0 bin directory, then execute: regasm40acu.exe /register /codebase AcuToNet.dll n/a Attachments regasm40acu.zip Old KB# 35565
Created On: 27 February 2012 Problem: Program is converting a large indexed file to a sequential file and the write of the sequential file is displaying an error with a file status of 9/A where A actually has a caret character "^" over it.Could you tell me where I can locate the descriptions of the error codes that contain the special characters, as above? Resolution: When you get a file status returned and the first character is a "9" it means that the second character is actual a binary value representing a run-time error and these are called extended file status codes. If you look in the Help under Extended file status you will find an example: Example of Extended File Status Codes The example code that follows illustrates how to redefine a standard file status so that it can be used as an extended file status. Assume for this example that the input file does not exist - when the OPEN INPUT statement is executed, a file status of 9/013 ("fi
Created On: 01 March 2012 Problem: When compiling a DB2 application using Net Express the DB2(BIND) directive is used to create a DB2 Bind file that can be used to bind the application to the database.But when using the DB2 BIND command as follows the error shown is displayed.Why?SQL>db2 bind @dynamic.bnd LINE MESSAGES FOR dynamic.bnd------ -------------------------------------------------------------------- SQL0061W The binder is in progress. SQL0031C File "BINDV810L ` ü « O œ " could not be opened. LINE MESSAGES FOR dynamic.bnd------ ------------------
Created On: 03 February 2012 Problem: Customer is migrating from a Unisys mainframe to Net Express 5.1 using SQL Server 2008 database.On mainframe they had a table with a column defined as CHAR(30) into which they stored a string of data that included a COBOL COMP data type.They redefined the host variable in their program as follows:01 char-field. 05 num-field pic 9(6) comp. 05 x-field pic x(20). 05 x-field2 pic x(7).and before inserting the columns into the database they would initialize the num-field to a numeric value starting with 1 and incrementing by 1 for each row.The INSERT worked fine and sqlcode was 0.When they fetched the data back into the program, however the value in the num-field was always = 105376.This worked
Created On: 01 March 2012 Problem: A Net Express application that uses Dialog System and was running fine for years is migrated over to Visual COBOL R4 for Visual Studio using the Dialog System Addpack.Now when the applications calls the Dialog System run-time, "DSGRUN" in some cases a Run-time system error 114 will occur.What is the cause of this? Resolution: Look at your screenset file in the Dialog System painter of Net Express. From the Dialog System main menu select Options > Resource Files.Make sure that your filenames are pointing to a location that actually exists. If you have moved to a new machine or placed the Visual COBOL application in a new folder then these path names may no longer be valid.It is recommended that you place application resource files in the output folder of your Visual COBOL project and then use a relative pathname in Dialog System to specify the name in the current folder like ".\\myresource.icn" or .\
Created On: 21 March 2012 Problem: A client was getting the following error when compiling/linking their application programs on AIX 5.3: cob –z progname.cbl ld: 0711-552 SEVERE ERROR: Object progname.o: Csects with symbol numbers 82 and 74 overlap. They had only just upgraded AIX 5.3 with patch level TL12 Service Pack 5 (5300-12 Service Pack 5) - (oslevel -s 5300-12-05-1140) This error occurred for any compile that linked object code (eg .so’s and executables). Resolution: Ultimately this came down to the fact that IBM made changes to the system linker. The client was initially running Server Express 5.1 WP4 on AIX 5.3.0.0 5300-05. They wanted to move to IBM POWER7 processors and so they upgraded AIX to patch level TL12 Service Pack 5 (5300-12 Service Pack 5) oslevel -s 5300-12-05-1140 They were informed that to run AIX 5.3 on POWER7 patch 5300-12 Service Pack 5 needed to be installed. After applying the OS patch, when they compiled and linked their COBOL programs
Created On: 10 February 2012 Problem: A COBOL program is making two calls to a C program and passing a PIC X(20) string as a parameter. The C program moves a value to this parameter beffore returning to COBOL.I found that when I perform two calls to the C program, and the second string returned by C is smaller than the first one, COBOL does not recognize the 0x0 character and shows the two strings overlapped.to a C subprogram.For example:The first call returns 'file11111.txt', and the second 'file2.txt'.What COBOL sees is 'file2.txt txt'.Why is this? Resolution: This is to be expected as a NULL terminated string is a C construct and not a COBOL one. In COBOL a PIC X data item can contain any character including a X"00" (NULL).In order to get the expected results in COBOL you should either initialize the field to spaces before calling the C program or extract the data from the field after the call using something like: 
Created On: 10 February 2012 Problem: When using a GridView control on an ASP.NET web page, is there a way to allow a user to click on any row in the grid and do some processing on the selected line? It seems as if you must generate a select button for each row in order to generate the select event. Resolution: You can cause a GridView to return the SelectedIndexChanged event by adding the following code to the RowCreated event.You must also add the following to the Page header in order to avoid a Postback error:EnableEventValidation="false"When the row is clicked it will send the Select command to the GridView which will cause the SelectedIndexChanged event to fire. Make sure that you have the SelectIndexChanged event wired up to a method in your program as this will be called when the event is fired and then add the following code: method-id GridView1_RowCreated protected.procedure division using by value sender as object e as type Sys
Created On: 10 February 2012 Problem: When using COBSQL to compile code against Oracle 11g as the database the following directives are set in the project:p(cobsql) CSQLT=ORACLE8 CST CSP DIS MAKESYN VERBOSE KEEPCBL END-C p(cp) CONFIRM ENDP ENDP When the code is compiled, the Pro*COBOL precompiler is invoked and the programs compile without error:Pro*COBOL: Release 11.2.0.1.0 - Production on Thu Feb 9 15:32:35 2012Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.The compilation is sucessful and and .obj is produced.But when the linker is invoked to create an executable the following errors are displayed: : error LNK2001: unresolved external symbol _csqlsupp : error LNK2001: unresolved external symbol _ora8lib : error LNK2001: unresolved external symbol _ora8protThe import libraries orasql11.lib and csqlsupp.lib do exist in the link command.Why is this error occuring? Resolution: The cause of the p
Created On: 14 February 2011 Problem: While compiling a COBOL program, the following error message appears: "Ignored - linkcount". For example:cob -C linkcount=2048 hello-world.cbl * Ignored - linkcount(2048) Resolution: The LINKCOUNT compiler directive was a feature of Object COBOL Developer's Suite (an old version of Micro Focus COBOL, withdrawn from service in 2005). The LINKCOUNT compiler directive is not included in Server Express (a newer version of Micro Focus COBOL introduced in the year 2000). If you use Server Express to compile, and if you specify the LINKCOUNT compiler directive, an error will warn you that LINKCOUNT is no longer available. For example: Unix prompt> cat $COBDIR/etc/cobver cobol v5.1.00 PRN=RXCAO/AAB:9p.k5.51.07 PTI=WrapPack 6 PTI=ES PTI=Fixpack51.07_03 Unix prompt> cat hello-world.cbl display "hello". Unix p
Created On: 14 February 2012 Problem: A COBOL program which interoperates with a .Net Assembly returns this error at compile time: prog.cbl, line nn: Verb expected, '(' found Resolution: The error is returned because ACUCOBOL-GT compiler found a MODIFY statement in the source code before of the related CREATE.The reason is that until the CREATE statement is compiled, the compiler doesn't know what type of control the handle refers to and so it can't check the method it's attempting to call. One solution may be to change the source code, moving the CREATE statement block before the MODIFY's.A finest solution is to declare what the handle type is in the working storage section.I.e.: a generic handle definition like this:77 MYASSEMBLY-HANDLE USAGE IS EXTERNAL HANDLE. may be improved this way:77 MYASSEMBLY-HANDLE USAGE IS EXTERNAL HANDLE OF "@assembly[[.namespace].class]". Incident #2555824 Old KB# 3
Created On: 14 February 2012 Problem: The ACUCOBOL-GT C$GETCGI routine retrieves CGI (Common Gateway Interface) variables. The common syntax to use is: CALL "C$GETCGI" USING VARIABLE-NAME, DEST-ITEM, VALUE-INDEX GIVING VALUE-SIZE where VARIABLE-NAME contains the name of the CGI variable that an ACUCOBOL-GT program receives from a HTTP web form. The syntax is easy to use when CGI variables have this structure:[FieldA] => 12345[FieldB] => ABCDEIn these cases, VARIABLE-NAME will contain "FieldA" or "FieldB". Which is the correct value to use in VARIABLE-NAME when CGI variables have sub-items?[FieldA] [SubFieldA] => ABCDE Resolution: A syntax like the following may work, depending on the characters used to identify the sub field in the original web form. In this example, the value to use in VARIABLE-NAME will be FieldA[SubFieldA]:01 WS-VARIABLE-NAME.
Created On: 26 January 2012 Problem: When compiling a Dialog System application you get unresolved external symbol errors similar to:error LNK2001: unresolved external symbol _DSSETFOCUS error LNK2001: unresolved external symbol _DSGRUN error LNK2001: unresolved external symbol _DSDELWIN Resolution: You should ensure that the COBDIR and PATH environment variables are set to:PATH = C:\\Program Files\\Micro Focus\\Net Express5.1\\BinCOBDIR = C:\\Program Files\\Micro Focus\\Net Express5.1\\BinThe path to these environment variable may differ depending on whether you changed the directory when install Net Express or if you have a 64 bit system (i.e. it would be C:\\Program Files (x86)...It is also possible that this is caused by the LITLINK directive. If you have this directive set please remove it you do not need to resolve literals at link time rather than run time. Incident #2551160 Old KB# 35415
Created On: 24 January 2012 Problem: When running the Net Express projmake utility from a batch file the errorlevel check is not failing when a program error is encountered.Using the following in the batch file:projmake -buildall testproj.appif errorlevel 1 goto errorsgoto end:errorsecho "Error encountered":endecho "Done"Why, when an error occurs it is not branching to errors label? Resolution: The problem is that the projmake utility does not set the errorlevel directly based on if an error occurs somewhere in the build. Instead projmake just runs the cobol and cbllink utilities individually for each program in the project.If an error is encountered on the compile of the first program then cobol will set the errorlevel accordingly by moving the return code into a register.If this is the only program being compiled or it is the last one being compiled then it will seem like the errorlevel is being reported correctly beause the errorlevel will still
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.