Upload
christian-holsing
View
1.283
Download
3
Tags:
Embed Size (px)
Citation preview
© 2013 IBM Corporation
AD 405: Empower Your Social Business With SAP ProcessesChristian HolsingBusiness and technical strategy team
© 2013 IBM Corporation
Content
Social Business and why it is important
SAP News
Overview of SAP Integration options
Integrating SAP Solutions into─ IBM Connections
─ IBM WebSphere Portal
─ IBM Domino
─ Apache Open Office
Material
© 2013 IBM Corporation
Social business makes business processes social in 4 ways
Reach people where they live and work
Connect through identities on consumer, b2b, and corporate social networks
Communicate on the associated channels
Monitor and analyze social data to discover new business insights
Analyze identities, social graphs, communications channels, and social content
Identify opportunities, problems, solutions, valuations, etc
Enable people to engage productively in a business context
Develop personal insights and social intelligence
Facilitate emergent processes
Act on insight for business advantage
Integrate social capabilities into the enterprise in order to act on new opportunities, make better decisions, optimize processes in real time, and govern and manage risk
© 2013 IBM Corporation
IBM Connections is the center of the Social Business – connected to the other solutions
IBM® WebSphere Portal®
3rd PartyTools
IBM® Notes® & IBM® Domino®
IBM®
Sametime®
IBM®
Connections® 4
© 2013 IBM Corporation
SAP Key Focus areas
SAP® Hana®
─ In memory database appliance
─ New dimension of speed for BW queries and other large database analysis
Cloud delivery─ SAP is working on cloud delivery models
─ SAP® Business by Design® still sees slow uptake, SAP® Streamworks® is a cloud offering for collaborative decision making, SuccessFactors® a recent acquisition SAP made
Mobilizing SAP processes─ Following megatrend on Application support on mobile devices
─ SAP acquired Sybase® a few years back to strengthen mobility aspects
─ One key component of the mobile strategy / extended reach of SAP data is SAP® Netweaver Gateway® which exposes SAP data as an easy to consume and standards based Feed
– Stream based on OData
─ Social is an element of this play, e.g. SAP provides a “Social CRM” Application for tablets
© 2013 IBM Corporation
SAP Integration options with core ICS productsThe ICS solution stack can integrate with SAP Solutions through various ways, based on the technology chosen:● All platforms can integrate
through JavaTM technologies, Web Services or OData
● IBM Domino also has a dedicated Connector available for integration
● Any of these options provides secure authentication to the SAP System, based on available authentication protocols
© 2013 IBM Corporation
SAP Connector update
For Notes Domino customers, the IBM® Lotus Connector for SAP Solutions® is a great option to connect to classic SAP Interfaces (RFC / BAPI® Layer)
The connector can be leveraged in various flavors:─ With IBM® Lotus Enterprise Integrator®
─ With IBM® Domino Enterprise Connection Service® (DECS)
─ Within IBM® Lotus Script® Agents
Because the connector is a chargeable product, it comes with full IBM Support which ensures:
─ You can open PMR's against IBM on issues
─ There is dedicated support available, beyond newsgroups and websites
─ IBM is working on supporting changes on the SAP side
─ Current for new versions of Notes and Domino
© 2013 IBM Corporation
SAP JCo - Overview
SAP® JCo® is a dedicated Java Connector for SAP Solutions that connects using the RFC / BAPI Interfaces
Requires a deep understanding of the SAP function and knowledge on specific SAP parameters
Most direct layer to interface
Uses same libraries on OS as SAP GUI
JCoDestinationManager
JCoDestination
JCoFunction
JCoTable
Class Model (simplified)
© 2013 IBM Corporation
OData4J - overview
OData4J is a Java toolkit to easily consume OData content
Big advantage is the toolkit does not rely on pre-compiled proxy classes but rather interprets the stream on the fly
Provides easy handling of the responses, as well as properties within the data Stream
Write operations are also very easy Requires SAP Netweaver Gateway to
be installed
Class Model (simplified)
ODataConsumer
OEntities
OEntity
behavior
10 © 2013 IBM Corporation
11 © 2013 IBM Corporation
© 2013 IBM Corporation
SAP NetWeaver Gateway licensing example Netweaver Gateway introduces a new licensing model that consists of 2 components:
─ CAL
─ Transaction based Fee (per 75000 calls) SAP has various levels of CAL's available, Gateway introduces a new back-end CAL for access only
through Gateway, excluding SAP UI's
─ Removes commercial boundary IBM saw w/ Alloy and Portal Deals where a limited professional User was needed for Workflow approvals
─ Gartner Report on indirect Access Fee Sample calculation (Workflow approvals) for 1,000 user and 10,000 workflow's per year
─ Regular usage
– 2500€ per User x 1000 User = 2,500,000 €
─ Gateway access
– 500€ per User x 1000 User = 500,000 €
– 500€ per GW package x 44 = 22,000 €
522,000 € 16 call / day * 200 days * 1000 User = 3,200,00010000 Approvals x 5 calls = 50,000
Overall 3,250,000 Cals => 44 packages
Note:Prices are assumptions only, real license fee are subject to SAP's commercial offers
© 2013 IBM Corporation
SAP is embracing OData as the Protocol for Netweaver Gateway OData is a protocol extending
AtomPub Standard
Literally data is made available as a feed
Every base service has a metadata object (/$metadata)
Base URL points to additional data feeds (nested feeds)
Data is pretty self explaining, SAP has added minor extensions to OData standard to reflect specific requirements
Common OData toolkits handle SAP extensions without problems
Gateway SP4 and above support JSon!
<atom:entry><atom:content type="application/xml"><m:properties><d:value>000000899757</d:value><d:scheme_id>IWF_USER_DECISION_TASK_GW</d:scheme_id><d:scheme_agency_id>ECC6</d:scheme_agency_id><d:status_txt>Ready</d:status_txt><d:type>W</d:type><d:note_count m:Type="Edm.Int16">0</d:note_count><d:created_at m:Type="Edm.DateTime">2011-09-15T00:00:00</d:created_at><d:gui_link/><d:priority>5</d:priority><d:start_dl m:Type="Edm.DateTime">0000-00-00T00:00:00</d:start_dl><d:act_dec/><d:reassign_by/><d:actual_owner/><d:reassign_to/><d:language>E</d:language><d:subject>Please approve/reject Purchase Order 4500017247</d:subject><d:task_name>WS99900236_0000000004</d:task_name><d:act_dec_agent/><d:created_by>SUPER</d:created_by><d:status>READY</d:status><d:end_dl m:Type="Edm.DateTime">0000-00-00T00:00:00</d:end_dl><d:reserved_by/></m:properties></atom:content><atom:id>http://gateway.isicc.de.ibm.com:8000/sap/opu/sdata/sap/WFDECISIONTASKPROCESSING/WorkflowTaskCollection(value='000000899757',scheme_id='IWF_USER_DECISION_TASK_GW',scheme_agency_id='ECC6')</atom:id><atom:link href="WorkflowTaskCollection(value='000000899757',scheme_id='IWF_USER_DECISION_TASK_GW',scheme_agency_id='ECC6')" rel="self" type="application/atom+xml;type=entry"/><atom:link href="SubscriptionCollection" rel="http://www.sap.com/Protocols/SAPData/rel#subscribe"/><atom:link href="WorkflowTask_ApplyRelease?value=000000899757&scheme_id=IWF_USER_DECISION_TASK_GW&scheme_agency_id=ECC6" rel="http://www.sap.com/Protocols/SAPData/rel#action" sap:semantics="action"/><atom:link href="WorkflowTask_ApplyReserve?value=000000899757&scheme_id=IWF_USER_DECISION_TASK_GW&scheme_agency_id=ECC6" rel="http://www.sap.com/Protocols/SAPData/rel#action" sap:semantics="action">
© 2013 IBM Corporation
A word on Authentication / Security
SAP Logons are usually done via user credentials (Username + Password) SAP Systems provide support for Single Sign On
─ SAP has an own security token called SSO2 token
─ Token is handled as Cookie and sent via http header to server
To request SSO2 token without logging in via UserName + Password, a set of options exist
─ Support for other tickets, e.g. Kerberos
─ Support of SAML (2.0 in newer SAP Netweaver Releases)
─ Support for SSO Tools like IBM Tivoli Access Manager
Any integration needs to solve the authentication problem─ For simple integrations, Username + password are sufficient
– SAP provide a technical user for simple- not user dependant – operations
─ More complicated operations mostly rely on token – especially to remove the need to sign into SAP after signing into an application before
© 2013 IBM Corporation
IBM Connections capabilities are relevant for SAP processes
HomeSee what's happening across your social network
Blogs*
Present your own ideas, hints & tips
CommunitiesWork with people who share common roles and expertise
Micro-bloggingReach out for help or share news with your social network
ProfilesFind the people you need
Social AnalyticsDiscover who and what you don’t know via recommendations
Bookmarks* Tell others what you consider important
Files*Post, share, and discover documents, presentations, images, and more
Wikis*Share Best Practices and edit Web Content
Activities*Organize your work and tap your professional network
ForumsExchange ideas with, and benefit from the expertise of others
Media LibraryWork with Pictures and Videos
IdeasShare and vote on Ideas
Connect Content ManagementManage most important documents (IBM Filenet, IBM CM8, MS SharePoint)
* use inside Communities, but also individually
IBM Connections
MobileiOS, Android, RIM
16 © 2013 IBM Corporation
A Central Component of Social Apps is the Activity Stream – which can contain SAP Events
© 2013 IBM Corporation
SAP NetWeaver Gateway is an easy enabler for SAP Events in the Activity Stream
Activity Streams provide a simple API that can be used for external systems to create events and assign them to a user / group
The aggregation of the events happen on the IBM Connections server
Users see the high-level details of the event, and can drill into the event through an embedded experience (OpenSocial Gadget)
─ Gadget can come from various sources
─ Can be reused e.g. within mail
© 2013 IBM Corporation
Posting into the Activity Stream – JSON example
{ "generator": { "image": { "url": "http://i2.ytimg.com/vi/Q5CU9cMvk7k/hqdefault.jpg"}, "id": "ytapp", "displayName": "YouTube Application", "url": "http://www.youtube.com/" }, "actor": { "id": "@me" }, "verb": "post", "title": "Video has been posted and is live !", "content": " You have created a new YouTube video.", "updated": "2012-05-08T12:00:00.000Z", "object": { "summary": "Video posted to YouTube", "objectType": "note", "id": "yt12", "displayName": "YouTube Video", "url": "http://public.dhe.ibm.com/software/dw/lotus/ee/video.xml", }, "openSocial":{ "embed": { "gadget": "http://public.dhe.ibm.com/software/dw/lotus/ee/video.xml", "context": "Q5CU9cMvk7k" } } }
Fallback element
Embedded ExperienceReference
Activity Stream Content
© 2013 IBM Corporation
OpenSocial gadgets are used to render information within the activity stream
OpenSocial Gadgets are the way to render Information in the activity stream OpenSocial Gadgets provide basically 2 ways to create a gadget
─ Write a gadget against an OpenSocial API
─ Use a Gadget to point to a Web page (wrapper)
Experience so far shows that pointing to a html page is the easiest way to create a SAP experience, although it can probably also be done with the OpenSocial API
Now – the question is: How can the website be created?─ Any existing html page
─ A servlet that responds with html
─ CastIron as integration appliance
─ Web Experience Factory created Application
To make use of SAP data─ Connect directly to it and read the data (JCo & OData)
─ Convert OData Stream via XSLT transformation into HTML
© 2013 IBM Corporation
Cast Iron enables easy integration also for other products in the Lotus Stack
Cast Iron is an integration Appliance that allows integration orchestrations based on assembling connectors and translation components
To integrate Gateway with connections, only http connectors are required
© 2013 IBM Corporation
Servlet Code – SAP Jco (1)
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter out = response.getWriter();
response.setCharacterEncoding("text/html");
out.println("<html><body>");
out.println("<h1> SAP FLight Data</h1>");
// Connect to SAP
try {
JCoDestination destination = JCoDestinationManager.getDestination(ABAP_AS);
// trigger RFC
JCoFunction function = destination.getRepository().getFunction("BAPI_FLIGHT_GETLIST");
function.getImportParameterList().setValue("AIRLINE", "LH");
// call the function
function.execute(destination);
© 2013 IBM Corporation
Servlet Code – SAP Jco (2)
// we only focus on the returned flight tables
JCoTable flights = function.getTableParameterList().getTable("FLIGHT_LIST");
System.out.println (function.toString());
System.out.println("number of results : " + flights.getNumRows());
for (int i = 0; i < flights.getNumRows(); i++)
{
flights.setRow(i);
System.out.println(flights.getString("AIRLINE") + '\t' + flights.getString("CONNECTID"));
out.println(flights.getString("AIRLINE") + '\t' + flights.getString("CONNECTID") + "</br>");
}
out.println ("</body></html>");
} catch (JCoException e)
{
out.println(e.toString());
}
}
© 2013 IBM Corporation
Servlet Code - OData
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter out = response.getWriter();
response.setCharacterEncoding("text/html");
out.println("<html><body>");
out.println("<h1> SAP FLight OData</h1>");
try {
ODataConsumer c = ODataConsumer.create("http://9.153.165.205:8000/sap/opu/sdata/sap/Z_GWFLIGHT/",new BasicAuthenticationBehavior("user","pwd"));
System.out.println("Connected");
for(OEntity so : c.getEntities("z_gwsflightCollection").execute()) {
out.println(so.getProperty("value").getValue() + " " + so.getProperty("airline").getValue() +"</br>");
}
} catch (Exception e){
System.out.println (e.toString());
out.println(e.toString());
}
}
© 2013 IBM Corporation
OpenSocial is the standard for the Embedded Experience The easiest way to generate an OpenSocial Gadget is by using the OSDE
(http://code.google.com/p/opensocial-development-environment/) to generate the gadget and test it
Since OpenSocial 0.9, the easiest way to build a gadget is to point to an URL
© 2013 IBM Corporation
Other interesting Connections based scenarios
Communities─ Integration of specific SAP Data into a community of interest:
─ Examples: Sales Data on a Client, CRM statistics in Marketing community
Automatic upload of Files to be share w/ Clients─ SAP produces a variety of documents – they can be shared w/ Clients via Files Service
─ Example: Sharing of order confirmations out of SAP into Connections
Smart Cloud for Social Business─ Cloud based collaboration services, ability to integrate and share more externally
─ Example: sharing of Invoices, Part Lists, aso
© 2013 IBM Corporation
It starts with being able to leverage your SAP investment with WebSphere Portal
U s e r I n t e r f a c e C o m p o n e n t( e . g . S A P P o r t a l i V i e w ,
A B A P W e b D y n p r o )
B u s i n e s s P a c k a g e( P a g e s , W o r k s e t s , R o l e s ,
N a v i g a t i o n s e r v i c e , … )
B u s i n e s s S e r v i c e( m a i n l y A B A P , s o m e J a v a )
B u s i n e s s S u i t e
• Expose SAP iViews in WebSphere Portal
• Bring Pages and Navigation elements from SAP Business Packages into WebSphere Portal
• Create new experiences with SAP services; integrate with other services
UI Level Integration Re-Use of SAP User Interface Components
Deep IntegrationService/API Access Custom User Interface
WebSphere Portal
© 2013 IBM Corporation
Access Customer Information
Success Stories
HR Direct
Sales Online
Training
Careers
Employee Services
Help / FAQ
Related Links
APJ EMEAAmericas
Home Company Portfolio Employees Services Development Sales
BlueMarketing
Object Based Navigation
Session Management
Branding
SAP Netweaver Portal Services Based Portal Integration
Integrating SAP Portal content into a third party Portal, supports all the SAP Portal functionality (Object Based Navigation, Branding, Session Managements, etc.) required for end users to run SAP Business Applications in a secured, harmonized, scalable way.
© 2013 IBM Corporation
Consuming SAP in Domino Applications
Customers run Domino and there is an ongoing desire to develop on top of Domino as a proven Rapid Application Development environment, either in the classic way or through XPages.
Where the Lotus Connector for SAP is still an available and valid option, the new technologies can also be leveraged inside Domino Applications
─ The newer SAP Interfaces (SOAP + OData) can easily be consumed inside a Domino Application
─ Easiest way to consume SAP is via Java code, either in
– Agents (for simple read write operations) in classical Domino Applications
– Java Beans for XPages Applications
SAP usually requires Authentication to access the system─ Plugins in SAP Netweaver are available to handle LTPA token
─ SSO tools like IBM® Tivoli Access Manager® can be used
─ Authentication via SAML
─ Basic authentication (username / password)
Decision on the right technology is mostly driven through the need of the specific application and the available skills, as well as the budget
© 2013 IBM Corporation
Consume SAP in XPages through Java Beans
Gateway consumptionpackage com.ibm.chi;
import org.OData4j.consumer.ODataConsumer;import org.OData4j.consumer.behaviors.BasicAuthenticationBehavior;import org.OData4j.core.OEntity;import java.util.ArrayList;
public class GWFlightList {private ArrayList<OEntity> FlightList = null;
public ArrayList<OEntity> getFlights() {
ODataConsumer c = ODataConsumer.create("http://9.153.165.205:8000/sap/opu/sdata/sap/Z_GWFLIGHT/",new BasicAuthenticationBehavior("user","password"));
this.FlightList = new ArrayList<OEntity>();
for(OEntity flight : c.getEntities("z_gwsflightCollection").execute()){
this.FlightList.add(flight); }
return this.FlightList;}
}
SAP Connector code...
public class FlightList { private ArrayList<Flight> fl = null;
public ArrayList<Flight> getFlights() throws JCoException {
...... JCoFunction function =
destination.getRepository().getFunction("BAPI_FLIGHT_GETLIST"); function.getImportParameterList().setValue("AIRLINE", "LH"); if(function == null) throw new RuntimeException("BAPI not found in SAP.");
try { function.execute(destination); } catch(AbapException e) { return null; }
this.fl = new ArrayList<Flight>();
JCoTable flights=function.getTableParameterList().getTable("FLIGHT_LIST"); for (int i = 0; i < flights.getNumRows(); i++) { flights.setRow(i);
Flight fli = new Flight (); fli.setAirline(flights.getString("AIRLINE")); fli.setConnectid(flights.getString("CONNECTID")); fli.setFlightdate(flights.getString("FLIGHTDATE")); fli.setCityfrom(flights.getString("CITYFROM")); fli.setCityto(flights.getString("CITYTO")); fli.setDepttime(flights.getString("DEPTIME")); fli.setPrice(flights.getString("PRICE")); fli.setCurr(flights.getString("CURR")); this.fl.add(fli); } return fl; }
}
© 2013 IBM Corporation
Agent example for direct consumption of SAP data (1)
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();
System.out.println("trying to connect");
// Call OData provider
ODataConsumer c = ODataConsumer.create("http://9.153.165.205:8000/sap/opu/sdata/sap/Z_GWFLIGHT/",new BasicAuthenticationBehavior("user","password"));
System.out.println("Connected");
© 2013 IBM Corporation
Agent example for direct consumption of SAP data (2)
for(OEntity so : c.getEntities("z_gwsflightCollection").execute()) {
doc.replaceItemValue("value", so.getProperty("value").getValue());
doc.replaceItemValue("arrdate", so.getProperty("arrdate").getValue());
doc.replaceItemValue("cityto", so.getProperty("cityto").getValue());
doc.replaceItemValue("curr", so.getProperty("curr").getValue());
doc.replaceItemValue("arrtime", so.getProperty("arrtime").getValue());
doc.replaceItemValue("price", so.getProperty("price").getValue());
doc.replaceItemValue("curr_iso", so.getProperty("curr_iso").getValue());
doc.replaceItemValue("deptime", so.getProperty("deptime").getValue());
doc.replaceItemValue("cityfrom", so.getProperty("cityfrom").getValue());
doc.replaceItemValue("airline", so.getProperty("airline").getValue());
doc.replaceItemValue("airportto", so.getProperty("airportto").getValue());
doc.save();
doc = db.createDocument();
}
} catch(Exception e) {
e.printStackTrace();
}
© 2013 IBM Corporation
Apache OpenOffice can consume SAP Data Easily - Example
ApacheTM Open OfficeTM is broadly supported by IBM and other players in the market as an alternative to Microsoft Office
IBM and SAP have worked together to develop a prototype for integration─ Consumption of SAP data through Spreadsheet editor
─ Updates via Spreadsheet, not SAP GUI
─ Automatic upload back into SAP ERP System
This closes a big gap for companies that would want to migrate to an OpenOffice solution, but do not have an answer for integrating w/ SAP
─ Big problem is the finance / Controlling department
IBM and SAP are looking for Clients that are looking for this integration. ─ Pls contact us if you are interested!
33 © 2013 IBM Corporation
Material on SAP Integration:
Whitepaper (available currently on request, drop me a Note)─ XPages Whitepaper
─ CastIron Whitepaper (servlet code to be added soon)
Links─ Lotus Connector for SAP Solutions
http://www.ibm.com/software/lotus/products/connectorsap/
SAP Netweaver Gateway Developer center
http://scn.sap.com/community/developer-center/netweaver-gateway
─ SAP ABAP Connectivity (JCo and Webservices)
http://wiki.sdn.sap.com/wiki/display/ABAPConn/ABAP+Connectivity+Home
Slidedecks─ Current decks are posted to Slideshare
www.slideshare.net/cholsing
© 2013 IBM Corporation
Questions?
© 2013 IBM Corporation
Contact
Christian Holsing
IBM Collaboration Solutions – Business and Technical Strategy Team
IBM SAP International Competence CenterAltrottstrasse 3169190 Walldorf- Germany -
Phone: +49-7034-64-31021 | WalldorfOffice: +49 6227 73 1234 | Mobile: +49 160 96 93 69 01
Email: [email protected]
36 © 2013 IBM Corporation
Legal disclaimer
© IBM Corporation 2013. All Rights Reserved.
The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software.
References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results.
All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer.
IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of International Business Machines Corporation in the United States, other countries, or both. Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both.
Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both.
Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
SAP, SAP Business Suite, SAP NetWeaver Portal and SAP NetWeaver Gateway are the trademarks or registered trademarks of SAP AG in Germany and in several other countries.
Apache OpenOffice, OpenOffice and Apache are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries, and are used with permission. The Apache Software Foundation has no affiliation with and does not endorse, or review the materials provided at this event, which is managed by IBM.