Quantcast
Channel: SCN : Blog List - All Communities
Viewing all 2548 articles
Browse latest View live

Your Profits can Sing - with IoT! Do you T what I o T?

$
0
0

In honor of our upcoming webinar with IndustryWeek "The Industrial Internet of Things, Secrets to Finding ROI today", Nancy Bremmer and Mark Austin joined our impromptu choir in front of SAS' world-famous Pi sculpture to belt out a rousing chorus of "Do you T what I o T?"  Nancy and Mark manager SAS' partnership with SAP - Mark is the guy wearing the Santa hat in the video.

 

The verses they sang so beautifully are a shortened version of the full song, written by yours truly.  For some inexplicable reason the choir refused to sing the full version@  Thus Ian Jones kindly wrote a more YouTube-worthy piece.  The full version does provide insights on how one might use IoT data, so I share it with you here. For those of you unfamiliar with certain Western holidays, this song is a parody of a holiday tune titled "Do You Hear What I Hear?".

 

Please join Cliff Whitehead of Rockwell Automation - an SAP customer - and I next Tuesday at 2 p.m. EST

 

 

Said IT to the users everywhere

Do you T what I o T?

 

Said the CEO to the employees

Strategize for IoT

 

The data, the data

Analyzed just right

It will bring ideas and insights

 

We can profit and save through the night.

 

 

Full Version:

 

Lyrics by Marcia Elaine Walker

 

Said IT to the users everywhere

Do you T what I o T?

Out on the network, all my users

Do you T what I o T?

A signal, a sign,

Shimmers in the wire

With a voice as big as a choir

With a voice as big as a choir

 

Said the users to the owners of the data

Do you T what I o T

Streaming through our servers, all this data

Do you T what I o T

Ideas, and insights, making it all clear

How to save and profit all the year

How to save and profit all the year

 

Said the market to the CEOs

Do you know what I know?

I o T can help you here and now

Do you know what I know?

Others have studied, are ready to be bold

And earn themselves silver and gold

And earn themselves silver and gold.

 

Said the CEO to the employees

Listen to what I say

Strategize for IoT, everywhere

Listen to what I say

The data, the data

Sleeping in the night

When analyzed will help us set things right

When analyzed will help us set things right.

 


Amparo Timelines Are Running Out. Is Your Company Prepared?

$
0
0

When Mexico announced e-accounting legislation, many multinational corporations argued that the requirements were unconstitutional. Almost 10 percent (16,000) of the companies initially required to file their records electronically in 2015 were granted a legal stay, called an amparo. However, as 2016 approaches, these stays are quickly running out. To date, courts have shown a tendency to deny continued amparo and ruling on the side of Mexico’s tax authority, the SAT, to require electronic reporting.

Time is of the essence – when amparo expires or courts rule in favor of the SAT, companies areimmediately responsible for generating and submitted required reports retroactively - which is why they must have a solution in place before that happens. As you prepare for this inevitable requirement, here are some key considerations:

Compliance is not simply a technical issue.

Internal processes are critical to compliance. How and where is your data input? How is that data then connected to the correct internal and external reports? Companies who maintain separate systems for e-invoicing and accounting risk errors, which trigger audits. All compliance should be maintained within your ERP, and journal entries and reports should all link back to the original XML for seamless reporting and compliance.

Unique codes are required for each transaction.

eContabilidad reports encompass your chart of accounts, trial balances and journal entries, which all must link to XML e-invoicing approval codes known as UUID. These 36-digit, case sensitive, alphanumeric codes are typo magnets, making manual data entry an insufficient (and inefficient) means of compliance.

Change is constant.

As we’ve seen with e-invoicing in Mexico, the mandates change frequently, requiring significant change management or a proactive solution to keep your compliance efforts up to date.

Opportunities are inherent in these challenges.

Despite eContabilidad’s complexities, these requirements can actually help companies streamline their accounting process. By automating reports, staff can focus on discrepancies and errors instead of data entry. Plus, by linking all transactions, companies will have complete and accurate financial records.

Another key consideration: even if your company remains under amparo for the time being, the reports required under eContabilidad are still necessary if your company is being audited or is claiming VAT tax credits – they are just submitted physically instead of electronically.

Don’t wait to begin updating your internal accounting processes and implementing a proactive e-accounting solution until your reports become overdue.

Sneak Peak - SCN Design Studio 1.6 SDK Components

$
0
0

Now that Design Studio 1.6 is available and Reiner Hille-Doering has shared some of the new goodies for the SDK in his post What's New in Design Studio 1.6 SDK, Karol Kalisz and I are getting closer to releasing the next version of our components that are bundled in our releases as the SCN Design Studio SDK Development Community.

 

What is New?

 

  • About sap.m...


    As mentioned by Reiner, Design Studio 1.6 now offers 'official' support for sap.m components (aka the Fiori-like components.)  Before, we had a number of Fiori/sap.m-based extensions that we were "hacking" to work in terms of loading, and forcing the events to register.  Now that Design Studio supports two 'modes' of BI Applications, the old 'commons' mode, and now the new 'm' (or Main) mode, we have made some adjustments to our existing components and included some new ones, also.

    Since the direction is to move eventually to the new 'm' mode, I've chosen to deprecate the sap.m components at this point.  I've made sure they continue to work in 'commons' mode for 1.6, but due to eventing and loading differences in 'commons' and 'm' mode, I'll not be maintaining 'commons' mode for any fixes or enhancements for long.  I'd suggest if you are looking to use these types of components to consider migrating to 'm' mode when you can.

    Now along with the old 'Fiori-like' components, I've added a few new ones:

    • Fiori Switch
      Fiori Switch.png


    • Fiori Slider

      Fiori Slider.png

    • Fiori Input Field

      Fiori Input Field.png

    • Fiori Segmented Button

      Fiori Segmented Button.png
  • About new Complex Property Types and the Additional Properties Sheet...

    During Design Studio 1.4/1.5, I wanted to cut down on a lot of the work that it takes to create the Additional Properties Sheet (APS).  There are many reasons to need an APS instead of the Default Properties sheet, especially when it comes to complex properties or nested/array-like properties.  There's some good potential that has come with 1.6 complex properties which even make the Default Property Sheet a little more usable for properties defined in the new Object/Array format, however there are some limitations such as you cannot set a default value for these new types, and you have to stick to the structure in contribution.xml which means you cannot build deeply nested properties that go down to arbitrary depths for something like a menu path component, etc.

    So for 1.6, we still use String properties that are JSON-serialized, with our APS that can express these types of properties in an easy to use way.  In the future, our APS will support 'true' complex types, but for now we did not want to introduce regressions for people using our components in existing dashboards.

    All that being said, I've taken the opportunity to port some of my older components over to the new APS for consistent look & feel, as well as some of the components developed by others in our SCN development community that didn't have an APS.  Examples:


    • Bring Your Own Data Datasource Component

      BYOData.png

    • Base-64 Encoding Image

      (For those unfamiliar, clicking the Upload (Browse) button will base64-encode your image without having to upload it.)
      Base64.png
      When clicking 'Details':

      Base64-2.png
    • Rapid Prototyping Component

      I'm working on including some 'Preset' HTML, shown below that will render some common boiler-plate HTML as you see below on the right.  On the left is the HTML that is rendered.  But that's not all that is new...
      HTML-1.png

      I've moved the term placeholders and replacements to a 'Find/Replace' category, along with now an optional new data selections (the ones labeled 'KPI Replacement' to cut down BIAL scripting when you just want to use a KPI selection.  The older replacements still exist as 'Manual Replacement'.  In the example below, you can see the placeholder term {kpi1} has been replaced by KPI Replacement 1.

      HTML-2.png
    • Tag Cloud

      I've also enhanced James Rapp's Design Studio Extension: D3 Word Cloud to support the new APS and enhanced it with more properties.

      Tag Cloud.png
    • Arrowed Line

      Donnie Burhan's Design Studio SDK - Line with Arrow also now works with this new APS:
      arrow.png



    • Bullet Chart

      Like Tag Cloud, I ported over Jeroen van der A's Design Studio Extension: Bullet Chart to the new APS pattern.

      *Something to note before release, the Measure selectors and Dimension selectors will come as drop downs for ease of use, also we can take the long list and apply sub-tabs for quick location, etc.

      Bullet.png
    • D3 Tree

      As a final example, we can see Manfred Schwarz's D3 Hierarchy component now works with this APS:

      Tree.png
    • Others

      There are definitely other components that Karol or I are in process of porting over to make more consistent but these were just a few examples I've worked through.  Our goal is a more consistent collection.


  • Optimizations & RequireJS

    We're also taking this opportunity to fully embrace the 1.6 full RequireJS support.  These are mostly internal changes that nobody will care about expect those of us contributing to this project.  Basically, we are using the Require modularization methodology of loading JS and CSS files as-needed per-component.  I've actually taken this concept all the way to the APS which means depending on what types of property controls are needed in APS, only those are loaded.  This should translate into faster loading APSs and less memory usage.

When is it Coming?

 

"Soon"    We need to finalize some internal house-keeping topics and plugin clean-up, but my goal would be before end of December.

 

Questions/Comments/Concerns

 

Have a problem, idea, question?  As always, feel free to drop a line in comments!

"Hack your car data" or IoT application: Analyze car data with HCP,HANA,SAPUI5,XSJS service,IoT services, Android and OBD-II

$
0
0

                                        d_shop_blog_logo.jpg

                                        If you are an SAP Employee, please follow us on Jam

 

 

Contents

  1. Introduction.
  2. Overview.
  3. Prerequisites.
  4. IoT Service Setup.
  5. Insert test data into HANA table.
  6. Creating the XSJS Service.
  7. Android and OPEN XC.
  8. Display data with SAPUI5 Master Detail
  9. Possible useful information.

 

Introduction

 

In this blog post I want to demonstrate how you can create an SAPUI5 app consuming data from an XSJS Service for the internet of things (IoT). The data gets exposed from a real car through an ODB II device which can read basic car information like current speed, acceleration, odometer, fuel consumed and so on. An Android device consumes the ODB data and sends it to the Hana Cloud Platform (HCP) that it can be inserted into HANA.

 

Below you can get an idea how the SAPUI5 frontend will look like.

 

UiIntroduction.png

Overview

Overview.jpg

 

Since 1996 every car has an OBD II interface to expose basic car data. For more Information see https://en.wikipedia.org/wiki/On-board_diagnostics.

 

With the Open XC Library it became easy to receive car data from an ODB II device. The library exists for either Android or Linux devices. In this example an Android device is used.  Visit http://openxcplatform.com/overview/ for more details.

 

A basic Android App sends the received ODB data with an http Post to the IoT Service. IoT Service, which is basically a Servlet, handles the request and inserts the information into the HANA database table.  More information on IoT Service: https://help.hana.ondemand.com/iot/frameset.htm

 

An XSJS web service serves as an interface for the SAPUI5 application to access the car information from HANA database.  In the service itself data can be processed to expose just the right information the frontend needs.

Prerequisites

 

  • Android Studio is installed.

Hana trial account is created. (Also works on other instances like NEO but in this example I use Hana trial).  If you haven’t created your account yet:  https://account.hanatrial.ondemand.com

 

 

IoT Service Setup

 

There are great videos for [AW1]IoT Service available on YouTube by the HANA Academy.

 

Link to the full playlist: https://www.youtube.com/playlist?list=PLkzo92owKnVxzjoxwJdaa400E_UqkzE8J

 

Step 1: Set up IoT Services


Please set up IoT Services in your private Hana trial account like explained in this video.

 

“Getting Started”:  https://www.youtube.com/watch?v=EiIInSB8pFk[AW2]


Step 2: Create a “Message Type”


The “Message Type” defines the data structure the IoT device, in this example the Android device, will send to the IoT Service. This is the basic car information received from the ODB device.

 

To do so go into the IoT Services cockpit (https://iotcockpitiotservices-<yourAccountID>trial.hanatrial.ondemand.com/com.sap.iotservices.cockpit) and choose “Message Types”.

 

pic1.png

pic2.png

I called the message type “ODBLive” but feel free to use another name.  The fields of the message type are basically the columns of the Hana database table the IoT service will create for us.

 

Step 3: Create a device type


In the next step create a device type to define a group of devices interacting with the IoT services. In this example an Android device sends car data which is defined in the message type.  I called the device type “AndroidDeviceType”.

 

Please choose the previously created message type, here “ODBLive”, for the message type.

 

pic4.png

 

Step 4: Create a device


pic5.png

 

When you create the device, make sure to set the previously created device type, here “AndroidDeviceType”, as the device type.

 

pic6.png

 

Insert test data into HANA table

 

Previously we only created the message type defining the Hana database table the IoT service will create for us. Up to now the table is not created yet.

 

IoT Service will create the table automatically for us when we try to insert the first data into the table with an HTTP Post Request (or Web Socket…). I used the chrome add-on Postman (https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop).

 

The HANA Academy provides a great video showing how to send an HTTP post with the Postman client to the IoT Service running on the HCP.

 

https://www.youtube.com/watch?v=WvMD5EDQrJE&index=6&list=PLkzo92owKnVxzjoxwJdaa400E_UqkzE8J

 

You can of course use a different Http client but Postman is pretty simple and straight forward. If you need a more professional tool you could use JMeter (http://jmeter.apache.org/).

 

This is how you do the Http Post request with Postman.

 

 

Step 1

 

pic7.png

Select „POST“ as http method

 

Set url to :

 

https://iotmms<yourAccountID>trial.hanatrial.ondemand.com/com.sap.iotservices.mms/v1/api/http/data/[device id]

 

pic8.png

 

Step 2


Set authentification to „OAuth2

 

Step 3


Create Header Fields

 

pic9.png

 

1.


Field: „Authorization“ .

Value: „Bearer + <OAuth 2.0 access token>

 

For the oAuth 2.0 access token  go to IoT Services Cockpit > Devices to Generate oAuth 2.0 access token

 

pic10.png

 

2.


Field:  „content-type“

Value:  „application/json;charset=utf-8“

 

 

Step 4


pic11.png

 

Set selection to „raw“ and  „JSON(application/json)“

Set body to :

 

{"mode":"sync", "messageType":"<MessageTypeID>", "messages":

    [

{"Speed":70, "FuelConsumed":15, "Odometer":2000, "Acceleration":70, "Gear":4,"GPSPosition":"37.461123, -122.137537","TripId":"Las Vegas"}

    ]

}

 

For the MessageTypeID  go to IoT Services Cockpit > MessageTypes>Information .

 

pic12.png

 

Step 5


Send the http Post request.

If the response from the IoT Service looks like in the picture below you did everything right.

 

pic13.png

 

After the successfull request the hana database table should have been created. Besides  checking in the Web-Based Development Workbench  > Catalog you could also go to the Message Managment Cockpit  (https://iotmms<yourAccountID>trial.hanatrial.ondemand.com/com.sap.iotservices.mms/).

 

pic14.png

 

pic15.png

 

You table should have been created and inserted records should be visible.

 

Creating the XSJS Service

 

In this section a XSJS Service is created in order to expose the car data from the Hana database tables. When created successfully, the service can be called by various Uri’s and responds with the car data.

 

To get a good overview about SAP Hana Extended Application Services you could take a look at this (http://scn.sap.com/community/developer-center/hana/blog/2012/11/29/sap-hana-extended-application-services) SCN Post.

 

But before the XSJS service can read data from the created Hana database table access has to be granted manually.

 

1. Grant access to Hana database table


Please follow those two videos from the Hana Academy to set up an XS OData service for your created table.

 

https://www.youtube.com/watch?v=k0gyLHt7ioE&list=PLkzo92owKnVxzjoxwJdaa400E_UqkzE8J&index=9

 

https://www.youtube.com/watch?v=SigA9SI8Xyc&index=10&list=PLkzo92owKnVxzjoxwJdaa400E_UqkzE8J

 

After you have successfully set up your XS OData service, you have also granted access to the database table, the XSJS service should read the data from.

 

2. Create XSJS Service


Create a new file with the ending .xsjs in the “Web-Based development Workbench” on the same level where the .xsodata file is located at. It does not matter how you call it, just make sure to set the ending to .xsjs.  If you want to keep the .xsodata file it is fine but for this example it is not needed any more.

 

Your outline in the workbench now should look something like this:

 

pic16.png

 

To create the XSJS service, please paste the code from Github into your .xsjs file.

 

https://github.com/Danielfoehr/iotXsjsOBD2

 

Replace every occurrence of <table> and <schema> in SQL code with your own schema and table.

 

pic3000.png

You can find your schema and table name in the catalog of the “Web-Based development Workbench” like it is explained in the videos of step 1.

 

3. Run the XSJS Service


The .xsjs file defines three methods which expose data from the Hana table. Each method can be called with a specific Uri defined in the XSJS service. Please replace <yourAccountID> and potentially “ODBService.xsjs” with your own .xsjs file.

 

The following response values may differ from the responses you will experience.

 

1. Retrieve Master Data


https://s9hanaxs.hanatrial.ondemand.com/<yourAccountID>trial/iot/ODBService.xsjs?cmd=retrieveMasterData

 

The response should be all your inserted trips in JSON format:

 

pic17.png

 

2. Retrieve Detail Data


https://s9hanaxs.hanatrial.ondemand.com/<yourAccountID>trial/iot/ODBService.xsjs?cmd=retrieveDetailData&TRIPID=Las Vegas

 

Response in JSON format for TRIPID = “Las Vegas”:

 

pic18.png

 

3. Retrieve Detail GPS Position

 

https://s9hanaxs.hanatrial.ondemand.com/<yourAccountID>trial/iot/ODBService.xsjs?cmd=retrieveDetailGPSPositions&TRIPID=Las Vegas

 

Response in JSON format for TRIPID = “Las Vegas”:

 

pic19.png

 

If you experience errors, debugging can be quite helpful. This video explains how to enable debugging for your XSJS service.

 

https://www.youtube.com/watch?v=24GLegisPqY

 

 

Android and OPEN XC

 

To read car data through the OBD device, an Android app uses the Open XC library.

 

The Android project uses the Open XC library to read car data either from a real device or a prerecorded file. The app makes continuing Http Post requests to the IoT service servlet, running on the HCP, to insert the car data into Hana.

 

Refer to http://openxcplatform.com/overview/index.html and http://openxcplatform.com/android/getting-started.html for further information.

 

Step 1


Please clone this Android studio project from Github into your local Android Studio. Gradle is used to build the Open XC library as a dependency.

 

https://github.com/Danielfoehr/ioTAndroidSender

 

Step 2


Replace http Post request data in class WorkerThreath.java with your own specific information. You can basically take the same information you used to manually make a post request with the POSTMAN client described in chapter “Insert test data into Hana table”.


Set your oAuth2.0 token.

pic20.png

Set your Hana trial account id and the device id from your created device.

pic21.png

Set your message type id.

pic22.png

 

Step 3


Download the Open XC enabler Application from the Google Play Store.

 

https://play.google.com/store/apps/details?id=com.openxcplatform.enabler&hl=de

 

This example was created with Version 6.1.6 of the “Open XC Enabler Application”.

 

Step 4


Run the app on an emulator or your own physical device.

The following video shows how to use the application.

 

https://youtu.be/L6ExVTXSVYQ

 

Display data with SAPUI5 Master Detail

 

The SAPUI5 application is the UI which is displayed to the end-user. It consumes the XSJS service with Ajax calls.

 

Step 1


Download the SAPUI5 project sources compressed to a .zip file from Github. If you want to use Eclipse you could of course also clone the repository instead.

 

https://github.com/Danielfoehr/iotSapui5OBD2

 

Step 2


Import the zipped SAPUI5 project sources into SAP WEB IDE or clone the repository to your local Eclipse installation. The WEB IDE is accessible through this link.

 

https://webide-<yourAccountId>trial.dispatcher.hanatrial.ondemand.com/


Follow the official documentation on how to import archive files in SAP WEB IDE.

 

https://help.hana.ondemand.com/SAP_RDE/frameset.htm?344e8c91e33b4ae8b4032709c45776a3.html

 

Step 3


Set your Hana trial account id in both classes Master.controller.js and Detail.controller.js. Those classes are located in folder MyTripsPublic>webapp>controllers within the SAPUI5 project sources.

 

pic23.png

 

Set your Hana trial account id in class Detail.controller.js.

 

pic24.png

 

Step 4


Run the application by selecting the index.html file in folder “webapp>index” and pressing the green “Run” – button.

 

pic25.png

 

You should see the application running with demo data. You can check in the development console of your web browser (F12 in chrome) for possible errors.

 

The AJAX call from SAPUI5 project to HCP XSJS service is not allowed because there is no 'Access-Control-Allow-Origin' header present on the HCP endpoint. Cross-origin resource sharing (CORS) is therefore not enabled.

 

pic26.png

 

To be able to actually consume the XSJS service from the SAPUI5 frontend the SAPUI5 project has to be deployed to Hana. If you use a productive version of the HCP you could deploy the UI within seconds by pressing a single button. In this example the trial version of the HCP is used where couple more steps are necessary.

 

Step 4


Please watch this video from the HANA Academy on how to deploy a SAPUI5 project to Hana with a HCP trial account. You can ignore the code change advices in this video. The application should work without the need for further changes.

 

https://www.youtube.com/watch?v=kP8LtKGrVfI&index=12&list=PLkzo92owKnVxzjoxwJdaa400E_UqkzE8J

 

After deploying the Sapui5 project to Hana the outline of the “Web-Based development Workbench” should look something like this:

 

pic27.png

 

Step 5


Run the Sapui5 application by navigating to index>index.html and pressing the green “run” button on the top left.

 

That’s it! The application should now display real car data from your XSJS service.

 

Possibly useful information

 

1. Use Android Studio instead of Eclipse for the Android development


Maybe you can get it running, but I spent a lot of time trying to add the OpenXc library to an Android project in Eclipse. In the end it did not work for me at all.

 

The reason for my problems is the version 6.1.6 of the OpenXC library which is only available through the dependency management system Gradle. There is a Gradle plugin for Eclipse but it caused problems together with an Android application project.

 

You could manually add every dependency to maven but better use Android Studio with integrated Gradle.

 

2. Decision between XSJS service and XS OData


There are couple tutorials out there on how to create an XS OData service and it is actually pretty easy and not much of an effort (In the end just couple lines of code). The other good thing about XS OData is the seamless integration with SAPUI5 which makes the data binding process more efficient.

 

Nevertheless I experienced that XSJS suited my needs best. For me it just looked more flexible because I could implement my needed business logic in the XSJS service which I could not in the XS OData service.

 

Another option would be writing a java servlet and deploying it to the HCP. Anyways, writing a XSJS service is, as I experienced it, by far less effort.

 

------------------------------------------------------------------------------------------------------------------------

 

Thanks for reading and please give feedback

 

Regards

Repository sync is not updating GRACUSERCONN

Free webinar tip: Developing and applying Business Architecture by working with Meta Objects, Relations and Layers

$
0
0

For all SCN community members with a special interest in one of these topics: My former SAP professor at Harz University, Prof. Dr. Hans-Jürgen Scheruhn (who is also active here on the SCN), will give a free webinar on working with Meta Objects, Relations and Layers using both ARIS and SAP examples on December 15th and December 16th 2015. Anyone interested in joining can register on this website.

 

Webinar.jpg

One order document application log read optimization

$
0
0

Recently I am responsible for the performance optimization of one API which retrieves application logs of the given one order documents.

 

API Requirement

 

The input is an internal table containing document guids, and output are all the application logs belonging to those documents, with type "Error" and priority "Very important" and "Important".

 

For the application logs of a single document, you can view them via tcode SLG1 as below:

clipboard1.png

clipboard2.png

The application logs would be displayed in WebUI as below:

clipboard3.png

The signature of API:

clipboard4.png

The structure of table type CRMT_ODATA_TASK_LOGST could be found below:

clipboard5.png

Original implementation ( has performance issue )

The idea of original implementation is:

 

...
LOOP AT it_order_guid_tab.        " get all of the message handles of the current order by its guid and stores to variable lt_message_handles        LOOP AT lt_message_handles.              " get the detail of each message according to its handle        ENDLOOP.
ENDLOOP.

As you see there are nested loop, so the algorithm complexity is o(n2).


The optimized implementation

 

The idea is to avoid the nested LOOP.

 

...
" get all message handles belonging to all orders in a single method call
lt_all_message_handlers = get_all( it_order_guid_tab ).
LOOP AT lt_all_message_handlers.       " get the detail of each message according to its handle
ENDLOOP.

The algorithm complexity is reduced to o(n).

 

The original implementation could be found from method GET_ORDER_ERROR_MESSAGE of the class CL_CRM_ORDER_MESSAGE_TOOL in the attachment. The optimized version is in method GET_ORDER_ERROR_MESSAGE_OPT.

 

Performance comparison

 

I do the performance measurement based on the following three scenarios. We can see the performance is improved a lot after nested LOOP is removed.

The idea of original implementation is:

 

clipboard6.png

Unit Test

 

In order to guarantee that the optimized implementation does return exactly the same data as the original one, I write the following report to do unit test. The design is quite simple, retrieve the application log for the same input twice, one using the original implementation and the other one using the optimized version, and eASSERT lt_result1 = lt_result2.

 

The report source code is attached here:

 

REPORT tool_display_log_compare.
CLASS lcl_test DEFINITION.  PUBLIC SECTION.    METHODS: test_all_oppt, test_created_by_jerry, test_oppt_jerry,      constructor.  PRIVATE SECTION.    METHODS:       get_oppt_guid, compare, get_created_by, get_oppt_jerry.    DATA: mt_guid_tab   TYPE crmt_object_guid_tab,          mt_msg_origin TYPE crmt_odata_task_logst,          mt_msg_opt    LIKE mt_msg_origin,          mo_tool       TYPE REF TO cl_crm_order_message_tool.
ENDCLASS.
CLASS lcl_test IMPLEMENTATION.  METHOD: test_oppt_jerry.     get_oppt_jerry( ).     compare( ).     WRITE: / 'lines of message: ' , lines( mt_msg_origin ).     WRITE: / 'test on all Opportunity with type OPPT and created by Jerry passed.' COLOR COL_NEGATIVE.  ENDMETHOD.  METHOD: test_created_by_jerry.     get_created_by( ).     compare( ).     WRITE: / 'lines of message: ' , lines( mt_msg_origin ).     WRITE: / 'test on all Opportunity created by Jerry passed.' COLOR COL_NEGATIVE.  ENDMETHOD.  METHOD: test_all_oppt.     get_oppt_guid( ).     compare( ).     WRITE: / 'lines of message: ' , lines( mt_msg_origin ).     WRITE: / 'test on all Opportunity with type OPPT passed.' COLOR COL_NEGATIVE.  ENDMETHOD.
METHOD: get_created_by.    CLEAR: mt_guid_tab.    SELECT guid INTO TABLE mt_guid_tab FROM crmd_orderadm_h WHERE created_by = 'WANGJER'.  ENDMETHOD.   METHOD: get_oppt_jerry.    CLEAR: mt_guid_tab.    SELECT guid INTO TABLE mt_guid_tab FROM crmd_orderadm_h WHERE process_type = 'OPPT' AND created_by = 'WANGJER'.  ENDMETHOD.  METHOD: get_oppt_guid.    CLEAR: mt_guid_tab.    SELECT guid INTO TABLE mt_guid_tab FROM crmd_orderadm_h WHERE process_type = 'OPPT'.  ENDMETHOD.  METHOD: compare.    CLEAR: mt_msg_origin, mt_msg_opt.    mt_msg_origin = mo_tool->get_order_error_message_opt( mt_guid_tab ).    CALL FUNCTION 'CRM_MESSAGES_INIT'      EXPORTING        it_docnumber = mt_guid_tab.    mt_msg_opt = mo_tool->get_order_error_message( mt_guid_tab ).    SORT mt_msg_origin BY header_guid log_msg.    SORT mt_msg_opt BY header_guid log_msg.    ASSERT mt_msg_origin = mt_msg_opt.  ENDMETHOD.  METHOD: constructor.    mo_tool = NEW cl_crm_order_message_tool( ).  ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
DATA: lo_test TYPE REF TO lcl_test.
lo_test = new lcl_test( ).
lo_test->test_all_oppt( ).
lo_test->test_created_by_jerry( ).
lo_test->test_oppt_jerry( ).

Why does the navigation after clicking email hyperlink not happen in Account search result

$
0
0

Issue description

 

In Account search result view, by clicking the email hyperlink,

clipboard1.png


we expected that there is a navigation to email creation view:

clipboard2.png

However in some system, after clicking email hyperlink, nothing happens.

 

Issue Analysis

 

1. Select one row in search result, click F2 to review technical information, and get the UI component name BP_HEAD_SEARCH.

 

2. Open the component via tcode BSP_WD_CMPWB, check the email hyperlink implementation by double clicking GET_P_EMAIL

clipboard3.png

3. From the p getter implementation, we get to know the logic that once it is clicked, the event handler and the outbound plug TOEMAIL will be triggered.

clipboard4.png

4. Then we can double click on OP_TOEMAIL and set breakpoint there to start debug.

clipboard5.png

I launch two debuggers separately in system AG3 ( where navigation works ) and K9E ( where navigation fails ) to compare the execution logic.

 

4.1 The navigation execution in K9E terminates due to the failure of check in line 37. So I have to check why lt_proc is empty after line 34.

clipboard6.png


4.2 When I debug into the method in 4.1, it is because is_navigation_supported returns false for process type 0005.

clipboard7.png

4.3 Within method IS_NAVIGATION_SUPPORTED, first the UI object type is determined in method 38.

clipboard8.png

In system AG3, the result is BT126_MAIL, and for K9E it is CRM_ICM_EMAIL. This difference is caused by the different business switch status as displayed in line 183 and 184 below.

clipboard9.png

The reason why the navigation works in AG3: it successfully finds a navigation target from internal table gt_map_infos for UI object type BT126_MAIL.

clipboard10.png

The found navigation target:

clipboard11.png

This target is maintained in customizing below:

clipboard12.png

clipboard13.png

But in system K9E, the different UI object type CRM_ICM_EMAIL is used, and the corresponding customizing for its navigation target is missing, so the navigation does not work.

clipboard14.png

After the necessary navigation customizing is added, the navigation in K9E also works.


Color-code resource types in Chrome development tool

$
0
0


This option is available in Chrome development tool - Settings - General:

clipboard1.png

If it is switched off:

clipboard2.png

If switched on, when you hover the mouse to the given row in Network tab, the duration of two types of time used, Waiting and Content Download, will be displayed automatically.

clipboard3.png

And if you put the mouse under column "Timeline - Start Time" and wait for a second, the detailed timing information of this network request will be displayed.

clipboard4.png


Direct publishing to HCP IOT Services with ESP8266 and Arduino IDE (2.0.0)

$
0
0

Existing Work

In this blog i will explain how to connect the ESP8266 with HCP IOT, by developing a simple sketch in the Arduino IDE. It is not meant as a standalone post, rather as a follow up to the great blogs by Prashantha H J, Jan Penninkhof, Rui Nogueira. They describe in detail how to wire an ESP8266, how to connect via a PHP gateway, a plain C program based on the Esspressiv SDK, and how to connect this to the HCP IOT Service and build a nice looking SAP UI5 Frontend.

 

For Reference, for those that want some background information, here are the links to those blog posts:

ESP8266 and HCP Internet Of Things Services (BETA) - Part 1

Connecting an ESP8266 to the SAP HANA Cloud Platform

RaspberryPi on SAP HCP - IoT blog series part 1: Setting-up your RaspberryPi

 

Arduino IDE and ESP8266

The folks at https://github.com/esp8266/Arduino, have done great work in bridging the Arduino IDE with ESP8266, making it very simple to develop sketches and deploy them to an ESP8266. As noted in the blogs by Jan and Prashantha, up to recently it did not support HTTPS connections, so connecting to HCP IOT required some workarounds.

Yet, few months ago HTTPS support has been included and as a bonus, a couple of weeks ago a built in HTTP Client has been included. This makes the whole story very easy to implement and brings it closer to a much wider community of makers.

When you download it, make sure to take the GIT version (not stable, nor staging), and follow the instructions to install it. Also make sure to use Arduino 1.6.5 and not 1.6.6 as it brought some incompatible changes. (This is as of 12.Dec.2015, perhaps soon the GIT version will be stable and can be directly installed from Arduino's BoardManager)

 

ESP8266 to HCP IOT Service

The whole code to make this call is quite simple. Assuming that you have followed the posts above or already know the details, you should have your deviceID, authentication Token, messageId, variableName and of course the host name of your IOT MMS server.

 

(The whole sketch can be downloaded from my git Repository: vlast3k/HCPIOT_ESP8266_ArduinoIDE · GitHub (just make sure to store it in a directory called 'HCPIOT_ESP8266_ArduinoIDE'))

 

In this example i am using the simplified syntax for calling the MMS server, that is - all parameters are sent in the URL, thus - no JSON needs to be constructed manually.

 

This syntax implies that you should build an url like this:

sprintf(url, "https://%s/com.sap.iotservices.mms/v1/api/http/data/%s/%s/sync?%s=%d",                host, deviceId, messageId, variableName, value);

where host, deviceId and messageId are self-explanatory. "variableName" is the name of the variable in your message, whose "value" you want to update. With this syntax multiple variables can be sent as well.

 

Then sending the HTTPS call is simple:

 

 HTTPClient http;  http.begin(url);  http.addHeader("Content-Type",  "application/json;charset=UTF-8");  http.addHeader("Authorization", String("Bearer ") + token);  http.POST("");
 Serial.printf("Payload: [%s]\n", http.getString().c_str());

In case it is Ok, the response should be something like

Payload: [52
{"msg":"1 message(s) received from device [c5c73d69-6a19-4c7d-9da3-b32198ba71f9]"}
0
]

If there was a problem to establish connection the response code is <0, with the following meanings

#define HTTPC_ERROR_CONNECTION_REFUSED  (-1)
#define HTTPC_ERROR_SEND_HEADER_FAILED  (-2)
#define HTTPC_ERROR_SEND_PAYLOAD_FAILED (-3)
#define HTTPC_ERROR_NOT_CONNECTED       (-4)
#define HTTPC_ERROR_CONNECTION_LOST     (-5)
#define HTTPC_ERROR_NO_STREAM           (-6)
#define HTTPC_ERROR_NO_HTTP_SERVER      (-7)

Else - the response code is a standard HTTP response code.

 

Conclusion

I believe that those new enhancements to this framework will make a big step towards enabling it for various developers to do interesting things. Previously a bit more expertise was required to use this functionality (e.g. as Jan described in his post of using the Esspresiv SDK to make HTTPS calls), or using some bridge to do the needful.

Also I would recommend to use some of the existing development boards for ESP8266. A month ago a very appealing board was released - the Wemos D1 mini. It costs 4$ at Aliexpress, which is an astonishing low price, given the fact that the components if bought separately cost more. I do not want to make advertisement of this board, but i am just excited of it (so i bought 15 already ).

 

I hope this blog will be useful and of course in case of problems or questions - feel free to comment.

SIT 2015 - Hyderabad - UX & Mobility Track - Intro

$
0
0

SAP Screen Personas 3.0

 

SAP Inside Track is an event organized, conducted and participated by SCN Community Members. The focus is on sharing knowledge, learning new things, collaborating thoughts and networking with other SAP peers. Got introduced to this way back in 2012 however being a live audience to this event now, in 2015!!

 

It's a good event, seeing lot of participation from SAP Professionals of various IT Firms... And yes the knowledge quotient is very high. One thing special about SIT 2015 is that there are multiple tracks providing opportunity to present & attend topics in diverse areas.

 

A quick summary of the numbers that we are talking about for SIT 2015....

 

6 Tracks - Finance, Logistics, Development, UX & Mobility, Infrastructure and Data & Reporting

36 Topics

44 Speakers

660 Registrations

 

And yes a nice lunch

 

Now it was a difficult choice to decide on the Technology track to attend however being a SPOC the choice was already decided for me

 

It was UX & Mobility and so would be bringing in my first hand learnings & content from the sessions delivered in this particular track!

 

Below were the topics in this track:

 

1. SAP User Experience & Design Thinking by Pallayya Batchu

 

This session provided a new perspective on what User Experience is all about! In general when someone is developing an UI application, UX for them ends up as something to do with Visual Designs, the look and feel etc., for the UI. However UX is lot more than this. It is not only about the look and feel but also about the ease of accessing and finding information on the UI, providing the users a great experience of being able to work on their tasks comfortably and with desired levels of satisfaction. In nutshell it is all about Experience which is again nothing but Emotions of the Users !!

 

Read More.....

http://scn.sap.com/blogs/swapna.neemkar/2015/12/12/sap-user-experience-and-design-thinking

 

2. SAP Screen Personas 3.0 by Gurupreet Chabda & Raghuram Kapaganty

 

This topic was also good. It was informative and gave an good overview of the product, it's use-cases, key features, benefits, some good demos and experiences/key lessons learnt. SAP Personas 3.0 is the latest version available from SAP and is based on the principle of enabling the Standard SAP Applications without much cost involved.

 

Read More....

http://scn.sap.com/blogs/swapna.neemkar/2015/12/12/sap-screen-personas-30

 

3. SAP Fiori Cloud Edition (SFCE) by Shankar Duraiswamy

 

Cloud is the latest mantra in today's rapid changing technology world. And SAP had strategic investments in this space. A next big step for SAP in this direction is SAP Fiori Cloud Edition. Its a Cloud-Based Environment that provides Fiori Applications to customers, connecting to their on-premise Backend and Gateway systems via a SAP Cloud Connector. SFCE is hosted on HANA Cloud Platform.

 

Link to be posted, watch out

 

4. End to End Fiori Programming Model by Kiruthika

 

This topic has introduced us some of the advanced programming concepts for FIORI developments like CDS Views, Exposing CDS Views as OData Services, UI Annotations, Smart Templates of WebIDE, Draft Infrastructure. UI Annotations is still evolving and is under development by SAP.

 

SAP WebIDE is the one to watch out for developer community. SAP is trying to simplify the whole development experience however on the first look of it.. its not seemingly easy. Yes there is a paradigm shift here, as UI Developers instead of writing UI5 Code we would write UI Annotations, nevertheless, the number of lines of code might be more or less same

 

5. Capabilities of WebIDE, Fiori Launchpad & HANA Cloud Portal by Shankar Duraiswamy

 

After hearing all about the various technologies and concepts on User Experience, FIORI, Cloud Solutions as we wonder on how on the earth would we be building these applications of these areas, Shankar comes back and this time tries to break the flow of UX by starting with HANA Cloud Portal.

 

 

 

So HANA Cloud Portal is a Cloud based offering from SAP to build engaging sites over the web in a rapid manner. It is a hosted environment from SAP running on SAP's HANA Cloud Platform (HCP). Given use cases for using this is for Business users, Self-Service Users and for HCP Extensions for Cloud Applications like SuccessFactors.

 

And finally we get back to SAP WebIDE and get to know about it's capabilities, some of its key features, why is it promoted more as a cloud-based environment instead of an on-premise one etc., This does provides a single place for all types of developments done initially on traditional IDEs like Eclipse.

 

6. SAP UI5 - Advanced Gateway Concepts by Venkata Chikkam & Pavani Gundrathi

 

The last session for the day started with a basic overview of the definitions behind the Gateway Concepts like HTTP, REST, OData etc., And then provided some experiences around building and using some advanced concepts in UI5/GW developments like Soft State, Custom UI controls.

 

Finally we conclude the session of the Day...and proceeded further for closing event.

 

Have tried and provided detail links for some of the sessions, as per need and use of content.

 

Happy reading and thank you for your time spent on this blog.

 

 

 

Cheers,

Swapna .

SAP User Experience and Design Thinking

$
0
0

Presenter: Pallayya Batchu

 

1. Examples taken to set context

 

- Apple, UBER & Amazon - Leaders in their own industry

 

a. Great Service, Simplified User Interface, Product's ability to discover them, read opinions, Fast Delivery, On-Time, known for their Service.

b. Uber - right experience, ability to wow customers

c. Apple - Delivers great experience to the user right from the application to the packaging. There is an aura around Apple products. People even love the boxes in which their product is delivered. That is complete experience….

 

2. UX is good usability, desired usability

 

3. Advantages -

Satisfied users, long term customer relationship, enhancing user trust in system, decreased user errors, reduction in complaints, decreases user concerns in using product and decreased customer support cost

 

4. Some KPIs on how to measure UX - We can start with one or two of these depending on timing or the importance of the project

a. User Happiness Index - user surveys to understand how happy users are

b. UX Escalations - Tracking the number of escalations with UX Root Cause

c. Scenario Efficiency - Checking how efficiently is the experience provided on lines of simplicity, ease of use and flow etc.,

d. Data Quality - Index based on re-work or errors VS active assessment, products tailored as per customer needs

e. Training - Costs on training new users or re-training existing users

f. Agility - time to respond - qualitative index score based on actual time spent against the target time for the user activity

g. Time saving - reduce screens & clicks, speed of system, provide hypothetical value so agree adjustment factor

 

5. Relationship between UI and UX??

Information provided on the UI should be easily understood, usable,  and simple enough to access.

 

6. UX is not UI

     a. Some examples how UX is typically seen

          i. Interface Design

          ii. Visual Design

     b. Some examples how UX wants to be seen along with above

          i. Face to face interviewing

          ii. Field research

          iii. Accessibility

          iv. Interaction Design

          v. Usability

          vi. Prototyping

          vii. Presenting and speaking etc.,

 

7. Usability in simple is effectiveness, efficiency and user satisfaction, it is harmonic interaction between user and product in a specific context.

 

8. UX is about who is our user base, how are we doing to understand them and provide them the experience that they are looking for in our product 9. Emphasis is on experience and its beyond the design. Not the website only. Ex: If we are developing a website and not providing functionality to search the products, then the whole purpose is lost here.

 

10. Ex: Refrigerator is generally called a Kitchen Appliance but there can be users who search for it in Home Appliances…It goes beyond the taxonomy of the way we structure our information

 

11. Design Thinking

     a. It’s a methodology, problem solving approach or process, creativity approach that is user centered and brings design into the business world building           on top of the traditional design skills/process.

     b. Nothing new topic, its amalgamation of lot of things happening in outside world

     c. Every person has own view point on same idea, getting these difference views and getting a consolidated view of the idea is important

     d. Prototyping the ideas is also needed. Prototyping provides perspective on how does it look….

     e. Ex: Personas and FIORI was produced during workshops with customers by SAP.

     f. Designers for example in civil engineering or automobile engineering world, do prototyping of things

 

12. Process of Design Thinking involves

     a. Empathize - see the opportunity to improve some aspect of experience for the users. Understand what the users need.

     b. Defining the Idea - there should be an idea to start. This can also be problem statement derived from some of the user interactions on how well they are      able to use the product. What is more important here is the problem, not necessarily the outcome.              

     c. Ideate - Without confining to the traditional design principles of specific domain/skill set, we should brainstorm the possible ways of solving the problem           of the user. The point here is not about latest technologies but it is rather listening to the problems and thinking out of the box for the user needs.

     d. Prototype the thoughts for solution of the idea. Show to end user, take feedback and refine iteratively.

     e. Test the prototype - have the users use and give feedback

 

13. Design thinking attributes

     a. Ambiguity - Being able to work in grey areas, when there is no clear cut answer or when things are unclear or even there is not answer.

     b. Constructive  - building new ideas on top of old ones

     c. Curiosity - Interested in things that we don’t understand and ability to perceive things with fresh eyes

     d. Empathy - Understand customer needs from their point of view

     e. Holistic - Looking at the big picture

     f. Iterative

     g. Non-Judgmental

     h. Open Mindset

 

14. Design process starts with User Research - gather requirements, observations, interviews, studying natural habitat, likes/dislikes, thinking style etc.,

 

Wow, this was an amazing one and I hope it's also the same experience for folks reading this. As Technical folks we get carried away with technologies however what is important to note is that we are not only delivering functionality to the end users but a complete experience!!

 

Cheers,

Swapna.

SIT Hyderabad 2015 - Technology Development

$
0
0

http://scn.sap.com/community/events/inside-track/blog/2015/11/06/sap-inside-track-join-us-for-sap-inside-track-hyderabad-on-12th-dec-2015

 

Part of SAP Inside track Hyderabad Following 6 topics presented under technology development thread. 1. SAP and Internet of things 2. Expose multiple O data services through single service 3. Extending Success factors with SAP HANA Cloud platform 4. SAP HCI - Strategy , Licensing, use cases and Roadmap 5. Cloud & HCP - Overview , uses cases and Roadmap 6. SAP's IoT platform: An overview for HCP IoT services On the  SAP and internet of things, speakers talked about what is IoT and its relevance to current world. In addition we got to know SAP HANA cloud platform IoT services . It was great to  see a working demo on how the real time oil level can be used to trigger replenishment order. On the SAP HCP we got insight into different services available and what we can do from customer and partner perspective . On the HCI speaker talked about when it can be used and what SAP is doing on the Process orchestration front. Overall participants got insight into latest happenings on the SAP and IoT, HCI and HCP , where and how we can use these solutions/applications and road map for next few years.

SAP Screen Personas 3.0

$
0
0

Presenter: Gurupreet Chabda and Raghuram Kapaganty

 

1. SAP UX Strategy

 

     a. Un-Learn, Learn and Re-skill

     b. New, Renew and Enable

     c. New is about new applications for end users

     d. Personas fall into Enable area

 

2. What is Screen Personas?

     a. Its browser based simple ui interface for SAP GUI screens

     b. Allows personalizing SAP GUI screens without any ABAP programming but yes with some scripting skills

 

3. If we want to customize standard SAP GUI using traditional ways in SAP its lot of efforts. With Personas this becomes easy and better looking

 

4. SAP Personas 2.0 Vs 3.0 ??

 

     a. Technology dependency - 3.0 is Silverlight Independent, 2.0 is dependent on Silverlight

     b. Web Technology - 3.0 is lot faster

     c. Scripting - has debugging features for scripts in 3.0

     d. Performance enhancement - 3.0 has lazy loading, 2.0 is working on pre-fetch principle

     e. Architecture

 

5. Personas is based on Internet Transaction Server - key aspect - something that can be installed by Basis Team, its license free.

 

6. Basis can install and configure it for us to get started, its ECC based component.

 

7. Personas is accessible as a URL but it is not yet capable to run on Mobile Browsers. Its more for Desktop browsers.

 

8. It’s more for end users who have daily transactions to do in SAP system to ease their accessibility and provide better user interface and experience for the end users to work on their SAP screens

 

9. Personas is a rendering technology, so there might be some load on the server however overall the performance provided is on par with traditional SAP GUI transactions

 

10. Ex: Create Quotation Demo

     a. Saving efforts for user, he doesn’t need to remember the tabs where in his fields of data entry lie

     b. He need not be bothered about some other fields which are either default or he need not enter data

     c. Saving number of clicks for the user

     d. The navigations within this is based on workflow concept, like each screen is a step

 

11. Benefits of Personas

     a. Reduce number of screens by up to 25%

     b. Reduce number of tabs by up to 100%

     c. Number of clicks can be reduced by up to 25%

     d. Number of fields by up to 15%

 

12. Personas is user group driven. Depending on what he needs to work with on the SAP transactions, we can provide them either simplified UI or the standard GUI

 

13. Key Features -

 

14. Theme Manager

     a. Themes provide look and feel for the UI.

     b. Standard SAP Delivered themes available like Screen personas theme, SAP Corbu based theme

     c. Once theme is created several options available to set up the look and feel of each element of the UI

     d. We can have centralized settings for across projects/user groups and then customize it on top of this for specific user group needs

 

15. Tab Merging

 

16. Scripting

     a.  3.0 provides more powerful java scripting compared to 2.0.

     b. Need not write end to end script code, there is script generated with TO-DO sections once we record a transaction flow

     c. Its not mandatory to have screen with java script, its optional

 

17. Administrative settings

     a. Flavor maintenance - to maintain the flavors

     b. Resource Maintenance - place where we upload all our images/logos, sits in repository

     c. Theme Maintenance

     d. User Profile - To assign users and roles

 

18. Personas can be migrated from System A to B using Transport request OR also a XML File that’s easily downloaded and uploaded

 

19. Browser Compatibility is provided by SAP. 3.0 supports all the latest browser versions

 

20. Process and Teams

     a. Need people with Personas Knowledge, design skills and Business Process expertise

     b. Identify the processes

     c. Simplify the processes

     d. Analyze data requirements

     e. Build screens

     f. Automate wherever applicable

 

21. When to use??

     a. For enhanced user experience without major investment or shift in technology.

     b. SAP provides cost effective way of providing user experience

     c. Specific user group perform repeated tasks

     d. Users are desktop based and not requiring all functionalities

     e. Streamline business processes by simple and faster completion of transactions

     f. Simpler SAP screens

 

22. Return on Business scenarios

     a. Improved user productivity

     b. Reduced cost of screen simplification and personalization

     c. Increased data quality

     d. Decreased training costs

 

23. Key lessons learnt

     a. Follow Agile

     b. Focus on performance and efficiency

     c. Align with the technical updates happening in this product

     d. Personas Version and support available

     e. Upgrade and Testing - Upgrade to more complete version always

 

And with this we end our session on SAP Screen Personas. I believe after reading this through some of us can confidently talk about this and suggest to our clients if there is an applicable use case.

 

Cheers,

Swapna Priya

Hands on SAP ME integration or how I learnt PI (XI)

$
0
0

As it was well described by my colleague Sam http://scn.sap.com/docs/DOC-52940, SAP MII and SAP PI (XI) are designed with specific use-cases in mind.

Obviously, in case of SAP ME integration SAP MII is preferred and therefore certified and recommended by SAP. Moreover, since ME 6 version and introduction of MEINT Configuration Wizard, the standard integration has become really simple.

 

However, I have been curious how to integrate SAP ME and ERP system via PI instead of MII as long as it is technically possible. Finally, at the end of the year I was able to fulfill my curiosity and to practice a bit the knowledge that I got during PI (XI) training some time ago.

In this blog I’d like to share with you my experience how I installed PI system and managed to import a Material from ERP to SAP ME via PI omitting MII and ask your opinion about it.

 

So, here are the steps I made:

 

  1. Installed a separate PI Netweaver system. Its name is HPI, this is java only installation. On the same server I have another Netweaver H15 system where SAP ME 15.0 is deployed, but of course it technically can be on separate machines.                                                                                             Systems.png
  2. Maintained the SLD. H15 system, where SAP ME is deployed, I entered manually. For the ERP system it is better to use RZ70 transaction import automatically. By the way, Note 2073816 – ‘RZ70 hangs in endless loop’ can help you to save as much time as you were ready to wait JSLD Technical Systems.png
  3. Defined Business Systems on top of Technical Systems.SLD Business Systems.png
  4. Maintained ESR. Imported the definition of MATMAS03 iDOC and the corresponding WSDL to my own Software Component.Imported Definitions.png
  5. Maintained ESR. Defined a Service Interface.Service Interface.png
  6. Defined Communication Channels from ERP and to ME in the Integration Builder.ChanelFromERP.pngChanelToME.png
  7. Defined a Configuration Scenario.                                                                                                                  Configuration Scenario.png
  8. Where the Receiver Interface used the mapping from ESR. The mapping editor in ESR is the place where I had the most of fun, because I truly liked it. There you can drag and drop tags to map them, you can define Constants etc.Mapping.png

 

 

So, I was able to:

send the iDOC from ERP system -> receive it in PI system -> convert to webservice request as per SAP ME definition -> make a webservice call to SAP ME.

In the meantime monitor the message that is being sent

Monitor.png

 

And eventually get a new Material created in ME

Material Maintenance.png

 

 

Saying this and sharing the steps I made, I’d like to remind one more time that such integration between ERP and SAP ME is not recommended, that standard integration via MII + MEINT should be used instead.

 

 

 

Nevertheless, I would highly appreciate comments and ratings to this blog post. I am very interested to hear about your experience in SAP ME integration, in using PI (not necessarily for SAP ME), existing and potential ME integration scenarios. In particular, what systems have you ever connected to ME? Did you use MII, PI, PCo or some custom code that called SAP ME public API ? Please, let me know.

 

 

Best regards,

Alex.


Competing On Design Thinking

$
0
0

SAPVoice Forbes Competing on Design Thinking by Kaan Turnali.pngDesign thinking doesn't guarantee innovation, but innovation always hinges on design-thinking principles.

 

Steve Jobs famously said, “Design is not just what it looks like and feels like. Design is how it works.” Design thinking takes this notion further and provides a set of tools to power innovation through design.

 

As the popularity of design thinking continues to expand and spread across a variety of domains, it begs the question: Will design thinking ever reach the point of diminishing returns? In a recent Harvard Business Review post, IDEO CEO Tim Brown entertained a similar question: “When everyone is doing design thinking, is it still a competitive advantage?”

 

Competing on design thinking requires a fundamental shift in how we approach design to solve business problems and, more important, how we channel the essential values of design thinking in everything we do. For design thinking to make a greater impact and enable a competitive edge, the emphasis has to be—first and foremost—on what I like to call the application of its core principles.

 

This viewpoint requires leadership with forward-thinking ideals. With this mindset, we can cement a culture of design thinkers who can expand the window of opportunity from which an innovation foundation through design can be built. In this new series, I will shed new light on the central ideas—such as empathy, integrated solutions, the principle of failing early and often, and ambiguity—that place design thinking at the core of customer-centric organizations.

 

Design thinking calls for a fundamental shift in mindset


To deliver results through design thinking, the concept must be embraced as a way of thinking through design that is native to the problem we are trying to solve—not as a timed activity or practice tied to a special project or associated with a formal initiative. Whenever I discuss innovation, I often argue that we need to have an innovation mindset present at all times for it to flourish in the enterprise.

 

In the same way, success with design thinking demands a design-thinking mindset. We should consider design thinking as an endless opportunity for delivering customer-centric solutions with a holistic approach.

 

When we think through design, we seek that intrinsic value, which is hidden or trapped. We are thinking in the design.

 

Design thinking isn’t just reserved for new products and services

 

Design thinking is the art and science of solving problems—not limited to just new products and services.

 

By applying design-thinking principles, sometimes we are also solving old problems with new questions—in addition to addressing brand-new problems. This is innovation from within. We turn our held assumptions inside out to uncover the new in the old, whether it’s an unmet need or underutilized demand.

 

I often cite cost reduction as a great example because it can be explored effectively through design thinking. Eliminating waste and reducing cost to seize new opportunities may be considered as a lightweight alternative to developing cutting-edge products. However, lowering cost without business disruption or providing more with less is as great a challenge as anything else. Besides, it’s a true innovation competency with the potential to deliver equally greater returns.

 

Design thinking is the future of work

 

The future of work lies in the hands of design thinkers. When we consider design in the holistic sense and beyond its traditional boundaries, we see it emerge in everything we do—regardless of our organization’s size, industry, or business model. The three pillars of customer-centric work put human-centered design at the core of our everyday work: What we do, how we do it, and why we do it.

 

For design thinking to deliver results, each of these pillars needs to be aligned in unison with a singular objective: Customer centricity. Moreover, design thinking is not a thing that comes with an expiration date, per se. Rather, it is the way we work and think. Companies that integrate the core principles of design thinking often value a culture that fosters a more-creative, human-centered approach to work.

 

They can find the right balance of motivation and influence to apply design-thinking principles across all ranks of their workforce and blend them across all layers of their business processes. To scale and deliver results, these principles need to be accessible and usable by larger segments of the workforce. And cross-fertilization of ideas establishes a deeper level of thinking embraced as a cultural force.

 

Bottom line

 

I see design thinking as a framework for innovation. We pollinate new and old ideas, which translate into solutions that drive growth and profitability. This is how we compete on design thinking. And its core principles remain timeless for generations to come.

 

Stay tuned for the next installment of the Design Thinking thought leadership series!

 

Connect with me on Twitter (@KaanTurnali) and LinkedIn.

 


 

More from Business Trends:

4 Ways We Can Redefine Innovation In The Enterprise

3 Reasons Why Thought Leadership Matters

How Do You Define Business Talent?

5 Tools That Foster Technology Innovation

What Is Design Thinking?

Leadership Starts With One

Single-Click Consultants Need Not Apply

5 Reasons Why More Data Doesn’t Guarantee Better Decisions

The Fan Experience Matters: The Essence of Fan Journey

4 Reasons Why Excellent Customer Service Should Start With A Smile

 


 

This post first appeared on turnali.com

SAP Mobile Documents now has native client for Windows Phone and Windows Tablets

$
0
0

 

Overview

 

SAP Mobile Documents made its first stride towards a Metro UI based Windows native app for Windows platform early this year.  New Metro UI for Desktop Client on Windows 8.1.

 

With 1.0 SP5 release of SAP Mobile Documents, we now have a pure Windows native app for Windows Tablets and Phone. In this blog i will introduce you to the new client.

 

(I have re-sized images to small thumbnails in the blog for better readability. Please click on the image to view the image in the original size)

 

Many of our customers are moving to Windows platform. There is big demand for an app for Windows devices (Tablets and Phones), which is similar to the  native client for SAP Mobile Documents app on Android and iOS platform.

We started with a Metro UI app which required the Desktop client to synchronize the files to local PC\tablet.


Now, we have a windows universal app for SAP Mobile Documents which can run on both Windows Tablets and Phones which has in-built sync engine also.

 

New Windows App hands-on

 

Downloading and Installing Windows App

  • Start the Windows app by clicking on the App tile


Login to the app


  • In the login screen, enter SAP Mobile Documents server URL, username and password

 

loginPhone.jpgloginTab.png

 

  • After successful login, we can see the list of folders and files present in the ECM repository configured at SAP Mobile Documents in "My Documents".

 

  MyDocsWithSyncedDocs-EN.pngMyDocs-EN.png

 

Navigating folder and file hierarchy


  • We can navigate in folder hierarchy by taping on a folder
  • We can open a file by taping on a file and selecting a relevant viewer installed on the device
  • On phone, we can switch to another repository by taping on hamburger icon on top right corner. On tablet, tap on the three dots on the right middle corner of the app.

We refer to this screen as Repository Switcher. One can switch between "My Documents", a "Corporate Documents", or "Shared Documents"


RepoNavigator_EN.pngRepoSwitcher-EN.png

 

Offline documents


Swipe to select folder or file. In the list of available actions, choose the action "Mark for Offline" to have the documents synched to device. You can refer to these documents when you are offline.


ActionPanel-EN.pngActionPanel-EN.png


If you Windows app is running and in focus, whenever these documents are updated on server they get updated on the device.

In the Repository Switcher view, there is dedicated section "Synched", where all the synched documents are displayed.


Changing settings of the app

 

  • On Phone, inside the Windows app, switch to Repository Switcher. (Tap on the hamburger icon on top right corner). Use the setting icon on top bottom corner to switch to the settings screen.
  • On tablet, inside the Windows app, swipe from edge to open the settings for the app.

 

From the settings options, you can change account settings, enable support logs, request support etc ....

 

Settings-Support-EN.pngSettings-EN.png

 

How is the new the Windows Native App different from the Metro UI app

 

The Windows Native App available in store is different to the metro UI app we have built previously:

  • The Metro UI app required desktop client, since the desktop client will sync the files to the device and Metro UI app will only present it.

The Windows Native app is standalone and has in-build sync engine.

  • The Metro UI app can only run on Windows tablets. The Windows Native app runs on both Windows tablets and phones.
  • The Metro UI is not on Windows Store. The Metro UI has to be downloaded from SMP and can be installed via only side-loading.

The Windows Native app is present on Windows Store.

 

Please refer to this blog How to connect the SAP Mobile Documents Windows Native App to your trial by Vedika Neha Shabraya to know how you can configure your Windows Native Client with a HCP trial account.

Create Custom Heuristics

$
0
0

SAP provides a lot of standard heuristics for planning under APO Production Planning and Detailed Scheduling module. But you have an option to create your own heuristics. In this blog post we shall quickly go through the process of how to create your own custom heuristics.

 

In APO either go to transaction /sapapo/cdpsc11 directly or else go through following path:

 

Advance Planner and Optimization --> Supply Chain Planning --> Production Planning and Detailed Scheduling (PP/DS) --> Heuristics --> Maintain Heuristics

 

Heur1.png

 

It will show you the standard heuristics list.

 

Heur2.png

 

Click on “New Entries” button. It will open a new screen for you where you can maintain lots of details as follows:

 

Heur3.png

 

In the “Other Heuristics” field you can select from the available options as follows depending on the business need:

 

Heur4.png

 

“Reuse mode” has following options:

 

Heur5.png

 

The field “Degree of Fineness for Run time Statistics” is the value that defines for which products the system records an entry in the runtime statistics when planning with the heuristic. An entry is made for each multiple of this value.

 

You can use the custom heuristics along with all the settings available on the screen for your advantage depending on the business case. For example, top down Heuristics or the other way round depending on the business case.

 

- Rahul

Extending the Analytics tool features by consuming Extensions

$
0
0

This is the first time I’ve blogged about the SAP Analytics Extension Marketplace, a one-stop shop where SAP eco partners promote and sell tools to extend SAP Analytics products.


Now I don’t want to write a dull marketing piece about the site. Instead, I’ll first try to briefly describe its aims in plain terms and then follow up with a partner and customer perspectives in subsequent blogs.


If you’re familiar with SAP Analytics, then you probably know that we’ve concentrated on what’s called trusted data discovery and visualization with products like Lumira, Design Studio, Webi and many more.


But there’s only so much one company can do alone.


We rely on a growing ecosystem of partners – some niche and some giant blue chips – to fill the gaps. And those gaps are diverse. Every customer has a number of unique use cases. So it’s evident that one company will not meet every user’s requirements on its own.

 

                                                                 market-place.png

We’ve got around 100 (and counting) SAP Analytics partner extensions on the SAP Analytics Extension Marketplace. And they’re built using SAP software development kits, meaning they’re reliable and secure.


So how can we integrate partner extensions with SAP Analytics products?


We’ve experimented with a number of different ways to make partner extensions very visible and accessible for users. And our methods have evolved to the point where we’ve started to embed a link– resembling a jigsaw puzzle piece – within SAP Analytics products, to appropriate extensions. And when you link to an extension, you’ll jump to that partner’s site, where you can test-drive and (if you choose) download the relevant tool instantly.


We don’t innovate alone.


Within SAP Analytics, I am responsible for vetting and growing our partner ecosystem. It’s not an easy task, since many companies want to nail their colors to our mast. But the role helps me to understand the multiplicity of our partners and customers. And that fascinates me. I hail from India and yet I am learning to appreciate the intricacies and idiosyncrasies of businesses in every corner of the globe. And now I have an opportunity to foster a huge community of partners to co-innovate and enable a spectrum of people who are driven to make things simple for users of SAP Analytics.


When I return home each evening (sometimes too late to tuck my baby girl into bed) I marvel at what dreams she might have. Instinctively, I know that she will leave her lasting mark on this world (because she is as smart as her mother). And I really think that she will best do that by reaching out to a talented community of like minds. So, when I encourage partners to join the SAP Analytics Extension Marketplace, I feel I’m helping to foster the next generation of cooperation, maybe hyper-collaboration, but certainly simplicity for analytics solutions.


See also


                         c.png


In my next blog, I will (or hope to) introduce a partner so that they can objectively tell of their experiences with the SAP Analytics Extension Marketplace.

 

Regards,

Vinay Hegde

Analytics Extension Expert

mail: vinay.hegde@sap.com  

SAP Landscape Virtualization Management (LVM) OpenStack Adapters

$
0
0

With the help of Adapters for the OpenStack Platform, SAP LVM extends its reach into more cloud infrastructures.

What is available:

 

SAP LVM Virtualization Adapter for OpenStack Nova (Compute)

SAP LVM Storage Adapter for OpenStack Cinder (Block Storage)

SAP LVM Storage Adapter fro OpenStack Manila (File Storage)

 

The Adapters are using OpenStack Keystone for authentication.

 

openstack.png

 

The Adapters are released as open source through GitHub.

https://github.com/sap/lvm-openstack-adapters

On this page you will find more information and are able to download the Adapters.


SAP LVM is a powerful automation tool that helps you simplify andautomate the management

and operations of your SAP landscapes. The addition of Adapters for OpenStack will help customers

to manage and copy SAP Systems located in their local Data centers and in cloud infrastructures like

OpenStack.



Viewing all 2548 articles
Browse latest View live


Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>