biztalk server
36 TopicsSumming it up: Aggregating repeating nodes in Logic Apps Data Mapper 🧮
Logic Apps Data Mapper makes it easy to define visual, code-free transformations across structured JSON data. One pattern that's both powerful and clean: using built-in collection functions to compute summary values from arrays. This post walks through an end-to-end example: calculating a total from a list of items using just two functions — `Multiply` and `Sum`. 🧾 Scenario: Line Item Totals + Order Summary You’re working with a list of order items. For each item, you want to: Compute Total = Quantity × Price Then, compute the overall OrderTotal by summing all the individual totals 📥 Input { "orders" : [ { "Quantity" : 10, "Price" : 100 }, { "Quantity" : 20, "Price" : 200 }, { "Quantity" : 30, "Price" : 300 } ] } 📤 Output { "orders" : [ { "Quantity" : 10, "Price" : 100, "Total" : 1000 }, { "Quantity" : 20, "Price" : 200, "Total" : 4000 }, { "Quantity" : 30, "Price" : 300, "Total" : 9000 } ], "Summary": { "OrderTotal": 14000 } } 🔧 Step-by-step walkthrough 🗂️ 1. Load schemas in Data Mapper Start in the Azure Data Mapper interface and load: Source schema: contains the orders array with Quantity and Price Target schema: includes a repeating orders node and a Summary → OrderTotal field 📸 Docked schemas in the mapper 🔁 2. Recognize the repeating node The orders array shows a 🔁 icon on <ArrayItem>, marking it as a repeating node. 📸 Repeating node detection 💡 When you connect child fields like Quantity or Price, the mapper auto-applies a loop for you. No manual loop configuration needed. ➗ 3. Multiply Quantity × Price (per item) Drag in a Multiply function and connect: Input 1: Quantity Input 2: Price Now connect the output of Multiply directly to the Total node under Orders node in the destination. This runs once per order item and produces individual totals: [1000, 4000, 9000] 📸 Multiply setup ➕ 4. Aggregate All Totals Using Sum Use the same Multiply function output and pass it into a Sum function. This will combine all the individual totals into one value. Drag and connect: Input 1: multiply(Quantity, Price) Input 2: <ArrayItem> Connect the output of Sum to the destination node Summary → OrderTotal 1000 + 4000 + 9000 = 14000 📸 Sum function ✅ 5. Test the Output Run a test with your sample input by clicking on the Open test panel. Copy/paste the sample data and hit Test. The result should look like this: { "orders": [ { "Quantity": 10, "Price": 100, "Total": 1000 }, { "Quantity": 20, "Price": 200, "Total": 4000 }, { "Quantity": 30, "Price": 300, "Total": 9000 } ], "Summary": { "OrderTotal": 14000 } } 🧠 Why this pattern works 🔁 Repeating to repeating: You’re calculating Total per order 🔂 Repeating to non-repeating: You’re aggregating with Sum into a single node 🧩 No expressions needed — it’s all declarative This structure is perfect for invoices, order summaries, or reporting payloads where both detail and summary values are needed. 📘 What's coming We’re working on official docs to cover: All functions including collection (Join, Direct Access, Filter, etc.) that work on repeating nodes Behavior of functions inside loops Real-world examples like this one 💬 What should we cover next? We’re always looking to surface patterns that matter most to how you build. If there’s a transformation technique, edge case, or integration scenario you’d like to see explored next — drop a comment below and let us know. We’re listening. 🧡 Special thanks to Dave Phelps for collaborating on this scenario and helping shape the walkthrough.An Automated Tool for Collecting PSSDiag BizTalk Traces Using Event Logs
Often, users encounter intermittent event log errors from BizTalk that require further investigation using a BizTalk PSSDiag trace. However, since the timing of the next occurrence is unpredictable, troubleshooting becomes challenging. In such scenarios, a tool is needed to continuously collect PSSDiag traces until the error reoccurs, at which point the tool can automatically stop tracing and save the output. To address this need, I’ve developed a tool that automates this process based on user requirements. PSSDiag for BizTalk is a specialized diagnostic data collection tool tailored for troubleshooting BizTalk Server environments. Built as an extension of PSSDiag (Product Support Services Diagnostics), a widely used tool for diagnosing Microsoft SQL Server issues, it collects a comprehensive set of logs and diagnostic data specific to BizTalk. This includes information crucial for identifying and resolving performance, connectivity, or configuration issues. The tool runs from a console interface, and data collection can be stopped manually by pressing Ctrl+C. I have developed a console application PSSDiagCollector that launches PSSDiag to monitor the event log and automatically stops the PSSDiag collection once a specific event is detected. You can download the tool from this GitHub repository: https://github.com/huidongl/PSSDiagCollector The PSSDiagCollector.exe must be saved in the same folder as PSSDiagForBizTalk. Users can open a command prompt, navigate to the PSSDiagForBizTalk directory, and run PSSDiagCollector from there. The command can specify the Event ID, Event Source, or Event Type to capture, as well as the number of events required to stop the collection. Additionally, users can set a delay (in seconds) before stopping the trace. Detailed instructions for using the tool to collect PSSDiag BizTalk traces can be found in the repository. Run the following command to begin the collection: PSSDiagCollector.exe -eid <EventID> -c <EventCount> -p <PauseDuration> -es "<EventSource>" -lc "<LogCategory>" For example: PSSDiagCollector.exe -eid 7195 -c 3 -p 30 -es "BizTalk Server" -lc "Application" Please make sure to configure the Trace Type, Keep the last _ trace files in the Initialize.exe before running this tool to avoid the trace file being filled up.177Views2likes0CommentsBizTalk Server 2020 CU2 is available for download
CU2 for BizTalk Server 2020 is now available for download. For details on fixes and download link, please follow the master KB: https://support.microsoft.com/help/5003151 You may want to bookmark this index page for updates related to BizTalk Server: https://support.microsoft.com/help/2555976 As with CU1, the EN download is available by default. All other language packages will be made available on need basis. If a download is not available for the supported BizTalk language that you need, please contact us for the same. As a quick reminder, for BizTalk Developer Tools please also update/install version 3.13.2.0 of the BizTalk Server Visual Studio extension in addition to installing the CU package. The extension can be installed from https://marketplace.visualstudio.com/items?itemName=ms-biztalk.BizTalk or from within Visual Studio - Manage Extensions. Please note that we have not updated the extension since CU1 so you can skip this step if you have already installed it previously.4.9KViews1like2CommentsRecovering SAP BAPI Transactions with Custom Pipelines
We wrap up the series of articles on SAP BAPI transactions by presenting, step by step, another implementation of BAPI sales orders received in batches and created in SAP. The design is a combination of the previous concepts into a solution that leverages BizTalk pipeline features such as batch processing, XML disassembly, XML validation, and recoverable interchange processing (RIP).