{"id":3504,"date":"2022-02-16T09:38:21","date_gmt":"2022-02-16T08:38:21","guid":{"rendered":"https:\/\/devstage.bix-consulting.com\/?p=3504"},"modified":"2023-05-24T09:42:53","modified_gmt":"2023-05-24T07:42:53","slug":"sap-data-intelligence-geo-enrichment-per-api","status":"publish","type":"post","link":"https:\/\/www.bix-consulting.com\/en\/sap-data-intelligence-geo-enrichment-per-api\/","title":{"rendered":"SAP DATA Intelligence: GEO-Enrichment through API"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8220;1&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<p style=\"text-align: justify;\">In diesem Blog wird die Verwendung des OpenAPI Clients in einem SAP Data Intelligence Datenfluss erkl\u00e4rt. Es sollen mit Hilfe von GoogleMaps Informationen zu einem bestimmten Ort (Point of Interest), z.B. Geokoordinaten, \u00d6ffnungszeiten, Websiten eingeholt werden. Es wird somit gezeigt, wie mit Hilfe von API\u2019s Daten um zus\u00e4tzliche Informationen angereichert werden k\u00f6nnen.<\/p>\n<p style=\"text-align: justify;\">Dieser Blog richtet sich nach folgender Struktur aus:<\/p>\n<ol>\n<li style=\"text-align: justify;\">Szenario in der SAP Data Intelligence<\/li>\n<li style=\"text-align: justify;\">Voraussetzungen<\/li>\n<li style=\"text-align: justify;\">Aufbau<\/li>\n<li style=\"text-align: justify;\">Ausf\u00fchrung<\/li>\n<li style=\"text-align: justify;\">Ausblick<\/li>\n<\/ol>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<h5>Szenario in der SAP Data Intelligence<\/h5>\n<p style=\"text-align: justify;\">SAP Data Intelligence (ehemals Data Hub) wird als Datamanagement- und Pipelinel\u00f6sung angeboten. Datenfl\u00fcsse zur Orchestrierung und \u00dcberwachung von Daten lassen sich flexibel anlegen und bieten durch verschiedene Verbindungsm\u00f6glichkeiten Einblicke in die gesamte IT-Landschaft. Au\u00dferdem k\u00f6nnen diese Datenfl\u00fcsse bereinigt, gefiltert, angereichert, operationalisiert und optimiert werden, sodass eine solide Datenbasis bleibt, welche von ML-Szenarien genutzt werden kann.<\/p>\n<p style=\"text-align: justify;\">Im Bereich Pipelines gibt es viele verschiedene Operatoren, die die oben erw\u00e4hnten Funktionen ausf\u00fchren k\u00f6nnen. Ein gro\u00dfer Teil der Operatoren ist selbsterkl\u00e4rend und gut h\u00e4ndelbar. Jedoch gibt es weitere Operatoren, die nicht so selbsterkl\u00e4rend sind. Ein solcher Fall ist der Standardoperator \u201eOpenAPI Client\u201c. Diesen wollen wir mit dem Anwendungsfall GeoEnrichment genauer beschreiben.<\/p>\n<p>&nbsp;<\/p>\n<p>[\/et_pb_text][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2022\/02\/sapdi_1.png&#8220; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][et_pb_text module_id=&#8220;anker-sapdiblog1&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">F\u00fcr diesen Blog soll mit dem OpenAPI Client die Google Places API (Application Programming Interface) genutzt werden. Diese kann zu einer Place Id (Google interne eindeutige ID) detaillierte Informationen liefern.<a href=\"https:\/\/www.bix-consulting.com\/sap-data-intelligence-geo-enrichment-per-api\/#anker-sapdiblog\">[1]<\/a><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text module_id=&#8220;anker-sapdiblog2&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<h5>Vorraussetzungen<\/h5>\n<p style=\"text-align: justify;\">Um eine Google API aufzurufen, ben\u00f6tigt man als erstes einen sogennanten API Key, mit dem man sich f\u00fcr jeden Aufruf identifiziert und \u00fcber den Google Account ab einer bestimmten Anzahl Aufrufe abrechnet.<a href=\"https:\/\/www.bix-consulting.com\/sap-data-intelligence-geo-enrichment-per-api\/#anker-sapdiblog\">[2],[3]<\/a><\/p>\n<p style=\"text-align: justify;\">Au\u00dferdem muss eine Place ID vorhanden sein. Diese repr\u00e4sentiert als ID einen bestimmten Ort. Diese kann mit der Google Geocoding API aus Namen und Adressen gelesen werden oder es wird ein Beispiel aus der Dokumentation genommen. In unserem Fall nehmen wir eine Place ID aus der offiziellen Dokumentation.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<h5>Aufbau des Graphen<\/h5>\n<p>Der Aufbau des Graphen ist wie folgt:<\/p>\n<ul>\n<li>Python (Alternativ: JavaScript) Operator, um die Eingabeparameter f\u00fcr den OpenAPI Client Operator aufzubereiten<\/li>\n<li>Optionaler Wiretap erlaubt die Eingabeparameter f\u00fcr den OpenAPI Client Operator zu reviewen<\/li>\n<li>OpenAPI Client Operator ist das eigentliche Herzst\u00fcck mit dem API-Aufruf<\/li>\n<li>Optionaler Wiretap um das Ergebnis, des API-Aufrufs zu \u00fcberpr\u00fcfen<\/li>\n<\/ul>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2022\/02\/sapdi_2.png&#8220; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text module_id=&#8220;anker-sapdiblog4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<h5>Aufruf des OpenAPI Client Operator<\/h5>\n<p style=\"text-align: justify;\">Als Erstes wird der OpenAPI Client Operator konfiguriert. Wir w\u00e4hlen als Connection Type \u201emanual\u201c aus, um diese direkt pflegen zu k\u00f6nnen. Im produktiven Betrieb sollten die Verbindungsparameter im Connection Manager hinterlegt werden.<a href=\"https:\/\/www.bix-consulting.com\/sap-data-intelligence-geo-enrichment-per-api\/#anker-sapdiblog\">[4]<\/a> Im Konfigurationsbereich des OpenAPI Client m\u00fcssen wir Host, Schemes, Base Path, Method und Produces bef\u00fcllen.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2022\/02\/sapdi_3.png&#8220; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<p style=\"text-align: justify;\">Die Bef\u00fcllung dieser Felder l\u00e4sst sich mit der oben schon verlinkten Dokumentation der Google Place API nachvollziehen. Die untere Abbildung spiegelt ein Ausschnitt der Dokumentation wider, dem die Bereiche der URL mit ihrer entsprechenden Bedeutung entnommen werden k\u00f6nnen.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2022\/02\/sapdi_4.png&#8220; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; text_font_size=&#8220;10px&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<p><span style=\"color: #999999;\"><em>Abbildung 1: Eigene Darstellung in Anlehnung an Google Places Documentation<\/em><\/span><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<p style=\"text-align: justify;\">Das \u201ePflichtfeld\u201c API Key Value wird in dem OpenAPI Client Operator in diesem Beispiel nicht direkt gef\u00fcllt. Dies wird im Python Operator gef\u00fcllt, damit sich die Eingabe auch als Parameter beim Start des Graphen planen l\u00e4sst. Der API Key Name kann frei gew\u00e4hlt werden und es muss \u201eheader\u201c als API Key Type gew\u00e4hlt werden.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text module_id=&#8220;anker-sapdiblog5&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<h5>Python Operator<\/h5>\n<p style=\"text-align: justify;\">Dies f\u00fchrt nun zum Python Operator. Dieser muss nicht extra konfiguriert oder mit einem Dockerfile verkn\u00fcpft, sondern lediglich im Coding angepasst werden.<\/p>\n<p style=\"text-align: justify;\">Der OpenAPI Client Operator verarbeitet eine Input Message. Diese wird im Code des Python Operators mit Hilfe des Dictionary \u201eheader\u201c erstellt. Das Dictionary enth\u00e4lt den API-Key und die Place ID die den OpenAPI Client \u00fcbergeben werden.<\/p>\n<p style=\"text-align: justify;\">Die Bezeichnungen\u2026<\/p>\n<p style=\"text-align: justify;\">header[\u201copenapi.query_params.key\u201c] oder<br \/>header[\u201copenapi.query_params.place_id\u201c]<\/p>\n<p style=\"text-align: justify;\">folgen einer bestimmten Logik, die man der Dokumentation zum OpenAPI Client Operator entnehmen kann.<a href=\"https:\/\/www.bix-consulting.com\/sap-data-intelligence-geo-enrichment-per-api\/#anker-sapdiblog\">[5]<\/a><\/p>\n<p style=\"text-align: justify;\">Durch zus\u00e4tzliche Headerattribute k\u00f6nnen weitere Informationen zur sp\u00e4teren Verarbeitung weitergegeben werden. Beispielsweise haben wir User und Rollen \u00fcbergeben<span>. <\/span><span>Die zus\u00e4tzlichen Attribute haben keinen Einfluss auf das Ergebnis des OpenAPI Client Operator und werden somit nur weitergegeben, aber nicht prozessiert.<\/span><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2022\/02\/sapdi_5.png&#8220; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<p>Nach Umsetzung der Konfiguration und Implementierung kann der Graph ausgef\u00fchrt werden.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<h5>Ausf\u00fchrung<\/h5>\n<p style=\"text-align: justify;\">Wenn der Graph ausgef\u00fchrt wurde, kann man sich mit Hilfe der Wiretaps die verschiedenen Verarbeitungsschritte ansehen. Der Python Operator \u00fcbergibt dem OpenAPI Client Operator eine Message, die aus einem Dictionary in Python erstellt wurde (siehe unten). Diese Message ist der Input f\u00fcr den OpenAPI Client Operator. In dem Wiretap ist veranschaulicht, welche Informationen wie \u00fcbergeben werden und was bei m\u00f6glichen Problemen helfen kann.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2022\/02\/sapdi_6.png&#8220; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<p>Ergebnis:<br \/><em>[2022-01-29 13:24:15,480] <\/em><\/p>\n<p><em>{\u201cRole\u201c:\u201cConsultant\u201c, <\/em><em>\u201cUser\u201c:\u201cNordhues\u201d, \u201dopenapi.query_params.key\u201d:\u201dmy_api_key\u201d, \u201dopenapi.query_params.place_id\u201d:\u201dChIJgUbEo8cfqokR5lP9_wh_DaM\u201d}<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p style=\"text-align: justify;\">Der OpenAPI Client verarbeitet diese Ergebnisse und gibt diese im letzten Wiretap aus. Die untere Abbildung zeigt nur einen kleinen Ausschnitt der gelieferten Daten.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2022\/02\/sapdi_7.png&#8220; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text module_id=&#8220;anker-sapdiblog6&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<h5>Aussicht<\/h5>\n<p style=\"text-align: justify;\">Dieses Beispiel soll exemplarisch f\u00fcr weitere API\u2019s genutzt werden. Die Struktur, nach denen API\u2019s aufgerufen werden, unterscheidet sich oftmals nicht. Dementsprechend kann dieses Beispiel auch f\u00fcr weitere API\u2019s, beispielweise What3Words, verwendet werden.<a href=\"https:\/\/www.bix-consulting.com\/sap-data-intelligence-geo-enrichment-per-api\/#anker-sapdiblog\">[6]<\/a> Festzuhalten bleibt es, dass API-Richtlinien genaustens zu studieren sind, welche Vorgaben es bzgl. Speichern und Weiterverarbeitung der API-Ergebnisse gibt.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<h5>Fehlerbehandlung<\/h5>\n<p style=\"text-align: justify;\">Die weitere Verarbeitung des Ausgabestrings ist aufwendiger, wenn wir ein Szenario haben, indem viele API-Aufrufe gemacht werden m\u00fcssen. Jeder OpenAPI Client Operator verarbeitet immer nur einzelne Aufrufe, dementsprechend m\u00fcssen weitere Operatoren in dem Graph hinzugef\u00fcgt werden. Zus\u00e4tzlich m\u00fcssen Errorhandling-Funktionen umgesetzt werden, falls die OpenAPI Client Operator kein Ergebnis findet.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<h5>Paketverarbeitung<\/h5>\n<p style=\"text-align: justify;\">In einem Szenario, in dem ein einfacher Graph mehrere Datens\u00e4tze verarbeiten soll, muss gewartet werden, bis alle Datens\u00e4tze verarbeitet sind, bevor weitere Schritte unternommen werden. Der Python Operator st\u00f6\u00dft f\u00fcr jeden einzelnen Satz einen API-Aufruf an (durch den OpenAPI Client Operator). Der Schritt nach dem OpenAPI Client Operator wird dadurch f\u00fcr jede Zeile einzeln gestartet. Jetzt ist Kreativit\u00e4t gefragt, um sicherzustellen, dass alle Datens\u00e4tze verarbeitet und wieder gesammelt wurden, bevor weitere Schritte folgen.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<h5>Beispiele und Szenarien<\/h5>\n<p style=\"text-align: justify;\">Bei der Verwendung von GeoEnrichment API\u2018s, hat man am Ende ein Datenset, welches mit Geo-Daten und weiteren Informationen zu einem bestimmten Ort angereichert wurde. Daraus ergeben sich viele verschiedene Anwendungsbeispiele. Zum Beispiel die Nutzung der Karten-Funktionalit\u00e4t in der SAC oder Distanzberechnungen zwischen verschiedenen Stores.<\/p>\n<p style=\"text-align: justify;\">In der unteren Abbildung wurden zum Beispiel f\u00fcr die drei Orte L\u00e4ngen- und Breitengrade sowie der Typ des Ortes ausgelesen. Dadurch wird erm\u00f6glicht, Datens\u00e4tze granularer aufzubauen und zu filtern, sodass beispielsweise Ums\u00e4tze nach Typen reportet werden k\u00f6nnen.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2022\/02\/sapdi_8.png&#8220; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<p>Falls Sie Fragen zur Konzeption oder Umsetzung rund um das Thema SAP DI haben, sprechen Sie uns gerne an.<\/p>\n<p>Weitere Informationen:<\/p>\n<ul>\n<li>Blog SAP Data Intelligence Cloud \u2013 OpenAPI Client Basics: <a href=\"https:\/\/blogs.sap.com\/2021\/09\/13\/sap-data-intelligence-cloud-openapi-client-basics\/\" target=\"_blank\" rel=\"noopener\">https:\/\/blogs.sap.com\/2021\/09\/13\/sap-data-intelligence-cloud-openapi-client-basics\/<\/a><\/li>\n<li>Dokumentation OpenAPI Client: <a href=\"https:\/\/help.sap.com\/doc\/de49c012b53d476eae7af14497eac256\/2.4.latest\/en-US\/8a70738566e6466eb8d0f7d68be80247.html\" target=\"_blank\" rel=\"noopener\">https:\/\/help.sap.com\/doc\/de49c012b53d476eae7af14497eac256\/2.4.latest\/en-US\/8a70738566e6466eb8d0f7d68be80247.html<\/a><\/li>\n<\/ul>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; border_width_bottom=&#8220;1px&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<p><em>Fu\u00dfnoten<\/em><\/p>\n<p>[\/et_pb_text][et_pb_text module_id=&#8220;anker-sapdiblog&#8220; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<p>1: <a href=\"https:\/\/developers.google.com\/maps\/documentation\/places\/web-service\/details?hl=de\" target=\"_blank\" rel=\"noopener\">https:\/\/developers.google.com\/maps\/documentation\/places\/web-service\/details?hl=de<\/a> (<span style=\"color: #808080;\"><em><a href=\"https:\/\/www.bix-consulting.com\/sap-data-intelligence-geo-enrichment-per-api\/#anker-sapdiblog1\" style=\"color: #808080;\">zum Abschnitt<\/a><\/em><\/span>)<\/p>\n<p>2: Preise lassen sich erst nach Anmeldung auf der Google Cloud Plattform finden. Sie variieren je nach API und abgefragten Informationen. (<span style=\"color: #808080;\"><em><a href=\"https:\/\/www.bix-consulting.com\/sap-data-intelligence-geo-enrichment-per-api\/#anker-sapdiblog2\" style=\"color: #808080;\">zum Abschnitt<\/a><\/em><\/span>)<\/p>\n<p>3: <a href=\"https:\/\/developers.google.com\/maps\" target=\"_blank\" rel=\"noopener\">https:\/\/developers.google.com\/maps<\/a> (<span style=\"color: #808080;\"><em><a href=\"https:\/\/www.bix-consulting.com\/sap-data-intelligence-geo-enrichment-per-api\/#anker-sapdiblog2\" style=\"color: #808080;\">zum Abschnitt<\/a><\/em><\/span>)<\/p>\n<p>4: <a href=\"https:\/\/help.sap.com\/viewer\/b13b5722c8ff4bf9bb097251310031d0\/3.0.2\/en-US\/974be4fbb13a48eda16f7b061508eb59.html\" target=\"_blank\" rel=\"noopener\">https:\/\/help.sap.com\/viewer\/b13b5722c8ff4bf9bb097251310031d0\/3.0.2\/en-US\/974be4fbb13a48eda16f7b061508eb59.html<\/a> (<span style=\"color: #808080;\"><em><a href=\"https:\/\/www.bix-consulting.com\/sap-data-intelligence-geo-enrichment-per-api\/#anker-sapdiblog4\" style=\"color: #808080;\">zum Abschnitt<\/a><\/em><\/span>)<\/p>\n<p>5: <a href=\"https:\/\/help.sap.com\/viewer\/97fce0b6d93e490fadec7e7021e9016e\/Cloud\/en-US\/8a70738566e6466eb8d0f7d68be80247.html\" target=\"_blank\" rel=\"noopener\">https:\/\/help.sap.com\/viewer\/97fce0b6d93e490fadec7e7021e9016e\/Cloud\/en-US\/8a70738566e6466eb8d0f7d68be80247.html<\/a> (<span style=\"color: #808080;\"><em><a href=\"https:\/\/www.bix-consulting.com\/sap-data-intelligence-geo-enrichment-per-api\/#anker-sapdiblog5\" style=\"color: #808080;\">zum Abschnitt<\/a><\/em><\/span>)<\/p>\n<p>6: <a href=\"https:\/\/developer.what3words.com\/public-api\" target=\"_blank\" rel=\"noopener\">https:\/\/developer.what3words.com\/public-api<\/a> (<span style=\"color: #808080;\"><em><a href=\"https:\/\/www.bix-consulting.com\/sap-data-intelligence-geo-enrichment-per-api\/#anker-sapdiblog6\" style=\"color: #808080;\">zum Abschnitt<\/a><\/em><\/span>)<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; locked=&#8220;off&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; text_font=&#8220;Roboto|300|||||||&#8220; text_font_size=&#8220;30px&#8220; locked=&#8220;off&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<p style=\"text-align: center;\"><span style=\"color: #000000;\">Ansprechpartner<\/span><\/p>\n<p>[\/et_pb_text][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2021\/05\/Julius_RUND.jpg&#8220; title_text=&#8220;Julius_RUND&#8220; align=&#8220;center&#8220; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; transform_scale=&#8220;86%|86%&#8220; transform_translate=&#8220;-4px|22px&#8220; locked=&#8220;off&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; text_font=&#8220;Roboto|300|||||||&#8220; text_font_size=&#8220;16px&#8220; transform_translate=&#8220;1px|-33px&#8220; locked=&#8220;off&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<div class=\"elementor-element elementor-element-d95ca40 elementor-widget elementor-widget-heading\" data-id=\"d95ca40\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n<div class=\"elementor-widget-container\">\n<h3 class=\"elementor-heading-title elementor-size-default\" style=\"text-align: center;\">Julius Nordhues<\/h3>\n<\/div>\n<\/div>\n<div class=\"elementor-element elementor-element-c4afb6c elementor-widget elementor-widget-heading\" data-id=\"c4afb6c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n<div class=\"elementor-widget-container\">\n<p class=\"elementor-heading-title elementor-size-default\" style=\"text-align: center;\">Consultant<\/p>\n<\/div>\n<\/div>\n<p>[\/et_pb_text][et_pb_social_media_follow _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; text_orientation=&#8220;center&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_social_media_follow_network url=&#8220;mailto:julius.nordhues@bix-consulting.de?cc=vertrieb@bix-consulting.de&#8220; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; background_image=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2020\/08\/E-Mail.png&#8220; background_enable_image=&#8220;on&#8220; background_size=&#8220;contain&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220; follow_button=&#8220;off&#8220; url_new_window=&#8220;on&#8220;][\/et_pb_social_media_follow_network][\/et_pb_social_media_follow][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In diesem Blog wird die Verwendung des OpenAPI Clients in einem SAP Data Intelligence Datenfluss erkl\u00e4rt. Es sollen mit Hilfe von GoogleMaps Informationen zu einem bestimmten Ort (Point of Interest), z.B. Geokoordinaten, \u00d6ffnungszeiten, Websiten eingeholt werden. Es wird somit gezeigt, wie mit Hilfe von API\u2019s Daten um zus\u00e4tzliche Informationen angereichert werden k\u00f6nnen. Dieser Blog richtet [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":3506,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","_lmt_disableupdate":"","_lmt_disable":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"iawp_total_views":24,"footnotes":""},"categories":[18],"tags":[],"class_list":["post-3504","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"modified_by":"admin","_links":{"self":[{"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/posts\/3504","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/comments?post=3504"}],"version-history":[{"count":0,"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/posts\/3504\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/media\/3506"}],"wp:attachment":[{"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/media?parent=3504"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/categories?post=3504"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/tags?post=3504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}