Development Trends

Developing rich Internet applications for SAP with Adobe Flex

without comments

Do you want to know/learn more about RIA for SAP? - then read this whitepaper from Adobe.

Written by MKE

July 3rd, 2009 at 10:43 am

Find Flash security vulnerabilities with SWFScan

without comments

HP has released a free tool to help developers find and fix security vulnerabilities in applicationes developed with Adobe Flash.

From the HP Blog:

“The tool is the first of its kind to decompile applications developed with the Flash platform and perform static analysis to understand their behaviors. This helps developers without security backgrounds identify vulnerabilities hidden within the application which cannot be detected with dynamic analysis methods.”

Read the full article here

Written by MKE

June 22nd, 2009 at 10:32 pm

Posted in Adobe, FLEX 3.0

Tagged with ,

RIA, SAP BSP or WebDynpro… and some CRM

without comments

A couple of weeks ago I went to the SAP CRM course CR580 - SAP CRM User Interface in London - a course about the new UI in SAP CRM 2007 - and it was quite an interesting course.

One feature you will notice rigth away - is the improvements to the user interface. I guess you could say that SAP CRM has been ‘AJAX’ified’ :-)  and suddenly you start dreaming about more RIA in SAP. And all the screen flikering is gone - and the UI works quite well.  It’s actually quite impressing…

But during the course something happend which confused me a bit - because I thought SAP had a quite clear Web UI Strategy in generel. In connection with the introduction of the course, the instructor told us about SAP’s considerations regarding the underlying development framework to use when building SAP CRM 2007. The CRM team were looking at a Web UI technology which was: stable, with a good performance, and a framework which offered a flexible and extendable user interface…    so thinking about the SAP Web UI strategy - you might think you have already guessed the answer… it could only be SAP WebDynpro… No?

SAP CRM 2007 is built in SAP BSP !! - and let me just underline I have no specific preferences to either BSP and WebDynpro (I love both of them) and I have done a lot of development with both frameworks, but I cannot understand why SAP decides to use BSP when the chosen Web UI strategy is WebDynpro? When I read about WebDynpro, SAP uses a lot of time to explain why we should use Webdynpro - and so far I haven’t seen them claim that WebDynpro should be less stable than BSP, perform worse compared to BSP and that WebDynpro should be less flexiable and harder to extend compared to BSP. So why SAP - why was BSP a better choice for SAP CRM 2007?

And how well will this match some of the other initiatives targeted towards WebDynpro? E.g - we are all looking forward to start using SAP Flash Islands. In order to do this - the underlying framework should be WebDynpro. And I guess SAP CRM could be quite an interesting platform for SAP Flash Island? I know it’s possible to embed Adobe Flash in BSP directly, but you will be missing the smart integration from the ‘real’ Flash Islands.

Seen from a development point of view - there is a new tool available together with SAP CRM 2007: “The BSP Component Workbench”. With this new tool you can extend your CRM solution without making modification to SAP standard, and this tool is so cool that I am already missing it in SAP ERP.

Written by MKE

June 22nd, 2009 at 10:07 pm

Google Analytics in SAP WebDynpro using SAP Flash Islands

without comments

If you are doing Web development using SAP WebDynpro in Netweaver - you might find the fact that you cannot use Javascript in the UI a little bit annoying… so what do you do if you would like to use e.g. Google Analytics to monitor the usage of your WebDynpro application…? in order to do this you need to add a small Javascripts snippet to your webpages, and this is not possible in WebDynpro… or…. (btw: the same Javascript idea applies to other kinds of third party app’s.. not only Google apps)

Well.. I ran into a couple of links - and it gave me a good idea, that might help you embed Google Analytics.

  1. First of all your development platform need to support SAP Flash Islands (min. SAP NetWeaver 7.0 EhP1)
  2. Then you need to goto Google Analytics Tracking for Adobe Flash - in order to get the analytics.swc file
  3. Create a Google Analytics account in order to get an account-id for tracking
  4. Create a new SAP Flash Island application (click here to see an SAP Flash Island template)- and add the analytics.swc to the Flex build path/Library path - the Island should not display much… maybe just a company logo etc.
  5. The new SAP Flash Island application should take an url as an input parameter and pass this url to Google Analytics using the Google Analytics Tracking tool for Flash/Flex (see example) using the command: ”
    tracker.trackPageview( the input url parameter );"
  6. Place the new SAP Flash Island application on each of the WebDynpro pages you want to track (the visual size of the Island could but small or covered by a company log - you just need it somewhere on the page) - and pass the actual url of the WebDynpro Application parameter to the Island. You actually just use SAP Flash Island to call Google Analytics, so from a display point of view the output of the Island is not that interesting in this example
  7. And you will be able to start collecting the WebDynpro Usage in Google Analytics
  8. Remember to check the terms of service

Happy programming…

Written by MKE

May 4th, 2009 at 10:28 pm

Flex in a week - video training

without comments

I ran into this Adobe Flex video training site the other day…. and I find it really great. Especially if you have the Adobe Media Player installed on your PC - and adds the feed from the site.

The Adobe Flex video training site from contains nearly the same as you would find in other ‘How to get started’ courses/eLearning materials (and yes… it also includes excercises) - and it’s for free… :-)

Flex in a Week video training

Written by MKE

April 20th, 2009 at 11:12 pm

Posted in Adobe, FLEX 3.0, Training

Tagged with

Want to learn more about SAP Flash Island?

without comments

With the introduction of SAP Flash Islands in Netweaver 7.0 EhP1- SAP will now also attract ressources from the Adobe Flex community together with SAP’s own developer community. Developers from both communities will be needed to make SAP Flash Islands a real success.

Flex developers will now have the possibility to use their existing skills from the Adobe Flex ‘world’ to develop and invent new SAP Flash Islands components which can be integrated easily with SAP Netweaver.

SAP developers on the other hand can focus on UI integration areas where advanced  e.g graphical components are needed and use the new SAP Flash Islands from the Adobe community to complete this kind of task.

Read more at:

Development Trend

Adobe - Developer Connection

SAP Community Network - a video about SAP Flash Island

SAP Flash Island - LinkedIn Group

Written by MKE

April 14th, 2009 at 10:34 pm

Special offer from Adobe: Adobe Flex Builder 3 Professional

without comments

Adobe Flex Builder 3 software is currently available for free for software developers who are affected by the current economic condition and are currently unemployed.

See the terms & conditions and read more here

Written by MKE

April 13th, 2009 at 12:47 pm

Posted in Adobe, FLEX 3.0

Tagged with

SAP Flash Island and Google Maps

with one comment

SAP Flash Island and Google Maps… - it’s so obvious - and therefore I had to try to build an example of how this could be done.  If you are familar with Google Maps - you might be thinking: JavaScript… ! and how could this be integrated with Flex… well.. Google has made it a little bit easier for Flex developers with the Google Maps API for Flash. All you need to do is to register in order to get an API Key and then download the SWC file: map_flex_1_6.swc and include it in the library path of your project. With the SWC file you will get access to the Google Maps interface library.

And why could it be helpfull to integrate Google Maps with SAP using Flash Islands? Well… it’s just one of those examples which illustrate some of the basic ideas of SAP Flash Island - you embed a powerfull UI with SAP which isn’t available in SAP Netweaver. And with this feature it’s suddenly easy to show e.g.:

  • where your customers are located
  • which installations needs a visit from a service technician
  • where is the nearest truck
  • and more…

You just need to pass either the GPS coordinate or the address of the location(s) to your Flash Island - and the Flash Island will handle the rest. The gecoding feature in Google will help you with the address conversions to GPS coordinates.

Remember to include the SAP Flash Island swc’s into your library path as well - see example here

Example source code below (marked with blue) - replace the parts marked with red.

if you want to try it without the SAP Flash lib - just remove:

  • import sap.FlashIsland:
  • FlashIsland.register(this)
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    width="100%"
    height="100%"
    initialize="init()">
    <mx:Script >
        <![CDATA[
            import sap.FlashIsland;
            import mx.controls.Alert;
            import com.google.maps.controls.MapTypeControl;
            import com.google.maps.controls.ZoomControl;
            import com.google.maps.controls.PositionControlOptions;
            import com.google.maps.Map;
            import com.google.maps.MapEvent;
            import com.google.maps.MapType;
            import com.google.maps.LatLng;
            import com.google.maps.controls.PositionControl;
            import com.google.maps.overlays.Marker;
            import com.google.maps.overlays.MarkerOptions;
            import com.google.maps.styles.FillStyle;
            import com.google.maps.styles.StrokeStyle;
            import com.google.maps.InfoWindowOptions;
            import com.google.maps.MapMouseEvent;
            import com.google.maps.services.ClientGeocoder;
            import com.google.maps.services.GeocodingEvent;
            [Bindable]
            public var inputAddress:String;
            private var gMap:Map;
            private var MyCurrentLocation:String;
            private function init():void
            {
                FlashIsland.register(this);
                gMap = new Map();
                gMap.key = "enter your api key here - enter your api key here";
                gMap.width = 600;
                gMap.height = 400;
                gMap.addEventListener(MapEvent.MAP_READY, mapReadyHandler);
                mapContainer.addChild(gMap);
                if ( inputAddress == null )
                {
                    inputAddress = "your initial location"
                    addr1.text = inputAddress;
                }
            }
            private function mapReadyHandler(e:MapEvent):void
            {
                gMap.setCenter(new LatLng(55.999121,9.540081), 4 ,
                MapType.NORMAL_MAP_TYPE);
                gMap.setSize(new Point(mapContainer.width, mapContainer.height));
                gMap.addControl(new PositionControl());
                gMap.addControl(new ZoomControl());
                gMap.addControl(new MapTypeControl());
                FindMyLocation();
            }
            public function FindMyLocation():void
            {
                doGeocode();
            }
              private function doGeocode():void
              {
                var geocoder:ClientGeocoder = new ClientGeocoder("AU");
                geocoder.addEventListener(GeocodingEvent.GEOCODING_SUCCESS,   
                function(event:GeocodingEvent):void
                {
                      var placemarks:Array = event.response.placemarks;
                      if (placemarks.length > 0)
                      {
                        gMap.setCenter(placemarks[0].point);
                        var marker:Marker = new Marker(placemarks[0].point);
                           marker.addEventListener(MapMouseEvent.CLICK,
                           function (event:MapMouseEvent):void
                           {
                               marker.openInfoWindow(new InfoWindowOptions(
                               {content: placemarks[0].address}));
                        });
                           marker.setOptions(new MarkerOptions({ strokeStyle:
                           new StrokeStyle({color: 0x987654}), fillStyle:
                           new FillStyle({color: 0x223344, alpha: 0.8}), radius: 12,
                           hasShadow: true }));
                        gMap.addOverlay(marker);
                      }
                });
                geocoder.addEventListener(GeocodingEvent.GEOCODING_FAILURE,
                function(event:GeocodingEvent):void
                {
                    Alert.show("Location not found");
                    trace(event);
                    trace(event.status);
                  });
                gMap.clearOverlays();
                geocoder.geocode(addr1.text);
              }
        ]]>
    </mx:Script>
    <mx:Label id="lab1" text="Find Functional Location.." />
    <mx:TextInput id="addr1" />
    <mx:Button id="geocoding" label="Search" click="FindMyLocation()" />
    <mx:UIComponent id="mapContainer" width="100%" height="90%"/>
</mx:Application>

Written by MKE

February 5th, 2009 at 12:07 am

Use SAP Flash Island/Adobe Cocomo to build a social network in SAP

with one comment

SAP Flash Island is a new/upcoming feature in SAP Netweaver and the discussions about what kind of features we could/would expect in these Islands have already started. SAP and Adobe have already given some examples - and for people working within the SAP area, the upcoming Flash Islands could open up for quite new features and possibilities.

The other day - I ran into an interesiting project at Adobe Labs. A project called Adobe Cocomo which is in it’s final testphase. It’s a set of  hosted services which will make it easy to add social capabilities to your Adobe Flex application (Flash Island). You will need to download a SWC to use in the SAP Flash Island project - with this Cocomo interface it will be quite easy to use  some of the following features in your SAP Flash Island:

  1. VoIP Audio
  2. Webcam Video
  3. Chat
  4. Multi-User Whiteboards
  5. Real-Time File Sharing
  6. User Management
  7. Roles and Permissions
  8. Robust Data Messaging

You might think - “… why implement features we already have in Skype or Messenger in a WebDynpro application”? Well - with a SAP Flash Island you will have a welldefined integration path to the backend system, masterdata, transactional data and authorizations - and could consider to use this as input (and output) to the Flash application.  So suddenly you could display a snapshot of the latest sales figures at the multi user white board and discuss the sales progress in a Webcam, VoIP or chat session - just as an example of the possibilities.

Six Thinking Hats

You might take it a step further - and look at some of the methods behind the “Six Thinking Hats” (also known as “The de Bono Hats system”) and use them as an inspiration to enhance the SAP/Cocomo features and end up with a SAP Flash Island application which will do much more than Skype or Messenger - and it will be integrated with SAP Netweaver.

Read more:

Adobe Labs Cocomo website

Six Thinking Hats/The de Bono Hats system

An Adobe Flex template project for SAP Flash Islands

SAP ABAP developers: How to get started with Adobe FLEX - part II

Written by MKE

January 25th, 2009 at 10:15 pm

Social network - with Adobe Cocomo?

without comments

Are you thinking about building a realtime Social Network Application with Adobe Flex…? Then you might want to visit the Cocomo project at Adobe Labs. In here you will find a set of hosted services which will make it easy to add social capabilities to your Adobe Flex application. You will need to register in the developer portal - and after this you will be able to download the Cocomo SDK, after this you are ready to add the SWC components to your RIA application. Currently the following features are available in Cocomo:

  1. VoIP Audio
  2. Webcam Video
  3. Chat
  4. Multi-User Whiteboards
  5. Real-Time File Sharing
  6. User Management
  7. Roles and Permissions
  8. Robust Data Messaging

If you know Adobe Connect - you will realize that some of the features in Cocomo are the same (I miss the desktop sharing possibility - but maybe it will turn up in Cocomo later).

Cocomo is currently in a testing phase - and the limitations are currently set to:

  1. 25 concurrent users
  2. 15,000 cumulative user minutes per month
  3. 250,000 messages published per month
  4. 3 GB bandwidth (in + out) per month

Go to the Adobe Labs Cocomo website

Written by MKE

January 12th, 2009 at 11:03 pm

Posted in Adobe, Cocomo

Tagged with , ,