ContributionsMost RecentMost LikesSolutionsRe: Salesforce Update REST API Throughput Part of my use case is that I need to ensure that all records are processed before I close the pipeline. The Bulk API is asynchronous and closes the snap when all the batches have been created, but before they are completely processed. The results of the record-level updates aren't available from the Bulk Snap or the Update snap using the Bulk API. The Salesforce Poller keeps the pipeline open until all the record updates are complete and returns record-level success/failure. Re: Salesforce Update REST API Throughput After some more experimentation, the Salesforce Poller snap keeps the pipeline open for the entire duration of the update and return individual successes and failure for each record. This is close enough to synchronous for my use cases. Salesforce Update REST API Throughput The Salesforce REST API can update up to 200 records be POST call. The Salesforce Update snap documentation says that it's implemented to only update 1 record at a time in REST mode. The Bulk API is asynchronous, even in serial mode. What is the best practice in SnapLogic to maximize throughput of synchronous record updates to Salesforce. I could implement the Salesforce REST API through the HTTP Client, but then what is the point of the Salesforce Snap Pack? SolvedIntermittent Task Failure BAD_REQUEST: POST to pipeline that does not have an unlinked input view This pipeline is executed by a [Scheduled Task > Pipeline > HTTP Client > Triggered Task] regularly. This pipeline hasn't changed structure in months. Occasionally I will get an error that the Triggered Task failed with the error: Reason: HTTP Code: HTTPStatus.BAD_REQUEST Status: POST to pipeline that does not have an unlinked input view Errors: None Any ideas why the task occasionally acts like the pipeline has a different structure? I can't replicate the error after it occurs, but it hasn't occurred intermittently for months. Re: mapValues returns null when adding certain condition Thank you. This was pretty close to the problem. If there is an error in a function called in mapValues, a null object is returned as the result of map values. My original error was from adding an or condition that would include keys which couldn't be parsed as dates. This error turned the entire object to null, which was what I observed. mapValues returns null when adding certain condition I'm using the following expression to parse date fields in an object. It works correctly. However, when I replace key.contains('date') with another string to compare, the expression returns null for the object. $attributes.mapValues((value,key) => key.contains('date') ? Date.parse(value).toLocaleDateTimeString({"timeZone":"US/Pacific", "format":"yyyy-MM-dd HH:mm:ss"}) : value) The behavior is constant with many, but not all strings. 'Item' works, but 'it' doesn't work. No single letter works except for 'z'. What is this behavior? How can I filter for other keys? SolvedRe: DIFF SNAP issue The Diff snap evaluates based on the exact values in each column of the incoming records. If a record exists in the Original and New inputs, but has a different data type in a field, then it will be evaluated as a Modification. For example, if a value is stored as “$50.31” in one document and 50.31 in another document, these are different values and should be marked as a Modification. The best way to solve this is to standardize the inputs in a Mapper snap before the Diff to align the data types of the inputs. For currency, parseFloat() will probably help. Re: Integrating Snaplogic with VBA The functionality to execute the macros is in the Excel program, not the workbook where the macros are stored. SnapLogic doesn’t have an engine to extract, compile, and execute the VBA code within the workbook. Re: Failure: Unable to write to JSON-Path I figured this one out. You can’t add paths to null objects. Since ACHData is null for the second record, it’s impossible to add ACHData.employeeId. If I reverse the order of the rows in the mapper then the result is that ACHData is null for the record, because ACHData.employeeId is set by the first row and then everything is cleared by the second row. This is currently undocumented behavior. Failure: Unable to write to JSON-Path JSON Path Test_2023_03_28.slp (6.4 KB) GOAL: Set up a mapper to write input document structure to new structure, deleting some paths, and renaming others. ERROR: “Failure: Unable to write to JSON-Path: $.ACHData.employeeId, Reason: Expecting object for JSON-Path field reference ‘employeeId’, found: String, Resolution: Change the path to refer to an object” How is a String not an Object in this use case? Solved