Salesforce Beratung und Entwicklung vom Profi - mind-force.de https://mind-force.de In Berlin, Düsseldorf, Bielefeld und Hannover Sun, 27 Aug 2017 16:38:32 +0000 de-DE hourly 1 http://wordpress.org/?v=4.2.6 E-Book Salesforce Add-ons https://mind-force.de/salesforce-addons/e-book-salesforce-add-ons/ https://mind-force.de/salesforce-addons/e-book-salesforce-add-ons/#comments Tue, 15 Aug 2017 06:49:25 +0000 https://mind-force.de/?p=5217 Salesforce bietet eine umfassende Plattform für CRM. Welche Add-ons relevant sind und was es dabei zu beachten gilt, haben wir in einem kostenlosen E-Book zum Thema Salesforce Add-ons für Sie zusammengestellt. Inhalte des E-Books Salesforce Add-ons Standard vs. Eigenentwicklung Salesforce AppExchange Vor- und Nachteile von AppExchange Add-ons Gute und schlechte Add-ons erkennen Geschäftsmodelle Worauf sollten Sie vor dem […]

The post E-Book Salesforce Add-ons appeared first on Salesforce Beratung und Entwicklung vom Profi - mind-force.de.

]]>
E-Book_Salesforce_AddonsSalesforce bietet eine umfassende Plattform für CRM. Welche Add-ons relevant sind und was es dabei zu beachten gilt, haben wir in einem kostenlosen E-Book zum Thema Salesforce Add-ons für Sie zusammengestellt.

Inhalte des E-Books

  • Salesforce Add-ons
  • Standard vs. Eigenentwicklung
  • Salesforce AppExchange
  • Vor- und Nachteile von AppExchange
  • Add-ons
  • Gute und schlechte Add-ons erkennen
  • Geschäftsmodelle
  • Worauf sollten Sie vor dem Kauf achten?

Nach der Lektüre des E-Books Salesforce Add-ons

Ich freue mich auf Ihr Feedback zum Buch! Sollten sich nach der Lektüre Fragen für Sie ergeben, melden Sie sich gerne. Nutzen Sie meine unverbindliche Telefonberatung, wenn Sie mit mir über Ihre Ausganssituation sprechen und konkrete Handlungsempfehlungen für nächste Schritte erhalten möchten.

E-Book Salesforce Add-ons herunterladen

The post E-Book Salesforce Add-ons appeared first on Salesforce Beratung und Entwicklung vom Profi - mind-force.de.

]]>
https://mind-force.de/salesforce-addons/e-book-salesforce-add-ons/feed/ 0
„Klickibunti“ – Vom Studium zu mindforce https://mind-force.de/allgemein/klickibunti-vom-studium-zu-mindforce/ https://mind-force.de/allgemein/klickibunti-vom-studium-zu-mindforce/#comments Mon, 24 Jul 2017 16:00:09 +0000 https://mind-force.de/?p=5069 Über mich Hi! Ich bin Dennis Grzyb (gesprochen ungefähr „Dschib“), ich bin 24 Jahre alt und komme aus Duisburg. Ich studiere (noch) Wirtschaftsinformatik für meinen Bachelorabschluss an der Uni Münster. Meine Vertiefungen liegen im Geschäftsprozessmanagement und in der theoretischen Informatik. Darüber hinaus war ich bereits an einem Projekt zur Entwicklung einer Smartphone-App beteiligt. In meiner Freizeit zocke […]

The post „Klickibunti“ – Vom Studium zu mindforce appeared first on Salesforce Beratung und Entwicklung vom Profi - mind-force.de.

]]>
Über mich

12.05.2017_02_Grzyb_Dennis_4,5x6

Hi! Ich bin Dennis Grzyb (gesprochen ungefähr „Dschib“), ich bin 24 Jahre alt und komme aus Duisburg. Ich studiere (noch) Wirtschaftsinformatik für meinen Bachelorabschluss an der Uni Münster. Meine Vertiefungen liegen im Geschäftsprozessmanagement und in der theoretischen Informatik. Darüber hinaus war ich bereits an einem Projekt zur Entwicklung einer Smartphone-App beteiligt. In meiner Freizeit zocke ich gern – Brett-, Video- und Sammelkartenspiele sind alle nicht vor mir sicher. Nebenher höre ich leidenschaftlich gerne elektronische Musik, habe sogar eine Zeit lang selbst etwas geDJt.

Im Juli fange ich im Fachbereich mindforce der mindsquare GmbH mit meiner Bachelorarbeit im Bereich Anforderungsanalyse und Softwareeinführung an. Nach der BA bin ich dann ab Oktober ein Young Professional im Trainee-Programm.

informatiker sapler

„Im Consulting macht ein Wirtschaftsinformatiker am Ende eh nur SAP.“

Diesen Spruch habe ich während des Studiums nicht nur einmal gehört. Und mal ehrlich, komplett verkehrt ist die Aussage auch nicht. Laut Statista machten SAP-Kunden 14% des gesamten Umsatzes im Bereich Business-Software aus, gefolgt von Microsoft mit lediglich knapp über 10%. SAP ist gefragt, nicht umsonst heißt es schon seit langem „No one ever got fired for buying SAP“. Auch an meiner Universität wurde uns das beigebracht, wir hatten sogar einige Tutorien mit der Software. Doch die meisten Leute, die so wie ich schon mal in Berührung mit SAP gekommen sind, nehmen eine Sache mit: Es sieht einfach nicht gut aus. Sofern keine Anpassungen stattgefunden haben (was bei unseren Uni-Maschinen natürlich der Fall war), denkt man sich auf den ersten Blick, man hätte es mit Windows 95 zu tun.

Sich mit diesen Bildern im Hinterkopf im Studium für eine SAP-Stelle zu bewerben, fiel mir schwer. Doch inmitten dieses Unmuts zeigte mir mindsquare, die schon sehr früh zu meinem Fachbereich Kontakt aufgenommen hatten, eine weitere Möglichkeit der Entfaltung: Salesforce. In Sachen Design war Salesforce genau das, was SAP nicht war: Modern, stylisch, und das direkt von Anfang an. Außerdem, so durfte ich es auf einer Informationsveranstaltung erfahren, handelt es sich bei Salesforce um einen absoluten Wachstumsmarkt mit mehr Anfragen als Möglichkeiten, diesen gerecht zu werden.

Laut Aussagen von Mitarbeitern heißt es, in der SAP-Sparte zieht man über Salesforce mit dem Namen „Klickibunti“ her. Das soll veranschaulichen, dass der Aufgabenbereich eines Salesforce Consultants viel Customizing in einer schicken GUI ist, wohingegen SAP-Entwickler oftmals im Editor ihrer Wahl nur mit Code arbeiten dürfen. Auch wenn dies ein herablassender Spitzname ist, kann man ihm eigentlich etwas Positives abgewinnen: Warum kompliziert mit ABAP programmiert, wenn’s auch einfach in einer schönen GUI geht? 😉

 

At a job interview

Deswegen mindsquare

Natürlich hätte ich mich auch woanders für eine Stelle als Salesforce Consultant bewerben können. Wieso also habe ich mich für den Fachbereich mindforce bei mindsquare entschieden?

Dazu kurz vorweg: Im Studium habe ich mich eine Zeit lang als Fachschaftsmitglied um die Organisation der sogenannten WI-LAN gekümmert. Eine Nacht lang kommen alle interessierten Wirtschaftsinformatiker zusammen und zocken eine Runde … oder zwei, oder drei. Diese und auch andere Veranstaltungen hat mindsquare sehr gerne unterstützt. In den ersten Gesprächen mit dem damals für Sponsoring verantwortlichen Consultant wurde mir auch direkt klar, dass es sich hierbei nicht um ein Unternehmen wie jedes andere handelte: Es hieß, sogar auf Projekten würden an Wochenenden ab und zu LANs organisiert werden, und sogar eine unternehmensweite LAN wird veranstaltet! Zusammen feiern gehen, zusammen Zeit verbringen – Hier sah ich, dass man sich nicht nach Feierabend aus dem Weg geht, sondern Freundschaften entwickelt und pflegt.

Als ich dann auf einer nachfolgenden Gamescom den Messestand von mindsquare mit Mario Kart und Bier sah und mir auf Anhieb vom Personalleiter das Du angeboten wurde, war mir klar, dass die Firmenkultur mir unheimlich zusagt und dass ich mich auf jeden Fall dort bewerben wollte.

Und siehe da, nach einem interessanten und transparenten Bewerbungsprozess kam das Angebot. Donnerstag auf Freitag lernte man sich kennen und führte persönliche Gespräche, am nächsten Werktag erhielt ich bereits den Anruf – viel schneller geht es kaum. Ich freue mich schon richtig, bald als zertifizierter Salesforce Consultant unterwegs zu sein!

The post „Klickibunti“ – Vom Studium zu mindforce appeared first on Salesforce Beratung und Entwicklung vom Profi - mind-force.de.

]]>
https://mind-force.de/allgemein/klickibunti-vom-studium-zu-mindforce/feed/ 0
JQuery UI Dialoge für Standardseiten https://mind-force.de/allgemein/jquery-ui-dialoge-fuer-standardseiten/ https://mind-force.de/allgemein/jquery-ui-dialoge-fuer-standardseiten/#comments Mon, 29 May 2017 06:36:19 +0000 https://mind-force.de/?p=5017 Sie nutzen Custom Buttons auf Standardseiten und wollen vor der Ausführung einer Funktion noch einen Dialog anzeigen? Dann ist JQuery UI die Lösung. JQuery UI bietet Ihnen die Möglichkeit über JavaScript ein Modal zu erzeugen und in diesem eine Visualforce Page einzubetten, um beispielsweise Usereingaben zu verarbeiten oder die Ausgabe von Warn- oder Fehlermeldungen aus […]

The post JQuery UI Dialoge für Standardseiten appeared first on Salesforce Beratung und Entwicklung vom Profi - mind-force.de.

]]>
Sie nutzen Custom Buttons auf Standardseiten und wollen vor der Ausführung einer Funktion noch einen Dialog anzeigen?
Dann ist JQuery UI die Lösung. JQuery UI bietet Ihnen die Möglichkeit über JavaScript ein Modal zu erzeugen und in diesem eine Visualforce Page einzubetten, um beispielsweise Usereingaben zu verarbeiten oder die Ausgabe von Warn- oder Fehlermeldungen aus JavaScript heraus zu realisieren. JavaScript bietet standardmäßig nur die Möglichkeit durch die alert()-Funktion dem Benutzer eine einfache Meldung anzuzeigen. Jedoch wenn wir ehrlich sind, sehen alert()-Meldung nicht sehr ansprechend aus und eine unterschiedliche Darstellung für Warnmeldung und Erfolgsmeldung ist nicht möglich.
Im Folgendem werde ich Ihnen in vier kurzen Schritten erläutern wie sie einen ansprechenden Dialog für JavaScript-Buttons erstellen können.

Als Beispiel dient uns ein Archivierungs- Szenario von Accounts.

Bei vielen Salesforce Kunden werden Accounts nicht gelöscht, sondern lediglich archiviert, um historische Daten nicht zu verlieren. Hierzu wird auf dem Account das boolesche Feld „isArchived“ verwendet. Damit die Archivierung für den User so unkompliziert wie das standardmäßige Löschen eines Records ist, soll es auf dem Account Objekt einen Custom Button zur Archivierung geben.
Bis hier lässt sich die Anforderung mit einem einfachen Custom Button abbilden. In unserem Beispiel wird jedoch verlangt, dass der User für jede Archivierung eine Begründung pflegen muss. Dieser Anforderung macht die Realisierung deutlich komplexer, da es nicht ohne weiteres möglich ist einen JavaScript-Button, um einen Eingabe-Dialog zu erweitern.

Für dieses Beispiel werde ich insgesamt vier Komponenten nutzen.

  1. Ein JavaScript-File, welches als statische Ressource gespeichert wird.
  2. Einen Custom JavaScript Button.
  3. Eine APEX Klasse.
  4. Eine Visualforce Page.

1. Erstellen Sie ein JavaScript-File als statische Ressource

Das JavaScript-File dient dazu das JQuery UI Modal zu definieren.

JQuery

Durch den Befehl

j$(„<link>“,{rel:“stylesheet“, href:“https://code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css“}));

definieren Sie welches JQuery-UI Stylesheet Sie nutzen wollen und somit wie das eigentliche Modul aussehen wird. Auf der JQuery-UI Website finden Sie diverse verschiedene UI-Themes.

Durch den Code-Abschnitt

j$(„<iframe>“,{id:“vfFrame“,
  src:“/apex/archiveReasonDialog?id=“+accountId,
  height:100,
  width:50,
  frameBorder:0})
));

bestimmen Sie welche Visualforce-Page innerhalb des Modals angezeigt werden soll. Hierdurch haben Sie die Möglichkeit von einfachen Meldungen bis hin zu komplexen Formularen beliebige Visualforce-Seiten einzubinden.

Nachdem Sie das JavaScript-File erstellt haben, speichern Sie dieses als Static Ressource in Salesforce unter dem Namen archiveAccountJS ab.

2. Erstellen Sie einen Apex Controller

Als Nächstes wird eine APEX-Klasse erstellt, welche dazu dient die Logik der Visualforce-Page abzubilden. In diesem Beispiel wird die APEX-Klasse dazu genutzt, um unsere Archivierungslogik des Accounts abzubilden.

JQueryUI_APEX_Code

3. Erstellen Sie einen Visualforce Seite

Der Inhalt des JQuery UI Modals wird durch die Visualforce Seite definiert. In unserem Beispiel wird durch eine Visualforce Seite mit dem Namen archiveReasonDialog eine einfache Eingabemaske für den Archivierungsgrund bereitgestellt.

JQueryUI_VF_Code

Der auf der Visualforce Seite implementierte JavaScript Code dient dazu die Account-Seite nach der Archivierung neuzuladen, damit die Änderungen sofort sichtbar werden.

4. Erstellen Sie einen Custom JavaScript Button

Der letzte Schritt ist die Erstellung eines Custom Buttons, um das Modal aufzurufen. Hierzu erstellen wir einen JavaScript Button auf dem Account Objekt.

JQueryUI_CustomButton

Der soeben erstelle Button muss nun auf dem Page Layout des Accounts eingebunden werden.

Wenn alles korrekt eingerichtet ist gibt es nun auf der Account-Seite den gerade erstellten Archivierungs -Button. Bei Betätigung des Buttons wird ein Modal zur Eingabe einer Archivierungsbegründung angezeigt.
JQueryUI_AccountPage

Mit nur 4 Schritten können Sie Ihre Standardseiten durch individuelle Dialoge aufwerten!
Salesforce Consultant Patrick Holder

Haben Sie Fragen oder Anregungen? Verfassen Sie einen Kommentar oder melden Sie sich per Mail bei info@mindsquare.de. Unser Team wird Ihnen schnellstmöglich antworten.

The post JQuery UI Dialoge für Standardseiten appeared first on Salesforce Beratung und Entwicklung vom Profi - mind-force.de.

]]>
https://mind-force.de/allgemein/jquery-ui-dialoge-fuer-standardseiten/feed/ 0
Salesforce Spring ’17 Release: Was ist neu? https://mind-force.de/allgemein/salesforce-spring-17-release-was-ist-neu/ https://mind-force.de/allgemein/salesforce-spring-17-release-was-ist-neu/#comments Thu, 27 Apr 2017 14:17:41 +0000 https://mind-force.de/?p=4925 Mit dem Spring ’17 Release liefert Salesforce eine Vielzahl an Neuerungen und Verbesserungen. Ich möchte Ihnen im Folgenden einen kurzen Überblick über die interessantesten Neuerungen in den einzelnen Clouds geben. Sales Cloud Das Zugpferd von Salesforce hat eine Reihe von Features zur Prozessoptimierung in Lightning erhalten. So lässt sich nun der von der Opportunity bekannte […]

The post Salesforce Spring ’17 Release: Was ist neu? appeared first on Salesforce Beratung und Entwicklung vom Profi - mind-force.de.

]]>
Mit dem Spring ’17 Release liefert Salesforce eine Vielzahl an Neuerungen und Verbesserungen. Ich möchte Ihnen im Folgenden einen kurzen Überblick über die interessantesten Neuerungen in den einzelnen Clouds geben.

Sales Cloud

204_kanban_everywhereDas Zugpferd von Salesforce hat eine Reihe von Features zur Prozessoptimierung in Lightning erhalten. So lässt sich nun der von der Opportunity bekannte Kanban View auch auf andere Objekte, wie etwa Leads oder Custom Objects einbinden. Dies bietet sich beispielsweise dann an, wenn Objekte über verschiedene Status verfügen, die aufeinanderfolgende Schritte eines Prozesses abbilden. Des Weiteren sind die Collaborative Forecasts aus Salesforce Classic nun auch in Lightning verfügbar. Mitglieder eines Opportunity Teams haben damit eine stets aktuelle Übersicht ihrer Opportunities oder der Opportunities ihres Teams zur Verfügung.

Nutzer von Salesforce Einstein haben nun Zugriff auf die Automated Activity Capture Funktion. Diese ermöglicht es, Emails und Aufgaben direkt aus Outlook oder Google Mail an Objekte in Salesforce anzuhängen. Organisationen, in denen Einstein nicht im Einsatz ist, besitzen über Lightning / Salesforce for Outlook ähnliche Funktionen der Email Integration.

Service Cloud

fieldserviceapp

Die Service Cloud erhält vor allem Erweiterungen durch neue Funktionen. Der Omni-Channel Supervisor ist eine neue Konsole für Manager von Service Mitarbeitern, um deren aktuelle Auslastung und Aufgaben auf einen Blick einsehen zu können. Für Mitarbeiter im Außendienst, wie beispielsweise Techniker auf Kundenbesuchen, gibt es nun die Field Service Mobile App. Die App legt ihren Fokus auf den Offline-Betrieb, lädt relevante Daten wie Aufgaben, Kundendaten und Materialdaten bei bestehender Internetverbindung herunter und ermöglicht dem Benutzer die Bearbeitung dieser. Sobald eine Internetverbindung besteht aktualisiert die App ihre Daten mit Salesforce. Die App ist aktuell verfügbar für IOS Geräte und im App Store zu finden und setzt voraus, dass der Benutzer eine Lizenz für Field Service besitzt.

Zudem ist nun die Service Console in Lightning als Beta Version verfügbar. Hierbei ist aber festzuhalten, dass Apps aus Salesforce Classic nicht kompatibel mit Lightning sind. Auch Salesforce Knowledge ist jetzt in Lightning verfügbar, der Setup findet jedoch weiterhin in Classic statt.

Marketing Cloud

Salesforce hat vor kurzem Krux akquiriert, ein Webanalysetool zur massenhaften Verarbeitung von Kundendaten und Erstellung von Kundensegmenten. (Link: http://www.krux.com) Krux liefert damit Möglichkeiten für ein zielgerichteteres Marketing und fügt sich dank neuer Schnittstelle in die bestehende Umgebung der Marketing Cloud ein. Zudem bietet Salesforce mit Marketing Cloud Connect ein einfaches Werkzeug zur Anbindung von Datenquellen an, welches vornehmlich für die Verbindung an eine oder mehrere Salesclouds genutzt werden kann. Auf diese Weise können Daten einzelner oder mehrerer Objekte zwischen Sales und Marketing Cloud synchron gehalten werden. Außerdem ist die Marketing Cloud App nun neben IOS Geräten auch für Android im Google Play Store erhältlich.

App Cloud

globalActionsDie Appcloud bietet dem Benutzer neue Möglichkeiten zur einfacheren und schnelleren Bedienung. Global Actions, bekannt aus der Salesforce1 App und dem Chatter Publisher in Salesforce Classic, sind nun in Lightning verfügbar. Der User hat damit die Möglichkeit per Klick neue Objekte anzulegen oder Emails zu schreiben, ohne dabei das aktuelle Fenster verlassen zu müssen. Zudem kann jeder Benutzer nun Datensätze, Listviews, Chatter Gruppen, Reports und Dashboards als Favoriten markieren. Auf diese Weise lassen sich markierte Objekte mit nur einem Klick aufrufen.

Mit (Enhanced) Custom Lightning Pages können Administratoren nun individuelle Ansichten für Records aufgrund von App, Profil und Record Type einschränken. Ein User sieht somit nur die Seiten und Komponenten, welche für ihn eingestellt sind. Beispielsweise werden so unterschiedlichen Abteilungen eines Unternehmens unterschiedliche Sichten auf das gleiche Objekt ermöglicht.

Community Cloud

Die Community Cloud liefert nun das Audience Targeting Werkzeug. Hiermit ist es nun möglich, Benutzern aufgrund ihres Profils und Standortes, sowie aufgrund des Record Types unterschiedlichen Content anbieten. Benutzer sehen somit häufiger für sie relevante Informationen.

Mit Chatter Streams haben Salesforce User nun die Möglichkeit ihr Chatter Feed kategorisch zu filtern. Dies ermöglicht dem User einen Überblick einzelner Themenbereiche und lenkt den Fokus auf relevante Informationen.

Außerdem gibt es nun eine Google Analytics Integration für Self Service Communities.

Analytics Cloud

datasetReciptsDie Analytics Cloud profitiert mit diesem Release von nützlichen neuen Werkzeugen. Mit Bulk Actions können nun Daten von Wave massenhaft mit nur einem Klick bearbeitet werden. So lassen sich zum Beispiel zu selektierten Einträgen neue Objekte erstellen oder Emails versenden. Dataset Recipts erweitert das das automatisierte Datenmanagement. Bei Anbindung an eine Datenquelle kann der Nutzer eine Reihe an Schritten definieren, um einen Datensatz aus den Quelldaten erstellen zu lassen. Dies kann er zudem automatisiert und in festen Intervallen wiederholen lassen. Auch die Home Page von Analytics lässt sich nun anpassen. Der User hat damit die Option die meistgenutzten Apps oder Dashboards auf seiner Startseite einzublenden.

Commerce Cloud

Die Cloud für Shops und Einzelhändler erhält Verbesserungen in Form von Analysewerkzeugen und Kunden-Support. Commerce Insights zeigt Informationen über Zusammenhänge von Produktkäufen. Hierbei steht vor allem die Frage „Was wird häufig zusammen mit diesem Produkt gekauft?“ im Vordergrund, sowie die aggregierten Kennzahlen zu den jeweiligen Produktverkäufen.

Endless Ilse hat mit diesem Release einen Mehrsprachen-Support erhalten. Endless Ilse bietet Kunden die Möglichkeit im Laden bspw. die Verfügbarkeit von Produkten in anderen Läden oder Lagern zu prüfen.

Auf der Seite des virtuellen Verkaufstresens hat der Call-Center Mitarbeiter nun das Customer Service Center. Hiermit hat der Mitarbeiter vereinfachten Zugriff auf Kundedaten und kann Aufträge für den Kunden aufgeben.

Haben Sie Interesse oder Fragen zu einem der neuen Features? Kontaktieren Sie uns oder schreiben Sie einen Kommentar unter diesen Artikel. Wir beraten Sie gern.

The post Salesforce Spring ’17 Release: Was ist neu? appeared first on Salesforce Beratung und Entwicklung vom Profi - mind-force.de.

]]>
https://mind-force.de/allgemein/salesforce-spring-17-release-was-ist-neu/feed/ 0
Tagesseminar: Strategische SAP Themen 2017 – Demnächst in München! https://mind-force.de/events/tagesseminar-strategische-sap-themen-2017-demnaechst-in-muenchen/ https://mind-force.de/events/tagesseminar-strategische-sap-themen-2017-demnaechst-in-muenchen/#comments Wed, 22 Mar 2017 07:16:23 +0000 https://mind-force.de/?p=4857 Strategische SAP Themen 2017: HANA, Cloud und Co. – das ist das Thema des SAP Tagesseminars am Donnerstag, 27.04.2017 in München. Die Teilnehmer erwarten Informationen zu aktuellen Themen wie z.B. digitale Transformation, SAP HANA, Enterprise-Mobility-Strategie oder Cybersicherheit sowie Expertentipps für ihre SAP-Strategie. Das Seminar richtet sich an IT-Leiter und IT-Verantwortliche. SAP entwickelt die NetWeaver Plattform […]

The post Tagesseminar: Strategische SAP Themen 2017 – Demnächst in München! appeared first on Salesforce Beratung und Entwicklung vom Profi - mind-force.de.

]]>
Strategische SAP Themen 2017: HANA, Cloud und Co. – das ist das Thema des SAP Tagesseminars am Donnerstag, 27.04.2017 in München. Die Teilnehmer erwarten Informationen zu aktuellen Themen wie z.B. digitale Transformation, SAP HANA, Enterprise-Mobility-Strategie oder Cybersicherheit sowie Expertentipps für ihre SAP-Strategie. Das Seminar richtet sich an IT-Leiter und IT-Verantwortliche.

SAP entwickelt die NetWeaver Plattform und die Business Suite rasch weiter in Richtung HANA und HANA Cloud Services. Auf unserem Tagesseminar am 27.04.2017 in München zeigen wir u.a. auf, wie sich SAP-Lösungen, System-Landschaft, aber auch IT-Prozesse und Arbeitsweisen dadurch verändern und was das für Ihre IT-Strategie bedeutet.

Welchen Einfluss hat die digitale Transformation auf Ihre IT-Strategie? Wie erstellen Sie einen nachhaltigen Fahrplan zu Ihrer individuellen Enterprise-Mobility-Strategie und wie wirkt sich die Politik der SAP im Bereich HR auf Ihre IT-Strategie aus? Was sollten Sie über die HANA Roadmap wissen? Wie können Ihnen Application Management Services und Backfilling als kreative Lösungen für den Fachkräftemangel helfen? Antworten auf diese Fragen geben unsere Experten auf unserem Tagesseminar.

Die Eckdaten auf einen Blick:

Seminar „Strategische SAP Themen 2017“ – 1 Tag
Donnerstag, 27.04.2017
09:00 – 18:00 Uhr
Highlight Towers in München

Weitere Informationen und Agenda: mindsquare.de/tagesseminar-strategische-sap-themen-2017-hana-cloud-co

Anmeldung: mindsquare.de/anmeldung-tagesseminar-strategische-sap-themen-2017-2

Das sagen unsere Kunden zur Veranstaltung:

„So wie mindsquare Projekte bei uns macht, so ist auch die Veranstaltung. Einfach gut.“
(Mitarbeiter SAP HCM, MAN Truck & Bus GmbH)

„mindsquare wirkt sehr professionell und visionär.“
(IT Projektmanager, thyssenkrupp AG)

Weitere Kundenreferenzen finden Sie hier.

Vor Ort begrüßt Sie neben unseren Fachbereichsleitern auch Gründer Ferdinando Piumelli.

Sichern Sie sich jetzt Ihren Platz. Wir freuen uns auf Sie!

Über mindsquare:

mindsquare ist ein IT-Beratungsunternehmen, das sich auf individuelle Softwareentwicklung und Technologieberatung im SAP- und Salesforce-Umfeld spezialisiert hat. Das Unternehmen mit Hauptsitz in Seelze (Niedersachsen) wurde 2007 von Dipl.-Ing. Ferdinando Piumelli und Dipl.-Ing. Patrick Höfer gegründet. Mittlerweile gibt es Standorte in Bielefeld (Ausbildungszentrum), Hamburg, Berlin und Düsseldorf. mindsquare wächst jährlich um 40% in Umsatz und Mitarbeitern. Aktuell arbeiten 130 Mitarbeiter für mindsquare. 2015 erreichte das Unternehmen einen Umsatz von 10,9 Millionen Euro.

Pressekontakt:

Beatrix Reißig
Redaktion/PR
presse@mindsquare.de
0521 9345 939-90

The post Tagesseminar: Strategische SAP Themen 2017 – Demnächst in München! appeared first on Salesforce Beratung und Entwicklung vom Profi - mind-force.de.

]]>
https://mind-force.de/events/tagesseminar-strategische-sap-themen-2017-demnaechst-in-muenchen/feed/ 0
Mock für Schnittstellen im APEX Umfeld https://mind-force.de/salesforce-entwicklung/apex/mock-fuer-schnittstellen-im-apex-umfeld/ https://mind-force.de/salesforce-entwicklung/apex/mock-fuer-schnittstellen-im-apex-umfeld/#comments Fri, 17 Mar 2017 11:13:10 +0000 https://mind-force.de/?p=4826 Fast jedem Entwickler ist es schon passiert: Die neu entwickelten Funktionalitäten können nicht endgültig getestet werden, da eine Schnittstelle zu einem anderen System: noch nicht fertig entwickelt ist auf dem Testsystem nicht zur Verfügung steht einen veralteten Stand hat Unter diesen Umständen ist an einen Integrationstest gar nicht zu denken. Aber muss es denn sein, […]

The post Mock für Schnittstellen im APEX Umfeld appeared first on Salesforce Beratung und Entwicklung vom Profi - mind-force.de.

]]>
Fast jedem Entwickler ist es schon passiert: Die neu entwickelten Funktionalitäten können nicht endgültig getestet werden, da eine Schnittstelle zu einem anderen System:

  • noch nicht fertig entwickelt ist
  • auf dem Testsystem nicht zur Verfügung steht
  • einen veralteten Stand hat

Unter diesen Umständen ist an einen Integrationstest gar nicht zu denken. Aber muss es denn sein, dass sämtliche Salesforce- Tests von der Existenz einer Schnittstelle abhängig sind? Nein! Aus diesem Grund existiert in fast allen Programmiersprachen, die Webservice- Aufrufe bedienen können, die Möglichkeit der Mock- Erstellung.

Was ist ein Mock?

Unter einem Mock kann eine Imitation oder ein Stellvertreter für eine Schnittstelle verstanden werden. Dieser kann die Beantwortung von Webservice- Anfragen anstelle der echten Schnittstelle übernehmen. Im Grunde genommen ist ein Mock ein Methodenaufruf, der das gleiche Interface (Mitgabeparameter und Rückgabeparameter) besitzt, wie der eigentliche Schnittstellenaufruf, den er imitieren soll. Allerdings kann der Mock eine Programmlogik zum Füllen der Rückgabeparameter enthalten, die komplett losgelöst von der Schnittstelle selbst ist.

Wann und wo kommen Mocks zum Einsatz?

Die Antwort hierauf ist einfach: Beim Testen von Coding durch Unit Tests.

Unit Tests werden oft automatisiert und regelmäßig in eingeplanten Testläufen ausgeführt. Sie sollen dazu dienen, sämtliche Programmlogik mit ausgewählten Testdaten zu durchlaufen, um anschließend das Ist- mit dem Soll-Ergebnis zu vergleichen. Sie sind besonders gut dafür geeignet, um sicherzustellen, dass neue Programmänderungen nicht die Funktionalität anderer Programmteile beeinträchtigen. Diese Tests durchlaufen somit Logik, die direkt von den Entwicklern beeinflusst werden kann. Eine Schnittstelle hingegen ist etwas Fremdes von einem anderen System. Ob diese funktioniert und genau das tut wofür sie entwickelt wurde, liegt nicht in der Verantwortung der Unit Tests.

Durch einen Mock kann für die Unit Tests ein Idealzustand (eine funktionierende Schnittstelle) simuliert werden. Somit sind keine Tests beeinträchtigt, selbst wenn es die eigentliche Schnittstelle noch gar nicht gibt.

Wie funktionieren Mocks in APEX?

Am folgenden Beispiel, einem Webservice, der eine Addition zweier Zahlen vornimmt, werden die Bestandteile und die Funktionsweise eines Mocks erläutert.

Als erstes wird ein Schnittstellenaufruf benötigt, der durch einen Mock ersetzt werden kann. Das folgende Coding ist durch WSDL2APEX entstanden und wurde von Salesforce anhand einer WSDL generiert. Mehr Informationen zu WSDL2APEX können hier eingesehen werden.

 public AdditionWebService.String DoAddition(String Username, String Password, String Addent1, String Addent2) {
   AdditionWebService.DoAddition_element request_x = new AdditionWebService.DoAddition_element();
   request_x.Username = Username;
   request_x.Password = Password;
   request_x.Addent1 = Addent1;
   request_x.Addent2 = Addent2;
   AdditionWebService.DoAdditionResponse_element response_x;
   Map<String, AdditionWebService.DoAdditionResponse_element> response_map_x = new Map<String, AdditionWebService.DoAdditionResponse_element>();
   response_map_x.put('response_x', response_x);
   WebServiceCallout.invoke(
     this,
     request_x,
     response_map_x,
     new String[]{endpoint_x,
      'http://www.mindforce.de/webservices/addition/Additionserver.asmx/DoAddition',
      'http://www.mindforce.de/webservices/addition/Additionserver.asmx',
      'DoAddition',
      'http://www.mindforce.de/webservices/addition/Additionserver.asmx',
      'DoAdditionResponse',
      'AdditionWebService.DoAdditionResponse_element'}
   );
   response_x = response_map_x.get('response_x');
   return response_x.DoAdditionResult;
 }

Diese DoAddition Methode kann nun in Salesforce überall aufgerufen werden.

public Integer getAddResult(Integer Addent1, Integer Addent2)
{ 
  AdditionWebService.String result;
  Integer intResult;
  AdditionWebService.AdditionServerSoap addServerSoap = 
                                        new AdditionWebService.AdditionServerSoap(); 
  result = addServerSoap.DoAddition(Params.instance.userName, Params.instance.password, addent1, addent2); 
  intResult = (Integer)result;
  return intResult;
}

Ein ganz normaler Unit Test für die gerade gezeigte getAddResult Methode würde nun bei jedem Durchlauf die Schnittstelle auslösen. Sollte die Schnittstelle nicht erreichbar sein bricht der Test ab.
Um dieses Verhalten zu vermeiden wird ein Mock für diesen Schnittstellenaufruf erstellt.


@isTest
global class MockWebServiceResponseGenerator implements WebServiceMock {
    public MockWebServiceResponseGenerator() {
        
    }
  
    global void doInvoke( Object stub, Object request, Map response, String endpoint,
                          String soapAction, String requestName, String responseNS,
                          String responseName, String responseType) 
    {
      if(request instanceOf AdditionWebService.DoAddition_element) {
        AdditionWebService.DoAddition_element workflowRequest = 
                                          new AdditionWebService.DoAddition_element();
        
        AdditionRequest = (AdditionWebService.DoAddition_element) request;
        String username = workflowRequest.Username;
        String passwd = workflowRequest.Password;
        String addent1 = workflowRequest.addent1;
        String addent2 = workflowRequest.addent2;

        AdditionWebService.DoAdditionResponse_element responseElement = 
                                  new AdditionWebService.DoAdditionResponse_element();
                
        //Call dummy method, that simulates the logic behind the webservice call
        responseElement.DoAdditionResult = dummyDoAdditionCallout(addent1, addent2);
        response.put('response_x', responseElement);
      }
    }

    // dummy method, that simulates the functionality behind the webservice call
    private DQSWebService.ArrayOfArrayOfString dummyDeleteAccountCallout(String addent1, String addent2) 
    {
      AdditionWebService.String result = new AdditionWebService.String();
      Integer add_result = (Integer)addent1 + (Integer)addent2;
      result = add_result;  
      return result;
    }
}

Mocks sind normale APEX Klassen, die das Interface WebServiceMock implementieren. Sie sind immer gleich aufgebaut und können, da sie nur zum Testen dienen, mit der Annotation @isTest versehen werden, um nicht die Salesforce Code Limits zu schmälern. Neben einem Constructor enthalten sie eine doInvoke Methode. Diese wird später dafür zuständig sein, den entsprechenden Webservice Call zu identifizieren und zu behandeln. In diesem Beispiel wird nach dem Typ AdditionWebService.DoAddition_element abgefragt, um zu identifizieren, ob der auszuführende Webservice Call der Additions Service ist. Anschließend werden die Parameter ausgelesen und an eine Dummy Methode übergeben. Die Aufgabe dieser Methode ist es, die Logik hinter dem Webservice zu simulieren. In diesem Fall ist es eine einfache Addition. Dummy Methoden können auch nur aus einer simplen Rückgabe von vorgefertigten Strings bestehen, ohne irgendwelche Logik zu enthalten. Sie sollen schließlich nur für Unit Tests dienen und nicht die Webservice Logik an sich testen.
Der erstellte Mock muss nun noch in die Unit Tests eingebunden werden.

Wie wird ein Mock in einen Unit- Test eingebunden?


@isTest static void testAddition() 
{
  Test.startTest();
  msCalculate calcClass = new msCalculate();
  Test.setMock(WebServiceMock.class, new MockWebServiceResponseGenerator());
  System.assertEquals(calcClass.getAddResult(1, 2), 3)
  Test.stopTest();
}

Durch das Bekanntmachen des Mocks in der Testmethode anhand des Test.setMock Aufrufs, werden alle Schnittstellenaufrufe, die aus dieser Methode abgesetzt werden, an die dort benannte Mock Klasse weitergeleitet. In diesem Beispiel gibt es nur einen Webservice. Jedoch kann hier durchaus in Zukunft noch eine Subtraktion, eine Multiplikation oder eine Division implementiert werden. All diese Calls können über den gleichen Mock abgearbeitet werden. Hierbei muss lediglich in der doInvoke Methode der Mockklasse die Unterscheidung erweitert werden und für die anderen Rechenoperationen entsprechende Dummy- Methoden implementiert werden. Somit muss nicht für jede Schnittstelle ein eigener Mock gebaut werden. Es ist jedoch ratsam zumindest pro Drittsystem, mit dem kommuniziert wird, eine eigene Mock- Klasse zu implementieren, um Verantwortlichkeiten klar voneinander zu trennen.

Setzen Ihre Entwickler Mocks bereits effektiv ein?
Salesforce Senior Consultant Martin Seehase

Haben Sie Fragen oder Anregungen? Verfassen Sie einen Kommentar oder melden Sie sich per Mail bei info@mindsquare.de. Unser Team wird Ihnen schnellstmöglich antworten.

The post Mock für Schnittstellen im APEX Umfeld appeared first on Salesforce Beratung und Entwicklung vom Profi - mind-force.de.

]]>
https://mind-force.de/salesforce-entwicklung/apex/mock-fuer-schnittstellen-im-apex-umfeld/feed/ 0
Erfolgreiches Change Management einer Salesforce Einführung https://mind-force.de/allgemein/erfolgreiches-change-management-einer-salesforce-einfuehrung/ https://mind-force.de/allgemein/erfolgreiches-change-management-einer-salesforce-einfuehrung/#comments Sun, 12 Mar 2017 18:57:39 +0000 https://mind-force.de/?p=4811 Eine Salesforce Einführung bedeutet für den Kunden meistens nicht nur die Einführung eines neuen Tools sondern einen Wandel ihrer gesamten Unternehmensphilosophie und einen Wandel der strategischen Ausrichtung hin zu einem kundenzentrierten Unternehmen. Wandel bedeutet Change und ist eine Managementaufgabe! Ich erlebe es oft, dass bei einem Wandel hin zu einem kunden- und marktzentrierten Unternehmen viele […]

The post Erfolgreiches Change Management einer Salesforce Einführung appeared first on Salesforce Beratung und Entwicklung vom Profi - mind-force.de.

]]>
Eine Salesforce Einführung bedeutet für den Kunden meistens nicht nur die Einführung eines neuen Tools sondern einen Wandel ihrer gesamten Unternehmensphilosophie und einen Wandel der strategischen Ausrichtung hin zu einem kundenzentrierten Unternehmen.

Wandel bedeutet Change und ist eine Managementaufgabe!

Ich erlebe es oft, dass bei einem Wandel hin zu einem kunden- und marktzentrierten Unternehmen viele Mitarbeiter auf der Strecke bleiben. Allein etwa 20% aller Führungskräfte überstehen einen solchen Wandel nicht im Unternehmen. Diesen Wandel durchzuführen ist also eine Managementaufgabe und muss zwingend bei einer Salesforce Einführung und einem damit verbundenen Wandel geplant und durchgeführt werden.

Aber was passiert eigentlich mit einem Mitarbeiter im Laufe eines solchen Wandels?

Kübler Ross Change Kurve

Kübler Ross Change Kurve

 

Die abgebildete Grafik zeigt eine Change Kurve nach Kübler Ross, welche jeder Mensch bei einem größeren Wandel überlebt. Ursprünglich kommt diese Kurve aus der Trauerbewältigung, kann aber für Change Management Prozesse übertragen werden. Im Wesentlichen durchläuft jeder Mitarbeiter bei einem größeren Wandel die folgenden Phasen:

  • Phase 0: Alles beim Alten. Alles ist ok und meine innere Weltanschauung entspricht der Wahrnehmung der Außenwelt.
  • Schock: Für den Mitarbeiter ist der angestrebte Wandel nicht umsetzbar. Er sucht nach Gründen, warum der Wandel nicht umsetzbar ist und erarbeitet sich Argumente, warum dies keine gute Idee ist und warum der neue Wandel so rein gar nicht funktionieren kann. Schließlich ist doch alles gut wie es ist.
  • Verneinung: Wir nennen diesen Punkt auch gern Wutberg. Es wird langsam klar, dass der Wandel wirklich durchgezogen wird und dass es keinen Weg daran vorbei gibt. Es wird weiterhin nach Möglichkeiten gesucht den Wandel zu umgehen, um wieder zum Ursprungszustand und somit der Komfortzone zurückzukehren.
  • Akzeptanz und Tal der Tränen: Die Einsicht dass der Wandel wirklich stattfindet und dass es kein Weg daran vorbeiführt. Es wird akzeptiert, dass die alte Komfortzone verlassen werden muss und dass es keinen Weg zurück gibt.
  • Realisierung und Lernen: Es ändern sich nach und nach Glaubenssätze und vielleicht sogar Werte. Die Benefits des Wandels werden erkannt und neue Verhaltensweisen adaptiert. Die neuen Verhaltensmuster und Werte werden als Bestandteil des Lebens etabliert und die Veränderung wird als Normalzustand wahrgenommen.

Innerhalb eines Change Management Prozesses müssen Ihre Mitarbeiter entsprechend dieser Phasen gesteuert und geführt werden. Sie wollen verhindern, dass der Eindruck entsteht der Wandel wäre nur von kurzer Dauer und dass es einen Weg zurück gibt. Gleichzeitig wollen Sie Ihre Mitarbeiter über den sog. Wutberg verhelfen und ihnen dabei helfen den Wandel zu akzeptieren und persönlich etwas Positives daraus abzuleiten.

 

Was passiert wenn das nicht beachtet wird?

Die Auswirkungen, welche auftreten, wenn der Wandel nicht professionell behandelt wird, habe ich bereits bei vielen meiner Kunden in der Pre-Sales Phase sehen können. Diese gestalten sich oft sehr dramatisch. Die wohl wichtigsten Auswirkungen sind die folgenden:

  1. Mitarbeiter kündigen. Mitarbeiter die abgehangen wurden oder ihre Gewohnheiten beibehalten wollen, werden nicht über den Wutberg geführt und gehen.
  2. Mitarbeiter entwickeln „Schattentools“ anstatt Salesforce richtig zu nutzen. Damit werden implementierte Prozesse torpediert und unterwandert.
  3. Sehen die Mitarbeiter keinen Sinn und keinen Mehrwert für sich selbst, werden Sie das neue System nicht akzeptieren. Entsprechend schlecht wird auch die Datenqualität ausfallen. Grade wenn Sie für Produktionsplanung auf diese Daten angewiesen sind, kann eine schlechte Datenqualität dramatische Auswirkungen haben.

Sie werden nicht weiter wachsen. Sie haben bereits erkannt, dass ein Wandel notwendig ist. Wachstum bedeutet immer Wandel. Wird der Wandel unterlaufen und nicht durchgeführt, wird es für Ihr Unternehmen nicht möglich sein weiter zu wachsen.

Wie kann ich Wandel managen?

Change Management durchläuft immer die gleichen Phasen. Diese sind planbar und steuerbar. Wie geht das?

Es ist wichtig als Teil der Projektkonzeption eine Stakeholder Analyse durchzuführen und Führungskräfte, Unterstützer und Risikokandidaten zu identifizieren. Im Anschluss sollte für jeden Stakeholder entsprechend der Position und dem Grad der Einflussnahme eine Kommunikations- und Change Management Strategie ausgearbeitet werden, welche mit Hilfe der Unterstützer und des Projekt Managements in das Unternehmen getragen wird.

 

Ferdinando Piumelli ist nicht nur Gründer eines der schnellst-wachsenden IT Beratungshäusern Deutschlands, er ist auch der Gründer von Piummelli Strategieberatung mit Spezialisierung auf Change Management und Kommunikationsstrategie.

Change Ahead?
Fachbereichsleiter Robert Richter

Zusammen mit der Piumelli Strategieberatung helfen wir auch ihrem Unternehmen und Ihren Mitarbeitern durch ihre individuelle Transformation hin zu einem kundenorientierten Unternehmen. Melden Sie sich einfach unter: 0211 9462 8572-65 oder Mail an info@mind-force.de wenn sie mehr über das Thema erfahren wollen.

The post Erfolgreiches Change Management einer Salesforce Einführung appeared first on Salesforce Beratung und Entwicklung vom Profi - mind-force.de.

]]>
https://mind-force.de/allgemein/erfolgreiches-change-management-einer-salesforce-einfuehrung/feed/ 0
Lightning Experience: Anhänge bei der Lead Konvertierung https://mind-force.de/salesforce-entwicklung/lightning/lightning-experience-anhaenge-bei-der-lead-konvertierung/ https://mind-force.de/salesforce-entwicklung/lightning/lightning-experience-anhaenge-bei-der-lead-konvertierung/#comments Mon, 06 Mar 2017 18:47:56 +0000 https://mind-force.de/?p=4757 Heute möchte ich Ihnen einen Einblick in eine ganz spezielle Lightning Herausforderung geben. Mit Lightning Experience ist es derzeit im Standard nicht möglich, Anhänge bei der Lead Konvertierung zu übertragen, wie Sie hier sehen können. Hintergrund Einer meiner Kunden benutzt Leads, um sogenannte Prospects im Detail zu qualifizieren. Bei der Leadkonvertierung benötigt der Kunde alle […]

The post Lightning Experience: Anhänge bei der Lead Konvertierung appeared first on Salesforce Beratung und Entwicklung vom Profi - mind-force.de.

]]>
Heute möchte ich Ihnen einen Einblick in eine ganz spezielle Lightning Herausforderung geben. Mit Lightning Experience ist es derzeit im Standard nicht möglich, Anhänge bei der Lead Konvertierung zu übertragen, wie Sie hier sehen können.

Hintergrund

Einer meiner Kunden benutzt Leads, um sogenannte Prospects im Detail zu qualifizieren. Bei der Leadkonvertierung benötigt der Kunde alle gesammelten Informationen des Leads auf dem Account, um damit verschiedene Opportunities abwickeln zu können.

Überlegungen

Da es keinen bekannten Weg gibt, diese Anforderung mit Salesforce Standardtools umzusetzen, wird ein Apex Trigger benötigt.

Dafür ist es zunächst wichtig zu wissen, welches Objekt die Anhang-zu-Objekt Beziehung enthält. In Lightning Experience werden diese im Objekt ContentDocumentLink abgebildet. Die wichtigsten Felder sind dabei ContentDocumentId und LinkedEntityId. ContentDocumentId repräsentiert dabei das Dokument bzw. den Anhang und LinkedEntityId steht für das Objekt, also bspw. den Lead, an dem der Anhang hängt.

Die nächste Überlegung beschäftigt sich mit der Frage nach dem Trigger-Typ (before, after) und der Art des Triggers (insert, update, delete, …). Die Leadkonvertierung ist eine Update-Operation. Dabei bekommt der Lead den Status isConverted = true und erhält eine ConvertedAccountId. Um ein Dokument an den Account anhängen zu können, muss dieser zum Zeitpunkt, wenn der Trigger ausgeführt wird, bereits angelegt sein. Sonst ist es nicht möglich, auf die Daten zugreifen zu können. Dies ist im ‘after’ Kontext der Fall, wenn der Account bereits auf der Datenbank gespeichert, aber noch nicht eingecheckt wurde (siehe dazu Triggers and Order of Execution). Es gilt also einen after update Trigger zu erstellen.

Umsetzung

Nach den Vorüberlegungen ist es nun möglich, eine Lösung in der Salesforce Entwicklungsumgebung zu erstellen.

Im Folgenden finden Sie Beispiel-Code für die Umsetzung. Dieser Code ist in einem best practice Trigger Pattern umgesetzt. Dieses benutzt eine Klasse namens LeadAfterUpdateTriggerHandler, um vorher alle Leadobjekte vom after update Trigger zu sammeln und gemeinsam zu verarbeiten. Dafür stellt die Klasse zwei Maps (mapOldLeads und mapNewLeads) zur Verfügung. Diese beinhalten die Zustände der Leads vor und nach der Konvertierung.

    1. Das erste Beispiel zeigt eine Helper Methode, die alle konvertierten Leads aus dem Trigger filtert und als Set der Methode transferLeadAttachmentsToAccount übergibt. Dadurch lassen sich leicht andere Methoden hinzufügen, die weitere Zusatzaufgaben während der Lead-Konvertierung übernehmen könnten.
public static void advancedLeadConversion(Map<Id, Lead> mapOldLeads, Map<Id, Lead> mapNewLeads) {
    Set<Id> setLeadIds = new Set<Id>();
    for(Id newLeadId : mapNewLeads.keySet()){
        if(mapOldLeads.get(newLeadId).isConverted == false && mapNewLeads.get(newLeadId).isConverted == true){
            setLeadIds.add(newLeadId);
        }
    }
    if(setLeadIds.isEmpty())
        return;
    transferLeadAttachmentsToAccount(setLeadIds, mapNewLeads);
}

 

    1. Das zweite Beispiel zeigt das Vorgehen, um die Anhänge vom Lead zum Account zu bekommen. Das ContentDocumentLink Objekt wird genutzt, um alle Anhänge pro Lead gesammelt an den Account zu hängen. Wichtig hierbei ist, dass bestehende Einträge in ContentDocumentLink gelöscht werden, da keine doppelten ContentDokumentId‘s vorkommen dürfen. Es ist also nicht möglich, dasselbe Dokument gleichzeig an zwei Objekte zu hängen.
public static void transferLeadAttachmentsToAccount(Set<Id> setLeadIds, Map<Id, Lead> mapNewLeads) {
    Map<Id,List> mapOfAttsPerLeadIdToInsert = new Map<Id,List>();
    List<ContentDocumentLink> listOfAttachmentsToDelete = [select Id, ContentDocumentId, LinkedEntityId, ShareType from ContentDocumentLink where LinkedEntityId in :setLeadIds];
    for(ContentDocumentLink cdl : listOfAttachmentsToDelete){
        ContentDocumentLink newCdl = new ContentDocumentLink(ContentDocumentId = cdl.ContentDocumentId, LinkedEntityId = mapNewLeads.get(cdl.LinkedEntityId).ConvertedAccountId, ShareType = cdl.ShareType);
        if(mapOfAttsPerLeadIdToInsert.containsKey(cdl.LinkedEntityId)){
            mapOfAttsPerLeadIdToInsert.get(cdl.LinkedEntityId).add(newCdl);
        }else{
            mapOfAttsPerLeadIdToInsert.put(cdl.LinkedEntityId, new List<ContentDocumentLink>{newCdl});
        }
    }
    List<ContentDocumentLink> listOfAttachmentsToInsert = new List<ContentDocumentLink>();
    for(List listOfAttachments : mapOfAttsPerLeadIdToInsert.values()){
        listOfAttachmentsToInsert.addAll(listOfAttachments);
    }
    delete listOfAttachmentsToDelete;
    insert listOfAttachmentsToInsert;
}

Ich hoffe ich konnte Ihnen mit diesem Lösungsvorschlag helfen und wünsche Ihnen viel Erfolg der Umsetzung.

Sie interessieren sich für Lightning Experience?
Salesforce Consultant Alexander Herrmann

Haben Sie Fragen oder Anregungen? Verfassen Sie einen Kommentar oder melden Sie sich per Mail bei info@mindsquare.de. Unser Team wird Ihnen schnellstmöglich antworten.

The post Lightning Experience: Anhänge bei der Lead Konvertierung appeared first on Salesforce Beratung und Entwicklung vom Profi - mind-force.de.

]]>
https://mind-force.de/salesforce-entwicklung/lightning/lightning-experience-anhaenge-bei-der-lead-konvertierung/feed/ 0
Salesforce Enterprise Territory Management https://mind-force.de/salesforce-customizing/berechtigungen/salesforce-territory-management/ https://mind-force.de/salesforce-customizing/berechtigungen/salesforce-territory-management/#comments Fri, 24 Feb 2017 15:36:56 +0000 https://mind-force.de/?p=4659 Sie wollen Ihre Berechtigungsstruktur für Accounts, Opportunities und Cases auf Ihre Vertriebsgebiete anpassen? Enterprise Territory Management ermöglicht Ihnen genau das. Wie funktioniert Territory Management? Durch das Enterprise Territory Management haben Sie die Möglichkeit, ein Territory Model zu erstellen, welches große Ähnlichkeit zur Salesforce Rollenhierarchie aufweist. Dabei Erstellen Sie eine Hierarchie anhand der gewünschten Territories. Diese […]

The post Salesforce Enterprise Territory Management appeared first on Salesforce Beratung und Entwicklung vom Profi - mind-force.de.

]]>
Sie wollen Ihre Berechtigungsstruktur für Accounts, Opportunities und Cases auf Ihre Vertriebsgebiete anpassen?

Enterprise Territory Management ermöglicht Ihnen genau das.

Wie funktioniert Territory Management?

Durch das Enterprise Territory Management haben Sie die Möglichkeit, ein Territory Model zu erstellen, welches große Ähnlichkeit zur Salesforce Rollenhierarchie aufweist. Dabei Erstellen Sie eine Hierarchie anhand der gewünschten Territories. Diese kann zum Beispiel wie in der folgenden Abbildung auf Basis von Kontinent und Länder aufgebaut sein.

TerritoryModel1

Sobald Sie eine Territory Model erstellt haben, können Sie den einzelnen Territories Accounts zuordnen. Ein Account kann einem oder mehreren Territories zugeordnet sein. Anschließend können Sie einzelne User auf die entsprechenden Territories berechtigen.

Welche Zugriffe die User auf die Accounts eines Territory und deren Opportunities und / oder Cases haben sollen, können Sie granular auf dem Territory bestimmen.

Vorteile von Territory Management

Sie können durch das Enterprise Territory Management eine beliebige Vertriebsstruktur erstellen und ihre User für die entsprechenden Strukturen berechtigen. So lassen sich nicht nur Vertriebsgebiete abbilden, sondern Sie können zum Beispiel wie in folgenden Abbildung dargestellt, auch eine Hierarchie anhand von Märkten und Branchen oder Produktgruppen und Produkten abbilden.

TerritoryModel2

Accounts können durch sogenannte Territory Assignment Rules anhand definierter Merkmale einem Territory automatisiert zugewiesen werden. Dadurch erhalten alle User des Territories unverzüglich den entsprechenden Zugriff auf den Account, die Opportunities und die Cases.

Diese Art der Berechtigungsstruktur lässt sich ohne Enterprise Territory Management nur sehr kompliziert abbilden, zum Beispiel durch Sharing Rules. Durch den Einsatz von Enterprise Territory Management können Sie somit die Anzahl an Sharing Rules reduzieren und ein transparentes Berechtigungskonzept mit einer komfortablen Berechtigungsoberfläche schaffen.

Was ist bei der Einführung von Enterprise Territory Management zu beachten?

Enterprise Territory Management ist ein kostenfreies Out-of-the-Box Feature der Salesforce Enterprise- oder Unlimited-Edition. Um Enterprise Territory Management nutzen zu können, müssen Sie dieses Feature von Salesforce für Ihre Salesforce Organisation aktivieren lassen. Hierzu müssen Sie lediglich einen Case über die Salesforce Support-Seite eröffnen.

Die Aktivierung von Enterprise Territory Management setzt voraus, dass in Ihrer Salesforce Organisation Customizable Forecasting deaktiviert ist. Eine parallele Nutzung von Enterprise Territory Management und Customizable Forecasting ist zum jetzigen Zeitpunkt leider nicht möglich.

Sie müssen jedoch nicht auf die Forecast Funktionalitäten von Salesforce verzichten, denn Sie können parallel zum Enterprise Territory Management Collaborative Forecasts in Ihrer Salesforce Organisation verwenden.
Wenn Sie mehr über die Unterschiede zwischen Customizable Forecasts und Collaborative Forecasts erfahren möchten, empfehle ich die offizielle
Salesforce Dokumentation.

Persönliche Erfahrungen mit Enterprise Territory Management

Ich habe bei meinem Kunden das Enterprise Territory Management erfolgreich eingeführt, dabei habe ich eine Territory Hierarchie anhand von Kontinenten, Ländern und Bundesländern erstellt. Durch die Territory Hierarchie werden alle Kontinente der Welt und über 250 verschiedene Ländern abgebildet, um die Zugriffe von Sales-Partnern auf über 400.000 Accounts und deren Opportunities anhand des Account-Landes zu verwalten.

Durch die Einführung von Enterprise Territory Management konnte die Anzahl der Sharing Rules, die für die bisherigen länderbezogenen Berechtigungen zuständig waren, von 176 auf 0 reduziert werden. Außerdem wurde ein transparentes Berechtigungsmodel geschaffen.

Jetzt liegt die Entscheidung in Ihrer Hand! Schaffen Sie mit Salesforce Enterprise Territory Management eine passende Berechtigungsstruktur zu Ihren Vertriebsgebieten!
Salesforce Consultant Patrick Holder

Haben Sie Fragen oder Anregungen? Verfassen Sie einen Kommentar oder melden Sie sich per Mail bei info@mindsquare.de. Unser Team wird Ihnen schnellstmöglich antworten.

The post Salesforce Enterprise Territory Management appeared first on Salesforce Beratung und Entwicklung vom Profi - mind-force.de.

]]>
https://mind-force.de/salesforce-customizing/berechtigungen/salesforce-territory-management/feed/ 0
Optimale Entwicklung mit Salesforce https://mind-force.de/salesforce-customizing/forcecom/optimale-entwicklung-mit-salesforce/ https://mind-force.de/salesforce-customizing/forcecom/optimale-entwicklung-mit-salesforce/#comments Tue, 21 Feb 2017 20:25:10 +0000 https://mind-force.de/?p=4703 Wie kann eine optimale Entwicklung mit Salesforce aussehen? Mit Salesforce.com ab Lightning Enterprise (früher: Enterprise Edition) gibt es neben der Administration bzw. dem Customizing auch die Möglichkeit, Implementierungen in Apex vorzunehmen. Innerhalb dieses Beitrages möchte ich Ihnen näher bringen, worauf beim Entwickeln innerhalb von Salesforce.com zu achten ist. Dies werde ich anhand verschiedener Punkte demonstrieren. […]

The post Optimale Entwicklung mit Salesforce appeared first on Salesforce Beratung und Entwicklung vom Profi - mind-force.de.

]]>
Wie kann eine optimale Entwicklung mit Salesforce aussehen? Mit Salesforce.com ab Lightning Enterprise (früher: Enterprise Edition) gibt es neben der Administration bzw. dem Customizing auch die Möglichkeit, Implementierungen in Apex vorzunehmen. Innerhalb dieses Beitrages möchte ich Ihnen näher bringen, worauf beim Entwickeln innerhalb von Salesforce.com zu achten ist. Dies werde ich anhand verschiedener Punkte demonstrieren.

Einheitliche Entwicklungsrichtlinie

Durch eine Entwicklungsrichtline können Sie die Qualität des Codes sichern. Entsprechende Best Practices helfen dem Developer Klassen, Methoden und Felder schnell zu identifizieren und anschließend auch damit arbeiten zu können. Daraus resultieren Vorteile wie z. B.:

  • Hohe Nachvollziehbarkeit des Codes
  • Schnelle Behebung von Bugs
  • Vereinfachte Einarbeitung neuer Developer

Strukturierter Deployment-Prozess

Ein definierter und strukturierter Deployment-Prozess ist bei mehreren Entwicklern oder verschiedenen Developer-Teams zwingend notwendig. Nur so lässt sich vermeiden, dass durch diverse Deployments Code von anderen Entwicklern überschrieben wird. Es empfiehlt sich zudem, das Deployment regelmäßig (z. B. alle zwei Wochen) durchzuführen. Hierbei ist es sinnvoll, einen Deployment-Verantwortlichen zu benennen. Er sorgt für gleiches Verständnis bei allen. Beispielhafte Themen sind: Deployment Instruktionen, Transportpakete, Dokumentation. Mergen von Entwicklungen.
Deployment

Testklassen sind wichtig

Zur Durchführung eines Deployments fordert die Salesforce-Plattform eine Testklasse mit mindestens 75% Code-Abdeckung. Das Erreichen der Code-Abdeckung ist recht schnell erreichbar, sorgt aber nur dafür, dass das Deployment funktioniert. Viel besser wird es, wenn Sie die Testklassen verwenden, um neben der Code-Abdeckung auch zu prüfen, ob das erwartete Ergebnis eintritt. Durch gute Vergleiche lassen sich spätere Fehler vermeiden und bei Weiter- bzw. Neuentwicklungen eher sehen, ob neue Probleme auftreten. Nutzen Sie hier mehrere Testmethoden in Ihrer Klasse, sodass verschiedene Fälle geprüft werden können.

Vermeidung von hart-codierten Texten und Werten

Bei der Entwicklung ist es zu vermeiden, Texte und Werte direkt in den Quelltext zu schreiben. Der Nachteil ist offensichtlich, denn jede Anpassung am Business-Prozess würde eine Änderung des Codes sowie ein Deployment zufolge haben. Als Lösung bieten sich hier Custom Labels, Custom Settings und Custom Objects an.

Beachtung der Limitierungen von Salesforce

Ihre Salesforce-Umgebung liegt auf einem Server, auf dem auch Orgs anderer Kunden gehostet sind. Um die Server performant und stabil zu halten, hat Salesforce Limitierungen bei der Apex-Programmierung eingebaut. Eine erste Übersicht ist hier zu finden.

Zuerst das Problem verstehen

Sie haben für Ihre Salesforce-Umgebung neue Ideen, die sofort umzusetzen sind. Sie können dies natürlich recht bequem schnell durchführen, jedoch rate ich Ihnen davon ab. Bevor Sie mit der Umsetzung starten, sollten Sie das Problem im Detail identifizieren und verstehen. Eine sofortige Umsetzung kann dazu führen, dass „quick & dirty“ eine Lösung implementiert wird, die später zu neuen Herausforderungen im Gesamtkonzept führen.
ProblemSolving

Vermeidung von Workarounds bei der Implementierung

An die Problemdefinition schließt sich die Umsetzung an. Bei der Implementierung lässt sich eine Lösung schnell und vielleicht unsauber umsetzen. Vermeiden Sie dies! Nutzen Sie die Möglichkeiten, ordentlichen Code zu schreiben, der später wiederverwendet werden kann. So werden ungewollte Bugs verhindert und ein späteres Refactoring kann vermieden werden.

Vorteile von AppExchange und Helper-Klassen

Nicht jede Idee müssen Sie neu umsetzen. Ein Blick in den Salesforce AppExchange kann Ihnen helfen. Dort finden Sie fertige Lösungen für verschiedene Business-Prozesse, zum Teil sind diese Anwendungen kostenfrei. Bei den kostenpflichtigen Apps ist neben einer ausführlichen Analyse (Passt das Produkt und die angebotene Lösung?) auch eine ROI-Betrachtung durchzuführen.
Bei einer Lösung ohne App aus dem AppExchange folgt eine Eigenentwicklung. Schreiben Sie die Komponenten und den Code so, dass dieser wiederverwendet werden kann. So ist es manchmal sinnvoll, einzelne wiederkehrende Elemente von Visualforce Seiten (z. B. eine Produktauswahl) in Komponenten auszulagern, sodass diese in mehreren Seiten eingesetzt werden können. Für die objektorientierte Sprache Apex ist gleichermaßen zu verfahren. Lagern Sie häufig verwendete Methoden in Helper-Klassen aus.

Konfiguration vs. Entwicklung

Nicht immer muss eine Problemstellung durch Programmierung gelöst werden. Das Salesforce-Framework bietet viele starke Standardfunktionalitäten, die einerseits einfach anpassbar und zudem release-sicher sind. Zudem ist hier kein Deployment zwingend notwendig. Entwickler neigen dazu, schnell neue Anforderungen zu implementieren – behalten Sie einen Überblick über einfache Standardalternativen.

Im Prinzip: KISS

Eine optimale Entwicklung in Salesforce ist nicht trivial. Die angesprochenen Punkte sind allgemeingültig, trotzdem werden diese in vielen Projekten nur halbherzig beachtet. Behalten Sie daher diese Punkte im Hinterkopf und sorgen Sie dafür, dass Ihre Salesforce-Plattform nicht verbogen und zu einem komplexen System wird. Das Prinzip KISS (Keep It Simple Stupid) fasst dies gut zusammen und könnte als Handlungsgrundlage für neue Implementierungen verwendet werden.

KISS - Keep It Simple Stupid

Theorie ist schön und gut. Sie wollen wissen, ob bei Ihnen optimal entwickelt wird? Dann kontaktieren Sie uns gern direkt.
Salesforce Consultant Robert Zentgraf

Haben Sie Fragen oder Anregungen? Verfassen Sie einen Kommentar oder melden Sie sich per Mail bei info@mindsquare.de. Unser Team wird Ihnen schnellstmöglich antworten.

The post Optimale Entwicklung mit Salesforce appeared first on Salesforce Beratung und Entwicklung vom Profi - mind-force.de.

]]>
https://mind-force.de/salesforce-customizing/forcecom/optimale-entwicklung-mit-salesforce/feed/ 0