Integration Dojo – SAP NetWeaver Installation

These are me personal notes about SAP and what I think is important and essential to know about it.

SAP NetWeaver installation, below in case I need to install a new SAP environment for personal integration tests and study purpose, I will keep track and update it.

To find the package installation the best and easy way is using the interactive list here and had a look for SAP NetWeaver AS ABAP 7.03 SP04 64-bit Trial but you can find all SAP versions you need here.
To download the package and software you need to create  a SAP account before.

Click on Trial and complete the form in order to receive the Trial version, you will receive the email and you will have 48 hours time to download it.

image

I installed the SAP NetWeaver in a Windows 2012 Server and i used a SQL Server 2012 and it works perfectly you can find all the requirement in the welcome HTML file in the C:\Users\Administrator\Documents\ABAP_7_03_SP04_64_bit_Trial_3_9_2_GB (1)\NWABAPTRIAL70304_64\README folder.

Install the most important requirement the Java runtime jre-7u67-windows-x64.exe you can find a version here http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html

I installed the 64 bit

image

Install a SQL Server as I said I already had a SQL 2012 but you can you another version if you want just check the requirement.

Un-package the file RAR file, in my case was the ABAP_7_03_SP04_64_bit_Trial_3_9_2_GB.rar better to be in a trusted folder like C:\Users\Administrator\Documents.

Execute the installation with the administration grants and execute the file sapinst.exe located in C:\Users\Administrator\Documents\ABAP_7_03_SP04_64_bit_Trial_3_9_2_GB (1)\NWABAPTRIAL70304_64\SAP_NetWeaver_703_Installation_Master\DATA_UNITS\BS2011_IM_WINDOWS_X86_64

Select Central System and Next

image

Accept the license

image

Set the master password

image

If the installation ask you about some more prerequisites then say NO, it asking me because Windows 2012 and the package is looking for Windows 2008 version.

image

In the last summary you can check you parameters installation, I was fine then select Next

image

Installation started, go to take a coffee or better a sandwich and a nice walk under the sun, it will take a very long time.

image

if you feel the installation stuck then keep patience it is normal, don’t stop it, most long was the import ABAP.

image

The last Job during the Import ABAP is a nightmare Smile

image

Installation done.

image

And you should have this situation in you Windows service console.

image

Install the SAP GUI executing the sapinstgui.exe file, the installation is a next next straightforward procedure.

Execute the SAP GUI and (1) create a new entry in the Connection and (2) set these parameters.

image

 

You can log with two preinstallet users DDIC and SAP*and as the HTML Welcome page quotes:

Two users are prenstalled: DDIC and SAP*. Use the password that you provided during installation or use Standard password “19920706” for DDIC.

  • The DDIC user is intended for certain system administration and maintenance tasks. Only use DDIC as experienced user.
  • SAP* is a SAP defualt user and typically used for certain administrative tasks. Only use SAP* as experienced user.
  • Purpose of the BCUSER is to develop applications and maintain the system. If you create or modify SAP objects within the customer namespace (starting with Y or Z), you need to enter the developer key for this user: 29671482393151224771. Enter when prompted. This is not an access key to modify all objects. You have to create this user yourself. See next page “Create BCUSER”.

the Client number is 001, this is a operative client but you can also use the 000, this is the production client, the difference? the 000 client is used to upgrade system, packages or critical operations, this is not a working client as 001.

I discovered a 066 client which is used for performance purpose and if you want to use this user you need to log as DDIC and unlock him.

image

Important note, the BCUSER is the only user with development grants, he is not preinstalled you need to create a new user named BCUSER and add the development key above, if you need to create a new IDOC for example you need him.

To create a new user execute the transaction SU01, execute a transaction you need to use the textbox on the right upper corner, you can just write SU01 and press the green button or use the escape /n before and press directly the enter button.

image

Write BCUSER and select create

image

Use the auto generate password and use the password provided by SAP, you will be able to change it on the first logon

image

Assign the SAP_ALL profile to the user.

image

 

All the first operations as logon and execute transactions will slower the first time because SAP needs to compile them.

Last important step is the license key, fill the form here http://www.sap.com/minisap and follow the instructions into the HTML Welcome file in the directory C:\Users\Administrator\Documents\ABAP_7_03_SP04_64_bit_Trial_3_9_2_GB (1)\NWABAPTRIAL70304_64\README\welcome.html under the Installing a new license key chapter.

I think these are the most relevant steps to know and I will keep this post updated for my personal notes.

Restore the SAP system

I know myself and I like to play with these system in a bad way and sometime I need to restore the situation, well the restoring is straightforward too.

Follow the installation procedures above the only differences are two questions about your existing database instance, NSP, the current partition storage and current passwords.

image

image

Just confirm all of that with your current data and you will be able to restore your SAP system in a new fresh status.

Integration Dojo – Integration challenges and the new projects coming

Happy new year IT world, so what my plans for the new year, in the last two weeks between celebrations and food I spent a lot of time studying new ways to integrate technologies, I like to call that my Integration Dojo, I like the idea to be able to integrate systems like SAP, AS400 or any other financial or manufacture  framework in different ways.

For example we have different options today to get and send data to SAP, BizTalk SAP adapter for example, very simple to use and to configure, Microsoft has released a new adapter completely based on SAPNCO.dll component, configure the adapter is very easy and we know how much BizTalk Server is solid, I also like the idea to extend BizTalk Server to make easier and faster solving integration problems and I have a nice plan on it ;)
Other interesting option is the Microsoft Azure proposal with the Azure SAP connector, you can find different resources in internet, for example here or here, the approach is Cloud based but the possibility to extend the solution in on premise side is absolutely intriguing for me.

I started to have a look on SAP or what I like to call “the beast”, as I said in the last two weeks I started with a new project, I want to create a GrabCaster trigger able to integrate SAP in easy way, I start studying the SAPNCO dll and the internal libraries, honestly the hardest part to understand is the SAP side.
I integrated SAP many times using BizTalk Server but how to do that without it or without any kind of useful support?

SAP is quite complicate and cryptic, everything is working using “transactions”, WE20, SM59 and so on, so is quite complicate to switch between a Microsoft approach to using transaction SM58 to check errors and use WE19 to send data or… use transaction SMGW  to check the active connections instead of using a Windows netstat command :)

I like to be smart and to use smart approaches to solve problems, for this reason I started the GrabCaster project, thank to it I’m exploring the dark side of integration and I’m learning a lot of interesting new things, in the first how to integrate technologies like SAP using what SAP is able to offer me only, I think that an integration expert or, what I like to call in a humorous manner an Integration Animal, should be able to solve integration problems using different approaches and technologies, I don’t like the idea to depend by a technology to integrate another one.

Another interesting aspect that I’m going to cover is how to use and extend technologies like BizTalk Server and Azure to solve Integration problem in very easy way, I see a lot of potential using Azure API like dynamic custom connectors or using new approaches and patterns in BizTalk Server.

I’m preparing the session for my next event and I want to do something real practical, what I like to define, zero slides, total experience, maximum value for the attendees.

I will keep notes about my progress in my blog and I will use it like a “personal notes area” or better my personal “Integration Dojo” :) , I think this is the best way to share great content creating useful documentation for my projects too.

Keep in touch and feel free to contact me for any question or collaboration in the projects :)

Create a smart deployment packaging with WiX 3.10 for Visual Studio 2015

Many people are keen about using WIX to create setup package and I would like to share my personal experience using WIX with GrabCaster.

I’m a very lazy developer, well I like writing code, but I hate writing documentation and I really hate to repeat the same operation every time.
I’m not a “C# Guru” or a  “lambda extremist” but I like to find the smarter way to solve my development problems and WIX contains a lot of useful tools to make my life better.

My idea was “one click and development package ready” so I started study around this problem, below my personal solution.

You can find all the source code in GitHub in the GrabCaster.Framework repo

The GrabCaster setup contains everything I need like dialog boxes , icons and so on and I’m now able to create this package during the build, but the crucial point was one only, I don’t want to change any WIX setup file because I add a new DLL or component, I want everything automatic.

WIX contains a crazy useful harvet tool named heat.exe, this executable is able to generate your WIX deployment packages automatically and using a directory as your “deployment image”.

First of all I created my batch script to create my deploy directory I named it PrepareDeployPackage.cmd.

I created the  WIX project in the GrabCaster solution, you can refer to this my post to understand how to get WIX and install it.

Right click on the WIX project file and in the Pre-Build Events I added my scripts where:

setup1

  • call “$(Solutiondir)\Development Script\PrepareDeployPackage.cmd”
    • call my script to create and copy the directories and files
  • “%WIX%\bin\heat.exe” dir “$(Solutiondir)Setup\bin\$(Configuration)\Deploy” -srd -dr INSTALLDIR_GRABCASTER -sfrag -sreg -cg SourceComponentGroup -var var.SourcePath -ag -out “$(SolutionDir).\Setup\SourceComponents.wxs”
    • execute the heat.exe to generate the SourceComponents.wxs to create the WIX package.

Interesting is the %WIX% macro to specify the WIX installation directory.
The most importa varibles are INSTALLDIR_GRABCASTER, this is your installation folder variable, to be clear the “program file\your program” forlder, you will use that in the WIX setting file and it is correlated with the SourceComponents.wxs file too.

SourceComponentGroup is the componet group name containing your files.

Very important and useful the macros like $(Solutiondir) and $(Configuration) to be dynamic.

You can find more detail regarding the harvest parameter in the WIX documentation.

In the Product.ws file I added everything I need to create my msi package, below the details:

Two WIX variable for the images and icons

s2

The two dialog boxes, the WelcomeDlg and InstallDirDlg are  WIX variable and you can find all of them in the WIX documentation, please have a look the INSTALLDIR_GRABCASTER variable, this is the most important correlation inside the setting s file.

s33

The features with the SourceComponentGroup we used n the script line.

s4

The directory structure, please note the INSTALLDIR_GRABCASTER variable, I used the desktop folder for the shortcut icon.

s5

The last important part is the directory reference detail which contain all we need for the directories references folder, icons and uninstall feature.

s6

For more details you can find you can find all the source code in GitHub in the GrabCaster.Framework repo.

 

Extend the BizTalk integration stack using GrabCaster

BTSandGC

During the last two weeks I worked around a new GrabCaster feature, the embedded version, essentially I’m thinking to the possibility to embed the GrabCaster features inside the applications and components, for example to extend another framework as BizTalk or SharePoint or to provide integration capabilities to custom applications or particular application as Windows Word or Excel and more.

Because with GrabCaster I’m able to create a new trigger and integrate any king of technology in fast way, why not extend this potential to BizTalk?

Last evening I release the embedded version which is a interface component provided by GrabCaster to embed its features inside any application or component.

Embed GrabCaster is very simple and you can find an example in the GrabCaster Code, the sample name is GrabCaster.Laboratory.ConsoleEmbedded.

I create a simple console application and I added these two references:

  • GrabCaster.Framework.Library
    • This library contain what we need to embed the engine.
  • GrabCaster.Framework.Contracts
    • This library contains the GrabCaster objects types.

The code is very simple as below.

Declare a simple delegate which will use to receive the GrabCaster events from the internal engine.

emb1

Create the event as below.

embed3

Where IEventType is the event received by the internal GrabCaster engine and EventActionContext is the GrabCaster event data context.
All the GrabCaster events data are managed in bytes and we can find the content in the eventType.DataContext, because in this sample I’m going to receive data as string I will encode the content to it using the Encoding.UTF8.GetString(….)

The void Main console will execute three simple steps:

embed32

  1. Set the delegate to the event
  2. Pass our delegate to the GrabCaster engine
  3. Execute the GrabCaster engine

To execute our application as GrabCaster point we need to provide it the configuration file and the Bubbling Events directory.

Copy the directory Bubbling_GrabCaster and the GrabCaster configuration file in you application directory.
Because now your application is a real GrabCaster point you need to rename these into , GrabCaster_[YouExecutableName] and [YouExecutableName].cfg.

files
If you are hosting GrabCaster in a component then you will use GrabCaster_[YouComponentName] and not the executable.

Executing the console application the result is awesome, the console application is now a real GrabCaster point able to receive events and data from external triggers.

console

I tried a couple of more interesting demos like configure a trigger to receive data from the event viewer machine below the result:

event

Now I like the idea to create a BizTalk adapter  and embed GrabCaster inside it, BizTalk and GrabCaster  will be able to work together as a common extension that means we will be able to integrate any particular technology or device in very fast way and for any integration animal who would like to work on it I opened a new issue in GitHub regarding that.

You can find more information about GrabCaster in GrabCaster.io, in the next weeks I will make some videos to show how to use GrabCaster and some interesting samples.

 

 

GrabCaster and the Smart Integration

Probably some people remember my presentation in London during the last London Summit 2015  April where I introduced a draft version of my idea.

Finally during the WPC 2015 December I presented the first preview version of GrabCaster, I received a lot of good feedback from the guys with some “colorful” exclamations during the demos. I spent two awesome days with the MVP family talking over this new project and the many possible applications of it.

GrabCaster600x400_8

What GrabCaster is?

GrabCaster is a new integration paradigm able to Grab and Cast data in a smart and easy way.

contint

GrabCaster is open broadcasting integration and it is fully extensible, able to integrate heterogeneous technologies. GrabCaster sends data using patterns  like broadcasting, peer 2 peer, Pub/Sub and more, it can also  combine all of them and more together.

messagearchitecture3

The GrabCaster architecture is fully extensible.

arch

This version has a lot of features and I’m still working on new ones to add on.

GrabCaster is open source and you can find all the information in GrabCaster.io

 

Smart Cloud Integration with Azure and OpenSource

wpc2015

During the last London Summit I presented my new project, An Azure of Things, a developer’s perspective, you can watch the video here.
Next week I will have the pleasure to speak in the WPC 2015. I want to thank Overnet for inviting me in this important event as WPC is the most important technical conference in Italy.

Everything I started with Overnet has being a good thing. For example in Overnet, we organized the first BizTalk Innovation Event with the BizTalk Crew :).  Here a very good post from Sandro.

The title of my session is Smart Cloud Integration with Azure and OpenSource. The title reflects my idea of smart integration to describe solving common and sometimes complex integration scenarios in a very simple and smart way.

In addition, to announce something that I am very excited about. For the past two years, during my spare time of nights and weekends, I have created a smart integration framework that I am releasing as open source.

It was a big challenge as I wrote and rewrote the same code different times until I was to distill my idea to a concrete, workable solution. And now I am very happy with the result.

The project will be hosted on GitHub to give the opportunity to the community to collaborate and extend.

See you on WPC 2015 and on GitHub next week :)

 

 

 

 

 

 

 

BizTalk Convention Over Configuration processing by REST

During the 2012 I was looking for something real dynamic to drive the processes inside BizTalk Server, there are different options to use, one is using BRE from pipeline components and orchestrations and drive the processing by SQL Server tables and context message as Microsoft ESB Toolkit another is creating some pipeline components and orchestrations and using a storage database as SQL Server with a number of tables to instruct our code to drive the messages and other more options.

What I was missing in BizTalk was the real feature of a real ESB, something was able to adapt his processes using a convention over configuration, when Microsoft provided the opportunity to expose REST by BizTalk then BOOOM, here we go and I started the project.

I wrote a post about it but I never published the code, now the code is available here.

The idea is simple, RESB is going to provide the possibility to drive the BizTalk processes by HTTP REST using a convention over configuration, below some of the slides I used during an event in Milan, all of them are inside the package.

Slide1

and trying to cover the most important and used communication patterns.

Slide2

In the REST URI specify what entities we want to invoke and the order.

Slide3

and drive our process trough HTTP REST

Slide5

The architecture is using BRE with different pipeline components and orchestrations.

Slide6

The code inside uses different technics to provide the maximum flexibility and extensibility, below some sample used inside the project.

Slide8 Slide7 Slide9

In many asked me to publish this code, the solution is the DRAFT of this idea and this could be a good starter kit to create something similar.

You can find more information in previous blog post and you can download the code here.