flavio.furlan

4 Posts

Finally we know the winner of the First ABAP Championship. Actually, four classes finished with same points.

Some time ago, me and Fábio Pagoti release 1st ABAP Championship - Get ready!, where developers have the chance to test your knowledge in ABAP and programming logic. They must have to create an ABAP Class to play Tic-Tac-Toe with another competitor.
We 1st ABAP Championship - Rules to record all games in video, but we realize that we are programmers and we create a ABAP program to execute all tournaments.
You can check the tournaments program here and the output of the program here.
Every class plays each other in games of 4 turns, where every classe had same chance to start the game.
The points were calculated according this rule:
  • player earn 3 points for each victory;
  • both players earn 1 point in case of drew and;
  • zero point in case of lose.
You can check the final score here.
I do not presente any participant, I'll let their code speak for themselves. You can check all participants classes in our Code Exchange project.
Thanks for all participants. We hope you enjoy as we did!

(Portuguese version)

I'm in the airplane flying back to home from SAP Inside Track São Leopoldo 2011 (or hashtag #sitsl for twitters). I was there together my fellows Marlo Simon and Maurício Cruz and, off course, many other interesting people from SAP and community.

We share same place with another event, SAP Tech Tour, because that we count with several "SAP notables", like Erwin Rezelman, SAP Labs Latin America President and the Executive Board Member, Vishal Sikka, that made a video exclusively to the event.

It was my first official SAP event that I join and the final balance cannot be better. You always can gather good information from SCN links, but hear about SAP technology strategies direct from your executives was one of the most valuable experience in this year.

In the afternoon the Tech side of the event up in the stage. We have Marlo speaking about mobile applications, discussing the differences between native apps and web apps. After Marlo presentation, Ronildo Santos talk about SAP Gateway, including a very fast demonstration.

After coffee break Maurício start your presentation talking about usability in ABAP programs. You may know Maurício from your Usability in ABAP Programs about the same subject. Very good discussion and I'm sure the entire community have something to share about user usability.

The last presentation was about open source projects as a tool to help new ABAP programs gather some experience prior your first "real" project. I expend some time to explaining about our experience with ABAPDoc2 Project and what is the next steps for 2012.

Also in the afternoon in parallel with SAP Inside Track presentations, participants had a chance to participate on three training sessions related with technology themes that we meet in that morning.  It was the only negative point of the event, I really want to participate on all sessions in another day of event.

Besides that, there is nothing to complain about event organization. The event starts and finish on time and the organization was triple A!  The SAP Labs office in São Leopoldo is a wonderful build. Not because it's very beautiful, but because it was built follow all ecological best practices. It stands as SAP's first environmentally-friendly building in an economically emerging country. In fact, the building has been submitted for "Gold New Construction" status under LEED (Leadership in Energy and Environmental Design) international standards.

Another point that I can check in loco, is the the Erwin statement: "We designed the new building as an environment to inspire employees for innovation." Yes, you fell innovation in every corning.

I brought to my home was the experience to be in contact with other members of community and the opportunity to start new network connections for the future. If you have same opportunity, don't miss it.

See you in the next event!

Sometime ago I published here in the SCN Weblogs the ABAP101 Projects to aim juniors ABAP developers get some experience through open source projects. In summary, we "hire" ABAP newbies to work in the open source projects with our coaching.

The project chosen was ABAPDoc and we called our project as ABAPDoc2. The first goal of this project is to refactory the original code to able next level of improvements, like templates, XML (SAPLink), Web Dynpro etc. To able those future improvements, we will follow MVC framework and the text here I will explain the ABAPDoc2 Model.

 

ABAP Workbench Model

 

The goal of this model is to abstract all types of ABAP Workbench objects, like packages, function groups and global classes. Check picture bellow of ABAPDoc2 model:

Let's start identifying all classes to represent the objects in the workbench, which starts with ZCL_WB_, where WB states workbench.

Representing function groups, we have the class ZCL_WB_FUNCTION_GROUP associated with class ZCL_WB_FUNCTION_MODULE that represent function modules. The association chosen here was composition, because the function module can only exist if it's linked to only one function group.

It must be considered at implementation time and most probably the class ZCL_WB_FUNCTION_GROUP will be responsible to create all objects of class ZCL_WB_FUNCTION_MODULE. However, it's an implementation detail that the program must have to respect when he/she is coding it.

The class ZCL_WB_SOURCECODE represents the source code, even for function modules or method implementation.

The class ZCL_WB_CLASS is responsible to provide services related with global classes. Like function group and function modules relationship, the class ZCL_WB_METHOD is linked to ZCL_WB_CLASS and the ZCL_WB_METHOD objects can only exists if it's associated to a ZCL_WB_CLASS object. 

The third object in the workbench is the package, represented by class ZCL_WB_PACKAGE. In the ABAP Workbench a package can contains others packages and WB objects. However we decided to do not represent it in the model, because SAPLink still does not support it and it should be included in the next release.

All WB classes heritage from the same class called ZCL_WB_OBJECT that implements ZIF_WB_OBJECT interface. This interface is very important because it defines all methods that must be implement in the all WB classes. Based on this picture, all WB objects have follow methods:

 

  • LOAD( ) is responsible to extract the information from the system and load all attributes in the object. For instance, if I create an object from ZCL_WB_CLASS, with NAME attribute as "CL_GUI_ALV_GRID" and call LOAD( ) method, the implementation must read information of class CL_GUI_ALV_GRID in the system and load all object attributes.
  • SET_NAME( ) and GET_NAME( ), those methods are responsible to define and return NAME attribute.
  • GET_HTML( ) is responsible to generate and return the HTML code.
   

 

So you can see that LOAD( ) and GET_HTML( ) are the most important methods in this Model.

Project Class 

To coordinate all services from workbench model we have ZCL_ABAPDOC_PROJECT class, who is responsible to provide all services to load and generate HTML code.

In the method list you found SET and GET that are responsible to define and return attributes. Bellow I describe two most import methods in this class:

  • LOAD_ALL( ), this method will loop at all objects associated with ZCL_ABAPDOC_PROJECT and call method LOAD( ), using polymorphism calling LOAD( ) method implementation according the object type.
  • EXPORT_TO_HTML( ), here the HTML files are going to be generated in the user desktop.

Next Steps

For this release, the ABAPDoc2 are going to only generate HTML files. In the future, we plan to also generate Web Dynpro component. I still do not know how to do that, but I'm sure that Model can allow us to generate any type of output, include allow to user use template to format HTML output.

I’m teaching ABAP for ABAPers wannabes since 2008 and in every project I had worked I tried to teach what I know and coach ABAPers 101 in the beginning of theirs careers. It brought me some experience on that and one of the hardest issues they have to deal with is your lack of experience.

After the end of every ABAP class the same question always come up, “where will I work as I don’t have any experience in ABAP or even in the SAP world?”. Few companies don’t want to hire junior consultants; there are lots of job opportunities for “old monkeys” but almost none for who have just learned to WRITE or CREATE OBJECT. List of exercises or flight management projects do not help them to prove to hirers what level of experience they have if theirs project list at CV is blank.

Because of that we (me and Fábio Pagoti, also instructor and ABAP101.com editor) start to idealize how we could help our students to get some experience in the “official way”. So, in the beginning of July’11 we launched the first phase of our plan called ABAP101 Open Projects. It’s just an initiative to encourage our students start to collaborate in the open source projects – projects by principle hosted at Code Exchange.

The mission with this initiative is to allow new ABAPers to get some experience and show your work for your future employer. In others ecosystems like Ruby on Rails, it’s common to hirers check the contribution of future employees in open source projects. We would like to introduce this type of culture in the SAP-sphere where contributing in the open source project is very welcome and could be used as criteria at the moment company decision.

Our project involves coaching them on the several activities in the project, assigning activities, clearing technical doubts and guiding on Code Exchange etiquette. We already have a list of project proposals and in all of them some golden rules must be followed, like the utilization of ABAPdoc as documentation standard.

After reviewing the ABAPdoc functionalities we didn’t find some features that we judge are very useful for the others open projects. Instead of implement them by ourselves, we decided to give opportunity to our students have some fun.

ABAPdocis our first project. It’s a proof-of-concept of our idea. We already invited ABAP101.com readers to join into the project and I will share with SDN readers the results in the near future.

Despite you may find our initiative a little utopic, we’d like to hear your feedback. Do you think that open source can help new ABAPers to get experience? Do you think open source contribution could be used as criteria to contract new developer? What do you suggest? Do you have any idea?