WCF-SAP Adapter error:  The parameter Program Id required for SAP Inbound Handler was not specified

WCF-SAP Adapter error: The parameter Program Id required for SAP Inbound Handler was not specified

Recently while I was testing an integration solution on a client that uses a WCF-SAP adapter to receive an IDOC from the SAP system I got the following error:

The Messaging Engine failed to add a receive location “IN_IDOC_SAP” with URL “sap://CLIENT=003;LANG=EN;@a/ip-addres/00?ListenerGwHost=ip-address&ListenerGwServ=sapgw00&ListenerProgramId=name” to the adapter “WCF-SAP”. Reason: “Microsoft.ServiceModel.Channels.Common.ConnectionException: The parameter Program Id required for SAP Inbound Handler was not specified.

I knew I had this error in the past. Still, I couldn’t remember the reason immediately ? – this is one of the main reasons I often blog about the errors I face and solutions I found, my blog serves as my notes, and I’m one of the primary consumers of my blog.

Cause

Of course, and as always, there may be several reasons to face this problem, but in my case, the reason was quite simple.

If you pay attention to the URI on the error message and that highlight below:

  • sap://CLIENT=003;LANG=EN;@a/ip-addres/00?ListenerGwHost=ip-address&ListenerGwServ=sapgw00&ListenerProgramId=name

You will see that we are using the ampersand as an HTML entity (&) and we cannot in this case we need to use only the character &.

Solution

To solve this issue, you need to fix the URI to use the character &, instead of the HTML entity (&):

  • sap://CLIENT=003;LANG=EN;@a/ip-addres/00?ListenerGwHost=ip-address&ListenerGwServ=sapgw00&ListenerProgramId=name

The post WCF-SAP Adapter error: The parameter Program Id required for SAP Inbound Handler was not specified appeared first on SANDRO PEREIRA BIZTALK BLOG.

BizTalk Server SSO Application Configuration CLI Tool for BizTalk Server 2020

BizTalk Server leverages the Enterprise Single Sign-On (SSO) capabilities for securely storing critical information such as secure configuration properties (for example, the proxy user ID, and proxy password) for the BizTalk adapters. Therefore, the BizTalk Server requires SSO to work properly.

But it also can keep your own application configuration data in the SSO database, let say the usual configurations that we normally keep in a configuration file (“app.config”)). Unfortunately, there is no command-line tool to allow you to script the deployment SSO Application Configurations or perform CI/CD thru DevOps.

BizTalk Server SSO Application Configuration CLI

BizTalk Server SSO Application Configuration CLI is a command-line tool that provides the ability to import SSO configuration applications – key-value pairs in the SSO database – that can be deployed to different environments. This way enables you to script these tasks.

This tool is designed to address this gap allowing you to:

  • You can securely import Application configurations by using this CLI application;

And it mandatory accepts 5 arguments:

  • Path: full path to the .sso file
  • Password: password to unencrypted the .sso file
  • Contact Info: Internal field that is normally in the format of an email that is used internally in SSO tables for Application Configurations
  • Application User Account: SSO Affiliate Administrators Group or the Group that will access (read) key.values, for example: BizTalk Application Users.
  • Application Admin Account: SSO Administrator Group – Administrators of the Enterprise Single Sign-On (SSO) service.

Download

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

You can download BizTalk Server SSO Application Configuration Tool from GitHub here:

The post BizTalk Server SSO Application Configuration CLI Tool for BizTalk Server 2020 appeared first on SANDRO PEREIRA BIZTALK BLOG.

Delete discarded messages from local folders using PowerShell

This is a so common task on BizTalk Server that I already forgot how many times I did it. Depending on several scenarios, like:

  • Testing
  • Certain parts of the application are not yet ready to production
  • Or even discarded unwanted messages

We want/need to create a send port and subscribe specific messages to be discarded on a folder. Otherwise, they will get stuck on the administration console, and we don’t want that.

After a while, the problem is that the folder will get a considerable amount of messages, and writing a large number of files to disk will get progressively slower as the number of files in the target directory gets large. This is because your computer’s operating system must keep track of all files in a directory. Even bulk deleting all of these files will take a longer time. Moving or deleting files from the target directory on a regular basis will ensure that the performance is not adversely affected.

A large number of small files make more impact than a small number of large files, and most of the time, BizTalk Server consumes/produces small messages. However, at some point, you may completely fill the hard drive, which is more critical.

With this script, you can easily configure the folders and the type of files you want to monitor and delete.

 
Get-ChildItem -Path C:Temp -Include *.* -File -Recurse | foreach { $_.Delete()} 

This will help BizTalk Administrators to take full control of their environments

Download

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

You can download Delete Discarted messages from local folders PowerShell script from GitHub here:

The post Delete discarded messages from local folders using PowerShell appeared first on SANDRO PEREIRA BIZTALK BLOG.

BizTalk Deployment Framework (BTDF) Visual Studio plugin for BizTalk Server 2020

BizTalk Deployment Framework (BTDF) Visual Studio plugin for BizTalk Server 2020

Patrick Wellink, a long-time BizTalk Server consultant from the Netherlands, asked me to broadcast this news. I’m happy to do it because I know that many of you use and like BizTalk Deployment Framework (BTDF) to perform deployment across your environments.

Patrick suppresses a need by developing a Visual Studio 2019 plugin (VSIX) for BizTalk Server 2020. Of course, there was already a new version of The BTDF Framework. But one of the convenient things was the visual studio plugin… that was missing.

Unfortunately, and I understand this feeling entirely because I also have several community projects, we always have to for the owner and developer to upgrade his project, and we usually struggle to find the time. So I take this opportunity to encourage all community members to start contributing to these initiatives as Patrick did. Start performing changes and submit your contributions to the repo. I speak for myself, and from what I know from the community, we accept the changes and are happy that you contribute.

And it wasn’t that difficult, rephrasing Patrick:

With some guidance of this post and some fiddeling I got the VSIX to work for VS2019. After some more fiddeling I got the project wizard to run as well.

I did so with minimal effort.

Where I can download it

You can download the Visual Studio 2019 plugin (VSIX) for BizTalk Server 2020 here:

The post BizTalk Deployment Framework (BTDF) Visual Studio plugin for BizTalk Server 2020 appeared first on SANDRO PEREIRA BIZTALK BLOG.

BizTalk Server 2016: How to configure the MQ Series Adapter for low latency scenarios whitepaper

BizTalk Server 2016: How to configure the MQ Series Adapter for low latency scenarios whitepaper

Surprisingly enough, or not, legacy systems can still be found across many organizations. IBM MQ is a family of message-oriented middleware products that IBM launched in December 1993. It was called MQSeries initially and was renamed WebSphere MQ in 2002 to join the suite of WebSphere products. In April 2014, it was renamed to IBM MQ.

We can mainly see the use and the need for integration with these products in banks systems. BizTalk Server provides two ways to communicate with IBM MQ:

  • By using the MQSeries built-in adapter that will act as a bridge between Microsoft BizTalk Server and IBM MQSeries servers:
    • The MQSeries adapter is available with the BizTalk Server installation. It supports transactional and non-transactional messaging by setting the Transaction Supported property in the MQSeries adapter transport properties
    • The MQSeries adapter uses the MQSAgent2 COM+ application to put/get messages into the IBM WebSphere Queue Manager
    • The MQSeries adapter requires IBM’s MQSeries Server for Windows to reside on the client system to communicate with an IBM WebSphere Queue Manager running on Windows or non-Windows. MQSeries Server for Windows is not a Microsoft product and must be obtained from your IBM WebSphere MQ program

This whitepaper’s goal is not how to install and configure MQSeries, neither compare the advantages or disadvantages of using this adapter compared to MQSC. Instead, this whitepaper’s focus is on improving the performance of the MQSeries adapter to better support low latency scenarios that most of the time are required in financial transactions.

Where I can download it

You can download the whitepaper here:

You can also find, download and enjoy several other free whitepapers of my own here:

The post BizTalk Server 2016: How to configure the MQ Series Adapter for low latency scenarios whitepaper appeared first on SANDRO PEREIRA BIZTALK BLOG.

Find Orphaned Azure API Connectors in all Resource Groups with PowerShell

Find Orphaned Azure API Connectors in all Resource Groups with PowerShell

Recently I wrote my version of a script that Mike Stephenson initially created: Find Orphaned Azure API Connectors with PowerShell. This PowerShell script will look at all of the API Connections in a specific resource group and then inspect every Logic App in your resource group to check if the API Connections are being used or not. The goal of this script, of course, is to identify orphaned API Connections in a single Resource Group quickly and effectively.

I modify the original script to have a better output or at least a different output that works better for my needs. Automatically add a Deprecated tag on all the API Connectors with the value True or False. And add additional capabilities on the generation of the output report in a CSV format.

The only limitation of this script is that it only checks a specific Resource Group. So, if you have 3 or 4 Resources Groups, you need to configure this script and run it 3 or 4 times.

To streamline this process and not waste so much time, I decided to create a new version of this script. This new script will look at all the API Connections in all resource groups on a single Azure Subscription and then inspect every Logic App in that specific Resource Group (RG) to check if the API Connections of that RG are being used or not.

What’s new on this PowerShell script:

  • It will check in all Resources Groups available on a single Subscription if API Connections are being used or not.
  • Subscription Details output is improved and with coloring to better read
  • List of available API Connectors group by Resource Group output is improved and with coloring to better read
  • List of Logic Apps and API Connectors association group by Resource Group and Logic App output is improved and with coloring to better read
  • List of Orphaned API Connectors order by Resource Group output is improved and with coloring to better read

Download

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

You can download Find Orphaned API Connectors in all Resource Groups from GitHub here:

The post Find Orphaned Azure API Connectors in all Resource Groups with PowerShell appeared first on SANDRO PEREIRA BIZTALK BLOG.

Thanks! Awarded as Microsoft Azure MVP 2021-2022

Thanks! Awarded as Microsoft Azure MVP 2021-2022

Last week was Microsoft MVP renewal time – as you’ll probably have seen – and usually, I share this news firsthand, but this year my wife caught me off guard and in a week of hard work and was faster than me!

I’m delighted to share with you that on July 1st, I was renewed as a Microsoft Azure MVP (Microsoft Most Valuable Professional) for one more year. This is my 11th straight year on the MVP Program, a fantastic journey that started in 2011, back them as a BizTalk Server MVP. It looks like it was yesterday! And even though it’s already been 11 years, I still feel the same joy, excitement, and privilege of belonging to this group as on the first day!

It is an honor and privilege to be among great minds and community leaders! I want to send a big thanks to Cristina González Herrero, Irene Otero Perez for all the fantastic work managing the program in my region. And to all my fellow MVPs, my beautiful family, my coworkers, and to my team at DevScope, and in special all my blog readers, friends, members of Microsoft Enterprise Integration Community – THANKS! Thanks for your support during these years.

I’m looking forward to another great year!

The post Thanks! Awarded as Microsoft Azure MVP 2021-2022 appeared first on SANDRO PEREIRA BIZTALK BLOG.

BizTalk Server: Automation Deployment with Azure DevOps – Create a build agent

BizTalk Server: Automation Deployment with Azure DevOps – Create a build agent

Historically, deploying BizTalk Server solutions across environments is or can be a complicated process depending how complex is your solution. There are many ways to deploy BizTalk artifacts for example:

  • Importing them as part of an application by using the Deployment Wizard (from an .msi file), importing them using BTSTask.exe – this is the default way to deploy across environments.
    • You can replace and use allow BTSTask, PowerShell scripts.
  • Or deploy them from Visual Studio – this is the default way to deploy to your development environment.

During the years, the BizTalk Server Community created an open-source deployment framework called Deployment Framework for BizTalk (BTDF) – https://github.com/BTDF/DeploymentFramework. The Deployment Framework for BizTalk is an easy-to-use toolkit for deploying and configuring your BizTalk solutions. In reality, BTDF is an MSBuild project with custom MSBuild tasks, and it can be customizable according to customer BizTalk project needs, and it is extensible. This framework brings new capabilities and advantages to deploying BizTalk Server solutions, but it also has limitations or disadvantages.

Azure DevOps and Azure Pipelines

Microsoft has introduced automated deployment of BizTalk Applications in BizTalk Server 2016 Feature Packs using Azure DevOps (previously called Visual Studio Team Services – VSTS). In BizTalk Server 2016 Feature Pack 1, automatic deployment and application lifecycle management (ALM) experience was introduced. The automatic deployment process has been improved with the release of BizTalk Server 2016 Feature Pack 2. These features were only available on the Enterprise edition of BizTalk Server 2016.

BizTalk Server 2020 brings all these functionalities out-of-the-box across all editions: Enterprise, Standard, Development, or Branch.

To accomplish this, we need basically 3 steps:

  • BizTalk Server: Add a BizTalk Server Application project in your Visual Studio solution.
    • We will not address this topic today.
  • DevOps: Create a build agent.
  • DevOps: Create a Build and release Azure Pipeline.

Today we will talk about starting to configure your Azure Pipeline to create a BizTalk Server Build Agent.

Create a Personal Access Token

personal access token (PAT) is created in DevOps. This token is your password and is used by the DevOps build agent to authenticate. The token is only shown when you create it. After that, it isn’t shown anymore. Once you create it, you should save it to another file in a rememberable location.

To accomplish that:

  • Sign in to Azure DevOps Portal (https://app.vsaex.visualstudio.com/) using your work or school account.
    • If you do not have an account, select Create new account, and enter a name. To manage your code, choose your personal preference between Git or Team Foundation Version Control. When finished, your new account is created, you will be able to access Azure DevOps Portal.
  • Select your DevOps organization and then click the top second right-side corner icon – User settings – and select User settings > Personal access tokens.
  • The Personal Access Tokens page will be presented a list of all existing personal access tokens.
    • If you don’t have an existing PAT for your agent, select Add, and on the Create a new personal access token page, enter the following configuration:
      • On the Name property, enter a name for your PAT, for example, BizTalk Build Agent.
      • On the Organization property, leave the default organization.
      • On the Expiration (UTC) property, set an expiration date, for example, 90 days.
      • In Scopes, select Show all scopes, and then select Agent PoolsRead & manage option and Connected serverConnected server.
  • Select Create to finish the PAT creation.
    • Important Note: You need to save the token value. You need it in future steps. If you don’t know the access token value and didn’t take note of it anywhere, it cannot be retrieved. In this case, you need to create a new PAT.

Install the Build Agent

The build agent is installed on the BizTalk development computer. If using deployment groups, the build agent is installed on all the BizTalk servers you want to deploy to. Also, use these same steps to add a build computer, which might be different than the BizTalk development computer.

The following steps show you how to install the build agent on a single computer:

  • Open your Azure DevOps organization and then select the Organization settings icon and then Agent Pools.
    • Optional you can choose a Project inside your Organization and then select the Project settings icon and select Agent Pools.
  • Open Agent pools page, select the Default (Azure Pipelines) agent.
  • On the Default agent page, select New agent.
  • On the Get the agent pop-up window, select your SO, and on the Download the agent section, select Download.
    • It is important for you to save the file to your Downloads folder – on your BizTalk Server Development machine since the scripts will be referencing that folder.
    • Depending on your SO, this will download a zip file, for example, vsts-agent-win-x64-2.188.3.zip, that you will need to create the agent on the BizTalk Server Development machine.
  • The first step is to create the agent on your BizTalk Server Development machine. To do that open Windows PowerShell as Administrator and type the following command:

PS C:> cd /

PS C:> mkdir agent ; cd agent 

PS C:agent> Add-Type -AssemblyName System.IO.Compression.FileSystem ; [System.IO.Compression.ZipFile]::ExtractToDirectory(“$HOMEDownloadsvsts-agent-win-x64-2.188.3.zip”, “$PWD”)

  • Note: The vsts-agent file version changes. Make sure the zip file name is the correct one.
  • The second step, as you also see in the picture is to configure the agent. To do that type the following command:

PS C:agent> .config.cmd

  • Enter the following details:
    • Server URL: Type https://dev.azure.com/{your-organization}.
    • Authentication Type: Enter PAT.
    • Personal access token: Paste your Azure DevOps token.
    • Agent pool: Click Enter for assuming the default value.
    • Agent name: Click Enter for assuming the default value.
      • Replace: Only displays if you have an existing agent.
    • Work folder: Click Enter for assuming the default value.
    • Run agent as a service: Enter Y.
    • User account: This value is up to you, but you may run into a permissions issue. Consider entering your current logged-on account, which is a local admin.
  • To validate if the agent was properly installed, Open services.msc to see the new service called Azure Pipelines Agent (<organization>.<agent pool>.<server>). The job should be running, otherwise type the following command:

PS C:agent> .run.cmd

Now, if we go back to our DevOps organization > Organization settings > Agent pools > Default (Azure Pipelines) > Agents, you will see your BizTalk Server Development server on the list:

The post BizTalk Server: Automation Deployment with Azure DevOps – Create a build agent appeared first on SANDRO PEREIRA BIZTALK BLOG.

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

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

I’m not a Dynamics 265 expert, and Dynamics 365 is not my focus area. Nevertheless, I couldn’t ignore the flood of requests to add the new Dynamics 365 logos, especially the App icons. It took a while, but they are finally here.

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 Office, Office 365 and Dynamics 365: add the new Dynamic 265 logo, Dynamics 365 App Icons, and Dynamics 365 Mixed Reality Icons.
  • 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 new preview features and integration services like the new Logic App icon.
  • 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 GitHub Here:

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

Find Orphaned Azure API Connectors with PowerShell

Find Orphaned Azure API Connectors with PowerShell

Developing solutions on Azure is sometimes an effortless operation. Administrate all your Azure resources that may be a different story. And this PowerShell script focuses on simplifying one of these processes.

One of the painful processes, not only when we are developing our Logic App, but mainly when we are administrating them, is finding what API Connections and no longer being used by your Logic Apps. What we call Orphaned API Connections.

What is the importance of this script? Over time, our Logic Apps can change to fit new requirements or fix some issues that can occur. And we can quickly end up with unused Azure API Connections. In addition, it is not easy to work out which API Connections are being used by our Logic Apps directly thru the Azure Portal! Neither to see if a specific API connector is orphaned.

This PowerShell script will look at all of the API Connections in your resource group and then inspect every Logic App in your resource group to check if the API Connections are being used or not. This script will help you to identify orphaned API Connections quickly.

This script was initially created by Mike Stephenson, which I took as a reference and improved or modified according to what I thought fit better to this task:

  • List the output of existing API Connectors in a specific resource group to print only the API Connector name instead of the full ID to be simple to read;
  • List the output of API Connectors bind to a Logic App group by each Logic App to be simple to read;
  • List the output of deprecated API Connector to include only connectors are deprecated to be simple to read – this is the main point of the script. give the list of deprecated/orphaned connectors;
  • Add a Deprecated tag on all the API Connectors. The reason to add this tag is that sometimes I just want to reference them and make manually double-check on the subscription, talk with the development team or make these changes (remove these API Connectors on the next intervention window, if companies have kind of this policy) :
    • If it is orphaned then the value of this tag will be true;
    • Otherwise, the value of this tag will be false;
  • The output CSV format now includes the option for you to specify what CSV character you want to use as a separator or delimiters like comma or semicolon.

Download

You can download Find Orphaned API Connectors from GitHub here:

The post Find Orphaned Azure API Connectors with PowerShell appeared first on SANDRO PEREIRA BIZTALK BLOG.