BizTalk – Send Dynamic File from Orchestration

Suppose you have StartMsg and you want to send it to a dynamic disk path. I would build another new message called StartMsgDyn. If you want to use a GUID to make the file unique, as I do in my example code below, then create an orchestration variable called “GuidVar” of type of .NET Class […]

Access denied \AppData\Local\Temp\PID###### does not appear to be a BizTalk Assembly

Access denied and/or Error: “C:\Users\YourUser\AppData\Local\Temp\BT\PID3724\BizTalkAssembly\….dll” does not appear to be a BizTalk assembly, and cannot be deployed to the Configuration database. If this assembly is referenced by other BizTalk assemblies, it needs to be installed into the global assembly cache (GAC) of each BizTalk server. In my case, our company has a specific way of […]

PowerShell to build AWS Lambda Zip for Upload

I’m not sure why I wrote this in PowerShell instead of Python, as I’m using to package-up a Python program for AWS Lambda. To deploy code to Lambda, you have to create a zip file to upload. I found in the past that the Powershell zip for some odd reason is not compatible with AWS […]

Download WinSCP 5.7.7 for BizTalk 2016 (or 5.15.4 for BizTalk 2020)

According to BizTalk 2016 install requirements, if you want to use the SFTP adapter, you need to install a specific version (5.7.7) of WinSCP. If you follow the link on that page, it takes you to the current release, and there’s no obvious way to find the previous downloads. BUT – see the note below. […]

Windows Path to the BizTalk “GAC” MSIL

I often use shortcuts and forget that this is the directory/path name to the Global Assembly Cache (where BizTalk .NET components are “GAC-ed”). c:\windows\Microsoft.NET\assembly\GAC_MSIL It’s NOT this one: C:\windows\assembly\GAC_MSIL See prior blog: What happened to the GAC in .NET 4.0 NOTE: This is not the “BizTalk GAC”, it’s just the .NET 4.0 and above GAC. […]

How to modify a every field on every document(row) in a MongoDB Collection to Lowercase/Uppercase

The first parameter after the find is the query, in this case {} indicates an empty query (do the following statements on all rows [documents] in the collection. <pre> db.yourCollectionName.find( {}, { 'desiredFieldname': 1 } ).forEach(function(doc) {   db.yourCollectionNameupdate(       { _id: doc._id},       { $set : { 'desiredFieldname' : doc.desiredFieldname.toLowerCase() } },       { multi: true }    […]

How to delete multiple columns (fields) from a MongoDB Collection

MongoDB is not SQL. There can be a schema to enforce types, but often there is no schema. You essentially have to update all the documents in the collection. <pre> db.yourcollectionname.updateMany({}, {     $unset: {         'field1': 1,         'field21,         'field31     } }) </pre> I believe the value of “1” is used after each field just because they […]

Python – Rule Engine Concepts – Calling Dynamic Code with Exec() and Eval()

Today I wrote a “proof of concept” program, that shows how one Python program can dynamically call another one, and pass variables back and forth between the two. Technically we aren’t calling the second program, we are executing it. It seems to run under as though it was manually coded as part of the primary […]

BizTalk Pipeline to Fix promotion: AS2ToInternal vs AS2To

Pipeline to fix the odd promotion of AS2To. See StackOverflow – Why field is promoted as AS2ToInternal instead of AS2To This C# pipeline code checks for that issues and fixes it by promoting the proper field. I never found out why it was happening and why it needed to be fixed. using System; using System.Linq; […]