Sending XML payload to Ultra pipeline
I’m trying to execute an Ultra pipeline with an XML payload, but I’m getting the error below: Document input views only accept JSON-encoded data Resolution Please raise a defect with the following information, Pipeline Ruuid:d3c6dcc2-a498-4517-8df9-54910d504959 Reason Snap failed unexpectedly and did not provide any reason What steps can be taken to make Ultra parse an XML payload?8.7KViews0likes10CommentsPipeline return payload different in ultra vs triggered
Hello, We are migrating from triggered tasks to Ultra tasks and encountering some difficulties with return payload formats. I have a pipeline which integrates a Salesforce contact to a student object in an external system (accessed via SOAP service) via a force.com Apex trigger. The external system returns the student ID, login id and a version code once the integration is complete. The SnapLogic pipeline returns payload in the following format: { "StudentXNumber": "X000211", "StudentVersion": "1", "StudentLoginId": "userA" } This payload is parsed by the Apex trigger and used to update the relevant custom fields in the SF contact object (StudentXNumber, StudentVersion and StudentLoginId). The portion of the Apex trigger which parses the pipeline response from SnapLogic looks like this: /** * Class representing response obtained from callout to integrate a Contact to a student * */ public class DestinyOneContactIntegrationResult { public String StudentXNumber; public String StudentVersion; public String StudentLoginId; } … /** * Given a DestinyOneContactIntegrationResult json-serialized payload, deserializes and * populates data back into the given contact */ private static void populateContactIntegrationResult(Contact contact, String payload) { List<DestinyOneContactIntegrationResult> resList = (List<DestinyOneContactIntegrationResult>)System.JSON.deserialize(payload, List<DestinyOneContactIntegrationResult>.class); // assume one response at this time DestinyOneContactIntegrationResult intResult = resList.get(0); contact.one_Student_X_Number__c = intResult.StudentXNumber; contact.one_Version__c = intResult.StudentVersion; contact.one_Login_Id__c = intResult.StudentLoginId; } This logic works successfully, when the task is executed as a regular triggered task. To trigger the task as an Ultra task, I’ve created a parent pipeline which runs the original pipeline (now a child pipeline) via a Pipeline Execute and returns the result of the call … However, when the task is triggered as an Ultra task, the SnapLogic response format from the feedmaster is different somehow which causes the Apex trigger to fail on the deserialize call above… My ultra pipeline looks like this. As you can see the return value of the subpipeline is being returned with no additional processing: My force.com debug logs are as below: 38.0 APEX_CODE,DEBUG;APEX_PROFILING,INFO;CALLOUT,INFO;DB,INFO;SYSTEM,DEBUG;VALIDATION,INFO;VISUALFORCE,INFO;WAVE,INFO;WORKFLOW,INFO 08:03:42.0 (340149)|USER_INFO|[EXTERNAL]|00546000000HoO9|shenderson3@destinysolutions.com|Eastern Standard Time|GMT-04:00 08:03:42.0 (372137)|EXECUTION_STARTED 08:03:42.0 (376389)|CODE_UNIT_STARTED|[EXTERNAL]|FutureHandler - state load 08:03:42.0 (1917744)|CODE_UNIT_FINISHED|FutureHandler - state load 08:03:42.0 (2715296)|EXECUTION_FINISHED 08:03:42.14 (14404797)|USER_INFO|[EXTERNAL]|00546000000HoO9|shenderson3@destinysolutions.com|Eastern Standard Time|GMT-04:00 08:03:42.14 (14420197)|EXECUTION_STARTED 08:03:42.14 (14422800)|CODE_UNIT_STARTED|[EXTERNAL]|01p46000006EBak|DestinyOnePushToSnapLogic.runCallOut 08:03:42.14 (17724623)|SOQL_EXECUTE_BEGIN|[41]|Aggregations:0|SELECT g.Id, g.Name FROM CollaborationGroup g WHERE g.Name = :tmpVar1 LIMIT 1 08:03:42.14 (25529567)|SOQL_EXECUTE_END|[41]|Rows:1 08:03:42.14 (27303512)|SOQL_EXECUTE_BEGIN|[77]|Aggregations:0|SELECT Id, one_Student_X_Number__c, one_Version__c, one_Integration_Last_Status__c, one_Integration_Last_Success__c, one_Integration_Last_Attempt__c FROM Contact 08:03:42.14 (30317809)|SOQL_EXECUTE_END|[77]|Rows:1 08:03:42.14 (31115809)|CALLOUT_REQUEST|[99]|System.HttpRequest[Endpoint=http://destinypaymenttest.destinysolutions.com/berkeleyqa2/api/1/rest/feed-master/queue/DestinySolutions/development/Omair/SalesforceContactToDestinyOneTask, Method=POST] 08:04:59.733 (77733235108)|CALLOUT_RESPONSE|[99]|System.HttpResponse[Status=OK, StatusCode=200] 08:04:59.733 (77735367659)|FATAL_ERROR|System.JSONException: Malformed JSON: Expected '[' at the beginning of List/Set Class.System.JSON.deserialize: line 15, column 1 Class.DestinyOnePushToSnapLogic.populateContactIntegrationResult: line 135, column 1 Class.DestinyOnePushToSnapLogic.runCallOut: line 104, column 1 08:04:59.733 (77735384067)|FATAL_ERROR|System.JSONException: Malformed JSON: Expected '[' at the beginning of List/Set Class.System.JSON.deserialize: line 15, column 1 Class.DestinyOnePushToSnapLogic.populateContactIntegrationResult: line 135, column 1 Class.DestinyOnePushToSnapLogic.runCallOut: line 104, column 1 08:04:59.735 (77735392134)|CUMULATIVE_LIMIT_USAGE 08:04:59.735 (77735392134)|LIMIT_USAGE_FOR_NS|(default)| A portion of my subpipeline (including the final mapper snap) is shown below. What change must I make to my pipelines so that they run correctly in Ultra? Ideally I’d like to keep my Apex trigger unchanged (so that regardless of how I execute the task in SnapLogic the return payload format is the same) Thanks, Omair6.6KViews0likes6CommentsUnable to retrieve average duration of pipeline executions from Ultra task
I have ultra task triggered by a pipeline that executes all of the time. I want to get the average “duration” of pipeline executions from the dashboard executions for the past 7 days (1 week duration), but when I try to do that from the Rest Get I get random around 50 entries only for few days (besides having more than 500 - 600 executions of the pipeline per week). Is this the case because this is an ultra task, because when I try this with triggered and scheduled tasks I can actually get the average duration of pipeline executions? I have tried stopping the instance and invoking them again using REST Post Snap, however this was unsuccessful. Below are shown my pipelines.3.8KViews0likes3CommentsCorrect way of restarting ultra pipelines
Hi, I’m writing to ask about the correct way to restart ultra pipelines. In our production environment we have 7 ultra tasks with 5 instances each. We went to the SnapLogic manager view and Disabled and Re-enabled all the tasks. In this case we saw that ~20 out of the 35 task instances were restarted with the others failing to restart. This leads me to believe that this is not a guaranteed way of restarting all pipeline task instances. Can someone tell me what is the correct way of restarting all the pipelines?3.5KViews0likes1CommentUltra task with Salesforce Read snap: merge output into single document
I have a question similar to the one asked here Merge documents into one big document Specifically, I have a pipeline with a Salesforce Read Snap which returns 0 or more documents as the result. I’d like the output of the Read Snap to contain a single document containing an array with results returned by the Read Snap. Based on my reading of the forum posting: I cannot use the Group By N snap as it isn’t supported in Ultra tasks It is possible to use the script snap in an Ultra snap to do this. I’ve attached a pipeline that can do this: SFReadUltraPipeline.slp (13.6 KB) The pipeline returns the following output from a triggered (non-ultra task): [ { "theOriginal": { "Id": "0036A00000Vatj6QAB", "FirstName": "Andrew", "LastName": "Ramirez", "hed__AlternateEmail__c": "aramirez@destinsolutions.com", "original": { "FirstName": "Andrew", "Email": "aramirez@destinysolutions.com" } }, "duplicates": [ { "Id": "0036A00000AbbdpQAB", "FirstName": "Andrew", "LastName": "Ramirez", "hed__AlternateEmail__c": "aramirez@destinysolutions.com", "original": { "FirstName": "Andrew", "Email": "aramirez@destinysolutions.com" } }, { "Id": "0036A00000AbbeOQAR", "FirstName": "Andrew", "LastName": "Mayzak", "hed__AlternateEmail__c": "4541474710648498@destinysolutions.com", "original": { "FirstName": "Andrew", "Email": "aramirez@destinysolutions.com" } }, { "Id": "0036A00000Vatj6QAB", "FirstName": "Andrew", "LastName": "Ramirez", "hed__AlternateEmail__c": "aramirez@destinsolutions.com", "original": { "FirstName": "Andrew", "Email": "aramirez@destinysolutions.com" } } ] } ] with the dashboard view demonstrating that documents are merged correctly: A request sent to an ultra task based on the pipeline times out, with the dashboard indicating the script snap never returns: I suspect that the issue is that document lineage is not being maintained by the script snap. However, I don’t know how to maintain document lineage and also get the snap to output a single document with an array containing the results of the Salesforce Read Snap. Can someone tell me how to alter this pipeline to make it ultra compatible while still returning a single output document containing the results of the Salesforce Read snap?3.5KViews0likes2CommentsUltra pipeline caching issue - SAP execute snap
Hello, Did anyone ever had caching issue with Ultra pipeline. I have ultra pipeline calling SAP BAPI using SAP execute snap. While executing the pipeline we are facing caching issue, where the response object of call 1 being returned for call 2. Thanks Prakash3.5KViews0likes3CommentsHow to automatically disable and enable Ultra task through api's
Hello, We have a requirement to automatically recycle ultra task threads on every day at a certain time. Are there any api’s to disable and enable ultra task ? or any alternative to recycle threads when ultra task is hung. Thank you in advance. Harish3.3KViews0likes3CommentsInvocation of Ultra task fails
Hello Team, I have created a test pipeline, where using Rest post I am invoking an Ultra pipeline. The ultra pipeline is simple, it expects the $test input and sends the result back. This is only for test purpose. Here is the input that I provide to the Rest post snap: [ { “url”: “https://URL/api/1/rest/feed-master/queue/Reece-Dev/-Project/Test/Test%20Task%20Ultra”, “token”: “xyz”, “test”: “1” } ] Here is a test pipeline : The Rest post gives an error: I fail to understand why does the ultra pipeline throw an error when I am passing $test object to it. Here is the snap of Ultra task : Can someone help here please?Solved2.3KViews0likes2CommentsUltra Pipeline URL Can't Be Reached; Request Times Out
I have created a pipeline that runs while using a triggered task but when I re-create the same pipeline but with using an ultra task I am unable to reach the HTTP endpoint due to timeout. My pipeline starts with an XML formatter, as the content of my request is an http post content-type = application/xml. I have added the content type and authorization header to my post request which I am sending via Advanced Rest Client (this all works when using triggered task). The pipeline execution statistics also show that the ultra task is listening but I am unable to reach it via the advanced rest client. Screenshot of my pipeline is posted below. Any help is greatly appreciated. Thanks, Chris2.1KViews0likes0Comments