How to update the URI (or part of it) on BizTalk Server Receive Locations with PowerShell

How to update the URI (or part of it) on BizTalk Server Receive Locations with PowerShell

When you deploy a new BizTalk Server solution to a different environment, and if for some reason, you don’t use or cannot use CI/CD (Continuous integration and continuous delivery):

  • Your environment is too small to justify using CI/CD;
  • The client doesn’t provide access to Visual Studio Team Services (VSTS);
  • Don’t like to use BTDF (Deployment Framework for BizTalk);
  • Not using custom tools like BizTalk Bindings Exporter tool;

Then one of the most common tasks you need to do is to change all the URI from all the ports, Receive Ports and Send Ports, from the binding files.

Of course, you can do it in many different ways, for example:

  • Before import to the new environment, open notepad or any other editor, and manually replace all the Inbound Transport URL and Outbound Transport URL;
  • Import AS IS and on the Administration Console, manually change these parameters;
  • Or script this process;

This is not always a quick and easy job. Luckily for us, these tasks can be automated, leading them to become simpler, faster, and avoid fewer errors.

This script that I will be showing you can be very useful, for example, in scenarios that during the lifecycle of existing applications, one system got updated or migrated to a different version or server (or both), and we need to update the URI or part of it on a range of the Receive Locations according to the new configuration/specification.

PowerShell script overview

With this PowerShell sample, we will be able to set or update the URI (address) or part of the URI on a list of BizTalk Server Receive Locations deployed in your BizTalk Server environment.

foreach($receivePort in $catalog.ReceivePorts)
{
    # For each receive location in your environment
    foreach($recLocation in $receivePort.ReceiveLocations)
    {
        # In this case ...
        if($rcvLocations.Contains($recLocation.Name))
        {
            [string] $address = $recLocation.Address
            $address = $address.Replace("DEV-SERVER-NAME","PRO_SERVER-NAME")
            # Sample of additional custom changes
            if($address.Contains("PREFIX"))
            {
                $address = $address.Replace("DATABASE","DATABASE-WITH-PREFIX-A")
            }
            else
            {
                $address = $address.Replace("DATABASE","DATABASE-WITH-PREFIX-B")
            }
            $recLocation.Address = $address
        }
    }
}

This script was tested in BizTalk Server 2016.

Download

THIS POWERSHELL SCRIPT IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND.

Update URI on BizTalk Server Receive Locations with PowerShellUpdate URI on BizTalk Server Receive Locations with PowerShell
GitHub

The post How to update the URI (or part of it) on BizTalk Server Receive Locations with PowerShell appeared first on SANDRO PEREIRA BIZTALK BLOG.

September 28, 2020 Weekly Update on Microsoft Integration Platform & Azure iPaaS

September 28, 2020 Weekly Update on Microsoft Integration Platform & Azure iPaaS

Do you feel difficult to keep up to date on all the frequent updates and announcements in the Microsoft Integration platform and Azure iPaaS?

Integration weekly update can be your solution. It’s a weekly update on the topics related to Integration – enterprise integration, robust & scalable messaging capabilities and Citizen Integration capabilities empowered by Microsoft platform to deliver value to the business.

Microsoft Announcements and Updates

Community Blog Posts

Videos

Podcasts

How to get started with iPaaS design & development in Azure?

Feedback

Hope this would be helpful. Please feel free to reach out to me with your feedback and questions.

 

 

How to update Authentication Credentials on BizTalk Server Receive Locations with PowerShell

How to update Authentication Credentials on BizTalk Server Receive Locations with PowerShell

With security be every day more important, this also brings additional problems (good problems) to BizTalk Server Administrators during the deployment of new BizTalk Server Applications or even during the lifecycle of existing applications:

  • What a few years ago was anonymous, because they were internal services, they are now authenticated.
  • Nowadays, many organizations implement a combination of Minimum Password Age policy also enforcing a Password History policy that requires to reset the password, even for services accounts, from time to time and avoid reusing the same password.

These tasks lead to BizTalk Server Administrators to manually set the user credentials in a range of ports (send and receive). This is not always a quick and easy job.

Luckily for us, these tasks can be automated, leading them to become simpler, faster, and avoid fewer errors.

PowerShell script overview

With this PowerShell sample, we will be able to set or update the Authentication Credential on a list of BizTalk Server Receive Locations deployed in your BizTalk Server environment.

foreach($receivePort in $catalog.ReceivePorts)
{
    # For each receive location in your environment
    foreach($recLocation in $receivePort.ReceiveLocations)
    {
        # In this case ...
        if($rcvLocations.Contains($recLocation.Name))
        {
            $bindingConfiguration = $recLocation.TransportTypeData
            if($bindingConfiguration.CustomProps.Password.vt -eq "1")
            {
                $bindingConfiguration.CustomProps.Password.InnerText = "my_password"
                $bindingConfiguration.CustomProps.Password.vt = "8"
            }
            else
            {
                $passwordElement = $bindingConfiguration.CreateElement("Password")
                $passwordElement.SetAttribute("vt", "8")
                $passwordElement.InnerText = "my_password"
                $bindingConfiguration.CustomProps.InsertAfter($passwordElement, $bindingConfiguration.CustomProps.SuspendMessageOnFailure)
            }
            if($bindingConfiguration.CustomProps.UserName.vt -eq "8")
            {
                $bindingConfiguration.CustomProps.UserName.InnerText = "my_username"
            }

            $transportConfigData = $bindingConfiguration.InnerXml
            $recLocation.TransportTypeData = $transportConfigData
        }
    }
}

This script was tested in BizTalk Server 2016.

Download

THIS POWERSHELL SCRIPT IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND.

Set Authentication Credential on BizTalk Server Receive Locations with PowerShellSet Authentication Credential on BizTalk Server Receive Locations with PowerShell
GitHub

The post How to update Authentication Credentials on BizTalk Server Receive Locations with PowerShell appeared first on SANDRO PEREIRA BIZTALK BLOG.

Microsoft Integration and Azure Stencils Pack for Visio: New version available (v7.1.0)

Microsoft Integration and Azure Stencils Pack for Visio: New version available (v7.1.0)

It was only 3 days ago that I released a major version. Still, with all of this new stuff and announcements on Ignite 2020, I just decide to make a minor update to my stencil package, especially because all the logos of Power Platform components have changed.

New Power Platform logos

What’s new in this version?

These are the list of changes and additions present in this major release:

  • New shapes: There are new shapes on the following Visio Stencils files (.vssx):
    • MIS Power Platform Stencils: the picture above is presenting the new logo icons of Power BI, Power Apps, Power Automate, and Power Virtual Agents.
    • MIS Azure Stencils and MIS Azure Additional or Support Stencils: there were a few new icons add to the stencils, most of them related to Azure Arc and Storage Account and some icon updates.
    • MIS Office, Office 365, and Dynamics 365: New shapes added to this stencil with more Office 365 products.
New Azure Stencils
New Office 365 products
  • Automation: minor fixes on the automation scripts
  • SVG files: new SVG files added.

Microsoft Integration, Azure, Power Platform, Office 365 and much more Stencils Pack

Microsoft Integration, Azure, Power Platform, Office 365 and much more Stencils Pack it’s a Visio package that contains fully resizable Visio shapes (symbols/icons) that will help you to visually represent On-premise, Cloud or Hybrid Integration and Enterprise architectures scenarios (BizTalk Server, API Management, Logic Apps, Service Bus, Event Hub…), solutions diagrams and features or systems that use Microsoft Azure and related cloud and on-premises technologies in Visio 2016/2013:

  • BizTalk Server
  • Microsoft Azure
    • Integration
      • Integration Service Environments (ISE)
      • Logic Apps and Azure App Service in general (API Apps, Web Apps, and Mobile Apps)
      • Azure API Management
      • Messaging: Event Hubs, Event Grid, Service Bus, …
    • Azure IoT and Docker
    • AI, Machine Learning, Stream Analytics, Data Factory, Data Pipelines
    • SQL Server, DocumentDB, CosmosDB, MySQL, …
    • and so on
  • Microsoft Power Platform
    • Microsoft Flow
    • PowerApps
    • Power BI
  • Office365, SharePoint,…
  • DevOps and PowerShell
  • Security and Governance
  • And much more…
  • … and now non-related Microsoft technologies like:
    • SAP Stencils
Microsoft Integration (Azure and much more) Stencils Pack

The Microsoft Integration Stencils Pack is composed of 27 files:

  • Microsoft Integration Stencils
  • MIS Additional or Support Stencils
  • MIS AI and Machine Learning Stencils
  • MIS Apps and Systems Logo Stencils
  • MIS Azure Additional or Support Stencils
  • MIS Azure Black and Gray
  • MIS Azure Old Versions
  • MIS Azure Stencils
  • MIS Black and Cyan
  • MIS Buildings Stencils
  • MIS Databases and Analytics Stencils
  • MIS Deprecated Stencils
  • MIS Developer Stencils
  • MIS Devices Stencils
  • MIS Files and Message Types Stencils
  • MIS Generic Stencils
  • MIS Infrastructure and Networking Stencils
  • MIS Integration Fun
  • MIS Integration Patterns Stencils
  • MIS IoT Stencils
  • MIS Office, Office 365 and Dynamics 365
  • MIS Power BI Stencils
  • MIS Power Platform Stencils
  • MIS SAP Stencils
  • MIS Security and Governance
  • MIS Servers (Hexagonal) Stencils
  • MIS Users and Roles Stencils
  • Organisational Stencils

That you can use and resize without losing quality, in particular, the new shapes.

Download

You can download Microsoft Integration, Azure, BAPI, Office 365 and much more Stencils Pack for Visio from:
Microsoft Integration Azure Stencils Pack VisioMicrosoft Integration, Azure, Power Platform, Office 365 and much more Stencils Pack for Visio
GitHub

The post Microsoft Integration and Azure Stencils Pack for Visio: New version available (v7.1.0) appeared first on SANDRO PEREIRA BIZTALK BLOG.

September 21, 2020 Weekly Update on Microsoft Integration Platform & Azure iPaaS

September 21, 2020 Weekly Update on Microsoft Integration Platform & Azure iPaaS

Do you feel difficult to keep up to date on all the frequent updates and announcements in the Microsoft Integration platform and Azure iPaaS?

Integration weekly update can be your solution. It’s a weekly update on the topics related to Integration – enterprise integration, robust & scalable messaging capabilities and Citizen Integration capabilities empowered by Microsoft platform to deliver value to the business.

Microsoft Announcements and Updates

Community Blog Posts

Videos

Podcasts

How to get started with iPaaS design & development in Azure?

Feedback

Hope this would be helpful. Please feel free to reach out to me with your feedback and questions.

Microsoft Integration and Azure Stencils Pack for Visio: New major version available (v7.0.0)

Microsoft Integration and Azure Stencils Pack for Visio: New major version available (v7.0.0)

Well, the thing is, you cannot say to me, “…these stencils look fantastic, but are currently unusable or worthless because…” my brain enters in a crazy mode, and I can only free myself when all the work is finished successfully and that these resources are handy :).

Jokes apart, I use these resources for a long time, I create these for myself, but I knew that they were not perfects. The major problem was that fixing that amount of icons was a time-consuming task. However, with the number of people using these stencils increasing and reporting those problems, I decided to resolve them once and for all.

Today I can announce that I close all the open issues reported on the git repository of this package.

What’s new in this version?

These are the list of changes and additions present in this major release:

  • Restructure of Visio Stencils files (.vssx) names: the package is now composed of 26 Visio Stencils files.
    • Some of them were renamed: PowerApps and Flow is now Power Platform; Files is now Files and Message Types Stencils, …
    • Some were merged: Power BI was merged in the new Power Platform Visio Stencil file; Azure Others was merged in the Azure Additional or Support Stencils, Office365 is now Office, Office 365 and Dynamics 365…
    • New Visio Stencils files: MIS Black and Cyan and MIS Azure Black and Gray;
  • New shapes: New shapes were added on the majority of the Visio Stencils files (.vssx). Probably the one that was most affected was Azure Stencils and Office, Office 365 and Dynamics 365;
  • Text annotations and connector points: The issues regarding text annotations (legend appear in the center of the icon instead of bellow) and connector points (lack of proper connect points) are now solved in all the Visio Stencils files (.vssx). This was a massive work!
  • Order of the icons: all the icons appear in alphabetic order inside the Visio Stencil file, with the exception in some cases of the first ones that in some case contains the main shape of the context, like in Microsoft Integration Stencils, the first icon is BizTalk Server Logo.
  • Automation: add 3 PowerShell script to this package for you to:
    • Standardize all SVG filenames available in all subfolders by:
      • Not using spaces. Some software will not recognize file names with spaces, and file names with spaces must be enclosed in quotes when using the command line. Having spaces in URL’s are also not a good experience and should be avoided. For all these reasons I decided to remove all spaces and replace it will ‘-‘ (dash);
      • Names are in Camel case, where the first letter of each section of text is capitalized (of course respecting the line above), e.g., File-Name.svg
      • Having extension in lowercase, e.g., *.svg
      • List all the detected duplicate files.
    • Automatically install (configure) all the Visio files (*.vssx), so that next time you open Visio, they will be there available;
    • And also the possibility to download the most recent version from GitHub and install it locally;
  • Standardize shape sizes: standardize the shapes sizes in all to be more or less all of the same sizes Visio Stencils files.
  • Fixed some minor stencils layouts;
  • SVG files: new SVG files added.

These changes were a massive job that stole all my free time apart from my work and family time, from the past three weeks! So I hope you appreciate it!

Microsoft Integration, Azure, Power Platform, Office 365 and much more Stencils Pack

Microsoft Integration, Azure, Power Platform, Office 365 and much more Stencils Pack it’s a Visio package that contains fully resizable Visio shapes (symbols/icons) that will help you to visually represent On-premise, Cloud or Hybrid Integration and Enterprise architectures scenarios (BizTalk Server, API Management, Logic Apps, Service Bus, Event Hub…), solutions diagrams and features or systems that use Microsoft Azure and related cloud and on-premises technologies in Visio 2016/2013:

  • BizTalk Server
  • Microsoft Azure
    • Integration
      • Integration Service Environments (ISE)
      • Logic Apps and Azure App Service in general (API Apps, Web Apps, and Mobile Apps)
      • Azure API Management
      • Messaging: Event Hubs, Event Grid, Service Bus, …
    • Azure IoT and Docker
    • AI, Machine Learning, Stream Analytics, Data Factory, Data Pipelines
    • SQL Server, DocumentDB, CosmosDB, MySQL, …
    • and so on
  • Microsoft Power Platform
    • Microsoft Flow
    • PowerApps
    • Power BI
  • Office365, SharePoint,…
  • DevOps and PowerShell
  • Security and Governance
  • And much more…
  • … and now non-related Microsoft technologies like:
    • SAP Stencils
Microsoft Integration (Azure and much more) Stencils Pack

The Microsoft Integration Stencils Pack is composed of 27 files:

  • Microsoft Integration Stencils
  • MIS Additional or Support Stencils
  • MIS AI and Machine Learning Stencils
  • MIS Apps and Systems Logo Stencils
  • MIS Azure Additional or Support Stencils
  • MIS Azure Black and Gray
  • MIS Azure Old Versions
  • MIS Azure Stencils
  • MIS Black and Cyan
  • MIS Buildings Stencils
  • MIS Databases and Analytics Stencils
  • MIS Deprecated Stencils
  • MIS Developer Stencils
  • MIS Devices Stencils
  • MIS Files and Message Types Stencils
  • MIS Generic Stencils
  • MIS Infrastructure and Networking Stencils
  • MIS Integration Fun
  • MIS Integration Patterns Stencils
  • MIS IoT Stencils
  • MIS Office, Office 365 and Dynamics 365
  • MIS Power BI Stencils
  • MIS Power Platform Stencils
  • MIS SAP Stencils
  • MIS Security and Governance
  • MIS Servers (Hexagonal) Stencils
  • MIS Users and Roles Stencils
  • Organisational Stencils

That you can use and resize without losing quality, in particular, the new shapes.

Download

You can download Microsoft Integration, Azure, BAPI, Office 365 and much more Stencils Pack for Visio from:
Microsoft Integration Azure Stencils Pack VisioMicrosoft Integration, Azure, Power Platform, Office 365 and much more Stencils Pack for Visio
GitHub

The post Microsoft Integration and Azure Stencils Pack for Visio: New major version available (v7.0.0) appeared first on SANDRO PEREIRA BIZTALK BLOG.

September 7, 2020 Weekly Update on Microsoft Integration Platform & Azure iPaaS

September 7, 2020 Weekly Update on Microsoft Integration Platform & Azure iPaaS

Do you feel difficult to keep up to date on all the frequent updates and announcements in the Microsoft Integration platform and Azure iPaaS?

Integration weekly update can be your solution. It’s a weekly update on the topics related to Integration – enterprise integration, robust & scalable messaging capabilities and Citizen Integration capabilities empowered by Microsoft platform to deliver value to the business.

Microsoft Announcements and Updates

Community Blog Posts

Videos

Podcasts

How to get started with iPaaS design & development in Azure?

Feedback

Hope this would be helpful. Please feel free to reach out to me with your feedback and questions.

How to download a GitHub Repository using PowerShell

How to download a GitHub Repository using PowerShell

I am automating specific tasks related to my Microsoft Integration, Azure, Office 365, and much more Stencils Pack for Visio project: I started in my last blog post with two simple tasks:

  • Standardize all SVG filenames;
  • List all the detected duplicate files;

And now, I am trying to add more functionalities like: 

  • Automatically install (configure) all the Visio files (*.vssx), so that next time you open Visio, they will be there available;
  • And also the possibility to download the most recent version from GitHub and install it locally;

Well, the first task is quite simple, you just need to locate all the *.vssx files and copy to the folder “C:Usersyou_userDocumentsMy Shapes” (that is the default folder for the Visio custom shapes)

#########################################################
#                                                       #
# Install Microsoft Integration & Azure Stencils Pack   #
# Author: Sandro Pereira                                #
#                                                       #
#########################################################

[String]$location = Split-Path -Parent $PSCommandPath
[String]$destination = [environment]::getfolderpath('mydocuments') + "My Shapes"

$files = Get-ChildItem $location -recurse -force -Filter *.vssx
foreach($file in $files)
{
    if($file.PSPath.Contains("Previous Versions") -eq $false)
    {
        Copy-Item -Path $file.PSPath -Destination $destination -force
    }
}

You can download this script here: Install Microsoft Integration & Azure Stencils Pack.

The second part is a little trick. I found many resources while searching on the internet, but none was what I intended to do. Some were quite nice, but we could easily reach the API Rate limit that is 60 requests per hour for unauthenticated requests or 5000 requests per hour if you use Basic Authentication or OAuth. Or it simply didn’t unzip properly.

I want to archive a simple way to download a full GitHub repository and unzip it locally. Simple as going in the browser and select Code > Download ZIP, that’s it!

And to archive that you can use two ways:

  • using the following URL structure:
    • https://github.com/[owner]/[repo-name]/archive/[Branch].zip
    • This is exactly what Code > Download ZIP does.
  • or using the GitHub API using the following URL structure:
    • https://api.github.com/repos/[owner]/[repo-name]/zipball/Branch]

Since I was doing all this work, I also decide to make it available a generic PowerShell function that will allow you to download any GitHub Repository.

######################################################################
#                                                                    #
# Download and Unzip GitHub Repository                               #
# Author: Sandro Pereira                                             #
#                                                                    #
######################################################################

function DownloadGitHubRepository 
{ 
    param( 
       [Parameter(Mandatory=$True)] 
       [string] $Name, 
        
       [Parameter(Mandatory=$True)] 
       [string] $Author, 
        
       [Parameter(Mandatory=$False)] 
       [string] $Branch = "master", 
        
       [Parameter(Mandatory=$False)] 
       [string] $Location = "c:temp" 
    ) 
    
    # Force to create a zip file 
    $ZipFile = "$location$Name.zip" 
    New-Item $ZipFile -ItemType File -Force

    #$RepositoryZipUrl = "https://github.com/sandroasp/Microsoft-Integration-and-Azure-Stencils-Pack-for-Visio/archive/master.zip"
    $RepositoryZipUrl = "https://api.github.com/repos/$Author/$Name/zipball/$Branch"  
    # download the zip 
    Write-Host 'Starting downloading the GitHub Repository'
    Invoke-RestMethod -Uri $RepositoryZipUrl -OutFile $ZipFile
    Write-Host 'Download finished'

    #Extract Zip File
    Write-Host 'Starting unzipping the GitHub Repository locally'
    Expand-Archive -Path $ZipFile -DestinationPath $location -Force
    Write-Host 'Unzip finished'
    
    # remove the zip file
    Remove-Item -Path $ZipFile -Force 
}

Download

THIS POWERSHELL IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND.

Standardize SVG Filenames with PowerShellHow to Download a GitHub Repository with PowerShell
GitHub

The post How to download a GitHub Repository using PowerShell appeared first on SANDRO PEREIRA BIZTALK BLOG.