Posts

Showing posts from 2008

Merry Christmas CA

06/12/2025 - Removed legacy links to help improve google indexing Well it is that time of year again when we all take a well deserved break (this is subjective I know), send those work clothes to the dry cleaners for a much need overhaul, eat too much, drink even more and come back to work refreshed in the new year with at least one broken new years resolution by the 5th of January. Christmas is often a busy time of year for many of us and we sometimes also spend the time talking about those that are no longer with us at those family reunions. I presently have some of my relatives visting us and have also had a long time family friend popping in to say "Hi" even though we live 12,000 miles apart. Anyhow, Christmas is a time of giving (well it is in my world) and CA thankfully think no differently. If you haven't already seen the news feeds then you may not know that our friends at CA have gone GA on CA Plex 6.1. There are quite a few neat features in this release that are...

2e and your support network

Updated - 06/12/2025 - Removed old links that are interfering with Google indexing Updated - 12/06/2009 I recently received a communication via the blog feedback feature. It was from one of our colleagues in France who was a little concerned about the support he receives from CA and also the usage of the tools in general. There are quite a lot of interweaving discussions to answer his question below. "In France,we have CA/2E 8.1SP1fr RPG.Here,we have no news from this product,it seems dead! We have to contact US support to obtain some news/upgrades,it's very difficult to have a schedule of upgrades.We use 2E since 95 and nothing has changed in the way of using it. Please reply to discuss. Thanks. " So I guess I need to answer each of these and share some opinion along the way. After all, isn't this the point of a blog in the first instance. Is it Dead? Well the short answer to that is "NO". A quite emphatic one actually . CA have a roadmap for the 2e produc...

What next?

My regular followers for which there are many. I am pleased to say that I have over 100 unique visitors per month visiting the blog and the number is increasing. If have dabbled with a mixture of real life stories and content, technical 2e content, management styles, observations about software development and a couple of other stories related to me and my experiences as long as there is a loose IT twist. I have spent much of the last two months writing more about 2E. I plan to finish off my posts in this area over the coming months and years. I certainly have plenty of material left. Finish 2e Development Standards Model Management Database Adminstration Guides Advanced Development Techniques Model Tidy Modernisation Options for 2E generated systems Plex Development ........ are all blog series candidates in their own right. I thought that I'd take a week off this week and ask you the readership what you would like to see. The hits to date make it a worthwhile exercise for me to p...

Synon 2e Development Standards - (Composite Functions) CRTOBJ/CHGOBJ

Synon 2E Development Standards CRTOBJ CHGOBJ Update: 05/12/2025 - I have created a page for all standards related posts. https://leedare-plex2e.blogspot.com/2025/12/synon-standard-posts-all-in-one-page.html Todays topic is composite functions. I have said before that there are many ways to skin a cat and with development regardless of tools and languages used, it is no different. To date I have concentrated on the generic principles of development and also on the CA 2E tool from Computer Associates. I have put quite a few posts in place around 2E with many many more to go. To be honest I am less than 20% through what I intend to post from the technical perspective and I have barely touched the Plex product. Still good things come to those who wait. http://www.dictionary.com/ has the definition of ' composite ' as "made up of disparate or separate parts or elements". In 2E terms it means the linking of two or more functions to serve a business purpose. For example to ...

Synon 2e Development Standards - (Hints and Tips DLTOBJ)

Synon 2E Development Standards DLTOBJ Update: 05/12/2025 - I have created a page for all standards related posts. https://leedare-plex2e.blogspot.com/2025/12/synon-standard-posts-all-in-one-page.html The humble DLTOBJ is the topic of this weeks post. This finishes of the series on the main 2e internal function types. I have covered the RTVOBJ, CRTOBJ and CHGOBJ so far. Next weeks post will be about the mertis of using a CRT/CHG or CHG/CRT combination function. Following that I will be blogging about standards for EXCUSRSRC, EXCUSRPGM and the EXCINTFUN/EXCEXTFUN function types before moving on to a series on the screen function types. So plenty to get though over the next few weeks. For those of you following the series, bare with me as I get these completed and published. Back to todays topic. The delete object (DLTOBJ). General considerations. Only one DLTOBJ, the default (*DLT), should be present on any file. It will have no action diagram coding added. If other associated fil...

Synon 2e Development Standards - (Hints and Tips CHGOBJ)

Synon 2E Development Standards - CHGOBJ Update: 05/12/2025 - I have created a page for all standards related posts. https://leedare-plex2e.blogspot.com/2025/12/synon-standard-posts-all-in-one-page.html Another post about some of the finer points for the internals functions available in the 2e tool. I have covered off the RTVOBJ and CRTOBJ in some detail. I have left the obvious stuff for the user manuals and am really covering off best practices and gotchas in these sections. Any observations and comments are gratefully received and a big shout out to Ray Weekes who passed on many of these in these sections from his experience. The default CHGOBJ will have all parameters open except for Time Stamp and any other derived attributes which will all be made NEITHER. Action diagram coding added will only be for Time Stamp and derived data i.e. Audit records or calculated values. Further CHGOBJ functions may be created where only subsets of attributes are to be changed or where special ...

Synon 2e Development Standards - (Hints and Tips CRTOBJ)

Synon 2E Development Standards - CRTOBJ Update: 05/12/2025 - I have created a page for all standards related posts. https://leedare-plex2e.blogspot.com/2025/12/synon-standard-posts-all-in-one-page.html Here we go again. Another in the series around 2e development standards. Today I thought I'd cover the CRTOBJ function type and share what I have gathered on the road over the years. Cutting straight to the point. Keep numbers to a minimum. In general there should only be one CRTOBJ, i.e. The default (*CRT), per file. This will have all or most parameters open and will not contain any complex processing. This makes the function reusable. The exception being surrogates that are generated inside the function and control fields like audit stamps. These will generally be set to NEITHER and primed inside the function. The exception to one per file would be for files that are archived or image copied. But this would not in general usage be the default *CRT. I.e. CRT Archive Image. Shieldi...

Synon 2e Development Standards - (Hints and Tips RTVOBJ)

Synon 2E Development Standards - RTVOBJ Update: 05/12/2025 - I have created a page for all standards related posts. https://leedare-plex2e.blogspot.com/2025/12/synon-standard-posts-all-in-one-page.html I thought I'd have a break from the 2e naming conventions thread that has occupied most of the last month and launch into a series of smaller posts that talk about some of the hints and tips associated with the 2e function types. Today's topic is the RTVOBJ . One of the most useful function types in 2e. One which is often misused or understood. The following are some hints and tips I have learnt, taught, embellished and/or stolen over the years. RTVOBJ Tips Naming. Most RTVOBJ functions can be divided into one of two types. Single record GETs to bring back attributes for a given key value. Multiple reads to perform some sort of process logic or test. Different naming conventions, 'GET By ...' or 'RTV Last four transactions' will identify these two types. See prev...

Synon 2e Development Standards - (Further Naming Conventions)

Synon 2E Development Standards - Naming Update: 05/12/2025 - I have created a page for all standards related posts. https://leedare-plex2e.blogspot.com/2025/12/synon-standard-posts-all-in-one-page.html So here we go. Another part in the CA 2E development standards series. Here I discuss/publish some naming conventions I have found useful with common functions in a 2E model. I have worked at a few sites over the years that have varying levels of standards applied to the model and different approaches aiming to solve the same problem. I have worked at sites that like to use an incremental prefix i.e. RTV56 etc, some that leave the defaults and others that follow naming convention prefixes. As with any standard it is not the actual standard that it is important. The area of concern for any development shop is the continued adherence of the standards. What I have found works best for me is to use a common set of naming standards for the core functions in a model. Today we will discuss core...

2e Development Standards - (Extra Naming and General Standards Part 1)

Synon 2E Development Standards - Naming & Bonus Standards Update: 05/12/2025 - I have created a page for all standards related posts. https://leedare-plex2e.blogspot.com/2025/12/synon-standard-posts-all-in-one-page.html Continuing with the series on 2E development standards. A model-naming standard is very important, particularly for large models, to aid understanding and navigation. There are several types of naming standards to consider. Model Names A CA:2E data model has a 25-character object text names associated with files, access paths, fields, field conditions, functions and messages etc. The guidelines for each object type are detailed below. As a general rule: Apart from files, try and only use 24 characters for the field, function, access path etc. This make it a lot easier to navigate around in the model and to use the ‘?’ prompting facility. Capitalise all words except articles, prepositions, conjunctions, and the 'to' in infinitives. E.g. 'Currency of Invoi...

Synon 2E - Development Standards (That damn Return Code ;-))

Synon 2E Development Standards - Return Code Update: 05/12/2025 - I have created a page for all standards related posts. https://leedare-plex2e.blogspot.com/2025/12/synon-standard-posts-all-in-one-page.html Yet another post debating some of the finer points of application development using CA 2E (Synon). Over the years apart from justifying my use of 4GL's and model based development tools for rapid development of applications (CA 2E and CA Plex) to the non believers. Oh the arguements that this has caused have been blogged before. See my series on the 3GL v 4GL debate. The biggest single point of contention from within the 2e community itself is relating to the correct usage and trust factor of the simply named field, " PGM.*Return Code" . It may as well have been named Devil's spawn with the amount of hot air I have seen it generate. For those that don't know, the return code is a floating variable within a program that indicates the current state of the progr...

Synon 2E - Development Standards (Ad-Hoc Tips)

Synon 2E Development Standards - Adhoc Tips Update: 05/12/2025 - I have created a page for all standards related posts. https://leedare-plex2e.blogspot.com/2025/12/synon-standard-posts-all-in-one-page.html One of my new colleagues has been reading these posts whilst he is learning to program in 2E. This part is a collection of some general tips in 2E around Format Relations, Function Options, Function Wrapping and Sharing Subroutines. As always, any comments good and bad are welcomed as are requests for subject matter. Format Relations Considerations For certain function types relations can be dropped (PMTRCD and PRTFIL). This is useful to make your functions as efficient as possible. For other functions you will generally have the option to influence the amount of default code and functionality that will be generated by the 2E code generators by detailing the level of referential integrity you wish the function to have. Careful consideration should be given to setting the format relat...

Synon 2E - Development Standards (AD & Contexts)

Synon 2E Development Standards - Action Diagram Synon 2E Development Standards - Contexts Update: 05/12/2025 - I have created a page for all standards related posts. https://leedare-plex2e.blogspot.com/2025/12/synon-standard-posts-all-in-one-page.html Continuing the series of development standards for 2E (Synon). Today's topic is Action diagramming and contexts. Once again in no particular order. Beware of a negative list. Do not use a 'negative' LST on a STS field. E.g. If STS field has Val's A,B,C,D then do not create a LST 'Not B' which contains A,C,D. If a new VAL is added to the STS field then the negative LST immediately becomes out of date and also needs amending. Note: As with Access Paths and File changes, status conditions should be considered a DBA level change and appropriate care and attention taken. When not to call the *RTVCND. Do not use *RTVCND to get a condition name if the STS field is blank. This is not required as the result should be bla...

Synon 2E - Development Standards (Parameters)

Synon 2E Development Standards - Parameters Update: 05/12/2025 - I have created a page for all standards related posts. https://leedare-plex2e.blogspot.com/2025/12/synon-standard-posts-all-in-one-page.html This is Part 4 in a series of articles. Once again I have decided to focus on development standards and best practices for 2E (Synon) development. You can search this blog for the other posts around performance, defensive programming and general coding considerations. Today's topic is parameters and how they are used and defined in 2E. In no particular order my tips and techniques in this are as follows:- Use Files, Accessss Paths or *Arrays as pick lists. In general try to use ACP (Access Path) RCD (Record) structures as picking lists for parameter definition rather than individual *FIELD entries. This makes it easier to identify the impact arising from future database changes. Never use the last parameter line. If you find yourself using the last parameter line it is time tha...

Synon 2E - Development Standards (General Coding Considerations)

Synon 2E Development Standards - General Update: 05/12/2025 - I have created a page for all standards related posts. https://leedare-plex2e.blogspot.com/2025/12/synon-standard-posts-all-in-one-page.html My regular readers will be aware that I have begun adding articles related to 2E (Synon) development. See links on Defensive programming and Programming for performance . Future chapters planned for the coming weeks include:- Parameters Action Diagramming & Action Diagram Contexts Messages and Message Handling Subroutines Wrapping, Relations and Function Options DBA Best Practices Function Type Best Practices Gotcha's Guide Suggested Naming Conventions + Much more. When I have finally worked out how to use the Wiki. I will consolidated all my 2e postings and update. I welcome all comments regarding these standards and guides and will endeavour to update the blog postings with your additional feedback and comments. At this stage I would also like to publicly thank Darryl Milling...

Version 1.0

Version 1.0 - never buy it? I thought that today I would blog a little about the concept of version 1.0. There is a saying in IT that you never buy version 1.0 of a product. Obviously this can't be true as no new products would sell or make market penetration. Also, there must be those out there who enjoy the concept of working with an early version of a new tool or perhaps even a alpha or beta. I guess these people can be summarised as conservative at one end of the scale or riding on the crest of a technology wave (rogue developer?, entrepreneur?) and the opposite end. They are clearly hoping to find the next super skill or application that they can become expert in, become recognised as an early adopter and advocate of the technology. Along with the kudos and recognition also comes the higher rates available.......Money, Money, Money..... "Its a rich man's world......". Guess who saw Mamma Mia the movie recently. It was brought to my attention recently that an ed...

Is honesty always the best policy?

Being honest when quitting! At various times in my life I have had this dilemma and I am sure many of you reading this have too. I have always believed that honesty is the best policy. Why? This was drummed into me as a child. You would all remember being younger and hearing one of your parents or elders in your family/whanau say, “Just tell the truth, you won’t get into trouble as long as you tell me what happened.”, “Nobody likes liars.”, “You must be honest otherwise the truth will come out one day and come back and bite you on the bottom.”. In various articles in this blog I have made reference to my experiences in general and I have been 100% honest in delivering balanced articles. IMHO. Just recently I found myself in a situation where I was beginning to doubt my values/beliefs in this area. This was quite upsetting and worrying after 38 years of preaching and living by the aforementioned ideals. So here are a few examples of where we all probably choose to ignore this policy. Co...

Synon 2E - Development Standards (Defensive Programming)

Synon 2E Development Standards - Defensive Programming Update: 05/12/2025 - I have created a page for all standards related posts. https://leedare-plex2e.blogspot.com/2025/12/synon-standard-posts-all-in-one-page.html Some of these are advanced tips. Part two in the series and takes a look at defensive programming techniques and how these help you to create reliable programs. The following a guidelines for creating robust code. Always check for a divide by zero (runtime) error by checking the divisor field for zero value prior to performing the *DIV operation. Never move numeric fields into a field with a smaller domain. With RPG this can cause truncation of the value and with RPG ILE Pre 8.0 will cause an RPG ILE runtime error. Ensure that your iteration values and counters are large enough to cater for your anticipated maximum. Ensure that your field sizes for database attributes are sized sufficiently to cater for the number of records anticipated. Ensure that your arrays are sized ...

Synon 2E - Development Standards (Performance)

Synon 2E Development Standards - Performance  Update: 05/12/2025 - I have created a page for all standards related posts. https://leedare-plex2e.blogspot.com/2025/12/synon-standard-posts-all-in-one-page.html This is the first part in a complete series of articles I intend to post regarding development best practices and standards for the CA 2e (Synon) development tool. The aim of publishing the guides is to educate, collaborate and enhance the standards by receiving community feedback. After all, no one person can know everything but the wider community can contribute. Many of these tips I have learnt over the years and quite a lot have been sent to me by interested parties around the world. A big thank you to you all. I will publish the complete documents on the 2E wiki (soon) with full acknowledgements. (See my links section below). In the meantime I will publish some selected extracts on this blog just to get your thought processes flowing. Performance There are many considerati...