Hilfe bei einfachem Bericht

14. Dezember 2012 17:48

Hallo zusammen,

ich bin gerade dabei einen einfachen Bericht zu erstellen.
Folgendes Szenario:
Ich habe mir 10 Kunden angelegt mit unterschiedlichen Familienzuständen (ledig, verheiratet, geschieden)
Des Weiteren habe ich mir 2 Produkte angelegt (2 unterschiedliche Fahrzeuge).
Jetzt möchte ich gerne folgenen Bericht erstellen:

Zeige mir alle Produkte (Autos an, die ein verheirateter Mann/Frau kauft), Geschlecht kann vorerst mal außer Acht gelassen werden.
Jetzt habe ich aber das Problem welche Datensatztypen ich in dem Bericht-Assistent angeben soll.
Wenn ich Rechnung(Produkte) auswähle, kann ich ja später nur Datensätze einer Rechnung ausgeben, aber ich will die Namen der Kunden anzeigen.

Kann mir jemand bitte weiterhelfen, wie ich so eine Abfrage (über 2 Datenspalten) mache?
Geht das überhaupt in diesem Berichtsassistent?
Wie komplex können solche Berichte mit Hilfe des Asssistenten werden?

Vielen Dank für Antworten

Re: Hilfe bei einfachem Bericht

14. Dezember 2012 18:20

Hallo,

der Assistent ist nur für einfache Berichte gedacht. Sobald es etwas kompliziert wird, musst du den Report mit anderen Mitteln anpassen, z.B. Visual Studio.

Re: Hilfe bei einfachem Bericht

14. Dezember 2012 18:24

ist das in dem Fall ein komplexer Bericht?

Re: Hilfe bei einfachem Bericht

14. Dezember 2012 18:30

Alle Berichte sind komplexe Berichte :-)

Aber im Ernst, der Assistent kann nur einfach Listendarstellungen und etwas gruppieren, sobald du Daten aus anderen Entitäten mit aufnehmen möchtest, ist der Assistent in der Regel überfordert.

Re: Hilfe bei einfachem Bericht

17. Dezember 2012 09:11

Hallo vished,
bei Kunden gehe ich mal von Account aus (bei anderer Entität kann es Abweichen)
Habe hier gleichzeitig noch die CRMAF Alias verwendet. Damit kannst du auch die Advanced Find Möglichkeit verwenden [Standardfilter Einstellung] dann kann dein Bericht auch nur aus einem Datensatz aufgerufen werden, dann wird hier schon vorgefiltert.

SELECT
CRMAF_FilteredAccount.accountname,
CRMAF_FilteredProduct.name,
FROM
FilteredProduct AS CRMAF_FilteredProduct
INNER JOIN FilteredAccount AS CRMAF_FilteredAccount
ON CMRAF_FilteredProduct.LookupIdZuAccount = CRMAF_FilteredAccount.accountid
WHERE
CRMAF_FilteredAccount.new_familienstand = 'verheiratet' (bei einer Pickliste halt hier den Value prüfen)

Grüße
gE3z

Re: Hilfe bei einfachem Bericht

18. Dezember 2012 12:37

Hallo gE3z,

vielen Dank für deine Antwort.
Ich habe die Kunden als "Kontakte" angelegt.

Leider habe ich noch gar keinen Durchblick. Daher jetzt auch eine absolute Anfängerfrage:
Wo pflege ich diese SQL-Abfrage ein? In Visual Studio? IN CRM? Oder wie mache ich das?

Ich würde gerne einfach mal nur einen Bericht (mit deinem SQL-Statement) erstellen, um einfach mal ein Gespühr zu bekommen, wie das grundsätzlich geht.
Wäre super, wenn du oder jemand ahnderes mir hierzu noch ein paar Zeilen schreiben könnte. Besten Dank

Re: Hilfe bei einfachem Bericht

18. Dezember 2012 15:03

Hallo vished,
die SQL-Abfrage pflegst du in Visual Studio. Habe bis jetzt nur Erfahrung mit Reporting in VS 2005 und VS 2008 und finde Reporting und VS 2008 wesentlich kompfortabler. Bei Visual Studio benötigst du das entsprechende Reporting Business Intelligence.
Was hast du dir vorstellt wie man dir Berichte besser beibringen kann? Sehe hier 3 Möglichkeiten: Entweder versuchen sich einen eigenen zu überlegen (bspweise: Alle Kontakte zu einer Firma anzeigen / Alle Firmen sortiert darstellen), oder nach Tutorial suchen, oder Workshop. Bei uns in der Firma machen wir dazu immer Meetings.

Habe dir mal die SQL Abfrage angepasst:
SELECT
CRMAF_FilteredContact.accountname,
CRMAF_FilteredProduct.name,
FROM
FilteredProduct AS CRMAF_FilteredProduct
INNER JOIN FilteredContact AS CRMAF_FilteredContact
ON CMRAF_FilteredProduct.LookupIdZuContact = CRMAF_FilteredContact.contactid
WHERE
CRMAF_FilteredContact.new_familienstand = 'verheiratet' (bei einer Pickliste halt hier den Value prüfen)

Grüße
gE3z

Re: Hilfe bei einfachem Bericht

18. Dezember 2012 15:12

wow. super.
Vielen Dank, dann werde ich mich hier mal einlesen.
Jetzt habe ich trotzdem noch ein paar Fragen: :oops:

1.) Den Bericht erstelle ich mir ja in VS. Speichere ich die entsprechende Datei dann ab und lade sie dann in CRM 2011 hoch?
Was für eine Dateiendung hat diese Datei? Steckt in der erstellten Datei dann nur XML?
2.) Was bedeutet das CRMAF in deiner Abfrage?
3.) Der Workflow würde mich noch interessieren. Ich stelle mir das so vor... Ist das so korrekt?
a) Bericht in VS erstellen
b) Bericht in CRM 2011 hochladen
c) Bericht wird von einem User ausgeführt
d) Die erstellte Datei in VS wird mit der Reporting Services Komponente vom SQL Server verbunden, die Daten werden aufbereitet und transformiert und die Ausgabe erfolgt nun in CRM als Diagramm oder Liste

Stimmt das so?

Re: Hilfe bei einfachem Bericht

18. Dezember 2012 19:28

hm, die Abfrage stimmt glaube ich nicht ganz

Ich bekomme ein Error bei LookupIdZuContact.
Die Where-Klausel müsste jedoch auch so heißen: WHERE (CRMAF_FilteredContact.familystatuscode = 'ledig')

Weiß jemand wo der Fehler liegt?

Re: Hilfe bei einfachem Bericht

19. Dezember 2012 09:12

Hallo vished,
das ist logisch, dass die Abfrage Fehler auftreten, da ich deine Customizings nicht habe weiß ich auch die Attribute nicht, welche ersetzt werden müssten. Ich dachte die Namen wären aussagekräftig genug.
Naja LookupIdZuContact sollte ein Platzhalter sein den du noch ersetzen musst mit dem Schemanamen im Produkt, welches auf dein Kontakt zeigt. (Beispielsweise: Contact --> parentcustomerid --> account [dann wäre parentcustomerid das Lookup auf Account]) das musst du ersetzen. Genauso handelt es sich um "new_familienstand" hier musst du den Schemanamen für das Feld setzen. Wie ich gesehen habe hast du es ja bereits geändert auf familiystatuscode. Hier musst du prüfen ob es sich tatsächlich um ein Textfeld sich handelt. Wenn ja passt deine Where-Bedingung, ansonsten musst du auf dein OptionSetWert prüfen bzw den Feldnamen anpassen [OptionSetFelder haben immer einen Namen und ein dazugehöriges Value] für Value wird meist familystatuscode genommen und für den Wert famalystatuscodename.

Zu deinen Punkten:
1) Die Dateiendung deines Reports endet auf ".rdl". Wenn du den Bericht im Notepad beispielsweise öffnest erhälst du eine XML-Struktur.
2) CRMAF steht für CRM Advanced Find. Damit kannst du Standardfilter für deinen Bericht vergeben. D.H. du müsstest nichtmal deine Where-Bedingung in deine SQL Abfrage machen, das könntest du auch über diese Advanced Find realisieren.
3) a-c ja passt, d Beim einspielen im CRM wird automatisch eine Verbindung mit deinem SQL-Server und der dazugehörigen CRM Datenbank erstellt. Öffnest du den Bericht wird automatisch die SQL Abfrage ausgeführt und entsprechend in dein Diagramm bzw deine Liste gefüllt.

Grüße
gE3z

Re: Hilfe bei einfachem Bericht

19. Dezember 2012 12:25

Hallo gE3z,

ich habe gerade in der Tabelle "CRMAF_FilteredProduct" nachgeschaut:
Hier gibt es keine "parentzuirgendwas".
Bei CRMAF_FilteredContact gibt es jedoch mehrere parants wie z.B. (parentcontactid, parantcostumerid usw.).

Was mache ich nun?

Im Prinzip habe ich an der Datenbank nichts geändert. Ich habe Dynamcis 2011 installiert und die Beispieldatenbank importiert. Mehr nicht.

Re: Hilfe bei einfachem Bericht

20. Dezember 2012 09:00

Hallo vished,
es muss auch nicht unbedingt mit parent anfangen, sollte nur ein Beispiel sein, dass du dir zeigt was der Schemaname eines Lookups ist. Gehen wir mal von einer anderen Seite vor :).
Wie stellst du deine Verbindung zwischen Kontakt und Produkt her? Hast du da ein Lookup in einer der beiden Entitäten? Wenn ja gehst du ins Customizings --> Entität (in der auch das Lookup ist) --> Forms --> Main Form öffnen --> Doppelklick auf das Lookup --> Reiter Details auswählen --> Unter Name findest du dann deinen Schemanamen.
Wenn du kein Lookup hast, dann hast du eine M:N Verbindung [kannst du sehen, wenn in beiden Entitäten in der NavBar für beide Entitäten jeweils die andere Entität steht] dann musst du über diese dritte Tabelle die Datenselektieren. Wir können dies gerne auch in einem privaten Chat machen und ich kanns mir über TeamViewer anschauen. Hätte halt nur abends Zeit.

Grüße
gE3z