Introduction

My name is Tobias Trapp and I am an SAP Mentor. I am working as software and enterprise architect in the statuory health insurance in Germany together with my colleague and fellow SAP Mentor Thorsten Franz who also blogged forward to me. Some people wonder why AOK which is a relatively small company has two SAP Mentors but the answer is very simple - we are building a industry solution on top of SAP for Insurance and SAP NetWeaver and we have huge challenges: big data, most processes are automated, our product has to be flexible because of frequent health care reforms and we topics like mobile / telematics in health care are coming. We had to learn how SAP products work, what their strengths are, how to integrate them and how to build add-ons and new solutions on top of them.

Fun (?) facts about my hometown

I live in Mainz, Germany, which is the capital of Rhineland-Palatinate. Since 2008 Mainz and the surrounding region Rhenish Hesse are members of the Great Wine Capitals Global Network besides Bilbao, Bordeaux, Florence, Capetown, Mendozy (Melbourne), Porto and San Francisco.

If you are interested in Roman history you will love Mainz because you can find ruins of there are buildings everywhere: The Drusus Stone – the (empty) graveyard of the brilliant military commander Drusus Germanicus, the ruins if the aqueduct, the Column of Jupiter, the Roman Gate and the Roman Theatre. Drusus smashed Germanic people successfully and the legend tells us that a female druid told him not to cross the river Elbe because he would die. In fact he fell from a horse and died afterwards.

I like most the sacred Site of Isis and Mater Magna which was discovered in the course of the construction of a shopping mall and can now be visited in its basement. If you are in Mainz you should definitely visit the little but beautiful exhibition.

I read that the 1000 year old Mainz Cathedral possesses eggs and feathers of the Holy Spirit as relic but it’s not presented to the public.

Mainz had the earliest republic in the German state and the ethnologist, travel writer and revolutionary Georg Forster played a leading role in 1792.  I read his travel writings “Reise um die Welt” which is impressive because of his sensitivity to other cultures and is a superb example for the spirit of enlightenment.

800px-Mainz_aerial_photograph.jpg
Mainz and the districts right of river rhine.

Thorstens's Questions

1.   What is the best you can teach others, or share with others?

I learned that I need a very wide variety of interests for a happy life. I need intellectual inspiration, challenges at work, cultural activities and physical exercise to stay healthy. I think being too one-sided has negative effects for most people. That’s why I want to inspire my friends and sometimes I surprise them with unusual ideas, experimental dishes and so on. So if some of my friends need some new and unconventional ideas or inspiration, I hope I can share it.

2.   Suppose you won $500,000,000 in the lottery. Let’s allow for two years of reckless spending and fulfilling yourself some dreams – after that initial phase is over, what do you want to be and do?

I don’t think I’m smart enough to answer that question – so of course I would ask Marilyn Pratthow to spend the money. Perhaps she would encourage me to establish a foundation where young can people explain me their projects and visions and if they convince my I’ll give them support.

3.   Marilyn’s question: Describe an instance when empathy in a project, development, collaboration, work experience, or community interaction turned a situation around (or should have).

I will tell you a story from my private life: Some years ago I practiced ballroom dance and my dance partner and I have been highly ambitious. We wanted to be excellent and unfortunately always fought who’s right and who was wrong. In fact a good friendship ended because of our massive egos and in fact we didn’t talk to each other for years. And this is what I learned from it: ambition and will to excellence need empathy – otherwise frustration about failures and errors will occur. And failures will occur if you leave your zone of comfort and routine activities. My conclusion is: empathy and striving for excellence should go hand in hand.

What affected your career most?

 

I worked for a renowned German software house which got in trouble after the crisis starting with 9/11 – in fact this was not the only reason because they made some severe mistakes in business before. 15 days before my probationary period was over they fired all new entrants and so I was unemployed for 15 minutes. At this time I was working at AOK Systems as external consultant and when a manager heard about it he hired me instantly. When I think about it afterwards this seemed to have a psychological effect on my career because I didn’t like this situation and so I decided to become an expert with lots of possibilities in the job market.

 

In the end it was the right decision because I was now able to take influence on long term strategies and could learn from the consequences: what went right and what could still be improved. For me working as external consultant is a little unsatisfactory because in most cases you will not learn about the results/consequences of your activities because after a project is over usually you will work for a new customer.

 

What did you learn at university?

 

When I studied maths I learned about at my mediocrity. When I started maths at university of Hamburg I was one of the best students. I moved to Bonn which has famous mathematical researchers and I learned very quickly that I my mathematical skills and talents are only about average although I completed a very good exam in the end. When I first joined a seminar with 70% Chinese students as participants I learned that I doesn’t matter that you are good in a relatively small city like Hamburg if you have to compete with the best students of a Chinese province. So if you want to achieve excellence you have to raise the bar to an international level.

 

At university I learned a lot about mathematical optimization and Operations Research and I am convinced that we can make enterprise resource planning smarter. I hope I can prove it in future projects.

 

Blogging It Forward

 

I would like to forward this blog to Roel van den Berge, Daniel Koller and Hendrik Neumann which are highly talented memebers of the SAP community. I would like to ask them the following questions:

  1. If you were 20 again, what would you study?
  2. What gives you inspiration for your professional live?
  3. Marilyn’s question: Describe an instance when empathy in a project, development, collaboration, work experience, or community interaction turned a situation around (or should have).

Finally

Please follow the Blog It Forward Chainin order to be updated when Daniel, Hendrik and Roel and other members of the community blog it forward. Also, please join the fun (see the original blog on how to do it)!

Since some weeks the SAP Help Portal possesses feedback mechanisms: you can rate help pages and give feedback to documentation writers from SAP. So far this mechanism has been enabled in SAP NetWeaver documentation in release 7.02. For this release the whole SAP ecosystem can use this technique to

  • tell documentation writers when they did a great job and what we appreciate,
  • indicate errors within the documentation and
  • tell when we missed something within the documentation.

 

Let‘s look an example. In NW 7.02 the Help Center was introduced – it allows us to provide information about applications. The framework is documented here. In my opinion the documentation is great because it contains a figure which is shown below.

004.JPG

And at the bottom of this page there is something new: a possibility to rate the page and to write a feedback text which is shown here:

003.JPG

Now you can give feedback. I decided that the figure on this page I is great but as software architect I would appreciate additional information on a overview page and I decided to give this as feedback to the documentation writers: which UI technologies are supported? Can the content be extended in a multilevel way? After pressing the “Send Feedback” button the following message was displayed:

005.JPG

IMHO this is a great improvement of SAP Help Portal. And from my own experience I know that documentation writers and architects really appreciate this kind of feedback. Last year I was able to speak in front of people from SAP Legal Documentation and presented them my expectations from documentation, how I work with documentation and so on. We had challenging discussions afterwards and they asked me dozens of questions: “Do you really need the information on this level of granularity?” “I always thought this may be helpful but it’s good to hear it from a customer.” I learned that documentation architects & translators are passionate about their work and they really appreciate your feedback.

 

So I suggest that you start when you use SAP Library next time. Do you need information about Classification Toolset that allows you to add metadata to ABAP development objects? Then have a look at the documentation and don’t forget to give feedback. Or do you need information about Technical Receiver API for Client proxies which allows you to control the receiver determination of a SOAP request dynamically. So have a look and don’t forget to give feedback. Here is the complete list of all live feedback campaigns so far:

 

 

Did you already use the feedback mechanism of SAP Help Portal? What’s your impression?

In my opinion reuse tools are a strategic asset of ABAP application server and in fact this is the main difference between ABAP and Java application server. The reason is very simple: AS ABAP contains lots of tools for business programming which allow rapid development of business solutions. I already explained that in detail:

Since NW 7.0 there is a new software component SAP_BS_FND that is not part of AS ABAP and only available in SAP Business Suite systems (ERP, CRM…). The first thing I do when looking at a new Enhancement Package of SAP Business Suite is the content of BS_* structure packages because they are a treasure chest of reuse tools. What are the benefits?

  • I think it was the right decision of SAP to focus on strategic frameworks as foundation of SAP Business Suite. Even more: it is absolutely necessary there is a common infrastructure, data model for business applications of SAP Business Suite.
  • In my opinion there should be a common data model – think of Business Partner data model as common foundation for SAP ERP and SAP CRM for example.
  • I think creating a new software component is a big chance to establish a release strategy optimized to the release cycle of SAP Business Suite and not dependent on SAP NetWeaver.

But what are the drawbacks of this strategy?

Of course there is nothing wrong that SAP presented at SAP TechEd a demo system with a special set of software components. But there I see two problems:

  • SAP can’t reuse their tool suite for new products on top of SAP NetWeaver like Gateway which is on top of AS ABAP but not SAP Business Suite – therefore it has no software component SAP_BS_FND. For these kinds of application SAP has to do a downport of the applications to SAP NetWeaver which happened quite often.
  • Customers and ISVs face the same challenge: If they want to create application on top of SAP NetWeaver they can’t use applications of SAP_BS_FND.

If SAP wants to strengthen SAP NetWeaver as a platform for rapid custom development then SAP NetWeaver should contain relevant frameworks from SAP Business Suite Foundation like Business Object Processing Framework in main package /BOBF/MAIN for example. This could be established by a usage type “NetWeaver + SAP Business Suite Foundation” like SAP TechEd demosystem. And this would help SAP to develop products on top of SAP NetWeaver like Gateway, too. And this is something contradictory: pushing reuse tools into SAP Business Suite Foundation is a kind of confinement which can prevent rapid development.

In this weblog I show you a program that scans XSLT programs and Simple Transformations for certain commands. I present you a simple use case: In NW 7.02 Simple Transformations can call ABAP classes by the tt:call-method command. But how does it work? With this program you can scan existing transformations for examples. This is the input:

input.PNG

All XSLT and ST programs are scanned for an element tt:call-method – this is an element call-method in an XML namespace http://www.sap.com/transformation-templates .

The output is as follows:

output.PNG

In fact there are ST programs that contain the command like DEMO_ST_WITH_METHOD_CALL. There are also programs that have syntax errors like SEC_WSSP_POLICY2 which contain severe errors. IMHO SAP should use the program to ensure the quality of transformation in their software.

How does the program work? At first the transformations are selected and loaded using the class cl_o2_api_xsltdesc. Then the XSLT program zscan_transformation is used to scan the program – the result is a boolean flag. Then the result is given out resp. the message that an error occurs:

REPORT  zscan_transformation.

DATA lr_xslt   TYPE REF TO            cl_o2_api_xsltdesc.
DATA ls_trafo  TYPE                   o2xslttext.
DATA lt_trafo  TYPE STANDARD TABLE OF o2xslttext.
DATA lv_source TYPE                   string.
DATA lv_found  TYPE                   abap_bool.

SELECT-OPTIONS s_trafo FOR ls_trafo-xsltdesc.
PARAMETERS p_name TYPE string LOWER CASE.
PARAMETERS p_namesp TYPE string LOWER CASE.

START-OF-SELECTION.

  SELECT DISTINCT xsltdesc FROM o2xslttext
    INTO TABLE lt_trafo WHERE xsltdesc IN s_trafo.

  LOOP AT lt_trafo INTO ls_trafo.

    CALL METHOD cl_o2_api_xsltdesc=>load
      EXPORTING
        p_xslt_desc        = ls_trafo-xsltdesc
      IMPORTING
        p_obj              = lr_xslt
      EXCEPTIONS
        error_occured      = 1
        not_existing       = 2
        permission_failure = 3
        version_not_found  = 4
        OTHERS             = 5.
    IF sy-subrc = 0.
      lv_source = lr_xslt->get_source_string( ).
      TRY.
          CALL TRANSFORMATION zscan_transformation
            PARAMETERS name      = p_name
                       namespace = p_namesp
            SOURCE XML lv_source
            RESULT result = lv_found.

          IF lv_found = abap_true.
            WRITE :/ 'Found in', ls_trafo-xsltdesc.
          ENDIF.
        CATCH cx_xslt_runtime_error.
          WRITE :/ 'Error in ', ls_trafo-xsltdesc.
      ENDTRY.
    ELSE.
      WRITE :/ 'Could not load: ', ls_trafo-xsltdesc.
    ENDIF.

  ENDLOOP.

How does the transformation ZSCAN_TRANSFORMATION work? It is an XSLT program that gets an XML document (in fact the code of an XSLT or ST program) as input together with two parameters: a name of an XML element and a namespace (in fact an URI).

The result is a boolean flag given back in asXML format  - the typical way to bridge the gap between XML and ABAP. The result is X if and only if the number of elements of given name and namespace is greater than zero, i.e. there is at least one element. This is evaluated in an XPath expression in the following transformation:

<xsl:transform xmlns:xsl=http://www.w3.org/1999/XSL/Transform 
  xmlns:asx="http://www.sap.com/abapxml" version="1.0">
  <xsl:param name="NAME"/>
  <xsl:param name="NAMESPACE"/>
  <xsl:strip-space elements="*"/>

  <xsl:template match="/">
    <asx:abap>
      <asx:values>
        <RESULT>
          <xsl:if
test="count(//node()[namespace-uri()=$NAMESPACE and local-name()=$NAME]) > 0">
            <xsl:text>X</xsl:text>
          </xsl:if>
        </RESULT>
      </asx:values>
    </asx:abap>
  </xsl:template>

</xsl:transform>

Why is this useful? You can find examples for ST commands (ST is a proprietary language) and SAP proprietary XSLT commands. A list of those commands (and of course an explanation together with details) can be found in my SAP Press book about XML in ABAP.

As an easy exercise I suggest you to write a program that scans for XPath functions  which are within certain attributes of an XSLT program. You can also write programs that scan comments or other parts of the transformation which can be useful maintenance of transformations.

I had a lot of challenging activities within last year – let me mention a few highlights:

  • As SAP Mentor I visited the SAP internal developers’ conference DKOM.
  • As SAP Mentor I spent lots of time giving SAP feedback on SAP documentation.
  • I took part at a Customer Engagement Initiative for improving SAP’s SOA toolsuite.
  • When I learned something new I put down my knowledge in SCN wikis and blog entries.
  • I won a SCNotties award in Madrid for “Flamenco y Olé”.
  • I took part at SAP TechEd Madrid as speaker, gave interviews, took part at expert networking sessions and organized one session by myself.
  • I took part at SAP Inside Track Eindhoven and gave a lecture. SAP Inside Track Eindhoven was really a blast and I’m already looking forward to the next one.
  • I wrote a chapter in the revised SAP Press book about SAP Smart Forms about correspondence frameworks in SAP Standard.

But the most satisfying activity was My first SAP CharITy Project I started last month: I coached a highly skilled SAP consultant in online sessions. In fact I did a great job and we will star follow up series of sessions in January. So what is a SAP CharITy project? The answer is simple: Just hire an SAP expert for a training or spot consulting for a donation to a non-profit organization. So this is a win-win situation for everyone.

What happened in my first SAP CharITy project? My client was a consultant wanted to get an advanced training about a one of the topics I’m specialized in. He was interested in theoretical background as well as working solutions. My client had a specific business case in mind and we both discussed different solutions and their properties, advantages and disadvantages:

  • Analysis of the scenario: What technologies could be used solving the problem?
  • I sketched different solutions and presented prototypes. The consultant created working solutions from those prototypes.
  • We discussed arising questions in the next online session. I also did reviews and gave remarks on different aspects: Is the solution easy to understand and to maintain? What about high volume scenarios for example? We also discussed different approaches and how to test the solution.
  • An important question was “enterprise readiness” so we discussed many aspects in depth: high volume data, robustness and error handling and much more.
  • After solving a practical problem this way I decided to become more theoretical and covered advanced technical aspects and even explained related business standards and best practices.

So what was the difference between that approach and a standardized training?

  • I talked about solutions that have proven to be working. I could benefit from experience with that topic since many years and implemented solutions in different roles as developer, architect in support and quality management.
  • I tried to plan and tailor the training to the knowledge and knowledge of my client.
  • I prepared each session with a small script that I sent to my client a preparation. This script contained subject matter, exercises and solutions.
  • Of course I won’t use the specific business case of my client as well as its details in further trainings and blogs.

What did I learn from the first training? What is my advice to people who want to do the same?

  • Working for charity is very satisfying.
  • I was highly motivated to make the training a success.
  • Don’t underestimate the time for preparation an online session. The client has chosen to get a special training and will even ask questions about advanced topics.
  • Don’t forget the “logistics” for online webinars because you need a technical infrastructure. Recording the session makes a wrap-up easier.
  • If you want to tailor a training to your client’s needs should carefully choose an appropriate business scenario. So again accurate preparation is important.
  • If the client wants to develop his own solutions he needs a training system like NSP with adequate software release and perhaps complementary tools.
  • For the follow-up training I’ll prepared a precise plan of possible topics of the training and we’ll discuss this in detail.

I hope the idea of SAP CharITy will become accepted. I think the concept is ideal in the following cases:

  • For a freelancer the contact to subject matter expert having experience from many implementation projects can be far more useful than a conventional training. Another advantage is that online webinars can be scheduled in a very flexible way.
  • A SAP CharITy project can be a spot consulting for senior developers and enterprise architects working for company. In my opinion this gives the chance to get inspiration, to broaden the horizon as well as to do a detail analysis of a business problem.

I hope that within next year many people will visit the SAP CharITy wiki page and decide to hire an expert for training or spot consulting. It gives you the chance to meet some of SCN’s best experts and topic leaders and benefit from their experience. And as a side effect you will help a non-profit charity organization.

When I had the idea of CharITy SAP Projects I thought that this would be easy to get them started. In the next months I learned that (at least in Germany) this is a difficult task:

  • Many people didn’t understand this concept. I think this has something to do that they can’t imagine that someone offers a training or spot consulting "for free".
  • Some people in HCM context you thought I would be looking for a new job and sent to me standardized letters that there are no free positions in their company.
  • Other HCM people liked the concept but they had difficulties with their budgets: There processes require that they offer standardized trainings scheduled at least one year ago.

I discussed this with a senior coach whose clients are executives of companies and he suggested that there should be a charitable trust that drives these projects. I agree with this idea but I don’t have so much time to arrange a new organization. Maybe SAP could help us here? But this is a topic for another blog post.

But then I was lucky: a freelancer contacted to coach him in a technical topic I am specialized in. I suggested to do it as SAP CharITy project so he should donate the money to a nonprofit organization of my choice who does really good work. He agreed and so we started.

I think this freelancer made a really good decision:

  • He decided that standardized trainings have been some disadvantages: it’s difficult to participate because as freelancer he hasn’t so much free time so it has to be an online training in the evening.
  • He needs a training especially tailored for him according to his knowledge and the things he wants to learn.
  • He wants learn about solutions for real-world problems and wants to discuss them with experts who already implemented many of those solutions.

The preparation for this advanced training took me some time but it was a challenge:

  • At first I chose to preparate a script we would use in every online webinar as guideline. Of course in an online session we are free to digress or get into details but I wanted to suggest some learning goals, exercises and solution that I wrote down and sent him before the webinar. This training material was tailored for him and I hope it will help him in the next projects.
  • I decided to start with the basics and thought about the most common things that are unknown to most developers and to present a solution as well as many beginner’s mistakes.
  • He already asked me to find solutions for real-world problems so I was glad he sent me code snippets as well as solutions he created before. This was extremely helpful because I studied them, found some exemplary solutions and wrote down how I found them in the script. Then I added additional information about the concepts and techniques I used. Of course I won’t use these examples neither in future trainings nor in blogs – they are strictly confident.

In fact it took my some hours for preparation but I was extremely motivated because I want this project to be a success.

In this blog entry I blogged about my first SAP CharITy project and that customized trainings are a good candidate for this approach. I already sketched the concept of my training. In the next blog I’ll blog about the experience with this training and what I learned.

At SAP communities ROCK! I offered a session about ABAP package concept. There are slides and a video of the session available but I decided to write a series of blogs about the topic. In my opinion the ABAP package concept was – besides object orientation and ICF – the most important innovation of the ABAP application server. The reason is simple: the package concept allows to develop software so that is “soft” which is necessary for evolution of any software system.

In my opinion too many custom development projects don’t care about this and most developers don’t know about the ABAP package concept. I can only guess the reason: At the beginning of a development project the aspects of software logistics and naming conventions (Z or a customer namespace) are first challenges. Usually packages and namespace prefixes for development objects are defined to group some objects according some obvious properties: there is one package for FI development, another one for HCM and so on.

This may be appropriate for small development projects consisting of some report and BAdI implementations but will lead to serious trouble in larger projects. But even in small development projects the ABAP package can help you. I can give you an example from my own experience. One of my tasks as developer was to implement A2A and B2B processes and therefore I used the web service infrastructure of the ABAP application server – the package SAI. I think it was first shipped in 6.20 and there have been incompatible changes in release 6.40, 7.0 and I think in NW 7.0 SP 15 because of changes of SAP Web Service frameworks. Luckily I only used functions of the package interface of package SAI and so I had only a few things to change in the releases.

But the same applies to custom development of applications: if you create your own application with database persistence, application layer, UI that is used by another custom developed application you have to define proper API to guarantee authorization concept for example. Without package interfaces following problems will occur:

  • Developers don’t know what ABAP classes or function modules belong to the public API. Naming conventions won’t help you because you can’t assume that they are widely known.
  • It’s likely that developers start do use ABAP classes which you consider as “private” and you will get into trouble when you want to change them (think of refactoring or optimization) in an incompatible manner. When this happens your application uses its most important property: it is not “soft” any more as software should be. There are too much unwanted dependencies and you have to consider side effects when doing changes.

As a consequence I changed my programming style: when I’m coding an application I will write define a proper interface that helps developers to use my tools. When I want to reuse parts of SAP standard I first look at the package interfaces. This helps me to learn how to use SAP standard much faster and the chance is much higher that I don’t have much after a release upgrade.

I give you some example: When I wrote my last blog about a Operations Research & ABAP within SAP standard I learned how to use it by studying unit tests and package interface:

 

Use Cases of the Package Concept

The ABAP package allows nesting packages hierarchically. The package at the top level corresponds to an application.

The ABAP package concept allows you to create stable APIs of a package. This means that you can distinguish between public and private parts (implementation details) that can be changed.

But package concept has many other use cases – we can define dependencies to other packages of SAP standard as well to your own packages:

  • You can define dependencies to SAP standard. This can help you in SAP software updates because you use stable API and control the dependencies which is very help in impact analysis of SAP Switches & Business Functions of EhPs.
  • In a larger development project you can structure your application. You can define your own stable APIs to tell the developers who to use APIs and to protect some parts you would like to change in the future. This is most important if you want to decouple applications for an independent release cycle.
  • If you are delivering software components using the Add On Assembly Kit the control of dependencies to guarantee the installability of custom made SCs.

To come to the conclusion: ABAP package concept is the most important tool for software architecture. You can use package checks as part of extended syntax checks and Code Inspector to check violations of package interfaces.

I’ll discuss these and even more aspects of the ABAP package concepts here and will even go deeper into pesky details. If you like at SE80 you will find different options for package checks – “as client” and “as server”.

And last but not least there are two different package check modes: RESTRICTED and R3ENTERPRISE. You may ask why the concept is so difficult. In my opinion SAP had no other chance: the software structure of R/3 was too complex and there have been too much unwanted dependencies. On the way to ECC 6.0 SAP had to solve many problems – the most urgent comes from the introduction of EhPs that allows to define packages which are activated after switching in a business function on the customer system. Therefore you have to control dependencies because no object of a non-switchable package is allowed to use an object that is switchable. In my opinion the package concept is a necessary step for development of switchable units. But therefore SAP had to deal with R/3 code with many unwanted dependencies – so the definition of a strict and Java-like package concept was not possible – SAP had to define check modes that allow violations of package interfaces.

But first we I want to discuss some basic aspects of software development in ABAP.

Packages and Software Components

SAP and ISVs delivers the software as software components. You can find the list of installed software components in transparent table CVERS. You can think of Software components (in short SCs) as special transports containing metadata. Those transports are installed using transaction SAINT. Let me ask some simple questions:

  1. What’s the difference between software components in ABAP and in Java (SAP NetWeaver CE)?
  2. What’s the difference between ABAP packages and ABAP software components?
  3. What’s the difference between ABAP and Java packages?

There are some differences between SCs (or SWCVs – software component versions) in both worlds – but one is very important: An SC in Java defines a persistence unit in terms of JEE. In fact there is no such concept in ABAP – we have concepts like internal modus and LUW. In Java SCs contain DCs and so called top level DCs define the “visible” objects of an SC.

What about packages and SCs? These are completely different concepts. An SC is an artifact from software logistics and can contain complete packages (in an installation package – AOI). Packages can be assigned to software components but in contrast to packages they have no representation in ABAP Workbench.

In Java there is a concept of visibility – you can protect develop objects from being accessed. In Sap NetWeaver CE there is an additional concept of accessability. In ABAP there is none of such concepts. Event circular dependencies are possible which will lead to compilation errors in Java.

Reuse of Development Objects

The most important aspect of package concept is to keep control on reuse. So let my first think about to do reuse in a proper way. From the view of concept this very simple: SAP defined package interfaces of their packages and so an API consisting of ABAP classes, function modules, data elements and so on. If you want use the ABAP package concepts you should only development objects that are exposed that way.

So what do you think about reuse of data elements of SAP standard? In my experience there are many developers who just think of SAP standard as huge set of data elements they can reuse in their programs. But how to do it right? I think there is a simple advice:

  • If you use the data model of an SAP standard application, you should exactly the data elements of the application.
  • But misusing them will bring you into trouble. In most cases short texts and documentation is not correct. The definition of own data elements will allow you to define proper texts and documentation. Another consequence of misuse of data elements is that your software is not merger ready with SAP standard tools like Landscape Transformation: Basic Operations.

I think I have to clarify the last aspect. When you want to merge and split systems or change the SAP data (think of organizational management) or customizing in a disruptive way with tools like SAP LT you have to ensure that your custom developed application is merger ready. Landscape Transformation: Basic Operations works on the level of ABAP domains and will change the value if domains whether they are in transparent tables or in intransparent data containers. So merger readiness means exactly that that you develop the way it is described above.

Everything I mentioned above applies to DDIC domains, too. My advice is simple:

  • Use SAP domains only if you have a good reason. Merger readiness of an ABAP application is such a reason. Consider the case that you want to define a role of the SAP Business Partner application. Therefore you should create a new data element to have be able to define short texts, F1-help and search-helps. In this case you should reuse the BU_PARTNER domain of SAP Standard so that landscape transformation tools can analyze that this is an proper extension.
  • If you are using domains like CHARxyz please check whether they are exposed in package interfaces. And please check to which application it belongs to avoid unwanted dependencies to SAP applications you don’t use. Otherwise package checks against package interface are not useful because they’ll produce too much error messages.

What about reuse of ABAP message classes? In fact I don’t recommend it in most cases. Message classes are used to define error messages in BAPIRET-messages, in the Business Application Log (BAL) and sometimes in controlled dumps. If such an error message occurs with the use access you can find the correspond line in the ABAP code – but if you reuse error messages from SAP standard and is not easy to find the right line of code where an error message was created. And there is another reason not to reuse error messages from SAP standard: in most cases the long text is not appropriate in the context of the custom application.

Summary and Outline of the Blog Series

In this weblog I explained some use cases of the ABAP Package Concept from the point of view of an ABAP developers as well of an software architect. In the next part of this weblog series I’ll discuss

Last weekend at SAP Inside Track NL in EindhovenSAP Mentor Gregor Wolf and I discussed aspects of normative and non-normative documentation. We both agreed that a SAP System is a treasure chest containing many frameworks that are most important for developing business applications on top of SAP Business Suite. The reason is very simple: am NetWeaver AS ABAP isn’t just n very stable and robust application server, it is a platform for business programming.

I already blogged several times about the value of these frameworks because they are tremendously important for customers, partners and for the “SAP” brand, too. If you don’t know what I’m talking I recommend the following blogs: Reuse Tools  – the Treasure Chest of ABAP Systems and Reuse Tools as Part of SAP Branding and Value Chain in SAP Ecosystem. And some of those frameworks are so useful or interesting so that I start to blog about them: Operations Research & ABAP and Forward Error Handling – A short look at SAP Business Suite Ehp 4.

What’s the problem?

It seems to me that SAP puts the focus on some frameworks with huge strategic value like Business Workflow,  SOA Frameworks like Error and Conflict Handler and Idempotency Framework, BRFplus, Adobe Interactive Forms and so on. They are tremendously important and you’ll find much documentation.

In fact there are much more frameworks which have no official documentation or documentation only for end users but not for developers who want to use the framework in their own applications. I give you some examples:

  • Parallelization Framework – this is most important if you have to deal with mass data
  • Generic Error Handling –  nearly every business application needs a framework for manual and automatic error processes
  • Correspondence Tool for output management processes

I guess that the reason is simple that there is no legal documentation for developers: Creation takes time and money. On the other hand SAP has to prioritize in which order the documentation gets created and published.

Working for an ISV I know that there is a lot of internal documentation in wikis, Office documents and so on. Usually we can’t publish it for many reasons:

  • The quality is poor compared to documentation made by professional documentation developers.
  • It uses terms that are internally known but not to the community. Sometimes it contains code examples and screenshots that are not up to date.
  • It was written by people who created and maintained a tool and so it covers most advanced but not basic topics.
  • Sometime it contains names of developers we don’t want to publish because there are defined support processes & support organizations.

The Solution is simple: Let the Community help SAP

But it getting a somewhat “clean” version of an internal document is easily done. The hardest work is to get the documentation in a state that it is understandable for people who have no or only a basic understanding is a time consuming task.

But here the community can help: SAP gives the internal documentation to a group of experts from the community and they are doing the work. When it has a good quality these documents are published on SDN as non-normative documentation.

I think this is the road to success:

  • Because the documentation comes from internal documentation the quality will be very high.
  • The whole ecosystem (customers, partner and even people from SAP) can learn from those documents.
  • We can keep the documentation easily up to date.

And this is what I suggest:

  • Product Owners from SAP should do their best to have a concise & complete documentation.
  • If the documentation can’t be published in time they should give a suitable set of internal documents to the community for community driven improvement of the documentation.

Even if there’s a good legal documentation it can make sense to give documents for expert users to the community because this documentation will never be published on SAP Library because it goes too much into detail.

Last month the new SAP Help Portal went live. What changed?

  • The overview pages of the Help Portal have been completely renovated.
  • The pages look much more consistent and in my opinion – nicer.
  • I find it more easy to get an overview over all SAP products, the new features of a release, and all parts of legal documentation.
  • I really appreciate links to SCN content because besides official, legal documentation non-normative documentation is most important because of its narrative and collaborative character – think of discussions in forums, blogs and wikis.

I was interviewed on SAP TV about it.

 

But in fact the important feature will coming: a better “federated” search. You have the chance to test it on SAP TechEd Madrid at the test and usability center. The test is a kind of roleplay. You are an information developer who’s looking to search for a specific documentation: legal documentation and SCN content.

My favorite ABAP transaction have one thing in common: They are self-explaining and I never needed offline documentation to work with them. The reason is that the documentation is kept within the program in help centers. Usually those help centers contain

  • useful documentation,
  • diagnosis tools that that show if a certain information is relevant – so the diagnosis tool leads the relevant documentation,
  • links from the documentation to relevant ABAP transactions

In the following I will introduce some very sophisticated help centers from the On Premise world.

Troubleshooting Center of SAP LT

SAP LT consists of a set of very mature tools for client transfer & system merge. You can use it in data  harmonization to reorganize customizing, renumber number ranges and much more. The LT frontend is a really cool WDA app which has a help function that uses animated videos stored as shockwave clips in MIME-repository.

But the hidden gem of SAP LT is the trouble-shooting center of the “heart” of SAP LT – the Conversion Workbench. In fact CWB is an impressive optimized for high performance database applications using sophisticated parallelization strategies, bulk updates, job nets and much more.  Conversion of database tables is a rigorous change and during the performance trouble can occur: problems with table spaces and so on.

If a conversion run stops you have to restore table content, restart part of the job nets perhaps with different parameters and so on.  The LT troubleshooting center contains a detailed troubleshooting guide explains a set of operations, when to use them and that lead directly to the transactions you can use to execute the operation.

Automated Workflow Customizing

Another troubleshooting center is the automated workflow customizing that you can use to maintain the ABAP workflow runtime.  There is a tree view that leads you to all maintenance transactions together with explanations, diagnosis tools and so on.

You can start the center using transaction SWU3 on every AS ABAP.

When to use Smart Online Documentation & Help Centers?

Above mentioned documentation and help centers are really useful for power users who have to perform complex technical operations. So this approach is useful for

  • self test and automatic diagnosis tools
  • automated customizing
  • complex wizards – think of wizards in SOA context for example

Those self diagnosis tools containing guidelines and best practices are really important especially for power users. My question to you is: Can you imagine other use cases?

In my opinion the tight and smart integration between application and documentation is the most important feature of "smart documentation":

  • adding or linking help texts to applications
  • bridging application to social software like OSS, forums & wikis
  • intelligent systems use context information (perhaps the status of the system) to link to appropriate help context: documentation & best practices and so on.

What do you need to create Smart Online Documentation and Help Centers?

In my opinion help centers like above mentioned troubleshooting centers are really useful and have the potential as real killer application. But they are difficult to develop so following should be useful:

  • a framework that helps to develop this wizards efficiently in a standardized way.
  • a flexible release strategy and programming model that allows to update the content. In fact it would be possible to keep the documentation with the system as well as outside.
  • This framework should be extensible in a multi-stage approach so that documentation can be enhanced expanded not only by SAP.
  • Trouble shooting centers should be able to be extended  by own diagnosis content.

For me Landscape Transformation is one of the most interesting challenges. What is the reason? In an LT project you need a complex skill portfolio:

  • deep knowledge about concerned SAP applications,
  • enterprise architecture and architecture transformation,
  • master data management, consistency and harmonization,
  • skills in impact analysis and
  • testing skills.

Therefore you should know about the related SAP solutions in the area of Application Licecycle Management and Enterprise Information Management – and SAP EechEd is the best place to learn about them.

Madrid – here I come!

There are many intereresting SAP TechEd session about testing , custom code management that are important to me but I chose to visit the following ones.

Most important is the session ALM 227 “A new Platform for SAP related Business and IT Transformation” because it is about SAP LT.

I’m very interested Session ALM200 “What’s new in SAP Solution Manager 7.1“. The solution manager is a cornerstone in an LT project because of its functions for system analysis.

Data consistency is one of biggest challenges in Landscape Transformation project. The session ALM213 “Managing  Data Consistency Using SAP Solution Manager” deals with that topic.

Session ALM 204 “Change Impact Analysis with Business Process Change Analyzer” is another session about SAP Solution Manager that can be useful in a transformation project.

Let’s get social!

For me the most important aspect is getting in contact with other SAP professionals working in LT/SLO projects in an expert networking session. The topics that are most intersting to me are:

  • Best Practices for system analysis. Which tools are most useful?
  • How to test efficiently?
  • How to keep the knowledge ehen donig multiple transformation projects?

After I introduced the SAP LT product in my last weblog entry and named challenges in transformation projects I’ll discuss the most basic operation: changing the value of an ABAP domain. Why is this important? Usually all conversions and merges consist of transformation of domain values. In ABAP simple data types are called domains. These domains are used in fields that are part of complex (=composite) structures like transparent tables, workflow containers, BW InfoObjects, BOR references…

During harmonization and merge of systems (or clients) you will have to change many of domain values of application data, master data and customizing. You will renumber the domain values using SAP LT technology before merging the content of databases.

If you are using SAP standard domains LT will recognize them and will find all tables that have to be changed. If you are using a mix of standard domains and custom domains you have to spend effort to tell LT what to change. Let’s go into detail:

  • If you extend  data structures from SAP standard (this of the central Business Partner application) you should use SAP domains like BU_PARTNER:
  • If you create your own business objects you should create your own domains.
  • Never ever misuse domains from SAP standard. Creation of a domain is very simple and you can avoid serious trouble in transformation projects.

But even if you take the domain concept seriously this doesn’t mean that your SAP system is merger ready. In the following lines I’m discussing risks that can cause trouble. All those risks have one thing in common: You should check them as early as possible within system analysis. And if you find a problem you have to find a strategy, for example:

  • harmonization before the merge (cleaning data manually or with reports)
  • harmonization after the merge (cleaning data manually or with reports,
  • harmonization during the merge (mappings, special rules…).

In the following I discuss some risks & challenges you should analyze very seriously.

Challenge No 1: Referential Integrity

In ABAP there is no concept of rerential integrity. This means that you database table can contain nearly any values. Values that would violate referential integrity constraints can be inconsistencies -think of values that don’t correspond to SAP customizing and so on. Inconsistent data can lead to problems:

  • You’ll have to define special mapping rules.
  • If you detect inconsistencies too late - after a test - it will take you time to find out whether those inconsistencies are the result of a merge or not.

My recommendation to ABAP programmers: develop consistency checks that validate your data. You can use those tools to check consistency and to hunt bugs.

Challenge No 2: Semantical Correctness

Missing referential integrity constraints can be one reason for inconsistent semantics of your data. But there can be other reasons - let’s have a look at primary keys of database tables: in ABAP applications primary keys of transparent tables are usually defined using GUIDs or number ranges so you won’t have any problems. In a good programming style business logic coded in queries, reports, within the business object, workflows and only depends on attributes of business objects but not the value of the primary key.

This is a real simple and fundamental rule but in migration processes can be violated. Let me give you an example: if you migrate data from a legacy system into your SAP system in an implementation project customers may claim that those initial data have to be treated differently in programs: They have a special semantic and so programs have to treat them differently. My recommendation to ABAP programmer: don’t code assumptions on values of surrogate keys like number ranges in your programs! Otherwise your programs won’t work after renumbering the primary keys.

Challenge No 3: Genericity

In my blog entry “Don't try to be smart. Be smart.“ I discussed the problems of generic programming. Of course this applies to generic data structures, too. Data clusters and XML containers are really useful (think of workflow containers) but this flexibility doesn’t come for free:

  • generic data containers are hard to select and to analyze and
  • complex data models require complex processing algorithms – think of BW extractors for example.

So my advice to ABAP programmers: generic  programming is fun. But in business programming we need simple data models that are easy to understand and to analyze. If a data model gets too complex this will come back to haunt you in data transformation and merging projects. Here LT tooling will support you but analysis and checks done by you will take much more time because you can’t use standard tools like SE16. If you work efficiently you’ll have to develop tools like SE16 for generic data structures.

Challenge No 4: False Economy

There are many ABAP domains which are simply too short. Domains consisting of one or two digits can’t hold all necessary values in merged SAP system. This will even get worse because of naming and numbering conventions.

My advice to ABAP developers: Never forget that your application should work in a global SAP system. Don’t be afraid of using GUIDs as primary key for application data.

Challenge No 5: Implementation Guidelines

As an ABAP architect you should know the risks that can occur when merging domain values of your application. Those risks can be reduced if you create naming conventions for your customers so that the domain values will be disjoint. This can help you to reduce the effort of a merging project significantly.

Challenge No 6: Testability

Before the final merge you’ll do many test merges and perform tests. Every eCATT test cases can help you to reduce manual test effort.

Is your ABAP application merger ready?

I proposed some simple rules for ABAP programmers if they want to ensure that an ABAP application is merger ready. I think those rules are compliant with good programming style.

If you know that merging will likely happen then try to foresee the consequences and check whether your application fulfills above mentioned quality criteria.

These rules are necessary but not sufficient for merger readiness. In following installments of this weblog series I’ll go into detail and discuss special aspects like customizing.

Summary

In this installment I discussed aspects and pitfalls of the most basic of a landscape transformation project: renumbering the values of a single ABAP domain. I proposed some strategies to ensure quality and to reduce effort of a transformation project.

Of course Landscape Transformation projects don’t deal just with changing values of ABAP domains – usually they include processes, data and integration scenarios of the whole enterprise architecture which will be topic of further weblog entries.

SAP Landscape Transformation (in short SAP LT) is a solution developed from tools from SAP System Landscape Optimization services and part of the Application Lifecycle Management portfolio. At the moment version 1.0 is released but 2.0 is in rampup and is announced to be general available, soon. The product has a defined roadmap and SAP works on improvements with customers. In fact there is even an ASUG Software Influencer Council.

A short glimpse at LT 1.0

This toolset is shipped as ABAP software component DMIS on top of SAP Solution Manager. It is a framework with functions for system analysis (repository, customizing, number ranges…) and transformation tools that you use for client transfer and even merging SAP systems. The business case is simplification of IT landscapes in merging and acquisition scenarios and harmonization of customizing of large (perhaps even global) SAP landscapes. So the business case is

  • simplification of an enterprise architecture,
  • simplification & harmonization of processes and
  • reduction of total cost of ownership and perhaps even greening your IT landscape.

The documentation of the tool is good. We have

For me as SAP NetWeaver software architect this online frontend in ABAP package BTP_WD was really inspiring.

What does a Landscape Transformation project look like?

You can think of SAP LT as a framework with some content – think of merging routines for FI, HR and so on. When you doing landscape transformation – merging SAP landscapes for example – this will be done in a huge project consisting of several phases:

  • system analysis,
  • harmonization,
  • tests,
  • go live and
  • activities after the transformation.

Of course this is done in an iterative approach: You will perform analysis and tests all the time. The SAP toolset is quite sophisticated and generic – if you are interested how it works you should look at ABAP package CNV_BASIS.

What are the necessary skills in a landscape transformation project?

The key player of a landscape transformation project is the enterprise architect who owns the big picture of the existing IT landscape and the transformation goal. He works together with business process experts to understand the processes and data models and integration scenarios.

In fact those business process experts do the hardest job because they have to plan the harmonization phase. Within the harmonization phase the systems to be merged have to be aligned. This means harmonization of processes and of master data; which has impact to the whole enterprise architecture.

Before you start the harmonization you need a concise system analysis of repository, customizing and number ranges. Therefore you need an LT expert who knows how to use the analysis and transformation features of LT tool set. Of course general administration tools are helpful, think of transactions TAANA, SQVI and tools from SAP Solution Manager.

In my opinion the technical risks in a Landscape Transformation project are good to deal with. One big challenge is the automation of transformation processes in your whole enterprise architecture.

In my opinion tests are crucial for landscape transformation projects. Landscape transformation is comparable to a game that you have to win without conceding a goal. Therefore automatic as well as manual tests are absolutely necessary.

So let me summarize. A successful landscape transformation project

  • is a masterpiece of enterprise architecture,
  • needs management attention with clear and communicated objectives and
  • needs efficient communication between various experts.

Necessity of knowledge management

In this weblog series I will cover various aspects of a successful landscape transformation project. This will cover system analysis, harmonization, dealing with custom development, test and the LT toolset and I would like to discuss them in expert networking sessions at SAP TechEd.

In my personal opinion knowledge management is one of the key factors of a landscape transformation project:

  • Do you understand your SAP system in detail? Do you know every customizing which has been done since implementation of your SAP systems?
  • Do you understand the data model of your enterprise applications, their processes and integration?
  • Can you establish an efficient communication between experts in a collaborative way?
  • Do you know to link the enormous amount of data from repeated steps of system analysis to your specifications?
  • Can you estimate the harmonization the progress of harmonization?
  • You can’t freeze your whole IT landscape during all phases of your harmonization but you have to deal with necessary changes in your SAP landscape and other non-SAP systems.

SAP experts are knowledge workers. In development and implementation projects we need to get quick information:

  • „What are the capabilities of a certain product?“
  • „Is a certain behaviour bug or feature?“
  • „Is there anything know about the product roadmap?“
  • „We need best practices & guidelines for using a certain SAP framework!“
  • „How can I set up the product?”
  • „I don’t know how to use this framework – can you build me a prototype? My boss wants to the results in 30 minutes...“

Since I’m working as Software & Enterprise Architect and developing is not my daily work anymore the last kind of request are the ones I love most. So answering those kind of questions is my daily work because product owners, developers and customers are asking me frequently. Therefore I have to use various sources of information:

  • online documentation,
  • SAP’s legal documentation,
  • OSS notes,
  • books (SAP Press!) and
  • non-normative information in whitepapers, blogs, forums and much more.

Often the starting point for my search is „SAP legal documentation“. This means that SAP committed to describe exactly the behavior of the software. You’ll find those documentation within SAP Help portal (http://help.sap.com) and of course Docupedia, but the latter is something I’ll explain later.

In the following I describe the legal documentation which is necessary for functional and technical consultants who want to implement an SAP product and want understand its features in detail. End users are not the target group of this documentation.

Overall Documentation for Shipment

At first for any product like “SAP NetWeaver Process Integration 7.1 Including Enhancement Package 1”  there is an “Overall Documentation for Shipment” that contains links to all deliverables:

Example 1: SAP NetWeaver Process Integration 7.1 Including Enhancement Package 1
Example 2: SAP Transportation Management 8.0

Please remark that those overview pages exist for every product not for every part of a product. It includes links to mandatory key deliverables according to product standards. These are

  • Master Guide,
  • Installation Guides,
  • Security Guide,
  • Technical Operations Manual,
  • Configuration Guide and
  • Application Help (in particular see Function-Oriented View for detailed application help)

Master Guide

The Master Guide for SAP NetWeaver Process Integration 7.1 Including Enhancement Package 1in our example contains:

  • information about usage type,
  • installable software components and
  • installable software components per usage type,
  • description of the use case (SOA based integration) and
  • description of the system landscape.

Example 2: SAP Transportation Management 8.0  

So the master guide is relevant for technology consultants and everyone in the implementation project.

Installation Information

The Installation Information describes how to install the product in a certain technical environment (operating system and database) and is the most important tool for an administrator.

An example can be found here: Installation Guides

Security Guide

The Security Guide describes all security features during installation, configuration and run time. Let me cite the document: “The security guide

  • describes recommended deployment scenarios,
  • explains the data protection options offered by each component and
  • contains a description of how to configure each component for secure communication." 

Example 1: Security Guide
Example 2: Security Guide for SAP Transportation Mangement 8.0

Applications Operations Guide / Technical Operations Manual

These manuals are the most important document for administrators and covers all administration activities such as

  • starting and stopping the systems,
  • license administration
  • backup and recovery,
  • data archiving,
  • systems copy,
  • troubleshooting and much more.

Example of Technical Operations Manual: Technical Operations Manual PI7.1 EHP1 Example of an Applications Operations Guide.

Configuration Information

Helps the administrator to perform technical operations and is going into the depths of configuration.

Example 1: Configuration Guide for SAP NetWeaver PI
Example 2: Configuration Guide for SAP Transportation Management 8.0

Application Help

describes the functions of the software product in detail. For technical and functions consultants as well as for power users this is the most important part of the documentation because it explains the product and its behavior in detail.

Example 1: Application Help
Example 2 for SAP Transportation Management 8.0

Delta-Information

After the first shipment SAP offers case-dependent key deliverables, these are

In my role as functional and technical consultant this is first document I have a look at it and I recommend everyone to do so.

We can learn that SAP provides lots of different sources of information which cover installation, upgrade, technical operations with special emphasize of migration, security and troubleshooting.

The most difficult aspect is finding the right information. So in the last part of this weblog I try to discuss potential for optimization.

This is cool: meaningful & stable URLs

One of the best features of SAP Library is that I can switch the language very easily. If I don’t understand a certain feature I look at the same page in another language by switch “en” to “de” in the following URL: http://help.sap.com/saphelp_nwpi711/helpdata/en/61/8c3842bb58f83ae10000000a1550b0/frameset.htm This works even for different version of the documentation. Here is the SAP Library Article for WDA in NW 7.02: http://help.sap.com/saphelp_nw70ehp2/helpdata/en/7c/3545415ea6f523e10000000a155106/frameset.htm  If you change nw70ehp2 to nw70 in above URL you get to the features in a prior product version and look at the differences.

Potential for improvement: Linking  to Documentation of Applications

An SAP product contains many different applications, think of Advanced Adapter Engine and ESR in case of PI or Workflow Runtime and Web Dynpro ABAP in case of AS ABAP.  The detailed description of application components is most important for technical and functional consultants.  Many of those applications have names for application components like  BC-XI-IBC, BC-XI-IBD, BC-XI-IBF and so on. Although the response time for SAP Library is very fast it would help to have links to the applications because is takes very much time to navigate through SAP Library.

Potential for improvement: Linking  to non-normative Information

The help portal especially the Overall Documentation for shipment contains links to non-normative documentation which are forums and blogs (see above picture). Unfortunately these are only  very generic links to SCN resources like http://www.sdn.sap.com/irj/sdn/weblogs or http://www.sdn.sap.com/irj/sdn/weblogs. It would make sense to link to specialized forums, too like the Process Integration (PI) & SOA Middleware in case of documentation of SAP NetWeaver PI.

Potential for improvement: Linking  to approved Information

In my opinion most of SAP’s product owners are glad the community blogs and answers questions regarding their products. Some of those are blogs and whitepapers which are most useful to consultants. The reason is simple: If you want to use a certain product version (or an application as part of a product version) for the first time the most important thing is to get it running and to get response. This is the reason why every book about programming languages starts with a “Hello World” example. It is a creation of a very simple example but shows you got it running and get a response. Most SAP Whitepapers (but not the SAP Documentation) provide such examples which sometimes  get even more in depth and cover advanced aspects. A pragmatic approach would be that product managers can approve non normative information and link to these additional resources from the SAP overall documentation for shipment or for a special page with SAP Library – but this is a topic for Docupedia which I’ll discuss in future. SAP Press books are other very important sources to which can be linked, too.

Summary

The main SAP documentation types are also explained in SAP Library, for example here.

I covered most document types and left out Implementation Guideline & glossary for later.Please remark that OSS notes are not part of legal documentation although they are very useful for technical & functional consultants, too.  In next installments of this weblog series I will cover topics like online documentation, application help and non-normative documentation in depth.

The last days have been very interesting:

A glimpse on Standards and Open Source Tools

Why is this important? Let’s have a look at semantic standards and tool support. One basic principle of semantic techniques is the use of standardized vocabulary like RDF and OWL which are standardized by W3C. This techniques allow to code knowledge in a very sophisticated way so that it can be analyzed with tools from artificial intelligence.

This sounds really so why does not everybody work this way? The most important reasons is the complexity of this approach which I explain in three examples:

  • RDF is hard to produce. RDF consists of triples that build small sentences in the form subject, predicate and object. Because the object can be the subject of another sentence the result are complicated “nets” of statements. Unfortunately these statements are hard to produce manually even if you choose editors and a neat syntax like N3 or Turtle. One problem comes due to the fact that knowledge has aspects like time or place of an certain statement. In these cases it’s common pratice to introduce additional nodes .
  • Querying RDF you need additional ressources like RDF datastores for persistence and query engine linke SPARQL.
  • Ontologies are very complicated artefacts and should be created using tools like Protégé.  But nevertheless these are tools from academia which are only useful for key users. Protégé is extensible so you build you own plugins but this will take additional time.

So there is a variety and standards and Open Source tools which you can use for Semantic Applications but if you want to use them in the enterprise you’ll need some effort to create applications that are user friendly and easy to use.

From Academical Tools to Enterprise Software

There are companies who fill that gap. On the hand they offer solutions that can ran stand alone but they offer services & consulting to customize these tools to your needs and integrate them into you enterprise architecture. In another blog I’ll provide a concise overview about the economical potential but here I’ll only mention some companies whose tools I’m using frequently: Open Link Software, Clark & Parsia and ontoprise.  Even cloud based solutions are coming like Dydra which offers RDF as a Service.

In FindGrid SAP added tools of intelligent views to their solution integrated them with Enterprise Search and used NetWeaver Composition Environment as platform which shows the potential of CE especially for Cutting Edge solutions.

From Business Experts to Knowledge Managers

Unfortunately I could’t get my hand on FindGrid but I have some basic knowledge about K-Infinity of  intelligent views. It has a component called knowledge builder that allows to define semantic nets that are similar to ontologies. These allow you to define domain models, entities and relationship between them. So FindGrid is more than a Case Management because it allows collaborative research even which are more than bunch of documents & links.

I could imagine that this would be exactly the right tool for solving criminal cases, doing market research, enterprise architecting, knowledge stores for consultants and much more.

Let’s achieve Synergy!

Elements of IT Systems are data, functions and knowledge. For the first two aspects SAP is very strong: SAP Business Suite has a data model for exterprise applications and there many functions for all processes of an enterprise. These functions consists of ABAP transactions, workflows and Enterprise Services as SOA layer. And of course business knowledge is within the system as customizing for standardized processes and business rules within rules engines like BRFplus.

On the other hand we can integrate document management systems to SAP Business Suite and link business objects and cases (think of cases ad hoc workflows) to external documents. But these solutions are limited in the case of search and complex knowledge models.

In my opinion FindGrid has the possibility to close this gap and even more: SAP Business Suite become more and open using tools like Embedded Search and Project Gateway, so there is the chance to link business objects to concept models. In my opinion in the end this could lead very smart and and flexible software solutions.

Filter Blog

By date:
By tag: