Skip to main content

MuleSoft Feed

Connect with fellow Trailblazers. Ask and answer questions to build your skills and network.

From what I have understood, the variables tied to the thread will be lost once the time based or size based aggregation is done and the flow that gets triggered by aggregator-listener runs on a  brand new thread with no connection to original request and variables reset to defaults. In our case, we have an exp api, that in turn is calling 2 other process api and this inturn is calling a system api that has time based aggregator with timeout period of 15 mins. In order to track this transaction end to end, we have introducted tracker fields like correlation Id, businessObjectKey etc., But these are getting lost once the aggregator listener triggers the flow, what is the best way to retain the tracker fields   

2 answers
  1. Apr 24, 11:31 AM

     The best way to retain tracking fields like CorrelationId while using a time-based aggregator and aggregator listener in MuleSoft is to explicitly persist and propagate the value as part of the aggregated payload or metadata, rather than relying on flow variables alone (since they are not automatically preserved across aggregation boundaries). Typically, you should include the CorrelationId in the message payload, attributes, or as a custom object before aggregation, and configure the aggregator to group based on that CorrelationId. When the aggregator completes, ensure the aggregated result still contains this field so that the aggregator listener can access it. A common and reliable approach is to store the CorrelationId in an Object Store or external persistence if needed for long-running aggregations, and always map it back into the final message structure, ensuring end-to-end traceability across asynchronous processing. 

0/9000

I would like to mass upload a file of photos. I have the record Ids. I am following the steps in this article but it doesn't mention anything like Content Version ID yet it is a required field on the Content Version object.   

3 answers
  1. Mar 11, 5:32 PM

    Hi @Richard Muhumuza

     

    Please refer to the below link - 

    https://www.youtube.com/watch?v=-2OS6QylZQ0

     

     

    If you are targetting to upload files under any specific record - mention the same under FirstPublishLocationId. 

    If you want the files to be uploaded under the Salesforce Files - give your user Id under  FirstPublishLocationId.  

    You can try with workbench by omitting the ContentDocumentId field - works this way too

0/9000

Dear Community Members, 

I would like to know, Can data loader application be used only with admin profile,can the user having data loader be restricted to a certain object and records? 

 

Please let me know if it is possible. 

 

Regards, 

Siddharth A 

 

 

#Dataloader.io

5 answers
  1. Apr 24, 11:34 AM

    Hi Siddharth, 

    No, Salesforce Data Loader does not require a System Administrator role, but it does require specific permissions to function properly  the user must have API Enabled permission along with appropriate object-level access such as Create, Read, Edit, or Delete depending on the operation being performed, and also field-level access to the relevant fields, otherwise the data cannot be viewed or modified—so while admin access is not mandatory, sufficient permissions are essential for using Data Loader effectively.

0/9000

I have requirement to call PATCH method of a resource where user can update of the details mentioned in the request . Account ID which is the key is passed as URI. User can update any or all of these parameters. Since request parameters are not fixed i need to dynamically build UPDATE query.

{

   "name": "Mule",

"phone": "888888888",

"balance": "2000",

"billingCity": "London"

}

Below is the dataweave that is written to build set query. I have tried all combinations to execute update query.

 

%dw 2.0

import * from dw::core::Strings

output application/json 

---

((({

name: payload.name default "",

phone: payload.phone default "",

balance: payload.balance default "",

billingcity: payload.billingCity default ""

}pluck (($$)++'='++"\""++($)++"\"") ) 

reduce(item, acc="")-> acc ++ (if(!isEmpty(substringAfter(item,"="))) item++"," else "")) substringBeforeLast(",")) as String 

 

DB query

 

UPDATE account

SET :query

WHERE idaccount = :accID

 

Input parameters

 

output application/java

---

{

query: vars.query,

accID: attributes.uriParams.accID as String

}

 

vars.query is expected as name="Max",phone="9999999999",balance="20000",billingcity="Bangalore" to work properly. However it is not working . Tried replacing escape character with "" but then it doesnt work.

 

"name=\"Max\",phone=\"9999999999\",balance=\"20000\",billingcity=\"Bangalore\""

 

Kindly let me know if any better ideas to make this work

13 answers
  1. Shekh Muenuddeen (NTTData) Forum Ambassador
    Nov 22, 2020, 9:01 AM

    Hey,

     

    Another way to do it first create query variable and store below DataWeave logic

    %dw 2.0

    output application/json

    var data = {

    "name": "Mule",

    "phone": "888888888",

    "balance": "2000",

    "billingCity": "London"

    }

    ---

    "UPDATE account SET " ++

    ((data filterObject ((value, key, index) -> (value != null and value != "")) mapObject ((value, key, index) -> {

    myData : (key as String) ++ " = :" ++ (key as String)

    })).*myData joinBy " AND ") ++ "WHERE idaccount = :accID"

    Its gives you query like below I have stored it query variable

    "UPDATE account SET name = :name AND phone = :phone AND balance = :balance AND billingCity = :billingCityWHERE idaccount = :accID"

    Another DataWeave to stored the input parameters its stored like below DataWeave

    %dw 2.0

    output application/json

    var data = {

    "name": "Mule",

    "phone": "888888888",

    "balance": "2000",

    "billingCity": "London"

    }

    ---

    {

    idaccount : "12345678"

    } ++

    (data filterObject ((value, key, index) -> (value != null and value != ""))) default {}

    Output

    {

    "idaccount": "12345678",

    "name": "Mule",

    "phone": "888888888",

    "balance": "2000",

    "billingCity": "London"

    }

    And Finally in the DataBase Update Operation I have provided the both variable query and inputparametes as below

    Hey, Another way to do it first create query variable and store below DataWeave logic%dw 2. 

    SO its dynamic with Paramterized.

     

    Regards,

    Shekh

0/9000

Hi Experts,

 

I am trying to call a BAPI using SAP connector execute BAPI sRFC.

But the BAPI name contains slash "/" (ex: /NAMESPACE/BAPINAME)

 

The slash is causing errors when the api has been executed.

 

Here is the error message:

**An exception occured while parsing XML.

The markup in the document preceding the root element must be well-formed.**

 

Please provide solution.

 

Thanks,

Veera

3 answers
  1. Mar 26, 12:53 PM

    Thank you Sam, your answer was very helpful ! :) 

     

     

     

     

     

    Sam Speed (EPAM)

0/9000

We need to move some external data into GP but the connector says it supports v 2015 and we have 2018.    What have others done?   

2 answers
  1. Mar 25, 7:10 PM

    As the issue we have is with the Mulesoft connector not supporting the 2018 and only the 2015 version,  I wonder what assistance they can offer but asking them about options couldn't hurt.

0/9000

When I import a project normally and try to run or debug it the Studio only builds it and it stops there. I have found that when I import a project with "Copy project into workspace" checkbox being checked then it runs and debugs normally. The studio is the latest one. Studio 7 works normally. I have reinstalled studio 6, changed the workspace folder - nothing helped. Any ideas?

5 answers
  1. Mar 25, 4:14 PM

    So - this is what happened to me: 

    I entered environment variables to the runtime config. Then this exact problem started. 

     

    I removed environment variables and went with the default conf files again and it's running good. Hope this can be some help to others that come over the same issue. 

     

    Neither Copilot, ChatGPT or Claude were any help :D

0/9000

I am getting below error as I have a HTTP requester node where we have a PUT call so there is no response body.

 

So while creating inbound response we get below error on Transform node.

Unable to parse empty input, while reading `payload` as Json

 

If I do a setPaylod like below with empty body then it works.

<set-payload value="#{}" doc:name="Set Payload" doc:id="4d3edefb-a8c4-43af-bfa4-4625f536509f" />

 

However I am looking for a solution to handle this in the transform node itself.Unable to parse empty input, while reading `payload` as JsonPlease let me know how to handle this in transform node in the best possible way ?

11 answers
  1. Shekh Muenuddeen (NTTData) Forum Ambassador
    Nov 24, 2021, 4:01 PM

    Hey,

     

    check once with below code in dataweave 2 mule 4

    %dw 2.0

    output application/java

    ---

    if(!isEmpty(payload))

    payload

    else

    null

    As per article its seem content type issue, means request body without content type

    https://help.mulesoft.com/s/article/Unable-to-parse-empty-input-error-with-Dataweave-Mule-4

0/9000

Important Update: Anypoint Platform is migrating to a New Email Server System starting April 6, 2026Important Update: Anypoint Platform is migrating to a New Email Server System starting April 6, 2026What’s changing:Starting April 6, 2026, we are transitioning Anypoint Platform’s mailing distributioWhat’s changing:

Starting April 6, 2026, we are transitioning Anypoint Platform’s mailing distribution system to Salesforce Marketing Cloud Next. As a result, you or your company-provided mail server will begin receiving emails from the new email system, which will use new sender (‘from’) and reply-to (‘reply-to’) addresses. 

 

This transition period begins April 6, 2026, and we expect all emails to be sent exclusively from the new processing system by April 30, 2026. Between April 6, 2026 and April 20, 2026 your server will continue to receive emails from both the existing and new systems. 

 

Why is this changing:

Anypoint Platform is transitioning to a new email distribution system to improve security and resilience of our email alert notifications service. 

 

What do you need to do:

To continue receiving all necessary communications from Anypoint Platform, take these actions:

  1. Configure your email server system to allow emails from the new email processing system, which uses the new sender and reply-to addresses. 
  2. Update configurations in your email server to prevent Anypoint Platform emails from being incorrectly identified as spam. 

 

Review this Knowledge Article for more details on how to prepare for this upcoming change and implement changes. We request that you take these actions because MuleSoft doesn’t have knowledge about your email server or configurations to automate this on your behalf. 

 

What happens if you don’t make the change:

If you don’t make this change, then effective April 6, 2026 you will risk losing access to critical emails from Anypoint Platform. This change does not affect your runtime APIs or integration flows. 

 

We appreciate your attention to this important update, and your partnership in keeping our ecosystem secure. For questions, contact your MuleSoft account team. 

 

#MuleSoft Anypoint Platform

3 comments
0/9000

I am not able to install anypoint studio, I am getting below error when clicking on the download link. It's not a network or device specific issue because I have tried with different network and devices. 

 

Not able to download Anypoint Studio

 

 

 

#MuleSoft Anypoint Studio

3 answers
  1. Eric Burté (DEVOTEAM) Forum Ambassador
    Mar 17, 9:38 PM

    @Aditya Chasta

    it seems ok for me. Maybe try to upload your Chrome web browser first 

    And tray again in a normal Chrome window.

    it seems ok for me. Maybe try to upload your Chrome web browser first And tray again in a normal Chrome window.

    Good luck 

    Eric 

0/9000