Archive for the ‘SAP’ Category
Defining a SAP Flash Islands candidate: MashUp’s using existing Adobe components
In the good old days when the SAP Portal was brand new and everybody discussed what kind of content would/could be available in there in the near future, there was always one example which was demo’ed again and again: The Stock ticker or The list of preferred stocks and related updates. Although we knew that most customers did not have this “need”, the demo continued to survive – and it took a while before there was a real proposal on serious content.
Will the same thing happen to SAP Flash Island?
…. will Google Maps examples and colour full Piechart examples be the “Stock ticker” for SAP Flash Island?
Maybe… or maybe not… maybe there are a lot of inspiration to find in the Adobe Flex community, because there are already a lot of exising components and applications available – and a lot of different API’s are already supported by Adobe Flex. The inspiration might lead you to a ‘non-stock-ticker’ for SAP Flash Island.
If you visit Adobe.com/devnet you might find some inspiration to a new mashup – which could be a SAP Flash Island candidate – just to mention a few:
Four ways to integrate Adobe Flex with SAP Netweaver
For quite some time now SAP and Adobe has presented different methods and initiatives you could use if you would like to integrate Adobe Flex and SAP Netweaver. I will try to summarize four different scenarios you could consider.
Using SAP Flash Island scenario
If you are using Netweaver 7.0 EhP1 or 7.1 then you can use the SAP Flash Island framework to integrate Adobe Flex with SAP (read more about SAP Flash Island here). The framework will create a ‘bridge’ between a SAP WebDynpro application and Flex. In order to ‘connect to this bridge/framework’ – you need to use a library from SAP in your Flex project – I have created a template project you can use for this purpose click here. Flash Islands are best suited for smaller applications/components – especially for areas where you are missing UI functionality in the WebDynpro, e.g. could be advanced graphics, interactive maps, graphs and statistics. Authentication, User and session management will be handled by the WebDynpro application.
Using SAP BSP and an embedded Adobe Flex component
So what do you do if your application is SAP is not based on WebDynpro – then you will be missing the framework and bridge which will make it easy to communicate with an Adobe Flex application – or ? Well in SAP BSP you can use <object><embed> … </embed><object> to include an SWF application in the application – read more here. But the data binding and event handling you will have to handle yourself in the BSP and in the Flex application. This kind of integration is also meant for smaller applications/components – especially for areas where you are missing UI functionality in SAP BSP, e.g. again could be advanced graphics, interactive maps, graphs and statistics. Authentication, User and session management will be handled by the SAP BSP application.
Using an HTTP REST backend application in SAP BSP – and an Adobe Flex RIA as Frontend
So… what do we do if we want to build a larger application in Adobe Flex (RIA) which should be integrated with SAP Netweaver? Well.. One possibility would be to build a set of backend services in SAP BSP using the HTTP REST approach/architecture (read more here). In SAP you will then be building normal BSP’s which will receive the input parameters in a HTTP request – and send the reply to the calling application as XML. These services can be called from Adobe Flex using the HTTP-request object. The work could be divided in two parts: the work regarding the design and implementation in SAP and the work with the design and implementation of the RIA using Adobe Flex. In between you need to describe and design the implementation of the interface. User and session management could be handled by the SAP BSP application if it’s running as a state full application. Regarding Authentication you need to consider how you would implement this in the application.
Using WebService enabled SAP BAPI’s as backend application – and an Adobe RIA as Frontend
In the last method you could consider using Webservice enabled BAPI’s instead of having to write BSP’s to communicate with the frontend. From Netweaver 6.40 and onwards all BAPI’s in SAP could be webservice enabled – and from 7.0 the functionality has been improved. And it’s possible to call these webservice enabled BAPI’s directly from Adobe Flex. You can use standard BAPI’s and/or make custom development for your own specific BAPI requests. User and session management should be handled by the Adobe Flex application. Regarding Authentication you need to consider how you would implement this in the application.
Developing rich Internet applications for SAP with Adobe Flex
Do you want to know/learn more about RIA for SAP? – then read this whitepaper from Adobe.
RIA, SAP BSP or WebDynpro… and some CRM
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.
Google Analytics in SAP WebDynpro using SAP Flash Islands
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.
- First of all your development platform need to support SAP Flash Islands (min. SAP NetWeaver 7.0 EhP1)
- Then you need to goto Google Analytics Tracking for Adobe Flash – in order to get the analytics.swc file
- Create a Google Analytics account in order to get an account-id for tracking
- 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.
- 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 );" - 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
- And you will be able to start collecting the WebDynpro Usage in Google Analytics
- Remember to check the terms of service
Happy programming…
Want to learn more about SAP Flash Island?
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:
Use SAP Flash Island/Adobe Cocomo to build a social network in SAP
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:
- VoIP Audio
- Webcam Video
- Chat
- Multi-User Whiteboards
- Real-Time File Sharing
- User Management
- Roles and Permissions
- 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:
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
An Adobe Flex template project for SAP Flash Islands
It’s always nice with a small template project, which will contain the basic setup needed in order to get started with a new kind of development – in this case SAP Flash Island (Adobe Flex). I have therefore made a description of how to create your own SAP Flash Island template project.
The template will cover an Flex 3.0 project (Netweaver 7.1):
- Download the following files from the MIME repository in SAP (path: public/bc/ur/nw7/flashislands)
- WDIslandsLibrary30.swc
- WDIslandsLibrary30-debug.swc
- Save the two files on your PC
- Create a new Flex 3.0 project – just with the initial mxml sourcecode
- Include the two SWC files in the Flex project using the following procedure:
- Right click at the projectname in Flex Navigator
- Select ‘Properties’
- Choose ‘Flex Build Path’
- Select the tab ‘Library path’
- Press ‘Add SWC’ and upload the two files
- Copy/paste the source code below (marked with blue) – and save the project
- You now have a template for an SAP Flash Island project
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"
initialize="initApp()" >
<mx:Script>
<![CDATA[
import sap.FlashIsland;
[Bindable]
public var MyInput:String;
[Bindable]
public var MyOutput:String;
public function initApp():void
{
FlashIsland.register(this);
}
public function FireEvent():void
{
MyOutput = exinput1 as String;
FlashIsland.fireEvent(this, "Event1");
}
]]>
</mx:Script>
<mx:TextInput id="exinput1" />
<mx:TextInput id="exinput2" text="{MyInput}" />
<mx:Button id="fevent" label="Fire Event" click="FireEvent()" />
</mx:Application>
You do not need to rewrite the function “initApp” – it’s already completed. It will register the Island in the Web Dynpro UI.
The two bindable Strings (MyInput and MyOutput) defines the variables which will pass data to the Flash Island and back. It’s important that they are bindable and public. If you want to pass arrays of data you should use an ArrayCollection. But be aware that the datatypes in WebDynpro and Flex is not always available/compatible – in SAP you can use e.g. Integers, REAL and dates – they are not available in Flex in the same format.
The function “FireEvent” will trigger an event which will be caught by the webdynpro – and the value of MyOutput will be sent back together with the event to actionhandler in SAP. You can define more event triggers in your Flex Application and define the associated Action handlers in your web dynpro.
When you have completed your Flash Island – you will need to export an release build and import the swf in the MIME of the web dynpro project and make the binding of data and events.
SAP ABAP developers: How to get started with Adobe FLEX – part II
In my previous blog I described how you could find descriptions and inspirations on how to get started with Adobe FLEX development.
In this blog, I will focus a little bit more at some Adobe FLEX examples. But before we go into details, you need to get Adobe FLEX installed. There are two possibilities, you can either download the free Flex 3 SDK – with this download you will get the Flex Framework and the Flex compiler, which will enable you to develop and deploy Flex applications. But you will miss an IDE which is not part of the package. If you want to go for the full package you will have to download the Flex Builder 3 – Adobe has a trial download available. My ‘How-to-get-started’ examples will be based on Flex Builder 3.
After you have installed Flex Builder 3, you are ready to get started with the traditional ‘Hello world’ application:
- Start Flex Builder 3
- Choose ‘File -> New -> Flex Project’
- Enter a project name ‘SAPSDNdemo1′
- Application Type ‘Web Application (runs in Flash Player)
The Application type will determine whether the Flex application will run in a browser as a web application or as a desktop Adobe AIR application.
- Copy/paste the sourcecode below (marked with blue) into the ‘Source’ tab:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
public function Button1Clicked():void
{
Alert.show('This is demo1', 'How to get started', mx.controls.Alert.OK);
}
]]>
</mx:Script>
<mx:Label text="Hello - SAP Community Network"/>
<mx:Button id="button1" label="Press me" click="Button1Clicked()" />
</mx:Application>
- ‘Save’ the project
-
Choose ‘Run’
The ‘Hello world’ project will start in your browser (see/try the example below)
The sourcecode contains two types of elements:
-
MXML: Multimedia eXtensible Markup Language (mx: tag’s)
-
ActionScript
MXML is a markup language and is used to define the layout of the FLEX application and the binding between UI components. A large number of Flex UI components are available in Flex Builder.
ActionScript is used for the implementation of the application logic. ActionScript could be quite complex and built using OO.
In the example above, I have used mx-tag’s to define:
-
The general attributes of the application with mx:application
-
A label with ‘mx:label’
-
A button with ‘mx:button’
-
and a script block with ‘mx:script’
In the Script block you will find a public function definition which will display the popup message (button1clicked). In the mx:button tag you will see how the button event is linked to this function.
In the next blog (part III) I will implement an example where we use Google Maps in a Flex Application… could this be a candidate for the first Flash Island? And I will demonstrate how build MVC applications using Adobe Flex…
SAP ABAP Developers: How to get started with Adobe FLEX
In this blog I will try to describe how you can get started with Adobe Flex development. It will be an ongoing process – and I will post some of my Flex projects/examples in here as well. I have been working with SAP ABAP development since 1994 – and within the last 5 years I have been working with B2B projects using SAP BSP development.
So how do you as an ABAP developer get started with Adobe Flex development? And are there any of the development skills from SAP you can reuse in Adobe Flex?
I decided to start with some e-learning material from TotalTraining (http://www.totaltraining.com/prod/adobe/flex3_riaa.asp) – and decided to focus on FLEX3 – even though SAP Flash Islands will be built in FLEX2 (the major difference is more Object Oriented focus and better performance).
Today, I realized a free alternative to e-learning - Adobe has launched ‘Flex in a Week’ – here you will find a lot of materials, exercices and videos which will guide you through the FLEX3 development process (http://www.adobe.com/devnet/flex/videotraining/)
Another place to start – is buying the book ‘Developing SAP Applications with Adobe Flex’ at SAPPRESS (http://www.sappress.com/product.cfm?account=&product=H1951) – this book will guide you through the basic of FLEX and how to integrate this with SAP. The only ‘problem’ I have with this book, is the method used to integrate SAP and FLEX – all examples is based on custom-made SAP BSP pages which will communicate with FLEX using XML. This will work fine – but FLEX has the possibility to use SOAP directly, which means you can use all existing BAPI’s – no customcode needed (it will just require that you decide to web-service enable them). I will describe this in a separate blog later.