{"id":274,"date":"2016-06-17T08:43:40","date_gmt":"2016-06-17T08:43:40","guid":{"rendered":"http:\/\/danny.janlov.se\/?p=274"},"modified":"2016-06-17T08:43:40","modified_gmt":"2016-06-17T08:43:40","slug":"automatisering-av-utrullning-av-losningsfiler-dynamics-crm","status":"publish","type":"post","link":"https:\/\/danny.janlov.se\/?p=274","title":{"rendered":"Automatisering av utrullning av l\u00f6sningsfiler Dynamics CRM"},"content":{"rendered":"<p>F\u00f6r att automatisera utrullning kan man anv\u00e4nda sig av det fina biblioteket <a href=\"https:\/\/www.adxstudio.com\/adxstudio-alm-toolkit\/\">AdxStudio ALM Toolkit<\/a>.<\/p>\n<p>H\u00e4r kommer ett exempel p\u00e5 ett PowerShell-script som man kan anv\u00e4nda f\u00f6r att rulla ut sina l\u00f6sningar:<\/p>\n<pre class=\"brush: powershell; title: ; notranslate\" title=\"\">\r\nparam (\r\n\t[string]\r\n\t$environment\r\n)\r\n\r\nfunction Get-ScriptDirectory\r\n{\r\n\tif ($script:MyInvocation.MyCommand.Path) { Split-Path $script:MyInvocation.MyCommand.Path } else { $pwd }\r\n}\r\n\r\n$scriptPath = Get-ScriptDirectory\r\n&amp; $scriptPath\\ImportAlmModule.ps1\r\n\r\n$crmenvs = @(\r\n\t[PSCustomObject]@{ Environment = &quot;TEST&quot;; Url = &quot;https:\/\/crmhostname.tst\/CRMORGANIZATION&quot; },\r\n\t[PSCustomObject]@{ Environment = &quot;UAT&quot;; Url = &quot;https:\/\/crmhostname.uat\/CRMORGANIZATION&quot; },\r\n\t[PSCustomObject]@{ Environment = &quot;PROD&quot;; Url = &quot;https:\/\/crmhostname.prd\/CRMORGANIZATION&quot; }\r\n)\r\n\r\nif (-not $environment)\r\n{\r\n    $crmenvs | Format-Table\r\n\r\n    Write-Host &quot;Usage: &quot; $script:MyInvocation.MyCommand.Name &quot;-environment Environment&quot;\r\n}\r\nelse \r\n{\r\n\r\n    $ImportSolutions = @(\r\n        &quot;$scriptPath\\Customizations\\clickdimensions.zip&quot;,\r\n        &quot;$scriptPath\\Customizations\\Solution_$Env:BUILD_BUILDNUMBER.zip&quot;,\r\n        &quot;$scriptPath\\Customizations\\SolutionSilverlight_$Env:BUILD_BUILDNUMBER.zip&quot;,\r\n        &quot;$scriptPath\\Customizations\\SolutionPlugins_$Env:BUILD_BUILDNUMBER.zip&quot;\r\n    )\r\n\r\n    $crmenv = $crmenvs.Where{ $_.Environment -like $environment}\r\n\r\n    Try \r\n\t{\r\n        $credential = New-Object System.Management.Automation.PSCredential -ArgumentList &quot;username&quot;, (ConvertTo-SecureString -String \u201cpassword\u201d -AsPlainText -Force)\r\n\r\n        $srcconn = Get-CrmConnection -Url &quot;https:\/\/crmhostname.utv\/CRMORGANIZATION&quot; -Credential $credential\r\n        $dstconn = Get-CrmConnection -Url $crmenv.Url -Credential $credential\r\n\r\n        Write-Host &quot;Exporting solution:&quot;\r\n        $res = Export-CrmSolution -Connection $srcconn -SolutionName &quot;Solution&quot; -OutputPath &quot;$scriptPath\\Customizations\\Solution_$Env:BUILD_BUILDNUMBER.zip&quot; -Managed -TargetVersion &quot;6.1.0.0&quot; -Verbose\r\n        $res = Export-CrmSolution -Connection $srcconn -SolutionName &quot;SolutionSilverlight&quot; -OutputPath &quot;$scriptPath\\Customizations\\SolutionSilverlight_$Env:BUILD_BUILDNUMBER.zip&quot; -Managed -TargetVersion &quot;6.1.0.0&quot; -Verbose\r\n        $res = Export-CrmSolution -Connection $srcconn -SolutionName &quot;SolutionPlugins&quot; -OutputPath &quot;$scriptPath\\Customizations\\SolutionPlugins_$Env:BUILD_BUILDNUMBER.zip&quot; -Managed -TargetVersion &quot;6.1.0.0&quot; -Verbose\r\n\r\n        Write-Host &quot;Importing solution:&quot;\r\n        Import-CrmSolution -Connection $dstconn -CustomizationPath $ImportSolutions -OverwriteUnmanagedCustomizations -PublishWorkflows -Verbose\r\n    }\r\n    Catch\r\n    {\r\n        $errmsg = &quot;Error: &quot; + $_.Exception.Message # $_.Exception.ItemName &quot; Message: &quot;\r\n        Write-Error -Message $errmsg\r\n        Break\r\n    }\r\n}\r\n<\/pre>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Dela detta:<\/h3><div class=\"sd-content\"><ul><li><a href=\"#\" class=\"sharing-anchor sd-button share-more\"><span>Dela<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><div class=\"sharing-hidden\"><div class=\"inner\" style=\"display: none;\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-274\" class=\"share-facebook sd-button share-icon\" href=\"https:\/\/danny.janlov.se\/?p=274&amp;share=facebook\" target=\"_blank\" title=\"Klicka f\u00f6r att dela p\u00e5 Facebook\" ><span>Facebook<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-274\" class=\"share-twitter sd-button share-icon\" href=\"https:\/\/danny.janlov.se\/?p=274&amp;share=twitter\" target=\"_blank\" title=\"Klicka f\u00f6r att dela p\u00e5 Twitter\" ><span>Twitter<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-274\" class=\"share-linkedin sd-button share-icon\" href=\"https:\/\/danny.janlov.se\/?p=274&amp;share=linkedin\" target=\"_blank\" title=\"Klicka f\u00f6r att dela via LinkedIn\" ><span>LinkedIn<\/span><\/a><\/li><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon\" href=\"mailto:?subject=%5BDelat%20inl%C3%A4gg%5D%20Automatisering%20av%20utrullning%20av%20l%C3%B6sningsfiler%20Dynamics%20CRM&body=https%3A%2F%2Fdanny.janlov.se%2F%3Fp%3D274&share=email\" target=\"_blank\" title=\"Klicka f\u00f6r att e-posta en l\u00e4nk till en v\u00e4n\" data-email-share-error-title=\"Har du e-post konfigurerat?\" data-email-share-error-text=\"Om du har problem med att dela via e-post \u00e4r det m\u00f6jligt att e-post inte \u00e4r konfigurerat f\u00f6r din webbl\u00e4sare. Du kan beh\u00f6va skapa en ny e-post sj\u00e4lv.\" data-email-share-nonce=\"464260e497\" data-email-share-track-url=\"https:\/\/danny.janlov.se\/?p=274&amp;share=email\"><span>E-post<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>F\u00f6r att automatisera utrullning kan man anv\u00e4nda sig av det fina biblioteket AdxStudio ALM Toolkit. H\u00e4r kommer ett exempel p\u00e5 ett PowerShell-script som man kan anv\u00e4nda f\u00f6r att rulla ut sina l\u00f6sningar:<\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Dela detta:<\/h3><div class=\"sd-content\"><ul><li><a href=\"#\" class=\"sharing-anchor sd-button share-more\"><span>Dela<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><div class=\"sharing-hidden\"><div class=\"inner\" style=\"display: none;\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-274\" class=\"share-facebook sd-button share-icon\" href=\"https:\/\/danny.janlov.se\/?p=274&amp;share=facebook\" target=\"_blank\" title=\"Klicka f\u00f6r att dela p\u00e5 Facebook\" ><span>Facebook<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-274\" class=\"share-twitter sd-button share-icon\" href=\"https:\/\/danny.janlov.se\/?p=274&amp;share=twitter\" target=\"_blank\" title=\"Klicka f\u00f6r att dela p\u00e5 Twitter\" ><span>Twitter<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-274\" class=\"share-linkedin sd-button share-icon\" href=\"https:\/\/danny.janlov.se\/?p=274&amp;share=linkedin\" target=\"_blank\" title=\"Klicka f\u00f6r att dela via LinkedIn\" ><span>LinkedIn<\/span><\/a><\/li><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon\" href=\"mailto:?subject=%5BDelat%20inl%C3%A4gg%5D%20Automatisering%20av%20utrullning%20av%20l%C3%B6sningsfiler%20Dynamics%20CRM&body=https%3A%2F%2Fdanny.janlov.se%2F%3Fp%3D274&share=email\" target=\"_blank\" title=\"Klicka f\u00f6r att e-posta en l\u00e4nk till en v\u00e4n\" data-email-share-error-title=\"Har du e-post konfigurerat?\" data-email-share-error-text=\"Om du har problem med att dela via e-post \u00e4r det m\u00f6jligt att e-post inte \u00e4r konfigurerat f\u00f6r din webbl\u00e4sare. Du kan beh\u00f6va skapa en ny e-post sj\u00e4lv.\" data-email-share-nonce=\"464260e497\" data-email-share-track-url=\"https:\/\/danny.janlov.se\/?p=274&amp;share=email\"><span>E-post<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div><\/div><\/div>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[1],"tags":[30,29,28],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pYHHf-4q","_links":{"self":[{"href":"https:\/\/danny.janlov.se\/index.php?rest_route=\/wp\/v2\/posts\/274"}],"collection":[{"href":"https:\/\/danny.janlov.se\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/danny.janlov.se\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/danny.janlov.se\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/danny.janlov.se\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=274"}],"version-history":[{"count":2,"href":"https:\/\/danny.janlov.se\/index.php?rest_route=\/wp\/v2\/posts\/274\/revisions"}],"predecessor-version":[{"id":276,"href":"https:\/\/danny.janlov.se\/index.php?rest_route=\/wp\/v2\/posts\/274\/revisions\/276"}],"wp:attachment":[{"href":"https:\/\/danny.janlov.se\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=274"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/danny.janlov.se\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=274"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/danny.janlov.se\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=274"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}