realtime anbindung an sap erp - novatec gmbh netweaver gateway service builder abb. import daten...
TRANSCRIPT
Realtime Anbindung an SAP ERP
NovaTec Consulting GmbH
Leinfelden-Echterdingen, München, Frankfurt am Main, Berlin, Jeddah / Saudi-Arabien
14.07.2014, 15:00
© NovaTec 09.09.2015 3
Showcase - Push SAP Terminauftrag
© NovaTec 09.09.2015 4
Motivation
“..by the end of Q2 2014, Microsoft and SAP will support SAP®
Business Suite software, SAP Business All-In-One solutions, SAP
Mobile Platform, SAP Adaptive Server® Enterprise (SAP ASE) and
the developer edition of the SAP HANA® platform on Azure..”
“..users need to know right away what is happening in their
environment with instant full control of their clients….”
“Web Services, WCF, Web API: none of them was specifically
designed for asynchronous environments with real-time
collaboration..”
© NovaTec 09.09.2015 5
Herausforderungen
Herausforderungen
• SAP - Stack vs. Microsoft-Stack
• Push Technologie
Lösung
• SOAP / Odata
• SignalR
© NovaTec 09.09.2015 6
Herausforderungen
Pull (http, Ajax, SOAP)
Push (SignalR, WebSockets)
© NovaTec 09.09.2015 7
SAP Geschäftsprozess Kundenauftrag
© NovaTec 09.09.2015 8
SAP Geschäftsprozess Kundenauftrag
• Transaktion VA01
• Tabellen VBAK und VBAP
• Transaktion SE11
• Transaktion SE16N
© NovaTec 09.09.2015 10
Showcase - Push SAP Terminauftrag
© NovaTec 09.09.2015 11
SAP User Exits
Abb. Transaktion CMOD
© NovaTec 09.09.2015 12
SAP User Exits
VBAK: Verkaufsbeleg Kopfdaten
VBUK: Kopfstatus und Verwaltungsdaten
© NovaTec 09.09.2015 13
SAP User Exits
Abb. SAP-ABAP Include
© NovaTec 09.09.2015 14
SAP–ABAP HTTP GET Funktionsbaustein
Abb. SAP-ABAP
Funktionsbaustein
© NovaTec 09.09.2015 15
SAP - SOAP call aus .net
© NovaTec 09.09.2015 16
HTTP Anbindung der ABAP Funktionsbausteine
SOAP URL mit WSDL erzeugt C# Proxy Klassen:
© NovaTec 09.09.2015 17
SOAP Klassen
© NovaTec 09.09.2015 18
SOAP Request für Detail Daten
© NovaTec 09.09.2015 19
OData & SAP Netweaver Gateway
© NovaTec 09.09.2015 20
OData & SAP Netweaver Gateway
© NovaTec 09.09.2015 21
SAP Netweaver Gateway Service Builder
Abb. Import Daten Modell mit
Transaktion SEGW
© NovaTec 09.09.2015 22
SAP Netweaver Gateway Client
Abb. Transaktion /IWFND/GW_CLIENT
© NovaTec 09.09.2015 23
SAP Class Builder
© NovaTec 09.09.2015 24
Showcase - Push SAP Terminauftrag
© NovaTec 09.09.2015 25
HTTP
Abb. HTTP Kommunikation
© NovaTec 09.09.2015 26
AJAX
Abb. AJAX
© NovaTec 09.09.2015 27
Polling
Abb. Polling
© NovaTec 09.09.2015 28
Push Technologie: WebSockets
Abb. WebSockets
© NovaTec 09.09.2015 29
Push Technologie: WebSockets und JavaScript
http://caniuse.com/websockets
© NovaTec 09.09.2015 30
Push Technologie: Server-Sent Events
Abb. Server-Sent Events
© NovaTec 09.09.2015 31
Push Technologie: Long polling
Abb. Long polling
© NovaTec 09.09.2015 32
Push Technologie: Herausforderungen
• Verschiedene Protokolle (WebSockets, Server-Sent Events..)
• Verwaltung connected users
• Verwaltung subscriptions
• Receiving and processing actions
• Monitoring submissions
• Verschiedene clients
© NovaTec 09.09.2015 33
SignalR 2.0
“Basically, SignalR isolates us from low-level details, giving us the impression
of working on a permanently open persistent connection between the client and
the server..”
Abb. SignalR stack
© NovaTec 09.09.2015 34
SignalR 2.0
Abb. SignalR stack
© NovaTec 09.09.2015 35
Showcase - Push SAP Terminauftrag
© NovaTec 09.09.2015 36
.net – SAP Kommunikation mit MVC Server
public class SapController: Controller
{ // Action Method Notify called from SAP via HTTP
public ActionResult Notify(string VBELN)
{
ParameterizedThreadStart pts = new ParameterizedThreadStart(WorkThreadFunction);
Thread thread = new Thread(pts);
thread.Start(VBELN);
return Content(DateTime.Now.ToString());
}
public void WorkThreadFunction(object VBELN)
{ // Pull Details from SAP via SOAP
Z_DWX_GET_DETAILService sap = new Z_DWX_GET_DETAILService();
sap.Credentials = SapConfig.SAPLogin; sap.Url += "?sap-client=900&sap-language=de";
KNA1 sapResultKNA1 = null;
VBAK sapResultVBAK = null;
VBAP[] sapResultVBAP = new VBAP[] { };
sapResultKNA1 = sap.Z_DWX_GET_DETAIL(VBELN, ref sapResultVBAP, out sapResultVBAK);
…
}
© NovaTec 09.09.2015 37
.net – SignalR Push mit MVC Server
public class SapController: Controller
{
public void WorkThreadFunction(object VBELN)
{
…..
// Push Data from MVC-Controller to Clients via SignalR
Order order = new Order
{
SAP_VBAK = sapResultVBAK,
SAP_VBAP = sapResultVBAP,
SAP_KNA1 = sapResultKNA1
};
string orderDetailsJson = new JavaScriptSerializer().Serialize(order);
var context = GlobalHost.ConnectionManager.GetHubContext<SapHub>();
context.Clients.All.pushNewOrder(order.VBELN, orderDetailsJson);
}
}
© NovaTec 09.09.2015 38
Showcase - Push SAP Terminauftrag
© NovaTec 09.09.2015 39
.net – SignalR client
Install-Package Microsoft.AspNet.SignalR.Client
public partial class Form1 : Form
{
private void Form1_Load(object sender, EventArgs e)
{
HubConnection hub = new HubConnection("https://dwxsap.com//"); ;
IHubProxy proxy = hub.CreateHubProxy("SapHub");
Action<string> del = (string s) => listBox1.Items.Add(s);
hub.Error += (Exception ex) => { listBox1.Invoke(del, ex.Message); };
proxy.On<string, string>("pushNewOrder", (text, orderDetailsJson) => {
Order order = new JavaScriptSerializer().Deserialize<Order>(orderDetailsJson);
listBox1.Invoke(del, text);
listBox1.Invoke(del, order.VBELN);
listBox1.Invoke(del, order.AUDAT);
});
hub.Start();
}
}
© NovaTec 09.09.2015 40
.net – SignalR Kommunikation
© NovaTec 09.09.2015 41
.net – SignalR Kommunikation
© NovaTec 09.09.2015 42
.net-Client - HubConnection
© NovaTec 09.09.2015 43
.net – Client HubProxy
© NovaTec 09.09.2015 44
KendoUI Mobile
Pure JavaScript and HTML5
GUI Framework
• Mobile Support and Responsiveness
• Rich Views and Models With MVVM
• jQuery-based
• customizable themes, templates
• http://telerik.com
© NovaTec 09.09.2015 45
Literatur
ABAP-Programmierung für den Vertrieb mit
SAP – Kundeneigene Erweiterungen
Hunger, Klein
Galileo Press
ISBN: 978-1-59229-318-6
© NovaTec 09.09.2015 46
Literatur
SAP Interface Programming
Wegelin, Englbrecht
Galileo Press
ISBN: 978-1-59229-318-6
© NovaTec 09.09.2015 47
Literatur
Signal R Programming in Microsoft ASP.NET
Jose M. Aguilar
Microsoft Press
ISBN: 978-0-7356-8388-4
© NovaTec 09.09.2015 48
Literatur
OData and SAP Netweaver Gateway
Bönnen et al. Galileo Press
ISBN: 978-1-59229-907-2
© NovaTec 09.09.2015 49
Push Technologies: SignalR 2.0
http://www.github.com/signalr/
http://signalr.net/
http://www.asp.net/signalr/
© NovaTec 09.09.2015 50
Fazit
• SAP und Microsoft wachsen zusammen
• .net – Programmierer werden auf SAP – Systeme zugreifen
NovaTec Consulting GmbH
NovaTec Zentrale
Dieselstr. 18/1
D-70771 Leinfelden-Echterdingen
Telefon: +49 711 22040-700
Fax: +49 711 22040-899
E-Mail: [email protected]
Internet: www.novatec-gmbh.de
Frankfurt
Friedrich-Ebert-Anlage 36
D-60325 Frankfurt am Main
München
Landshuter Allee 8-10
D-80637 München
Naher Osten
P.O. Box 140611
Jeddah 21333, Saudi-Arabien
Berlin
Potsdamer Platz 11
D-10785 Berlin
Niederlassungen
Fragen?