Quantcast
Channel: SAP Manufacturing Integration and Intelligence (SAP MII)
Viewing all 85 articles
Browse latest View live

Streaming Data in the Industrial Space (SAP MII/PCo/ESP/HANA)

$
0
0

Summary

Since the introduction of the first PLC devices to automate industrial processes, there has been a pull from different groups within the organization (engineering & operations folks) to have more and more visibility into that data to improve reliability, performance, and consistency across various operations.  This automation data can drive integrated workflows and processes along with assigning a corresponding urgency to issues detected when it is coupled with the right business data.  There are many ways to interact with the PLC sensor data, but more often than not the data is being simplified and persisted in a data historian in order to provide engineering level detail of all values captured off of the automation layer.  There is typically a huge volume of raw sensor data and probably more than anyone one person will be able to sift through, unless they have some guidance and tools to point out where in the data there are anomalies.  By anomalies we are not talking about simple threshold violations but rather complex interdependencies that can wreak havoc on the quality of a product being produced based.  This complex event detection can leverage standard statistical process control (SPC) rules and also custom defined ones that are specific for a material or to a process (multiple machines in a work center) or both.  The trick here is to find operations folks whom also understand this and are looking for new and improved tools that enable them to track this and generate insight to drive the decision making process inline with various production operations or phases.  The reality is that this often spans multiple disciplines and areas of expertise on the business side (Engineering, Quality, Supervisors/Team Leads, and operations folks) and the more coordination across these disparate groups that the IT leadership, when sponsored by thought leaders from the business, can unlock hidden opportunities for performance improvements and productivity gains.

 

This type of inline quality data collection and analysis is possible today with existing software from SAP and for technical details and insight into how this integration is achieved you can see my BLOG here SAP MII & ESP Integration Guide (Technical).

 

Overview of the Components

There are various components involved here and each one plays a different role in how metrics and KPIs like quality, production volumes, utilization, and asset health (really these are all inter-related).  The components each have their own use cases that all help to programmatically populate these metrics and drive actionable data and intelligence into business workflow processes rather than having to have to collect and assemble this data into information as separate pieces.  Having a fully integrated environment that can reach across heterogeneous execution, historian, SCADA, DCS, HMI, etc (the list goes on and on and on some more) and enterprise systems can provide end-users a single channel to interact with and analyze data, in the same context as the rest of the business, can provide tremendous process simplification and coordination value to an organization.  It can also yield real-time insight into how profitable operations decisions actually are as they are being made in order to influence consistency in problem remediation and to ensure that priority of issues are upheld and work is completed in a timely manner.

SAP Manufacturing Integration & Intelligence (MII) and Plant Connectivity (PCo) - HOMEPAGE

In case you are unaware, SAP has a product that is designed to work in the industrial space to bridge the gap between the operations and enterprise levels and this product is SAP MII (currently SAP PCo is bundled/licensed with SAP MII).  SAP MII, current version is 15.0, is designed to provide out of the box integration with ERP down to the operations layer and back up again along with performance management reporting driven from the automation, execution, and operator levels.  This performance management and operations management style of reporting is nothing new and has been around for a long time now but the main difference is the out of the box data model, integration, and worker UI screens designed specifically for the operations folks.  It has a built-in data model for tracking Overall Equipment Effectiveness (OEE) across your operations and driving real-time views of your efficiency along with integration to manage the classification of events (in ERP) and multi-site analytics views of performance (in HANA).

SAP Event Stream Processor (ESP) - HOMEPAGE

The SAP Event Stream Processor (ESP) engine is one that enables the inline processing and correlation of multiple parallel streams of data.  Sound confusing, it's really not and it's something that you do every day in your head!  Think about what goes through your mind when you are planning to do something as simple as go for a walk around your neighborhood.  You walk outside to see the temperature, wind speed, are the clouds in the distance, what time of day is it and all of this determines what you should wear and when you should plan on being home by.  This is essentially what ESP is providing for you but with the automation layer as the inputs to drive the parallel correlation and analysis of data and highlight key areas of concern inline with the process.  It can do this much faster and more consistently than people can and stands to provide huge value around driving corrective actions for improving product quality and also asset reliability.

 

SAP HANA - HOMEPAGE

The SAP HANA in-memory data (in case you haven't heard of it yet) is an analytical DB engine with built-in application capabilities that can drive a huge number of analytical transactions and can have raw data from the ESP Streaming Engine or operations data from MII loaded into it in order to drive centralized analytics on both large and small datasets.  There are many more things that can be done with the HANA engine and lots of collateral online that can help to guide you on ways to use it across a huge variety of different business verticals but very useful to drive predictive analytics as this is a big growth area for the HANA engine.

 


Let’s set the record straight on the CBM RDS!

$
0
0

For those of you out there that keep tabs on the CBM topic, you’ve probably noticed that the RDS material (SAP Condition-Based Maintenance rapid 7015912 -deployment edition) was removed from the latest publication of the master price list. No, your eyes did not play tricks on you. Here is a simple explanation.

 

With SAP MII (Manufacturing Integration and Intelligence) being the sustained flagship product for manufacturing integration over the years, the SaKP team wanted to show its appreciation to the MII community (MII licensee) by removing the price tag for the CBM RDS content – this is the reason CBM is no longer on the price-list. While MII serves as a robust platform for bringing ERP and shop floor processes closer together, we understand that it is only a platform if without the application content that runs on it to solve business challenges. That’s where the RDS content comes into play. If MII is the cone then CBM and other applications like it (i.e., SCM, QM, ME, Batch Manufacturing, energy management and even CRM) would be the ice cream on it – pun intended. Anyway, this is not another blog on the benefits of the CBM RDS but to let you know that there is a way to get it for free if you are already a licensed MII customer. For technical detail on the CBM RDS, please visit my previous blog on the topic (link).

 

If there is just one takeaway from this blog, it would be that customers with existing MII licenses are only a few clicks away from jumpstarting a CBM initiative with no additional licensing requirements.  Here is how to do it and what I recommend to take full advantage of this free offer. Start small -- Follow these steps to install a proof-of-concept.

 

Follow these simple steps to download the CBM RDS content:

 

  1. Go to https://websmp110.sap-ag.de/~form/handler?_APP=00200682500000001943&_EVENT=DISPHIER&HEADER=N&FUNCTIONBAR=N&EVENT=TREE&TMPL=INTRO_SWDC_IU_PSP&V=INST&TA=ACTUAL
  2. Look for the “SAP Condition based maintenance RDS”    
  3. Untitled.png
  4. Follow instructions in SAP NOTE 1746447 - SAP Condition-Based Maintenance Rapid-Deployment Solutionto deploy

 

With an experienced team of two (MII developer and Abapper), you can get a quick POC up and running on your sandbox or DEV environment in a matter of days. For this POC phase, don’t get bogged down by modifications or enhancements – deploy the RDS as-is. See what it can do out-of-the-box in your environment, using your master and shop floor data. Have your IT team contact me directly in case you run into a snag here (email).

 

With a POC in place, you and your team can take some time to review the benefits of CBM firsthand and using the insight that only you have about your processes identify ways that final adjustments can be made to the solution to better fit your business requirements. At this stage, I would recommend bringing in one of our partners to get their advice on the additional requirements or strategies on scaling. Our trusted partners are always on standby to assist you at any stage in the process:

 

  1. SAP Consulting (Mention 50114730 RDS Rapid Deployment of SAP Condition Based Maintenance so your adviser can quickly assemble the right team to work with you)
  2. Fujitsu - James.Zhang@us.fujitsu.com
  3. Vesta Partners - rericsson@vestapartners.com

 

Ocensa (a Colombian pipeline company) was able to roll out CBM for the 1st wave of assets in just 5 weeks by adopting this approach.  At SaKP, we always strive to meet our customers’ needs by continuously streamlining and simplifying the process of adopting SAP rapid deployment solutions. In line with these goals we have revamped the process to provide you with the best solution adoption experience.

SAP Radio on Manufacturing and the Internet of Things (IoT)

Formatter function and it's strange behavior - Viz Charts/ Flattened Dataset

$
0
0

Dear All,

After I have invested a good amount of time on finding a way to implement formatting on Date datatype, I hereby want to share my findings so that it can help all those need.

This would help in implementing date formats in a simpler way. Please find the steps below:

 

1. Let's say you have a raw JSON Data with following format:

 

var oData1 =  {TechKPI:[

     {date:new Date("2014-02-01T09:28:56"),TotalAvailability:87.3, WindAvailability:33.3, EngineAvailability:81.1, TotalEFOR:12.2, WindEFOR:5.2,EngineEFOR:15.9},

       {date:new Date("2014-02-02T09:28:56"),TotalAvailability:87.4, WindAvailability:34, EngineAvailability:81.1, TotalEFOR:11.5, WindEFOR:1,EngineEFOR:16.3},

       {date:new Date("2014-02-07T09:28:56"),TotalAvailability:87.8, WindAvailability:33.1, EngineAvailability:81.5, TotalEFOR:13.7, WindEFOR:8.7,EngineEFOR:15.7}]};

 

2. Now you need to create a flattened dataset so that the data can be parsed to the chart objects. Here you go,

 

var oDataset = new sap.viz.ui5.data.FlattenedDataset({

 

 

  // a Bar Chart requires exactly one dimension (x-axis)

  dimensions:[

  {

  axis:1,

  name: "Date",

  value: {

  path : 'date' ,

                        formatter : function(fval) {

                           jQuery.sap.require("sap.ui.core.format.DateFormat");

                           var oDateFormat = sap.ui.core.format.DateFormat.getDateTimeInstance({pattern: "yyyy/MM/dd"});

                           return oDateFormat.format(new Date(fval));

 

                        }

  }

  }

  ],

 

 

  // it can show multiple measures, each results in a new set of bars in a new color

  measures : [

     // measure 1

  {

  name : 'Total Availability', // 'name' is used as label in the Legend

  value : '{TotalAvailability}' // 'value' defines the binding for the displayed value

  }

  ],

 

  // 'data' is used to bind the whole data collection that is to be displayed in the chart

  data : {

  path : "/TechKPI"

  }

 

  });

 

3. Now you need to assign the same to the chart as:

var oLine = new sap.viz.ui5.Line({

  width:"770px",

  height:"300px",

  title : {

  visible : true,

  text : 'Availability'

  },

  dataset : oDataset

  });

 

oLine.setModel(varModel);

 

Now the chart would have x-=axis labels as "2014/02/01" for date value "2014-02-01T09:28:56".

 

*Formatter function was required here as chart could not interpret values in given date format.

 

**IMPORTANT FOR DEBUGGING**

- A point that put me in wonder was, "fval" keeps on showing value as null(in debug mode) until one round of iteration was completed through raw dataset. This held me back with trying different approach and modifying the formatter function in all in-human ways. Reason behind this behavior is still not know to me.

- Ultimately my conclusion(completely out of observation) was if you are sure the there is nothing wrong with your formatter function code, keep on iterating through a specific number till the point you get either a value in it or an error.

 

Hope you find it useful...!!!

 

Warm Regards,

Swaroop

OEE for the Enterprise

$
0
0

I just recently had an article published at Automation.com (Automation.com - News & Resources for Manufacturing, Factory & Industrial Automation; Process Control; Motion Co…) on how to leverage OEE for your enterprise and wanted to echo the link to this article for the wider SAP Mfg community so please have a look and let me know what you think:

OEE for the Enterprise | Automation.com

 

It closely aligns with the positioning of our SAP OEE product and the broader SAP Mfg strategy around continuous improvement that originates with data at the operations level and drives strategic decisions and business cases at the enterprise level.  Where, When, and Why to re-invest in manufacturing.

 

Thanks,

Sam

 

PS: OEE links on the SDN are here:

 

SAP OEE Documentation

SAP OEE How-To-Guide - Define Production Activities and Use Them on OEE Dashboard

SAP OEE How-To-Guide - Create MII Transactions to be Called From PCo

SAP OEE How-To-Guide - Create an MII Extension and Plug Into a Dashboard Event

SAP OEE How-To-Guide - Custom Development for Multiple ERP and MII Systems

SAP OEE How-To-Guide - Add Custom Reports in OEE-HANA Analysis Report

SAP OEE How-To-Guide - Create a New SAP UI5 Development Component.

SAP OEE How-To-Guide -Generic Activity

SAP OEE How-To-Guide - Define Standard Rate in Order

SAP OEE How-To-Guide - Custom UI

How to set up Custom KPI in SAP OEE Management

SAP MII Illuminator Document XSD

$
0
0

There are always uses and questions that come up around the usage of XSDs, especially when working with the MII transaction WSDL interface and trying to capture XML or return XML values using this.  The default behavior of the XML type when displayed in an MII transaction WSDL is to show the type as a String rather than as having a type of XML.  This is because technically there is no difference between an unstructured XML and a String.  If you want to provide a structured XML type you do have the option to define in the transaction properties window an XSD and choose the "Element Name" that represents the structure of the expected XML document as shown here:

TrxXMLPropertyConfig.png

Simply press the "Select XSD" button to open up the below configuration dialog to choose your XSD.

TrxXSDSetup.png

 

From here you have the option to or not to enforce validation of the XML in MII (MII will throw an error if XML doesn't match XSD).

 

The XSD used in the above is this and this XSD definition is for the standard MII Illuminator XML format (/Rowsets/Columns/Column & /Rowsets/Rowset/Row):

<?xml version="1.0" encoding="utf-8" standalone="no"?><s:schema xmlns:s="http://www.w3.org/2001/XMLSchema">    <!-- definition of complex elements -->    <s:element name="Messages">        <s:complexType>            <s:sequence>                <s:element maxOccurs="unbounded" minOccurs="0" name="Message" type="s:string" />            </s:sequence>        </s:complexType>    </s:element>    <s:element name="Column">        <s:complexType>    <s:attribute name="MinRange"    type="s:decimal" />            <s:attribute name="MaxRange"    type="s:decimal" />            <s:attribute name="SQLDataType"  type="s:integer" />            <s:attribute name="Name"        type="s:string" />            <s:attribute name="SourceColumn" type="s:string" />    <s:attribute name="Description"  type="s:string" />        </s:complexType>    </s:element>    <s:element name="Columns">        <s:complexType>            <s:sequence>                <s:element maxOccurs="132" minOccurs="1" ref="Column" />            </s:sequence>        </s:complexType>    </s:element>    <s:element name="Row">        <s:complexType>            <s:sequence id="RowSequence">                <s:any maxOccurs="unbounded" minOccurs="0" namespace="##local" processContents="lax" />            </s:sequence>        </s:complexType>    </s:element>    <s:element name="Rowset">        <s:complexType>            <s:sequence>                <s:element maxOccurs="1" ref="Columns" />                <s:element maxOccurs="unbounded" minOccurs="0" ref="Row" />            </s:sequence>        </s:complexType>    </s:element>    <s:element name="Rowsets">        <s:complexType>            <s:sequence>                <s:element maxOccurs="1" minOccurs="0" name="FatalError" type="s:string" />                <s:element maxOccurs="1" minOccurs="0" ref="Messages" />                <s:element maxOccurs="unbounded" minOccurs="0" ref="Rowset" />            </s:sequence>            <s:attribute name="DateCreated" type="s:dateTime" />            <s:attribute name="EndDate" type="s:dateTime" />            <s:attribute name="StartDate" type="s:dateTime" />            <s:attribute name="Version" type="s:string" />        </s:complexType>    </s:element></s:schema>

From here when you do call the WSDL generator interface for the MII Transaction engine (Web Service Interface - Content Development - SAP Library) the response now includes a "typed" element and also at the top includes a reference to your XSD:

WSDLDefinition.png

 

Hope that this helps,
Sam

Performance improvement to Transaction Manager screen in MII 12.2 SP07

$
0
0

Over the past few years, many users have faced major issues with Transaction monitoring using Transaction Manager screen. The most common complaint is that the screen hangs when it is accessed. The user has to close the browser window and then the whole client session gets locked.

The root cause of this issue is that MII tried to load the entire transaction execution history all at once. A workaround to this issue was to delete unwanted entries from XMII_TRANSACTIONS database table.

 

As of MII 12.2 SP07 the Transaction Manager screen has included the following two options:

TransactionManager.png

 

As a result, on initial load of the screen,no entries come up. This is not an error in the screen.

To load entries to this screen, either of the filters 'Status' or 'Duration' needs to be populated and the 'Search' button needs to be clicked.

The "Status" drop down is pre-populated. The entries include status values:"Pending","Running","Successful","Failed","Terminated","Break","Debug Abandoned","Debug was successful","Debug was terminated","Debugging","Debugging","Exception","Unknown". These entries were available in the status filter in earlier support packages as well.

 

The second drop-down 'Duration' helps user select the duration for which he wishes to see transaction history. This drop down is populated using entries defined in the Data Services - >Time Period screen. This makes the the duration field customizable. After 'Search' button is clicked, the entries come up as per selected criteria.

Whenever a loaded transaction entry is selected, the details of the entry come up at the bottom as before.

Splitting the Inbound/Outbound message in SAP MEINT while working with SAP ME 6.0.3

$
0
0

During my recent engagement with one of the largest automobile clients we encountered one problem while integrating SAP ECC with SAP ME version 6.0.3.

 

As per the required functionality the outbound message from SAP ME should trigger to generate & print the label from SAP ECC. In this scenario, maximum expected delay considered is 2 minutes. However, it is taking much more time than originally it was considered during realization.

 

Primarily it was appeared as SAP MEINT problem because SAP ME was sending the outbound messages in time to SAP MEINT. However, MEINT was not able to process it in time. A detail investigation revealed that the problem is lying with the dispatcher queue. During peak hour, the inbound messages are released from SAP ECC and the outbound messages are getting posted from SAP ME simultaneously. However, the single threaded dispatcher queue is
unable to handle both sided message posting in time.

 

Furthermore, this investigation depict that inbound orders are taking much more time due to routing configuration and Bill of Material configuration into SAP ME. Any outbound message if posted from SAP ME during that period are backed up in the queue until and unless the previous orders are thru to SAP ME.

 

 

Problem Scenario:

In the below diagram (Pic-1) it is showing that integration queue in MEINT is accepting both inbound and outbound messages. Both type of messages are posting into one queue so, messages are processing according to first in first out method. Single dispatcher job in MEINT is responsible for picking each and every message from integration queue and putting it into workflow.

 

As the queue is single threaded and synchronous in nature so, if any message takes longer time to process then message sitting next to it would remain ideal for longer period in the queue.

Pic-1.jpg

 

 

So, when calculate the queue timing(difference between message received in MEINT and start processing in MEINT ) and response timing for MEINT messages from SAP ME found the below(Pic-2) analysis. Here it is showing that queue timing are quite large and messages are sitting in the queue for longer period of time.

Pic-2.jpg

Solution to the problem:

Though we identified the problem visually but as it is an SAP product so we seek help from SAP technical team and conversation with them lead to one SAP Note 2000811. In this note SAP has separated the inbound and outbound message virtually (by providing the input and output message flag internally) and segregated the dispatcher scheduler into two different part say inbound and outbound. Inbound dispatcher scheduler is responsible for taking care of the inbound (inbound to SAPME) messages like ‘ORDER’, ‘LOICSW2’, ‘MATMAS’, ‘ZMATMAS’ etc., and outbound dispatcher scheduler is responsible for handling the outbound(outbound from SAPME) messages like ‘yieldConfirmationRequest’, ‘scrapConfirmationRequest’ etc.,.

Pic-3.jpg

 

The above picture (Pic-3) is showing how the architecture looks like after implementation of the SAP Note 2000811. Now it is clearly showing that inbound and outbound messages are independent to each other but sitting in the same queue and processing separately. So like earlier any message from SAP ME should not be backed up due to the long processing time of inbound message. The below analysis ((Pic-4)) is showing how the MEINT queue timing drastically improved to a minute range after implementation of split queue.

Pic-4.jpg

In later version of SAP ME the problem has been taken care also the resolution available with latest patch. However when version up gradation and service pack up gradation both plans are little far from the current situation(i.e., SAP ME 6.0.3) then this note would work as oasis to rectify the problem within existing landscape.


Insights on SAP UI5

$
0
0

sapIcon.png

Introduction

SAP is moving towards cloud with the introduction of HANA.With advent of new technologies, SAP is also embarking towards developing new competitive modules for its wide variety of products.

 

One of them is SAP UI5 framework. In a very lean term SAP UI5 is a Javascript based framework that has collection of libraries. An anology to SAPUI5 framework can be "Sencha" that is used to develop cross platform mobile application user interfaces.

 

Few points on SAPUI5

  1. Rich user interface components available like built in api for Charts, Grids, Layouts and many more.
  2. Complete adherence to MVC (Model View Controller) architecture.
  3. SAP UI5 can be used to develop user interfaces for all SAP products such as SAP MII, SAP ERP etc.
  4. SAP UI5 plugin is available as open source and can be used on Eclipse to do development.
  5. One can develop User interface module using SAP UI5 framework and later on can be integrated with Android SDK, ultimately result in an Android mobile application.
  6. Very rich online documentation available to help developershttps://sapui5.hana.ondemand.com/sdk/#content/Overview.html

 

Detail on SAPUI5
                                                                  sapui5App.png

 

SAPUI5 application will run on browser or browser component. As shown in above diagram, the default page of an application will be index.html. We can call it as the master page. From master page end user can request to server.Based on user request, appropriate controller will be called. For example request to add records will stimulate the AddRecord controller.

Controller are the programs that interface between View and Model.Controller will contain the business logic and connect to appropriate Model to get or set the state of database. Once the model responds to controller, controller will stimulate appropriate View as a response to user.

Here, point to note is that Model and View are totally independent. So any change in view will not affect controller's business logic.

As per the above diagram, the bottom most part is SAP Libraries. These libraries are core for all the files in project.We will see them in below sample code of a chart.

 

SAPUI5 for Mobile

SAPUI5 libraries are supported on many platforms. SAPUI5's sap.m library is required to define apps, screens and UI controls for SAPUI5 mobile application.


                                   sapui5Comp.png

Sample Chart development #1

 

sapui5graph.png

 

 

Creating the above chart is just four step process-

 

Step 1-Create a model with business data in it.
var oModel = new sap.ui.model.json.JSONModel({
businessData : [
{Country :"Canada",revenue:410.87,profit:-141.25, population:34789000},
{Country :"China",revenue:338.29,profit:133.82, population:1339724852},
{Country :"France",revenue:487.66,profit:348.76, population:65350000},
{Country :"Germany",revenue:470.23,profit:217.29, population:81799600},
{Country :"India",revenue:170.93,profit:117.00, population:1210193422},
{Country :"United States",revenue:905.08,profit:609.16, population:313490000}
]
});

 

Step 2- Create a Dataset and Map it to Model.

var oDataset = new sap.viz.ui5.data.FlattenedDataset({
// a Bar Chart requires exactly one dimension (x-axis)
dimensions : [
{
axis : 1, // must be one for the x-axis, 2 for y-axis
name : 'Country',
value : "{Country}"
}
],
// it can show multiple measures, each results in a new set of bars in a new color
measures : [
  // measure 1
{
name : 'Profit', // 'name' is used as label in the Legend
value : '{profit}' // 'value' defines the binding for the displayed value 
},
{
name : 'Revenue',
value : '{revenue}'
}
],
// 'data' is used to bind the whole data collection that is to be displayed in the chart
data : {
path : "/businessData"
}
});

 

Step 3- Create the Bar chart with the dataset created in step 2.

// create a Bar chart
  // you also might use Combination, Line, StackedColumn100, StackedColumn or Column
   var oBarChart = new sap.viz.ui5.Bar({
width : "80%",
height : "400px",
plotArea : {
//'colorPalette' : d3.scale.category20().range()
},
title : {
visible : true,
text : 'Profit and Revenue By Country'
},
dataset : oDataset });

 

Step 4- Attach the Chart to a <div> tag in your HTML page.
// attach the model to the chart and display it
oBarChart.setModel(oModel);
oBarChart.placeAt("sample1");

wherin HTML page code sample

<HTML>
... <BODY>
  <DIV ID="sample1" > </DIV>
</BODY>
</HTML>

 

Conclusion
SAPUI5 is relatively new technology to many clients using SAP products like SAP MII. Many clients in industry were used to devlop UI based on conventional applet views that take more time to load and are relatively heavy on browser. With advent of SAPUI5 many clients are shifting their focus to SAPUI5 because of HTML5 CSS3 like look and feel. As well as with the MVC design pattern it is much easier to maintain and reuse the code. Positive note here is that one can actually download SAPUI5 SDK or plugin or library framework for free and plug it in Eclipse Juno or Kepler to develop very beautiful User interfaces for desktop as well as mobile web applications.

UK Manufacturing Fear Not. You Can Grow with Globalisation

$
0
0

Whilst the recent economic downturn hit the service industries hard, for manufacturers here in the UK, recessionary pressures were hardly a new phenomenon.  The rise of the emerging economies – rich in both labour and resource – combined with a strong pound, has seen manufacturing output in decline for many years.

Fortunately, the UK has seen positive trends from manufacturing. The manufacturing industry is growing and with it the industry is employing over 2.5 million staff in the UK alone and continues to see growth which suggests demand for British goods is still strong. EEF also states that exports are a major source of growth for many manufacturers; over 90% of EEF members are exporters with nearly 40% exporting more than half of their turnover.

Although a scary thought at first,globalisation has created significant opportunities for British manufacturing, and UK companies definitely are rising to the challenge. Growth in Asia and other emerging markets are providing significant new export potential; offsetting the more disappointing performance in some parts of the euro area. In China in 2012 saw sales of UK automobiles increase up by 60% and this figure continues to grow through 2014.

The UK boasts many successful, highly innovative and well-managed manufacturing companies. A big question is how can British manufacturers position themselves not only to capitalise on domestic market opportunity, but look ahead to priming operations to take advantage of demand in the emerging economies? Whether through sourcing raw material, shifting production plants or joining the growing trend toward the trade of British manufactured goods in the eastern economies – what can companies do to ensure a readiness for business on a global scale?

Find out how one of our long standing customers achieved this –read the SPP Pumps case study

MII content having chinese character in filenames not opening in Web Browsers

$
0
0

Many users have been facing issues with MII content having Chinese characters. In MII workbench, files having Chinese characters in the filename such as "http://<server>:<port>/XMII/CM/I064931/Chinesecharacter'sisue/ぼぢ.gif" are opening perfectly fine :-

 

Workbench.JPG

 

 

 

But, when the same files are opened by copying and pasting the link in the web browsers, we receive the following error:-

 

Error.JPG

From the error we can see that even the file name containing the Chinese characters has been changed, i.e., Chinese characters have been replaced by "??" (question marks), while the actual URL of the file is :- http://localhost:50000/XMII/CM/I064931/Chinese%20character's%20isue/ぼぢ%20%20.gif

 

As Net Weaver hasn't been configured to support Unicode Characters in the URL, we are getting the above mentioned error. To resolve this we will have to manually configure the Net Weaver by adding parameter "file.encoding" with value "UTF-8" for the respective node under the "VM Parameters"-->"System" tab . After adding the parameter, do remember to enable it from the button given at the bottom of the screen. Now save the changes and simply restart the instance as requested by the Config tool.

 

Configtool.JPG

After performing these changes the file link containing the Chinese characters will be able to open correctly in the web browsers, without any issue:-

 

Final.JPG

Showcase New Feature SAP MII v 15 SP 03 - Plant Connectivity Integration

$
0
0

Showcase New Feature SAP MII v 15 SP 03 - Plant Connectivity Integration

 

Applies to- 15.0 SP3 Patch 7

 

Summary

 

This document showcases the new feature of Plant Connectivity Integration in MII v15.0

The document takes us step by step showing how to use the Plant Connectivity Integration Functionality Introduced recently.

 


Table of Content

 

Introduction to Plant connectivity Integration

Creating/Managing the Notification

Complete Process Flow

Conclusion

 

 

 

 

Introduction to Plant Connectivity Integration

 

This feature helps us to configure PCo remotely via MII. SAP MII Administration Menu provides us a new component named Plant Connectivity Integration which contains a notification management tab wherein we can create and manage lifecycle of notification.  This new screen is Fiori based HTML5 client for maintaining PCo notification from MII.

When we click on Notification Management, a new screen opens up showing us tiles for Manage Notification and Browse Notification.


s1.png


Browse Notification helps us to search through various parameters like PCo Data Server, Notification Name, and Status etc. The search functionality is a big help specially when you have created number of notification and you want a quick easy way to reach out to one of notification and edit it. You can even Export/Import, Edit, Pause a notification – all from within MII without even opening PCo console.


Sample Browse Notification Screen

s1.png

Sample Manage Notification Screen


s1.png


Create/Manage the Notification

 

We will now showcase how to create a notification by clicking Manage Notification (initial screen display as above).

 

Prerequisite:

  1. We have a PCo DataServer configured and in running status within SAP MII.
  2. PCo Tag Alias already created within PIC for our example.
  3. PCo Notification Destination type should already exist in SAP PCo.
  4. Activate the version-ed notification setting within SAP PCo console. We can find this setting under Tools->Options (Global Properties->Enhancements).

 

Upon opening the Manage Notification Screen, we will choose a PCo Data Server for which we intend to create a notification. On choosing a Data Server, Create Notification button is enabled on below right side of screen.

 

*Alternatively, we can click Plant Catalog, choose a tag and click Create Notification.

 

 

On click of Create Notification, a pop up asks for a Name and Description of Notification. For our example, we named it TemperatureTag. On providing the same, new screen opens up with tabs like Trigger, Output, Message Delivery, Destination, and Description.


Next, we provide a Trigger Expression for our Notification. For the same, we click on Manage Expression and provide an expression coming from PIC (Plant Information Catalog). For our example, we have mapped a PCo tag to a PIC Tag Alias named Newtag1. We enter an expression as greater than 4000 which is as displayed in screen below.


s1.png


 

Then we click on Output tab, to provide an Output Expression. We provide an expression mapping it to PIC Alias name Newtag1 and naming expression as NewtagOutput.

 

Next, we click on Message Delivery, in case we want to change any parameters for Reliability, Failed Messages, Lifetime or bundling of any messages. For our example, we keep everything as default.


Then we click on Destination, for our example we have created a MII destination which we want to map it to out Notification.



s1.png


On click of Add Destination, pop up screen comes up and we define MII Destination as MII_Destination as below.


s1.png


On clicking OK, we map the Transaction Name, Input Parameter and save the notification.


s1.png

 

As seen in snapshot above, we have various buttons on below right side of screen. Upon click of save – The notification is saved in a Draft state.


Various other buttons include:

Publish to PCo- It will send this notification to PCo which creates it in draft state.

Activate- It will make it activate and start sending the notification.

Pause/Resume- User can pause/resume on any of current notification.


 

Complete Process Flow

 

We demonstrated above, how we create a notification from Notification Management from within MII.

Later, we publish it to PCo and it is visible from SAP PCo console as well. Now, we can manage the entire lifecycle of notification from MII. We can edit it, activate it so that we can send notifications through, we can pause it, resume it and even delete it. Once we activate it, it starts sending notification to MII which is chosen destination for our example.


PCo Console snapshot showing the Notification which we created from MII screen (in Pause state)


s1.png


If we try to edit it (from within MII), it creates a new version and entire lifecycle of publishing it, activating it, needs to be followed before we receive the notification again.

 

And now if we search through the notification under Browse Notification tile, it shows our notification which is created from MII as below.



s1.png




Conclusion

 

The above steps show us how we can create and manage the notification lifecycle all from within MII. And above that, we can even search through all the notifications created and edit them at easy using the latest functionality of Plant Connectivity Integration through Notification Management tab.


Please note:

  1. Only Notification which are created within MII, are visible and available under search functionality.


Searching for the "Operational Analytics on Steroid" Formula - SAP MII on HANA

$
0
0

SAP MII has come a long way since its inception as Lighthammer and then erstwhile acquisition by SAP and re-branded as SAP MII, which paved the path to manufacturing intelligence as a new domain of operational analytics. With time as the product got matured enough to foraying into the integration aspects of manufacturing automation and execution systems with ERP and thereby positioning itself as the middleware solution for "business to manufacturing" system integration.

Having the matured analytics platform now available on MII which can do trend analysis, multi-dimensional analysis and KPI modeling on near real-time data, along with the self-service composition environment (SSCE), the next expectation comes in to handle huge volume of time-series and tabular data collected from operations at the manufacturing plants, to do long-term trend and regression analysis on it. Moreover, manufacturers now want to predict and prevent operational issues such as machine downtimes, material quality and performance bottlenecks in production lines.

 

SAP MII in its traditional architecture on SAP NetWeaver Java and standard databases, may not be the ideal platform to do such analytics using huge data set, as it uses a standard database used by NetWeaver WebAS to store and manage the data. With SAP MII 15.0 now it is possible to install SAP MII on NetWeaver 7.4 which can use HANA as the database, thereby opening gateway for MII to leverage the power of HANA as an in-memory platform. But the question is - whether MII as a solution is now mature and capable enough to leverage the power of HANA? Let us explore and try to find an answer to this burning question.

 

The power of HANA lies in couple of major aspects - columnar and in-memory storage of data and ability to embed complex data processing and calculations in data layer as calculation views. You can create tables in HANA as columnar tables and then define the attribute views (fact tables), analytic views (measure and dimenions) and calculation views (complex calculations and data processing), which can be accessed from the user interfaces or business logic layer as OData services or by JDBC.

 

Let us now explore different options and use cases for MII on HANA to understand how MII can leverage the power of HANA and provide the "operational analytics on steroid" formula.

 

Data Persistency

MII uses Manufacturing Data Objects (MDO) which is a framework in MII to model custom data model as per the application requirements. It creates database tables in the underlying database which NetWeaver uses. When MII is installed on HANA, the MDO are created as column tables on HANA database as I understand. But there is a caveat - the database tables and its columns created from MDO do not use the same name of the MDO provided by the user, instead it uses some cryptic names e.g. MDO100, FIELD100, etc, which is mapped to the user-defined MDO names in an internal application database table. So it is difficult to identify the table created for a MDO from the database layer. I understand from SAP MII product development team that this issue will be addressed in future release of MII to have the MDOs created in the database with the same user-defined names as in the MII catalog.

So having columnar tables and in-memory storage with fairly massive database capacity of HANA, large amount of data can be stored on the MDO and KPI, which is not otherwise recommended when MII is installed on traditional database. But if MDO is used, database operations or additional objects (such as HANA views) cannot be easily created at the database layer as MDO tables have cryptic names which makes it difficult to identify.

The workaround may be creating the tables in HANA database itself instead of using MDO. From SPS09 of SAP HANA there is support for storing time-series data as well, which is useful to store data from Historian or SCADA queried by MII/PCo.

 

Reporting & Analytics

Usually for analytics and reporting on MII, MDO, KPI or SQL queries are used to query the data from MDO, KPI or custom database tables (when external databases are used). The queries are created and managed on MII which are executed from Business Logic Transactions or web pages in MII. When HANA is used, it is not recommended to create queries directly on the column tables, rather create attribute, analytic and calculation views on the tables at the HANA database layer, on which the queries can be used or those can be executed directly as ODATA services from the consumer layer. As explained above, while using MDO it is not possible to create those views from HANA database layer as it is difficult to identify the correct MDO from there due to the cryptic names. So directly MDO queries can be developed on MII, which may not get the maximum performance benefits which HANA provides. Otherwise the tables need to be created in HANA database layer itself, instead of using MDO, and on which the HANA views can be developed. This way it may get the maximum performance benefit from HANA, but shall bypass the content management and other features of MII. Also it may require sometime to use some other data such as plant hierarchy (stored in Plant Information Catalog) or other configuration data available in MII for the analytics and queries.

One possible approach is developing the tables and views in HANA database layer, which can be accessed from MII SQL query interface by JDBC connection, on which the SQL queries can be developed on MII. BLS transactions can be then developed on MII to incorporate the business logic which will consume the queries and develop the end to end application logic. User interfaces then can be developed using SAPUI5 on MII consuming the BLS transactions as Xacute queries.

The architecture overview of the same is explained in the diagram below:

Picture1.jpg

 

KPI Analysis

MII provides KPI framework using which multi-dimensional KPI objects can be defined to persist measures with the different dimensions (e.g. Time, Plant, Material, Workcenter, etc.). With MII on HANA, KPI objects are also created a column tables in HANA. The KPI objects are anyway created in the HANA database layer as multi-dimensional cubes on which KPI queries can be developed on MII to query the data based on different aggregation and time-periods with one or more dimensions. Having MII on HANA it makes it much easier to store long-term and huge volume of data in KPI objects and create analytics on it.

 

Plant Hierarchy Management

SAP MII provides a framework called Plant Information Catalog (PIC) to manage hierarchy of assets and objects in manufacturing plants and map the individual objects to tags which are the sensor data points maintained in Plant Data Historian or SCADA/DCS. The plant hierarchy with different tags (each object can have multiple data points or tags) can be quite complex and huge. Querying the hierarchy in real-time is usually performance intensive, if the structure is complex and have huge number of nodes. As PIC objects leverages HANA persistency mechanism on MII on HANA, working with PIC is supposed to be much easier in terms of performance.

 

PCo Notification Processing

SAP Plant Connectivity (PCo) provides an external adapter with SAP MII to send notification messages on change of tag values or files in an external system such as Plant Historian, SCADA or a remote folder. This is useful to trigger certain business logic in MII when the value of one or more data points changes to a certain extent e.g. machine input power tag value in SCADA becomes zero signifying a machine shut-down which may need a plant maintenance notification to be created in SAP ERP via SAP MII. In a large plant with many machines and mostly automated production lines with multiple data points, the number of notifications generated from SAP PCo and sent to MII can be quite huge. Based on the notifications sent from PCo, custom logic in MII can decide an event (e.g. machine breakdown) or a trend. When MII running on HANA, this can be another scenario which can leverage the performance boost provided by HANA in-memory processing. Moreover, additional features such as complex event processing and predictive algorithm can be developed on HANA using the Predictive Analysis Library (PAL) to provide more insight and intelligence on the data from notification messages.

 

Streaming Analysis by Smart Data Access

In SAP MII 15.0 SP03 and above, a new connection type is available for Smart Data Access (SDA), using which a HANA system can access and query the MII data as virtual tables dynamically. Through the SDA connector all PCo and Xacute queries are exposed (Xacute queries are BLS transaction queries which can embed any logic or any other queries) to the HANA system, on which real-time queries can be performed from HANA. So it provides a feature enable real-time monitoring or streaming data processing (by synchronous queries) for events or predictive analysis. One good example of streaming data processing using SAP Event Stream Processor (ESP) with SAP MII is explained in this blog by Sam Castro.

 

Centralized HANA as Analytics Hub

It is also possible to have HANA as a central instance with MII installed on traditional databases (may at each production site) and pushing the data from MII to HANA central instance for long-term and heavy analytics. This is more suitable when having MII deployed at each plant and is the same architecture followed by SAP OEE solution. This way the central HANA instance collates the data from individual instances at each plant by SLT replication, and can provide cross-plant analytics with drill-down and comparative metrics. But when it requires plant hierarchy (PIC) to be used or other configuration data from MII it may be a bit difficult to replicate the same from MII, which may need creating additional complex data models in HANA.

Picture2.jpg



As I understand there is not any major enhancement done on MII 15.0 product for leveraging the power of HANA, but still it can use its massive storage and faster analytics capability as explained above. But it may need fairly good level of HANA development skill rather than only MII development skill. I am expecting to see more tighter integration of MII with HANA in the forthcoming releases to leverage the HANA features to the maximum extent possible from the MII platform itself.

 

As a conclusion I can say it definitely looks promising having HANA with MII to provide high-performance analytics on manufacturing operations and deep insights on trend and help in predicting and providing early warnings, but MII as a platform should also need to get matured more to leverage the capability of HANA to the fullest extent.

As of now if MII is installed on HANA, trend and KPI analysis on long-term and large amount of operational data may be some of the quick scenarios to try out.

 

I had some quite interesting discussion with Sam Castro and Rajeev Kansal on this topic in this forum thread and also like to know about others' viewpoints and experience on this topic.

Announcing the International SAP Conference for Manufacturing this Autumn

$
0
0

Connected Manufacturing with SAP – Optimize Operations, Gain Insight with Big Data, and Redefine Competitive Advantage

 

Join T.A. Cook and SAP, at the upcoming first-of-its-kind International SAP Conference for Manufacturing, taking place 1-2 October in Darmstadt, Germany. At this event you will hear the very latest news, innovation, and best practices for both the discrete and process manufacturing industries.

 

View the Agenda here >

 

The event will kick-off with an interactive pre-conference workshop titled ‘Automated Agile Manufacturing’. The workshop, led by Paul Lasance, Manufacturing Solution Specialist, EMEA, SAP, will provide you with the opportunity to take a look at the manufacturing solutions from SAP and consider the value they add to the manufacturing line of business. The workshop is fully interactive, and will encourage questions from the audience, giving you the chance to have your burning queries answered by an SAP expert.

 

The main conference features a user-focused agenda specifically designed for both discrete and process manufacturing industries, combining SAP keynotes and solution updates to ensure that attendees are fully up to date with the latest roadmap form SAP with customer-centric case studies. You’ll hear from senior executives at leading organizations such as Nestlé, Ferrero, Schindler Elevator and Festo AG & Co. KG., who will share their experiences in successfully using SAP's Manufacturing Framework to create top performing working environments.

 

The event is rich in vast and varied networking opportunities to ensure undiluted face-to-face time with industry leaders and peers. Outside of the conference rooms, multiple networking sessions including various refreshment breaks, deep-dive micro-forums and an informal evening reception giving you a real chance to expand your professional network.

 

Whether you are already using SAP solutions to enhance your Manufacturing processes, or are currently evaluating your options, this conference is an ideal opportunity to gain a comprehensive understanding of how solutions from SAP can support your organization’s strategic growth plan, allowing you to effectively consolidate functions, processes, and resources into a single strategic platform.

 

This event is also co-located as part of our International SAP Conferences on Extended Supply Chain, with a dedicated stream on Product Lifecycle Management, and Supply Chain Management. Registration to one, means access to all!

 

Register online today at www.tacook.com/sapmanufacturing or to find out more please feel free to contact the T.A. Cook team at info@tacook.co.uk or +44 (0)121 200 3810.

Time Zone support within MII PCo Queries

$
0
0

MII connects to many source systems via PCo in order to retreive data. Not all these servers lie in the same time zone as MII. Most of the customer installations follow a distributed  architecture.

 

The following four cases arise:

  1. (User)MII -> PCo -> Source system – All in same timezone (no issues should arise)
  2. (User)MII(IST) ->  (PCo + Source system)(UTC)  -- PCo queries data in UTC and returns to MII.  If this data is being stored, it is in the time zone of MII server. If it is being displayed (using applets) it is either in end user time zone or time zone of MII server depending on display template setting. Issue arises if this data is used further and the timestamp data is required in Source system time zone(in this case UTC).
  3. (User)MII(IST) - > PCo(UTC) - > Source system (UTC -5:00). This is a complicated case. PCo queries a source system and returns the data to MII in UTC. MII however, stores/displays all data in IST which is offset from source system by around 10 hours.
  4. User/HTTP Request(UTC +1) -> MII(IST) - > PCo(UTC) - > Source system (UTC -5:00) -- This is the most complicated case. PCo queries a source system and returns the data to MII in UTC. MII however, stores/displays all data in IST which is offset from source system by around 10 hours and the user is further offset from there.


     Source System Time Zone support at query level

      When a PCo query is created, MII provides an option to capture as shown in the below image:

Query.png

 

1) “Times in User Time Zone” flag specifies that the user wants his time information (Start Date, End Date, timestamps returned) to be interpreted in user’s local time zone. Suppose the user is in IST and specifies

  1. Start date as 4th June 2014, 9:00 a.m
  2. End Date 5th June 2014, 10:00 a.m

MII will interpret the query as: Return data from source system between 4th June’2013 9:00 am IST to 5th June’2013, 10:00 a.m IST.The user needs to specify his time zone in UME engine of Netweaver application server or else this setting is ignored.

 

2) “Times in Source System Time Zone” flag specifies that the wants his time information to be interpreted in source system time zone to which PCo connects. Suppose the user is in IST while the Source System to which PCo connects  is in UTC and the user specifies

  1. Start date as 4th June 2014, 9:00 a.m
  2. End Date 5th June 2014, 10:00 a.m

MII will interpret the query as: ‘Return data from source system between 4th June’2013 9:00 am UTC to 5th June’2013, 10:00 a.m UTC’. If the user wants to use this setting he also has to specify from the Source System drop down what the time zone for the source system is. MII will be converting Start Date and End Date data to UTC before sending it across to PCO. This is being done as internally PCo always uses UTC as the time zone for timestamp data.


Source System Time Zone support at display level

Till now, the user had only the following two options to for display of date/time data

 

     1) Date can be formatted according to User’s locale

     2) Date can be formatted according to Java application server time zone

 

A new option has been added to MII display templates which allows the user to select if he want to display data in time zone of Source system to which PCo connects. There is a new flag added to display templates. There is an drop-down which will help the user to specify which time zone the source system is in.


Display_Template.png

  

If a user wants to display his timestamp results in the source system time zone, he can choose this option. He has to specifically state which timezone his source system is in.

This is strictly a display level setting. This does not impact how data is returned from the query.

 

All these features are available to users in MII 14.0 SP06 and MII 15.0 SP03.


Batch SQL Insert/Update Features Now Available

$
0
0

This blog post is meant to introduce some new features available in 14.0 SP7, and coming up for 15.0 SP5.  Some customers have requested additional functionality to support batch insert/updates for SQL queries executed by MII. We have found multiple customer implementations that rely on inserts and updates in iterative loops, and being able to submit these queries in a batch request to the database would help performance.  Our tests have shown that this feature helps improve performance by about 30%.

 

Implementation


This has been implemented via the addBatch/executeBatch methods of JDBC.  To utilize this feature, your JDBC driver must support these methods.  The methods were added to the Java interface in Java 5.  If the JDBC driver used does not support this, a suitable error will be displayed.

 

There were several additions made to help implement this: 

  • The IDBC connector has a new mode, AddBatch.  This can be used to replace the Command mode. 
  • The MDO connector has three new modes, AddBatchInsert, AddBatchUpdate, and AddBatchDelete.  These are meant to replace the Insert, Update, and Delete modes.
  • The SQL Transaction action blocks have two addition, SQL Transaction ExecuteBatch and SQL Transaction ClearBatch.  ExecuteBatch submits the internal statement batch to the database, and ClearBatch clears the same batch and does not submit it. 

 

The SQL Transaction actions must be used in conjunction with the AddBatch query template mode.  The SQL Transaction actions maintain the SQL Connection and PreparedStatement objects and allow them to span action block calls.  The following screenshot gives an example of how the action blocks work together:

 

Example.png

 

You can see from this that the SQL Transaction is started with the Begin action block, then the AddBatch action has the SQL Transaction passed in via link.  The loop runs, updating the parameters for the AddBatch action block for each row to be inserted.  Then at the end of the loop, the ExecuteBatch action block is called, and then the transaction is committed and ended.

 

The MDO modes have the same implementation detail as AddBatch, they can be chained and added to the SQL Transaction built.

 

These changes were implemented as part of note 2178396, please follow this note for release details and further support information.  This note is currently released for 14.0 SP7 P0, and is being upported for 15.0 SP5, due for release in Fall 2015.

 

One other point, this functionality was previously available via the JTA custom actions, which were available on the SDN.  The functionality provided by those actions is similar to this collection of features, with some differences.  This functionality supports easy upgrading of existing calls to Command queries in MII transactions just by changing the mode of the query template to AddBatch and using the SQL Transaction action blocks to manage the SQL connection.  In addition, the JTA actions on the SDN are not part of core MII and are not supported by SAP.

 

I invite feedback on this new functionality, feel free to offer comments or suggestions below.  Thanks for reading,

 

Mike

MII Dependency Checking

$
0
0

A support enhancement is in the process of being rolled out to MII 12.2, 14.0, and 15.0.  This enhancement is meant to make it a little easier for MII administrators to check for critical known issues in their MII/Netweaver libraries.

 

This feature is provided by way of a new mode of the Illuminator Admin service.  It is called DependencyChecker, and what it does is check the internal Netweaver component levels versus an internal matrix of components/support notes/version details.  This check is then returned to the user in a standard Illuminator list (HTML, XML, etc).

 

To call the service, you use the following URL format: http://<server:port>/XMII/Illuminator?Service=Admin&Mode=DependencyChecker

 

If you use the service and your system has one of these known issues, you should see this in the results:

 

FRAMEWORK7.31.11.0Note number 2014780, Component=FRAMEWORK, Major=7, Minor=31, Subversion=11, BuildNumber=8The note 2014780 requires 11P8, please upgrade this component.
FRAMEWORK7.31.11.0Note number 1954676, Component=FRAMEWORK, Major=7, Minor=31, Subversion=11, BuildNumber=6The note 1954676 requires 11P6, please upgrade this component.

 

Known issues will also appear in the system log files on MII startup with similar messages.

 

If you find that your system has one of these known issues, our recommendation is to check the release notes mentioned and then upgrade accordingly.  Typically you will need to upgrade the marked components to the latest patch level for the SP you are on. Make sure to use the SCA Dependency Tool on the support portal to also implement any required Netweaver SCAs that must be upgraded in conjunction with the SCA you are upgrading.

 

This enhancement is delivered as part of release note 2187724, please check the note for further details and information on what releases this is part of.

SAP MII 15.1 Workshop and Test

$
0
0

For the upcoming release of SAP MII 15.1 a workshop and test event is planned with Customers and Partners at various locations.

 

Below are the details for the same :

 

 

LocationWorkshopTestTopics to Test
ShanghaiAug 24 ,2015CW 35-36ME, MII, OEE, PCo
BangaloreAug 31, 2015CW 36MII, OEE
WalldorfSep 7, 2015CW 37ME, MII, OEE, PCo
Newtown SquareSep 14, 2015-

-

 

Anyone interested to participate in the testing can send contact Rajesh Kamath to confirm the participation.

 

Anyone interested to participate in the workshop can contact me to confirm the participation.

Investing in IoT - M2M Now Article

Creating Fiori App running on HANA Cloud Platform with data from SAP MII

$
0
0

Creating Fiori App running on HANA Cloud Platform with data from SAP MII

 

Applies to- SAP MII14.0SP4, SAP Web IDE 1.14.3

 

Summary

 

This document demonstrates how we can create a Fiori App running on HANA Cloud Platform with data coming from SAP MII. The document takes us step by step showing how to create a Fiori App running on HANA Cloud Platform (HCP) with data coming from SAP MII backend.

*Please note I am deferring to explain HCP, HANA Connector, Web IDE, Fiori, SAP MII OData etc. as they can be easily read over internet.

 


Table of Content

 

Configuring the HANA Cloud Platform

Introduction to Fiori App (SAP Web IDE)

Conclusion

 

 

Configuring the HANA Cloud Platform using HANA Connector

 

The first step is to setup a destination in HANA Cloud Platform.For this, we need HANA Cloud Connector.

We assume that you have HANA Connector installed and running along with SAP MII system. At this stage, we will create a virtual host and link it to our Internal MII system. From now on, this virtual host on SAP HANA Connector shall act as a window to MII system. Once the resources are added and status shows connected, we are ready to setup a destination on HANA Cloud Platform.

Open HANA Cloud Platform Cockpit with your account. Then, click on Destination on the left. This will load all the destination links (if available) on right hand side panel. Above the list, you will see New Destination button. Click on it, enter the details asked (provide authorization) and save it. (An example shown below, URL in form http://server:port -a virtual name from HANA Connector in snapshot below)

1.png

 

 

 

*Similarly, we will setup a destination with URL as http://services.odata.org (No Authentication) which will point to northwind oData service available on internet.

With this destination setup done, we are good to move forward and start our journey into building SAP Fiori App.

 

Introduction to creating our Fiori App (SAP Web IDE)

 

SAP MII Prerequisite:

We have created a MII transaction which provide the output (dummy Prod Order details) as

2.png

 

 

As we move forward, let’s open our SAP Web IDE.

For simplicity sake and interest of space/time; we will create a simple Fiori App (existing template) with northwind odata service and then apply the necessary minimal changes to have our MII application demo up/running.

Why so?

The Fiori Data Connection stage expects a service which returns the workspace with collections. This is not the case with MII service, hence in order to create a demonstrable example, we worked with northwind service approach.

Moving On,

 

Once the Web IDE is open, we will create a project from Template, choosing SAP Fiori Master Detail Application Type. Click next; provide a project name and Source -> Service URL. This will show the northwind service name description. Choose it, provide the URL as /northwind/northwind.svc. This will generate the northwind service model on right side panel. On next screen, we will complete the template customization and click finish to complete the project creation in your workspace.

 

We used the above way since it will create the entire project structure and running app for us.

 

Changes in the Project to fetch data from SAP MII

 

Open the Component.js file. Replace the Config->Service URL statement with         serviceUrl: "/destinations/MII/XMII/IlluminatorOData/" wherein MII is the destination name coming from HCP.

Open neo-app.json file. Replace routes->path as "path": "/destinations/MII" wherein MII is the destination name.

Replace routes-> target name, description.

 

Next, we will have to change the binding, so that Master and Detail Screen show up the data coming from SAP MII.

Open the Master Screen under View folder (Master.view.xml) and replace the content tag as

<content>

<List

id="list"

select="onSelect"

mode="{device>/listMode}"

noDataText="{i18n>masterListNoDataText}"

growing="true"

growingScrollToLoad="true"                    items="{/Rowset(QueryTemplate='Transaction Path/Transaction Name',RowsetId=1)/Row}">

<items

id="masterList">

<ObjectListItem

id="mainListItem"

press="onSelect"

type="{device>/listItemType}"

counter="0"                             

  title="{OrderID}"

markFavorite="false"

markFlagged="false"

showMarkers="false">

<core:ExtensionPoint

name="extListItemInfo"/>

</ObjectListItem>

</items>

</List>

</content>

 

Next, we will change the Detail Screen as well to suit our requirement.

Open the Detail Page (Detail.view.xml), delete the IconTabFilter tag with id=2.

Then replace the content tag on the page with below.

<content>

<ObjectHeader

id="detailHeader"    

                title="{OrderID}"                      

number="{OrderStatus}" 

introActive="false"

titleActive="false"

iconActive="false">

<attributes

id="detailAttributes">

<ObjectAttribute

id="attribute"

 

active="false">

</ObjectAttribute>

</attributes>

<firstStatus

id="detailStatus">

<ObjectStatus

id="status"                              

>

</ObjectStatus>

</firstStatus>

</ObjectHeader>

<IconTabBar

id="idIconTabBar"

expanded="{device>/isNoPhone}">

                        <items

                        id="detailsItems">

<IconTabFilter

id="iconTabFilter1"

key="selfInfo"

icon="sap-icon://hint">

<content>

                                                        <f:SimpleForm

                                                                id="iconTabFilter1form"

                                                                minWidth="1024"

                                                                editable="false"

                                                                layout="ResponsiveGridLayout"

                                                                labelSpanL="3"

                                                                labelSpanM="3"

                                                                emptySpanL="4"

                                                                emptySpanM="4"

                                                                columnsL="1">

                                                                <f:content>

                                                                       

                                                                        <Label

                                                                                id="label2"

                                                                                text="OrderID">

                                                                        </Label>

                                                                        <Text

                                                                                id="text2"                        

                                                                                text="{OrderID}"              

                                                                                maxLines="0">

                                                                        </Text>

                                                                        <Label

                                                                                id="label3"

                                                                                text="StartDate">

                                                                        </Label>

                                                                        <Text

                                                                                id="text3"                        

                                                                                text="{StartDate}"            

                                                                                maxLines="0">

                                                                        </Text>   

                                                                                        <Label

                                                                                id="label4"

                                                                                text="EndDate">

                                                                        </Label>

                                                                        <Text

                                                                                id="text4"                        

                                                                                text="{EndDate}"             

                                                                                maxLines="0">

                                                                        </Text>   

                                                                                <Label

                                                                                id="label5"

                                                                                text="Total Quantity">

                                                                        </Label>

                                                                        <Text

                                                                                id="text5"                        

                                                                                text="{TotalQty}"             

                                                                                maxLines="0">

                                                                        </Text>

                                                                                <Label

                                                                                id="label6"

                                                                                text="Quantity Delivered">

                                                                        </Label>

                                                                        <Text

                                                                                id="text6"                        

                                                                                text="{QtyDelivered}"              

                                                                                maxLines="0">

                                                                        </Text>

                                                                       

                                                                        <core:ExtensionPoint

                                                                                name="extIconTabFilterForm1"/>

                                                                </f:content>

                                                        </f:SimpleForm>

</content>

</IconTabFilter>

<core:ExtensionPoint

                                name="extIconTabFilter"/>

</items>

</IconTabBar>

                <core:ExtensionPoint

                name="extDetail"/>

</content>

 

 

This creates our app ready to run and display the data coming from SAP MII.


In order to deploy it, right click on the project name folder and click Deploy to HANA Cloud Platform. Provide the login credentials, application name and ensure to check the activation state. Click Deploy and it will deploy the app on HCP. Login to HCP to see the application listed under HTML5 application. Click on Application Name and you will find all details about the application ie destination used, URL, Version, Status etc.

 

If you will click on the URL, it will run the application – deployed on HCP, bringing in the data from SAP MII.

 

3.png

 

 

*Please note that to keep things simple and demonstrable, I have changed minimal functionality as to display that SAP MII data can come to Fiori App running on HCP. Hence, the app might not run with all the functionalities but the Master/Detail page main header displays are made working to demonstrate the application. On selection of order on master page, the detail page changes the details of order respectively.

Lot more changes can be done to application to make it much better suited to particular needs.


Conclusion

 

The above steps show us how we can create the Fiori App deployed on HANA Cloud Platform with data coming from SAP MII. Looking forward to make it more generic/reusable form and share with you all as next update!


Thanking You,

Ruchir

Viewing all 85 articles
Browse latest View live


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