New Release of SAP Vora Helps Simplify Big Data Transformation and Improve Business Outcomes

WALLDORF — SAP SE (NYSE: SAP) today announced advancements to the SAP Vora solution that will simplify deployment on a public cloud and increase flexibility when migrating between cloud, on-premise and hybrid deployment models.

*

SAP Vora simplifies deployment on public cloud with the use of Kubernetes

*

SAP Vora enables highly scalable computing of Big Data for on-premise and cloud-based data lakes

*

SAP Data Network offers business scenarios as a service using SAP Vora

Additionally, the live customer cloud service on SAP Data Network can now use the distributed computing capabilities SAP Vora offers to efficiently process large data volumes and reveal actionable business insights in near real time

“We are bringing together data transformation and business transformation on the same platform, uniting structured data and computed unstructured data to change the way businesses plan, scale and innovate,” said Greg McStravick, president of SAP Database and Data Management.

As more organizations move Big Data workloads to the cloud for increased flexibility and scalability, the new version of SAP Vora adopts containers to deliver SAP Vora as a container and leverages Kubernetes for simplified deployment and cluster management on public cloud infrastructure offerings. SAP Vora provides customers with the flexibility to choose among cloud, on-premise and hybrid deployment models, and they can migrate between these options easily and with minimal disruption.

SAP Vora is planned to support Azure Data Lake, hosted in Microsoft’s public cloud Azure. SAP Vora can load and distribute data files stored in Amazon S3 (Simple Storage Service). Other key features introduced in this latest release are an enhanced monitoring framework, support for Apache Spark2.x and optimizations for connectivity with the SAP HANA platform.

SAP Data Network Uses SAP Vora to Increase Business Value for Customers

The live customer cloud service on SAP Data Network combines expertise in Big Data, machine learning and analytics to deliver customers an end-to-end portfolio for data monetization as a ready-to-consume cloud service. Any customer implementation of the live customer cloud service, including at the U.S. division of Schindler Elevator Corporation, can benefit from SAP Vora 2.0 as it will be one of the service’s foundational components. For more information on Schindler’s implementation of the live customer cloud service, watch the video.

“We use SAP Vora to realize our accelerator data services that quickly process and curate industry and line-of-business-specific data for reusability in many business scenarios — thus enabling faster time to market for our customers,” said Helen Arnold, president, SAP Data Network. “SAP Vora 2.0 will play a role in further executing on our promise to create new business models and revenue streams for our customers by using one of the greatest assets of our time — data.”

For more information about SAP Data Network, watch this video.

For more information, visit the SAP News Center. Follow SAP on Twitter at @sapBigData and @sapnews.

About SAP

As market leader in enterprise application software, SAP (NYSE: SAP) helps companies of all sizes and industries run better. From back office to boardroom, warehouse to storefront, desktop to mobile device — SAP empowers people and organizations to work together more efficiently and use business insight more effectively to stay ahead of the competition. SAP applications and services enable more than 355,000 business and public sector customers to operate profitably, adapt continuously, and grow sustainably. For more information, visit www.sap.com.

Note to editors:
To preview and download broadcast-standard stock footage and press photos digitally, please visit www.sap.com/photos. On this platform, you can find high resolution material for your media channels. To view video stories on diverse topics, visit www.sap-tv.com. From this site, you can embed videos into your own Web pages, share video via email links, and subscribe to RSS feeds from SAP TV.

For customers interested in learning more about SAP products:
Global Customer Center: +49 180 534-34-24
United States Only: 1 (800) 872-1SAP (1-800-872-1727)

For more information, press only:
Samantha Finnegan, SAP, +1 (415) 377-0475, samantha.finnegan@sap.com, ET
SAP News Center press room; press@sap.com
Elizabeth Somerville, PAN Communications, +1 (415) 544-7231, esomerville@pancomm.com, PT

Any statements contained in this document that are not historical facts are forward-looking statements as defined in the U.S. Private Securities Litigation Reform Act of 1995. Words such as “anticipate,” “believe,” “estimate,” “expect,” “forecast,” “intend,” “may,” “plan,” “project,” “predict,” “should” and “will” and similar expressions as they relate to SAP are intended to identify such forward-looking statements. SAP undertakes no obligation to publicly update or revise any forward-looking statements. All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differ materially from expectations. The factors that could affect SAP’s future financial results are discussed more fully in SAP’s filings with the U.S. Securities and Exchange Commission (“SEC”), including SAP’s most recent Annual Report on Form 20-F filed with the SEC. Readers are cautioned not to place undue reliance on these forward-looking statements, which speak only as of their dates.
© 2017 SAP SE. All rights reserved.
SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE in Germany and other countries. Please see http://www.sap.com/corporate-en/legal/copyright/index.epx#trademark for additional trademark information and notices. http://bit.ly/2yvDzfw #SAP #SAPCloud #AI

WebUI meets ABAP CDS

Introduction

ABAP CDS views allow us to build very nice and structured applications for any solution or UI.

This blog is about how to build a very nice, simple and really fast WebUI application for really crazy data model and volumes, by just using ABAP CDS.

Business Case

I had to build a search (F4 WebUI Popup) for one very “specific” application.

We are using CRM IBASE model to store certain objects, which can be grouped into several CDS Views or entities. In order to keep SAP’s secrets, I will not reveal the names and will call them: Entity1, Entity2, Entity3.

Behind each entity, we have about 8, almost always the same tables or views. Here is the list of the tables with total numbers of entries in these tables: IBIN (275.447.044), IBIB (2.271.052), ZSIB_PRD_IDX (4.418.220), COMV_PRSHTEXT (7.184.985), ZSST_SY_SMVV (72.926), IBPART_IDX (8.129.592), BUT000 (17.244.188), ZSST_SY_HEAD (3.163.696), ZSST_BUS_ADM (288.391), ZSST_BUS_SM (288.391).

So you can see the data volumes are really tremendous! But HANA can handle it. Yes, all this runs on HANA database; didn’t I tell it before? :-)))

Step 1: Define your entities and build ABAP CDS views

At the beginning, you need to define your entities (Entity1, Entity2, Entity3) and build proper ABAP CDS views. I will not describe how to do it, it was already well described million times on SCN. I will just give you some examples.

Entity1 define view Entity1 with parameters p_valid_at : timestamp as select from ibin as component inner join ibib as ibase on component.mandt = ibase.mandt and component.ibase = ibase.ibase inner join zsib_prd_idx as prd_idx on component.mandt = prd_idx.client and component.objnr = prd_idx.objnr and prd_idx.status ‘SMTHHERE’ inner join comv_prshtext as product on prd_idx.client = product.client and prd_idx.product_guid = product.product_guid and product.object_family = ‘SMTHHERE’ inner join zsst_sy_smvv as smvv on smvv.client = product.client and smvv.product_guid = product.product_guid and smvv.valid_from = :p_valid_at left outer join ibpart_idx as partner_idx on component.mandt = partner_idx.mandt and ibase.ib_guid_16 = partner_idx.segment_recno and partner_idx.segment = 1 inner join but000 as bp on bp.client = partner_idx.mandt and bp.partner = partner_idx.partner and ( bp.type = ‘2’ or bp.type = ‘3’ ) left outer join zsst_sy_head as sy_head on sy_head.client = product.client and sy_head.product_guid = product.product_guid { 26 fields from all tables } where component.valfr = :p_valid_at and ibase.ibtyp = ‘SMTHHERE’ ;

We just join 8 tables with hundreds of millions of entries inside! Entities 2 and 3 look very similar indeed. :-)))

Step 2: Define views for the relations and the searches

If you have multiple entities, as in mine case, probably you would like to connect them together and build the search views.

In my case for one search I had to use even union all. Therefore, my search CDS layer contains, in fact, two levels, so that I will just provide two ABAP CDS definitions.

Search Level 1: Entity1_SEARCH1 define view Entity1_SEARCH1 with parameters p_valid_at : timestamp as select distinct from Entity1 (p_valid_at: $parameters.p_valid_at) as Ent1 left outer join Entity2 (p_valid_at: $parameters.p_valid_at) as Ent2 on Ent2.key = Ent1.key left outer join Entity3 (p_valid_at: $parameters.p_valid_at) as Ent3 on Ent3.key = Ent2.key left outer join SomeView as Smth on Smth.key = Ent1.key { 32 fields from all entities } where Ent1.usage not like ’%ABC%’ and Ent1.usage not like ’%XYZ%’ and Ent1.deletion_flag ’D’ and Ent1.deletion_flag ‘X’ and ( Ent2.solution_id is not null or ( Ent2.solution_id is null and Smth.sys_product_id is null ) ) ;

The entity Entity1_SEARCH2, which will be used in UNION ALL later, looks pretty similar.

Search Level 2: Entity1_SEARCH (combination of the search CDS from the level 1) define view : Entity1_SEARCH with parameters p_valid_at : timestamp as select distinct from Entity1_SEARCH1 (p_valid_at: $parameters.p_valid_at) as Entity1_SEARCH1 { All 32 fields } union all select distinct from Entity1_SEARCH2 (p_valid_at: $parameters.p_valid_at) as Entity1_SEARCH2 { All 32 fields } ;

Performance Note: when you create a view, or execute UNION ALL statement (most probably on many databases, including HANA), the search though the parts (i.e. Entity1_SEARCH1, Entity1_SEARCH2) will be executed in parallel reducing the response time! Use UNION ALL and do not call two similar selects from ABAP side.

Step 3: Create search- and search result- structures

When everything is ready on DB side, it’s a time to develop in ABAP (NetWeaver).

For our search, we need to create the search and result structures in SE11. I will skip this step, as it’s not important and well described.

Should I remind you that for simplicity you should give the names to the fields as they appear to be in the CDS view or in the corresponding generated ABAP view representation.

Step 4: Develop GENIL search classes

In my case I was dealing with IBASE component and therefore I inherited the class from the standard CL_IBCOMPTOCOMPADV_IL. To implement a search, you need to implement the method: SEARCH_DYNAMIC.

I wanted to publish a complete code of the method IF_IBASE_IL_SEARCH~SEARCH_DYNAMIC, but I need to anonymize really a lot and therefore will just post a couple of the most important things.

Important Thing 1

Performance Note: When you build your view on 10 different tables using LEFT OUTER JOIN and then during the selection you are using the fields (in SELECT … or WHERE… clauses) only from 1 table, most probably (must for HANA) the other 9 tables will be just ignored.

It’s very important to keep the selection list as small as possible, and select the only fields, which will be shown on the screen. You can pass the fields visible to the end-user via the variable IS_QUERY_PARAMS-SELECTION_HITS[].

  “ Build Select List… ”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” build_select_list( is_query_params-selection_hints[] ).

Important Thing 2

You should build your CDS views in way that no subsequent selects are needed. All the data has to be read from DB in one call. “ Trigger a normal select… ”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” select distinct (gt_select_list) “#EC CI_NOORDER from Entity1_SEARCH( p_valid_at = @lv_timestamp ) ##DB_FEATURE_MODE[VIEWS_WITH_PARAMETERS] where field0 in @lr_field0 and field1 in @lr_field1 and field2 in @lr_field2 and field3 in @lr_field3 and field4 in @lr_field4 and field5 in @lr_field5 and field6 in @lr_field6 and (lv_smth_else) and (lv_auth_tail) into corresponding fields of table @lt_result up to @lv_max_hits_new rows.

Always apply Max Hits parameter, which can be retrieved from IS_QUERY_PARAMS-MAX_HITS.

Step 5: Enhance BOL/GENIL model

At this step you need to enhance BOL/GENIL model (or create your own) and let the system know your objects. The way how you do it actually depends on the application. For 1Order, BUPA, CASE or IBASE applications, different approaches must be used, and we will skip it. It was also quite nicely described on SCN already.

In my case I had to put my query and result objects into the table CRMC_OBJ_IBIL and redefine object instatiation in the class CL_CRM_IBASE_IL_FACTORY.

(Some other example see here:

https://blogs.sap.com/2015/12/11/extend-1order-searches-how-to-guide-for-customers/

https://wiki.scn.sap.com/wiki/display/Snippets/How+to+Extend+Model+for+Business+Transactions+with+New+Relations)

So finally you should have the standard model to be enhanced or new custom model to be created.

 

Step 6: Build WebUI Component and Views

Finally, you need to consume your newly created BOL / GENIL objects. For that you might need to create a custom WebUI component with respective search and search result views and use the corresponding search and search result objects.

And of course, we will skip this part as well and fill focus on the most important things.

( For more details refer to https://blogs.sap.com/2010/03/28/crm-70-how-to-5e-search-view-and-search-result/ )

Remember, we said (switch on a boring professor’s voice and your imagination J))): “ …for better performance you should provide the list of the fields visible to the end user”. Yes, it’s easy. You can get it from personalization!

Your ON_SEARCH event handler should contain the following lines: method eh_onsearch. data: lr_query_service type ref to cl_crm_bol_dquery_service. data: lt_sel_fields type crmt_name_value_pair_tab. lr_query_service ?= typed_context->searchquerynode->collection_wrapper->get_current( ). lr_query_service->get_property_as_value( exporting iv_attr_name = ‘SELECTION_HINTS’ importing ev_result = lt_sel_fields ). ” Reload Selection Fields… delete lt_sel_fields where name = ‘SEL_FIELD’. append lines of get_rv_fields( ‘ZYOURCOMP/YourPage#ZYOURCOMP/YourResultView’ ) to lt_sel_fields[]. lr_query_service->set_property( exporting iv_attr_name = ‘SELECTION_HINTS’ iv_value = lt_sel_fields ).

And the method GET_RV_FIELDS (Get Result View Fields) looks as below: method get_rv_fields. data: lt_path type table of string. data: lr_window type ref to cl_bsp_wd_window. data: lr_rv type ref to cl_bsp_wd_view_controller. data: lr_config type ref to if_bsp_dlc_configuration. data: ls_config type bsp_dlc_table_descr. split iv_view_path at ’#’ into table lt_path. if lt_path[] is initial. return. endif. lr_window = me->view_manager->get_window_controller( ). if lr_window is bound. loop at lt_path assigning field-symbol(). “ First Level -> Window if sy-tabix = 1. lr_rv = lr_window->get_subcontroller_by_viewname( ). else. ” Next Level -> View or Viewset if lr_rv is bound. lr_rv = lr_rv->get_subcontroller_by_viewname( ). endif. endif. endloop. “ Latest View if lr_rv is bound. lr_config = lr_rv->configuration_descr. if lr_config is bound. call method cl_bsp_dlc_table_utility=>conf_xml_to_abap exporting iv_xml = lr_config->get_config_data( ) receiving rs_table_config = ls_config. ” Take Only Standard, Showed Fields loop at ls_config-columndefinition assigning field-symbol() where name cp ‘STRUCT.*’ and hidden = abap_false. replace first occurrence of ‘STRUCT.’ in -name with space. condense -name no-gaps. append value #( name = ‘SEL_FIELD’ value = -name ) to et_fields[]. endloop. endif. “ if lr_config is bound. endif. ” if lr_rv is bound. endif. “ if lr_window is bound endmethod.

Relevant Information:

Extend 1Order Searches: How to guide for customers

https://blogs.sap.com/2015/12/11/extend-1order-searches-how-to-guide-for-customers/

How to Extend Model for Business Transactions with New Relationships

https://wiki.scn.sap.com/wiki/display/Snippets/How+to+Extend+Model+for+Business+Transactions+with+New+Relations

Handler Classes in SAP CRM WEBUI Framework

https://blogs.sap.com/2014/09/22/handler-classes-in-sap-crm-webui-framework/

Creating a Custom Genil/Bol object Model

https://blogs.sap.com/2012/08/06/creating-a-genilbol-object-model/

CRM 7.0 How to –5E Search View and Search Result

https://blogs.sap.com/2010/03/28/crm-70-how-to-5e-search-view-and-search-result/

Performance considerations when using ABAP Core Data Services on AnyDB

https://blogs.sap.com/2016/10/27/performance-considerations-using-abap-core-data-services-anydb/

 

  http://bit.ly/2yvDx7o #SAP #SAPCloud #AI

Financial Services and Network Security: The Evolution of Strategies

One of the industries that has had to quickly adapt to cyber-attacks is the financial industry. These financial services understand that they have to protect their client’s information from hackers, and that means they’ve had to move quickly to keep up with new methods of attack. Their network security strategies have had to evolve on a regular basis. In many cases, these strategies have become more complex and complicated. However, they have to be—one slip up and customers may never trust the financial service again. Businesses have been forced to close after hackers gained access to personal information. That’s why it’s important that you keep up with network security and how it’s evolving and changing.

Network Security and its Challenges

Network security has always been a challenge. Hackers tend to come up with new ways of attacking, leaving security experts always reacting instead of acting. Even those who try to create strong security measures may find that they went in the wrong direction and that their new protections aren’t really that useful against the new emerging threats.

The two main factors that network security must have are service and speed. Customers are demanding more and more services. They especially want services that they can access when they want to and that provide updated information in real-time. These services may be very helpful, but they also require additional layers of security. Data has to be available on many devices, has to travel securely between those devices and your network, and must update quickly. During all of this, that data may be under constant attack from hackers.

Speed is also important. If you learn of an attack, you have to be able to quickly provide protection against it. In matters of finance, data has to move quickly, and your defenses have to be just as fast. Information is always moving around between your internal servers, external services, and users. You’ve got to make sure that data is getting to where it’s going as quickly as possible while also being secure.

Intrusion Detection

Another way network security has had to evolve has been in the area of intrusion detection. You can no longer simply set up a firewall and install a virus scanner to protect yourself from hackers. You need something that’s more comprehensive. That’s where intrusion detection comes into play. It takes the idea of intrusion protection and bumps it up a notch. You know hackers and viruses are going to get past your defenses. It’s not a matter of “if” but of “when.”

Intrusion Detection is a much more action way of protecting your network. These systems are constantly looking for cyber security threats. They actively scan your network looking for things that are out of place. This could be an intruder that’s using an unauthorized login, or it could even be an employee login that’s acting in an unusual manner. These types of programs are designed to detect both. You still want to have strong intrusion protection, of course, but you can’t solely rely on it to protect your network. You have to detect, identify, and mitigate cyber threats.

Incident Response

Once you have an intrusion detection system up and running, you’ll need to determine how you’ll respond to incidents. When you detect an intruder or realize someone has breached your network, what do you do? How do you mitigate the threat? Your incident response has to continually evolve alongside today’s threats so that you’re ready to respond quickly and correctly.

Your intrusion detection tools need to have integrated response programs that can automatically respond to some issues. You want your system to automatically identify abnormal behavior and quickly quarantine it even when you’re not at your computer. Users should be locked out of the system, viruses identified and deleted, and malware prevented from accessing data. Your incident tools also need to gather as much data as possible about the attack for you to analyze later.

Threat Intelligence

Once you’ve blocked an attack and gathered information about it, your threat intelligence team can analyze that information and determine all they can about the type of attack, the attacker, and what the goal of the attack was. This will help you defend against future attacks from malware, botnets, and other zero-day attacks. The more you know about attacks, the better you’ll be able to adapt your system. By collecting threat intelligence, you can continually update and evolve your network security solutions, helping you keep up with the latest hacking techniques.

But threat intelligence shouldn’t end there. After you’ve used the information to determine your own vulnerabilities, you should share this intelligence with others. A strong threat intelligence network solution will provide you with information about attacks on others, too. This way, everyone is able to improve their defenses and stop attacks before they breach data. The more times hackers are stopped in their tracks, the better it is for everyone. Don’t be stingy with your threat intelligence, and don’t be afraid to reach out to others for information about attacks.

Adapt or Die

The old saying about adapting or dying is certainly true in the area of network security, especially for financial institutions. It’s critical that you always make sure you’re using the most recent virus detectors, anti-malware programs, intrusion detection systems, and every other type of software out there in order to keep your security on the cutting edge of technology. It’s very important that you are able to protect your data, quickly identify intrusions, and gather data to help improve your defenses.

If you’re quick to evolve your network defenses, though, and are always vigilant about attacks, you’re likely to be able to hold the line against hackers. You do need to remember that hackers are always evolving their attacks, though, and that you may get hit with a brand new virus that you weren’t expecting. However, that could happen to anyone. By continually deploying intrusion detection, making use of threat intelligence, and having prepared responses to attacks, you’ll be in a much stronger position than some of your competitors.

  http://bit.ly/2yvEhJI #SAP #SAPCloud #AI

SAP Cloud Platform News Seen & Heard at SAP TechEd 2017 Vegas

SAP TechEd 2017 Las Vegas came and went in a blink of an eye but there’s more to share at Bangalore in a couple of weeks and Barcelona in a month. For those of you who were in Vegas, you were treated to Björn Goerke as Captain Kirk, commander of U.S.S. Enterprise in the day 1 keynote or heard and celebrated with the SAP Mentors on their 10 year anniversary and probably attended many of the hundreds of educational sessions on SAP Cloud Platform.

There were plenty of updates shared on SAP Cloud Platform in the keynote, in the press release and Björn’s blog. Here are a few highlights in case you missed it:

Pressing forward with our openness strategy, we shared:

* SAP Cloud Platform on Google Cloud Platform goes beta
* SAP joined the Cloud Native Computing Foundation(CNCF)
* SAP joined the OpenAPI initiative

To enable rapid development of apps, we announced a new offering, SAP Cloud Platform Rapid Application Development by Mendix for low code and cross-platform development.

To much applause and excitement was…drumroll…ABAP in SAP Cloud Platform going beta! There was plenty of interest and excitement as everyone learned that companies can continue to leverage their existing investments, not only in their application landscape but also in developer skills.

But why read when you can see and hear from our product experts share their news on what we announced? We also captured SAP Mentors Simon Kemp and Tamas Szirtes share their excitement on the latest SAP Cloud Platform news.

* Cloud Foundry as the open platform for SAP Cloud Platform with Jana Richter
* Getting to know SAP Cloud Platform Integration Services with Sindhu Gangadharan
* What’s New in SAP Cloud Platform IoT Services with Sindhu Gangadharan
* What’s new in SAP Cloud Platform? With Matthias Steiner
* Hrizons Apps on SAP Cloud Platform
* Taking ABAP into the Clouds with Karl Kessler
* Beyond Integration Opportunities with APIs with Harsh Jegadeesan
* SAP helps customers manage Multi-Clouds with Sanjay Patil
* SAP and the Cloud Foundry Organization with Chip Childers, CF CTO
* What’s New in SAP JAM Collaboration with Drew Thomas
* SAP Rapid Application Development by Mendix with Milja Gillespie and Martijn Van Lieshout
* Digital Experience – Transform your business with the right apps dev tools with Milja Gillespie

But SAP Cloud Platform isn’t just as an agile and open PaaS for digital transformation, you can have fun with it too! Watch Bjorn compete with Chip Childers, CTO of Cloud Foundry in a racing game developed using SAP Cloud Platform Who Says SAP Cloud Platform is just for Digital Transformation?

Or better yet, watch Björn program for the much-coveted SAP branded socks, as he relearns building an app on SAP Cloud Platform.

See tuned for more news at SAP TechEd 2017 Barcelona!

  http://bit.ly/2gSBcZU #SAP #SAPCloud #AI