Speichernsac3_Week_5_Transcript_de für später speichern\n00:00:05 Hallo, alle und herzlichen Glückwunsch zum openSAP-Kurs SAP Analytics Cloud for Planning.\nMein Name ist Christoph Tillmann, ich bin Produktmanager für SAP Analytics Cloud Planning\nund werde Ihnen in dieser Woche spezielle Funktionen im Analytics Designer im\n00:00:23 Kontext der Planung vorstellen. Wir werden Ihnen eine kurze Einführung in das Office 365\nAdd-In für Microsoft Excel geben und Ihnen einige Hinweise zum Design von\n00:00:40 Das erste Kapitel behandelt die Grundlagen von SAP Analytics Cloud Analytics Designer im\nHinblick auf die Planung spezifischer Funktionen im Detail. Sehen wir uns die Agenda für\ndieses Kapitel an. Wir beginnen mit dem Gesamtüberblick über SAP Analytics Cloud. Wo der\nAnalytics Designer passt, werden wir einige Aspekte\n00:01:03 des Analysedesigners hervorheben, wie er die Implementierung Ihrer Geschäftsanforderungen\nnutzen und unterstützen wird, und kurz die Designumgebung erläutern, damit Sie mit dem\nAnalytics Designer beginnen können.\n00:01:18 Im Vergleich zur Story gibt es einige Analytics-Designspezifische Widgets, die wir Ihnen\nvorstellen und Ihnen zeigen werden, wie Sie diese in Ihrer Planungsanwendung verwenden.\n00:01:33 Darüber hinaus werden wir kurz auf benutzerdefinierte Widgets und einige Anwendungsfälle\nfür sie eingehen und wie diese tatsächlich implementiert werden können.\n00:01:46 Außerdem werden wir darüber sprechen, wie Sie Ihre Anwendung flexibel gestalten können.\nDer Analysedesigner unterstützt dies.\n00:01:59 Ein wichtiger Aspekt schließlich ist die Frage, wie das Story- und Anwendungsdesign integriert\nwerden kann. Wie Sie bereits wissen, kombiniert SAP Analytics Cloud die BI-Planung und -\nPrognose und führt alle in einer Story für Ihre Geschäftsanwender zusammen.\n00:02:25 Und da die Story gut für die Rollen von Business-Analysten und Finanzanalysten geeignet ist\nund möglicherweise der angesehene Geschäftsbereich gehört, haben Sie möglicherweise\nauch umfassendere Anforderungen an maßgeschneiderte Unternehmensanwendungen.\n00:02:40 Für diese Anforderung haben wir Analyseanwendungen von SAP Analytics Cloud eingeführt,\ndie die Benutzerfreundlichkeit von Story-Funktionen mit der Erweiterung der Scripting-\n00:02:56 Analyseanwendungen von SAP Analytics Cloud bieten zusätzliche Standard-Widgets, um Ihre\nGeschäftsanforderungen zu erfüllen. Darüber hinaus können Sie benutzerdefinierte Widgets\nfür bestimmte Anwendungsfälle implementieren.\n00:03:09 Die Design-Zeit-Umgebung für Analyseanwendungen von SAP Analytics Cloud wird als\nAnalysedesigner bezeichnet. Wie in der Story enthält die Analytic Application selbst keine\nTransaktionsdaten, sondern stellt eine Verbindung zu einem oder mehreren SAC-Modellen\nher, wie Sie es\n00:03:27 auch aus der Story kennen. Wie in Storys können Sie natürlich Widgets im Grafikbereich, der\neine Verbindung herstellt, mit Live-Datenmodellen kombinieren und Datenmodelle importieren.\n00:03:36 In unseren Beispielen verwenden wir Akquisitionsmodelle, um auch die planungsspezifischen\nFunktionen im Analysedesigner zu demonstrieren. Eine Analytic Application kann wie ein\nStory-Objekt behandelt werden, z. B. als Arbeitsdatei, natürlich auch im Kalender, oder als\nAsset im SAP Analytics Hub\n00:03:57 veröffentlicht werden. Sehen wir uns daher die Möglichkeiten und Vorteile der Verwendung\ndes Analysedesigners für die Entwicklung funktionsreicher Planungsanwendungen genauer\n00:04:12 Mit dem Analysedesigner in SAP Analytics Cloud können Sie also skalierbare,\nbenutzerfreundliche und maßgeschneiderte Planungsanwendungen erstellen. Um alle\nGeschäftsanforderungen Ihres Endbenutzers zu erfüllen.\n00:04:32 Es erweitert das Konzept von Planungsmodellen und Storys mit umfassenden Scripting-\nFunktionen, mit denen Sie leistungsstarke Planungsanwendungen mit hervorragender\nBenutzerfreundlichkeit für Ihre Planungsanwender bereitstellen können.\n00:04:48 Verwenden Sie Scripting, um z. B. Formulare zu erstellen, um Plandaten einzugeben, z.B. in\nder Personaleinsatzplanung, um sicherzustellen, dass Sie Ihre Mitarbeiter in positiven\nganzzahligen Werten planen.\n00:05:02 Aus geschäftlicher Sicht ist es nicht sinnvoll, wie -4,7 Einstellungen in einem Monat zu planen,\nder im aktuellen Jahr bereits vergangen ist. Daher möchten Sie diese Arten von Validierungen\nauch implementieren, um Ihren Anwendungsbenutzer durch den Planungsprozess zu führen.\n00:05:20 Ein weiterer wichtiger Anwendungsfall für Analyseanwendungen ist die Automatisierung der\nErstellung neuer Planungsmitglieder, z. B. für die Investitions- oder Projektplanung.\n00:05:30 Mit Analyseanwendungen können Sie sicherstellen, dass nur gültige Werte auf Ihre\nElementeigenschaften angewendet werden, wie z. B. Investitionsart, strategisch, operativ. Es\ngibt eine unbegrenzte Anzahl von Anwendungsfällen, um Validierungen anzuwenden, sodass\n00:05:48 genauen Geschäftsanforderungen zu implementieren. Ein weiterer wichtiger Aspekt besteht\nalso darin, Ihren Planungsbenutzer innerhalb der Anwendung so weit wie möglich zu führen.\nDadurch wird der Schulungsaufwand reduziert,\n00:06:03 die Datenqualität sichergestellt, die Datenqualität geplant und die Akzeptanz der Anwendung\ndurch Ihr Unternehmen verbessert. Bei großen Unternehmensplanungslösungen müssen Sie\ndiese in der Regel mit allen Arten von Lösungen und Bildschirmgrößen ausführen, und es\nwerden immer mehr Anwendungsfälle\n00:06:23 entwickelt, die auch die Unterstützung mobiler Geräte zum Ausdruck bringen. Mit dem\nAnalysedesigner können Sie nicht nur responsive Layouts implementieren, sondern auch\nspezifische Logik, wenn Ihre Anwendung auf einem mobilen Gerät ausgeführt\n00:06:39 wird. Sie können z. B. Widgets neu anordnen und ihre Größe ändern oder zusätzliche Logik\nfür Ereignisse wie das Schütteln oder Drehen des Geräts implementieren.\n00:06:58 Betrachten wir nun die Design-Zeit-Umgebung in SAP Analytics Cloud Analytics Designer.\nUnd es ähnelt in gewisser Weise dem Bearbeitungs- und Anzeigemodus in der Story, aber\nhier wird zwischen der Design-Zeit und der spezifischen Laufzeit unterschieden.\n00:07:20 Gegebenenfalls wird das Konzept des hinzugefügten Modus von Storys auch im\nAnalysedesigner wiederverwendet, z.B. im Builder-Bereich, um den initialen Navigationsstatus\nvon Diagramm und Tabelle zu definieren.\n00:07:33 Wenn Sie in der oberen rechten Ecke auf die Schaltfläche Designer klicken, wird auch der\nBuilder- und Styling-Bereich geöffnet, wie Sie es aus der Story kennen. Außerdem ähnelt der\nGrafikbereich der Grafikseite in der Story, auf der Sie die Präzision hinzufügen und die Größe\nder Widgets per Drag&Drop ändern können.\n00:07:57 Es ist so, wie Sie sehen, was Sie erhalten, und wo Sie die Widgets und deren Größe und\nReihenfolge usw. platzieren, können Sie dies standardmäßig definieren. Später können Sie es\ndurch Scripting erweitern, um dies zu automatisieren oder eine spezifische Logik für die\nNeuanordnung dieser Widgets zu erstellen.\n00:08:21 Sie unterscheidet sich hier etwas vom Story-Konzept, da es nur einen Grafikbereich gibt,\nwohingegen Sie in der Story standardmäßig zusätzliche Grafikseiten in einem\nBearbeitungsmodus hinzufügen können.\n00:08:32 Dies wird in Analyseanwendungen unterschiedlich gehandhabt und zeigt auch die\nunterschiedlichen Konzepte von beiden. Daher können Sie hier in Analyseanwendungen\nspezifische Widgets, in diesem Fall ein Registerkarten-Widget, hinzufügen, um auch mehrere\nSeiten innerhalb einer Anwendung zu\n00:08:57 implementieren. Auf der linken Seite des Analysedesigners sehen Sie die so genannte\n00:09:06 Dies ist einzigartig für das Analytics-Designer-Konzept und listet alle verfügbaren Objekte in\nIhrem Grafikbereich auf. Popups, Formulare, Tabellen, Diagramme sowie zusätzliche\nSkriptobjekte und die technischen Objekte.\n00:09:22 Sie ist nur zur Design-Zeit sichtbar und listet nicht alle Objekte in Ihrer Anwendung auf,\nsondern gibt auch an, welche Ereignisse verfügbar sind und welche tatsächlich für jedes\nObjekt implementiert sind.\n00:09:40 Die Gliederung hat eine hierarchische Anzeige und unterteilt sich in Objekte im Grafikbereich\nin den verschiedenen Dialogfenstern. Bei der Arbeit mit dem Analytics Designer sind zwei\nwichtige Aspekte zu beachten: Die Sortierung der Objekte in der Gliederung hat hier eine\nBedeutung, wenn es darum geht,\n00:09:59 Objekte im Vordergrund oder im Hintergrund zu steuern, und auch, wenn Sie die\nTabulatortaste verwenden, wird die Reihenfolge durch die Sortierreihenfolge in der Gliederung\n00:10:12 Eine weitere nützliche Funktion der Gliederung ist das Ausblenden bestimmter Objekte. Sie\nmüssen berücksichtigen, dass diese nur während der Design-Zeit ausgeblendet werden. Die\nLaufzeit wird von dieser Einstellung nicht beeinflusst.\n00:10:27 Dadurch können Sie Ihren Grafikbereich freisetzen und anspruchsvollere Anwendungen mit\nverschiedenen Objektebenen während der Design-Zeit verarbeiten, sodass Sie auf diese\nzugreifen und Objekte ausblenden können, mit denen Sie derzeit nicht arbeiten.\n00:10:42 Dies ist daher für den Anwendungsdesigner komfortabler. Die Gliederung erstellt also nicht nur\nalle Komponenten, die Sie im Grafikbereich sehen, sondern auch alle technischen\nKomponenten, die für Ihre Anwendung benötigt\n00:11:02 werden. Auf diese Weise können Sie alle Objekte an einer Stelle anzeigen, und im\nAllgemeinen werden Sie in jeder fortschrittlicheren, komplexeren Anwendung\n00:11:16 Skriptvariablen und Skriptobjekte verwenden. In diesem Kurs wird die technische Komponente\nder sogenannten Planungsmodelle erläutert und genauer demonstriert, insbesondere die\nverfügbaren Skript-APIs zum\n00:11:35 Ändern von Planungsmodellelementen zur Laufzeit Ihrer Anwendung. Die Prüfung der\nReferenzen der einzelnen Objekte und Syntaxfehler in Ihrer Anwendung wird unten in der\nDesigner-Umgebung angezeigt. Sie können sie öffnen, indem Sie in der\n00:12:00 Menüleiste auf dieses Info-Symbol klicken. Sie hilft Ihnen, alle Syntaxfehler in Ihrer\nAnwendung zu finden und aufzulisten, und zeigt eine Referenzliste für jedes Objekt an. Wie\nbereits erwähnt, gibt die Gliederung auch an, ob Ereignisse verfügbar sind und welche davon\nfür ein bestimmtes Objekt implementiert sind.\n00:12:31 Wenn Sie das Ereignis auswählen, wird eine andere Registerkarte geöffnet, und Sie sehen\nEreignis sehen, sehen Sie auch oben immer eine kurze Erläuterung des Ereignisses, wenn es\naufgerufen wird, wie der Rückgabewert ist,\n00:12:59 was z.B. die notwendigen Argumente sind, die Sie beim Aufruf oder bei der Implementierung\neiner Methode selbst übergeben müssen. Dies alles wird in der Kopfanzeige angezeigt.\n00:13:17 Um nun ein Widget zu Ihrem Grafikbereich hinzuzufügen, gehen Sie wie in der Story vor,\nindem Sie auf das Pluszeichen in der Menüleiste klicken und das Widget auswählen, das Sie\nIhrem Grafikbereich hinzufügen möchten. Anschließend platzieren Sie es, ordnen es an,\nändern die Größe und alles.\n00:13:37 Sie definieren die initialen Filter im Designer-Bereich. Sie ändern das Layout so, wie Sie es\naus der Story kennen.\n00:13:48 Zusätzlich zu den Widgets, die Sie möglicherweise bereits aus der Story kennen, stehen Ihnen\nim Analytics Designer eine Reihe von Standard-Widgets zur Verfügung, z.B. eine Dropdown-\nListe, eine Schaltfläche, ein Schieberegler-Widget, das nicht direkt an eine bestimmte Funktion\ngebunden ist. Es ist jedoch ein freies Widget, und Sie können\n00:14:10 entscheiden, wie Sie es verwenden und wie Sie die Werte eingeben, entweder statisch zur\nDesign-Zeit oder später dynamisch zur Laufzeit. Wenn wir spezifischere Anwendungsfälle\nhaben, in denen diese Standard-Widgets nicht ausreichen, können Sie auch sogenannte\nbenutzerdefinierte Widgets implementieren. Dort\n00:14:33 können Sie frei definieren, in Ordnung sein, was Ihr Widget tun soll und wie es sich verhält,\nund Sie können in diesem Widget eine komplexere Logik implementieren. Wir gehen nicht\nnäher auf die Erstellung dieser benutzerdefinierten Widgets ein, aber Sie können die Startseite\nvon SAP Analytics Cloud auschecken und zum Lernabschnitt\n00:14:59 wechseln. Sie finden viele Blogs und Referenzlinks, um zu erläutern, wie diese\nbenutzerdefinierten Widgets verwendet werden und insbesondere wie Sie diese\nbenutzerdefinierten Widgets erstellen können.\n00:15:16 Um sicherzustellen, dass Ihre Anwendung auf jeder Auflösung und auf jedem Gerät\nordnungsgemäß verwendet werden kann, verfügt der Analysedesigner über eine integrierte\nVorschau und Standardeinstellungen für Responsive Design.\n00:15:29 Dies ist insbesondere bei mobilen Anwendungen hilfreich. Damit Analytic Applications auf\nmobilen Geräten ausgeführt werden können, müssen Sie in den Anwendungseinstellungen die\nOption für die Unterstützung mobiler Geräte\n00:15:50 aktivieren. Außerdem müssen Sie sicherstellen, dass die mobile Anwendung im\nLaufzeitparameter mode=embed aufgerufen wird.\n00:15:56 Daher gibt es im Analysedesigner verschiedene Modi, wie Sie sie aufrufen können.\nInsbesondere für mobile Anwendungen ist es wichtig, diesen Modus einzubetten. Der\nLaufzeitmodus wird durch die URL der Anwendung definiert.\n00:16:15 Außerdem können Sie eine Logik implementieren, die zu Beginn prüft, sodass im\nonInitialisierungs-Ereignis der Anwendung geprüft wird, ob sie im eingebetteten Modus\naufgerufen wurde. Wenn dies nicht der Fall ist, können Sie einen Redirect implementieren, der\nimmer sicherstellt, dass Ihre Anwendung auf mobilen Geräten im\n00:16:36 Einbettungsmodus aufgerufen wird. Weitere Details zu den spezifischen Anforderungen finden\nSie im verlinkten Hilfedokument hier, um sicherzustellen, dass Ihre mobile Anwendung\n00:16:53 ausgeführt wird, um zu sehen, was Mindestanforderungen sind, welche Supportgeräte,\nunterstützten Browser usw. vorhanden sind. Ein wichtiger Aspekt bei der Erstellung von\nAnalyseanwendungen ist schließlich, dass Sie nicht alles in einer Anwendung ablegen\nmüssen. So haben Sie beispielsweise für\n00:17:18 alle Anwendungsfälle die vollständige Logik für Ihren gesamten Planungszyklus. Dies erhöht\nnatürlich die Laufzeit- und Wartungskomplexität.\n00:17:31 Und Sie können es mit dem Konzept in der Story vergleichen. Sie würden nicht alle\nAnwendungsfälle in einer Story zusammenfassen. Sie können sie nach Registerkarten oder\nSeiten in der Story aufteilen, aber Sie teilen sie auch immer nach verschiedenen Storys auf,\nabhängig von den Personas und dem\n00:17:48 Prozess im Anwendungsfall. Das Gleiche tun Sie auch bei Analytic Applications.\n00:17:55 Darüber hinaus können Sie Analyseanwendungen mit Ihrer Story kombinieren und umgekehrt,\nsodass Sie eine Analyseanwendung aus einer Story heraus aufrufen können, z.B. in einer\nTabelle über einen Hyperlink, und Filterwerte in der URL als sogenannte URL-Parameter in\nIhrer Story übergeben.\n00:18:18 Um diese URL-Parameter in Ihrer Analytic Application zu definieren, gibt es diesen Bereich\nvon Skriptvariablen. Und für jede Skriptvariable können Sie hier dieses Ankreuzfeld aktivieren,\num anzugeben, dass Sie diese Variable als Parameter exponieren möchten.\n00:18:38 Wenn Sie dieses Präfix hinzufügen, klicken Sie einfach auf dieses Infofeld, um weitere Details\nzur genauen Syntax in der URL anzuzeigen. Anschließend können Sie diese Filtervariablen\nübergeben und werden dann im folgenden Skript in Ihrer Analyseanwendung verwendet.\n00:18:58 Hier finden Sie auch den Hilfe-Link, der insbesondere anhand der URL-Parameter näher\nerläutert, was zu beachten ist. Gehen Sie also dorthin und suchen Sie auch nach weiteren\n00:19:16 Schauen wir uns diese Themen, die wir soeben erläutert haben, im System an. Hier befinden\nwir uns also in einer Analytic Application, und ich habe dem Grafikbereich jetzt einen\nsogenannten Tabstrip hinzugefügt, der mit den verschiedenen\n00:19:34 Seiten in einer Story vergleichbar ist. Und Sie können bereits hier in der Design-Zeit-\nUmgebung navigieren und mit diesen verschiedenen Widgets interagieren.\n00:19:48 Um alle Widgets anzuzeigen, öffnen wir diese so genannte Gliederung hier auf der linken\nSeite. Hier sehen wir alle Objekte, die wir dieser Anwendung hinzugefügt haben.\n00:20:01 Um die Definition all dieser Widgets oder z.B. Filter und die spezifischen Werte wie in der\nStory anzuzeigen, kann ich hier den Designer-Bereich öffnen, und ich habe bereits eine\nEinstellung für die gesamte Grafikseite, auf der ich, wie auch in der Story, definieren möchte,\nob ich das Raster anzeigen möchte, möchte ich die\n00:20:25 verschiedenen Objekte an das Raster ausrichten usw. Diese Einstellungen werden also\nvorgenommen, wenn ich alle Objekte neu anordne und sortiere.\n00:20:36 Wenn ich hier beispielsweise ein Standard-Widget der Analytic Application auswähle, wie\nunsere Dropdown-Box, haben wir natürlich auch das Styling-Panel mit mehreren Dingen, die\nwir hier definieren können.\n00:20:52 Auch im Builder-Bereich sieht dies nun etwas anders aus, da wir dies nicht direkt an ein\nDatenmodell binden, aber wir können sagen, OK, möchten wir eine manuelle Eingabe\nvornehmen, z.B. eine statische Liste, die wir auswählen können, oder möchten sie an eine\nSkriptvariable binden, oder in Live-Fällen, um Variablen zu modellieren usw.\n00:21:19 Hier sehen wir also die verschiedenen Standard-Widgets der Analyseanwendungen, und hier\nfinden Sie drei Beispiele für benutzerdefinierte Widgets. Ein benutzerdefiniertes Widget ist also\neine sogenannte Datumsauswahl oder Datumsbereichsauswahl, in der Sie hier ein Datum\noder einen Datumsbereich auswählen\n00:21:41 können. Sie können verschiedene Formate, Stile usw. haben und dann das ausgewählte\nautomatische Vervollständigung, bei dem es sich um ein benutzerdefiniertes Widget handelt,\ndas Ihre Liste mit Einträgen\n00:22:00 durchläuft. Wenn Sie mit der Eingabe beginnen, um danach zu suchen, ist die Liste bereits\nvorgefiltert und Sie müssen sie nur auswählen. Möglicherweise möchten Sie auch solche\nWidgets als Benachrichtigungsservice oder als Exportservice verwenden.\n00:22:18 Und dies ist das Widget, das keine Interaktion mit dem Endbenutzer im Frontend hat. Es\nhandelt sich jedoch nur um ein technisches Objekt, und Sie steuern es vollständig mithilfe von\n00:22:32 In diesem Fall ist ein Benachrichtigungsservice ein Service, bei dem Sie eine E-Mail über\neinen Cloud-Service senden können. Und natürlich gibt es keine Interaktion mit dem\n00:22:45 An einem bestimmten Punkt Ihrer Anwendung haben Sie jedoch implementiert, dass diese E-\nMail an eine bestimmte Benutzergruppe gesendet wird. Wie ich bereits erwähnt habe, können\nSie, um alle Skriptfehler in der Anwendung anzuzeigen, z. B. Syntaxfehler, diese Infobox hier\nöffnen, wo Sie alle Fehler und auch\n00:23:14 die Referenzliste sehen. Dies hilft Ihnen lediglich sicherzustellen, dass alles syntaktisch\n00:23:24 Wenn Sie beispielsweise IDs ändern und Ihre Anwendungen aus Wartungsgründen neu\nbestellen, ist es sehr hilfreich, diese Referenzliste zu erhalten, um sicherzustellen, dass Sie\nbeim Ändern Ihrer Anwendung nichts verpassen.\n00:23:51 Jetzt der letzte Teil. Wenn wir erneut nach der Einstellung suchen, nach den responsiven\nSeiten, dann haben Sie hier auf dem Canvas die zentrale Einstellung, um zu sagen, in\nOrdnung, ich möchte.\n00:24:11 Der Grafikbereich passt zum Gerät, sodass der Grafikbereich immer die spezifische Breite und\nHöhe aufweist. Darüber hinaus können Sie für jedes Widget auch festlegen, ob Sie eine feste\nBreite und Höhe haben oder ob Sie es automatisch festlegen möchten. Dies bedeutet, dass\n00:24:35 Widget zur Laufzeit je nach Bildgröße positionieren und die Größe automatisch anpassen wird.\nMit dieser Einstellung können Sie also auch eine reaktionsfähige Anwendung sicherstellen.\n00:24:50 Um Ihre Anwendung auf mobilen Geräten zu aktivieren, müssen Sie schließlich in den\nAnwendungsdetails die Einstellung hier vornehmen, um zu sagen, dass Sie die Unterstützung\nfür mobile Geräte benötigen, und Sie sollten dieses Infofeld auch auschecken, da für\nbestimmte Widgets, die noch nicht auf mobilen Geräten unterstützt\n00:25:21 werden, möglicherweise noch einige Einschränkungen bestehen. Okay, das ist es für die erste\n00:25:30 Vielen Dank, dass Sie sich anschauen und nächste Woche mehr über planungsspezifische\nAPIs mit dem Analytics Designer erfahren. Danke, herzlich.\nWeek 5 Unit 2\n00:00:05 Hallo, alle und herzlichen Glückwunsch zum openSAP-Kurs zur Planung von SAP Analytics\nCloud. In dieser Sitzung zeigen wir Ihnen, wie Sie einige APIs im Kontext der Planung\n00:00:18 Hier haben wir vier Blöcke davon vorbereitet. Daher zeigen wir Ihnen zunächst, wie Sie das\nVersionsverwaltungs-API im Analysedesigner verwenden.\n00:00:27 Anschließend können Sie auch die Tabelle, die Planung aktivieren oder deaktivieren. Wir\nzeigen Ihnen, was Sie beachten müssen, wenn Sie die API zum Festlegen der\nBenutzereingabe und das\n00:00:38 Senden verwenden, und wie Sie das Ereignis für den Auslöser der Datenaktion verwenden.\nBeginnen wir also mit der Versionsverwaltung.\n00:00:46 Hier können Sie bestimmte öffentliche oder private Versionen für das Planungsobjekt Ihres\nTabellen-Widgets lesen, und wir können auch alle privaten oder alle öffentlichen Versionen\n00:01:02 eine Schleife darauf ausführen und Folgeaktionen darauf ausführen. Sie können\nbeispielsweise auch eine vorhandene Version kopieren und dann neue Versionen und neue\n00:01:17 Versionen anlegen. Hier können Sie sie auch in der Liste der Methoden für eine bestimmte\nVersion der möglichen Aktionen sehen. Sie können sie beispielsweise auch löschen oder die\n00:01:32 sehen und diese dann weiterverarbeiten. Je nach Versionsart sehen Sie verschiedene\nMethoden, sodass Sie z.B. bei einer öffentlichen Version diese\n00:01:44 Methode von isDirty() sehen, die eigentlich darstellt, ob Ihre Version geändert wurde. Sind also\nDaten vorhanden, die noch nicht veröffentlicht wurden?\n00:01:56 Und der Rückgabetyp dieser Meldung ist boolesch. Wenn sie also "true" zurückgibt, wissen\nSie, dass es noch unveröffentlichte Daten gibt.\n00:02:05 Wenn "false" zurückgegeben wird, ist alles in Ordnung, und die Daten wurden veröffentlicht.\nSehen wir uns beispielsweise die Methode copy() genauer an. Hier müssen Sie einen neuen\n00:02:23 angeben, Sie müssen die Planungskopieroption und auch die Versionskategorie angeben. Um\nzu sehen, was für jede dieser Methoden erforderlich ist, empfehlen wir, die Code Completion\n00:02:38 möglich zu verwenden. Sie können sie auch hier mit dem Steuerelement und dem Platz auf\nIhrer Tastatur aufrufen, und Sie sehen die\n00:02:49 vordefinierten Konstanten, z.B. für die Planungskategorie, mit der Sie dann diese Codezeile\n00:02:58 Beachten Sie, dass sich das Widget beim Aufrufen der API, z.B. bei einer Kopierversion, in\ndiesem Fall wie das Tabellen-Widget wie in der Story verhält. Daher wird der Filter aus Ihrer\nVersion angepasst, jedoch\n00:03:15 nur während der Sitzung. Wenn Sie also die Anwendung verlassen und zurückkehren, wird\nder Standardfilter Ihrer Tabelle\n00:03:24 angewendet. Hier müssen Sie also erwägen, es entweder für alle Elemente festzulegen, oder\nSie führen das\n00:03:32 Initialisierungsereignis aus, um zu prüfen, ob Sie z.B. private Versionen mit Ihrer Eigentümer-\nID haben, und dann Ihren Versionsfilter zur Laufzeit anpassen und anpassen.\n00:03:44 Es ist auch möglich, Versionen zu löschen. Hier sollten Sie auch vorab prüfen, ob die Version\ntatsächlich vorhanden ist. Wenn sie nicht vorhanden\n00:03:53 ist, zeigen Sie dem Endbenutzer eine entsprechende Meldung an. Je nach Versionstyp kann\nauch Publisher As, Publish und Revert genannt werden.\n00:04:02 So können wir beispielsweise für eine private Version festlegen, dass wir sie als öffentliche\nVersion veröffentlichen möchten.\n00:04:10 Daher müssen wir hier auch den Namen dieser öffentlichen Version und die Kategorie\nangeben. In einer öffentlichen Version können Sie entweder festlegen, dass Daten\nveröffentlicht oder die Daten\n00:04:24 zurückgesetzt werden. Das ist ziemlich einfach.\n00:04:27 Auch hier sollten Sie vorab prüfen, ob die Version tatsächlich vorhanden ist. Wenn sie nicht\nvorhanden ist, zeigen Sie eine Meldung an den Endbenutzer an.\n00:04:40 Im zweiten Teil geht es um das Umschalten einer tabellarischen Planung. Hier stellen wir auch\nein API bereit, das Sie zur Laufzeit in der ersten Zeile hier in diesem Beispiel\n00:04:54 umschalten können. Sie sehen, dass wir zuerst diese .setEnabled()-Methode aufrufen, sodass\nhier ein boolescher Wert true oder false erforderlich ist, und dass wir sogar den aktuellen\nZustand der Tabelle mit\n00:05:09 der Methode .isEnabled() lesen können, die einen wahr oder falsch zurückgibt. Und durch das\nAusrufezeichen am Anfang können wir diesen Wert zurückgeben.\n00:05:21 Es gibt also eine Quelltextzeile, mit der Sie immer in den Planungsmodus wechseln können,\nder aktiviert und deaktiviert ist.\n00:05:33 Darüber hinaus können Sie zur besseren Übersichtlichkeit zusätzliche Funktionen wie hier\nhinzufügen, die eine Drucktaste zum Wechseln von der aktivierten oder nicht aktivierten\n00:05:47 und der Text der Drucktaste wird in Abhängigkeit vom Planungsmodus der Tabelle aktualisiert.\nDie erste ist also, dass Sie in den Änderungsmodus wechseln. Anschließend ändern wir den\n00:06:08 Drucktaste in "In Anzeigemodus wechseln" usw. Ein wichtiges API für die Planung von\nAnwendungen ist natürlich die Methode .setUserInput() und Submit.\n00:06:24 Mit dieser können wir Daten über ein API in eine Tabellenzelle eingeben. Wir müssen nur eine\nAuswahl bereitstellen, also eine einzelne Auswahl einer einzelnen Tabellenzelle und\n00:06:36 natürlich den Wert, den wir hier hinzufügen möchten, und Sie müssen berücksichtigen, dass\ndie Benutzereingabe nur die Daten für die Tabelle bereitstellt, Sie jedoch noch nicht die\n00:06:47 sehen. Sie müssen auch .submitData() aufrufen, der dann alles verarbeitet.\n00:06:53 Es ist etwas vergleichbar mit dem Massendatenerfassungsmodus der Tabelle selbst und\nverarbeitet sie anschließend.\n00:07:01 Sie haben also auch hier zwei Methoden. Und was auch bei Verwendung der API\n.setUserInput sehr wichtig ist, ist, dass Sie den genauen\n00:07:11 Selektionsbereich berücksichtigen müssen. Daher müssen alle Dimensionen, die verfügbar\nsind oder Ihre Tabelle definieren, auch im Selektionsobjekt\n00:07:22 enthalten sein. Außerdem müssen Sie berücksichtigen, dass Sie nur Daten in Tabellenzellen\nschreiben können, die\n00:07:29 tatsächlich sichtbar sind. Das heißt, wenn Sie es nicht manuell direkt in die Tabelle eingeben\nkonnten, können Sie dies auch mit dem\n00:07:39 API tun. Dies entspricht dem Design und stellt die Konsistenz Ihrer Daten sicher, da Konzepte\nwie Datensperren und\n00:07:49 Berechtigungen usw. bei der Verwendung der API berücksichtigt werden. Und Sie als\nAnwendungsentwickler müssen sich nicht noch einmal darum kümmern.\n00:08:03 Daher habe ich eine kurze Checkliste für Sie zusammengestellt. Natürlich muss die Tabelle\nauch im Planungsmodus aktiviert sein. Die Auswahl muss zu Ihrer Drill-Ebene und zur Struktur\nder Zeilen und\n00:08:16 Spalten passen. Außerdem müssen Sie die Methode .submitData() nach .setUserInput\naufrufen, um die Änderungen in Ihrer\n00:08:27 Tabelle zu sehen. Zwei Dinge sollten Sie hier beachten: Sie sollten den Planungsmodus nicht\nzwischen .setUserInput() und\n00:08:35 .submitData() umschalten, da dies zu einem Detailverlust führt, da er noch nicht verarbeitet\n00:08:41 Eine zusätzliche Tabellenaktualisierung in der Quelltextzeile ist nicht erforderlich. Das\nfunktioniert wie, Sie wissen es auch aus der Story, es wird wie die anderen Widgets direkt\n00:08:55 regeneriert. Schließlich wird beim Auslöser der Datenaktion ein Ereignis bereitgestellt, das\n00:09:05 Mit diesem Ereignis können Sie beispielsweise vorab prüfen, ob eine Version geändert wurde\noder nicht. Wenn es sich nicht geändert hat, ist es möglicherweise nicht sinnvoll, die\n00:09:18 Außerdem können Sie z.B. auch in einer globalen Skriptvariablen hinterlegen, ob die\nDatenaktion tatsächlich ausgelöst wurde.\n00:09:26 Daher gibt dieses onBeforeExecute-Ereignis standardmäßig auch einen booleschen Wert\nzurück. Es ist wahr, wenn Sie sie nicht implementieren, werden die Daten und die Aktion\nRückgabewert entweder wahr oder falsch ist.\n00:09:49 Wie in diesem Beispiel prüfen wir also zuerst, ob die öffentliche Version bearbeitet wurde.\nWenn ja, möchten wir auch die Information behalten, dass die Datenaktion ausgelöst wird.\n00:10:04 Und schließlich geben wir den Code "true" zurück, sodass die Daten ausgeführt werden. So\nwerden beispielsweise zusätzliche Dialogfenster angezeigt, wie sie in der Datenaktion definiert\n00:10:17 wurden. Schauen wir uns nun im System an, wie dies implementiert ist.\n00:10:21 Wir beginnen also, aus unserer aktuellen Version eine neue private Version zu erstellen.\nDaher kann ich hier auf „myFC aus Ist anlegen“ klicken.\n00:10:31 Dadurch wird nun zunächst die Istversion in eine neue private Version mit dem Namen\nmyForecast kopiert und auch die Tabelle aktualisiert, in der der Quelltext angezeigt wird.\n00:10:53 Daher prüfen wir zunächst, ob myForecast noch nicht vorhanden ist, und rufen dann die\nKopierfunktion auf. Wenn sie bereits vorhanden ist, wird die Meldung angezeigt, dass die\nVersion bereits vorhanden ist.\n00:11:10 Wenn ich also erneut hier klicke, sehen Sie, dass diese Version bereits vorhanden ist, und die\nFehlermeldung wird angezeigt.\n00:11:17 Sie können die Prognoseversion auch löschen. Wie bereits erwähnt, sollten wir prüfen, ob sie\ntatsächlich vorhanden ist, und dann die Löschmethode\n00:11:32 aufrufen. Wenn wir die private Version, yeah, behalten, können wir die Daten genauso ändern,\nwie Sie sie aus der\n00:11:41 Story kennen. Es handelt sich also um dasselbe Widget, dasselbe Konzept.\n00:11:46 Und wenn uns die Daten aus unserer privaten Version gefällt, können wir daraus auch eine\nöffentliche Version erstellen und diese als Prognoseversion veröffentlichen, also vom Typ\n00:12:00 Sie wird jetzt ausgeführt. Sie sehen auch, dass die Tabelle direkt aktualisiert wird und die\nprivate Version von myForecast jetzt eine\n00:12:09 öffentliche Version namens Forecast ist. Wir können dies auch im Versionsverwaltungsbereich\n00:12:15 Das ist jetzt diese Version. Wir können die Daten hier direkt in der Tabelle ändern und von hier\naus die Datenänderungen entweder\n00:12:30 zurücksetzen oder veröffentlichen. Wenn wir also fortfahren, sehen Sie, wie diese Daten auf\nden Initialwert zurückgesetzt werden.\n00:12:44 Dasselbe Problem tritt bei der Veröffentlichung auf, in der diese Daten nun im Datenmodell\n00:12:55 Schauen wir uns auch an, wie dies implementiert wird. Zunächst einmal der Publisher As.\n00:13:01 Wir prüfen, ob die private Version vorhanden ist, und rufen dann die Methode Veröffentlichen\nals auf, in der wir den Namen und die Planungskategorie angeben.\n00:13:15 Beim Zurücksetzen und Veröffentlichen ist dies sehr einfach. Auch hier prüfen wir, ob sie\ntatsächlich vorhanden ist. Dann nennen wir die Rücknahme oder die\n00:13:22 Veröffentlichung. Wenn sie nicht vorhanden ist, wird diese Meldung angezeigt.\n00:13:30 Um hier Daten eingeben zu können, muss, wie ich bereits erwähnt habe, natürlich die\nTabellenplanung aktiviert sein, und wir stellen auch ein API bereit, damit Sie den\nTabellenmodus zur Laufzeit wechseln\n00:13:44 können. Mit dieser Drucktaste können Sie also auch in den Anzeigemodus wechseln und\nsehen, wie sie nun\n00:13:50 ausgegraut ist, und ich kann nichts mehr ändern. Wenn ich erneut klicke, um in den\nBearbeitungsmodus zu wechseln, ist die Planung jetzt aktiviert.\n00:13:59 Außerdem stellen Sie fest, dass sich der Text der Drucktaste entsprechend ändert. Sehen Sie\nsich an, wie dies implementiert wird.\n00:14:08 Tatsächlich die Umschaltung der Tabelle. Wenn wir also die Tabelle hier ansehen und den\nDesigner-Bereich öffnen, können Sie diese Option, Planungsfähig, hier mit der Skript-API\n00:14:27 Tatsächlich geschieht dies in dieser ersten Zeile. Dort lesen wir also den aktuellen Status.\nDann setzen wir ihn mit dem Ausrufezeichen zurück und geben diesen Wert in der Methode\n00:14:41 Aus Gründen der Übersichtlichkeit für den Endbenutzer können wir dann auch den Text der\nDrucktaste zur Laufzeit ändern, sodass er weiß, was passieren wird, wenn Sie die Drucktaste\n00:14:57 Da die Tabelle nun im Planungsmodus aktiviert ist, können Daten auch nicht direkt in die\nTabelle, sondern in ein separates Eingabefeld oder ein separates Formular in einem\nDialogfenster eingegeben werden. Sie\n00:15:12 möchten dies jedoch entscheiden. Die Informationen, die Sie benötigen, sind die Auswahl der\n00:15:20 Wie hier beispielsweise habe ich in die Zelle geklickt, und Sie können sehen, wie die Auswahl\n00:15:26 Dies dient nun der Übersichtlichkeit, da Sie verfolgen können, was passiert. Wir sehen also,\ndass wir uns jetzt in der Prognose für 2020 auf dem Abgangskonto befinden.\n00:15:39 Lassen Sie uns das andere auswählen. Hier sehen Sie, wie sich nun die Einstellung ändert.\n00:15:43 Wenn Sie einen Wert eingeben und z.B. Plandaten eingeben, werden nun die beiden\nMethoden ausgeführt. Es handelt sich also um .setUserInput und um .submitData(), sodass\n00:15:58 verarbeitet wird und Sie die Änderungen hier in der Tabelle sehen. Schauen wir uns nun an,\nwie dies implementiert wird.\n00:16:08 Hier wird auf der Drucktaste Plandaten eingeben zunächst die erste Position der Selektion\ngelesen, sodass die eine Zelle, die Sie in der Tabelle ausgewählt haben, dann .setUserInput\n00:16:25 der Wert der ersten Zellenauswahl zusammen mit dem Wert aus dem Dateneingabefeld an die\nTabelle übergeben wird.\n00:16:35 In einem zweiten Schritt wird auch die Methode .submitData() genannt. Im ersten Teil geht es\nnun um den Auslöser der Datenaktion.\n00:16:52 Daher können wir hier auch das Standard-Widget verwenden, das Sie auch aus der Story\nkennen, und es in einen Grafikbereich, in eine Analyseanwendung einfügen und eine\nDatenaktion von hier aus aufrufen.\n00:17:08 Sehen wir uns an, wie dies hier im Analytics Designer erfolgt. Hier sehen Sie also den\nAuslöser der Datenaktion.\n00:17:16 Sie können alles im Builder-Bereich definieren, so wie Sie es auch in der Story kennen. Wir\nhaben die Parameterabfrage usw.\n00:17:28 Darüber hinaus gibt es ein Ereignis, das onBeforeExecute() des Datenaktionsauslösers heißt.\nIn diesem Fall können Sie beispielsweise prüfen, ob die Prognoseversion geändert wurde.\n00:17:43 Wenn dies der Fall ist, wird auch die Datenaktion aufgerufen. Andernfalls wird dem\nEndbenutzer eine Informationsmeldung ausgegeben.\n00:17:53 Sehen wir uns nun an, wie dies ausgeführt wird. Wenn ich also hier auf Berechnen klicke und\nfeststelle, dass die Prognoseversion geändert wurde,\n00:18:04 wird die Datenaktion ausgeführt. Wie in der Datenaktion definiert, wird die\nEingabeaufforderung angezeigt. Hier ist die\n00:18:12 Prognoseversion vorausgewählt. Und das ist gut, wir können es ausführen, und die Daten\n00:18:20 Sobald dies erfolgt ist, veröffentlichen wir die Prognoseversion, um Ihnen auch umgekehrt zu\nzeigen. Wenn also nichts geändert wurde und die Prognoseversion veröffentlicht wurde und\n00:18:36 gesamte Datenaktion ausführen möchte, sehen Sie, dass sie nicht geändert wurde. Daher ist\ndie Prognoseversion entweder nicht vorhanden oder hat sich nicht geändert.\n00:18:52 Daher ist es nicht sinnvoll, die Daten und Aktionen auszuführen. Okay, also für die Session auf\n00:19:02 Vielen Dank, dass Sie nächste Woche anschauen und sehen. Auf Wiedersehen.\n00:00:06 Hallo, alle und herzlichen Glückwunsch zum openSAP-Kurs für die Planung von SAP Analytics\nCloud in Woche 5, jetzt für Kapitel 3, in dem wir Ihnen einige APIs für die erweiterte Planung\n00:00:18 Analysedesigner vorstellen werden. Dieser ist in zwei Blöcke aufgeteilt.\n00:00:22 Die erste Komponente ist die technische Komponente „Planungsmodelle“, in der gezeigt wird,\nwie Sie sie für die Methoden zum Abrufen der Elemente verwenden und insbesondere Ihre\nElemente im Modell pflegen, in\n00:00:37 dem Sie die Dimension mit den Methoden zum Erstellen, Aktualisieren und Löschen ändern\nkönnen, um einen\n00:00:51 entsprechenden Datenbereich Ihres Planungsmodells zu öffnen oder zu sperren. Wir beginnen\nalso mit der technischen Komponente Planungsmodelle. Diese finden Sie auf der linken Seite\n00:01:02 und in der Gliederung. Wenn Sie nach unten zum Bereich der Planungsmodelle blättern,\nkönnen Sie dort definieren, dass Sie ein neues Planungsmodell hinzufügen möchten.\n00:01:13 Wenn Sie diese hinzufügen und aus dem Dialog auswählen, verfügen Sie über weitere APIs\nfür dieses technische Objekt.\n00:01:22 Grundsätzlich haben Sie die Möglichkeit, weitere Elementinformationen wie Eigenschafts- und\n00:01:31 Sie können auch einen Offset für den Abruf definieren und auch definieren und einschränken,\nsodass Sie nicht alle Elemente abrufen, sondern beispielsweise nur die ersten 20 Elemente\nanzeigen möchten, wenn Sie ihn in\n00:01:44 eine Dropdown-Box laden möchten. Wenn das Element, das Sie auswählen möchten, noch\nnicht in dieser Liste enthalten ist, können Sie\n00:01:52 angeben, dass Sie mehr laden möchten usw. Oder Sie können Paging realisieren, z.B. mit\ndem Seitenbuch-Widget, und dann nur die Elemente laden,\n00:02:03 die Sie tatsächlich anzeigen würden. Das zweite große Thema für die technische Komponente\nvon Planungsmodellen besteht darin, dass Sie Ihre\n00:02:13 Elemente innerhalb des Modells ändern können. In einer öffentlichen oder privaten Dimension\nkönnen Sie also tatsächlich neue Elemente erstellen, die\n00:02:23 Elemente aktualisieren und auch löschen. Beim Anlegen einer Aktualisierung können Sie auch\ndie Werte für Ihre Eigenschaften sowie die Zuordnung zu\n00:02:36 den Hierarchien angeben. Wie bereits erwähnt, können Sie die Methode .getMember() für\n00:02:45 verwenden, um ein bestimmtes Element zusammen mit seinen Eigenschaftswerten, der\nHierarchie und den Lese-/Schreibinformationen abzurufen.\n00:02:56 Wenn Sie eine Liste von Elementen abrufen möchten, können Sie die Methode .getMembers()\naufrufen. Dort geben Sie auch die Dimensions-ID an. Sie können die Hierarchie-ID, die\nGrenze und die Anzahl der\n00:03:12 abzurufenden Elemente angeben. Dann natürlich auch das Offset und, was auch sehr nützlich\nist, können Sie die übergeordnete ID dieses\n00:03:22 Elements angeben. In einer übergeordneten/untergeordneten Hierarchie können Sie also\nfestlegen, dass Sie nur alle Elemente\n00:03:30 unter einem bestimmten Knoten abrufen möchten. Um alle Syntaxdetails dieser Methode\nanzuzeigen, prüfen Sie auch die SAP-Analytics-Cloud-API-Referenz.\n00:03:42 Dort werden alle Optionen ausführlich erläutert, die Ihnen zur Verfügung stehen, wie Sie die\nSyntax verwenden. Wenn diese Methode erweitert wird, werden auch die Optionen dort\n00:03:57 In der technischen Komponente Planungsmodelle können Sie dann auch neue Elemente mit\nder Methode .createMembers() anlegen.\n00:04:06 Sie erfordert die Dimensions-ID und ein Elementobjekt. So rufen Sie dieses Elementobjekt ab.\n00:04:14 Entweder definieren Sie es zur Laufzeit in Ihrem Skript und müssen dann einen Cast\numgeben, in dem Sie sagen, dass diese Definition nun vom Typ PlanningModelMember ist.\n00:04:26 Wenn Sie dies definiert haben, sehen Sie auf den Folien, wie Sie dies zuerst tun.\nAnschließend können Sie die verschiedenen Eigenschaftswerte ändern.\n00:04:37 Dies sind also die Eigenschaften für diese Dimension, und Sie können den Wert dafür\ndefinieren. Anschließend führen Sie die Methode .createMembers() aus, in der Sie die\nDimensions-ID definieren und das\n00:04:51 Projektelementobjekt übergeben. Die Methode von .createMembers() löst keine automatische\nAktualisierung aus, wie Sie sie\n00:05:00 normalerweise aus den anderen Methoden kennen, sondern Sie müssen dies manuell tun,\nindem Sie die Aktualisierungsdaten in der Anwendung aufrufen.\n00:05:10 Beachten Sie auch hier, dass beim Anlegen dieses neuen Elements zunächst alle\nEigenschaften angegeben werden müssen.\n00:05:22 Wenn Sie sie zu einem späteren Zeitpunkt aktualisieren, müssen Sie nicht alle Eigenschaften\nangeben. Für die initiale Erstellung ist es jedoch erforderlich, auch wenn sie leer sind.\n00:05:34 Neben der Methode .createMembers() können Sie auch Ihre Elemente aktualisieren. Wie hier\nmüssen Sie auch hier die Dimensions-ID und natürlich das Elementobjekt angeben.\n00:05:47 Wenn es sich nicht um eine initiale Erstellung, sondern um eine Aktualisierung handelt,\nkönnen Sie einfach zuerst eine .getMember()-Methode verwenden, um das aktuelle Objekt\n00:05:57 abzurufen und dann die verschiedenen Eigenschaftswerte zu ändern. Hier muss es nicht alle\n00:06:03 Sie können auch einzelne Eigenschaften ändern. Anschließend führen Sie die Methode\n.updateMembers() erneut aus.\n00:06:11 Und natürlich müssen Sie die manuelle Aktualisierung aufrufen, um sie auch in Ihrer Tabelle\nanzuzeigen. Was hier sehr komfortabel ist und in einer Zeile 9 im Screenshot gezeigt wird, ist,\ndass Sie auch die\n00:06:25 Methode .updateMembers() und den Rückgabewert verwenden können, um dann basierend\nauf dem Rückgabewert eine Folgeaktion anzugeben. In diesem Fall, wenn wir das Element\naktualisiert haben, möchten\n00:06:39 wir es auch einer Liste hinzufügen. Dies wird nur ausgeführt, wenn die Aktualisierung\n00:06:51 Schließlich können wir auch ein Planungsmodellelement löschen, also ein Element in der\nDimension. Selbstverständlich werden sowohl die Dimensions-ID als auch die Element-ID\n00:07:07 Und wie in einer Story oder wenn Sie das Planungsmodellelement im Modell löschen\nmöchten, müssen Sie sicherstellen, dass für dieses Element keine Bewegungsdaten verfügbar\n00:07:25 Andernfalls erhalten Sie eine Fehlermeldung, die besagt, dass Sie ein Element mit\nBewegungsdaten nicht löschen können.\n00:07:32 Dies gilt sowohl für öffentliche Versionen und Bewegungsdaten als auch für private Versionen.\nAuch hier, da diese Methode asynchron aufgerufen wird, kann es vorkommen, dass die\n00:07:50 Millisekunden dauert. Wenn Sie beispielsweise Hierarchiezuordnungen haben, müssen Sie\nIhre Tabellenaktualisierung tatsächlich manuell auslösen, im Wesentlichen immer mit\n00:08:06 Methode .reshData() in der Anwendung aufrufen, um die Änderungen in Ihrer Tabelle zu\nsehen. Der zweite Block, den wir in dieser Sitzung neben der Planungsmodellkomponente\nabdecken möchten, ist das\n00:08:24 Datensperr-API. Wir haben also das Konzept der Datensperre in SAP Analytics Cloud, in dem\nSie im Modell einen bestimmten\n00:08:34 Bereich von Dimensionen definieren, in dem Sie Ihre Daten sperren können. Sie können diese\nDatensperre in diesem Bereich auch über ein API entweder auf offen oder gesperrt setzen.\n00:08:50 Sie können auch den aktuellen Status abrufen. Dann hätten Sie offen, gemischt,\neingeschränkt und gesperrt.\n00:08:56 Dies ist spezifisch für Ihre Berechtigungen, und Sie erhalten einen gemischten Status, wenn\nSie in diesem Bereich eine Mischung aus offenen und gesperrten Zuständen haben.\n00:09:10 Was Sie übergeben müssen, wenn Sie diese Methode aufrufen möchten, ist, dass Sie auch\neine Selektion angeben und den gewünschten Sperrzustand definieren müssen.\n00:09:23 Für das Selektionsobjekt ist es besonders wichtig, dass Sie hier die Auswahl der Tabellenzelle\nund nicht den Kontext Ihres Datensperrbereichs berücksichtigen.\n00:09:38 Dies kann etwas verwirrend sein, hilft aber tatsächlich, die Konsistenz im gesamten Modell zu\ngewährleisten, da Sie dann nur Datensperren ändern können, auf die Sie auch über die\n00:09:54 können, und nicht nur einen beliebigen Datenbereich in Ihrem Modell mithilfe der API. Um\ndieses API verwenden zu können, müssen Sie also die Daten aktivieren, die auf dem Modell\n00:10:08 Sie müssen auch den Umfang definieren, sodass die treibenden Dimensionen in unserem\nBeispiel die Version, das Datum und eine zusätzliche Dimension namens Projekt haben, bei\nder wir sagen, dass dies der\n00:10:22 Bereich für die Datensperre für uns ist. Und wenn wir nun das API betrachten, müssten Sie,\nwie ich bereits erwähnte, das Selektionsobjekt zusammen\n00:10:33 mit dem neuen Zustand übergeben, und hier wird es zurückgestellt. Wenn wir also die\nAuswahl genauer betrachten, die übergeben werden muss, dann möchten wir die Datensperre\nfür ein bestimmtes Projekt ändern,\n00:10:49 z.B. Project006, dann müssen wir das Selektionsobjekt übergeben, und zwar nicht nur die\nDatensperre für ein bestimmtes Projekt, sondern, abhängig von der Kennzahl, die Sie in der\nentsprechenden Kennzahl sehen\n00:11:06 können, auch wenn Sie die Kennzahl nicht sehen können. Okay: Die API verhält sich so wie\nwenn Sie mit der rechten Maustaste auf die Zelle geklickt haben, zur\n00:11:17 Verwaltung von Datensperren wechseln und sie dann von dort abrufen. Anschließend können\nSie Ihre Datensperre setzen.\n00:11:25 Das unterscheidet sich also etwas, aber wie ich bereits sagte, gewährleistet es die Konsistenz\nund berücksichtigt dann z.B. auch Berechtigungen usw., damit Sie dieses API verwenden\nkönnen, ohne den\n00:11:39 Datensperrbereich zu ändern oder ihn an einer Stelle zu lesen, an der Sie tatsächlich keine\nBerechtigung haben oder wo es nicht sinnvoll ist.\n00:11:49 Betrachten wir also eine Anwendung, und ich werde Ihnen zeigen, wie die verschiedenen\nMethoden verwendet werden.\n00:11:59 Zunächst haben wir also eine Anwendung, in der wir Projekte planen können, eine\nProjektdimension mit einer ID und einigen Eigenschaften wie Startdatum, Enddatum, Kunde\n00:12:17 In den Spalten befinden sich die Kontostruktur sowie die Datumsdimension, die hier alle\nzugeklappt ist, und wir können später in Ordnung sehen, wie die Daten in dieser Tabelle\ngebucht werden, wenn wir ein neues\n00:12:34 Projekt anlegen. Zuerst können wir hier auf Neues Projekt klicken, woraufhin ein Dialogfenster\n00:12:41 Und Sie sehen sofort, dass wir bereits eine Projekt-ID abgeleitet haben. Um Ihnen zu zeigen,\nwie dies geschieht, verwenden wir die Methode .getMembers().\n00:12:52 Deshalb zeige ich Ihnen hier im Coding. Wenn Sie auf "Neues Projekt" klicken, legen Sie\nzunächst eine Projektmitgliedervariable an und wandeln\n00:13:05 sie in Type.PlanningModelMember um. Von hier aus wird direkt ein Skriptobjekt namens\nMemberUtils mit der Methode .getProjectID aufgerufen.\n00:13:19 Sie finden sie hier in der Gliederung, sie heißt MemberUtils getProjectId. Und hier in der ersten\nZeile sehen wir, dass wir die Variable der Projekt-ID anlegen und das\n00:13:34 Planungsmodellelement Business_Service_Planning nennen. Das ist das, was wir hier als\nPlanungsmodell definiert haben, das eigentlich unser Planungsmodell im Dialog\n00:13:46 ist. Daher können Sie es auch hier sehen. Sie heißt Business_Service_Planning.\n00:13:53 Wir könnten ihm einen anderen Namen geben, aber aus Gründen der Einfachheit überlassen\nwir ihn dem Namen, den wir auch in den Dateien definiert haben.\n00:14:02 Aus diesem Business_Service_Planning-Modell werden also alle Elemente des\ndimensionierten Projekts gelesen. Wir rufen die Länge des Ergebnis-Arrays ab, übergeben es\nan einen String und geben dann je nach\n00:14:20 Ergebnis entweder zwei führende Nullen oder nur eine führende Null hinzu und geben die\nneue Projekt-ID zurück.\n00:14:30 Es handelt sich also um eine Methode, die wir ständig wiederverwenden können. Wenn wir\nnun die neue Projektmethode aufrufen, wird diese Projekt-ID abgerufen.\n00:14:39 Sie wird der Zeichenfolge Projekt hinzugefügt. Wir lassen die Beschreibung leer, wir legen\nfest, dass es Eigenschaften geben wird, und dann definieren wir\n00:14:50 auch alle unterschiedlichen Eigenschaftswerte. Also gehen wir zurück zu unserer Anwendung,\nund jetzt haben wir die Projekt-ID Project003 abgerufen. Nun\n00:15:02 können wir ihr einen Namen geben, der die Beschreibung ist, z.B. sac3, und weitere Details\nzum Projekt, wie z. B. openSAP Kurs sac3.\n00:15:14 Wir definieren einige weitere Werte oder z.B. auch einen Datumsbereich, den wir für die\nBerechnung benötigen. Er ist hier kein Fokus der Sitzung. Tatsächlich im Hintergrund wird\n00:15:32 Arbeitskalender gelesen, und die Tage in diesem Zeitraum werden jetzt zusammen mit dem\n00:15:43 Und wir sehen den fakturierbaren Gesamtwert. Und was passiert nun, wenn ich die Drucktaste\n00:15:50 Das Mitglied wird aktualisiert, da wir bereits auf der Drucktaste Neues Projekt das Mitglied\ntechnisch im Hintergrund angelegt haben.\n00:16:01 Hier sehen wir, dass wir das Element bereits auf der Drucktaste für ein neues Projekt angelegt\nhaben, sodass es dort vorhanden ist, aber wir haben die Tabelle noch nicht und alles\naktualisiert, sodass wir\n00:16:15 jetzt bereits Werte für die Kontodimension eingeben können und die Eigenschaftswerte\nanschließend nur noch geändert werden.\n00:16:24 Klicken Sie hier auf „Anlegen“. Das neue Mitglied wird jetzt angelegt, und die Werte werden\nhier für das Projekt sac3 gefüllt. Die in der Tabelle zu buchenden Werte werden angezeigt.\n00:16:39 Und schauen wir uns an, wie dies im Quelltext erfolgt. Für das neue Projekt wurde hier also\nein Dialogfenster oder Formular zum Anlegen des neuen Projekts\n00:16:58 aufgerufen. Tatsächlich ist dies hier der Fall, und beim onButtonClick()-Ereignis wird beim\nAnlegen des neuen\n00:17:06 Projekts hier angezeigt, dass alle Eigenschaftswerte aktualisiert werden und dann nur das\nMitglied im Modell aktualisiert wird.\n00:17:16 Wir führen einige Berechnungen durch, schreiben sie zurück usw. Wir senden eine\nAnwendungsnachricht, in der wir sagen, dass das Projekt erfolgreich angelegt wurde usw.\n00:17:27 Abschließend schließen Sie das Dialogfenster. Hier zeigen wir nun die Methode, die für das\nAnlegen neuer Elemente und auch für die Aktualisierung\n00:17:41 verwendet werden soll. Natürlich können wir hier auch Projekte löschen.\n00:17:47 Es ist wichtig, dass zuerst auch alle Bewegungsdaten gelöscht werden, bevor das Löschen\n00:17:56 Und in diesem Fall wird ein Popup implementiert, das bereits in Ordnung ist, welches dieser\nProjekte über keine Bewegungsdaten verfügt?\n00:18:08 So kann ich hier z.B. Projekt drei auswählen, und jetzt sind keine Bewegungsdaten\nvorhanden. Sie sehen, dass die Daten jetzt auch im Planungsmodell gelöscht wurden.\n00:18:23 Schauen wir uns dazu den Quelltext an. Das ist auch einfach.\n00:18:31 Wenn Sie also für den Arbeitsbereich "Projekt löschen" wählen, wird abgeleitet, in Ordnung\nsein, welche Projekte über Bewegungsdaten verfügen usw. Wenn dies der Fall ist, wird\nschließlich das Dialogfenster zum\n00:18:49 Löschen des Projekts geöffnet, das eigentlich hier angezeigt wird. Wir haben die Liste der\nProjekte, die zur Laufzeit ausgewählt werden sollen, ausgefüllt. Wenn Sie sie\n00:19:02 anschließend ausführen, stellen Sie fest, dass hier wieder die Methode .deleteMembers() für\ndie Projektdimension aufgerufen wird.\n00:19:11 Und wir löschen alle Projekte, die wir in der Liste ausgewählt haben. Daher können Sie auch\nnicht nur ein Element, sondern mehrere Elemente auswählen.\n00:19:23 Abschließend möchten wir Ihnen zeigen, wie Sie Daten-APIs sperren und entsperren. Daher\nhaben wir hier eine Drucktaste in dieser kleinen Anwendung implementiert, über die Sie\n00:19:39 klicken können. Dann wird die Datensperre für das entsprechende Projekt hier gesetzt. Sie\nkönnen die Datensperre auch erzwingen, damit sie hier in der Tabelle angezeigt wird.\n00:19:52 Wenn ich erneut hier klicke, werden die Daten ebenfalls entsperrt. Ich kann dies mit\nadministrativen Rechten tun, die ich auch zum Vergleich entsperren kann.\n00:20:06 Hier geschieht nun genauso wie beim Kontextmenü, indem Sie auf Datensperren verwalten\nklicken. Dann wurde der Kontext abgeleitet, in diesem Fall für das Projekt Servicing Machine,\nund ich kann ihn auf\n00:20:27 gesperrt setzen. Wenn Sie das Bild schließen, stellen Sie fest, dass dieser Hinweis gesperrt\n00:20:33 Dasselbe kann ich hier über das API abrufen. Daher brauche ich das Dialogfenster hier nicht,\num den neuen Status manuell auszuwählen. Aber ich kann während der Anwendung ableiten,\nworin der Workflow besteht?\n00:20:49 Wir können uns also auch ansehen, wie dies umgesetzt wird. Hier steht also die Drucktaste\nzum Sperren und Entsperren von Daten zur Verfügung.\n00:20:59 Sehen wir uns das Skript an. Und hier wird zunächst die Auswahl der Tabelle geprüft. Daher\nhaben wir sie hier und dann prüfen wir,\n00:21:11 ob wir auch einen Wert für Projekt und Datum haben. Wenn dies der Fall ist, prüfen wir den\n00:21:18 Daher wird der aktuelle Status abgerufen, wenn er gesperrt, gemischt oder eingeschränkt ist.\nWenn dies der Fall ist, setzen wir den Status auf Datensperrstatus offen.\n00:21:30 Wenn eine dieser Anforderungen nicht erfüllt oder offen ist, wird der Datensperrstatus auf\n00:21:43 Wenn bei der Selektion ein Fehler auftritt oder das Projekt oder Datum in jedem Fall fehlt, wird\nlediglich eine Warnmeldung angezeigt, die besagt, dass zuerst die Datenzelle ausgewählt\nwerden muss, damit die Logik\n00:22:00 weiß, aus welchem Datensperrbereich der Status geändert werden soll. Dies ist für den Kurs\nfür Woche fünf der Fall, Kapitel 3 für erweiterte Planungs-APIs.\n00:22:16 Vielen Dank für Ihre Aufmerksamkeit und sehen Sie sich nächste Woche an. Auf\nWeek 5 Unit 4\n00:00:05 Hallo und herzlich willkommen zum openSAP-Kurs zur Planung von SAP Analytics Cloud. Bei\ndieser Sitzung handelt es sich um eine Demositzung für drei Analyseanwendungen, eine für\n00:00:19 die zweite für das Projekt und die dritte für die Aktivitätsplanung. Die Anwendung für die\nPersonaleinsatzplanung soll demonstrieren, wie Sie die Basisplanungs-APIs\n00:00:30 verwenden, z.B. im Tabellen-Widget aktiviert setzen oder Benutzereingaben in verschiedenen\n00:00:38 Dort werden wir in einer Minute ins Detail gehen. Der zweite Abschnitt behandelt die\nProjektplanung, insbesondere die Verwendung der erweiterten\n00:00:49 Planungs-APIs wie das Anlegen, Aktualisieren und Löschen neuer Elemente in der Dimension.\nAußerdem wird gezeigt, wie die Datensperrfunktion für bestimmte Projektmitglieder verwendet\n00:01:05 Das dritte bei der Aktivitätsplanung ist ein weiteres Beispiel dafür, wie Sie den\nAnalysedesigner nutzen können, um Anwendungen zu erstellen, die Ihre Benutzer durch einen\nPlanungsprozess führen, bei dem wir\n00:01:19 integrierte Validierungen haben, bei denen wir eine integrierte Kurzanimation haben. Im\nHintergrund wird die Tabelle auf der Grundlage Ihrer Eingaben, die Sie im Filterbild\neingegeben haben, ordnungsgemäß\n00:01:32 gefiltert. In dieser Anwendung für die Personaleinsatzplanung möchte ich Ihnen zeigen, wie\nwir einige der\n00:01:40 grundlegenden Planungs-APIs verwendet haben, z.B. die Einstellung einer Tabelle für die\nPlanung aktiviert, wahr oder falsch sowie die festgelegte Benutzereingabe.\n00:01:53 Hier sehen Sie z.B., dass die Tabelle derzeit nicht planungsfähig ist. Um hier in den\nplanungsfähigen Modus zu wechseln, können Sie hier auf das Bleistiftsymbol klicken.\n00:02:06 In diesem Fall wird nun ein Dialogfenster mit einer Warnung angezeigt, die besagt, dass Sie\neine bestimmte Jobfamilie auswählen müssen.\n00:02:15 Daher haben wir hier bereits eine Validierung eingebaut, die uns auffordert, hier nur eine der\neinzelnen Jobfamilien auszuwählen. Daher kann ich das hier in der Auswahlknopfgruppe tun.\n00:02:31 Wenn ich nun erneut auf diesen Bleistift klicke, sehen Sie, wie die Tabelle nun in den\nplanungsfähigen Modus wechselt.\n00:02:42 Außerdem wird sich die Formatierung ändern. Auch hier wurde das Symbol vom Bleistift in\ndieses Augensymbol geändert. Wenn ich erneut hier klicke, wird die Plantafel wieder\n00:03:01 Das ist also das erste API, das zweite, wenn wir in Ordnung sagen, wir geben hier nicht\nunsere Planwerte direkt in die Tabelle ein, sondern verwenden z.B. ein Eingabeformular.\n00:03:13 In diesem Fall können Sie das Dialogfenster Einstellungen planen öffnen. Außerdem sehen\nSie hier im Hintergrund, dass die Tabelle wieder planungsfähig ist, sodass wir in Kürze\n00:03:25 den Befehl zum Setzen der Benutzereingabe und zum erneuten Senden ausführen können.\nDaher plane ich hier einfach einen beliebigen Wert, vielleicht im Oktober, für einen neuen\nStart. Wenn ich\n00:03:41 jetzt hier auf OK klicke, lösen wir im Hintergrund das API für die festgelegte Benutzereingabe\nsowie das Abgabe-API aus.\n00:03:51 Auch hier sehen Sie, dass die Tabelle nicht mehr planungsfähig ist. Daher wird auch hier das\nAPI dafür ausgelöst, sodass wir das Formular nur verwenden, um hier Daten\n00:04:05 einzugeben, aber nicht manuell. Lassen Sie mich also zeigen, wie dies zur Design-Zeit\n00:04:18 Hier befinden wir uns also in der Design-Zeit der Anwendung, und hier kann ich, wenn ich es\nauswähle, das ausgeführte Skript überprüfen.\n00:04:30 Zunächst stellen Sie fest, dass diese Warnmeldung ausgegeben wird, wenn keine Jobfamilie\nausgewählt ist oder die Jobfamilie mit dem Schlüssel JF_TOTAL und der Jobfamiliensumme.\n00:04:44 Andernfalls wird die Tabelle auf "Planungsfähig" gesetzt. Außerdem sehen wir hier in diesen\nbeiden Zeilen, wie wir nun das View-Symbol anzeigen und das\n00:04:59 Bearbeitungssymbol ausblenden, also dieses Bleistiftsymbol. Dies ist im Grunde die\nMöglichkeit, hier den Planungsmodus für die Tabelle zu wechseln.\n00:05:12 Wir können uns jetzt auch ansehen, was der Quelltext für das für das andere Symbol ist, damit\nwir dies auch zur Laufzeit überprüfen können.\n00:05:22 Angenommen, wir haben das Bearbeitungssymbol ausgeblendet und das Sichtsymbol\n00:05:34 Das ist also auch ganz einfach. Die Tabelle wird in den planungsfähigen Modus "false"\n00:05:43 Auch hier ist ein Symbol ausgeblendet, das andere wird nun angezeigt. Der zweite Teil, den\nich angezeigt habe, befindet sich nun im Dialogfenster für die Planeinstellungen.\n00:06:02 Wenn wir also hier auf diese Drucktaste klicken, wird erneut geprüft, ob eine einzelne\nJobfamilie ausgewählt wurde.\n00:06:13 Dann öffnen wir auch das Dialogfenster mit den neuen Einstellungen. Außerdem können Sie\nhier sehen, wie Sie wieder in den Planungsmodus der Tabelle wechseln.\n00:06:26 Damit die festgelegte Benutzereingabe anschließend tatsächlich ausgeführt werden kann,\nsobald Sie sich in diesem Dialogfenster befinden, wird das Dialogfenster hier nach unten\n00:06:35 Es sieht also so aus. Und beim Ereignis onButtonClick für das Popup können wir sehen, was\n00:06:48 Wir lesen also wie die verschiedenen Werte im Formular und so weiter. Außerdem haben wir\nhier unser Selektionsobjekt mit den verschiedenen Dimensionen der Tabelle, also die\n00:07:00 Kontodimension mit dem Konto für den Personalbestand. Wir haben die Bewegungsdimension\nfür die Einstellungen und eine Zeitdimension.\n00:07:14 Dann lesen wir die Option, wenn es sich um einen absoluten Wert handelt oder wenn Sie\nzuerst die Daten in der bereits geplanten Zelle lesen müssen. Anschließend können wir\n00:07:30 Angenommen, wir behalten die Überschreiboption als absoluten Wert bei. Dann führen wir die\nsetUserInput direkt für die spezifische Auswahl für monthHire zusammen mit der\n00:07:44 Anzahl der Mitarbeiter aus. Die Anzahl der Mitarbeiter ergibt sich aus diesem Schieberegler\naus dem Schieberegler-Widget.\n00:07:54 Wie Sie wissen, müssen Sie anschließend .submitData() aufrufen, damit Sie die Auswirkungen\nin der Tabelle sehen.\n00:08:05 Anschließend wird die Tabelle abhängig vom vorherigen Status wieder in den Modus\n"Planungsfähig", "Wahr" oder "Falsch" gesetzt.\n00:08:14 Und schließlich schließen wir dieses Dialogfenster. In dieser Anwendung haben Sie also\ngesehen, wie wir die beiden grundlegenden Planungs-APIs für die\n00:08:28 Planungsaktivierung und die festgelegte Benutzereingabe verwenden können. Eine weitere,\ndie wir hier implementiert haben, ist, dass Sie die Daten auch zurücksetzen und\n00:08:38 veröffentlichen können. Dies ist hier fest so programmiert, dass wir eine bestimmte öffentliche\n00:08:49 Dieser wird also hier abgerufen. Und dann haben wir auch diese Art von Overlay-Panel.\n00:08:55 Ich werde Ihnen in der Demo in einer Minute zeigen, wie das aussieht. Wie hier: Wir werden\ndann zeigen und fragen, ob Sie tatsächlich eine bestimmte Datenaktion ausgeführt oder\n00:09:09 ausgeführt haben. Wenn Sie ja, ist das in Ordnung. Hier gibt es also wieder eine Workflow-\nValidierung für den Endbenutzer.\n00:09:19 Schließlich stoßen wir eine Veröffentlichung der Daten für die öffentliche Version\nWachstumsstrategie an. Lassen Sie mich Ihnen also noch einmal zeigen, wie das im System\n00:09:38 Angenommen, wir haben die Planung hier durchgeführt, wir führen auch die Datenaktion aus,\ndie wir jetzt als aktualisierte Zahlen bis Dezember 2020 anzeigen.\n00:10:01 Und ich klicke hier auf Veröffentlichen und sage, ja, ich habe die Datenaktion ausgeführt,\ndaher möchte ich die Daten veröffentlichen.\n00:10:10 Außerdem sehen Sie, wie das API nun die Veröffentlichung ausgeführt hat. Okay, die zweite\nDemo-Anwendung hier haben wir kurz für die erweiterten Planungs-APIs gesehen. Hier\n00:10:30 wir Stammdaten in unserem Datenmodell anlegen. In diesem Beispiel legen wir neue Projekte\nan, daher kann ich hier erneut ein Dialogfenster zum Anlegen\n00:10:41 eines neuen Projekts anzeigen. Die Projektnummer wird automatisch abgeleitet.\n00:10:46 Ich kann hier einen Projektnamen wie für openSAP und einige weitere Details zum Projekt\neingeben. Wählen wir hier einige Eigenschaften aus, z. B. ein Start- und Enddatum, die wir\n00:11:06 Arbeitskalender lesen, also in einem separaten Modell. Wie viele Tage liegen eigentlich in\n00:11:18 Wir planen hier einen Tagessatz, und dann sehen wir bereits den Vorschauwert des gesamten\n00:11:26 Nun geschieht dies im Hintergrund über die Drucktaste zum Anlegen. Daher wurde nun das\nAPI zum Anlegen von Elementen sowie das API zum Aktualisieren von Elementen ausgeführt.\n00:11:42 Das Projekt wird nun angelegt. Wir sehen auch, dass wir hier bereits über die\n00:11:48 Daher wurde auch das API zum Festlegen der Benutzereingabe sowie das API zum Absenden\nausgeführt. Natürlich können wir auch das Projekt löschen, wodurch das API zum Löschen\nvon Mitgliedern in unserem Modell\n00:12:06 ausgelöst wird. Wenn ich hier klicke, sehen Sie, dass die Liste der Projekte, die Sie löschen\nmöchten, leer ist.\n00:12:15 Aus diesem Grund wird in diesem Beispiel implementiert, dass der Quelltext prüft, ob\nBewegungsdaten für das spezifische Projekt geschrieben wurden.\n00:12:29 Wenn ich also die Bewegungsdaten herausnehme, weil Sie technisch nur Elemente ohne\nBewegungsdaten im multidimensionalen Modell löschen können.\n00:12:42 Wenn Sie nun erneut "Projekt löschen" wählen, sehen Sie, dass das Projekt 003 tatsächlich\n00:12:51 Lassen Sie uns dies also ausführen, und Sie werden sehen, dass es verschwunden ist. Die\nzweiten erweiterten Planungs-APIs dienen der Datensperre.\n00:13:07 Wie Sie bereits gesehen haben, können wir das Datensperrkonzept selbst aus der Tabelle\n00:13:19 Lassen Sie mich hier mit diesem Benutzer die Datensperren erzwingen. Sie sehen, dass die\nDaten für Projekt 1 und Projekt 2 jetzt tatsächlich gesperrt sind. Daher können wir sie nicht\n00:13:32 Um die Sperre dieser Elemente tatsächlich zu ändern, gehen Sie in die Tabelle und wählen\nDatensperren verwalten aus.\n00:13:45 Dies ist die manuelle Vorgehensweise. Nun haben wir aus dem Kontext das Projekt für die\nWartungsmaschine ausgewählt, und Sie sehen, dass der\n00:13:55 Sperrstatus gesperrt ist. Wir können dies hier auch auf offen schalten.\n00:14:04 Und wir schließen sie, und die Tabelle wird aktualisiert, und Sie stellen fest, dass nun der\nDatenstatus für das Projekt entsperrt und somit geöffnet ist.\n00:14:16 Mit dieser Drucktaste oben können wir auch die gleiche Aktion auslösen, die wir jetzt vom\nKontext der Tabelle über das API ausgeführt haben, und das Scripting liest hier aus der\nausgewählten Zeile, für welches Projekt\n00:14:32 die Datensperre geändert werden soll. Abhängig von der aktuellen Sperre wird sie einfach\n00:14:40 Wenn also der aktuelle Sperrstatus offen ist und Sie diese Drucktaste wählen, wird der\nSperrstatus für dieses Projekt in "Gesperrt" geändert.\n00:14:52 Wenn wir die Zeile für das Projekt bis hier mit dem aktuellen Sperrstatus "Gesperrt"\nauswählen, wechselt sie zu "Offen".\n00:15:01 Das sieht also so aus, jetzt ist der Zustand offen. Wenn Sie ihn einmal wählen, stellen Sie nun\nfest, dass der Sperrstatus für das Projekt nun auf "Sperre"\n00:15:12 gesetzt wurde. Dasselbe funktioniert auch hier für Projekt zwei, wo wir mit dem Sperrstatus\n"Gesperrt" begonnen haben.\nuns an, wie dies in der Anwendung implementiert ist.\n00:15:35 Deshalb beginnen wir hier zunächst mit dem neuen Projekt. Und wir sehen im onClick-\nEreignis, wie wir das Projektmitglied anlegen, wie wir alle\n00:15:48 unterschiedlichen Eigenschaftswerte zuordnen, wie wir das Mitglied anlegen usw. sowie im\nDialogfenster für das Anlegeprojekt.\n00:16:00 Anschließend haben wir alle Details und den ausgewählten Kunden definiert und den\nDatumsbereich und alles festgelegt. Dort berechnen wir die Summe der abrechenbaren\nBeträge und die verschiedenen Konten.\n00:16:18 Dann aktualisieren wir hier das Element und schreiben dann mithilfe von .setUserInput() in die\nneu angelegte Elementkombination.\n00:16:31 Schließlich übermitteln wir auch die Daten, und so nutzen wir im Wesentlichen das Planungs-\nAPI für die Stammdatenpflege.\n00:16:45 Im Löschprojekt ist es irgendwie ähnlich. Hier wurde also zuerst diese Prüfung durchgeführt,\num nur Projekte anzuzeigen, für die keine Stammdaten\n00:16:57 vorhanden sind. Dies geschieht zuerst.\n00:17:03 Dann öffnen Sie das Dialogfenster, in dem Sie die Projekte auswählen können, die Sie\nlöschen möchten. Das sieht hier so aus.\n00:17:11 Daher wird diese Liste zur Laufzeit angelegt. Wenn Sie die Löschung bestätigen, stellen Sie\nfest, dass hier die Methode .deleteMembers() mit allen\n00:17:27 Projekten aufgerufen wird, die Sie im Widget für den Umfang des Ankreuzfelds ausgewählt\nhaben. Schauen Sie sich nun in dieser Anwendung die Drucktaste Daten sperren und\nentsperren an, und\naktuelle Zelle der Selektion in der Selektionsvariable gespeichert.\n00:17:58 Die .getSelections-Methode gibt also ein Array mit allen ausgewählten Zellen in der Tabelle\nzurück. Hier sehen wir uns die Position Null an, also die erste Zelle.\n00:18:11 Dann prüfen wir auch, ob die Informationen zu Projekt und Datum vorliegen. Wenn einer der\naktuellen Sperrstatus mit dem Rückgabewert von gesperrt, gemischt oder eingeschränkt\n00:18:27 übereinstimmt, also die If-Einschränkung hier ist, wenn eine davon wahr ist, wird der Status für\ndie Datensperre tatsächlich auf den Sperrstatus offen gesetzt.\n00:18:46 In allen anderen Fällen setzen wir ihn auf gesperrt. Okay, das ist es für die zweite Anwendung.\n00:18:59 Für die Demo der integrierten Leistungsplanung steht Ihnen nun eine dritte Anwendung zur\nVerfügung, die Ihnen zeigen soll, wie Sie Ihre Tabelle mit Hilfe eines Formulars filtern können.\n00:19:16 Und hier haben wir auch die Validierung eingebaut, die Sie dem Endbenutzer anleiten, und Sie\nmüssen alle diese Felder ausfüllen.\n00:19:26 Wenn ich also nun direkt auf "Eingabesheet anzeigen" klicke, sehen Sie, dass das System Sie\ndarüber informiert, dass Sie alle Felder ausfüllen müssen, um fortzufahren, damit die Tabelle\n00:19:38 ordnungsgemäß gefiltert werden kann und Sie später Werte für diese Kombination speichern\nkönnen. Das können wir also schnell tun.\n00:19:45 Außerdem geben wir hier nur einen Zweck dieser Aktivität ein und wie sie gemessen werden\nkann, wie sie gemessen wird usw.\n00:19:57 Wir haben auch solche Validierungen, bei denen ich sagen kann, dass es sich um eine\ntaktische oder strategische Aktivität handelt.\n00:20:06 Für die taktische ist es so gut. Wenn Sie das strategische Thema auswählen, wird ein weiteres\nTextfeld geöffnet, in dem Sie einen Text und\n00:20:21 eine Beschreibung eingeben müssen, also das strategische Thema. Natürlich gibt es in\ndiesem Fall keine Risiken und keine Kosten.\n00:20:35 Wir haben einen Start- und Endtermin für die Aktivität. Wir können einen Meilenstein dafür\n00:20:42 Wir können auch einen zweiten definieren oder ihn einfach auf eins belassen, damit wir\nwirklich die gesamte Anwendungslogik und den Workflow implementieren können, damit der\nEndbenutzer ihn durch\n00:20:56 dieses Formular führt. Wir wählen einige Eingabetreiber aus.\n00:21:02 Und im Hintergrund haben Sie gerade gesehen, wo wir diese Warteleiste haben, dass die\nTabelle im Hintergrund nach all unseren Selektionen hier gefiltert wurde.\n00:21:15 Wenn Sie nun klicken, um das Leistungserfassungsblatt anzuzeigen, sehen Sie, wie das\nFormular verschwindet. Und eigentlich können wir hier mit der Planung beginnen, wie Sie\nwissen, bei der es sich um eine sehr\n00:21:30 normale Dateneingabe in der Tabelle handelt. Und wir können mit ihm interagieren, wie Sie es\n00:21:36 Und die Filter, wenn Sie sie wieder sehen möchten, können Sie auch hier noch einmal prüfen,\nokay, was habe ich ausgewählt, was habe ich hier eingegeben?\n00:21:45 Außerdem können wir zwischen dem Erfassungsblatt und dem Filter hin- und herwechseln.\nWir können hier auch den Filter ändern, um beispielsweise hier die anderen Kosten zu planen\n00:22:00 wirklich in der Anwendung zu navigieren, bis wir mit unserem Planungsergebnis zufrieden\nsind, um die Daten hier zu sichern oder zurückzusetzen.\n00:22:15 Schauen wir uns an, wie dies implementiert ist. Dies kann bei der Validierung für das Blatt\n"Eingabe anzeigen" der Fall sein.\n00:22:23 Wir gehen also in das Skript. Hier sehen Sie, dass zuerst die Voraussetzungen geprüft\nwerden, die sich nun in einem separaten\n00:22:35 Skriptobjekt befinden, checkVoraussetzungen. Wir können hier sehen, was hier passiert.\n00:22:42 Hier sehen Sie, wie alle unterschiedlichen Bedingungen für alle Widgets und Textfelder\nimplementiert sind, in denen dies obligatorisch ist, bevor Sie die Tabelle für die Planung sehen\n00:23:01 Vielen Dank für Ihre Aufmerksamkeit.\nWeek 5 Unit 5\n00:00:05 Willkommen zu Kapitel 5. Dieses Kapitel befasst sich mit dem neuen Tool SAP-Analytics-\nCloud-Add-In für Microsoft Office.\n00:00:14 Diese neue Lösung basiert auf Microsoft Excel 365. Wir alle wissen, dass Excel nach wie vor\neine Schlüsselrolle bei unserer täglichen Arbeit spielt.\n00:00:24 Unsere Idee ist es also, unseren SAC-Kunden von der Excel-Erfahrung auf der Grundlage von\nSAC-Daten zu profitieren.\n00:00:34 Sobald Sie ein SAC-Benutzer sind, können Sie also, sobald Sie ein SAC-Abonnement, ein BI-\noder ein Planungsabonnement erhalten, davon profitieren und diesen neuen Spielplatz in\n00:00:49 Sehen wir uns nun die Schlüsselpfeiler dieses neuen Add-ins an. Wie ich bereits sagte, ist sie\nseit dem 18. Mai dieses Jahres verfügbar.\n00:00:59 Es handelt sich also um ein brandneues Angebot, das vollständig in SAP Analytics Cloud\nintegriert ist. Was bedeutet das?\n00:01:06 Das bedeutet, dass die Workflows in Excel 365 gestartet werden, und ab Excel 365 verbinden\n00:01:15 Dabei kann es sich um ein Planungs- oder ein BI-Modell handeln. Aber wir unterstützen\nderzeit keine Live-Quellen.\n00:01:22 Das bedeutet, dass diese Modelle auf der Grundlage der importierten Daten erstellt werden\nmüssen. Sobald Sie in Echtzeit verbunden sind, können Sie eine Analyse planen und Ihre\n00:01:36 SAP-Analytics-Cloud-Daten durchführen. Zweitens: Unsere Idee mit diesem neuen Tool, das\nauf der neuesten Microsoft-Technologie aufbaut, besteht\n00:01:47 darin, Ihnen die Möglichkeit zu bieten, überall zu arbeiten. Dieses Produkt arbeitet also mit der\nExcel-Desktop-Version, kann aber auch in der\n00:01:57 Excel-Online-Version verwendet werden. Sie kann auch in der Mac-Umgebung oder natürlich\nauch in der Windows-Umgebung verwendet werden.\n00:02:06 Wenn Sie die Excel-Online-Version verwenden, können Sie einen beliebigen Browser außer\nInternet Explorer verwenden.\n00:02:15 Der letzte Punkt, den ich hier hervorheben möchte, ist die Art und Weise, wie Sie das Produkt\nbekommen. Tatsächlich ist dies auch wirklich neu, da dieses Produkt je nach IT-Richtlinie\nindividuell oder vom\n00:02:27 Administrator des Unternehmens installiert werden kann. Dann müssen Sie den Microsoft\nStore aufrufen und ihn aus dem Microsoft Store als Anwendung herunterladen.\n00:02:40 Sobald die Lösung heruntergeladen wurde, können Sie als Administrator der Gruppe\nentscheiden, für welchen Benutzer Sie das Deployment durchführen möchten.\n00:02:50 Sobald es implementiert ist, wird es jedem Benutzer in seiner Excel-Arbeitsmappe angezeigt.\nIn seiner Excel-Arbeitsmappe wird eine neue Registerkarte angezeigt.\n00:03:00 Ich denke also, dass dies ein wesentlicher Vorteil für unsere Benutzer und unsere Kunden ist,\nda es keine manuellen Aktionen gibt.\n00:03:09 Wenn Sie eine neue Version installieren, wird sie automatisch von uns in die Anwendung\ndeployt. Lassen Sie uns nun über die Position sprechen.\n00:03:23 Wie positionieren wir diese neue Lösung in SAP Analytics Cloud? Zunächst einmal ist dies\nziemlich klar, wenn es um einen Planungsprozess geht, an dem viele Benutzer\n00:03:38 beteiligt sind. Die Story bleibt der Haupteinstiegspunkt. Wenn Sie einen weiteren geführten\nProzess benötigen, haben wir natürlich noch die Möglichkeit, oder ich\n00:03:52 würde empfehlen, SAP Analytics Cloud, Analytics Designer zu verwenden, der alle geführten\n00:04:00 Natürlich ist mehr Anpassung erforderlich als die Story. Und jetzt haben wir diese neue\nLösung, die Sie oben auf meiner Folie sehen, das SAP-Analytics-Cloud-Add-In\n00:04:13 für Microsoft Office, das wir für mehr Ad-hoc-Reporting oder -Planung einsetzen. Das heißt,\nein oder mehrere Benutzer benötigen eine bestimmte Analyse oder ein bestimmtes Budget für\n00:04:28 Dateneingabe. Und er möchte Excel aufrufen, sodass er von der Excel-Erfahrung profitieren\nkann, dass er sich mit\n00:04:35 diesem neuen Add-In verbinden kann. Und natürlich haben wir in unserem Portfolio noch eine\nweitere Frontend-Excel-Lösung, Analysis for Office, die vielleicht die meisten von Ihnen bereits\n00:04:48 es sich um eine ausgereifte Lösung handelt. Es handelt sich um ein On-Premise-Produkt,\ndaher ist noch eine manuelle Installation erforderlich.\n00:04:58 Und es funktioniert nicht online mit Excel, aber dieses Produkt bleibt weiterhin ein wichtiger\nBestandteil unseres Portfolios, wenn es um BW, HANA, S/4HANA, einige herkömmlichere\nQuellen geht oder wenn\n00:05:11 Sie eine Verbindung zu SAP Analytics Cloud herstellen, da Sie sich auch mehr für BI- oder\nReporting-Szenarien mit SAP Analytics Cloud verbinden können.\n00:05:21 Mit dem neuen Tool SAC für Microsoft Office wollen wir wirklich eine leistungsfähige Excel-\n00:05:32 Wir unterstützen also bereits die Planung, aber in Zukunft möchten wir in diesem neuen Add-\nOn für Office 365 immer mehr in Planungsszenarien investieren.\n00:05:46 Sehen wir uns nun die Funktionen an. Was können Sie mit diesem neuen Add-In bereits tun?\n00:05:51 Mit der Hauptbuchversion können Sie also bereits planen. Was bedeutet das?\n00:05:57 Sobald Sie mit einem Planungsmodell verbunden sind, können Sie natürlich Daten abrufen,\naber natürlich auch Daten einfügen.\n00:06:08 Im Prinzip rufen Sie alle Dimensionen aus Ihrem Planungsmodell ab. Eine wichtige Dimension,\ndie ich hier hervorheben möchte, ist die Fassung.\n00:06:19 Was bedeutet das? Bei der Version kann es sich um das Budget handeln, z.B. die Prognose\noder das Istbudget.\n00:06:26 Sie hängen also Daten an eine bestimmte Version an und möchten möglicherweise Daten für\nIhr Budget für Ihre Planung für Ihre Prognose zurückschreiben.\n00:06:37 Daher rufen Sie in Excel alle Versionen ab, die in SAP Analytics Cloud angelegt wurden, und\nSie können Daten in Echtzeit in SAP Analytics Cloud zurückschreiben.\n00:06:49 Natürlich werden Sie in der Arbeitsmappe im Add-In ein neues Menü für die Planung abrufen.\nSie verfügen also über ein bestimmtes Menü, eine bestimmte Drucktaste, mit der Sie Daten\n00:07:04 veröffentlichen oder Daten zurückschreiben können, wenn Sie mit Ihren Daten nicht zufrieden\nsind. Natürlich können Sie mit diesem Produkt mit diesem neuen Add-In Ihre eigene\nExploration und auch Ihre\n00:07:19 eigene Analyse durchführen. Sobald Sie also Ihre Excel-Arbeitsmappe öffnen, erhalten Sie\neine neue Registerkarte mit dem Namen SAP\n00:07:28 Analytics Cloud, auf der Sie ein bestimmtes Menüband mit dem gesamten spezifischen Menü\nabrufen können, mit dem Sie Ihren eigenen Bericht erstellen können. So können Sie\nentscheiden, was Sie in einer Zeile, in der\n00:07:42 Spalte sehen möchten, ob Sie ein bestimmtes Modell sehen möchten, und Sie können die\nSpezifität dieses Modells abrufen.\n00:07:50 So können Sie die in diesem Modell angelegten Hierarchien anzeigen und einen Drilldown in\ndiese Hierarchien durchführen.\n00:07:57 Sie können auch alle Elemente einer beliebigen Dimension abrufen, die Teil dieses Modells\nsind. Ich möchte Sie nochmals bitten, daran zu erinnern, dass wir derzeit keine Live-\n00:08:09 Daher müssen die Modelle zusätzlich zu den importierten Daten erstellt werden, damit sie in\nExcel 365 angezeigt werden können.\n00:08:18 Sobald Sie Ihren Bericht erstellt haben, können Sie Dimensionen per Drag&Drop verschieben.\nAußerdem können Sie bei Bedarf die Summen anzeigen, und Sie können Ihre Analyse\n00:08:30 Natürlich können Sie auch von den Excel-Funktionen profitieren, d.h. Sie können Ihre eigenen\nKPIs in Excel anlegen und diese KPIs direkt mit Ihren SAC-Daten verknüpfen.\n00:08:45 Und natürlich möchte ich noch einmal den Hauptvorteil der Installation oder des Deployments\nhervorheben. Ich denke, dass dies die richtige Welt ist, die das Produkt zu verwenden hat.\n00:08:59 Wie ich bereits sagte, müssen Sie den Microsoft Store aufrufen, um das Produkt zu\nimplementieren. Sie kann von einer Einzelperson oder von einem Administrator des\nUnternehmens durchgeführt werden.\n00:09:10 Und ich denke, dass der wichtigste Vorteil hier darin besteht, dass Sie, sobald Sie das Produkt\nimplementiert haben, jede Entwicklung, jede neue Funktion und alle Bugfixes, die wir zur\n00:09:22 stellen, ohne manuelle Schritte direkt an Sie gehen. Unser Plan besteht also darin, alle vier\nWochen neue Funktionen bereitzustellen. Das bedeutet, dass diese\n00:09:33 direkt über die Anwendung an Sie gesendet werden. Ein weiterer wichtiger Punkt ist natürlich,\ndass wir zusätzlich zu Microsoft 365 arbeiten. Daher\n00:09:44 profitieren Sie von allen Funktionen von Microsoft Wenn Sie beispielsweise mit anderen\nKollegen zusammenarbeiten möchten, können Sie diese\n00:09:54 Arbeitsmappe direkt mit einer Arbeitsmappe teilen. Wenn Sie die Arbeitsmappe auf einem\nLaufwerk oder auf SharePoint speichern möchten, ist dies auch Teil der\n00:10:06 Excel-365-Funktionen. Ich denke also, dass wir ein gutes Werkzeug haben, und jetzt möchte\nich Ihnen dieses großartige Werkzeug\n00:10:16 demonstrieren. Sehen wir uns nun die Demonstration des Produkts an.\n00:10:22 Der Workflow startet also in Excel. Hier in meiner Demo verwende ich Excel online.\n00:10:28 Ich bin also bereits online in Excel, und ich kann alle Arbeitsmappen, die ich mit meiner Excel-\nDatei und mit meinem SAC-Add-In erstellt habe, aus Microsoft Office abrufen.\n00:10:40 Daher wähle ich hier eine Arbeitsmappe aus, und ich werde mit meiner Demonstration\nbeginnen, die mit SAP Analytics Cloud verbunden ist.\n00:10:49 Ein Vollbildmodus wird angezeigt. Hier sehen Sie direkt, dass es sich um eine Excel-Online-\nArbeitsmappe mit verschiedenen Registerkarten handelt. Es handelt sich also um eine\n00:11:05 Hier habe ich jedoch eine neue Registerkarte namens SAP Analytics Cloud. Dies liegt daran,\ndass mein Administrator dieses Add-In intern deployt hat. Als Benutzer kann ich es in\n00:11:18 meiner Arbeitsmappe abrufen. Dieses Ribbon sehen Sie hier.\n00:11:24 Von diesem Menüband aus kann ich mich natürlich bei SAP Analytics Cloud anmelden. Ich\nkann eine Tabelle hinzufügen, ich kann Daten aktualisieren.\n00:11:32 Hier haben Sie ein spezifisches Planungsmenü zum Veröffentlichen oder Zurücksetzen von\nDaten. Und hier habe ich natürlich den Baukasten, und ich werde Ihnen zeigen, wie es\n00:11:44 Beginnen wir also mit der Demonstration. In meinem Beispiel bin ich also bereits hier und bin\nan meinem System angemeldet, und das System fordert\n00:11:51 mich auf, eine Tabelle hinzuzufügen. Daher kann ich dieses Menü oder dieses Menü\nverwenden, es ist genau dasselbe.\n00:11:58 Wenn ich also auf Tabelle hinzufügen klicke, werde ich auf das SAP-Analytics-Cloud-Modell\nzugreifen. Vergessen Sie nicht, dass wir jetzt eine Verbindung zu Daten herstellen, die mit\n00:12:10 importiert wurden. Daher suche ich hier nach einem Modell, LivingCompany_Expanded-, also\nverwende ich dieses\n00:12:21 Modell. Sie stellen fest, dass der Bericht angelegt wird.\n00:12:26 Daher rufen Sie hier auf der rechten Seite meines Bildschirms den sogenannten Builder ab,\nder mir hilft, meinen eigenen Bericht zu erstellen.\n00:12:36 Von hier aus fange ich an, nach meinem Konto zu filtern und ein bestimmtes Konto\nauszuwählen. In meinem Beispiel möchte ich also den Cashflow nicht, aber ich möchte eine\nandere Kontoart aus dem\n00:12:51 Jahresüberschuss verwenden, und ich werde auch ein bestimmtes Konto, das\nBetriebsergebnis , verwenden. Daher rufen Sie hier die Hierarchien der Kontodimension ab,\ndie in SAP Analytics Cloud angelegt\n00:13:06 wurde. Daher wähle ich in meinem Beispiel Betriebsergebnis aus.\n00:13:14 Natürlich holen Sie die Version zurück. Standardmäßig habe ich hier bereits eine Version\nausgewählt, aber ich möchte eine weitere Version\n00:13:21 hinzufügen. Vielleicht kennen Sie das Konzept der Version nicht, aber in der Planung in SAC\nmüssen wir die Daten an\n00:13:30 bestimmte Versionen anhängen. Eine Version kann also eine private oder eine öffentliche\n00:13:38 In meinem Beispiel wähle ich zwei Versionen aus, und wir werden anschließend prüfen, ob es\nsich um private oder öffentliche Versionen handelt.\n00:13:47 Sie können also an den privaten Versionen arbeiten, und es wird niemand sehen, außer Sie.\nSobald Sie sich jedoch entscheiden, die Version zu veröffentlichen, sehen alle Benutzer die\n00:13:58 Natürlich jeder mit den richtigen Zugriffsrechten auf die spezifischen Daten. Hier sehen Sie,\ndass in meinem Bericht nun zwei Versionen angezeigt werden.\n00:14:08 Jetzt kann ich hier auf die drei Punkte klicken. Dies hilft mir beim Abrufen der Eigenschaften\n00:14:15 Diese Eigenschaften stammen aus dem SAP-Analytics-Cloud-Modell. Und um Ihnen zu\nzeigen, welche Art von Immobilie ich habe, wähle ich Typ aus. Dies hilft mir automatisch zu\n00:14:27 sehen, ob ich an einer öffentlichen oder privaten Version arbeite. Lassen Sie uns das\n00:14:36 Deshalb werde ich hier in meinem Beispiel an öffentlichen Versionen arbeiten. Was ich tun\nkann, kann ich natürlich Dimensionen oder Kennzahlen hinzufügen, die aus dem\n00:14:47 SAP-Analytics-Cloud-Modell stammen. Daher füge ich hier in meinem Beispiel Regionen\nhinzu, und es wird hier automatisch in meinem Bericht\n00:15:00 angezeigt. Daher habe ich die Möglichkeit, hier nach den Zeilen zu filtern, aber ich kann auch\n00:15:08 hinzufügen, der auf alle Berichte angewendet wird. Daher füge ich hier einen Filter für die\n00:15:18 Und ich werde mich dafür entscheiden, nur die Vereinigten Staaten und Europa zu sehen. Hier\nsehen Sie also auch die Hierarchie, die in SAP Analytics Cloud eingerichtet wurde.\n00:15:28 Sie sehen also die Region auf meiner Reihe. Nun möchte ich die Region nicht in meiner Zeile,\nsondern in der Spalte sehen, und ich kann die\n00:15:37 Dimension automatisch per Drag&Drop in die Spalte verschieben. Sobald ich mit meinem\nBericht zufrieden bin, kann ich hier natürlich in die Hierarchie verzweigen.\n00:15:52 Ich kann hier auch auf die drei Punkte klicken. Und ich kann die Eigenschaften der Region\n00:16:03 Ich kann auch sehen, welche Hierarchie in SAP Analytics Cloud eingerichtet wurde, oder ich\nkann mich für eine flache Präsentation entscheiden.\n00:16:11 Hier gibt es also nur eine Hierarchie, die aufgebaut wurde. Daher verwenden wir diesen in\n00:16:20 Und ich kann entlang der Hierarchie navigieren. Daher kann ich hier beispielsweise das\nBlattelement von Europa anzeigen.\n00:16:34 Ich kann hier auch die Summen in meinem Bericht anzeigen. Daher klicke ich hier auf ihn. Um\nmehr Transparenz zu erhalten, könnte ich den Bereich Builder ausblenden, damit Sie die\nSummen sehen können,\n00:16:49 die nun fett angezeigt werden. Ich kann auch mit Excel-Formeln außerhalb des Berichts\nspielen, daher werde ich hier ein sehr grundlegendes\n00:17:00 Beispiel anführen. Ich möchte also sagen, dass wir für das Betriebsergebnis gehen und einen\n00:17:10 grundlegenden Vorgang machen. Nun haben wir dieses Ergebnis, das berechnet wird, und\nnatürlich könnte ich die Version ändern, z.B. hier.\n00:17:27 Nehmen wir also an, ich möchte nicht das eigentliche sehen, aber ich würde gerne das Budget\nsehen. Daher wechsele ich zu Budget, von Ist zu Budget, und Sie sehen, dass die Formel hier\n00:17:41 berechnet wird, basierend auf dem Budget jetzt und nicht auf den Istdaten. Und wenn ich mit\nmeinem Bericht zufrieden bin, kann ich natürlich damit beginnen, Daten einzugeben und die\n00:17:55 Planung vorzunehmen. Daher werde ich hier z.B. Daten für Deutschland eingeben.\n00:18:08 Hier sehen Sie meine Dateneingabe, und Sie sehen auch diese Meldungen auf der rechten\nSeite meines Bildschirms. Sie sehen aber auch, dass die Daten geändert wurden, da Sie jetzt\ndie gelbe Farbe in den\n00:18:24 Zellen sehen, aber auch das Sternchen neben der Zielversion sehen, was bedeutet, dass\njemand diese Version bearbeitet.\n00:18:33 Wir werden in einer Minute sehen, wie sich dies auch auf SAP Analytics Cloud auswirkt.\nNatürlich wurden die Summen auch für Europa und die Zielversion aktualisiert.\n00:18:47 Wenn ich also mit Excel 365 arbeite, könnte ich von einer Excel-365-Funktion profitieren und\nzu "Datei" und "Teilen", "Mit Personen teilen" wechseln und automatisch jemanden aus\nmeinem Unternehmen oder\n00:19:06 jemanden außerhalb meines Unternehmens auswählen. In meinem Beispiel wähle ich mich\n00:19:15 Daher könnte ich diese Arbeitsmappe direkt senden oder einen Link zu dieser Arbeitsmappe\nsenden. Wenn wir nun im Planungs-Workflow fortfahren und daher Daten eingegeben haben,\nwird meine Version jetzt von\n00:19:30 mir geändert. Nun, was ich tun könnte, könnte ich entscheiden, die Daten zurück in SAP\nAnalytics Cloud zu\n00:19:36 veröffentlichen. Sobald ich auf Veröffentlichen klicke, werden die Daten für alle Benutzer\nveröffentlicht, die Zugriff\n00:19:46 auf diese Zielversion für diesen bestimmten Datentyp haben. Sehen wir uns nun die\nAuswirkungen meiner Dateneingabe in SAP Analytics Cloud an. Ich gehe hier zu SAP\n00:19:59 Analytics Cloud und habe natürlich eine Story, die auf demselben Modell basiert und offen ist.\nUnd ich aktualisiere die Daten.\n00:20:14 So können Sie automatisch die Auswirkungen meiner Dateneingabe sehen, da Sie hier die\nÄnderungen abrufen können.\n00:20:24 Ich könnte auch in dieser speziellen Version nach weiteren Details suchen und dann zur\nGeschichte gehen. Und hier kann ich abrufen, dass ich Daten eingegeben habe.\n00:20:37 Dies basiert also auf meiner Dateneingabe in Excel im SAC-Add-In. Und ich könnte natürlich\nzum vorherigen Stand meiner Version zurückkehren.\n00:20:51 Lassen Sie uns also in der letzten Aktion bleiben, die ich in Excel gemacht habe, und jetzt\nkönnte ich natürlich meine Daten aus SAC oder aus Excel veröffentlichen.\n00:21:04 Also gehen wir zurück zu Excel. Hier in Excel möchte ich die Daten nicht veröffentlichen, aber\nich möchte zu den Daten\n00:21:13 zurückkehren, da ich diese Daten nicht veröffentlichen möchte. Daher wähle ich die\nDrucktaste "Daten zurücksetzen" und kann nun zu den Daten zurückkehren.\n00:21:24 Dies hat zur Folge, dass Sie sehen, dass das Sternchen jetzt verschwunden ist, da diese\nVersion von mir nicht mehr verarbeitet wird.\n00:21:37 Das ist also alles für die Demonstration des Produkts. Vielen Dank.\nWeek 5 Unit 6\n00:00:06 Hallo, alle und herzlich willkommen. Mein Name ist Chen Nee und ich bin Senior User\nExperience Designer mit SAP Analytics Cloud.\n00:00:13 Heute zeige ich Ihnen einige Tipps, wie Sie Ihre Benutzer um Ihre Planungsanwendung herum\nbringen, ihnen helfen, die Anwendung zu verstehen, und vielleicht sogar ein Lächeln auf ihre\nGesichter im Prozess setzen.\n00:00:23 Zunächst möchte ich kurz auf die Herausforderungen eingehen, denen sich die meisten von\nuns im Bereich der Benutzererfahrung stellen und eine Planungsanwendung entwickeln. Sie\nwerden vielen von Ihnen bekannt sein.\n00:00:34 Danach werde ich diese Herausforderungen in verschiedene Ebenen unterteilen und Ihnen\nzeigen, wie wir die Benutzerfreundlichkeit auf jeder dieser Ebenen verbessern können. Am\nEnde, dem Lieblingsbestandteil, zeige ich Ihnen einige Beispiele, wie wir die Freude der\nPlanung in Ihre Anwendung bringen und Ihre Benutzer begeistern können.\n00:00:51 Ich werde mit der ersten Herausforderung beginnen, vor der wir stehen werden, und das ist\ndie Herausforderung, allen Ihren Benutzern das Gesamtbild zu vermitteln, wie das\nUnternehmen plant und welche Rolle sie im gesamten Prozess spielen.\n00:01:02 Nun müssen Ihre Benutzer möglicherweise kein Verständnis dafür haben, um Ihre Anwendung\nverwenden zu können, sondern ihnen ermöglichen, anhand des Verständnisses auf\nProzessebene zu erkennen, wie alles zusammenkommt und welchen Wert die Arbeit hat, die\nsie mit Ihrer Anwendung ausführen.\n00:01:18 Was machen sie denn eigentlich mit diesem Werkzeug? Der Planungsprozess ist oft komplex,\nund es wird schwierig, durchgängig zu vermitteln. Wie machen Sie ihn für die Teilnehmer\n00:01:31 Die zweite Herausforderung wird eher darin bestehen, wie auf Anwendungsebene\nHilfestellung gegeben werden kann, wie die Benutzer wissen können, welcher Teil der\nAnwendung für sie gedacht ist, und sie alle an die richtigen Orte zu leiten.\n00:01:43 Und schließlich besteht die dritte gemeinsame Herausforderung darin, diese Benutzer durch\ndie Seite selbst zu führen. Dabei wird sichergestellt, dass die Eingaben in der richtigen\nReihenfolge erfolgen, Datenaktionen ausgelöst, Aufgaben eingereicht, Daten veröffentlicht\n00:01:57 Im Grunde genommen stehen Sie im Allgemeinen vor den Herausforderungen, auf drei\nverschiedenen Ebenen (Prozess, Anwendung und Seite) Hilfestellung zu geben. Um eine gute\nBenutzerfreundlichkeit zu bieten, müssen Sie sich Gedanken darüber gemacht haben, wie Ihre\nBenutzer erkennen können, wo sie gehören und was sie in allen drei tun\n00:02:17 sollten. Wir sollten sie also nacheinander durchgehen und sehen, was wir tun können.\nBeginnen wir damit, diesen Gesamtüberblick über den Planungsprozess zu vermitteln – der\n00:02:28 häufigste Weg ist es, den gesamten Prozess mit einem Diagramm zu visualisieren. Wir haben\nhier ein Beispiel, bei dem der Planungsprozess als Bausteine verschiedener kleinerer\nProzesse visualisiert wird, die als Ganzes den gesamten Prozess selbst\n00:02:43 darstellen. So kann beispielsweise jemand aus der Marketingabteilung hier leicht erkennen,\ndass er in den Marketingdaten und unter den Personalplanungsdaten die Informationen für\n00:02:53 operativen Kostenplanungsprozess zusammenstellt. Dies bildet zusammen mit der Vertriebs-\nund Umsatzkostenplanung sowie der Finanzplanung die zugrunde liegenden Prozesse und\nerfüllt die Ziele des mehrjährigen strategischen\n00:03:06 Planungsprozesses. Es ist also leicht, hier zu sehen, zu welchem Teil des Prozesses sie\n00:03:11 In diesem Beispiel ist das Diagramm auch als Navigation selbst in die Landing-Page integriert.\nEr dient also auch dazu, die Benutzer in den richtigen Teil der Anwendung zu bringen.\n00:03:25 Ich habe hier ein zweites Beispiel, in dem der Prozess als sehr vereinfachtes Flussdiagramm\ndargestellt wird, und Sie erhalten eine Vorstellung davon, wie die Daten zusammenfließen. Sie\nerhalten einen sehr allgemeinen Überblick über die Geschäftslogik hinter einem Prozess.\n00:03:37 Hier sehen Sie, dass ein solches Diagramm einen Planungsprozess sowohl aus\nbetriebswirtschaftlicher als auch aus technischer Sicht visualisieren könnte. Manchmal könnte\nes die Tendenz geben, zu genau zu sein und jedes einzelne Detail so darzustellen, dass es\nwirklich korrekt und mit der Realität identisch ist.\n00:03:53 Aber letztendlich möchten Sie, dass Ihr Benutzer sich in einem Diagramm anerkennt und ihn\nnicht mit Komplexität überfordert. Die goldene Regel besteht hier darin, so viele Details\nhinzuzufügen, wie nötig, um zu verstehen, wo der Teil des Benutzers am gesamten Prozess\nist, und nicht zu überholen.\n00:04:13 Sehen wir uns nun für den nächsten Teil an, wie Sie auf Anwendungsebene Hilfestellung\ngeben können – meistens verwenden Sie zu diesem Zweck eine Landing-Page. Sehen wir uns\nein Beispiel zusammen an.\n00:04:26 In diesem Beispiel sehen Sie, wie jede Navigationsdrucktaste der Anwendung\nPersonaleinsatzplanung mit einem kurzen, selbsterklärenden Titel beschriftet ist. Manchmal\nsehe ich Anwendungen mit Navigationen, die nur lange Tags für jede der Kategorien\nenthalten, wahrscheinlich mit der Absicht, mehr zu erklären und hoffentlich\n00:04:43 einem Endbenutzer zu helfen, besser zu verstehen, worum es bei jedem Teil geht. In der\nRegel müssen die Benutzer jedoch viel lesen, bevor sie den für ihn relevanten Teil finden.\n00:04:54 Kurz zu sein ist wichtig, da es dem Benutzer hilft, die Teile schnell zu scannen. Sie können\nimmer eine längere Beschreibung darunter verwenden, um die Details anzuzeigen, aber sie\nnicht zur einzigen Informationsquelle machen.\n00:05:05 Und scheuen Sie sich nicht, große Bilder und große Bilder für Ihre Landing-Pages zu\nverwenden. Sie helfen dabei, eine Stimmung für Ihre Anwendung festzulegen.\n00:05:12 Denken Sie daran, die Dateigröße Ihres Bildes zu optimieren. Es gibt viele Werkzeuge, die Sie\nverwenden können, um die Dateigröße zu reduzieren und das Bild schneller zu laden.\n00:05:24 Wenn eine Anwendung viele Unterseiten enthält, die unter einer Kategorie gruppiert sind,\nempfiehlt es sich, auch für jede dieser Unterseiten eine Navigation anzulegen, anstatt sich nur\nauf die Seitenleiste zu verlassen.\n00:05:41 Hier sehen Sie ein Beispiel für eine Unterseite mit einer Navigationsleiste in der oberen\nrechten Ecke, mit der Sie tiefer navigieren können. Aber hier ist eine goldene Regel.\n00:05:49 Halten Sie es einfach. Anders als bei einer Website sind Ihre Benutzer nicht hier, um Inhalte\n00:05:54 Und je einfacher Ihre Inhaltshierarchiestruktur, desto besser. Denken Sie daran, einen\nausgewählten Zustand für Navigationsdrucktasten zu entwerfen, damit Sie Ihren Benutzern\nimmer anzeigen können, wo sie sich in der Anwendung befinden.\n00:06:09 Sobald Sie Ihren Benutzer nun in den richtigen Teil der Anwendung gebracht haben, müssen\nSie ihn durch den Workflow führen, den Sie auf der Seite für ihn entwickelt haben.\n00:06:17 Die einfachste Möglichkeit sicherzustellen, dass Ihre Benutzer immer wissen, wo sie nach den\nSteuerelementen und Auslösern suchen, ist in Ihrem Layout konsistent. Wenn Sie sich dieses\nBeispiel anschauen, in dem die Eingabesteuerelemente und Datenaktionen alle auf der linken\nSeite platziert sind, wissen Sie sofort, wo sich die\n00:06:33 Controls im nächsten Beispiel befinden, was ich Ihnen jetzt zeigen werde. Hier ist es.\n00:06:38 Nur aufgrund der Konsistenz in der Position. Das sollten Sie, wenn möglich, immer anstreben.\n00:06:44 In den meisten Fällen, in denen Sie Steuerelemente für die gesamte Seite und nicht nur für ein\nbestimmtes Widget haben, wird empfohlen, dies zu tun. Eine weitere Möglichkeit, Benutzern\nzu helfen, Inhalte auf der Seite schnell zu durchsuchen und zu finden, was sie suchen, ist, die\nElemente entsprechend zu\n00:07:01 gruppieren. Ein häufiger Fehler, den ich sehe, besteht darin, alle Widgets, alle Eingabefelder\nauf einer Seite so nah wie möglich nebeneinander zu bringen, um zu vermeiden, dass\n00:07:12 Bildschirm-Immobilien verschwendet werden oder gescrollt werden müssen. Dadurch sieht\nalles so aus, als ob sie zusammengehören, und es macht es dem Benutzer wirklich schwer,\ndas zu finden, was er sucht.\n00:07:24 Ich kann nicht genug betonen, wie das Zusammenfassen von Elementen dazu beiträgt, so viel\nzu verstehen, wie die Seite aufgebaut ist, und hilft dem Benutzer, instinktiv zu verstehen, wie\ndie Seite zu verwenden ist.\n00:07:34 In diesem Beispiel wird gezeigt, wie die Gruppierung der Eingabefelder in drei Abschnitte die\nBedienung erleichtert und weniger überwältigend ist, als den Benutzer aufzufordern, 12\nInformationen auf einmal einzugeben, obwohl Sie dies ohnehin tun.\n00:07:49 Nachdem ich nun von Konsistenz, Layout und Gruppierung von Elementen gesprochen habe,\nmuss ich erwähnen, dass es natürlich auch Zeiten gibt, in denen es nicht praktikabel ist, diese\nMethoden zu verwenden.\n00:07:58 Wenn sich beispielsweise die Anforderungen für jeden Teil einer Planungsanwendung so\nvoneinander unterscheiden, wie in Situationen, in denen Sie eine Tabelle über eine ganze\nBreite hinweg benötigen, möchten Sie links keinen Leerzeichen lassen, um Platz für\nSteuerelemente zu reservieren, die Sie auf dieser Seite nicht benötigen, sondern\n00:08:16 möglicherweise in einer anderen Seite. Oder es ist einfach nicht möglich, die Widgets zu\ngruppieren und der Gruppe eine kurze Überschrift zu geben, die für den Benutzer sofort\n00:08:27 Sie können versuchen, die genannten Lösungen auf andere Weise zu verwenden. Wenn es\nbeispielsweise Datenaktionen gibt, die Ihre Benutzer auslösen sollen, nachdem sie bestimmte\nEingaben vorgenommen haben, können Sie in solchen Fällen versuchen, eine\n00:08:39 Landing-Page oder eine Mini-Landing-Page zu verwenden. Anstatt die Benutzer zu\nverschiedenen Teilen der Anwendung zu navigieren, fügen Sie Ihre Datenaktionen hinzu.\n00:08:49 Im Folgenden finden Sie ein Beispiel, in dem die Planungsschritte auf einer Übersichtsseite\noder einer Mini-Landing-Page aufgelistet werden und Sie die Datenaktionen hier anstatt auf\neiner Seite mit den Eingabeblättern platzieren.\n00:09:00 Auf diese Weise haben Sie Ihre Benutzer durch den gewünschten Workflow gebracht. Und es\ngibt für ihn keine Arbeit, wenn es darum geht, wann und welche Datenaktion ausgelöst werden\n00:09:09 Da wir jetzt darüber sprechen, wie wir in unserer Lösung kreativ für die Benutzerführung\narbeiten können, möchte ich die Flexibilität erwähnen, die der Analysedesigner von SAP\nAnalytics Cloud bieten kann, sodass Sie Ihre Lösungen wirklich kreativ gestalten können.\n00:09:25 Ich möchte Ihnen hier ein Beispiel zeigen, wie Sie mit dem Analysedesigner ein Overlay als\nSoforthilfe für Ihre Benutzer hinzufügen können. Hier können Sie auf die Soforthilfe-\nSchaltfläche in der oberen rechten Ecke klicken, um eine Überlagerung auf Ihrer Seite mit\nBeschreibungen für die einzelnen Widgets und\n00:09:41 Schaltflächen zu platzieren, damit der Benutzer verstehen kann, wie die Seite funktioniert. Sie\nkönnen natürlich die Schritte kennzeichnen, die Ihre Benutzer durchführen sollen, oder hier die\nBeschreibungen Ihrer Datenaktion eingeben.\n00:09:53 Sie müssen also weniger auf die Seite selbst schreiben, und Sie können die Dinge auf diese\nWeise übersichtlicher halten. Und dann ist ein guter Anwendungsfall für den Analysedesigner,\nwenn Sie wissen, dass es diesen speziellen Fehler im Workflow Ihres Benutzers gibt, bei dem\ner tendenziell mit\n00:10:08 einem Problem konfrontiert ist und nicht fortfahren kann. Und es kann vor Ort wirklich Abhilfe\nschaffen und ihn dort auffangen, wo er voraussichtlich Hilfe benötigt.\n00:10:17 Ich habe hier ein schönes Beispiel für eine Anwendung zur Personaleinsatzplanung. Sie\nsehen, dass eine Dateneingabe erforderlich ist und die Daten veröffentlicht werden müssen.\nAußerdem müssen einige Datenaktionen ausgelöst werden.\n00:10:28 Jetzt muss kurz vor dem Veröffentlichen einer von ihnen ausgelöst werden. Da Sie wissen,\ndass es einigen Benutzern fehlt, können Sie hier ein Overlay hinzufügen, das angezeigt wird,\nwenn der Benutzer auf Veröffentlichen klickt.\n00:10:41 Er erinnert den Benutzer daran, dass diese Datenaktion ausgelöst werden muss, und fängt\ndiejenigen ab, die dies vergessen haben, und verhindert, dass sie einen Fehler machen. Wir\nhaben also über die verschiedenen Herausforderungen bei der Führung Ihrer Benutzer\ngesprochen und einige Beispiele für die Bewältigung und Lösung dieser\n00:10:57 Herausforderungen. Jetzt werden wir uns ein oder zwei Beispiele anschauen, wie man über\ndiese grundlegenden Erfordernisse hinausgehen kann, und den Rand etwas mehr zu drücken,\n00:11:06 der Anwendung einen gewissen Charakter zu verleihen und die Interaktion nur ein bisschen\ninteressanter zu machen, um dem Benutzer ein Lächeln zu machen. Zunächst sollten Sie sich\nimmer davon überzeugen, dass eine Planungsanwendung Spaß machen und einfach und\ninteressant zu verwenden sein kann. Wenn es mit dieser Denkweise\n00:11:24 fertig wird, werden die Ideen natürlich kommen, und Sie beginnen, Chancen in Ihrer\nAnwendung zu sehen, in der Sie einfach etwas kreativer werden und Dinge ausprobieren\nkönnen, um Ihre Benutzer unerwartet zu begeistern.\n00:11:37 Hier haben wir den Analysedesigner verwendet, um eine Nachricht für das Beschäftigt-\nKennzeichen anzupassen und dabei nur ein wenig Humor in den Warteprozess\n00:11:45 Nun macht das Warten jetzt natürlich nicht mehr haltbar, aber es macht Ihre Anwendung\netwas lustiger zu arbeiten. Und glauben Sie mir, dass ein wirklich guter Text enorme\nAuswirkungen auf alle Anwendungsbereiche haben kann.\n00:11:58 Manchmal wird es wirklich nur eine Sprache sein, die etwas bewirken wird. Und natürlich\nkönnen Sie nicht nur den Rand mit der Sprache drücken, sondern auch mit Ihrer Oberfläche.\n00:12:10 Betrachten wir dieses Beispiel hier. Hier können Sie für den Budgetantragsprozess eine\nTabelle verwenden, um Daten zu sammeln, oder Sie können ein Formular zum Eingeben der\nAnträge mithilfe der\n00:12:23 Eingabefeld-Widgets im Analysedesigner erstellen, wie in diesem Beispiel. In beiden Ansätzen\ngibt es Vorteile, und Sie müssen es nur testen, um herauszufinden, welche Methode für Sie\n00:12:33 Seien Sie auch kreativ und erlauben Sie es Ihnen, Bilder und Farben zu verwenden, um Ihrer\nAnwendung einen Charakter zu verleihen. Im Folgenden finden Sie ein weiteres Beispiel\ndafür, wie Sie Bilder und Farben effektiv verwenden können, um Ihre Anwendung nicht nur\nneu zu gestalten, sondern auch, um\n00:12:51 Benutzern einen besseren Überblick zu verschaffen und ihre Aufgabe angenehmer zu\nerledigen. Ich sehe mich oft die Websites der Unternehmen an und sehe, ob es etwas gibt,\nwas ich hier nehmen kann, und zwar nicht nur um die Farben und Schriftarten, sondern auch\n00:13:04 den Geist oder den Charakter, der dort zu spüren ist. Wir sind also am Ende dieses Kapitels\n00:13:09 Ich hoffe, dass Ihnen das so gut gefallen ist, wie ich es getan habe, und dass die gezeigten\nBeispiele Sie auf die eine oder andere Weise inspirieren konnten, die Benutzerfreundlichkeit\nIhrer Anwendung zu verbessern.\n00:13:19 Vielen Dank. Und ich hoffe, dass Sie eine hervorragende Lernerfahrung mit openSAP haben.\n00:00:05 Hallo, vielen Dank für das Tuning in. Am Ende des Kurses fragen Sie vielleicht, wie kann ich\nmich auf dem neuesten Stand halten?\n00:00:12 Hier haben wir zwei Haupteinstiegspunkte für Sie. Detaillierte Produktinformationen finden Sie\nim SAP Help Portal.\n00:00:20 Hier finden Sie die Produktdokumentation, einen Einführungsleitfaden, Video-Tutorials und die\n00:00:27 Zweitens finden Sie in der SAP-Cloud-Community umfangreiche Informationsquellen von\nExperten für Experten, wie Expertenseiten, Q und A sowie Produkt-Blogs.\n00:00:39 Dort finden Sie Blogs zu allen Aspekten von SAP Analytics Cloud und planungsbezogenen\nBlogs. Suchen Sie hier nach dem Tag SAP Analytics Cloud for Planning.\n00:00:51 Vielen Dank, dass Sie am openSAP-Kurs Planning with SAP Analytics Cloud teilgenommen\nhaben. Wir hoffen, dass Sie es genossen und nützliche Dinge gelernt haben.\n00:01:00 Nun wünsche ich Ihnen viel Glück für den wöchentlichen Einsatz und die Abschlussprüfung in\n00:01:06 Sieh dich in der Community. Habe einen schönen Tag und gibst dich ab.\nIn particular SAP SE or its affiliated companies have no obligation to pursue any course of business outlined in this document or any related presentation, or to develop or release any functionality\nDokumente ähnlich wie sac3_Week_5_Transcript_de