Hallo zusammen,
ich versuche aktuell, 3CX (Version 20, Update 2) mit SAP Business One (B1) auf HANA (Version 9.3 PL 11) über den SAP Service Layer zu integrieren. Ziel ist es, dass bei einem eingehenden Anruf die Telefonnummer in SAP B1 abgeglichen wird und die Kundendaten in 3CX angezeigt werden.
Systemdetails:
Oder mögliches Problem mit SSL-Zertifikat?
Könnte die Überprüfung des SSL-Zertifikats Probleme bei der Autorisierung verursacht haben? Ich habe nur ein selbst zertifiziertes und es ist eine interne IP. Ich konnte in 3CX keine Option zur Deaktivierung der SSL-Zertifikatsüberprüfung in der XML-Konfiguration finden. Wenn jemand weiß, wie man SSL-Zertifikatsprobleme umgehen oder lösen kann, wäre ich Ihnen dankbar für einen Hinweis.
Meine Fragen:
ich versuche aktuell, 3CX (Version 20, Update 2) mit SAP Business One (B1) auf HANA (Version 9.3 PL 11) über den SAP Service Layer zu integrieren. Ziel ist es, dass bei einem eingehenden Anruf die Telefonnummer in SAP B1 abgeglichen wird und die Kundendaten in 3CX angezeigt werden.
Systemdetails:
- SAP Business One: Version 9.3 PL 11 auf HANA
- 3CX: Version 20, Update 2
- OAuth2 mit „Password Credentials“:
- Ich habe den CRM Template Generator für OAuth2 konfiguriert. Nach einem Klick auf „Autorisieren“ öffnet sich ein neuer Tab, in dem ich zur Eingabe von Benutzername und Passwort aufgefordert werde (Browser Header Login). Obwohl ich die korrekten Daten eingebe, werde ich immer wieder aufgefordert, die Daten erneut einzugeben, und ich komme nicht weiter.
- Basic Authentication:
- Ich habe es auch mit Basic Authentication versucht, indem ich username
assword in Base64 encodiert und im Authorization-Header gesetzt habe. Leider führt das dazu, dass 3CX die XML-Datei mit dem Fehler „Falsches Dateiformat“ ablehnt.
- Ich habe es auch mit Basic Authentication versucht, indem ich username
- Manuelle Verwendung einer Session-ID:
- Ich habe eine Session-ID über Postman generiert und versucht, diese direkt im XML als Cookie (B1SESSION=[SessionId]) zu verwenden. Auch hier bekomme ich in 3CX die Fehlermeldung „Falsches Dateiformat“.
Code:
<?xml version="1.0"?>
<Crm xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Country="DE" Name="SAP B1 Integration" Version="1" SupportsEmojis="true">
<Number Prefix="AsIs" MaxLength="20" />
<Connection MaxConcurrentRequests="2" />
<Parameters>
<Parameter Name="CompanyDB" Type="String" Parent="General Configuration" Editor="String" Title="Datenbank:" Default="****" />
<Parameter Name="UserName" Type="String" Parent="General Configuration" Editor="String" Title="Benutzername:" Default="****" />
<Parameter Name="Password" Type="String" Parent="General Configuration" Editor="Password" Title="Passwort:" Default="****" />
</Parameters>
<Authentication Type="OAuth2">
<Value>https://192.168.25.103:50000/b1s/v1/Login</Value>
</Authentication>
<Scenarios>
<Scenario Id="Auth" Type="REST">
<Request Url="https://192.168.25.103:50000/b1s/v1/Login" MessagePasses="0" RequestContentType="application/json" RequestEncoding="Json" RequestType="Post" ResponseType="Json">
<PostValues>
<Value Key="CompanyDB" Passes="0" Type="String">[CompanyDB]</Value>
<Value Key="UserName" Passes="0" Type="String">[UserName]</Value>
<Value Key="Password" Passes="0" Type="String">[Password]</Value>
</PostValues>
</Request>
<Rules>
<Rule Type="Any">SessionId</Rule>
</Rules>
<Variables>
<Variable Name="AccessToken" Path="SessionId">
<Filter />
</Variable>
</Variables>
</Scenario>
<Scenario Id="LookupByPhoneNumber" Type="REST">
<Request Url="https://192.168.25.103:50000/b1s/v1/BusinessPartners?$filter=Phone1 eq '[Number]'" MessagePasses="0" RequestType="Get" ResponseType="Json">
<Headers>
<Header Name="Authorization" Value="Bearer [AccessToken]" />
</Headers>
</Request>
<Rules>
<Rule Type="Any">CardCode</Rule>
</Rules>
<Variables>
<Variable Name="ContactID" Path="CardCode" />
<Variable Name="FirstName" Path="CardName" />
<Variable Name="LastName" Path="CardName" />
<Variable Name="CompanyName" Path="CardName" />
<Variable Name="Email" Path="E_Mail" />
<Variable Name="PhoneBusiness" Path="Phone1" />
<Variable Name="PhoneMobile" Path="Mobile" />
</Variables>
<Outputs AllowEmpty="false">
<Output Type="ContactID" Value="[ContactID]" />
<Output Type="FirstName" Value="[FirstName]" />
<Output Type="LastName" Value="[LastName]" />
<Output Type="CompanyName" Value="[CompanyName]" />
<Output Type="Email" Value="[Email]" />
<Output Type="PhoneBusiness" Value="[PhoneBusiness]" />
<Output Type="PhoneMobile" Value="[PhoneMobile]" />
</Outputs>
</Scenario>
</Scenarios>
</Crm>
Oder mögliches Problem mit SSL-Zertifikat?
Könnte die Überprüfung des SSL-Zertifikats Probleme bei der Autorisierung verursacht haben? Ich habe nur ein selbst zertifiziertes und es ist eine interne IP. Ich konnte in 3CX keine Option zur Deaktivierung der SSL-Zertifikatsüberprüfung in der XML-Konfiguration finden. Wenn jemand weiß, wie man SSL-Zertifikatsprobleme umgehen oder lösen kann, wäre ich Ihnen dankbar für einen Hinweis.
Meine Fragen:
- Hat jemand bereits erfolgreich eine Integration zwischen 3CX und SAP B1 über den Service Layer eingerichtet?
- Welche Authentifizierungsmethode habt ihr verwendet?
- Gibt es eine Möglichkeit, die SSL-Prüfung zu deaktivieren oder zu umgehen?