Salesforce-MuleSoft-Developer Practice Test Questions

Total 234 Questions


Last Updated On : 16-Jul-2025



Preparing with Salesforce-MuleSoft-Developer practice test is essential to ensure success on the exam. This Salesforce SP25 test allows you to familiarize yourself with the Salesforce-MuleSoft-Developer exam questions format and identify your strengths and weaknesses. By practicing thoroughly, you can maximize your chances of passing the Salesforce certification spring 2025 release exam on your first attempt.

Surveys from different platforms and user-reported pass rates suggest Salesforce-MuleSoft-Developer practice exam users are ~30-40% more likely to pass.

Refer to the exhibits. The Mule application does NOT define any global error handlers.
A web client sends a POST request to the Mule application with this input payload. The File Write operation throws a FILE: CONNECTIVITY error.
What response message is returned to the web client?



A. "FILE: CONNECTMTV


B. "OTHER ERROR"


C. "File written"


D. "ORDER: NOT CREATED"





D.
  "ORDER: NOT CREATED"

Explanation:

The File Write operation throws a FILE:CONNECTIVITY error.
The in the flow converts this to ORDER:NOT_CREATED.
Since the error is mapped and not propagated (no On Error Propagate), the flow continues, and the HTTP error response uses the mapped error (ORDER:NOT_CREATED) as the payload (Option D).

Why Other Options Are Wrong:

A (FILE:CONNECTIVITY): Incorrect—the error is mapped to ORDER:NOT_CREATED.
B (OTHER ERROR): Only triggers if an unmapped error occurs.
C (File written): The flow doesn’t reach this step due to the error.

In the execution of scatter gather, the "sleep 2 sec" Flow Reference takes about 2 sec to complete, and the "sleep 8 sec" Flow Reference takes about 8 sec to complete.
About how many sec does it take from the Scatter-Gather is called until the "Set Payload" transformer is called?



A. 8


B. 0


C. 2


D. 10





A.
  8

Explanation:

The Scatter-Gather router executes referenced flows in parallel and waits for all routes to complete before proceeding. Here:

sleep 2 sec finishes in 2 seconds.

sleep 8 sec finishes in 8 seconds.
The total time is determined by the slowest route (8 seconds) before Set Payload runs (Option A).

Why Other Options Are Wrong:

B (0): Incorrect—Scatter-Gather doesn’t bypass routes.
C (2): Only accounts for the faster route.
D (10): Incorrectly sums times (parallel, not sequential).

How are multiple conditions used in a Choice router to route events?



A. To route the same event to the matched route of EVERY true condition


B. To find the FIRST true condition, then distribute the event to the ONE matched route.


C. None of these


D. To find the FIRST true condition, then route the same event to the matched route and ALL FOLLOWING routes





B.
  To find the FIRST true condition, then distribute the event to the ONE matched route.

Explanation:

Choice router finds the FIRST true condition, then distribute the event to the ONE matched route. The Choice router dynamically routes messages through a flow according to a set of DataWeave expressions that evaluate message content. Each expression is associated with a different routing option. The effect is to add conditional processing to a flow, similar to an if/then/else code block in most programming languages.

Only one of the routes in the Choice router executes, meaning that the first expression that evaluates to true triggers that route’s execution and the others are not checked. If none of the expressions are true, then the default route executes.

A flow needs to combine and return data from two different data sources. It contains a Database SELECT operation followed by an HTTP Request operation.
What is the method to capture both payloads so the payload from the second request does not overwrite that from the first?



A. Put the Database SELECT operation inside a Cache scope


B. Put the Database SELECT operation inside a Message Enricher scope


C. Nothing, previous payloads are combined into the next payload


D. Save the payload from the Database SELECT operation to a variable





D.
  Save the payload from the Database SELECT operation to a variable

Explanation:

Correct answer is Save the payload from the Database SELECT operation to a variable Response from HTTP request will override the payload and hence response of database SELECT can be lost. Best way to preserve is to assign payload of first operation to variable using TransformMessage.

In MuleSoft, each operation in a flow replaces the current payload with its result. So:

If you perform a Database SELECT, the result becomes the new payload.
Then, if you perform an HTTP Request, that response overwrites the payload from the database.

Incorrect Options:

A. Cache scope – Used for caching, not for preserving payloads.
B. Message Enricher – Adds a value to the payload temporarily but isn't the simplest method for this case.
C. Nothing – Wrong. Mule replaces the payload at each step.

Refer to the exhibit.

What is the correct syntax to add a customer ID as a URI parameter in an HTTP Listener's path attribute?



A. (customerlD)


B. {customerlD}


C. #[customerlD]


D. ${ customerID}





B.
  {customerlD}

Explanation:

In MuleSoft, when you want to define a URI parameter in an HTTP Listener path, the correct syntax is to enclose the parameter in curly braces.

So for a customer ID:

/accounts/{customerID}

This allows Mule to match requests like:

/accounts/12345

And extract "12345" into a variable accessible via attributes.uriParams.customerID.

Incorrect Options:
A. (customerID) – Parentheses are not valid for URI template parameters.
C. #[customerID] – This is DataWeave expression syntax, not used in listener paths.
D. ${customerID} – This is property placeholder syntax, not URI parameter syntax.

Refer to the exhibits.

What DataWeave expression transforms the conductorIds array to the XML output?



A. 1. 1. trains:
2. 2. conductorIds map ((engId, index) ->
3. 3. train: {
4. 4. engineerId: engId
5. 5. }
6. 6. )


B. 1. 1. { trains:
2. 2.
3. 3. conductorIds map ((engId, index) ->
4. 4. train: {
5. 5. engineerId: engId
6. 6. }
7. 7. )
8. 8. }


C. 1. 1. trains:
2. 2. {(
3. 3. conductorIds map ((engId, index) ->
4. 4. train: {
5. 5. engineerId: engId
6. 6. }
7. 7. )
8. 8. )}


D. 1. 1. {( trains:
2. 2.
3. 3. conductorIds map ((engId, index) ->
4. 4. train: {
5. 5. engineerId: engId
6. 6. }
7. 7. )
8. 8. )}





C.
  1. 1. trains:
2. 2. {(
3. 3. conductorIds map ((engId, index) ->
4. 4. train: {
5. 5. engineerId: engId
6. 6. }
7. 7. )
8. 8. )}

Explanation:
Points to remember:
* XML must have a root element.
* XML only allows one root element
* To avoid multiple root issues, you must create a root element for the XML output, whenever we transform output
* When mapping array elements (JSON or JAVA) to XML, wrap the map operations in {(..)} -{ } are defining the object
( ) are transforming each element in the array as a key/value pair
* The transformation to XML would fail if the above mentioned considerations were not taken into account.
* Thus the transformation script declares a root element as trains and wraps the data in “{( )}“.
Whenever you see such type of question, always look out for root element followed by {( )} wrapping map.
I call this a "Wrap The Map" scenario. Hope it would help you remember !

Refer to the exhibit.



The main flow contains a Flow Reference for the child flow.
What values are accessible in the child flow after a web client submits a request to http://localhost:8Q81/order? color=red?



A. payload


B. payload quantity var


C. payload color query param


D. payload quantity var color query param





D.
  payload quantity var color query param

Explanation:
Flow Reference Component
Flow Reference routes the Mule event to another flow or subflow, executes all processors in the referenced flow, and then routes the event back within the same Mule application. The following diagram shows the order of processing when one flow references another:



When the main flow is triggered, the Mule event travels through and executes the flow until the event reaches the Flow Reference. The event then travels through and executes the referenced flow from beginning to end, and then returns to the main flow.
This process enables you to treat the entire referenced flow like a single component in your current flow.

Refer to the exhibit.



A. Option A


B. Option B


C. Option C


D. Option D





B.
  Option B

Explanation:

DataWeave 2.x uses the as Number cast (not the :number shorthand) when converting XML text to numeric types. You can traverse the XML with the payload.order.*item selector, then map each node into an object, computing the line-item price by multiplying the price and quantity as Numbers:

%dw 2.0
output application/json
---
payload.order.*item map ((value, index) -> {
index: index,
orderId: value.@orderId,
itemName: value.item,
lineItemPrice: (value.price as Number) * (value.quantity as Number)
})

That produces:

[
{ "index": 0, "orderId": "592", "itemName": "T-shirt Navy", "lineItemPrice": 20 },
{ "index": 1, "orderId": "972", "itemName": "Cargo Shorts", "lineItemPrice": 60 }
]

Refer to the exhibits.



The Set Payload transformer's value is set to {'year': '2020'}.
What message value should be added to the Logger component to output the message 'The year is 2020', without hardcoding 2020?



A. '#[The year is $(pay load .year)]*


B. The year is #[payload.year]'


C. '#[The year is " + paytoad.year]'


D. #["The year is "++ payload.year].





D.
  #["The year is "++ payload.year].

Explanation:

To dynamically insert the value of payload.year (which is "2020") into a logger message without hardcoding it, you need to use a DataWeave expression with proper syntax.

The payload set is:

{ "year": "2020" }

The goal is to produce this log message:

The year is 2020

Why others are incorrect:

A: #[The year is $(payload.year)] → Incorrect syntax, $(...) is not valid in DataWeave
B: The year is #[payload.year] → Mixing literal and expression without proper quoting
C: #[The year is " + payload.year] → Incorrect, mixing string and expression inside a string literal

Which out of below is not an asset?



A. Template


B. Connector


C. Exchange


D. Example





C.
  Exchange

Explanation:

Anypoint Exchange is the central repository where you publish and discover assets. Templates, Connectors, and Examples are all types of assets you can upload and manage in Exchange—Exchange itself is the platform, not an asset.

Page 7 out of 24 Pages
Salesforce-MuleSoft-Developer Practice Test Home Previous