Software Development With Natural
Software Development With Natural
Karlheinz Kronauer
Natural Concepts
Language concepts
Working modes with Natural (Mainframe, Open Systems)
The Natural Program - Structure, Data and Object Types
Database Access in Natural
NaturalONE
Programming languages extract
http://people.mandriva.com/~prigaux/language-study/diagram.png
1985
Established First Platform
Independent Language 2002
1969 Natural, 2000 Natural Development 2010
Software AG founded Predict Natural Engineer Server Unix and Linux Natural ONE
3GL 4GL
COBOL Natural
PL/1, REXX Focus, CA IDEAL, Progress 4GL
This program demonstrates the text output This program demonstrates the text output
function of the ALGOL programming function of the NATURAL programming
language language
This code runs on a Unisys (Burroughs) A- This code runs on Mainframe, Unix and
series mainframe. Windows machines
----------------------------------------------------------- -----------------------------------------------------------
Source Code Source Code
// this is a comment /* this is a comment
complex
DECLARE procedural
CURSOR ABC WHERE
SELECT ENAME; ENO SAL
SQL coding
FROM declare cursor / open / fetch
EMP *
WHERE SAL > ZSAL FIND XYZ WITH SAL > ZSAL
simple NATURAL command
AND ENAME = SMITH AND ENAME = SMITH
WITH HOLD.
FIND
END EXEC .
/* . . . normal processing
A Cobol program is . 20 timesEND-FIND
longer than a Natural program
EXEC SQL. (NATURAL)
Natural
OPEN ABC. programs are easy to use and to maintain
END EXEC.
LOOP. No command-level CICS programming skill required
EXEC SQL.
FETCH ABC INTO :XEN, :XEM :XSAL.
END SQL.
IF SQLCODE NOT = ZERO
GO TO END_LOOP.
.
normal processing
.
GO TO LOOP.
END-LOOP. (COBOL)
2 May 2011 | Software AG - Get There Faster | 8
COBOL vs. NATURAL ( VSAM Example )
PROCEDURE DIVISION.
*
Coding CICS/VSAM Syntax
SRCH-INIT.
MOVE SNAMEC TO BRKEY-SNAME, MAX-SNAME.
complex
MOVE procedural
LOW-VALUES EXEC CICS coding
TO BRKEY-ACCT.
SRCH-RESUME.
start browse / read next / end browse
EXEC CICS STARTBR FILE('ACCTIX') RIDFLD(BRKEY) GTEQ
simple NATURAL command
RESP(RESPONSE) END-EXEC.
IF RESPONSE = DFHRESP(NOTFND) GO TO SRCH-ANY.
FIND
IF RESPONSE NOT = DFHRESP(NORMAL) GO TO Find ACCTIX with BRKEY =
OTHER-ERRORS. aaaaaa
ASRCH-LOOP.
Cobol program is 20 times longer than a*** Natural
normalprogram
processing ***
EXEC CICS READNEXT FILE('ACCTIX') INTO(ACIXREC)
Natural programs areRIDFLD(BRKEY)
LENGTH(ACIX-LNG) easy to use and END-FIND
to maintain END-EXEC.
RESP(RESPONSE)
IF RESPONSE = DFHRESP(ENDFILE) GO TO SRCH-DONE.
No command-level CICS programming skill required
IF RESPONSE NOT = DFHRESP(NORMAL) GO TO OTHER-ERRORS.
GO TO SRCH-LOOP.
SRCH-DONE.
EXEC CICS ENDBR FILE('ACCTIX') END-EXEC.
*
2 May 2011 | Software AG - Get There Faster | 9
Success Driven by Customer Confidence
Police Bavaria
Apollo Optik
London Police
Travelba, Lexcom
Ease of maintenance
Terminal
Online/OLTP
Web
Applications
Browser
DB
Web Web/Application
Server
Online/OLTP
Applications
Windows Windows
(Fat-Client) Applications
DB
Batch
Applications
Natural
Natural Syntax is 4 GL
High level syntax elements
Hiding Complexity
Language enhancements for all platforms
Unicode Support
Natural SQL
DML
Database
Interface
HISTOGRAM
FIND PROCESS
GET SQL
STORE
UPDATE INSERT
DELETE UPDATE
DELETE
END OF TRANSACTION
BACKOUT TRANSACTION COMMIT
ROLLBACK
Map
Editor
Program Data
Editor Editor
DDM
Editor
Dialog Layout
Editor/Wizard painter/AJAX
Command ===>
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
Help Print Exit Sort -- - + ++ > Canc
MENU (SRC)
0010 Error in ...
FUSER
SAGTOURS
SAGTOURS
MENU (OBJ)
MENU (SRC) ERR 0010 Error in ...
0010 Error in ...
GP MENU (OBJ)
Application
Editor
Maintenance
Debugger Existing Natural
Documentation Application Developer
DB Schema
Data Browser Application
Natural
Young IT Professionals
Modernization and Students
EntireX
Adabas
DB2 End-Users
New
Applications
Goal Goal Goal
Data Natural
Edit
Browsing
Utilities
Debug Help Predict
Schema
Test Generation
Document Map Editor
Mainframe, OpenVMS
Remote
Development Natural Development Server & Runtime
NaturalONE
Local Development and Runtime
UNIX, Linux, Windows
Developer Community
New NaturalONE Forums
New Community Sites
Natural
Runtime Platforms
Developer Community
Data browser
Major Enhancements
AJAX enhancements
New Design features for web pages
Local and server side scrolling
BLOB support for AJAX Applications
Edit mask support
Major Enhancements
Major Enhancements
Predict support
Consider Predict information redefines and array boundaries while
including data fields from a DDM
Edit/Display Predict documentation NaturalONE navigator view/editor
Major Enhancements
Switch automatically
visibility on user Input
Enter data (here First
Name) and Save
button becomes
visible
BLOB Support
At Design Time
And at Runtime
Familiar Wizard
interface with all
the options of
Construct
Uses Eclipse
standards
Protected Editor
Lines for
Generated Objects
(read-only)
Outline View
supports
navigating and
generating Exits
Dependency view
shows related Dependency
objects including View shows
Construct runtime
related objects
including
Generates NATdoc Construct
automatically and runtime
links to NATdoc for
runtime Generates
NATdoc
automatically
and links to
NATdoc for
runtime
Mark all
occurrences
of a field
NaturalONE Debugger
NaturalONE Debugger
Natural source
program called not
found
Option, to download
from server
NaturalONE Debugger
Natural program is
now in NaturalONE
project
Consistency Check
Parallel
development in
server (e.g.
mainframe) libraries
and NaturalONE
NaturalONE
Documentation view
Documentation
during development
time
Navigate through the
documentation view
Changes in program
documentation
directly appear in
the view
Maintaining Natural
Windows dialogs
from NaturalONE
Editing, testing,
execution
Import information
from Predict
Redefinitions
Edit masks
Array boundaries
Edit/Display Predict
Descriptions
In Navigator view
Read/Update Fdic
on server
New in Developer
Community
Now in NaturalONE
Command View
Output in NaturalONE
output window
Command View
Planned Availability