BassemE/mulesoft-documentation-embeddings huggingface dataset:
Failure to store message payload | MuleSoft Documentation
# `Failure to store message payload`
You might occasionally see tracking information such as this in the Activity section of Anypoint Partner Manager:
```
Unrecognized standard from unrecognized partner
Received <datetime> `Failure to store message payload`
File <name>
```

## Causes
This information appears in the Activity section when one of the following occurs:
  * The payload storage API on the host’s profile is not appropriately configured.
  * The payload storage API is not functioning.
  * The storage solution associated with the payload storage API is not functioning.


## Solution
Take the following actions to verify the Payload Storage API configuration:
  1. Verify the appropriate configuration for the payload storage API by performing a simple test request using a browser extension such as Postman on Google Chrome.
  2. Visit Anypoint Runtime Manager to verify that the related payload storage API is active and functioning by restarting the app.
  3. If the payload storage app is functioning, verify that the storage solution you are using (such as the S3 bucket, Azure Blob store, database, and so on) is up and functioning.


If all these scenarios have been verified successfully, and you still cannot deploy message flows, please raise a case on the MuleSoft Support Portal.
If you have an existing commercial relationship with MuleSoft and are experiencing problems accessing your Anypoint Platform account, you can open a case from the MuleSoft Support Portal. If you can’t access the Support Portal, contact your Customer Success Manager or MuleSoft Account Management team for assistance.
Upgrading and Migrating Workday Connector to 16.x | MuleSoft Documentation
# Upgrading and Migrating Workday Connector to 16.x
Upgrade Anypoint Connector for Workday (Workday Connector) to version 16.x.x.
## Supported Upgrade Paths
From Version | To Version  
---|---  
## What’s Changed
### 16.x
  * The connector is upgraded to Workday API version 40.0.
  * The connector now supports the **ACA Partner Integrations** and **Student Transfer Credit** operations.
  * The connector now throws the new `WORKDAY:BAD_REQUEST` error.
  * The com.fasterxml.jackson.core library is upgraded to version 2.15.0-rc1 to address reported security vulnerabilities.
  * The mule-soap-engine library is upgraded to version 1.7.2 to address reported security vulnerabilities.
  * The org-springframework library is upgraded to version 5.3.27 to address reported security vulnerabilities.


## Upgrade Prerequisites
Before you upgrade Workday Connector from version 15.x to version 16.x, you must:
  1. Create a backup of your files, data, and configuration in case you need to restore the connector to the previous version.
  2. Install Workday Connector 16.x to replace the Workday operations that were previously included in Workday Connector 15.x.


## Upgrade Steps
Follow these steps to perform the upgrade from Workday Connector 15.x to Workday Connector 16.x:
  1. In Studio, create a Mule project.
  2. In the **Mule Palette** view, click **Search in Exchange**.
  3. In the **Add Dependencies to Project** window, enter `workday` in the search field.
  4. In the **Available modules** section, select **Workday Connector - Mule 4** and click **Add**.
  5. Click **Finish**.
  6. Verify that the `workday-connector` dependency version is `16.0.0` in the `pom.xml` file.


Studio upgrades the connector automatically.
## Verify the Upgrade
After you install the latest version of the connector, follow these steps to verify the upgrade:
  1. In Studio, verify that there are no errors in the **Problems** or **Console** views.
  2. Check the project `pom.xml` file and verify that there are no problems.
  3. Test the connection and verify that the operations work.


## Troubleshooting
If there are problems with caching the parameters and caching the metadata, try restarting Studio.
## Revert the Upgrade
If you must revert to the previous version of Workday Connector, change the `workday-connector` dependency version `16.x.x` in the project’s `pom.xml` file to the previous version.
You must update the project’s `pom.xml` file in Studio.
## See Also
  * Introduction to Anypoint Connectors
  * MuleSoft Help Center
MuleSoft Automation Credits 2.0 | MuleSoft Documentation
# MuleSoft Automation Credits 2.0
Your MuleSoft Automation subscription plan includes a quota of Automation Credits that depletes as you create and execute automations. You can use Automation Credits with MuleSoft Composer, MuleSoft IDP, MuleSoft RPA, Salesforce Flow Orchestration, MuleSoft for Flow: Integration, or a combination of these products.
The following table shows the conversion rate between Automation Credits and different activities:
RPA Bot Minutes | RPA API Calls | Composer Tasks | Flow Orchestration Runs | IDP Document Pages | Integration Tasks  
---|---|---|---|---|---  
1 = 80 Automation Credits | 1 = 2 Automation Credits | 1 = 2 Automation Credits | 1 = 100 Automation Credits | 1 = 25 Automation Credits | 1 = 2 Automation Credits  
MuleSoft adds all the RPA execution times in seconds for the period and then multiplies this raw usage by a constant multiplier to calculate the credit usage subtotal. See Monthly Account Summary Email FAQ for more information about multipliers and usage reports.
For detailed definitions and more information, see MuleSoft Subscription Plan.
## Generative AI
The services contain features that use generative AI technology that may be provided by one or more third-parties as listed in the documentation applicable to the services. This documentation provides information and product requirements specific to these generative AI features and providers, including applicable third-party acceptable use policies which the customer must comply with when using the generative AI technology. Due to the nature of generative AI, the output that it generates may be unpredictable, and may include inaccurate or harmful responses. Before using any generative AI output, the customer is solely responsible for reviewing the output for accuracy, safety, and compliance with applicable laws and third-party acceptable use policies. The customer assumes all responsibility for output generated by the services and, as between Salesforce and the customer, such output is customer data.
Einstein supports these predictive models:
  * OpenAI’s `GPT-4o (gpt-4o-2024-08-06)` LLM
  * OpenAI’s `GPT-4o Mini (gpt-4o-mini-2024-07-18)` LLM
  * Google’s `GEMINI-2.0 Flash 001` LLM


Einstein accesses these models through the Salesforce Einstein Trust layer, which is part of the Salesforce Einstein platform.
Select the model to use during document analysis by clicking **Settings** in the document action editor.
Document actions created before February 5th support only OpenAI’s `GPT-4o (gpt-4o-2024-05-13)`. To enable model selection and the new models, create a new document action. See Configure Document Action Settings for details about feature availability and configuration.   
---  
  * OpenAI’s `GPT-4o (gpt-4o-2024-08-06)` LLM
  * OpenAI’s `GPT-4o Mini (gpt-4o-mini-2024-07-18)` LLM
  * Google’s `GEMINI-2.0 Flash 001` LLM


Einstein doesn’t use customer data to train any models for document analysis in IDP.   
---  
## See Also
  * Automation Credits Usage and Rates
  *   * Monthly Account Summary Emails
Downloading Test Apps from Exchange | MuleSoft Documentation
# Downloading Test Apps from Exchange
If you don’t have a Mule app to test with, you can download an example app from Anypoint Exchange.
You must be logged into your Anypoint Platform account to see the example assets on Exchange.   
---  
  1. From Anypoint Platform, select **Exchange**.
  2. From the **All assets** list, select **Provided by MuleSoft**.
  3. From the **All types** menu, select **Examples**.
  4. Click an app to download, for example, **Hello World**.
CloudHub 2.0 supports Mule runtime engine versions 4.3.x and later. Mule 3.x is not supported.
  5. Click **Download** :
Exchange downloads the app JAR file to your local system.


## See Also
  * Example Assets provided by MuleSoft on Exchange
Creating and Editing Links Between Object Types | MuleSoft Documentation
# Creating and Editing Links Between Object Types
The following tasks explain how to create and undo links between object types.
## Link Related Object Types
Linking enables you to join fields from two related object types to create more useful query results from the unified schema.
  * Before linking object types, be sure to set the fields to visible.
  * You can link only to object types that have Enable collaborationfor any object types you want to link to.


To link object types:
  1. In the API schema navigation, select the object type you want to link from (source).
  2. Scroll to the **Link to another type** pane, and in **Select the type you want to link to (Target menu)** , select the target object.
Anypoint DataGraph detects and displays the primary key or the composite keys of the target type.
  3. Use the drop-down menu to select the field that will be the foreign key in the source.
The foreign key maps to the primary key on the target type and has the exact same data type.
If the target type uses composite keys, you must select two fields.
  4. In **New field configurations** , review and edit, if necessary, the name for the linked field.
Anypoint DataGraph creates this field in your current type and links it to the target type.
  5. (Optional) Hide the foreign key field from the unified schema.
The new field returns the type you’re linking to, so it’s safe to hide the foreign key unless it has outstanding queries.
  6. Click **Save changes**.


If you scroll up to the fields pane, an icon shows the fields are now linked:
## Remove a Link Between Object Types
A field can be linked to only one other object type at a time. So if you no longer need the link, or want to link the field to another object type, you can remove the original link.
To remove a linked between object types:
  1. From the unified schema, click **List of APIs added** and select the API that contains the object type with the linked field.
  2. In the API schema navigation, select the object type with the linked field, and scroll to the **Link to another type** pane.
  3. Find the link you want to remove and click to open the link details.
  4. Click **Remove Link**.
  5. Click **Save** , and then click **Apply Changes**.


## Additional Resources
  * How Links Between Object Types Work in Anypoint DataGraph
Troubleshooting Platform Connections | MuleSoft Documentation
# Troubleshooting Platform Connections
When configuring Flex Gateway, it is possible for the Flex Replica’s `registration.yaml` to be absent or for the replica to lose its connection to Anypoint Platform.
To troubleshoot whether a registration file is present and whether Flex Gateway can make platform connections, use the following command:
```
flexctl check connections
```

The `flexctl check connections` command first ensures that a `registration.yaml` file is present. Then it checks whether the replica can connect to the URLs defined in the registration file. If the `flexctl check connections` command is successful, it returns the following `info` message:
```
$ flexctl check connections
[flexctl][info] Connection to platform endpoints successful.
```

## No Registration File Found
If the `registration.yaml` file isn’t found, Flex Gateway returns the following error message:
```
$ flexctl check connections
Error: no registration config
```

To troubleshoot an absent registration file, check your Flex Replica configuration folder. To learn more about registering a Flex Gateway, see following section for your relevant mode:
  * Registering and Running Flex Gateway in Connected Mode
  * Registering and Running Flex Gateway in Local Mode


## Failed Connection
There are multiple reasons why Flex Gateway might experience connection issues, such as an error in the gateway’s environment or a network issue. How you troubleshoot your error depends on the error returned.
If Flex Gateway can’t connect to a specific URL, it returns an error message that includes the unreachable URL and the error message returned from the connection attempt. The following error message is an example of an error returned due to no internet connection:
```
$ flexctl check connections
Error: failed connecting to https://anypoint.mulesoft.com/: dial tcp 52.22.227.22:443: connect: network is unreachable
```

## See Also
  * Troubleshooting Registration Issues
  * Troubleshooting Request Connection
NetSuite Restlet - XML and Maven Support | MuleSoft Documentation
# NetSuite Restlet - XML and Maven Support
Although you can manually code a Mule app in XML, it is more efficient to use Anypoint Studio. When you install the connector in Studio, Studio automatically populates the XML code with the connector’s namespace and schema location. It also adds a dependency to the `pom.xml` file.
If you manually code a Mule runtime engine (Mule) app in XML either from the Anypoint Studio XML editor or from a text editor, you can get access to the connector in your app by adding reference statements to both your XML Mule flow and the Apache Maven `pom.xml` file.
## Add a Namespace for the Connector
Paste the following code inside the `mule` tag of the header of your configuration XML:
```
http://www.mulesoft.org/schema/mule/netsuite-restlet
http://www.mulesoft.org/schema/mule/netsuite-restlet/current/mule-netsuite-restlet.xsd
```

This example shows how the namespace statements are placed in the XML:
```
<mule xmlns:netsuite-restlet="http://www.mulesoft.org/schema/mule/netsuite-restlet"
	xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
	xmlns:http="http://www.mulesoft.org/schema/mule/http"
	xmlns:file="http://www.mulesoft.org/schema/mule/file"
	xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core
	http://www.mulesoft.org/schema/mule/core/current/mule.xsd
	http://www.mulesoft.org/schema/mule/file
	http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd
	http://www.mulesoft.org/schema/mule/http
	http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
	http://www.mulesoft.org/schema/mule/ee/core
	http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
	http://www.mulesoft.org/schema/mule/netsuite
	http://www.mulesoft.org/schema/mule/netsuite-restlet/current/mule-netsuite-restlet.xsd">
```

## Add a POM File Dependency
The `pom.xml` Apache Maven file generated by Anypoint Studio contains dependencies for a Mule app. When you code a Mule app manually, include this XML snippet in your POM file to enable access to this connector:
```
<dependency>
 <groupId>com.mulesoft.connectors</groupId>
 <artifactId>mule4-netsuite-restlet-connector</artifactId>
 <version>1.0.0</version>
 <classifier>mule-plugin</classifier>
</dependency>
```

Replace `x.x.x` with the version that corresponds to the connector you are using.
To obtain the most up-to-date `pom.xml` file information:
  1. Go to Anypoint Exchange.
  2. In Exchange, click **Login** and supply your Anypoint Platform username and password.
  3. In Exchange, search for `netsuite restlet`.
  4. Select the connector.
  5. Click **Dependency Snippets** near the upper right of the screen.


## Next Step
After completing your namespace and `pom.xml` file, you can try the Call NetSuite Restlets Example.
## See Also
MuleSoft Help Center
Verify Event Processor | MuleSoft Documentation
# Verify Event Processor
Anypoint Code Builder 
Anypoint Studio 
The Verify Event processor allows you to verify if a processor was called.
For example, you can validate if a specific processor has been called with a particular set of attributes a specific number of times.
When defining a verification, you are telling MUnit to fail a test if the verification is not successful.
You can define verifications over any processor, even if you haven’t created a mock for it.
```
<munit-tools:verify-call processor="http:request" atLeast="1">
  <munit-tools:with-attributes>
    <munit-tools:with-attribute attributeName="method" whereValue="#['GET']" />
  </munit-tools:with-attributes>
</munit-tools:verify-call>
```

Attribute Name | Description  
---|---  
`eventProcessor` | Describes which event processor you want to mock. The description takes the form `{name-space}:{event-processor-name}`. It supports regular expressions.  
**(Default = 1.)** Defines the verification as successful if the event processor was called _N_ and only _N_ number of times.  
Defines the verification as successful if the event processor was called a minimum of _N_ number of times.  
Defines the verification as successful if the event processor was called maximum of _N_ number of times.  
The attributes `times`, `atLeast`, `atMost`, are mutually exclusive.
The `eventProcessor` attribute accepts regular expressions. For example, you can create the same verification as `.*:request` to verify for an event processor named request, disregarding which namespace the event processor belongs to. The regular expression language is the same as Java.
## See Also
  * Assert That Event Processor
  * Fail Event Processor
  * Run Custom Event Processor
  * Set Event Processor
  * Mock When Event Processor
Commerce Cloud B2C Shop Connector 2.1 - Troubleshoot | MuleSoft Documentation
# Commerce Cloud B2C Shop Connector 2.1 - Troubleshoot
There are a few scenarios when the Commerce Cloud B2C Shop Connector might return 4XX errors.
**400 Bad Request**
Commerce Cloud B2C Shop Connector might return a `400 Bad Request` error response if the URI parameters, such as Organization Id, Site Id, and Version parameters are not passed with the proper values, for example:
  * The parameters are passed with the wrong values.
  * The parameters are passed with an extra space.


## Solution
Correct and pass the proper values.
**401 Unauthorized**
Commerce Cloud B2C Shop Connector might return a `401 Unauthorized` error response in the following cases:
  * The Client Id used in the configuration is incorrect.
  * The Client Secret used in the configuration is incorrect.


## Solutions
  * Correct and pass the proper values for the Client ID and Client Secret.
  * If the Client Id and Client Secret are both correct and you are still getting the error, contact the Commerce Cloud team.


**403 Forbidden**
Commerce Cloud B2C Shop Connector might return a `403 Forbidden` error response if the Scopes used in the configuration are incorrect.
## Solution
  * Correct and pass the proper values for the Scopes.


**405 Method Not Allowed**
Commerce Cloud B2C Shop Connector method returns a `405 Method Not Allowed` error when a resource that previously supported an HTTP POST got removed and had its HTTP GET method deprecated because of business decisions.
## Solution
  * Contact the Commerce Cloud team.


**415 Unsupported Media Type**
Commerce Cloud B2C Shop Connector might return a `415 unsupported media type` error response in these cases:
  * The body type the user is passing to the connector `Content` parameter does not match the required input type.
  * Expression mode is enabled and the output type of the body is not defined as `application/json`.


## Solution
  * Use the correct type for the body.
  * Enable Expression mode and define the output type of the body as `application/json`.


## See Also
  * Introduction to Anypoint Connectors
  * MuleSoft Help Center
  *
toTimeOrNull | MuleSoft Documentation
# toTimeOrNull
## toTimeOrNull(str: String, formatters: Array<Formatter>): Time | Null
Transforms a `String` value into a `Time` value using the first `Formatter` that matches with the given value to transform.
If none of the `Formatter` matches with the given value, the function returns a `null` value.
_Introduced in DataWeave version 2.5.0._
### Parameters
Name | Type | Description  
---|---|---  
The `String` value to transform into a `Time` value.  
`formatters` | Array<Formatter> | The `array` of formatting to use on the `Time` value.  
### Example
This example shows how `toTimeOrNull` behaves with different inputs. It produces output in the `application/dw` format.
#### Source
```
%dw 2.0
import * from dw::util::Coercions
output application/dw
---
{
 a: toTimeOrNull("13:44:12.283-08:00", [{format: "HH:mm:ss.xxx"}, {format: "HH:mm:ss.nxxx"}]),
 b: toTimeOrNull("13:44:12.283-08:00", [{format: "HH:mm:ss.xxx"}])
}
```

#### Output
```
{
 a: |13:44:12.000000283-08:00| as Time {format: "HH:mm:ss.nxxx"},
 b: null
}
```
Composer Connector Reference | MuleSoft Documentation
# Composer Connector Reference
Each system that connects to MuleSoft Composer (Composer) behaves in different ways depending on how the system stores the information you want to retrieve and manipulate. Review each system reference page to understand which triggers and actions are available.
The connectors listed in this documentation are available for MuleSoft Composer (Composer).
  *   *   *   * Microsoft Dynamics 365 Business Central
  *   *   *   *   *   * Salesforce Marketing Cloud
  * 

## Related Resources
  *   * Knowledge Articles
Missing TA1 acknowledgements for my transmissions | MuleSoft Documentation
# Missing TA1 acknowledgements for my transmissions
Anypoint Partner Manager sends TA1 acknowledgments for a received transmission if configured to do so. Your partner might contact you to tell you that they are not receiving TA1 acknowledgments.
## Causes
Any of the following can lead to this type of error:
  * The X12 settings for your partners are not configured to send TA1’s back to the partner.
  * The endpoint to which you are sending that TA1’s back may be incorrectly configured.


## Solution
If you are not receiving TA1 configurations, review the following configuration:
  1. From within your Anypoint Partner Manager environment (either Sandbox or Production), select **Partners** and **Receive from <Partner_Name>**.
  2. Scroll to Validation and Acknowledgment settings and click **X12**.
  3. Within the Acknowledgments section, ensure that the option for _Send TA1 for each transmission from <partner name>_ is selected.
  4. Configure the acknowledgment endpoint as in Endpoints.
  5. Click **Save** when done.


This enables TA1 acknowledgments for all transmissions received by the specific partner.
compose | MuleSoft Documentation
# compose
## compose(parts: Array<String>, interpolation: Array<String>): String
Uses a custom string interpolator to replace URL components with a `encodeURIComponent` result. You can call this function using the standard call, or a simplified version.
### Parameters
Name | Description  
---|---  
`baseStringArray` | A string array that contains the URL parts to interpolate using the strings in the `interpolationStringArray` parameter.  
`interpolationStringArray` | A string array that contains the strings used to interpolate the `baseStringArray`.  
### Example
The following example uses the compose function to form an encoded URL, the first parameter is an array of two strings that are part of the URL and the second parameter is the `urlPath` variable that is used to interpolate the strings in the first parameter. Notice that the spaces in the input are encoded in the output URL as `%20`.
#### Source
```
%dw 2.0
output application/json
var urlPath = "content folder"
import * from dw::core::URL
---
 { "encodedURL" : compose(["http://examplewebsite.com/", "/page.html"], ["$(urlPath)"]) }
```

#### Output
```
{ "encodedURL" : "http://examplewebsite.com/content%20folder/page.html" }
```

### Example
You can also call this function using the simplified syntax, which uses backticks (```) to enclose the string that includes the variable to encode. This example shows how to use the simplified syntax to obtain the same result as in the previous example.
#### Source
```
%dw 2.0
output application/json
var urlPath = "content folder"
import * from dw::core::URL
---
{ "encodedURL" : compose `http://examplewebsite.com/$(urlPath)/page.html`}
```

#### Output
```
{ "encodedURL" : "http://examplewebsite.com/content%20folder/page.html" }
```
Using Teams to Manage User Permissions | MuleSoft Documentation
# Using Teams to Manage User Permissions
Use the Teams feature to seamlessly manage user permissions and team membership as your organization grows. Create groups of users and then assign the members of those groups selected permissions. Teams have a cascading permissions structure, so managing users and permissions is scalable.
Adopting a team structure for your organization also enables you to share assets more easily. For example, in Anypoint Exchange, you can share an asset with an entire team rather than having to select each user individually.
As a root organization administrator, you can:
  * Manage your organization from a simple, global view.
  * Group users into teams to manage permissions and share assets.
  * Assign both global and team-level permissions.
  * Assign team maintainers to delegate management of team members and child teams.
  * Manage user and team permissions across multiple business groups in one place.


## Permissions Structure
Teams are hierarchical, starting with the **Everyone at <Root Organization>** team, or the root team, which contains all users who join your organization either via an invitation or SSO.
When you create teams, use a structure that reflects the structure of your organization so that you can plan your teams and configure permissions according to member needs. For example, you can create teams based on geographical regions or specific job functions.
When you’re planning your organization’s team structure, keep in mind that:
  * All users in your organization belong to the **Everyone at <Root Organization>** team. When you configure permissions in your organization, assign only permissions you want every user in the root team to have.
  * You can move teams within the hierarchy if the needs of your organization change.
  * Teams names must be unique across your organization.
  * Your organization can have up to 1000 teams.
  * You can nest teams up to 10 levels, including the **Everyone at <Root Organization>** team.
  * You can create teams without adding members.
  * Every child team inherits permissions from its parent team. You can add permissions to the inherited set of permissions to give each child team more specialized permissions that reflect the team members’ responsibilities.


For an example of a teams structure applied across an organization, see Example Teams Structure.
## Grant Permissions to Individual Users
If you have the Organization Administrator permission, you can assign permissions to individual users without assigning those users to a team. For more information about assigning permissions to individual users, see Grant Permissions and Roles to Users.
## See Also
  *   * Example Teams Structure
  * Inviting a User to Anypoint Platform
  * Grant Permissions and Roles to Users
  * Map SSO Users to Teams
trim | MuleSoft Documentation
# trim
## trim(text: String): String
Removes any blank spaces from the beginning and end of a string.
### Parameters
Name | Description  
---|---  
The string from which to remove any blank spaces.  
### Example
This example trims a string. Notice that it does not remove any spaces from the middle of the string, only the beginning and end.
#### Source
```
%dw 2.0
output application/json
---
{ "trim": trim("  my really long text   ") }
```

#### Output
```
{ "trim": "my really long text" }
```

### Example
This example shows how `trim` handles a variety strings and how it handles a null value.
#### Source
```
%dw 2.0
output application/json
---
{
 "null": trim(null),
 "empty": trim(""),
 "blank": trim("   "),
 "noBlankSpaces": trim("abc"),
 "withSpaces": trim("  abc  ")
}
```

#### Output
```
{
 "null": null,
 "empty": "",
 "blank": "",
 "noBlankSpaces": "abc",
 "withSpaces": "abc"
}
```

## trim(value: Null): Null
Helper function that enables `trim` to work with a `null` value.
Contact MuleSoft Support | MuleSoft Documentation
# Contact MuleSoft Support
For professional services customizations, enhancement requests, and other assistance, contact your MuleSoft Customer Success representative.
To report issues or defects in Anypoint API Community Manager, submit a support case through the MuleSoft support portal, available at https://help.mulesoft.com.
The MuleSoft support team works closely with the Salesforce support team to coordinate work on any support tickets involving Salesforce technology.
Service-level agreements (SLAs) for support are available at the MuleSoft Product Support and Maintenance Terms page.
Beginning Runtime Fabric Installation on VMs / Bare Metal | MuleSoft Documentation
# Beginning Runtime Fabric Installation on VMs / Bare Metal
To install Runtime Fabric on VMs / Bare Metal, first create a Runtime Fabric using Runtime Manager.
## Before you Begin
Before installing Anypoint Runtime Fabric on VMs / Bare Metal, review the following topics:
  * Anypoint Runtime Fabric on VMs / Bare Metal
  * Anypoint Runtime Fabric Installation Prerequisites
  * 

Additionally, note the following:
  * If you do not see the **Runtime Fabrics** tab in Runtime Manager as described below, contact your customer success manager to enable Anypoint Runtime Fabric for your account.
  * Create your clusters using the latest Runtime Fabric agent version available. If you can’t do so, refer to How to Specify the RTF Agent Version in Upgrades.


## Create a Runtime Fabric using Runtime Manager
  1. From Anypoint Platform, select Runtime Manager.
  2. Click **Runtime Fabrics**.
  3. Click **Create Runtime Fabric**.
  4. Specify the name of your Runtime Fabric.
  5. Select the "VMs or bare metal" option.
  6. Click **Next**.
  7. After creating the Runtime Fabric, Runtime Manager displays the corresponding activation data. Record this data to use when running the Runtime Fabric on VMs / Bare Metal installer.


Runtime Manager initially indicates that the Runtime Fabric is in the activation state. This changes after Runtime Fabric on VMs / Bare Metal is installed and connected to Runtime Manager.
## Install Runtime Fabric on VMs / Bare Metal
After creating a Runtime Fabric in Runtime Manager, install Anypoint Runtime Fabric on your infrastructure. Click the following link that corresponds to your infrastructure:
  * Install Runtime Fabric on AWS
  * Install Runtime Fabric on Azure
  * Install Runtime Fabric Manually
Included Policies Directory | MuleSoft Documentation
# Included Policies Directory
## Policies Included in Mule Gateway
Policy | Summary  
---|---  
Basic Authentication: LDAP | Allows access based on the basic authorization mechanism, with user-password defined on LDAP  
Basic Authentication: Simple | Allows access based on the basic authorization mechanism, with a single user-password  
| Allows access only to authorized client applications  
Cross-Origin Resource Sharing (CORS) | Enables access to resources residing in external domains  
| Returns a tokenized value to its original value  
| Adds headers to a request or a response  
| Removes headers from a request or a response  
| Caches HTTP responses from an API implementation  
| Allows a list or range of specified IP addresses to request access  
| Blocks a single IP address or a range of IP addresses from accessing an API endpoint  
JSON Threat Protection | Protects against malicious JSON in API requests  
| Validates a JWT  
| Logs custom messages using information from incoming requests, responses from the backend, or information from other policies applied to the same API endpoint  
OAuth 2.0 Access Token Enforcement Using Mule OAuth Provider | Allows access only to authorized client applications  
OpenAM OAuth 2.0 Token Enforcement | Allows access only to authorized client applications  
OpenID Connect OAuth 2.0 Access Token Enforcement | Allows access only to authorized client applications  
PingFederate OAuth 2.0 Token Enforcement | Allows access only to authorized client applications  
| Monitors access to an API by defining the maximum number of requests processed within a period of time  
Rate Limiting: SLA-based | Monitors access to an API by defining the maximum number of requests processed within a timespan, based on SLAs  
| Regulates API traffic  
| Transforms sensitive data into a nonsensitive equivalent, named token  
| Protects against malicious XML in API requests  
## See Also
  * Flex Gateway Policies Overview
  * Policy Availability by Gateway
Salesforce Composite Connector 2.13 | MuleSoft Documentation
# Salesforce Composite Connector 2.13
Anypoint Connector for Salesforce Composite enables you to work with the Salesforce Batch and SObject Tree APIs. The connector exposes convenient methods for preparing subordinate requests, executing them in one batch, and parsing the results.
Salesforce Composite Connector also enables you to create SObject trees by using the **Create sobject tree** operation, which is separate from the batch operations.
This connector provides DataSense for execution and to:
  * Prepare subordinate requests and then parse the responses
  * Create SObject trees


For compatibility information and fixed issues, see Salesforce Composite Connector Release Notes.
## Before You Begin
To use this connector, you must be familiar with:
  * The Salesforce Composite API
  * Anypoint Connectors
  * Mule runtime engine (Mule)
  * Elements and global elements in a Mule flow
  * Creating a Mule app using Anypoint Studio (Studio)


Before creating an app, you must have:
  * Credentials to access the Salesforce Composite target resource
  * Anypoint Studio version 7.0 or later


## Authentication Types
Salesforce Composite Connector connections use the following authentication types:
  * OAuth v2.0
  * OAuth JWT
  * OAuth SAML
  * OAuth Username and Password
  * Token Connection


For information about configuring these authentication types, see Using Anypoint Studio to Configure Salesforce Composite Connector.
## See Also
  * Introduction to Anypoint Connectors
  * Use Exchange to Discover Connectors, Templates, and Examples
  * MuleSoft Help Center
Sharing Data Between Workers and Configuring Caching | MuleSoft Documentation
# Sharing Data Between Workers and Configuring Caching
To view an example policy project that uses caching, see Data Caching Policy Example.   
---  
Envoy spawns many workers to increase the policy’s capability of handling requests. A single worker handles all the stages of a specific request, including outgoing connections and the response flow. This enables you to track internal status for a specific request, and to create a sequential execution flow despite the underlying event-driven implementation.
Each worker processes a single request at a given time. To share a global state in a specific worker, use a `RefCell` without any risk of concurrent modification.
Use the provided `Cache` mechanism to create a shared global state for all workers.
After injecting the cache builder, provide an ID for the cache and the maximum number of elements the cache can support.
The following example configures a cache that can hold ten elements:
```
#[entrypoint]
async fn configure(
  launcher: Launcher,
  cache_builder: CacheBuilder,
) -> Result<()> {
  let cache = cache_builder.new(String::from("caching")).max_entries(10);
  ...
```

The cache has the following interface:
```
pub trait Cache {
  fn save(&self, key: &str, value: Vec<u8>) -> Result<(), CacheError>;
  fn get(&self, key: &str) -> Option<Vec<u8>>;
  fn delete(&self, key: &str) -> Option<Vec<u8>>;
  fn purge(&self);
}
```

Because different workers write to the cache concurrently, there is no guarantee that the value overwritten when saving the cache is the same as when it was retrieved.   
---  
## See Also
  * Implementing Your Custom Policy Features in Rust
isNullType | MuleSoft Documentation
# isNullType
## isNullType(t: Type): Boolean
Returns `true` if the input is the Null type.
_Introduced in DataWeave version 2.3.0._
### Parameters
Name | Description  
---|---  
The type to check.  
### Example
This example shows how `isNullType` behaves with different inputs.
#### Source
```
%dw 2.0
import * from dw::core::Types
type ANull = Null
output application/json
---
{
  a: isNullType(ANull),
  b: isNullType(Null),
  c: isNullType(String),
}
```

#### Output
```
{
 "a": true,
 "b": true,
 "c": false
}
```
Viewing Diagnostic Data for Deployed Apps | MuleSoft Documentation
# Viewing Diagnostic Data for Deployed Apps
You can run a thread dump, which is a snapshot of all the threads in a replica. The thread dump indicates the current state of the server, which is helpful for debugging and support.
CloudHub 2.0 retains thread dumps for 30 days or up to 100 MB.
## Run a Thread Dump
The app must be running to run a thread dump.   
---  
To run a thread dump:
  1. From Anypoint Platform, select **Runtime Manager** > **Applications**.
  2. Click the app name.
  3. In the navigation menu, click **Diagnostics**.
  4. Click **Run Thread Dump** and select the active replica to trigger the thread dump from the drop-down list:
CloudHub 2.0 runs the thread dump and displays the latest thread dump at the top of the list.
When the thread dump is ready to download, the **Download** button becomes available.


## View and Download Past Thread Dumps
To view past thread dumps:
  1. From Anypoint Platform, select **Runtime Manager** > **Applications**.
  2. Click the app name.
  3. In the navigation menu, click **Diagnostics**.
The page displays any past thread dumps:
     * To view logs for a deployment and replica associated with the thread dump, click the **View Logs** link (1) in the **Replica** column.
     * To download a thread dump, click the **Download** button (2).


CloudHub 2.0 saves the diagnostic output to a text file in a hexadecimal format, for example: `5b181bef-b61c-524c-a0c8-698592977954_2022-07-20T15-06-27D`. Use a text editor to view the diagnostics file.
## See Also
  * Viewing Log Data for Deployed Apps
Setting Up RTFCTL | MuleSoft Documentation
# Setting Up RTFCTL
The following topics help you enable `rtfctl` Kubernetes permissions and install `rtfctl` command line tool.
  * Enabling RTFCTL Kubernetes Permissions Enable specific role permissions over Kubernetes resources to successfully run `rtfctl` commands.
  * Installing RTFCTL Tool Install the `rtfctl` command line tool to locally manage Runtime Fabrics.


## See Also
  *   * Using RTFCTL for Runtime Fabric
  * Using RTFCTL for Deployed Mule apps
fromString | MuleSoft Documentation
# fromString
## fromString(mimeType: String): Result<MimeType, MimeTypeError>
Transforms a MIME type string value representation to a `MimeType`.
_Introduced in DataWeave version 2.7.0._
### Parameters
Name | Type | Description  
---|---|---  
The MIME type string value to transform to a `MimeType`.  
### Example
This example transforms a MIME type string value without `parameters` to a `MimeType` value.
#### Source
```
%dw 2.0
import * from dw::module::Mime
output application/json
---
fromString("application/json")
```

#### Output
```
{
 "success": true,
 "result": {
   "type": "application",
   "subtype": "json",
   "parameters": {}
 }
}
```

### Example
This example transforms a MIME type string value that includes a `parameters` to a `MimeType` value.
#### Source
```
%dw 2.0
import * from dw::module::Mime
output application/json
---
fromString("multipart/form-data; boundary=the-boundary")
```

#### Output
```
{
 "success": true,
 "result": {
   "type": "multipart",
   "subtype": "form-data",
   "parameters": {
     "boundary": "the-boundary"
   }
 }
}
```

### Example
This example transforms an invalid MIME type string value.
#### Source
```
%dw 2.0
import * from dw::module::Mime
output application/json
---
fromString("Invalid MIME type")
```

#### Output
```
{
 "success": false,
 "error": {
   "message": "Unable to find a sub type in `Invalid MIME type`."
 }
}
```
Managing Categories | MuleSoft Documentation
# Managing Categories
Use categories to organize Exchange assets into groups to improve asset browsing and discovery.
For example, a category named API Type with possible values System API, Experience API, and Integration API is applied to assets of type REST API, SOAP API, and HTTP API:
To create a category, you must be either the root organization’s Exchange Administrator or Organization Owner.
When you have one or more categories defined in the **Settings** page, your organization’s assets display the **Add categories** option in the asset details pane.
## Create a Category
  1. In Anypoint Exchange, click **Login** and log in to your organization.
  2. Click **Settings** in the sidebar.
  3. Click **Add new category**.
  4. Enter a category name. Each category name must be unique.
  5. Enter one or more values. Each category must have a value.
  6. Press the Return/Enter key or click the plus sign next to the value to confirm the value:
Note: If a plus sign is not clicked, the check mark to indicate the category has no effect.
  7. Choose the asset types that the category corresponds to.
  8. Click the checkmark to enable the category.


## Apply a Category
After a category is created, it can be applied to an asset in your organization.
  1. Click an asset in your organization.
  2. In the asset details pane, click **Add categories** and choose the category and value from the list.


## Search with Categories in Exchange Private Cloud Edition or MuleSoft Government Cloud
In the Exchange search field, specify the `category:` search term and the category value to list the assets.
For example, to find assets of API Type, search for `category:"API Type" = "System API"`.
You can search for a combination of different categories, but you can’t search for multiple values of the same category. Multiple search terms use an implicit AND. OR is not supported.
The following search terms return all assets marked as both System APIs and Salesforce products:
`category:"API Type" = "System API" category:"Product" = "Salesforce"`
## Search with Categories in Exchange Cloud
Select a category such as **API Type** from the list, and select one or more values such as **System API**. Exchange shows assets that have one of the selected values for the selected category.
You can search for a combination of categories, and you can search for multiple values for the same category. Multiple values for the same category are combined with the OR operator.
## Change or Delete a Category
Categories can be deleted at the individual asset level which only removes the category from that asset. Categories can also be deleted at the global level in Settings, but doing so removes the category from all assets.
MuleSoft Documentation
##  Latest Releases   
---  
Anypoint API Community Manager   
MCP Connector - Mule 4 1.1.0  
Anypoint Platform Private Cloud Edition 4.1.0   
View all release notes
## Trending Topics
## The Road to Digital Transformation
### Getting Started
Build the digital transformation your business needs.
  * Tutorial: Build an API from start to finish.


### Discover
Browse Exchange to find existing API specifications, templates, examples, and other assets that you can reuse for your projects.
  * Discover reusable assets.


### Design
Create and publish new API specifications from scratch.
  * Create a reusable API specification.
  * Manage access to your Anypoint Platform account.
  * Build security into your application network.


### Develop & Test
Build and test APIs and integration apps.
  *   * Connect your data, systems, and apps.
  * Develop the Mule app that integrates systems, services, APIs, and devices.
  * Access and transform data within the Mule app.
  * Build automated tests for your APIs and integrations.


### Deploy
Choose a deployment option, deploy APIs and apps, and secure them with policies.
  * Choose a deployment option.
  * Configure a proxy for your API.
  * Create policies to secure your API.


### Monitor
Monitor your APIs and integrations using dashboards, metrics, and visualization.
  * View metrics for integration apps and APIs.
  * Test the functional behavior and performance of your API.
  * Monitor your deployed apps.
Tableau Setup Guide for Productive Maintenance | MuleSoft Documentation
# Tableau Setup Guide for Productive Maintenance
## Prerequisites
  1. Users should have an Amazon Redshift connection.
  2. Download and install Tableau Desktop.
  3. Users should have access to Tableau Online.


## Steps to Download and Install Tableau Desktop
  1. Download and install Tableau Desktop Downloads
  2. Open Tableau desktop app from your mac or windows.
  3. Click on the **Help** button and select **Manage Product Key**.
  4. Click on **Activate**.
  5. Enter the server details and connect.
  6. Enter the username and password.
  7. Authenticate the details and verify Tableau activated successfully.


## Steps to Import workbook into Tableau Desktop
  1. Click on **File** tab, select **Import Workbook** and browse `mfg-tableau-workorders-exp-api/src/main/resources/workbook/FactoryEquipmentDashboard.twbx` file and click on the **Open** button.
  2. Edit Amazon Redshift connection details.


## Steps to create work order
  1. In the **Submit a Work Order** dialogue box, the user can manage the Priority, Machine Id and provide a Reason to submit a work order. + 
  2. Click on **Create Work Order** which will create a case in Service Cloud.


## Steps to Publish Workbook into Tableau Online.
  1. Click on **Server** and select **Publish Workbook**.
  2. Click on **Connect** , enter email address and password to sign in. 
  3. In the **Publish Workbook to Tableau Online** window, complete the **Name** and **Description** fields.
  4. Click on the **Publish** button.


## Steps to create an alert in Tableau Online
  1. Login into Tableau Online
  2. Click on **Watch** and select **Alerts**
  3. Click on the **Create** button on the right side which opens the 'Create Alert' dialogue box.
  4. Users can select the condition and threshold and users can provide the subject details and select the alert condition (for example, daily).
  5. Users can provide the recipient details in the **Recipients** field and click on **Create Alert**.
  6. An alert will be sent to the recipient.


## See Also
  *   * MuleSoft Accelerator for Manufacturing
duration | MuleSoft Documentation
# duration
## duration(period: { days?: Number, hours?: Number, minutes?: Number, seconds?: Number }): Period
Creates a Period value that represents a number of days, hours, minutes, or seconds.
_Introduced in DataWeave version 2.4.0._
### Parameters
Name | Description  
---|---  
An object such as `{days:4, hours:11, minutes:45, seconds: 55}`. The key-value pairs are optional and can be specified in any order. An empty object (`{}`) returns the Period value `"PT0S"` (zero seconds). The default value of each key is `0`. Valid values are whole or decimal numbers, which can be positive or negative. Key names are selectable.  
### Example
This example shows how `duration` behaves with different inputs.
#### Source
```
%dw 2.0
import * from dw::core::Periods
output application/json
---
{
  dayAfterDateTime: |2020-10-05T20:22:34.385Z| + duration({days: 1}),
  dayAndHourBeforeDateTime: |2020-10-05T20:22:34.385Z| - duration({days: 1, hours: 1}),
  pointInTimeBefore: |2020-10-05T20:22:34.385Z| - duration({days: 1, hours: 1, minutes: 20, seconds: 10}),
  emptyDuration: duration({}),
  constructDuration: duration({days:4, hours:11, minutes:28}),
  selectHoursFromDuration: duration({days:4, hours:11, minutes:28}).hours,
  decimalAsPeriod: duration({seconds: 30.5}),
  addNegativeValue: duration({ minutes : 1 }) + duration({ seconds : -1 })
}
```

#### Output
```
{
  "dayAfterDateTime": "2020-10-06T20:22:34.385Z",
  "dayAndHourBeforeDateTime": "2020-10-04T19:22:34.385Z",
  "pointInTimeBefore": "2020-10-04T19:02:24.385Z",
  "emptyDuration": "PT0S",
  "constructDuration": "PT107H28M",
  "selectHoursFromDuration": 11,
  "decimalAsPeriod": "PT30.5S",
  "addNegativeValue": 59
}
```