Archive | Blog RSS for this section

Swift, new programming language

Recently Apple announces Swift, a new programming language.

Apple today announced a new programming language called Swift at WWDC, which will replace Objective C as the language developers use for building iOS and OS X apps.

Craig Federighi announced the new language on stage saying, “We’ve used Objective-C for 20 years, and we love it. But we wondered what we could do without the baggage of C.”

Federighi confirmed that Swift code and C can live in the same app together, too, so developers can upgrade their code as they go, rather than replacing it in one go.

 

Apple has published an eBook on Swift, which can be downloaded for free, here.

I’ve been hunting for more on the language or a way to try it out but the best I’ve gotten is their free download of the eBook. I’ll post more as I find it!

We’ve moved… kind of

I finally got fed up with the VPS I was using and we’ve moved the entire site – it’ll take a few days to relink podcasts, images, etc so hang in there.

Hands on, no fluff, no hype – what a developer wants!

5119329306_cbfe0d92be

So this year at the SAP TechEd events in both Las Vegas and Amsterdam we are bringing the event that I created, SAP CodeJam, to the show floor in a “mini” version – you’ll be able to come by and actually in short bursts see how to get started in the world of SAP development but also why you would even want to. Everything will be hands on from seeing how to install the tools and integrate various tools together – like SAP HANA Studio with ABAP in Eclipse. We’ll have systems there for you to try it yourself or bring your own laptop and we’ll help you get things on there and show you how to get your own developer server to play around with.

Already have the tools but not sure what to do next, not a problem we’ll also show you how to connect to the various platforms and help you understand which one might work best for your current skill set and help you get started with learning new skill sets as well!

Tools in place, connections in place then of course it’s time to create something and to see how it works!

TUESDAY, OCTOBER 22

10 AM – 12 PM Stop by if you are interested in exploring any of the following topics:

  • Install Mobile SDK
  • Connect to a mobile system
  • My first mobile app on Android
  • My first HTML5 mobile app
  • Connect to SAP HANA Cloud Platform
  • My first app for SAP NetWeaver Gateway technology
  • Connect to a system running the ABAP programming language with ABAP in Eclipse
  • My first SAPUI5 app

·

12 PM – 1 PM Featured Session: My first XS app for the SAP HANA platform(With Thomas Jung and Rich Heilman)
1 PM – 6 PMMEET SAP HANA DEVELOPERS Let’s have fun with SAP HANA! SAP HANA experts will be on hand to answer your app development questions, help you install the tools, help you connect to a HANA system, guide you through the process of building your first SAP HANA app, and more. SAP HANA experts will be available all afternoon so just visit us when you get a chance!

WEDNESDAY, OCTOBER 23

10 AM – 12 PM Stop by if you are interested in exploring any of the following topics:

  • Install SAP HANA Studio
  • Install SAP HANA Cloud Platform tools in the SAP HANA Studio
  • Install SAP NetWeaver Gateway technology tools in the SAP HANA Studio
  • Install UI5 tools in the SAP HANA Studio
  • Install the ABAP programming language in Eclipse in the SAP HANA Studio
  • Connect to a system running SAP HANA software
  • My first XS app for the SAP HANA platform
  • My first XS UIS app for the SAP HANA platform
  • Install Mobile SDK
  • Connect to a mobile system
  • My first mobile app on Android
  • My first HTML5 mobile app
  • Connect to SAP HANA Cloud Platform
  • My first app for SAP NetWeaver Gateway technology
  • Connect to a system running the ABAP programming language with ABAP in Eclipse
  • My first SAPUI5 app

·          

12:30 PM – 1:30 PM Featured Session: My first app for the SAP HANA Cloud Platform(With Matthias Steiner and Rui Nogueira)
1 PM – 6 PMMEET SAP HANA CLOUD PLATFORM DEVELOPERS Let’s have fun with SAP HANA Cloud Platform! SAP HANA Cloud Platform experts will be on hand to answer questions about building apps on SAP’s cloud platform, help you install the tools, help you connect to SAP HANA Cloud Platform, guide you through the process of building your first cloud app, and more. SAP HANA Cloud Platform experts will be available all afternoon so just visit us when you get a chance!

THURSDAY, OCTOBER 24

10 AM – 12 PM Stop by if you are interested in exploring any of the following:

  • Install SAP HANA Studio
  • Install SAP HANA Cloud Platform tools in the SAP HANA Studio
  • Install SAP NetWeaver Gateway technology tools in the SAP HANA Studio
  • Install UI5 tools in the SAP HANA Studio
  • Install the ABAP programming language in Eclipse in the SAP HANA Studio
  • Connect to a system running SAP HANA software
  • My first XS app for the SAP HANA platform
  • My first XS UIS app for the SAP HANA platform
  • Connect to SAP HANA Cloud Platform
  • My first app for SAP NetWeaver Gateway technology
  • Connect to a system running the ABAP programming language with ABAP in Eclipse

·        

12 PM – 1 PM Featured Session: My first HTML5 Mobile app(With Mark Wright)
1 PM – 6 PMMEET SAP MOBILE DEVELOPERS Let’s have fun with SAP Mobile! SAP Mobile experts will be on hand to answer questions about building SAP Mobile apps, help you install the tools, help you connect to a mobile system, guide you through the process of building your first SAP mobile app on Android, and more. SAP Mobile experts will be available all afternoon so just visit us when you get a chance!

 

We’ll even have the experts on site to help you understand the various systems, technology and of course to share end to end scenarios and real live customer examples of these technologies so you won’t be left wondering “but why”

You’ll find us on the Show Floor every day from 10 AM to 6 PM. It’s like having our beloved Hacker Night every single day, all day :-)

 

EnterpriseGeeks Annual TechEd Dinner 2013

Once again this year, the EnterpriseGeeks Thursday night dinner will return to “The Buffet” at the Wynn on October 24th.  We’ve always had a great crowd join us at this dinner, and I hope this year is no different.    You can simply meet us there at 7:15pm, or show up at the “Rock of Ages” theatre box office(this used to be Blue Man Group)on the Casino level at 7:00pm to walk over as a group.  The price per person for the buffet is about $35 and of course you will be responsible for your own bill.   Imagine Dragons will perform at 9:00pm so  you will have plenty of time to get back over to the Venetian.  See everyone there!

MySQL to HANA

Recently as I’ve dug more and more into HANA (how could I not with Tom and Rich publishing so many cool things?) I found that I could take many of my existing demos from PHP and MySQL and port them to HANA. The pain though has always been migrating DB content so I decided to make a simple little tool to make life easier.

It was during the SAP InnoJam event in Madrid that I sat down and coded something that I was able to test with Rich’s help, HOWEVER this is not something SAP supports or even validates or approves this is just me and my own HANA Cloud instance having some fun and deciding to share!

GitHub - Move to HANA

GitHub – Move to HANA

I call it Move to HANA and you can find the code on GitHub. It’s fairly simple and I used JQuery Mobile (don’t hate me SAP UI5 lovers) to put it together, just upload it to your PHP server and run it.

The idea behind it, is to give a simple migration tool that will help generate the HANA specific SQL to get your same tables and fields generated and your data uploaded via the HANA Studio. Right now it’s setup for MySQL but is easily expanded for any DB you are working on; oh and of course it’s not 100% yet it’s only got a handful of the different field types but hey – it’s GitHub go ahead and make some changes!

As for execution – again very simple.

Database selection

Database selection

 

Once your select your database then you will need to log into the database to select which “database” you want to migrate.

Login into your database

Login into your database

 

Then select your “database” at which point the script will generate the 3 step process for data migration.

Simple 3 Steps

Simple 3 Steps

 

Step 1, will provide your the “copy and paste” script you need to enter into your HANA Studio.

HANA SQL to generate SCHEMA

HANA SQL to generate SCHEMA

Step 2, will provide the command line code for MySQL to generate the CSV files you can then upload via the HANA Studio

Command Line for MySQL Dumps

Command Line for MySQL Dumps

Step 3, will provide the SQL command to ensure the proper permissions for the newly generated SCHEMA

 

SCHEMA permissions

SCHEMA permissions

I’ve used the script a dozen times already to get sample data and other MySQL data moved into HANA to allow myself more and more opportunities to try my hand at HANA coding and it’s worked quite well. If you give a try feedback would be great and if you find new data types or if you want to try a different database than MySQL by all means have at it!!

 

** SAP does not support nor endorse this tool and there is no support other than the very little free time that I personally have to answer comments. **

Table User Defined Functions( Table UDF ) in HANA

With the release of HANA 1.0 SP5, not only do we get a new SQLScript editor and debugger, but there are also a few new SQLScript language features introduced with this release as well. Today, I would like to introduce Table UDFs.  Table UDFs are read-only user-defined functions which accept multiple input parameters and return exactly one results table.  SQLScript is the only language which is supported for table UDFs. Since these functions are ready-only, only read-only statements can be used within the function.  So you may not use statements like INSERT, UPDATE or DELETE. Also, any procedure calls within the function must also be read-only.  Currently, you can only create these functions in the catalog via the SQL Editor.  The syntax for creating a new table UDF is pretty straight forward.  For those of you who have been working with SQLScript since the beginning, you may notice the resurrection of the CREATE FUNCTION statement. This statement was used to create SQLScript procedures in earlier versions of HANA.  Of course, it has since been replaced with CREATE PROCEDURE. The CREATE FUNCTION statement will now be used to create UDFs in HANA.  In the following example, I’m creating the table UDF called GET_BP_ADDRESSES_BY_ROLE which accepts one input parameter called “partnerrole”, and returns a table with the structure defined explicitly.  You can also use global types to define the output structure as well. This function will execute one SELECT statement which contains an INNER JOIN of two tables and returns the result set to the output parameter.

CREATE FUNCTION "SAP_HANA_EPM_DEMO".get_bp_addresses_by_role( partnerrole nvarchar(3))
    RETURNS table ( "PartnerId" NVARCHAR(10), "PartnerRole" NVARCHAR(3), 
                    "EmailAddress" NVARCHAR(255), "CompanyName" NVARCHAR(80), 
                    "AddressId" NVARCHAR(10), "City" NVARCHAR(40),
                    "PostalCode" NVARCHAR(10), "Street" NVARCHAR(60) )
 LANGUAGE SQLSCRIPT 
 SQL SECURITY INVOKER AS
 
BEGIN
 RETURN 
   select a."PartnerId", a."PartnerRole", a."EmailAddress", a."CompanyName",
          a."AddressId", b."City", b."PostalCode", b."Street"
           from "SAP_HANA_EPM_DEMO"."sap.hana.democontent.epm.data::businessPartner" as a 
           inner join "SAP_HANA_EPM_DEMO"."sap.hana.democontent.epm.data::addresses" as b
                      on a."AddressId" = b."AddressId"
                            where a."PartnerRole" = :partnerrole;
END;

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

Once the above CREATE FUNCTION statement is executed via the SQL Editor, the new function will then show up in the catalog under the "Functions" folder.

12-7-2012 12-41-25 PM.png

The function can now be used in the FROM clause of your SELECT statements.   You can pass the input parameters as well.

select * from "SAP_HANA_EPM_DEMO".get_bp_addresses_by_role('02');

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

Additional features to UDFs are planned for future support packages, including scalar UDFs, as well as the ability to create UDFs via the HANA Development Workbench directly in your XS projects. Very similar to how we can now create procedures in HANA 1.0 SP5.

Introducing the New SAP HANA SQLScript Debugger

For those who have been working with SQLScript for awhile, you know that it is quite cumbersome to try and figure out what has gone wrong when a procedure does not return the correct results. Of course we have the TRACE statement which can be inserted into the SQLScript procedure which then writes out the intermediate results to a trace table during execution. But this approach is flawed. Firstly, the inspection of the results has to be done after the entire procedure execution is complete.  You can’t see the results in real-time as the code is being executed.  Secondly, and maybe most importantly, what customer will allow you to insert TRACE statements into a procedure directly in a productive environment?  We need the ability to trace variables during execution without having to modify the procedure in any way. Would it not be great for developers, and support personnel to be able to debug SQLScript procedures directly using a real integrated debugger? Well, good news!  With the release of SAP HANA 1.0 SP5, I am pleased to announce the availability of the new SQLScript Debugger!

The new debugger is tightly integrated into SAP HANA Studio.   It uses the standard eclipse “Debug” perspective, so there is basically zero learning curve for those who are familiar with debugging in eclipse.   You can set/remove breakpoints, resume to the next breakpoint, and terminate the debug session. Other step features are still in the planning phases.

12-5-2012 10-43-37 AM.png

The most powerful feature of the debugger is of course the variable evaluation feature.  When the procedure is executed in the debugger, all of the variables are listed in the “Variables” tab including table variables. You can evaluate the values of the variables as you execute each statement of the SQLScript code.   For table variables, you can right-click and choose “Open Preview”.  This will open a tab at the bottom showing the data in table format.

12-5-2012 10-37-43 AM.png

As you probably have already realized, the new SQLScript debugger is a huge deal for HANA developers. We can now debug SQLScript procedures on the fly and see exactly what is going on during execution of each statement.  Currently, the debugger does have some restrictions which we are working to resolve over the next several revisions.  A list of these restrictions is documented in SAP Note 1779803. Finally, look for new videos coming soon to  SAP HANA Academy page showing how to use the new development tools delivered with SAP HANA 1.0 SP5.

Follow

Get every new post delivered to your Inbox.