none
Aktuell geöffnete VKC als Parameter an einen Bericht weitergeben RRS feed

  • Frage

  • Hallo zusammen,

     

    in folgendem Link ist beschrieben wie ich einen gerade authentifizierten Benutzer abfrage.

    http://social.msdn.microsoft.com/Forums/de-DE/crmgerman/thread/66fa6844-a012-472d-947e-86f08ce5fe45

    soetwas bräuchte ich um abzufragen welche VKC gerade offen ist.

     

    Die idee dahinter ist, dass man von einer Verkaufschance einen Bericht startet und dieser dann zu der VKC gewisse Informationen rausspuckt, die in einem Bericht eben grafisch etc. schön aufbereitet sind.

    Ich habe versucht mir ein Beispiel an der fn_FindUserGuid() Funktion zu nehmen aber diese verweist dann auf eine System Funktion (suser_sname) und diese ist leider nicht einsehbar.

    Hat hier gegebenenfalls jemand einen Weg, eine Lösung oder eine Idee? :)

     

    Vielen Dank bereits im Vorraus

     

    Martin

    Dienstag, 11. Mai 2010 13:57

Antworten

  • Hallo Martin,

    was mir als erstes auffällt ist, das du die Möglichkeiten der FilteredView gar nicht nutzt.

    Du kannst deine beiden Case Blöcke sparen und direkt auf den Namen des Statecodes zugreifen, dieser ist in der FilteredView enthalten (activitytypecodename)

    Der Fehler liegt in dieser Zeile: FilteredOpportunity ob AS CRMAF_Opportunity

    Du definierst den Namen der FilteresOpportunity als ob und dann anschließend noch mit AS als CRMAF_Opportunity, das kann nicht funktionieren.


    Viele Grüße

    Michael Sulz
    MVP für Microsoft Dynamics CRM

    Freitag, 14. Mai 2010 09:15
  • Eigentlich sollte es CRMAF_FilteredOpportunity heißen.

    Siehe dazu auch: http://msdn.microsoft.com/en-us/library/bb955092(v=MSDN.10).aspx


    Jürgen Beck

    Dipl. Kfm./Wirtschaftsinformatik
    MVP, MCSD.NET, MCITP DBA, MCDBA, MCSE
    Microsoft Certified Business Management Solutions Professional
    Microsoft Certified CRM Developer
    Microsoft Certified Trainer

    ComBeck IT Services & Business Solutions
    Microsoft Gold Certified Partner
    Microsoft Small Business Specialist

    Developing & Supporting Business Applications from small business to big enterprises covering scores of sectors

    http://www.combeck.de
    Montag, 17. Mai 2010 16:51
    Moderator

Alle Antworten

  • Hallo Martin,

     

    ich denke für diesen Fall brauchst du die fn_FindUserGuid() nicht. Die brauchst du ja nur, wenn du Datensätze auf z.B den Owner oder Ersteller filtern willst.

     

    Was du brauchst ist:

     

    http://www.crmconsult.info/blog/_archives/2009/6/19/4227025.html

     

    Wobei das Beispiel für den Reporting Services 2008 ausgelegt ist, aber im Endeffekt keinen Unterschied macht.

    Wenn du deine Query mit dem Prefix CRMAF_ belegst, hast du die Möglichkeit beim Hochladen des Berichts zu sagen, "Verknüpfte Formular ( o.ä. )".

    Damit wirst du, wenn du den Bericht aus der verkaufschance heraus startest, den bericht nur für diese eine verkaufschance sehen.

     

    Gruß

    Andreas

    Dienstag, 11. Mai 2010 14:14
  • <Hallo Martin,

     

    du kannst über bestimmte Konventionen einen Report kontextabhängig machen. Das bedeutet, dass der Report sich beim Ausführen im Detailfenster auf den gerade aktiven Datensatz bezieht. Und entsprechend beim Ausführen in der Listendarstellung auf den markierten bzw. alle markierten Datensätze.

     

    Das funktioniert dann bei dir beim Reportaufruf aus Verkaufschance. Es ist eine Voraussetzung, dass Du mit dem „CRMAF_“ – Alias arbeitest.

     

    Einige Infos:  http://blogs.javista.com/2009/03/18/microsoft-dynamics-crm-pre-filtering-tips/


    Herzliche Grüße / Kind regards Markus Müller
    Dienstag, 11. Mai 2010 14:17
  • Vielen Dank für die schnelle Antwort ich werde diesen Lösungsweg mal ausprobieren :) 

     

    Mit der fn:FindUserGuid() wollte ich mir eigentlich nur die Funktionsweise etwas anschauen um so eventuell auf was anderes umbauen zu können :) 

    War lediglich ein erster Gedanke :) 

     

    VG

    Martin

    Dienstag, 11. Mai 2010 14:18
  • Kann es sein, dass dieses prefiltering (CRMAF_) nicht funktioniert wenn man noch eine weitere Sicht joint.

    Um klar zu machen, was ich meine poste ich hier mal meine query.

    ein paar Zeilen sind auskommentiert, da ich diese Werte nur zur Überprüfung benötigt habe.

     

    Hat hier jemand noch eine Idee?

    VG

    Martin

     

    select		CRMAF_opportunity.name
    --		, CRMAF_opportunity.opportunityid
    --		, apb.regardingobjectid
    		, apb.subject
    		, CRMAF_opportunity.description
    		, apb.scheduledend
     , apb.description
    		, CASE
    			WHEN apb.activitytypecode = '4201' THEN 'Termin'
    			WHEN apb.activitytypecode = '4210' THEN 'Telefonanruf'
    			WHEN apb.activitytypecode = '4202' THEN 'E-Mail'
    			END AS ActivityType
    		, CASE
    			WHEN apb.statecode = '1' THEN 'Completed'
    			WHEN apb.statecode = '0' THEN 'Open'
    			WHEN apb.statecode = '2' THEN 'Canceled'
    			END AS ActivityState
    from FilteredOpportunity ob AS CRMAF_Opportunity
    Inner join filteredactivitypointer apb on apb.regardingobjectid = ob.opportunityid
    where apb.activitytypecode = '4201' 
    	or apb.activitytypecode = '4210' 
    	or apb.activitytypecode = '4202'
    	and CRMAF_filteredopportunity.deletionstatecode ='0'
    	and apb.deletionstatecode = '0'
     
    
    --group by apb.subject, ob.name, ob.description, apb.scheduledend, apb.activitytypecode, apb.statecode, apb.description

     

    PS: Was er anmarkert ist:  Meldung 156, Ebene 15, Status 1, Zeile 18

    Falsche Syntax in der Nähe des 'AS'-Schlüsselwortes.


     

    Freitag, 14. Mai 2010 09:02
  • Hallo Martin,

    was mir als erstes auffällt ist, das du die Möglichkeiten der FilteredView gar nicht nutzt.

    Du kannst deine beiden Case Blöcke sparen und direkt auf den Namen des Statecodes zugreifen, dieser ist in der FilteredView enthalten (activitytypecodename)

    Der Fehler liegt in dieser Zeile: FilteredOpportunity ob AS CRMAF_Opportunity

    Du definierst den Namen der FilteresOpportunity als ob und dann anschließend noch mit AS als CRMAF_Opportunity, das kann nicht funktionieren.


    Viele Grüße

    Michael Sulz
    MVP für Microsoft Dynamics CRM

    Freitag, 14. Mai 2010 09:15
  • Hallo Michael,

     

    vielen Dank so funktioniert es :) 

    Ja ist wohl etwas historisch bedingt.

    Hatte vorher die ganze Abfrage auf Tabellen gemacht und dann halt so abgeändert und noch diese wirklich blöden Fehler drin gehabt.

     

    Vielen lieben Dank :) 

     

    Martin

    Freitag, 14. Mai 2010 09:26
  • Hallo Martin,

    als kurze Anregung: Ich würde beim Einsatz von OR-Verknüpfungen in der Where-Klauseln   immer Klammern setzen. Damit ist die  Bedingung besser  lesbar und  änderbar.

    Beispiel:  ....where ( acitivitytypecode=    or   acitivitytypecode=  or  acitivitytypecode= )   AND ......



    Herzliche Grüße / Kind regards Markus Müller
    Freitag, 14. Mai 2010 10:48
  • Eigentlich sollte es CRMAF_FilteredOpportunity heißen.

    Siehe dazu auch: http://msdn.microsoft.com/en-us/library/bb955092(v=MSDN.10).aspx


    Jürgen Beck

    Dipl. Kfm./Wirtschaftsinformatik
    MVP, MCSD.NET, MCITP DBA, MCDBA, MCSE
    Microsoft Certified Business Management Solutions Professional
    Microsoft Certified CRM Developer
    Microsoft Certified Trainer

    ComBeck IT Services & Business Solutions
    Microsoft Gold Certified Partner
    Microsoft Small Business Specialist

    Developing & Supporting Business Applications from small business to big enterprises covering scores of sectors

    http://www.combeck.de
    Montag, 17. Mai 2010 16:51
    Moderator