Вы находитесь на странице: 1из 15

What is access path? How many types & explain each.

Access path is path through which you can retrieve records. There are 6 types of access path is
supported by SYNON. By default Synon creates 3 access path namely Physical, Update and
Retrieve access paths.

1. ‘PHY’: Physical file: Arrival sequence access path defining the based-on file. For a given
AllFusion 2E file there may only be one access path of type PHY - the path will automatically be created by AllFusion
2E.

2. ‘UPD’: Update: Access path used for update. Path is keyed on AllFusion 2E fields that identifythe file. For a given
AllFusion 2E file there may be several different access paths of type UPD, each containing a different combination of
fields. A default update path containing all fields will automatically be created by AllFusion 2E.

3. ‘RTV’: Retrieval: Access path used to retrieve records from file. The key order cannot be
changed. For a given AllFusion 2E file there may be many access path of type RTV - a default path, keyed on the
identifying fields for the file, will automatically be created by AllFusion 2E.Each ‘RTV’ access path has an associated
'UPD' access path.

4. ‘RSQ’: Resequence: Access path used to retrieve records from file using an alternative key order. For a given
AllFusion 2E file there may be many access paths of type 'RSQ'.

5. 'QRY' : Query: Access path used to retrieve records from file using an alternative key
order which may include virtual fields. For a given AllFusion 2E file there may be many
access paths of type 'QRY'.

6. ‘SPN’: Span: Access path used to span several different files using an alternative key order.
For a given AllFusion 2E file there may be many access paths of type 'SPN'

How many ways you can pass a parameter?

You can pass a FLD, RCD, and KEY as a parameter

What are the roles of parameters?

a) Position – is equal to setll in RPG.


b) Restrict – is equal to CHAIN & READE opcode in RPG.
c) Vary – the length will be vary when you call user written program
d) Map – it map the attribute and lengths of the target field

How many types of parameters are there?

There are 4 types.


a) Input- it pass value and the final value will not returned
b) Output – it won’t pass value but it receive value
c) Both – it do both a & b
d) Neither – it won’t pass and it won’t return any value.
Can you pass a parameter with type = (VRY) while calling EXCUSRSRC & why?

We cannot pass a parameter with VRY type when we call an EXCUSRSRC. Because USRSRC is a internal function,
while compiling the PGM, it may give length mis-match error will come.

What is the use of function option?

Using this you can activate “Confirm prompt” Prompt, passing initial value to the prompt,
commitment control, send error message, copy the message back to the previous PGM message queue, reclaim the
resource, closing the program, bypass key screen etc

How to use execute user source and to use parameters in this function?

Execute user source specifies user written high level language source code is to be included within source code
generated by a calling function. If the external source is RPG, then it should be in QRPGSRC. If it is a COBOL
program, it should be in QCBLSRC. The parameters should be 6 characters long. The first character to be #,
followed by I [Input] / O [Output] / B [Both] that last four characters being user defined. Indicators should not be
conflicting.

What is CUR and NXT contexts used in PRTFIL and PRTOBJ functions?
NXT: The NXT context defines a context relative to the CUR context of AllFusion 2E report
functions: the NXT context contains the fields which are in the report format one level break
higher. (See section on the CUR context for an explanation of report formats.) It can therefore be used to specify
that the result of An AllFusion 2E field function (SUM, MIN, MAX, etc) is to be placed onto an appropriate report
total format.
The NXT context may be used only for result fields.
CUR: The CUR context contains all the fields which are in a given report format of A AllFusion 2E report function.

How is a print object function linked to a print file?

A print object function is linked to a print file by typing the line command T on the panel for the print file to see the
structure of the print file. In that, insert print object function using IA or IB.

What is the difference between PRTFIL & PRTOBJ?

PRTFIL is an external function, which specifies a complete report.


PRTOBJ is an internal function type, which specifies a segment of a report for inclusion with in another report
function.

What is Print File function?

Print file function allows you to print all the records from a file. We can specify 13 levels of totalling. Maximum of 13
print objects [PRTOBJ] can be used within a print file. Control breaks are defaulted based on the number of keys
specified

What are the Elements the panel design has?

A panel design has been divided into 3 ways.


1. Multiple record function (EDTFIL, DSPFIL, SELRCD)
It has Standard Header, Subfile control, Subfile record, Standard footer
2. Single record function (EDTRCD, 2, 3, DSPRCD, 2, 3, PMTRCD)
It has Standard Header, Key Screen, Detail Screen, and Standard footer
3. Transaction function (EDTTRN, DSPTRN)
It has Subfile Standard header, Control, Subfile record, Standard footer

What are a Message function and its type?

It is a type of function, using this we can send messages to Workstation using synon/2e. The message function has
a. Send error message (using this we can pass a error message to the message queue)
b. Send information message (using this we can pass a information message to the message
queue)
c. Send completion message (when a job is completed this message will appear)
d. Send status message (it gives information about the long running program’s status to the
message queue)
e. Retrieve message (it retrieve a message from message file to the function, using this you can concat even 2
database fields)
f. Execute message (Request message to be executed by the calling function)

What is Function field?

A function field is a field whose value is not physically stored in database. But is derived from other fields or files.
Using this we can,
a. SUM
b. Maximum
c. Minimum
d. Count
e. Derived
f. User

What is Built in function and give some examples?

Using Built in function, you can do all arithmetic operations, string manipulations and control operations like
Commit and rollback.
*ADD
*SUB
*COMMIT
*COMPUTE (Using this we can do all arithmetic operations like add, sub, mult & div)
CONCAT (It joins 2 string with the conditions (*none = no blanks, *one = leave one blank, *all =
leave all blanks))
*CVTVAR (It just converts the value of one type to another type)
*DATE DETAILS (It gives the date details like day of week, day of year, *month, leaf year etc)
*DATE INCREMENT (Using this we can add quantity of a given date and find out new date)
*DIV
*DIV WITH REMAINDER (Remainder value will move to another value)
*DURATION (It calculates duration between 2 dates)
*ELAPSED TIME (It calculates time (HH, MM, SS, MS) between 2 given time)
*EXIT PROGRAM (Leave)
*MODULO (It gives only remainder value)
*MOVE
*MOVE ALL (Move value (even constant) to variable(s))
*MULT
*QUIT (It is like a goto statement in RPG, it leaves from the entire action diagram)
*ROLLBACK (The changes will not be reflected when you use *ROLLBACK)
*RTVCND (It specifies that the name of a given condition is to be retrieved into a function field)
*SER CURSOR (It is equal to cursor position keyword in SDA)
*SUBSTRING (Using this we can take a part of string from the base variable)
*TIME DETAILS (It is similar to date details Built in function)
*TIME INCREMENT (Using this we can add a quantity to a given time)

What is User function & types?

Using this function, you can incorporate User written programs and subroutines into the Synon/2e generated
applications. You can include these functions inside the action diagram or User written
HLL.
a. Execute internal Function
b. Execute User Source
c. Execute External Function
d. Execute user program

What is Device function & types?

Device function is a function, using this you can design the Panel (Workstations) and Report
design. It has both internal and external functions.
a. Print object
b. Display record
c. Display record 2 panel
d. Display record 3 panel
e. Prompt record
f. Edit record
g. Edit record 2 panel
h. Edit record 3 panel
i. Display file
j. Edit file
k. Select record
l. Display transaction
m. Edit transaction
n. Print file

What is standard function and types?

Standard functions specify the program and subroutines. User can write his won codes in the User
point in the action diagram.
a. Database functions
b. Device functions
c. User functions

What are the default functions created for REF and CPT file?

REF File: Create object, Change object, Delete object, Edit file and Select record
CPT File: Create object, Change object and Delete object
How do you delete a access path which is referred by some other access path?

We cannot delete an access path which is referred by some other function/access path. If you want to delete, you
have to remove the (REF) relations then delete.

What does the term Involution mean in relationship to entities?


Involutions specify whether the connection exists between the entity and itself. It is also called as self-reference.

How many ways, you can lock an access path?

Temporary lock – when PGMR open the function/access path, that function will be locked temporally.
b. Permanent lock – if the Designer has Object Ownership authority, he can implement permanent lock

What are the Access Path auxiliaries for query Access path?

Access Path auxiliaries are the three different OS/400 objects used to implement a query access path. They are
logical file, physical file and control language.

What is 'Access Path Selection’?

Access Path Selection is the process that specifies which records from a file are included in the Access Path.
Selection is made up of a number of select / omit criteria, each of which are based on one or more conditions.
Static Selection: is built into access path.
Dynamic Selection: is not built into the implementing OS/400 access path, but it is applied at run time. Dynamic
selection is less efficient than static selection, but may help to reduce the number of
OS/400 access paths that are required.

While generating QRY access path how many members being created.

For mapping it creates Physical file (PF), Logical file and it creates a QRY in CL program.

Using which access path you can define a virtual field as a key?

Using QRY access path we can add virtual field as key.

What are the access paths will allow changing the key order?

RSQ, QRY and SPN access path will allow changing the key order.

What is access path? How many types & explain each.

Access path is path through which you can retrieve records. There are 6 types of access path is
supported by SYNON. By default Synon creates 3 access path namely Physical, Update and
Retrieve access paths.
1. ‘PHY’: Physical file: Arrival sequence access path defining the based-on file. For a given
AllFusion 2E file there may only be one access path of type PHY - the path will automatically be
created by AllFusion 2E.

2. ‘UPD’: Update: Access path used for update. Path is keyed on AllFusion 2E fields that identify
the file. For a given AllFusion 2E file there may be several different access paths of type
UPD, each containing a different combination of fields. A default update path containing all
fields will automatically be created by AllFusion 2E.

3. ‘RTV’: Retrieval: Access path used to retrieve records from file. The key order cannot be
changed. For a given AllFusion 2E file there may be many access path of type RTV - a default
path, keyed on the identifying fields for the file, will automatically be created by AllFusion 2E.
Each ‘RTV’ access path has an associated 'UPD' access path.

4. ‘RSQ’: Resequence: Access path used to retrieve records from file using an alternative key
order. For a given AllFusion 2E file there may be many access paths of type 'RSQ'.

5. 'QRY' : Query: Access path used to retrieve records from file using an alternative key
order which may include virtual fields. For a given AllFusion 2E file there may be many
access paths of type 'QRY'.

6. ‘SPN’: Span: Access path used to span several different files using an alternative key order.
For a given AllFusion 2E file there may be many access paths of type 'SPN'.

What are the sharing options available for Owned By relation and Explain?

*NONE and *ALL


*NONE is specified for the "Sharing" parameter, then a separate entry will be added to the file for the field.
*ALL is specified for the "Sharing" parameter, then no additional entry is created: the existing entry is shared. This
is the default action.

What type of Relations will have the Virtual Fields?

File to File Relations: Owned by, Includes, Refers to and Extended by relations.

How is qualified by implemented?

Qualified by is a key relation. It is used to qualify a file identifier by one or more variable factors. It is used to get
the nearest, previous or next nearest record based on whether *NEXT or *PREV is specified. The field redirection
should be done in the referring file. The *NEXT is implemented as SETLL and READ. The *PREVIOUS is implemented
as SETGT and READP.

Define File to Field relations and explain each?

Field Relations is used to describe the key as well as non-key attributes of a file.
Known by: define a key attribute of a file.
Qualified by: define a key attribute for a file
Has: define a non-key field for a file

What is the difference between Known by and qualified by?

Known by - It requires exact key match.


Qualified by - doesn't require exact key match, it will return either a previous or next value

What is the difference between Refers to and Owned by relation?

Owned By - Implements the parent child relationship. The key field of the owning file becomes a
primary key of the owned file.
Refers to - the key field of the referring file become the non key attribute of the referred file.

What is the difference between REF and CPT files?

REF file is like a master file. CPT file is like a transaction file.
How many types of files are available in Synon/2e?

There are 4 types of files are available.


Data Base Files:
1. REF – Reference file (Master file): The REF AllFusion 2E file type should be given to AllFusion
2E files that contain basic reference data that is used by the application.
2. CPT – Capture file (Transaction file): The CPT file type should be given to AllFusion 2E files
that contain transaction data that is regularly captured for use by the application.
Non- Data Base Files:
3. STR – Structure file: The STR file attribute should be given to files that define data structures
for use by functions in the implemented system.
4. RCD – Record file: The RCD file attribute should be given to files that define data structures for
use by programs in the implemented system.

Name 3 important design concepts of SYNON/2E?


1. Implementation independence
2. Data driven design
3. Object - based design

What does the term Cardinality mean in relation to entities?

Cardinality specifies whether the connection is one to one, one to many or many to many.

What is a DOMAIN?

The set of possible values an attribute can take is the 'domain' of the attribute.

Which modelling method does SYNON/2E use?

ENTITY - RELATION modelling method

What are Virtual fields ?

Virtual fields are logically present in one file and physically present in another file. This is valid only for OWNED BY
and REFERS TO relation types

What is the Use of FOR TEXT ?

It is used to further clarify a relationship. Owned by, Qualified by and Refers to can only have the FOR TEXT. To
prevent duplicate fields SYNON uses the FOR TEXT if present or the Surrogate number

Types of file relations?

FILE TO FILE FILE TO FIELD


Defined as Known by - key
Owned by - Key Qualified by - key
Refers to - ATTR Includes - ATTR
Extended by Has - ATTR

Defined as: Declaration that the file exist and created implicitly by SYNON
Known by: Specifies that the field is a key field. There can be more than one known by relation
Owned by: Defines a parent and child relationship, Eg., Order header and order details (parent key will be copied to
the child)
Qualified by: This is a key relation used to qualify a file identifier by one or more variable factors. This is used to
find out a close match (Eg., rate, discount, data, etc.). If no redirection is specified it is similar to KNOWN BY
Refers to: Specifies a file refers to another file (Foreign key)
Includes: A file is to include all the fields that have been declared in the structure file
Extended by: Declares a file to be an extension of a file relation. It gives an association between one to one or one
to none. Will work only if it is OWNED BY in the second file
Has: Declares a field to be present in a file
RELATION SEQUENCE AT THE TIME OR RESOLVING
Defined as, Owned by, Qualified by, Extended by, Refers to, Has, Includes

What are the different types of contexts?

Types of contexts
1. DB contexts: DB1 & DB2
2. Device contexts: CTL, RCD, DTL, 2ND, 3RD, CUR, NXT, KEY
3. System contexts: JOB, PGM
4. Program contexts: PAR, WRK
5. Literal contexts: CON, CND

Copy back messages?

Copy back messages specifies whether any messages outstanding on the programs message queue is to be copied
back to the previous programs message queue when the program terminates

How to use commitment control in SYNON?

Commitment control can be implemented by specifying our option in function options. There are three options
available viz.

1. MASTER - By choosing this option the program will run under commitment control. This program will contain
appropriate commit points which will be defined in the SYNON supplied program Y2BGCTL

2. SLAVE - The program will run under commitment control. No automatic start or commit points are included.
Commit points can be added using commit built-in function

3. NONE - The program does not run under commitment control. Hence, there are no commit points.

Note: Physical files running under commitment control must be journalized

What are function options close down program & reclaim resources?

Close down program: Specifies whether the last record indicator is to be set on when the program finished
execution. If, 'Y' is specified, all files are closed and the program is shutdown. If blank, all files remain open and a
subsequent call will be faster and perform a full program execution. In either case, all internal variables are
initialised to blanks and zero on each call.

Reclaim resources: The OS/400 command RCLRSC is to be invoked when the program completes execution. The
command closed down any other program, files that have been called and/or opened by the program thereby
reallocating their storage. Reclaim resources is valid only on external function. This does not support COBOL
programs
What are the various access path maintenance methods?

The various access path maintenance methods are:


1. IMMED updates the changes immediately,
2. DELAYED Changes are logged and the access path updates when the file is
opened. No rebuilding is done,
3. REBUILD Access path is rebuilt when the file is opened again

How is qualified by implemented?

Qualified by is a key relation. It is used to qualify a file identifier by one or more variable factors. It is used to get
the nearest, previous or next nearest record based on whether *NEXT or *PREV is specified. The field redirection
should be done in the referring file. The *NEXT is implemented as SETLL and READ. The *PREVIOUS is implemented
as SETGT and READP.

Print File function?

Print file function allows you to print all the records from a file. We can specify 13 levels of totaling. Maximum of 13
print objects [PRTOBJ] can be used within a print file. Control breaks are defaulted based on the number of keys
specified.

Define Execute user program?

Execute user program is a connection between a HLL user written program and SYNON function. Neither parameter
is allowed. Parameter passing is normal

What is execute message function?

Execute message function allows a request message to be executed by the calling program. The command is
entered in the second level message. The message type should be "EXC". Override functions are not possible. For
Open query [OPNQRY] and open database [OPNDBF] you should specify a value of the *PERM to prevent closure of
file

How to use execute user source and to use parameters in this function?

Execute user source specifies user written high level language source code is to be included within source code
generated by a calling function.
If the external source is RPG, then it should be in QRPGSRC. If it is a COBOL program, it should be in QCBLSRC.
The parameters should be 6 characters long. The first character to be #, followed by I [Input] / O [Output] / B
[Both] that last four characters being user defined. Indicators should not be conflicting.

Define execute internal function?

Execute internal function allows you to specify a portion of your action diagram that can be used repeatedly.
Implemented as a macro function internal source code in calling function. No access paths can be attached

Define execute external function?

An Execute External Function:


* Allows you to specify a high level program using an action diagram.
* Is implemented as a separate program
* Has its own action diagram.
* Can be attached to RTV/RQS/UPD access paths
What are the two types of indentation specifications for PRTF functions?

1. Relative
2. 2. Absolute

Can you pass a parameter as restricted for a print file?

Yes. But should start from the primary key.

Name any two function field types related to PRTFIL?

CNT, SUM, MIN, MAX

Name any two PRTFIL related contexts?

TOP, CUR & NXT

What is the maximum number of PRTOBJ functions that can be added to one PRTFIL
function?

13

How is a print object function linked to a print file?

A print object function is linked to a print file by typing the line command T on the panel for the print file to see the
structure of the print file. In that, insert print object function using IA or IB.

Can a print object function be embedded within another print object function?
(True/False)

True

What is the maximum number of Level heading formats and Level total formats that can
be defined in a print file?

A maximum of 13 levels of heading & totaling can be defined in a print file.


2. Normally the number of level headings is equal to the number of fields of the key sequence of the access path on
which the PRTFIL is based on.

How many report heading formats can be defined per print file? Of those, how many can
be dropped?

Only one report heading format is defined in a print file. The report heading format cannot be dropped.

What are the access paths on which Print file can be based on?

Retrieval Access Path (RTV)


Re-sequence Access Path (RSQ)
Query Access Path (QRY)

What is the difference between PRTFIL & PRTOBJ?

PRTFIL is an external function, which specifies a complete report.


PRTOBJ is an internal function type, which specifies a segment of a report for inclusion with in another report
function.
Name A FEW SYNON built in functions

*MULT *CONCAT *MOVE


*MOVE ALL *ADD *DIV
*CVTVAR *QUIT *MODULO
*SUB *EXIT PROGRAM *ROLL BACK
*RTVCND *SET CURSOR *SUBSTR

What are Message Functions? What are the different types of message functions?

Means of defining messages of various types, specifying different message files for the message, specifying
substitution variables and changing message identifiers.

1. Status Message function


2. Completion Message function
3. Error Message function
4. Execution Message function
5. Information Message function

What is Notepad technic in SYNON/2E?

The notepad utility allows us to copy constructs from one action diagram to another. When using open functions this
utility lets us save the contents of a diagram to a work area and copy those contexts elsewhere

What are the different condition types?

1. Value Condition type


2. Value List Condition type
3. Compare Condition type
4. Range Condition type

What are the different types of contexts available?

1. Data base Context


2. Device Context
3. Literal Context
4. System Context
5. Function Context

Explain Context
Database Contexts - instances of same database field available in more than
one file
Device Contexts - instances of same device field available in more than one
format
Literal Contexts - instances of field available from

literals like condition etc.


System Contexts - instances of fields available from various system values

What is the context in SYNON/2E?

instances of a field that are available for use at a particular processing step
What are constructs?

Constructs are the basic building blocks of action diagrams. By combining different types of constructs we define
the procedural logic of an action diagram. The combination constructs are:
1. Sequential
2. Conditional
3. Iterative

What are the user points?

User points are places where we can insert logic into the action diagram to add processing that is specific to that
function.

How will you insert a case construct?

We can insert a case construct by typing ICF in the line command.

Give any 4 line commands that can be used in the action diagram panel?

ICF, IAF, II, IA, IB, CC, C, M, MM, I*F, F, IO, H, Z, S

How can you view an action diagram of a given function?

We can view the action diagram of a given function by typing F at the edit database relations panel against the
required relation.

What is a Message function?

Message functions define messages that have to appear at a workstation using SYNON/2E facilities.

Define 'Function Field'.

A Function field is a field whose value is not physically stored in a Database, but is derived from other fields or files.
Eg. SUM, MAX, MIN etc.

Mention few points about Built-in functions.

Built-in functions execute common low-level functions such as arithmetic operations, character string manipulation
and control operations such as Commitment Control and Program exit.

What is User function?

User functions provide a means of incorporating user programs and subroutines into SYNON/2E generated
applications.

What is a Device function?

Device functions specify interactive programs and Report Programs. These programs consist of either a Panel design
or Report design and an Action Diagram

What are the different Database (dB) functions?

1. Create Object (CRTOBJ)


2. Change Object (CHGOBJ)
3. Delete Object (DLTOBJ)
4. Retrieve Object (RTVOBJ)
What are 4-different Categories of standard functions?

1. Database functions.
2. Device functions.
3. User functions.
4. Built-in functions.

What are the four different function types?

1. Standard functions.
2. Built-in-functions.
3. Function fields.
4. Message functions.

What are the 2 ways of implementing Functions in SYNON?

External the function is implemented as a separate HLL Program.


Internal the function is implemented as source code within that of a calling function.

What is 'FUNCTION' in SYNON/2E?


A function defines a process that operates on files and fields in the database.

Define term 'File Type' and list various file types.

File type is the description of how the file will be used. The various file types are Structure (STR), Reference (REF),
and Capture (CPT).

What are the 2 condition types used in SYNON/2E?

1. VAL
2. LST

Define the term 'Condition' in SYNON/2E.

Condition is a value that specifies the circumstances under which an action or a set of actions is to be executed

Define the term 'Re synchronization'.

Re-synchronization is the expansion of relations to rebuild the file entries for all files in a model.

List various SYNON/2E Relations.

1. Has Relation
2. Known by relation
3. Owned by relation
4. Refers to relation

Define the term 'Relation' in SYNON/2E.

The SYNON/2E Relations establish the relationships between fields and files and files and other files.

List various data types in SYNON/2E

CDE Alphanumeric code field


TXT Descriptive Text
VAL Monetary Value
DTE Date
TME Time
STS Status
QTY Quantity

What is field usage?

Field usage is given when referring to a field with a relation. The several categories of usage are DB keys (CDE), DB
attribute fields (ATR) and various function field usages.

What is a field type? List the 3 field types

Field type is an assigned type, which defines the type of the data that the field represents. The different field types
are CDE, NBR and QTY.

What is a field in SYNON/2E?

A field is a description of an item of data. It must have a name and type.

Which Access Path is needed for PRTFIL and PRTOBJ functions?

QRY access path.

Name the access paths created automatically for every REF or CPT file.

1. PHY Physical Access Path


2. UPD Update Access Path
3. RTV Retrieval Access Path

What is 'Access Path Selection’?

Access Path Selection is the process that specifies which records from a file are included in the Access Path.
Selection is made up of a number of select / omit criteria, each of which are based on one or more conditions.

What are the Access Path auxiliaries for query Access path?

Access Path auxiliaries are the three different OS/400 objects used to implement a query access path. They are
logical file, physical file and control language.

What are the various types of 'Access Path' maintenance?

1. Immediate
2. Delay
3. Rebuild

What are 'Access Path’ format entries?

Access Path format entries list


The fields that are present in the Access Path,
The key fields for the Access Path, and
The order of the Key fields.

What is the purpose of Access Path?

The purpose of an access path is to retrieve, sequence, filter or update data in physical or logical files

What is an access path in SYNON 2/E?

An access path is a view of data in a physical file, in a given key sequence, implemented as an OS/400 physical or
logical file.
What is a Virtual field?

A virtual field is a field that is logically present but physically not present on an access path.

What is differentiation?

Differentiation is the process in data modelling of creating new entities by splitting a current entity into two
separate entities.

What is device design?

Device design is a panel or report design associated with a function

What is Assimilation?

Assimilation is the process of retrieving existing externally described OS/400 file definitions to SYNON/2E design
model
An integrated development environment for AS/400s originally introduced in 1988 by Synon, Inc., Larkspur, CA
(derived from and pronounced "sign on"). As the dominant tool for the AS/400 platform, it provided an upper and
lower CASE environment that generated COBOL and RPG code. Founded in England in 1983 by Simon Williams,
Synon also built the Obsydian product, an object-oriented PC-based environment that is used to develop C++ code
for Windows clients and RPG code for AS/400 servers.

In 1998, Synon was acquired by Sterling Software, in turn purchased by Computer Associates in 2000. The Synon
products were first re-branded as CA's COOL:2E and COOL:Plex technologies and later Advantage 2E for iSeries
400. In 2004, they became AllFusion 2E and AllFusion Plex.