In-place upgrade Dynamics CRM 2013 na 2015: Could not find file ‚C:\Program Files\Microsoft Dynamics CRM\LangPacks\1029\sql\7\StoredProcedures\MSCRM\fn_RollupByAccount.sql‘.

Při upgrade Dynamics CRM organizace z verze 2013 na 2015 s českým nebo jiným language packem (alespoň jedním nad základním jazykem), dojde při upgrade k chybě:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. —> System.IO.FileNotFoundException: Could not find file ‚C:\Program Files\Microsoft Dynamics CRM\LangPacks\1029\sql\7\StoredProcedures\MSCRM\fn_RollupByAccount.sql‘.

Language pack obsahuje chybu, odkazuje se na soubory, které se jmenují jinak, stačí je přejmenovat a spustit znovu upgrade databáze:

  • p_RollupByAccount.sql => fn_RollupByAccount.sql
  • p_RollupByContact.sql => fn_RollupByContact.sql
  • p_RollupByOpportunity.sql => fn_RollupByOpportunity.sql

Na opravě se údajně pracuje.

Dynamics CRM 2013: chybějící záložka Konfigurace E-mailu

Po upgrade z CRM verze 2011 se některé nové volby nezobrazují, jedna z těch klíčových je náhrada za Email Router, tedy Server-Side Synchronization, která se v nově vytvořených organizacích jmenuje Konfigurace e-mailu (Email Configuration)

image

Tuto volbu je nutné doplnit zpět bohužel manuálně, postup je však jednoduchý:

[more]

  1. Stáhněte si XrmToolbox: https://xrmtoolbox.codeplex.com/
  2. Připojte se k CRM
  3. Spusťte modul SiteMap Editor
    image
  4. Načtěte mapu webu
    image
  5. Přidejte novou sub-areu pod audit a vyplňte dle obrázku:
    image
  6. Následně už jen aktualizujte CRM Update SiteMap
  7. Hotovo! (na screenshotu je akorát anglická verze)
    image

 

Druhá metoda je export do XML a přidaní jednoho node:

<SubArea Id=“nav_social“ ResourceId=“Social_SubArea_Title“ DescriptionResourceId=“Social_SubArea_Description“ Icon=“/_imgs/area/16_social.png“ Url=“/tools/social/social_area.aspx“ AvailableOffline=“false“ />

image

a následně import zpět do CRM, vše pomocí XrmToolboxu.

Dynamics CRM 2013: vytvoření PDF z reportu a přiložení jako přílohy

Na MSDN webu se objevil postup formou javascriptu, jak automatizovaně vygenerovat přílohu PDF z reportu a uložit jí jako přílohu k nějaké entitě, to se samozřejmě může hodit například při generování objednávky nebo faktury z CRM a automatizovanému uložení výsledného PDF soboru k nově vytvořenému odchozímu mailu, tedy bez nutnosti krkolomného postupu: otevřít report, vygenerovat, uložit na plochu PDF, založit email, připojit přílohu….

[more]

Postup:

http://blogs.msdn.com/b/emeadcrmsupport/archive/2014/06/19/dynamics-crm-2013-custom-code-creating-a-report-as-a-pdf-attachment.aspx

 

Řešení však není všeho spásné, tím, že se jedná o javascript, nelze to automatizovat formou workflow, ale akci musí vyvolat uživatel z formuláře.

 

Já mám připravenou trošku lepší verzi Veselý obličej a to formou workflow aktivity, kterou je možné jednoduše přidat do jakéhokoliv workflow nad jakoukoliv entity, vybrat jaký report se má vygenerovat a kam ho připojit – je tedy možné akce automatizovat kompletně, například generovat automatické opakované faktury a zasílat je zákazníkům mailem ve formě PDF, brzo napíšu na blog příspěvek s ukázkou. Pokud by jste měli zájem, ozvěte se mi na email.

Dynamics CRM–nová aktualizace přinese podporu SLA v servisním modulu

Pár novinek z připravované aktualizace Dynamics CRM – servisní modul:

  • Podpora SLA (Service Level Agreement) v servisním modulu a definice pravidel a priorit:
    image

[more]

image

  • Pole pro odpočítávání/počítání doby skutečně stráveného času servisního zásahu:
    image
  • Kontrola úrovně supportní smlouvy (zbývajícího počtu servisních hodin)
    image
  • Slučování duplicitních servisních případů:
    image
  • Samozřejmostí jsou statistiky pro sledování stavu ticketů, ale i doby řešení jednotlivých ticketů, doby od založení ticketu do jeho vyřešení, zdroje ticketů (Email, Web, Telefon, Twitter, Facebook)
    image

    image

  • Automatická eskalace pokud se například doba řešení blíží maximální době pro danou prioritu ticketu
    image

 

Video:

Více:

http://blogs.msdn.com/b/crm/archive/2014/06/04/3-ways-to-learn-what-s-new-with-customer-service-in-microsoft-dynamics-crm-spring-14.aspx

In Place upgrade Dynamics CRM 2011 na 2013 (on premise)

Provedl jsem zkušební upgrade Microsoft Dynamics CRM z verze 2011 na 2013 na stejném serveru, tedy bez instalace čistého a přesunu všech komponent a databází na nový, vše proběhlo překvapivě hladce.

Doporučuji se nejprve prohlédnou implementační příručku, zejména sekci podporovaného HW/SW + nově nepodporované funkce:

[more]

http://www.microsoft.com/en-us/download/details.aspx?id=40322

 

Postup:

  1. Instalace všech aktualizací CRM 2011, tedy minimálně rollup 15
  2. SNAP SHOT CRM serveru i DB serveru!!!
  3. Odinstalování CRM 2011 Reporting Extensions
  4. Odinstalování CRM 2011 Report Authoring Extensions
  5. Připojit instalační ISO CRM 2013
  6. Spustit splash.exe –> instalaci CRM Serveru 2013
  7. Zkontrolovat všechny dostupné aktualizace instalačního souboru (nic mi nenašlo)
  8. Po zadání Product Key je zobrazen dialog výběru organizace k upgrade (upgrade je možné provést dodatečně, pokud máte více CRM organizací, stejně můžete při instalaci vybrat pouze jednu):
    image
  9. Ponechal jsem NONE, všechny organizace tedy převedu až po instalaci
  10. Všechny AD účty jsem ponechal bez změn
  11. Adresu email routeru si instalační setup nepamatuje, vyplnil jsem znovu
  12. Poslední kontrola proběhla bez problémů:
    SNAGHTML4c8fbf3
  13. Next –> Next –> upgrade běží….
  14. 5 minut, výsledek OK:
    image
  15. Restart serveru – jinak neprojde instalace reporting add-onů
  16. Následně zpět nainstalovat Report Authoring Extension a Reporting Extensions (postup je identický s 2011, nenarazil jsem na žádný problém)
  17. Znovu nainstalovat Email Router – po spuštění instalace nabídne upgrade, opět pouze Next –> Next
  18. Nainstalovat language pack
  19. Spusťte CRM Deployment Manager
  20. Vyberte organizaci a v navigačním panelu Actions spusťte Upgrade organization
  21. Opět kontrola, opět OK:
    image
  22. Next a opět běží upgrade (dlouho, cca 20 minut v závislosti na velikosti organizace) – to stejné pro všechny organizace
    image
  23. HOTOVO!
    image

Hotovo je samozřejmě jenom z pohledu samotného upgrade procesu, nyní ještě spousta práce s kontrolou, zda vše funguje jako dříve Obličej s očima v sloup

MS CRM 2011: Instalace BIDS Extensions – Another version of this product is already installed

Tento problém nastane pouze pokud je nainstalována již dřívější verze souboru “mui-i386.msi”, která je součástí CRM 2011 Outlook klienta. Aby bylo možné aplikaci BIDS Extensions nainstalovat, je potřeba provést tyto akce:

  1. Stáhnout a rozbalit soubor CRM2011-i386-MUI
  2. Stáhnout a spustit balíček CRM2011-BIDSExtensions, po spuštění vznikne na rootu disku na kterém je tento balíček stažený nová složka s názvem ve tvaru GUID, tuto složku celou zkopírujte do jiného umístění (například C:\BIDS_EXT) a ukončete instalátor
  3. V této složce (C:\BIDS_EXT) nahraďte všechny soubory rozbalené z CRM2011-i386-MUI, přepište hlavně soubor muisetup_i386.msi
  4. Hotovo, nyní instalátor setupbidsextensions.exe proběhne bez problémů.

Dynamics CRM4: testování výkonu pomocí aplikace dbPopulator

Narazil jsem na zajímavý článek ohledně ladění výkonu a testování zátěže pomocí aplikace dbPopulator:

http://blogs.msdn.com/crm/archive/2009/02/20/performance-testing-using-dbpopulator.aspx

„DbPopulator is a tool used by MSCRM performance team to populate different types of data (qualitatively and quantitatively) in the MSCRM test boxes for performance testing. This tool is available as part of CRM Performace Toolkit (download available in http://www.codeplex.com/crmperftoolkit) and can be used to test SDK Create performance. I will describe how we can do this using DbPopulator.“

Vytvoření projektu pro kustomizaci CRM4 pomocí Microsoft Dynamics CRM Developer Toolkit

CRM Solution Framework je sada C# projektů pro snažší kustomizaci a deploy pro Microsoft Dynamics CRM 4.  Tento framework obsahuje velké množství již předpřipravených typických scénářů úprav, které ocení každý kdo CRM upravuje.  

Počáteční požadavky

Microsoft Dynamics CRM 4.0
Visual Studio 2008 Professional
Visual Studio Team Explorer
StyleCop 4.3 or later (plná instalace včetně MSBuild)
.NET 3.5 SP1

Instalace:

[more]

1. Stáhnout projekt z http://code.msdn.microsoft.com/E2DevTkt
2. Rozbalit CRM Explorer do adresáře c:\CRM Explorer\
3. Rozbalit CRM Solution Framework do adresáře c:\CRMSolutionFrameworkTemplate\
4. Vytvořit projekt spuštěním command line příkazu: Setup.cmd {InstallDir} {ProjectName} {Project Long Name} {Organization Name}

Př: setup.cmd C:\Projects\MyCrmSolution MyCrmSolution „My CRM Solution“ CRMCONFIG

Konfigurace:

1. Otevřete projekt UKDynamics (Load project normally) a proveďte build
2. Otevřete projekt MyCrmSolution (Load project normally) a proveďte build
3. V menu Visual Studia klikněte na [Tools] a následně [Connect to CRM Server…], vložte správné informace a kliněte na tlačítko [OK]
4. V menu [View] otevřete okno [Other Windows]>>[CRM Explorer]

*[1] V případě hlášky: The referenced component ‚UKDynamics.Instrumentation‘ could not be found. Je potřeba znovu přidat referenci na assembly UKDynamics.Instrumentation.dll z adresáře UKDynamics\bin.

*[2] V případě hlášky: The command „C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\gacutil“ /i „C:\Projects\MyCrmSolution\SourceCode\MyCrmSolution\Core\Configuration\bin\Debug\MyCrmSolution.Core.Configuration.dll“ /f“ exited with code 1. Protože je u všech projektů nastaven podpis na delay-signed, je potřeba vypnout kontrolu strong-name spuštěním aplikace SN z command line Visual Studia 2008: SN.exe -Vr *,*
A následně spustit IISRESET

*[3] V případě hlášek typu:
Client found response content type of ‚text/html; charset=utf-8, but expected ‚text/xml‘. HttpException 1310
Exception message: Could not load file or assembly ‚MyCrmSolution.Core.BusinessProcesses, Version=1.1.0.0, Culture=neutral, PublicKeyToken=2c1937e0898110b2‘ or one of its dependencies. Strong name signature could not be verified.
The assembly may have been tampered with, or it was delay signed but not fully signed with the correct private key. (Exception from HRESULT: 0x80131045)
proveďte stejný krok jako v bodě *[2]

Zobrazení aktuálních aktivit Microsoft CRM 4 v Sharepointu + zdrojové kódy

Na tomto příspěvku jsem chtěl demonstrovat jednoduchost a vůbec možnost provázání různých aplikací s Sharepointem. Rozhodl jsem se pro vytvoření webparty, zobrazující aktuálně přiřazené a nesplněné aktivity v Microsoft CRM 4, protože to bude určitě užitečná featura pro spoustu lidí využívajících firemní intranet.

Takto vypadá výsledný webpart (po kliknutí na daný předmět aktivity se otevře přímo v editačním okně CRM):

 

Takto jsou zobrazeny aktivity v CRM:

Zdrojové kódy i WSP balíček je přiložen na konci tohoto postu.

Načítání aktivit z CRM serveru probíhá přes webservice, url adresa webové služby je vždy ve formátu:

http://server:port/MSCRMServices/2007/CrmService.asmx

Pokud používáte Visual Studio 2008, je potřeba vygenerovat klientský wrapper až v „Advance“ dialogu jako na následujícím screenshotu:

 

Aby bylo možné rozlišit aktuálně používanou organizaci zavedenou v CRM, je potřeba ještě provést nastavení objektu CrmAuthenticationToken jako na následujícím příkladu:

public static CrmService GetCrmService(string crmServerUrl, string organizationName)
        {
            if (string.IsNullOrEmpty(crmServerUrl)) throw new ArgumentNullException("crmServerUrl");
            if (string.IsNullOrEmpty(organizationName)) throw new ArgumentNullException("organizationName");

            CrmSdk.CrmAuthenticationToken token = new CrmSdk.CrmAuthenticationToken();
            token.OrganizationName = organizationName;

            CrmService service = new CrmService();
            UriBuilder builder = new UriBuilder(crmServerUrl);
            builder.Path = "//MSCRMServices//2007//CrmService.asmx";
            service.Url = builder.Uri.ToString();
            
            service.Credentials = System.Net.CredentialCache.DefaultCredentials;
            service.CrmAuthenticationTokenValue = token;

            return service;
        }

 

Aby jsme mohli vyhledat svoje aktivity, je nejprve nutné zjistit identifikátor přihlášeného uživatele:

WhoAmIRequest request = new WhoAmIRequest();
WhoAmIResponse response = (WhoAmIResponse)service.Execute(request);
Guid userId = response.UserId;

Pak už jen stačí vyhledat aktivity s přiřazeným vlastníkem na sebe sama a nastaveným status kódem – open nebo scheduled.

private static BusinessEntityCollection GetAssignedActivities(CrmService crmService, Guid userId)
        {
            // budeme nacitat aktivity prirazene prihlasenemu uzivateli
            ConditionExpression condition = new ConditionExpression();
            condition.AttributeName = "ownerid";
            condition.Operator = ConditionOperator.Equal;
            condition.Values = new object[] { userId };

            // potrebujeme pouze otevrene aktivity
            ConditionExpression condition2 = new ConditionExpression();
            condition2.AttributeName = "statecode";
            condition2.Operator = ConditionOperator.Equal;
            condition2.Values = new object[] { (int)ActivityPointerState.Open };
            ConditionExpression condition3 = new ConditionExpression();
            condition3.AttributeName = "statecode";
            condition3.Operator = ConditionOperator.Equal;
            condition3.Values = new object[] { (int)ActivityPointerState.Scheduled };

            FilterExpression filterState = new FilterExpression();
            filterState.FilterOperator = LogicalOperator.Or;
            filterState.Conditions = new ConditionExpression[] { condition2, condition3 };

            FilterExpression filterRequired = new FilterExpression();
            filterRequired.FilterOperator = LogicalOperator.And;
            filterRequired.Conditions = new ConditionExpression[] { condition };

            FilterExpression filter = new FilterExpression();
            filter.FilterOperator = LogicalOperator.And;
            filter.Filters = new FilterExpression[] { filterRequired, filterState };

            // seradime podle konce aktivity
            OrderExpression order = new OrderExpression();
            order.AttributeName = "scheduledstart";
            order.OrderType = OrderType.Ascending;
            
            // vytvoreni vyhledavaciho dotazu - potrebujeme vsechny aktivity
            QueryExpression query = new QueryExpression();
            query.EntityName = EntityName.activitypointer.ToString();
            query.ColumnSet = new AllColumns();
            query.Criteria = filter;
            query.Orders = new OrderExpression[] { order };

            // vykonani samotneho dotazu
            return crmService.RetrieveMultiple(query);
        }

 

 Následně již stačí vyrenderovat všechny položky do HTML. Prosté, ale dobré 🙂

Instalace feature:

cd C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\BIN

stsadm -o addsolution -filename crm4connector.wsp

stsadm -o deploysolution -name crm4connector.wsp -immediate -allcontenturls -allowGacDeployment -allowCasPolicies

následně aktivujte feature ve správě webu:

 

Přidejte feature „Activities in CRM“ na libovolnou stránku:

 

V nastavení feature je nutné ještě nastavit url adresu serveru s Microsoft CRM 4 a název organizační jednotky: 

(níže je také možné upravit obecné texty podle potřeby – podle aktuálně používaném jazyku)

 

Hotovo, po potvrzení by se měl zobrazit seznam aktivit aktuálně přihlášeného uživatele. Pokud je něco špatně, budete upozorněni:

Ke stažení:

sources.zip (272,14 kb)

bin.zip (244,01 kb)