Has anyone successfully converted Microfocus NetExpress Cobol with imbedded SQL (pre compiled with Pro*COBOL) to NetCobol.net from Fujitsu?
Can you point a novice (in COBOL) to a valuable place to look for help?
Thanks
If it were to be done then it probably should not be done by a novice
in COBOL.
One restriction is that the SQL catered for in Fujitsu COBOL is only
what the Fujitsu manual specifies is valid which is not the complete
SQL syntax, nor the complete ODBC. In particular it allows: CONNECT,
DISCONNECT, SELECT, DELETE, UPDATE, INSERT, OPEN, CLOSE, FETCH; but
not, for example CREATE or DROP.
If the Microfocus COBOL has SCREEN SECTION or ADIS (Accept Display
CRT) then it may be difficult (or impossible) to get the user
interface working the same way.
There are many Microfocus-isms that are not supported by Fujitsu.
I have done some MF -> Fujitsu conversions, but not .net.
Migration tools are available to automate most of what you will need to do.
Understand that moving to NetCOBOL.Net may not be a good long term move.
Pete.
--
"I used to write COBOL...now I can do anything."
I recommend that you look at the Prima Computing link that Pete
Dashwood provided.
In addition to Richard's comment about the differences between the two
compilers' implementations of SQL, please be advised that the PREPARE
and EXECUTE instructions allow FUJITSU to PREPARE a SELECT which is
EXECUTED with additional clauses added in the EXECUTE statement
whereas the MicroFocus implementation does not allow the EXECUTE
statement to specify additional clauses on the SELECT eg:
PREPARE select......
EXECUTE prepared-statement WHERE ABS = "sdf"....
would be allowed by Fujitsu and disallowed by MF.
We mostly want to move away from MF runtime license fee requirements and some conversion requirement we see from MF are unfeasible for us.
I do wonder why you think it's not wise to move NetCOBOL.net from Fujitsu?
Thanks
Saurabh
It's like having a baby: The project will be long, fraught with worry,
uncomfortable, and even painful.
But it's WORTH it.
There is nothing wrong with the product; like the Micro Focus Visual COBOL
it is excellent.
The fact is you simply don't need it. These compilers represent an expensive
investment in a Language that you are trying to move away from.
If you are moving to .Net there are FREE .Net languages which do the job far
better than ANY version of .Net COBOL. (C#, VB.Net) because they have been
designed for .Net. (COBOL obviously hasn't.)
But it goes deeper than that. The COBOL paradigm is just wrong for a
networked solution like .Net. The network needs OBJECTS (and layers); COBOL
is NOT good at that.
It isn't that you CAN'T do it, it is just not the best way to do it. (You
CAN start a fire by rubbing two sticks together...when was the last time you
did that :-)) .Net COBOLs do support objects, but it soon becomes apparent
that the .Net languages do so better. (And quicker, and cheaper.) .Net COBOL
is therefore not a good long term investment.
However, most companies have a large investment in COBOL code which they
really don't want to throw away. (Some companies are happy to bite the
bullet and go for a completely new solution, but it all comes down to costs
and risks and is really an individual decision; there is no "one size fits
all.")
Based on my own experience in moving my own company's software to .NET I
developed tools that can automate the process. You can use your existing
COBOL compiler to refactor your COBOL code and wrap it in InterOP services
so it runs fine under .Net. All your new development would be in a .Net
language (we recommend C#, and we use it ourselves) and both the Legacy code
and the new code work as objects sharing the same database (which is
generated, along with a set of Data Access Layer Objects, by the PRIMA
Toolset.) Everything in the new environment is objects, and the legacy code
is automatically modified by our tools so it can also use the DAL objects.
In this way, everything plays nicely on the .Net playing field, the legacy
is brought into the same game (which buys you time to phase it out and
replace it), and you move to a 21st century implementation of your
applications. You are no longer tied to COBOL, though you CAN continue using
it if you want to.
PRIMA is unique in that we don't just move COBOL onto a different platform;
we actually re-factor it so it can work in the way that platform is designed
to work, and so that it won't degrade the performance of new applications
being developed in new languages for that platform.
You can use the existing COBOL compilers from Micro Focus and Fujitsu (which
are also excellent products, and very much cheaper than .Net COBOL; in fact,
if you are a "COBOL shop" you probably already own one of them...) to lever
the existing COBOL investment into .Net.
Our Toolset automates the following processes:
1. Creation of an optimized Relational database in second or third Normal
form, fully loaded with all of your existing data which is currently held on
indexed files. (The load programs are generated by the Toolset and can be
easily amended if required to filter old data that is no longer required for
the new database. Mostly people don't amend them, but we have had clients
who did and were glad of the facility. They are generated in COBOL so your
existing programmers can amend the load logic easily if you want to do that.
There is a video of this process on the PRIMA site at:
http://primacomputing.co.nz/COBOL21/demosandtutorials.aspx
(Take the 5 cent tour...)
Other videos explain more conceptual background as to why we use the
approach we do, and give more detail about the Data Conversion process.
Data and Code Conversion are steps on the way to complete Migration.
2. The creation of a separation layer between your applications and the new
database. Applications have all the existing COBOL code to do indexed file
access removed from them and it is replaced by invokes of DAL object
methods. This is all fully automatic. The COBOL legacy runs exactly as it
did before, but now it is using the new database. This means there is no
need for overnight batch runs to synchronise legacy files with the database,
and it means that new development can access the legacy data immediately.
We are currently looking at tools to separate the presentation layer for
things like PowerCOBOL and legacy that uses DIALOG/Panels or COBOL Screen
Section, and more tools to refactor COBOL processes from called and
performed modules and subroutines.
Our commitment is to leveraging COBOL legacy into a true Object Oriented
environment and enabling it to run there alongside, and exactly like,
applications that were built for that environment from scratch.
We don't see COBOL as a long term solution for the .Net environment, and
that is why I wouldn't recommend people to buy an expensive .Net COBOL
compiler. (The PRIMA Migration Toolset costs around half what the Fujitsu
.Net Compiler costs...)
There is much more than I can go into here and I don't want to use this
forum as a sales platform. You asked a question, I have tried to answer it,
but PLEASE browse COBOL21 and PRIMA sites, see the processes in action, and
if you want to discuss anything about our approach or have questions
regarding it, post here or mail me privately. Both sites have links to this
newsgroup and we give away stuff which many people have found useful.
The fact is that getting the best from COBOL legacy involves a lot more than
a platform migration.
Until your kid grows up, gets into drugs and violence and then becomes a
serial killer... :-)
What's the matter, Mr Dashwood... embarassed at the thought of having your
progeny join the constabulary?
DD
Alistair is right, and there are quite a few differences, dynamic SQL being
only one of them.
Sadly, different RDBMS can respond differently to dynamic SQL, too.
I found out yesterday that some dynamic SQL which works fine on two RDBMs
returns an S1000 SQLSTATE on another. I fixed it by swapping connections in
the code, but it is annoying.
Fortunately, if there is no SQL in your applications, (we move it all out to
a separate Data Access Layer) it is pretty easy to deal with annoyances like
this, and know that it won't affect your application.
I was at a Microsoft developers monthly meeting last night and they had a 2
hour video of windows 8 and items of interest to developers.
The whole ida of preferred computer programming languages will become moot.
I saw Metro applications for win 8 which were written in HTML5 and
Javascript. The same apps could have been written in Silverlight, or C++, or
C# or VB or anything they support and the results would be exactly the same.
(Sorry, COBOL is not in the club...)
Instead of Visual Studio supporting your language of choice, you just decide
what you want to use today and you can mix and match whatever you want. (I
think MS were very conscious of the existing skillbase and the preferences
programmers have. In effect, you can leverage whatever skill you currently
have into Metro very easily.) Your finished application will run on ANY
windows platform (desktop, web, mobile, tablet, whatever...) It is acheived
because there is now a windows Run Time (win RT) which can be used by ANY of
the supported languages. Rather than a series of APIs it is simply Classes
that become objects you can use. None of it was particularly earth
shattering but it was a logical progression from .Net. They are guaranteeing
compatibility so .Net applications can run as they are or can be rewrapped
as Metro. It all looked like fun and I will load a copy of the pre-release
onto a virtual machine and try some of it as soon as I get some time.
The great "leveller" in all this is XAML. All of the languages will generate
XAML and visual Studio is being enhanced to provide more XAML manipulation
tools. It was quite impressive to see three lines of XAML connecting to
Facebook and dragging images back to a phone or desk. A lot of tedious stuff
with connections and so on is now abstracted into the RT and just becomes a
method invoke.
I like using C# code-behinds for web pages (and I still will be able to).
But now I can pass those same pages to Visual Studio and have them
re-invented to use the Metro UI (this is a tiled interface and it is pretty
sexy).
"Programming" has come a long way.
I have a young friend who is seriously considering joining the Police force
at the moment. He is a good decent kid with a genuine desire to do something
worthwhile. His mother is having a fit and I am being very careful not to
say anything that could be used against me... :-)
To be honest, there is part of me that wants to see him succeed and do what
he aspires to, but there is another part that says it is too risky. I don't
mean risky in the sense of cops being in danger from the public; I mean
risky in the sense of him having all the decency knocked out of him by other
cops...
I have the utmost respect for people in Law Enforcement and wherever I can,
I support them. ("If you don't like Cops, next time you're in trouble, yell
for a Hippie...")
But I also read the papers...
>To be honest, there is part of me that wants to see him succeed and do what
>he aspires to, but there is another part that says it is too risky. I don't
>mean risky in the sense of cops being in danger from the public; I mean
>risky in the sense of him having all the decency knocked out of him by other
>cops...
And we certainly are better off when some of the best people succeed
at becoming good cops.
--
"In no part of the constitution is more wisdom to be found,
than in the clause which confides the question of war or peace
to the legislature, and not to the executive department."
- James Madison
[snip]
>> What's the matter, Mr Dashwood... embarassed at the thought of having
>> your progeny join the constabulary?
>
>I have a young friend who is seriously considering joining the Police force
>at the moment. He is a good decent kid with a genuine desire to do something
>worthwhile. His mother is having a fit and I am being very careful not to
>say anything that could be used against me... :-)
>
>To be honest, there is part of me that wants to see him succeed and do what
>he aspires to, but there is another part that says it is too risky. I don't
>mean risky in the sense of cops being in danger from the public; I mean
>risky in the sense of him having all the decency knocked out of him by other
>cops...
>
>I have the utmost respect for people in Law Enforcement and wherever I can,
>I support them. ("If you don't like Cops, next time you're in trouble, yell
>for a Hippie...")
>
>But I also read the papers...
I've not only read newspapers, Mr Dashwood; I've also socialised with
officers ranging from the rawest recruits to the Faces in the Local
Newspaper. My conclusion is that if there is a sub-set of society that
loves putting on clothing that makes them a target in the eyes of others,
strapping on a gun, a club and running up stairs to break down doors and
look for trouble...
... then - as a taxpayer - I'd much rather folks belonging to this sub-set
be on my payroll.
'Whoever fights monsters should see to it that in the process he does not
become a monster.' - F Nietzsche, 'Beyond Good and Evil', 147
DD
Ah, that explains me. I spent eight years as a cop. You're right about the
physical danger - it's almost non-existent. In every city, trash collectors
get injured on the job far more than firemen and firefighters get injured
more than cops. Cops are down with secretaries in one-the-job injuries.
Being a cop is much like being a Boy Scout with a gun. You seldom see the
perpetrators, but you ALWAYS see the victim.
Cops do develop a gallows humor.
People are funny. In a stressful situation, the demeanor of calm vanishes
and they get even funnier. Ask any cop, ambulance driver, firefighter, or
emergency room worker. Here's an example:
Dispatcher: '532'
Unit 532: '532 go.'
Dispatcher: '532 check a report of nude, black female running across the
Highway 90 bridge at this time'
Unit 532: '532 clear. Enroute'
(about a minute goes by)
Dispatcher: '532'
Unit 532: '532, go'
Dispatcher: '532, have additional information on your nude, black female.
She is reportedly being pursued at this time by another black female with a
knife. Handle code 3'
Unit 532: '532 clear (sound of siren in background)'
The story goes no further. I purposefully never inquired into the facts of
the case. Whatever they were, they couldn't be as good as my imagination.
(Completely unlike the call I got "... two white females with chain-saws
involved...".)
Anyway, until you get a traffic violator that tells you "Hey, man, I didn't
know you was the fuzz. I thought you was just a couple of ordinary turds,"
you can't appreciate how some people just beg to be jailed.
Come to think on it, my sense of humor, finely honed as a deputy sheriff,
may be the reason I'm shunned.