Skip to Content

You’ve probably heard about a prototype we demo at the ASUG Summit in Miami. The proposal was to present how easy companies can embrace the digital economy transforming their business on daily tasks (if you haven’t seen that before, you are probably not following the right people on twitter).

A bit different from what some of you asked me, this is not a core feature of SAP Business One (I know, sad right? ☹️ ), it’s a prototype developed by the Solution Architects team, just like many others we shared before.

Good news the code is open for you to use and implement your own version. And here is a tutorial of how to install the B1 Assistant and “retire” your keyboard for some B1 tasks.

So, grab your popcorn, sit tight, follow me on twitter and enjoy this how-to!

I will not go into details of the Echo development capabilities. If you want to navigate on those waters, check their official ASK (Alexa Skill kit) site (very well made, simple and with great samples) and this detailed tutorial by Jarkko Lane. But one thing that should be clear for you is:

The Architecture

Alexa  (Amazon Echo’s persona) has several capabilities (Skills). Those are divided between Native (time, weather, traffic, news…) or 3rd Party (Uber, Spotify, Business One…)

To activate the 3rd party skill, we use Invocation Names. Those are nothing more than the name of the skill we want to call. For example: “Alexa, ask Uber for a ride” or “Alexa, open Spotify”. Once it hears your command, it will identify the skill to be triggered and call a specific Web Service that can be hosted on a Private Cloud or on AWS. Like this:

In our case, working the with B1 Assistant Skill the architecture is:
NOTE: On a productive scenario, we could bypass the AWS Lambda service and make Alexa communicates directly with HANA XS. That would require a secure HTTPs connection with a valid SSL Certificate. Thing we don’t have on most dev environment.

Skills details

Beside the Invocation Names, the skills have 2 other attributes, the intent, which is the specific action to be activated and the slots that works as parameters of the first one.

Implementing the B1 Assistant

Enough with definitions and small talk, let’s go for the funny part. So you can have your own B1 Assistant.


All the code used in this tutorial is shared on github

1 – Deploying the B1 Assistant HANA app

We’ve seen that whenever a user asks Alexa , it will trigger a Skill, this skill will call a function and this function will interact with an application (SAP Business One)

So let’s build our stack, starting by the end. The B1 Assistant App on HANA.

There 2 options for this part:

Whatever the case, once you have the b1Assistant package on your HANA system.
Go to HANA Administration Tools dashboard (http://hanaserver:8000/sap/hana/xs/admin) and set a user and password for the file: b1Assistant > lib > annonuser.xssqlcc

Note: Alexa will use this user to retrieve data and access the services.
You can also access http://hanaserver:8000/b1Assistant to test your app back-end

note: B1 user/pass is set on services/b1call.xsjs file

2 – Creating the B1 Assistant Lambda function



UPDATE August/2018 – Since SAP Cloud Platform adopted Cloud Foundry it is possible to deploy the “Lambda Function” (that is nothing more than a NodeJs script) on SAP CP. No changes are required on the code. And the steps to deploy it can be found in this video. There is also another deployment option to have the script running locally in a “stand alone” server. In this case an additional wrapper code is required and it is also in the github repository. Since both options are a bit more techy you will find the steps details on github


With the HANA App deployed, we need a function to call its services (Create orders, item recommendation, sales info). The responsible for it will be a Lambda Function.

Access your Amazon Web Services Account, switch to the Ireland or North Virginia region and select the Lambda Service.

Get started with a new Lambda function

On the blue print selection, search for Alexa and choose the skill tagged as alexa-skills-kit-color-expert

Select Alexa Skills Kit as a trigger

Set a name for your service, e.g b1Assistant and copy the code b1Assistant.js located on the skill folder (set your HANA Server public IP where indicated)

Scroll down a bit and set the following configurations just like the screenshot below

note: 15 sec timeout will avoid issues when B1 Service Layer takes long time to respond.

On the next step you have to opportunity to review all settings and then, create your function.

Once the function is created we need to extract it’s ARN address. It’s quite simple, just do as the following. And copy this address somewhere you can find later.

3 – Creating the B1 Assistant Skill

We are almost there, all that is missing is the Alexa Skill to talk to our Lambda Function.

Log into the Amazon Developer website and chose Alexa on the top menu

Get started with a new Alex Skill Kit

Add a new skill

On the Skill information panel, set the Skill Name – B1 Assistant and Invocation Name – be one.

On the next window you should fill the Intent Schema, Custom Slot Types and Sample Utterances
The codes are available on the Skill folder on my github repository

Save, Go to the next step and paste the ARN address extracted previously, according to the region of your Lambda funciton (US or Ireland)

On the next step you can already test your skill and see that it is ready to work

Your B1 Assistant is ready to work! You can test it with your Amazon Echo by enabling the Skill on your Alexa app or use the Echo Simulator.

Spit it out!

Do you like it? Or maybe you hate it? Have any questions? Feel free to ask and let your comments below. Your feedback it much appreciated.

Special Thanks to the SAP Business One dev team in Shanghai that helped us with the predictive analysis feature! You rock!


B1 Assisant got smarter!!

There is a very cool enchament on this prototype made by Yatsea Li, integrating it with the Twitter Sentiment App. If you want to give your B1 Assistant more powers, once you fisished this tutorial, follow the instructions in his blog


To report this post you need to login first.


You must be Logged on to comment or reply to a post.

    1. Ralph Oliveira
      Post author

      If Cortana has a SDK it sure is.. The backend could be exactly the one I am sharing here, you will have to adapt only the Windows Cortana calls.

  1. Former Member

    Hi Ralph,
    I have the prereqs SAP Business One 9.2 PL04 and SBODEMOUS schema available, but not on hana. We are running on sql database, with microsoft sql server. Is it possible to integrate with alexa?

    regards harsha

  2. Former Member

    Hello, Ralph, that’s fine.

    I’m trying to do the 1 part of your tutorial (1 – Deploying the B1 Assistant HANA app)
    And I have 2 options:
    I import b1Assistant application delivery unity or I get a clone straight from your github and create my own Project XS.
    Well, I’d like to import yours, so I minimize my mistakes. 🙂
    When I click on the link that you placed (how to import a delivery unity), it is not working. I do not know how.

    Please, could you pass me as I do this import?


    Best regards,

    Fernando Fonseca

  3. Chin Chong

    Hi Ralph,

    The b1Assistant.js that is installed in Amazon Lambda only has the setting for the

    var g_hdbServer = ‘our Hana Server’;
    var g_hdbPort = 8000; // Http(8000) or Https(4300)

    In our case, we are using our internal servers. How does the code in Lambda access SBODEMOUS data without a B1 user ID (e.g. “manager”) and password?

    Kind regards

    Chong Chin


  4. Chin Chong

    Hi Ralph,

    1.  Within the Alexa testing tool, in AWS Developer site, I can successfully get the following

    a)  Open be one  > correct answer

    b)  I need sales reports  > Response:  asks for item group

    c)  Electronics > Response:  asks for quarter

    d)  First quarter > Response:  asks for year

    e) Two thousand and eleven > Response: “I am sorry, but there are no Electronics sales in the 1st quarter of 2011”

    But the data exists in the standard SBODEMOUS.

    2.      I tried with the Echo simulator

    a) Open Be One  > correct response

    b)  I need sales reports  > Response:  I have put sales reports in your shopping list

    3.  We have already open the ports to the internet. There were no access errors in both – AWS Developer or Echo simulator

    4.   In our installation, the B1SL is installed in a separate VM from the Hana DB server. In b1Assistant.js, in Lambda, I have written down the IP of the Hana DB server.

    Please let me know what could possibly be wrong with the above. Alexa appears to be integrated with Lambda, and there are no errors regarding access issues.

    Kind regards

    Chong Chin

    1. Ralph Oliveira
      Post author

      The line 2b) is very weird, i would say to you deactivate/active the B1 Assisant skill on the alexa app again.


      But this protoype considers that both HANA and SL are on the same server. You will have to change the /bin/http/B1SL files to point to the right server. Otherwise it will fail in the creation of  Orders

  5. Chin Chong

    Hi Yatsea,

    Sorry for the delayed response. For some reasons, I am not getting an alert when a posting is made to this blog.

    I have gone through your video to B1 Asisstant version 2, with the additional 2 new deployment options and also the additional new questions that we can pose.

    Thank you and kind regards

    Chong Chin

  6. Former Member

    Hi Ralph,

    There’s a lot amazon echo version, which one do you recommend using ? is it all the same functionality ? and what’s the best version of echo ?





  7. maen mostafa

    hello Ralph ,


    i am searching for delivery unit since 3 days and the link broken , we are SAP partners and you should help , i tried to clone with SAP HANA but showing this errors , seems something missing , because even the link in GitHub , does not explain the requirements before clone project , when i cloning project it is showing these errors :

    please help or upload Delivery Unit here or any correct link , we need it for Demonstration for potential customers




  8. maen mostafa

    Hello ,

    please provide us with Delivery Unit , i am unable to build it , i cloned it but still showing same errors , please upload delivery unit ASAP , building project is not clear and no resources to help common please

  9. maen mostafa

    hi ralph ,

    i set all required parameters in B1Assistant delivery unit , like username and password of SBODEMOUS , and hana server address , when i attempt to test skills using amazon skills , the same one i built this is response


    please advise ..


    be one

    Hello, here is B1 assistant. Let me know what do you wish.

    give me sales info

    Which Item Group do you want to know?


    Which Item Group do you want to know?


    Got it! What quarter?


    What year do you need?


    There was a problem with the requested skill’s response


  10. maen mostafa

    hi ralph ,


    i review the code of index.html , when i click on get recommendation i got error , i think this is because different version of HANA , i am using 1.0 rev 12 :

    in the code

    var path = B1XAddress +

    b1xaddres = /sap/sbo


    i searched for sale_recommendation , nothing exist , there is salesrecommendation js file :



    because your path mentioned in the code no longer exist .

    note i am using 9.3 PL1


Leave a Reply