× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Sorry no machine, but here is a quick overview of what I have experienced over the years.

If you are familiar with modules in RPG it will help understand 2E. The areas I see new people have the most problems with is parameters and changing functions and not realizing the impact.

Parameters because they do not realize that the name being passed in is not necessarily going to be the same name inside the function. Also the scope of the parameters, I recommend staying away from the WRK context. And they can be input, output or both. Along with restricted, position, mapped, and probably others I forget.

Functions because some of the functions are not compliable themselves, they get copied into other functions when they get generated. So they will change a function to make it do what they need it to do without considering where else it is used. The other functions that use that function work fine until you need to make a change to them and they you run into programs because something was changed at some other time. Think of /copy in RPG.

For the function type of RTVOBJ, works different based on how the parameters for the keys are setup, if all restricted it is a chain, if not all the keys are one is set to position the it is a SETLL and READE (if one is restricted). And to this day (started in 88) still forget to put a move *all in the RTVOBJ to return the values of fields out of the RTVOBJ. I prefer a move *ALL (with *Blanks) in the record not found user exit also.

You cannot change the source with SEU, when you regenerate a function it deletes the source and starts with an empty source member, you either need to use a user source function or the command YSCNRPLSRC and put it in the function.

What most people do not realize is that there is a Y1 and a Y2 product. Y1 is commands that could be used without Y2 and was developed and sold to provide revenue while they designed Y2. And a lot of the Y1 tools are used with Y2, such as compiler overrides you can put in the source. Because of this you cannot just move the compiles from the normal job queue to any job queue on the system (it needs the Routing entries for Y2).

Arrays are hard for some also, but if you think of them as multiple occurrence data structures with keys it might help to understand them. They are like files in memory.

Get used to the user exits by zooming in so you can see where they are in the logic cycle. And the CALC user exit does get called more than it looks like it does, it gets called before and after the screen.

I have not used with some of the newer modules like the web part.

You are not going to like its names or the way it generates source, but you get used to it.



On 12/18/2010 9:26 AM, Richard Reeve wrote:
Does anyone have a box with Synon installed or know of someone that might
be willing to let me access it to practice/come up to speed with Synon? I am
starting a job on 12/27 and have looked at the tutorial but would really like to
work with it a bit prior to starting this job.

Thanks for any advice that you might have. Happy Holidays to all.
Warmest Regards,

Richard Reeve





As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.