Friday, November 20, 2009

Implementing a 'Generic' Data Driver File + Printing/Displaying Arrays in Subfiles (Part II)

The greatest rugby competition on the planet. Alright, I live in the Southern Hemisphere now and as a direct result have begun to believe the hype. That said the Super 14 (Super 15 from 2011) competition is recognised as one of the strongest leagues in Rugby Union and has team from Australia, South Africa and my current place of residence, New Zealand. Sorry to all those that think I have sold out and not created a Football (Soccer) or NFL example.

System Overview

The requirement was to build a system that allowed the user to make simple sports results/margins predictions on a group of games on a weekly basis. The fuxtures would be published and the predictions made. Once the results were known they would be entered in to the system and participants points (awarded for correct or near correct predictions) would be calculated.

Requirement

Not everyone had the time to trawl the internet looking for a league table that may assist them with making their predictions (Hopefully they have enough time to read this article though). The requirement was to show a realtime league table as fixtures results were entered.  It was decided to record the points the actual teams achieved for each fixture and then simply build the league table on the fly.

Additional information

One could have built a simple file and recreated each and every time the results changed. However, due to the limited number of teams and fixtures in a period it was decided to build on the fly in an array. Also this also meant there was no physical file to maintain and promote and the user could easily view any of the previous years.

Solution

Using a generic data driver file. Build an array that computes and sorts the team table into the correct order and then read from the array the teams and show in that order they are in the table.

Next week I will show you how this was achieved. There will be otherways to receive the same result and all notes are intended as a guide. Your individual circumstances and requirements may vary but feel free to emulate and utilise.

As an appetiser the screen below is a DSPFIL based over an Array.



If you require any further assistance you can always email me at (leedare at talk21 dot com)

Thanks for reading.
Lee.

Tuesday, November 17, 2009

Implementing a 'Generic' Data Driver File + Printing/Displaying Arrays in Subfiles (Part I)

This is a three part story.

I can think of quite a few occassions in 2E where I have needed to display or print information from a non 2e standard file i.e. A non 2E defined file, an array or even a Data Queue.

I have also had the need to build PRTFIL's and DSPFIL's which needed to aggregate data in a master/detail arrangement. The example below is from a change management application I worked on years ago.  It shows a diary note (Header) and the detailed comments (Detail) in one screen and uses a toggle button to determine the entires shown for either the summary mode or detail mode.




To implement these solutions I have used the 'Generic Data Driver' file concept.  I have introduced this at the last 3 2E sites I have worked at.

A worked example of how to do this with screen shots and code sample code will be in part III .  I have also included some notes to help you set up your own generic data driver file and one example of how to utilise it.  This example also has the added bonus of showing you how you can show arrays on a DSPFIL.  Whooarah....Yippee....Get on with it..... I can hear you all say........

This might save Rory and Simon some hassle anyway!!!!  At least with fending off this often requested enhancement to the base 2E tool.

Until then.....(Next Week).

Thanks for reading.
Lee.

Tuesday, November 10, 2009

Enhancement Requests

Well it is almost that time of year again.  You know.  Christmas!!!!   We all sit back and relax, eat turkey (far too much) and discover that port is okay to drink by the bottle after all.

But putting that aside it is also nearly the new year and that will mean the annual CA enhancements voting survey.  So many of you know this annual event and the results are collated and influence the R&D effort. 

Certainly a .NET client for Plex came top last year and this is what we saw at the conference albeit in technology preview mode.

Whilst not everything on the list can get done.  CA tend to try and get the balance right between the list items that rank highly and the market direction of the product as they see it too.  Which is fair I guess.

My call to you all today is not that the enhancements are starting soon and you should al be reaching for your new 2010 Pirelli calendar.  That's for Bill and the team to decide.   However, I am saying that the list is made up of requests that we make to the CA support desk.  i.e. no requests equates to a smaller list of items or last years ones (some of which may still be very valid).

My challenge to the community is to think through some of your preferred enhancements and ensure that you register these via the support desk online so that they make the list for you to vote on.  I am also aware that CA is planning to extend its arm further into the user community with a product advisory type approach involving some of the clients.  I am certainly looking forward to contributing to this.

However, in the meantime, start raising those tickets and remember when you are voting you are voting for your top ten in the order you want them.  Some people have been confused by this in the past..... 

Thanks for reading.
Lee.

Wednesday, October 7, 2009

Conference 2009 - The great 'Texas' roadtrip and more.......

After the conference I was lucky enough to spend a great week with ADC Austin taking a look (Deep Dive) into their products and services in particular the '2E to Plex' migration process and patterns plus the WebsydianWebClient for Plex.

 
What can I say!   I was suitably impressed. 

ADC are busy working on an updated version of the migration patterns and the dedication and passion I witnessed from their development team was first class. 

 


A Plex application running in a browser using Dojo controls. 

 

 
A big thank you to John, Juan, Andrew, Eric, Chris, Jill, Bob and Srinath for all your help and hospitality during the week.  Hopefully one day I can return this in good old New Zealand.  It was much appreciated, especially the Friday evening on the boat.  What a fantastic way to finish a fantastic trip.

Thanks to the CA team
 
A massive shout out also to Bill, Daniel, Rob, Rory and Simon from CA for a great conference.  I had a fantastic time and learnt so so so so much.  Plex and 2E remain very strong:-

 
  • The Plex ecosystem with ADC and Websydian et al has a great reach into multiple technologies and platforms.  Interesting times are ahead as CA and its partners work towards full coverage of .NET
  • Extending Web Services support and other 2E functions to handle Data Sets and some neat stuff with arrays is on the potential enhancement list for 8.5+.  This further delights me as I look at ways of providing additional business benefits to my customers.

 
Some collateral from the conference:-

 
The presentations have been posted on the http://www.plex2e.com/ site.

 
A video of the conference is now on YouTube:-

 


 
http://www.youtube.com/watch?v=w2NyHRWARyI

 
Thanks Gavin for producing this, but next time.

"MAKE SURE I'M IN IT!!"

 

 
I am looking forward to the next conference and the 6.5 Plex beta programme, whenever that may be (Daniel) ;-) not to mention the SP1 for 8.5 of 2E.

 
Better get back to the usual mutterings from next week.

 
Thanks for reading.
Lee.

Sunday, September 27, 2009

Conference 2009 - Day 3 - Final Day

06/0202010.  Just revisited these posts.  Tidied up a few typo's and added addition links of images.

Well, where do I start.

I guess I can start at the end. Its all finished. Developer roundtable and closing credits done, final night out for those remaining done, business cards exchanged and now looking forward to 2011 conference. Early favourite (amongst us gossiping) is Chicago in around 18 months. Only time will tell.

At this stage I should though say a great big thank you to Jill Fender from ADC who saved my day today, quite literally. Here's the story.

My session was at 11am and like all speakers I got there 30 minutes early to set up. You know, plug in the laptop, check the projector and open the powerpoint.

OPEN THE POWERPOINT!!!!!.

HEART RATE INCREASES.

Now with 15 minutes to go (long bootstrap on my laptop) I find out that I left my presentation on my work PC desktop. Remember that internet I referred too on the first day and that I couldn't connect to work. Yes..... And guess what? it was early the hours of the morning back home so a phone call and quick email to my online email account wouldn't suffice.

A rushed around to find Bill, but he had left. Fortunately, I then bumped into Jill. She managed to ring Bill who was at the airport. As I understand it he then found some internet access and emailed it to Jill (who could connect properly).

I was two minutes into my presentation by this time. I had a old copy of a similiar presentation at Cincinatti. I had performed some tweaks (in that 15 minutes I had spare) and had apologised to my audience. (Thanks for all those that attended by the way. I was very pleased with the numbers and I hope that you got something out of it.).   Anyhow.  Two minutes and the door opens and it was Jill with the primed laptop. I connected it to the projector and then I was able to talk through my 2009 (updated with loads of new content) slides. I understand that these will all be made available online at some stage. However, I have also decided to type up the notes for each slide and will post on this blog.

06/02/2010 - I will do this in the coming weeks.

So, session delivery complete it was time for me to enjoy some additional sessions and attend a couple of demo's. Gavin (my mate from SA) regarding his security and validation pattern and with Soren and Anders discussing in some detail the TransacXML product. Very very very useful. Check them out on http://www.websydian.com/ and Gavin http://www.arad.co.za/

A final note on the conference. The sessions were great, the food was great, the company and friendship was great. Also that iPhone stuff I mentioned can be found at http://tinyurl.com/2eplex2009. If you want to just see the application in a normal phone or online then you can go to http://conf.desynit.com/

Once all was concluded a few of us went to Hooters (you can google this, but I would suggest you google for Hooters Restaurant) for a meal and quite a few beers. After all, it was Friday night.

That's just about wrapped up the 2009 conference. Hope to see you in 2011.

UPDATE - 28/09/2009 - Just found the presentation. It was on the laptop all the time. I had downloaded it using the download manager and I have just spotted it in there. I won't be making that mistake again!!!!!!

Thanks for reading.
Lee.

Friday, September 25, 2009

Conference 2009 - Day 2

Wow. What a day.

Attended quite a few motivational sessions today. When I say motivational. I don't mean some corny bible basher preaching good values and encouraging us all to give up tobacco, beer and girls (I could never give up 2 and 3), but the emergence of self-motivation by seeing what others are doing out there in the plex/2e world.

The first session I attended was the Plex update by Daniel Leigh. Although terms like "no commitment can be made on delivery or a date", one certainly left the room with a feeling that the .NET client in 6.5 is happening. Tomorrow we will be seeing this in action (I hope). I saw the icon on a laptop at one of the presentations.

Other than that Plex is BAU with planning being tidied up for the 6.5 release.

It was also nice to see what others had been doing. Chris Smith (albeit nervous) and please dont worry about that mate as what you have done in the plex java world with the 'plug in' looked fantastic. I salute your efforts and would like to get involved. Even if it is only from a ideas and scope perspective.

A few others around the performance products from CA which could have a place at my work and a excellent implementation and demonstration of a codejock toolbar control being integrated into the Plex patterns. Thanks Asgeri and Gunnar (http://www.vigor.is/) for sharing that. Nice to meet you guys.

I skipped the IBM session as I was lucky to have Alison Butterill visit Auckland where I live a few weeks ago.  So I actually caught up on some of that sleep deprivation that had been occurring recently.

Lastly, I looked at the TransacXML product. Soren and Anne-marie did a great job explaining the concepts of SOA. The products new import feature in the latest release (August 2009) looks like it can save a huge amount of time for the Plex developers at the modelling stage as well as increase accuracy. It's just another piece in the puzzle that keeps this tool viable and a serious option for any 2e shops wanting to target other platforms.

Time for dinner and then Plex in the City. Which is basically dinner and then a visit to a few bars. Starts in two minutes so better go.

Thanks for reading.
Lee.

Thursday, September 24, 2009

Conference 2009 - Day 1

Day one kicked off today for the 2009 Plex/2e Developers conference and what a day it was.

I say day one. I have been here for a few days trying to acclimatise and attending a business partner seminar for the Websydian product range. All in all a great couple of days so far. I have meet up with a few old friends and made new ones. I have even managed to find time to share a few stories and pints whilst scouting out a laundromat with a very tall South African fellow named Gavin (Arad software http://www.arad.co.za/). My mate Martin from NZ also came along for the journey. I used to work with one of Gavin's old school mates from SA and we have now become friends. Talk about 6 degrees of seperation etc.

There are a few words or sentences that helps describe these early days so far.

  • Extreme jetlag.
  • Excellent training session today on web service connectors for multiple languages and platforms using the CA Plex tool.
  • Keynote presentations.
  • Crap internet. The internet is so slow I am using a connection (not my wifi) which is making it impossible for me to check my business emails at work. Will try other options tomorrow.

A big thank you to the Websydian team for putting on a great dinner tonight. As usual Bill kicked off the conference in his casual style. He's done so many now I guess he can do this with his eyes shut. There was a big shout out to the participants. 19 different countries were represented and well over 100 delegates to boot.

The usual thank yous to the event co-sponsors. See http://www.plex2e.com/ for more information about them and the event time table.

Anyhow, back to the action.

Then came a couple of keynotes from John Leadbetter (Websydian) and Simon Williams, the later being the founder of the tools we all love to use. He presented an accurate history of the tools and some of the early drivers and it all made sense. Of course, there was a plug for the AMD (Associative Model of Data) at the end but I guess he's earn't that. Considering I have made a career out of the tools he invented. I guess thats okay.

Personally though, I am gutted that Gunter and the team from All About Gmbh didn't make the event. I hope to pop over and see you guys in December 2009 if you would put up with me for a day? Still there are lots of very interesting sessions planned and I hope to come back to NZ with a much greater knowledge about the direction of the tools that I love.

There is lots of talk about an announcement around a .NET WPF client generator for version 6.5. This would certainly give the tools a great advantage over their rivals with the ability to hit both the Java and Microsoft technology stacks from a signle design model.

And I must mention the Desynit guys who have developed an iPhone 'conference' application that allows delegates to rate the sessions that people attend. Anyone can take a look online or via their iPhone, Blackberry, Web phone etc and track these. I'll post more on this in the future. Who would have thought that this would have been achieved using Plex and WCF web services. More on this and other interesting news as I hear more.

For now a couple of beers in the bar and hopefully some sleep tonight. After 3 hours last night and that was a good night (jetlag) I'd be greatful for that alarm clock to go off and it actually do it's job rather than interupting me watching Lissette Gonzales. A rather hot weather girl on one of the news channels here.



See what I mean!

Tomorrow there is a string of sessions planned and a couple of meetings with product owners. I am particularly keen on the Websydian TransacXML patterns and see some excellent business benefit using these. Not to mention that Soren (the guy who knows all about the product) enjoys a pint two. Looks like we might pop out to Waxy O'Connors for lunch. :-)

Thanks for reading.
Lee.

Saturday, August 29, 2009

TLA to FLA and beyond

This week I discovered a few new TLA’s (Three Letter Acronyms). These are ACL, PCL and MCL. Unfortunately I also discovered that when used with terms like ‘ruptured’ and ‘torn’ it is not a good prognosis for a knee. Still I’ll get over it, get fixed up, get fit and once again start to play my beloved football (soccer to some of you).

You might recall that I wrote a blog some time ago about airport codes and the potential to eventually run out of codes. See link below.

Today. I am amused. Very amused. This must be the analytical in me.

Consider this.
We were all familiar with BBC, ITV, CNN, MGM, WWE or WWF. The techoids among us are familiar with terms like XLS, DOC, PPT for our office documents or RAM, DVD or CDR as components of our PC or media centers.

Has anyone else noticed that there appears to be a trend to using FLA’s (Four Letter Acronyms) these days. Have we ran out of these or is the world moving into IT mode and creating a naming standard 2.0.

Many of you have heard of terms like HDMI, HTML, XSLT, PCML and J2EE. Some may have heard of SaaS and HaaS. A few may have been using WDSc. What is it with the little letters? Are we witnessing the birth of the second naming standard. Our kids are certainly into these with text language LMAO, PMSL and WUU2. You can look these up yourself.

With this in mind we should be covered for FLA’s for quite some time. If we exclude numbers we have 26x26x26x26 combinations available. A staggering 456976 configurations from which to choose from. That should keep us going for a while but with patenting and copyright on the increase these might run out sooner than we think.

Then we will be heading towards Five Letter Acronyms. Or FLA’s.

“Hmmmm. Isn’t that TLA for FLA already taken?” I hear you say. We might have to skip to SLA or (Six Letter Acronyms) or is that Service Level Agreements.

Interesting times ahead I guess. I am quite fond of the Five letter Acronyms though, especially BURMA :-)
Thanks for reading.
Lee.

Friday, August 14, 2009

CA Plex/2E Conference 2009



Only about 5 more weeks to go!!!!

I am really looking forward to this event and meeting up with friends new and old in the community. For more details visit:-




I will be presenting a session on your 2E modernisation options.

The brief is below.

I look forward to meeting you in sunny Florida.

Thanks for reading.
Lee.


This session will provide ideas about legacy modernisation paths for CA 2E, incorporating open discussion and highlignting some experiences along the way, with particular focus on:-

  • What is application modernisation?
  • What are the prerequisites (if any)?
  • What are my options?...with a comparison of the pros and cons of numerous approaches.
  • What are the technical hurdles that development shops encounter, and continue to face with regards to modernisation and any potential platform migration?

This presentation considers the impact that such a drive has on a company's structure, processes, internal systems, the development teams and their customers both internally and externally.

In summary, this is 'Modernisation Room: 101' for 2E shops.

Thursday, July 23, 2009

How software and technology has affected my life - Part I

When I was a lad. Alright. 30 years ago I used to stay up late on a Saturday night so I could watch 'Match of the Day' As I remember it was on after 'Hammer House of Horror' I used to watch it in the TV room.

It was my footy/tv combo highlight of the week.

Some years later as my interest in football began to align itself (like most brits) to fanatical religious levels. I remember cycling over two miles to my grandad's house and play cribbage. We used to play for a few hours and in the background we have the text services on.

"Fifteen two, fiffteen four and a pair makes - GOOOAALLLLLLLLLLL - Yes, Oh, sorry and a pair makes 6." The Brazilian goal was of course my beloved Tottenham Hotspurs scoring a goal. I'd then sit there glued to the television for the next hour or so waiting patiently as page 303 as it was then on Ceefax refreshed itself. You could press hold and then hold again to cancel the hold and the page counter would rush around. I don't think it actually made a difference to the amount of time taken but at least you felt like it was doing something. A modern comparison would be progress bar on your internet browser status bar.

As I got a little older we started to get more regular live games on TV. We had the Big Match on a Sunday with Brian Moore. Years later along came Rupert Murdock and Sky and if you are a subscriber (which I am) then you have football and football news on tap.

All this time I have remained a staunched spurs supporter. I will watch all their games live. I will adjust work starting times for the day (remember I live on the other side of the world). I often stay up all night to watch my team. http://www.bbc.co.uk.sport/ is my default IE page.

Then along came the internet. I can now search for spurs' greatest goals and invariably someone has put up some illegal copyrighted material from their video/dvd/blueray collection recorded to an internet format via their new HD compatiable handheld camera.

I guess we truly are in the information age.

However, with all these positives there is always a negative. In my case it is fantasy football.

Firstly. I can never seperate real world footy from my fantasy teams. Therefore, every year I ignore the likes of Lampard and Gerrard for 3 Spurs players I hope will finally gel and do something for me. I am sure things will be no different this year.

The real change for me is not that I have more footy to watch, it is how I watch it and interact with it. I used to cheer on my team, berate the opposition and with a bit of luck not offend my neighbours in the process. Now I have to remember who is and isn't in my fantasy team, hope for certain players to score and if the score is the same as one of my sports predictions, pray for no more goals, even if my team is losing.

And we call technology progress.

Thanks for reading.
Lee.

Monday, July 6, 2009

Deciphering People

During my time working in the software development industry I have met a large group of interesting professionals with varying personalities. I have blogged before that some of these relationships have been challenges. However, I guess that is just part of life’s rich tapestry otherwise known as human-kind……We are only talking about 6 or 7 out of hundreds and hundreds……

Another occasion I have blogged about management and team building principles. In particular I once wrote a post that was referring to the team leader or manager being whiter than white when it came to their decisions and actions.

Viewing a team member or a manager through a different perspective is a technique I have come to appreciate in recent years. After all, there is always another view point out there. Whether you agree with the other persons view or not is largely irrelevant, at least in the first instance. The skill is if you are able to see it from their perspective, you are in better position to assist them seeing your viewpoint. Which in theory, should lead to a better solution for your business, client/customer or yourself.

Instigating thinking of perspective in your life and encouraging those around you to think in a similar vein must be good for you, your team or your business that you represent. Far too many people get caught up in politics. I must admit that from time to time I used to get dragged into these kinds of debates.

Developing these skills is difficult and my previous role here in NZ certainly gave me a lot of opportunity to witness first hand a whole myriad of people who failed to see the other perspective and continued on their personally driven paths. Not realising that they were leaving a trail of chaos and dissention in the rank and file.

Considering that this was pointed out to the business on numerous occasions and not to mention by countless numbers within the organisation, it was rather disappointing to witness the situation continue to escalate month after month.

Other approaches to dealing with problems is to not change the perspective and understand other views but to change he scope of the problem. i.e. Describe the problem to yourself in a different way. Therefore, rather than sitting there wondering “Why aren’t my ideas being taken on board?” Ask the question in a different way. “Do the people I am talking to care about the business?”. If the answer is no, then you probably have your answer.

Now we have covered the two simple strategies for breaking down a problem in the workplace, business or home. Yes I did say home. How many of you have kids? How many of you have had to intervene into a piece of sibling rivalry? Firstly, you carefully listen to the views of all the kids involved before choosing who and how to sanction/punish/ground.

Why, why, why then do we see professionals in the workplace not follow these simple steps of listening to all the view points before making a judgement call. I am guessing, it could be preconceived ideas based on ignorance, arrogance, education, experience, naivety……….. This list goes on and on.

Analysing this a little further I feel there is a small element of fear for some. A large degree of politics and sheer greed. Not necessarily monetary greed. Power hungry greed, people who will often step on anyone they feel obstructs them from their personal mission without considering the merits or sentiment of the view holder. Very rarely do these individualistic and selfish approaches to managing a team or business align with the company strategy.

Yet time and time again this cancer of the modern workplace appears to raise it ugly head above the clouds and rain or should I say reign down a culture more aligned to the 15th century rather than the 21st. Thankfully I live in the 21st century and practice personal policies and ethics that try to understand before I react.

If you find yourself in this situation, what are your options? I guess this depends on the area of conflict, whether you feel that anything will change, your personal circumstances etc. This list is longer that the Chinese phone book in Howick.

Sedentary work, or office work as my physio described it to me the other week suffers this kind of politics more than most other areas. If there is a disagreement at a car parts yard or a cement layers business the actions are generally quite direct and quick. In the office world we appear to provide an environment where a punch up and a skinful or beer is not considered conducive to a harmonious working environment. And quite rightly so.

As a result of this mature approach we are actually creating a breeding ground for single minded, single problem definition and/or single perception people. It is like the air cooled/heated offices act as a giant Petri dish allowing this bacteria to blossom.

Considering the above, I have always wondered if this kind of person has a hidden agenda or some sort of underlying code of conduct that requires decrypting, a bit like the Da Vinci code I guess. Are they a freak wave in the corporate world? I have met very few people like this but the one that stands shall remain nameless in the blog at this stage.

Until such a time that I am ready to publish more on the subject I guess we have to make do with one final thought.

Not until you have been a victim do you really understand the ramifications of these actions. However, if you are prepared to stand up and challenge areas that you feel passionate about you’ll root out these personality types before too long. Once that objective is achieved, if you can’t win the argument, move on and find somewhere where you can influence and enjoy your work. I have met far too many people over the years who have spent years and years (quite literally) of their lives battling against these machines. Sometime you just need to know when to move on. I did.

Thanks for reading.
Lee.

Tuesday, June 16, 2009

Calling all French 2e Users

Just a quick blog today.

CA, actually Daniel Leigh in particular, is looking for Beta testers for the new 8.5 version of 2e. This time for the french language version.

So all my colleagues in 'Les Bleus' country. You can contact daniel. Just let me know you are interested via the comments feature and I will pass on your details or you can contact him directly at:-

daniel.leigh at ca dot com.

Good luck. There are certainly plenty of great new features in this release to get your creative juices flowing.

Thanks for reading.
Lee.

Sunday, June 7, 2009

2e Development Standards - Screen Functions (Part III)

Today we shall take a quick look at the Display File function (DSPFIL).

This is a very commonly used function type in 2e and if my notes are correct there may be a thing or two of interest in this post. However, I guess that this depends on whether you are an ageing old developer like myself or one of the new kids on the block in Bangalore.

But back to the action. Like many other function types the DSPFIL can be used to display data and interact with it in multiple manners. i.e. It can act like an intelligent Select Record and also allow multiple selects. It can also be used to show the contents of an array.

Hold on I hear you say.

"It's a display file and arrays are not files......"

That's true but there are methods to complete this. Nudge me with some comments and I might write up a few examples of code to show you how to achieve this.

Also as the DSPFIL has the CTL (header region) it can be used to provide an interface with a tab look 'n' feel.

Anyhow. Major tip. Take a look at the function options for this function type. In particular, the function option called Re-Process Subfile. Set this on and off and take a look at the action diagram. There will be additional user points and logic added if this is set to Yes. This is just another example of the PODA principle that is taught when you attend training.

PODA stands for Parameters, Options, Design and Action Diagram. The philosphy behind this is simple. The more correct decisions you make at the preceding level i.e. Paramters first, then options (function options) etc the less coding (action diagramming) you will need to do.

2e is quite a neat tool. You should be judging your developers based on the least amount of code required rather than rewarding on a LOC principal (Lines of Code). I think it is fair to say that anyone can write a bad program.

Below are two sections that provide some insight into the function.

General Considerations

The default scan limit is 500. This may not be appropriate for large files. If necessary set the scan limit in USER:Initialise Program to a higher value or even to Maximum. Note: That the scan limit is a model value. If you require a higher number by default (across your model) then I recommend you change the model value YSCNLMT.

Best Practice

Any subfile control selector fields not used should be dropped rather than hidden. This is for performance reasons and avoids the problem of unintentionally deselecting subfile records. To do this simply place enter ‘-‘ against the field from within the EDIT SCREEN FORMAT DETAILS screen.

Multi-part ACP key fields acting as positioners will automatically become selectors if low order fields have data and high order fields are blank. Ensure that you understand the type of data likely to be used for the screen.

Check that the operators used by subfile selectors are appropriate for the function design. Ensure you want EQ, LE, GT or CT for example. Don't assume the default role of these fields.

If a positioner or selector field has mod 10/11 check digit then it may be appropriate to replace with a function field without the check digit. The user does have to enter a valid number to position within a list.

Tip

There is no standard feature to stop the function loading records into the subfile under programmer control. The program continues until subfile page full, scan limit reached or hits end of file. However, you may trick the function to thinking its hit end of file by using a RTVOBJ over the same ACP using a very high key value. This positions the file cursor at end of file.

USER:Process Command Keys has got nothing to do with command keys. Command key processing should normally be added to USER:Process Subfile Control.

Subfile select status field is automatically set to blanks if subfile record processing completes without error.

Gotchas

If F4=Prompt is used on any subfile control selector STS type field then there is no automatic subfile reload and CALC:Subfile Control Function Fields is not executed. User then has to press enter to invoke appropriate selection logic. Function works OK if '?' is used. There is no known workaround for this bug. I would suggest that this is not actually a bug and it is harsh to judge it that way. It is simply because the enter key was pressed for the ? and not the F4 prompt.

CALC:Subfile Record Function Fields is executed before USER:Initialise Subfile Record and therefore you may process a record subsequently deselected. i.e. PGM.*Record Selected.

If any RST input parameter key is also input on device design, and its a file to file relation, then that file validation is deferred until the main validation cycle rather than take place during the load cycle. Any automatic virtuals from the 'Owned by' file will be blank when function is loaded.

An input function field added to RCD format will not automatically check for required value. Even if you set the value to Allow Blank ‘ ‘. This is because the DSPFIL template isn’t designed to have input fields and doesn’t generate the validation routine regardless of how the flag is set or any check conditions. Need to add the code procedurally via the action diagram to force input.

An input function field added to CTL format will not automatically check for required Value. Need to add the check procedurally.

Thanks for reading.
Lee.

Monday, June 1, 2009

Can you feel the momentum that is Ft Lauderdale

Hi all,

I'd like to start this off by writing that I have been on a desert island for the last two months on a meditation course for mid life crisis for balding IT men.

But that wouldn't be true...

or perhaps that I have been on a second honeymoon with my wife and was far too tired to blog :-). But that wouldn't be true........either.

I have however, been very busy at work and the soccer season has started here in NZ so I am playing the beautiful game once more, although i'd preferyou didn't ask how we are doing.

But, even these distractions aren't the reason for my lack of postings in the last 8 weeks.

The true reason is that I have moved my laptop to the study and my 6 year old daughter has discovered the magical world of computing and dominates the machine. I do wonder where she gets it from but I think a new computer is on my shopping list in the next month or two.

How many computers are required in a family home in this day and age? You tube and Britains got talent in particular seem to dominate most of the 15.4' laptop screens in this household.

Anyhow, today is a short post to say that I have a schedule for my weekly posts mapped out and will be adding some highly anticipated 2e tips and tricks over the coming weeks.

Back to this post though.....

The title (of course) is related to the upcoming CA Plex and CA 2E user conference in the USA in September. Take a look at this link www.plex2e.com for more details. I have booked flights, arranged time from work and reserved the hotel room. I have even told the trouble and strife (wife) before I booked this as well. 4 brownie points for me. Shame I am still in arrears on this front.

All I have to do now is to submit my brief for a presentation and............oh yeah!!!!....... get working on it.

This is the highlight of my working year when I get a chance to attend these events, learn great stuff about the products that I use and preach about, socialise with friends and colleagues in the industry both new and old and get to attend a Plex in the city event.

I look forward to meeting many of you over the week that I am there.

Until then take care. Only another 115 days to go. I'm counting them down already.

Thanks for reading.
Lee.

Sunday, April 5, 2009

Plex Updates

Wow! What a week.

I, like many of you spent 3 hours on the recent CA Plex/2E webcast marketed as 'Blitz'. For me it was a little more inconvenient as it was from 2am until gone 5am in the morning. To top it off it was a school night as well. Suffice to say, Friday night after a hard days work, I was exhausted.

The result though was worth every last minute of sleep deprivation. I felt energised by what these guys had achieved.

To kick off we had an overview from Bill Hunt with a plug for the 4th Annual Conference in Ft Lauderdale, Florida, USA. Then the action got going.

We were treated to an update for the ADC Austin/Websydian Plex Web Client. Delivered by John Rhodes. This is a plex client delivered out of the box once you have the patterns and web environment setup which is receiving plaudits from around the community.

Then Gary McGeorge from Desynit in old blighty demonstrated their customer solution for a trading desk. The highlights for me were the sheer speed of the screen refreshes, the look of the application using the codejock controls with their YouEye pattern. The ability to split the application over 4 dealer screens and have configurable screen layouts blew me away and was a topic of discussion with one of my Plex introduced friends here in NZ the next day. Well done lads.

I wasn't so chuffed with the screaming baby in the background from one of the attendees of the conference who clearly forgot to mute their phone line. I would suggest in future that each presentation has a slide saying 'Mute that damn line now punk. Do you feel lucky!!!'

This was followed by Soren from Websydian showing us what TransactXML was capable of. I had never seen this before but now I understand what it delivers and with the import facility, how easy it is to implement, I will definitely take a much closer look.

Then we had Marty (MKS) and Chistoph (CM First this is the English link) demonstrate the new features in their respective toolsets that support Plex integration and best practice modelling concepts. I would certainly like to know how configurable the flow that was demonstrated actually is, but it looked like a pretty good start to me.

Finally Bill wrapped up with a sell for the upcoming conference. With the guaranteed weather and content similar to what we saw on Thursday it will be a great event by the looks of it, and I thought Cincinnati was good.

My only disappointment is that the guys at ‘all about’ didn't have a slot. What I have seen of their Plex-XML solution is mind-boggling and the presentation layer is amazing. This is a great solution and I am interested in seeing how this develops. They have recently updated their website to include integration with a rich web editor. Amazing stuff.

Until then.

Thanks for reading.
Lee.

Sunday, March 15, 2009

Why bad design sucks! - Part II

Hmmmm,

As I suspected a couple of weeks ago once you open your eyes to a subject and commence blogging about it you have it constantly in the back of your mind. My post on bad systems design and planning has had this affect on me.

I am minding my own business at my local quiz night when a question was read out by the quiz master or perhaps mistress as she is a lady. "What day of the week was Valentines Day in the year 2000?" Now as I am not the romantic type so I certainly couldn't recall this answer based on an event, although a friend 'H' was adamant he knew the day.

I decided the simple solution was the mobile phone calender so I plucked out the phone. It is a reasonably new Motorola Razor phone. So you know the routine, Menu, Organiser & Tools, Calendar. Voila.... The calendar is showing February 2009 (the current month when this event occurred).

"Excellent", I said (I remember the excitement), I can now work it out by counting back. Then I thought what about the leap years? So at this stage I decided to press the previous month button again and again and again working my way back in time faster than Marty McFly in his time machine and I didn't need a flux capacitor.

You get the idea, November 2008 came and went. July 2006 soon appeared but a few more key presses and my phone stopped working. It got as far as January 2005 and it stopped. No message, no nothing.

Bang. Another blog appears out of the blue. And a lot of questions.

Why did it stop at January 2005? How am I going to answer the question? Anyhow another of the team had an older phone that could go back further and we got the answer right in the end. fyi it was a Monday.

This got me thinking a little. What is the upper limit for this phone. After hundreds and hundreds of key presses (1007 to be precise) I got my answer NOVEMBER 2088. December 2099 I can understand as it would have covered a century but NOVEMBER 2088, what a strange limitation.

That works out at 83 years and 11 months or 30,650 days and I can't for the life of me think of a reason why my phone wouldn't be calculating this on the fly. It is not showing holidays. Leap years can be identified by a simple formulae. I certainly can't see a contraint in computing terms that would cause this to occur.

If someone can tell me why the programmer decided to restrict the dates in this way I'd be keen to hear your comments. It might be because they assumed that the phone was made after 2005 and therefore didn't need to go back for storing calendar entries. Fair assumption. But why put it in? Another unneccessary computer programmer/designer limitation I think.

Other friends on the night had different limitations on their phones and a colleague at work with a cool new blackberry had no issues at all with date range restrictions far in excess in both directions that he was prepared to sit around trying to find.

I don't think you have heard the last of the 'Why bad design sucks!' series....... It does worry me that people still impose design limitations.

Thanks for reading.
Lee.

Sunday, March 8, 2009

2e Development Standards - Screen Functions (Part II)

Part 2 in the series around screen function types will concentrate on the Select Record (SELRCD) function type.

This is often overlooked as a valuable function as it always appears to be generated on your behalf by 2e when you create a file. However, it has a few useful quirks that require a little thinking and I have often seen everly complicated logic added to them due to a lack of understanding where a simple workaround works quite nicely.

Below I summarise some of the key points when using the SELRCD:-
In general there should only be one SELRCD record per file, the default. I propose you rename your default select per for to '*SLT filename'. (See posts on naming standards). However, there may be occasions when it is necessary to select by a variety of different styles, or by a different key value. For example, where the primary key is a surrogate#.

These reasons may justify having more than one selection program, probably built over different ACPs. All other selects other than the default must be name SLT name and not *SLT name. This ensures correct ordering in the file. If using a different access path I would name them 'SLT By access path'.

The *SLT function is named this way as it will be used by the generator when building implicit field prompting code. The routine is also used to validate a record existence in relation checking. (The check restirction within functionaity). As such a default select must be first on the file and also never have its parameter interface changed unless the keys to the file changes.

CA:2E always regards the first SELRCD it finds on the model file as the default. If an alternative SELRCD should always be called for certain relation checks then that should be assigned via the Access Path relation settings. This situation might arise when a file refers to itself. E.g. Horse Refers to Horse for Mare and Horse Refers to Horse for Sire. At the relation level for the access path it is possible to set a default select record for each relation. Therefore the ordering considerations for the generator to substitute a select record are Function Level – Access Path Level – File Level (First on alphabetically on file).

The standard SELRCD should only perform a selection facility. That is, X=Select. However, a display option may be necessary in some cases as is F9 to Add a record.

Selection logic is usually performed one entity level at a time. Therefore if the SELRCD is for a lower level entity, e.g. 'Owned by', then the high order part of the key(s) will normally be RST.

The standard SELRCD should not pass back values other than the selected key. Validation and passing back of attributes is best left to standard RTVOBJ functions since the user may bypass a selection prompt and enter key values directly.

The SELRCD should not be modified to do anything unusual. If a user exits with *Exit key the default SELRCD will always exit program with return code Y2U0016='no value selected' and also send the same completion message. This processing should not be altered.

The parameter key values passed back should have NOERROR set. This is because CA:2E does not treat a 'no value selected' exit (Y2U0016) as an error when called implicitly. But it would be an error if called explicitly in an action diagram.

Closedown option should be set in the context that the program would be called.

If a SELRCD is not sufficient because of action diagramming restrictions then a DSPFIL may be used instead. But it should have a naming convention of 'SLT By or filename'. It should follow the same logic that a SELRCD would do, i.e. Same parameter definition and same action diagram style. This is often used if additional processing like F9 = Add is required.

The advantages of the DSPFIL method is it allows increased flexibility. But if you do choose this approach then this function will never implicitly be used and developers need to handle the output parameters. That said you could template this kind of function.
Tip

Using a Neither MAP input parameter does allow you to set CTL values for additional filtering.

Thanks for reading.
Lee.

Sunday, March 1, 2009

Why bad design sucks! - Part I

There are many areas of computing that have been let down by poor design.

Actually that may be a little harsh.

However, poor assumptions have definitely led to numerous designs that in hindsight could be considered questionable at best. These decisions have in turn led to systems that have suffered due to higher than anticipated volumes or longer than expected life spans.

A few examples that come to mind are:-

The millennium bug. Everyone knows this story. Developers designed systems in the 60s, 70s and 80s with 6 character dates ie DDMMYY or MMDDYY. The assumption being that storage is expensive and this system won't be around in 20 or 30 years. Well we all know how much effort was involved ensuring that airplanes never fell out of the sky in the late 90's, not to mention the contract rates for COBOL programmers that went with it. So I guess the lesson learned here is short sightedness.

http://www.trademe.co.nz/. Another example I heard about was for a very popular auction trading site here in New Zealand. The founders at a Microsoft TechEd conference a few years ago talked candidly about the early days of the business. They were describing growth of the business and unexpected challenges for the fledgling company.

The site was adding customers at a nice steady state when one day the system stopped working. No more new customers could be added.

They were a little concerned at first. After all they had just added their 32767th customer.

The issue was that in the early versions of their database they hadn't considered the domain of this particular field to carefully. i.e. the size. They had reached the limit for the integer field type on their platform. Now that the site is the most successful site in New Zealand and has made the creator a multi-millionaire, I am sure they have used at a minimum a long integer. The lesson learned here would be factor your wildest assumptions into your database designs.

www.Virtualrugby.co.nz. A sports predictions site here in NZ that has just rebranded again with another sponsor but suffered the ignominy of poor application performance and a whole host of players unable to access the site. On one occasion I was advised that the server was unable to make a connection because the limit of 111 connections had been reached. This is for a site that had over 100,000 active participants the previous year. I will go as far as suggesting the infrastructure suppliers arrangement may have changed as a result of the sponsorship change. Hopefully they'll get it sorted.

The lesson learned here. Never underestimate your audience and your processing peaks. Most of all ensure that your test systems have a reasonable subset of data to stress a mass participant application. Three guys in a room pressing the submit button as often as possible is not load/stress testing.

IPv6. Another in a long line of bad designs, or is it? It is alleged that we are to run out of IP addresses in the next few years. Some claim that this is the millennium bug of the 2000's. If it is and given the age of computing in general, we might have a few more yet. Sounds not too different to the 100 year storm scenario that happens every 4 years in these days of global warming.

I guess this one could have also been avoided but the caveat once again was when IP addressing got going the internet was quite young and connected devices were at a far lower number than they are today. Lesson earned! What do you think?

......

With all these though, IMHO it was human expectations that were at fault or shortcuts being taken to save a few bytes here or there. My advice to all application developers is to ensure that all your applications have database fields that are capable of supporting data sets beyond your wildest dreams. And to ensure that your application architecture is fit for purpose.

Bad design really does suck. Ask your end user(s).

Thanks for reading.
Lee.

p.s. I titled this Part I as I guess that now I have finally got this off my chest there will be other scenarios out there that will jump out shouting - BLOGGERTUNITY. Actually, one has just emerged but I will save that for another day.

Tuesday, February 24, 2009

*Arrays can be quirky in 2e

Hiya,

I have just become aware that *Arrays do not support the correct ordering sequence for negative index values. This has been referred to CA Support (2nd Level) for investigation.

My scenario is an array that is ordered based on a difference between two values. For the purposes of a meaningful example lets pretend that our array is a league table for the English football premier league (Soccer to some). If your game is rugby or another sport then you can draw your own comparisons.

The scenario is that after 2 games of the season I have 5 teams on 4 points. These teams are place 1 to 5 on the table. Let's further embelish this example and assume that my team, Tottenham Hotspur (Spurs) are at the top. :-)

TeamPointsGD (Goal Difference)
Tottenham4pts+78
Liverpool4pts+5
Everton4pts0
Wigan4pts-4
Chelsea4pts-8
......
Arsenal0pts-78


Apart from the obvious good start by Wigan and the strange GD for two games. I believe the example table to be a fair reflection of the real world. With Tottenham at the top. COYS. Blue and White army. Stand up if you hate Arsenal.

If I were to create an *array in DESCENDING order with the keys of Points and GD. My array would sort itself as follows:-

TeamPointsGD (Goal Difference)
Tottenham4pts+78
Liverpool4pts+5
Everton4pts0
Chelsea4pts-8
Wigan4pts-4
......
Arsenal0pts-78


The arrays doesn't handle the negative sign and although it preserves the negative sign it is unable to sort it. Note the order of Chelsea and Wigan.

Until this is fixed, a simple workaround I have used is to *ADD an arbitary figure to the GD to ensure it is a positive value. In order not to blow a limit (as over a season a team can be -100) I need to cater for a higher number so I chose 10,000 for the *array as an offset.

At the point of display which happens to be a DSPFIL I simply deduct 10,000. Simple workaround. Hopefully, simple solution that will be fixed some time in the future. Another option which I contribute to my colleague Chris Koloszar is to do the 10,000 offset for the key and leave the original value as an attribute of the array also.

My main concern is for those of you that have negative values but have yet to discover them.

I will post updates as I hear back from CA.

Thanks for reading.
Lee.

UPDATE HISTORY
==============

2:54pm (Same Day). I have had some quick responses from CA (Very impressed - Thanks Lynn). CA claim this to be working as designed. I am countering that it is a bug and was designed incorrectly. I hope that this will be fixed and I will keep you all updated.

What do you think?

Next Day - Referred to development not a trivial fix but I am confident it will be a good look over. Thanks.

Friday, February 20, 2009

Goopression

I thought I'd have a little whinge today about Google. Well not Google themselves. I think that they are a great innovative company who have transformed how we all interact with the internet and for that, I am grateful. I do remember the early days with Compuserve dialup and prior to that premium phone bulletin boards and usenet groups.

But recently I have been exploring business ideas of my own. When I say recently. Like most IT guys I have been pondering the 'garage' project, aka the 'killer app' for years.

We can all use google to research our ideas, get an idea of the validity of the idea i.e. any competitors that may be lurking in the wings etc.

However, today, I am suffering for "Goopression". Google depression!!! This means that your killer idea (no matter how you search for it) has already been taken. The domain has gone, as has your enthusiasm for your idea. This feeling really sucks.

You see, as much as the internet can be an inspiration to us all. One quick google of an idea and all of a sudden you are depressed......Someone else has stolen your idea. Sorry - got there first.

Now for sure. If it is a good idea (which I believe I have) backed up by a great business plan you may well achieve your aim. You will remember the number of search engines that were around pre-google...... Just don't be surprised if your killer idea has already been considered, invented or patented.

That all said, if you are having the ideas in the first place then one day that killer app/idea will happen. Just be prepared for a little disappointment along the way courtesy of our friends from Google.

Thanks for reading.
Lee.

Friday, February 13, 2009

My top ten tips for a software developer

I was updating the blog and getting a few advance posts in place for February 2009. Thanks Blogger.com for the neat features of scheduling blogs that you introduced last year. This saves me a lot of hassle in remembering to post pre-written content and also allows for me to have a blog day every now and then.

Anyhow, I was also reading a few "Top Ten" advice lists that were sent to me over the years by a trusted colleague called Jim. I always take the time to read these and he generally only sends over meaningful content and this time was no different.

This did get me thinking a little so I thought I'd write one and see if he agrees.

I have blogged in the past about what I believe makes a good developer.

Today, I'll issue my Top Ten tips for developers covering both work and life. In no particular order apart from number 10.

1. Always be on the look out for the next big thing (in IT) and see if you can get in early enough to actually ride the wave rather than be left behind frantically trying to swim there.

2. If you find something you like doing and the opportunity is there to continue doing it, then continue to do it! Don't be bullied into career progression if it is not for you. My old boss once said to me that there is a difference between earning and dying. Words of wisdom for everyone.

3. Always test your code no matter how trivial the change. You have no come back if you didn't test a change you have made, fullstop.

4. The ten minute tasks always seem to take a day, or two.

5. Never assume anything when it comes to user requirements or management reporting.

6. Never under estimate the desire of the testing team to see you fall on your developer sword.

7. Never code if you are drunk as you will need to recode the next day. Also never ever ever ever ever ever return to the office if you are inebriated. You will start to talk about 'Pink Screen' technology and how one day you will be everyones boss or worst case scenario, you will set off the fire alarm with a toaster and cause an evacuation of a 21 storey building. Again, certainly no come back here, you are on your own. Believe me, these are true stories......

8. Remember good quality applications and systems have corners. You simply can't cut them.

9. Remember it takes 20% of the time to build 80% of what the user sees and interacts with. The remaining 80% is making sure that they don't break anything.

10. Never compile a top ten list and not have a decent one for point number 10.

Thanks for reading.
Lee.

Wednesday, February 11, 2009

Its Product Enhancement Time for CA Plex and CA 2e(Synon)

Not many software companies give you the chance to directly influence the strategic direction of a product you use.

The product team at CA are once again asking us to cast our votes for potential enhancements to the CA Plex and CA 2E (Synon) tools.

This recent communication was sent by Bill Hunt to all PLC (Product Line Community) members. If you are not on the list then you are not in the know.

Join.

See details below.

"Hello CA Plex and CA 2E Community,

User feedback, suggestions and ideas are an important element in our development planning efforts. With this in mind, we would like to invite and encourage you to participate in our annual Enhancement Request Priority Voting program. We are launching this program effective now.

As was also the case last year, we ask that you review the attached list of enhancement requests which our team has reviewed and considered worthy of additional research. There is one list for CA Plex, one for CA 2E - choose whichever list(s) are applicable to you.

From these lists, we ask that you submit your “top ten” priority enhancements from this list:
- Voting is done online:
o For CA Plex: https://www.casurveys.com/wsb.dll/156/PLCPLEX-ERJan2009.htm
o For CA 2E: https://www.casurveys.com/wsb.dll/156/PLC2E-ERJan2009.htm
- You must be a registered member of the CA Plex/2E Product Line Community in order to submit a vote. Use your registered e-mail address and password to log into the voting system.
- The online system is the only manner is which votes will be counted.
- CA Employees are not eligible to submit votes.
- Please do not send your votes via e-mail to me, or Daniel Leigh, or any other CA team member – votes submitted this way cannot and will not be counted into the results.
- Each PLC member is allowed one vote each (if you use Plex and 2E you are able to participate in both surveys)
- If you have colleagues using CA Plex or CA 2E, please encourage them to register for the PLC:
o Go to http://causergroups.ca.com
o Click “Join Today”
o Choose “CA Plex/2E Worldwide PLC Global User Community” in the drop down box indicating which user group to join
o Fill in the required contact information
o It only takes a minute and it costs nothing!
- In addition to the actual enhancement request survey, there are some poll questions included online regarding your overall use of the products, your impression of the PLC program and what events you would like to see or would be likely to attend in the future. We ask that you answer these questions as well; this would be helpful to us and very much appreciated.
- The “voting polls” will be opened Monday 9-February and close on Tuesday 31-March. This should give teams ample time to review the lists and make decisions on which items would be more of a priority to help your CA Plex or CA 2E development efforts in the future.

Our participation as a group in this program last year was excellent, and we hope to get at least as much participation as last time. If there are questions please don’t hesitate to contact me, thank you in advance for helping us understand your needs, and for your continued support of CA Plex and CA 2E. "

JUST DO IT!!!!!

Thanks for reading.
Lee.

Friday, February 6, 2009

BLOGGERTUNITY

I have been meaning to write this little post for quite a while. I coined the term many many months ago when I was at my local pub quiz.

Most of you bloggers out there realise that once you start blogging you go one of two ways. You get addicted, it consumes time and you post. Or you have a go for a while and then it peters out as you run out of ideas or opportunities to blog.

This got me thinking about a "bloggertunity". This is an event that leads to the opportunity to blog.

I have checked http://www.dictionary.com/ and the word is not referenced.......Indeed the resultant alternatives leave something to be desired if you ask me.... Look Here.

I then decided to google the term and it came up with "Results 1 - 10 of about 171,000 for bloggertunity. (0.07 seconds)" Number of hits for the term as of 31st January 2009 17:40 NZ Time). So clearly it is going to take a while for the term to catch on. Try typing in Britney or Obama and look at their results for a comparison.

But who knows, in the future this word might be as much a part of everyday language as "googled". Time will be the judge on this one.

How many now? Click the link below to find out?

http://www.google.com/search?hl=en&q=bloggertunity&meta=

I then came across the piece of paper (hence this post) I wrote that night which has a few other interesting blog posts. So with pen and paper in hand you should never pass up on an opportunity to generate content for your blog.

Now, for the regular readers of this blog focused on software development principles and the model driven development tools CA Plex and CA 2E (Synon) you could be forgiven for asking the question "What relevance does this post have to your blog Lee?".

Well you are quite right. The answer is a resounding

"NOTHING, ABSOLUTELY NOTHING."

But it was a bloggertunity that I couldn't let pass me by.

Thanks for reading.
Lee.

Saturday, January 31, 2009

2e Development Standards - Screen Functions (Part I)

I guess the last couple of months have been a bit quite on the site. This was due to some holidays on my part and the visit of relative from overseas for 5 weeks. As you may know I live in New Zealand and the Christmas and New Year period is a time of relaxation and recouperation as well as a period of mass and I mean mass national holiday. Many businesses shut down for a compulsory two weeks.

I am now refreshed and ready to finish off those blog posts that I promised at the back end of last year.

Today I want to continue the 2e (Synon) development standards theme. I really want this site to be an extension to your technical libraries. So without further procrastination, I will get on with development standards, tips and gotcha's for 2E screen functions.

Today will shall concentrate on the single record function type PMTRCD. Future posts will cover the remaining single record function types as well as multiple record function types like DSPFIL etc.

If used as designed and thats a big 'IF', then this function should have fields on the screen that are prompts for the user to input some values which are then passed to another function for action. These would typically be a report or a processing program of some description.

But, like everything in 2e, the original design intention and actual use is only limited to the users creativeness. I have used these screen types for edit and display screens, prompts, information windows and even restricted subfiles. They are powerful for a number of reasons but for me the ability to DROP the relations and code a screen from a blank canvas is very satisfactory indeed.

General Pointers


A PMTRCD will typically be used in situations where an EDTRCD or DSPRCD is not applicable or too complex, or will have too much of a processing overhead or the traditional methods highlighted above.

For performance reasons any fields or file-to-file relations not needed should be DROPPED from the device design.

After USER:User Defined Action there is no check for any outstanding errors during the User Defined Action processing. If the function option Repeat=No then function may just exit and any errors will not be reported back to the user. Therefore it is a good idea to do a *Quit if PGM.*Return Code is not *Normal, or *Quit if *PGMERR.

Tip

If the function requires a complex set of fields or file to file relations which is not present on any existing file then consider creating an array with fields set to MAP for the PMTRCD. This is often easier and simpler than basing the function on an existing model file, then using lots of function fields and adding procedural based action diagram checking.

Gotcha's

If the function option Repeat=Yes is set then the PMTRCD just loops back to redisplay the detail screen. It does not execute USER:Load Screen. To make the function execute this user point again call user source 2E Force PMTRCD Reload






A PMTRCD behaves slightly different to an EDTRCD. During the validation cycle there is a *Quit if *PGMERR after USER:Validate Fields.

If the primary key relation check has not been turned off then an automatic prompt is generated to a SELRCD over the based upon file. But unlike other file to file relations there is no opportunity to choose which SELRCD is to be called. This I need to validate as I was unable to replicate at the time of writing.

Hope this helps?

Thanks for reading.
Lee.

Monday, January 5, 2009

Credit Crunch 2009 and IT.

I would suggest that other that Britney Spears in recent months "Credit Crunch" has been the most widely used search term on the google servers. No doubt someone will correct me on this subjective comment.

What does this mean for us in IT over the coming months/years. For sure many companies are going to tighten their belts during 2009. Capital expenditure will probably have processes, procedures and forms redesigned/created for general publication. The good companies started this 12 months ago.

Well I guess there is (as always) both opportunity and risk. Mergers and Aquisitions will continue therefore some consolidation will occur. How you are affected will very much depend on what you do, your role and business etc, your skills and a little bit of luck. There isn't too much you can do if your CEO is Bernard Madoff. But if your company is tight on expenses and hasn't blown the budget in recent months on a hope of business eventuating then you have a tick in the good column.

I list below my 5 top tips to avoiding uncertaintly or unemployment due to the credit crisis.

1. Networking.

Many people have simply rode the good times of the last decade and have largely ignored this simple working practice. We all know the phase "It's not what you know but who you know." Check all your email addresses for old colleagues and make contact. Join professional and social networking sites like LinkedIn and put your profile on the web and reconnect to those old colleagues.

You may go as far as publish a blog. At a minimum your CV should be on your regional major recruitment portal. Employment is changing. People are now being headhunted via these sites and in these times they (recruiters and employers) will perform the data mining rather than incur the costs to advertise. You may be the dream candidate but if the job is not advertised then you will not hear about it.

Subscribe to news feeds for your technologies and industry and get reading. Join forums and post questions and replies therefore becoming known as a regular and reliable contributor.

2. Review and update your CV.

Even if you feel you have the most resilient of employer and the most solid of job prospects at your firm, you should always from time to time review the CV. That technology buzzword from 2005 may not cut it when there are 50 candidates for a job, the search spiders may know it as something different in 2008. Just ask IBM and the rebranding of the AS400, System i, iSeries or Power System.

Read, read and re-read your CV. Tune it to your skills, be honest and review it candidly. Would you employ you? I see too many CV's where the presentation is poor. Spacing, order, typo's are a few of my pet hates.

So update the CV and rehearse in your mind what you would like to project at interview. If the CV doesn't say it then you are unlikely to be be given the opportunity to do so either.

Do not wait until you need your CV. It takes a week or two to polish a decent CV and in a competitive environment like redundancy when many people or made available that next job could be gone before you hit the spell checker toolbar button.

3. Perform a skills review and add breadth to your skill set.

If you are a one trick pony. Learn another one quick. Unless of course you are best of breed then you might be OK. As a developer you are used to change and learning on the job. Make 2009 the year where you spend less time on the golf course and more on training courses and home learning. Understand what is coming in your area and ensure you know it well.

Challenge your employer for a training course. If they refuse? What does this say.......

4. Talk to your boss.

Put simply. Don't panic too much if your company is pretty safe. After all some firms have business models that thrive in these uncertain times. But there is nothing stopping you asking the hard and direct questions of your boss. Any quality manager will already understand the local situation and will have a reply for you if they haven't already addressed this as part of their attrition strategy.

If you don't like what the boss says then ask the bosses boss. Get the answers you need.

5. Cut your expenditure (Work and Home).

There are many things you can do here. Take sandwiches to work. Car pool to work. Reduce mobile phone expenses. Go to the gym instead of the pub to name a few.

All of these will boost your savings a little just in case you are cut. This will increase the amount of time you have a make an informed next career choice rather than a hasty decision and a blot on the CV.

As a Plex/2e developer you are probably slightly more shielded than others. After all, you are not ten a penny people. That niche skillset could help out quite nicely.

So look out for the signs.

Good Luck.

Thanks for reading.
Lee.