BassemE/mulesoft-documentation-embeddings huggingface dataset:
Publishing an HTTP API Asset | MuleSoft Documentation
# Publishing an HTTP API Asset
The HTTP API enables Exchange users specify a placeholder for an endpoint. After you create the HTTP API endpoint, you can optionally manage the endpoint with API Manager.
The HTTP API asset describes what the API endpoint does and how users can connect the API to their programs.
In API Manager, users import the API from Exchange and can then associate proxies and manage policies and SLAs for the API.
  1. In a Exchange, click **Publish new asset**.
  2. Enter a name for the API.
  3. Select an **HTTP API** from the **Asset types** drop-down menu and click **Publish**.
  4. In the asset view, click the pencil icon to provide a description and click the check icon.
  5. To add documentation for the API, click **Edit documentation**.
  6. Click **Publish**.
Release Notes | MuleSoft Documentation
# Release Notes
## v1.2
6 September 2022
### Total Productive Maintenance Use Case
This release introduces the Total productive maintenance use case, which helps manufacturers to maintain factory floor equipments.
## v1.1
8 June 2022
### Sales Rebate Management Use Case
This release introduces the Sales rebate management use case, which helps manufacturers to seamlessly manage sales rebate programs.
This release also includes the following enhancements:
  * customers can be synced bidirectionally between SAP S/4 HANA and Salesforce Manufacturing Cloud.


## v1.0
28 March 2022
### Initial Release
This is the first release of the MuleSoft Accelerator for Manufacturing.
This release introduces the Run-rate business management use case, which helps streamline sales agreements and account forecasts in Salesforce Manufacturing Cloud.
## See Also
  * MuleSoft Accelerator for Manufacturing
File Connector XML and Maven Support | MuleSoft Documentation
# File Connector XML and Maven Support
Although you can manually code a Mule app in XML, it is more efficient to use Anypoint Studio.
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.
When you add 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.
## 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/file
http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd
```

This example shows how the namespace statements are placed in the `<mule>` XML block:
```
<mule xmlns:file="http://www.mulesoft.org/schema/mule/file"
	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/file
	http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd">
```

## Add a POM File Dependency
The Apache Maven `pom.xml` file generated by Anypoint Studio contains dependencies for a Mule app. If you code a Mule app manually, include this XML snippet in your `pom.xml` file to enable access to this connector:
```
<dependency>
 <groupId>org.mule.connectors</groupId>
 <artifactId>mule-file-connector</artifactId>
 <version>x.x.x</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 `file`.
  4. Select the connector.
  5. Click **Dependency Snippets** near the upper right of the screen.


## See Also
  * Introduction to Anypoint Connectors
  * MuleSoft Help Center
Preinstallation Verification | MuleSoft Documentation
# Preinstallation Verification
Before installing or upgrading, your infrastructure team must review all prerequisite information in the following list and verify that your environment meets the stated requirements. If needed, contact your MuleSoft representative for assistance.   
---  
  * Environment Prerequisites
  * Hardware Prerequisites
  * Software Prerequisites
  * Network Prerequisites
  * NFS Server Prerequisites


## Verify Anypoint Platform Private Cloud Edition Nodes
Before you install Anypoint Platform Private Cloud Edition (Anypoint Platform PCE) on all nodes, run the `gravity check` script to verify that each node meets the minimum requirements for Anypoint Platform PCE, including CPU, RAM, and volume storage.
  1. Copy the following information from the node where you will run the installer to each node of your cluster:
     * The `gravity` binary.
     * The `app.yaml` manifest used by the `gravity` binary.
These files are located in the folder of the installer.
  2. Run the following command from each node of your cluster:
```
sudo ./gravity check --profile=app_node app.yaml
```

Valid values for `--profile` are:
     * app_node
     * data_node
     * general_node (for 3 node installations)


If the command returns no output, your environment is set up correctly. If any node fails to satisfy the minimum requirements, the command returns a list of failed checks and exits with a non-0 return code.
Compress and Decompress Example | MuleSoft Documentation
# Compress and Decompress Example
The following Compression module examples show how to compress a file using the **Compress** operation and decompress a payload from a remote service using the **Decompress** operation.
## Compress a File
In the following example, you configure the File Connector **Read** operation to read a file. Then, the **Compress** operation compresses the file and saves it in GZip format. Subsequently, the File Connector **Write** operation writes the content into the given path on demand.
  1. In Studio, drag the File Connector **Read** operation to your flow.
  2. Set **Path** to `file.txt`.
  3. Drag the **Compress** operation alongside the **Read** operation.
  4. Set **Compressor** to **Gzip compressor**
  5. Drag the **Write** operation alongside the **Compress** operation.
  6. Set **Path** to `file-txt.gz`.


In the **Configuration XML** editor, the configuration looks like this:
```
<file:read path="file.txt"/>
<compression:compress>
  <compression:compressor>
    <compression:gzip-compressor/>
  </compression:compressor>
</compression:compress>
<file:write path="file-txt.gz"/>
```

## Decompress a Payload from a Remote Service
In the following example, you configure the Web Service Consumer Connector **Consume** operation to consume an operation that returns a Zip file from a server. Then, the **Decompress** operation decompresses the Zip file.
  1. In Studio, drag the Web Service Consumer Connector **Consume** operation to your flow.
  2. Set **Connector configuration** to your operation configuration, for example `ZipServiceConfig`.
  3. Set **Operation** to the name of the web service operation to invoke, for example `returnsZip`.
  4. Drag the **Decompress** operation alongside the **Consume** operation.
  5. Set **Content** to `payload.body.zipContent`.
  6. Set **Compressor** to **Zip compressor**.


In the **Configuration XML** editor, the configuration looks like this:
```
<compression:decompress doc:name="Decompress" >
 <compression:compressed ><![CDATA[#[payload.body.zipContent]]]></compression:compressed>
  <compression:decompressor >
  <compression:gzip-decompressor />
</compression:decompressor>
</compression:decompress>
```

## See Also
  * Compression Module Reference
  * MuleSoft Help Center
HTTP Connector Examples | MuleSoft Documentation
# HTTP Connector Examples
To fully benefit from using Anypoint Connector for HTTP (HTTP Connector), see the following examples of configuring the connector in Anypoint Studio.
## HTTP Connector Studio Examples
The following examples illustrate how to configure the connector in Anypoint Studio:
  * Start an App from a Browser Configure the HTTP **Listener** operation to start an app from a browser.
  * Consume a REST Service Configure both the HTTP **Listener** and HTTP **Request** operations to consume a REST service.
  * Load a Static Resource Configure both the HTTP **Listener** and HTTP **Load static resource** operations to load a static resource.
  * Route HTTP Requests to Different Paths Configure the HTTP **Listener** operation and **Logger** component to route HTTP requests to different paths.
  * Route Requests Based on HTTP Method Configure the HTTP **Listener** source to route requests based on HTTP methods.
  * Post a Form Configure the HTTP **Listener** source, **Choice Router** and **Set Payload** components to post a form by sending HTTP requests.
  * Set HTTP Error Status and Reason Configure the HTTP **Listener** source and the **Validation Module** , **Set Payload** , and **Error Handler** components to set the error status code and reason phrase for a user login validation request.
  * Configure HTTP Basic Security Filter Configure the **Basic Security Filter** operation to enforce basic authentication.
Installing OData V2 Tooling | MuleSoft Documentation
# Installing OData V2 Tooling
To install the APIkit for OData v2 plugin in Anypoint Studio:
  1. Select **Help** > **Install New Software** > **Add**.
  2. In **Name** , type `APIkit for ODATA v2 Update Site`.
  3. In **Location** , type the URL of the site: `https://studio.mulesoft.org/s4/apikit-for-odata/`.
  4. Select **Anypoint ODATA Plugin** and **Next**.
  5. Accept the terms and conditions of the product and select **Finish**.
  6. Restart Studio to complete the installation.


## See Also
  * Building, Implementing, and Testing an OData V2 API
isNumeric | MuleSoft Documentation
# isNumeric
## isNumeric(text: String): Boolean
Checks if the `text` contains only Unicode digits.
A decimal point is not a Unicode digit and returns false. Note that the method does not allow for a leading sign, either positive or negative.
_Introduced in DataWeave version 2.2.0._
### Parameters
Name | Description  
---|---  
The input string.  
### Example
This example shows how `isNumeric` behaves with different inputs and sizes.
#### Source
```
%dw 2.0
import isNumeric from dw::core::Strings
output application/json
---
{
 "a": isNumeric(null),
 "b": isNumeric(""),
 "c": isNumeric(" "),
 "d": isNumeric("123"),
 "e": isNumeric("१२३"),
 "f": isNumeric("12 3"),
 "g": isNumeric("ab2c"),
 "h": isNumeric("12-3"),
 "i": isNumeric("12.3"),
 "j": isNumeric("-123"),
 "k": isNumeric("+123")
}
```

#### Output
```
{
 "a": false,
 "b": false,
 "c": false,
 "d": true,
 "e": true,
 "f": false,
 "g": false,
 "h": false,
 "i": false,
 "j": false,
 "k": false
}
```

## isNumeric(text: Null): Boolean
Helper function that enables `isNumeric` to work with a `null` value.
_Introduced in DataWeave version 2.2.0._
Mocking a Message Before and Inside a Foreach Processor | MuleSoft Documentation
# Mocking a Message Before and Inside a Foreach Processor
Anypoint Code Builder 
Anypoint Studio 
Suppose you have a processor inside a `foreach` scope and you want to provide different values on each iteration:
```
<flow name="foreachFlow">
	<foreach doc:name="For Each">
		<flow-ref doc:name="Flow Reference" name="FlowToMock"/>
	</foreach>
</flow>
```

Use an `munit-tools:mock-when` processor to mock the processor in your flow and use the `then-call` operation to call a new flow that set payloads depending on the `foreach` status:
```
<munit-tools:mock-when doc:name="Mock when" processor="flow-ref">
	<munit-tools:with-attributes >
		<munit-tools:with-attribute attributeName="name" whereValue="FlowToMock" />
	</munit-tools:with-attributes>
	<munit-tools:then-call flow="MockedFlow" />
</munit-tools:mock-when>
```

Inside the flow that is called by the `then-call` you can use a `Choice` processor to evaluate a value and set a mocked payload. In this case, the `foreach` counter is evaluated to decide which payload to set:
```
<flow name="MockedFlow" >
	<choice doc:name="Choice">
		<when expression="#[vars.counter == 1]">
			<set-payload value='#["MOCKED1"]' doc:name="Set Payload" />
		</when>
		<when expression="#[vars.counter == 2]">
			<set-payload value='#["MOCKED2"]' doc:name="Set Payload" />
		</when>
		<otherwise >
			<set-payload value='#["DEFAULT"]' doc:name="Set Payload" />
		</otherwise>
	</choice>
</flow>
```

## Mock a Mule Message
To mock processors like `file:list` or `ftp:list`, you must return a Mule message collection as payload. `MunitTools` provides a function to mock these payloads:
```
fun createMessage(payload: Any, attributes: Any = null)
fun createMessage(payload: Any, mimeType: String|Null , attributes: Any, attributeMimeType: String|Null)
```

```
<flow doc:name="Flow" >
	<file:list doc:name="List" config-ref="File_Config" directoryPath="/tmp/"/>
</flow>
<munit-tools:mock-when processor="file:list">
  <munit-tools:with-attributes>
    <munit-tools:with-attribute attributeName="doc:name" whereValue="List"/>
  </munit-tools:with-attributes>
  <munit-tools:then-return>
    <munit-tools:payload value="#[[MunitTools::createMessage( &quot;ITEM-1&quot;, &quot;text/plain&quot;, { property : 'ATTRIBUTE-1'}, null) , MunitTools::createMessage( &quot;ITEM-2&quot;, &quot;text/plain&quot;, { property : 'ATTRIBUTE-2'}, null)]]" />
  </munit-tools:then-return>
</munit-tools:mock-when>
```

## See Also
  * Mock When Event Processor
intersectionItems | MuleSoft Documentation
# intersectionItems
## intersectionItems(t: Type): Array<Type>
Returns an array of all the types that define a given Intersection type. This function fails if the input is not an Intersection type.
_Introduced in DataWeave version 2.3.0._
### Parameters
Name | Description  
---|---  
The type to check.  
### Example
This example shows how `intersectionItems` behaves with different inputs. Note that the `AType` variable defines an Intersection type `{name: String} & {age: Number}` by using an between the two objects.
#### Source
```
%dw 2.0
import * from dw::core::Types
type AType = {name: String} & {age: Number}
output application/json
---
{
  a: intersectionItems(AType)
}
```

#### Output
```
{
 "a": ["Object","Object"]
}
```
Google Sheets Connector 1.1 | MuleSoft Documentation
# Google Sheets Connector 1.1
Anypoint Connector for Google Sheets (Google Sheets Connector) synchronizes data and automates business processes between Google Sheets and third-party applications, either on-premises or in the cloud.
Google Sheets is a real-time spreadsheet tool with powerful functions to help teams efficiently perform multiple functions such as helping sales teams collaborate on leads and opportunities, and helping HR teams collaborate on candidates for interviewing and hiring.
For compatibility information and fixed issues, see the Google Sheets Connector release notes.
## Before You Begin
To use this connector, you must be familiar with:
  * The Google Sheets API and the Google Drive API (if planning to use the List Drive Files operation)
  * 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 access to:
  * The Google Sheets API target resource
  * Anypoint Studio version 4.2.1 or later


## Common Use Case for the Connector
Common use cases for the connector include the following:
  * Improve sales operations
Automate a workflow in which a Google Sheets spreadsheet is auto-populated every time a new lead is created in Salesforce. This sales team can then use the spreadsheet to collaborate on further research.
  * Enhance customer service
Catalog all incoming issues in a spreadsheet and set up automatic rules to alert the team when an issue starts approaching SLA deadlines.
  * Optimize HR processes
When a new candidate reaches out via an applicant tracking system such as Workday or Greenhouse, capture the candidate details in a spreadsheet so that other stakeholders can review and contact the appropriate candidates.


## Next Step
After you complete the prerequisites, you are ready to create your own app and configure the connector using Anypoint Studio.
## See Also
  * Introduction to Anypoint Connectors
  * Use Exchange to Discover Connectors, Templates, and Examples
  * MuleSoft Help Center
Alerting Overview | MuleSoft Documentation
# Alerting Overview
RPA Manager can alert you in case of errors.
You define rules which RPA Manager checks during process run. If a rule applies, an email is sent to the targets you specify.
You can check for:
  * Activity run results
  * Process run results
  * Bot status


The **Alerts** view shows you all triggered alerts.
## See Also
  *   *   * Creating Alerting Email Templates
  * Defining Rules for Alerts
someCharacter | MuleSoft Documentation
# someCharacter
## someCharacter(text: String, condition: (character: String) -> Boolean): Boolean
Checks whether a condition is valid for at least one of the characters or blank spaces in a string.
_Introduced in DataWeave version 2.4.0._
### Parameters
Name | Description  
---|---  
The string to check.  
`condition` | Expression that iterates through the characters and spaces in the string and returns a Boolean value.  
### Example
This example determines whether a string has any uppercase characters.
#### Source
```
%dw 2.0
import * from dw::core::Strings
output application/json
---
"someCharacter" someCharacter isUpperCase($)
```

## someCharacter(text: Null, condition: (character: Nothing) -> Any): false
Helper function that enables `someCharacter` to work with a `null` value.
_Introduced in DataWeave version 2.4.0._
Deactivating Your Portal | MuleSoft Documentation
# Deactivating Your Portal
You can make your published portal inaccessible to users by deactivating the portal site. The portal is still considered active but it can’t be accessed publicly. You can continue to make changes using the Builder and republish the site later for users to access.
To deactivate your portal site, follow these steps:
  1. From a **Manage your API Portal** page, click **Preview and publish your portal**.
  2. Click the **Builder** icon.
  3. From **My Workspaces** , click **Administration**.
  4. Click **Settings**.
  5. Click **Deactivate**.
Your site is inactive and offline.


To active your site, follow steps 1 to 4, then click **Active**.
## See Also
  * Disconnecting the Portal
Deleting an Asset | MuleSoft Documentation
# Deleting an Asset
Keep your asset catalog maintained by deleting outdated or redundant assets. This makes it easier for consumers to find and reuse the assets they need.
When deleting assets, admins determine if the GAV (group ID, asset ID, and version) information of the deleted asset can be reused for a different asset. Therefore, when you delete an asset, you might not be able to reuse its GAV for a new asset.
An asset can’t be restored or undeleted.
If you try to delete an asset version with dependent assets, Exchange shows a warning. Remove the dependencies and then delete the asset version.
If you try to delete an API or policy asset version with dependent API instances, Exchange shows a warning. Remove the dependencies and then delete the asset version. The **API instances** page displays each API asset’s instances.
You can’t delete a policy asset that is applied to any managed API instances. On the policy asset’s page, the **APIs using this policy** tab shows which API instances have that policy applied. Use API Manager to remove the policy from the instances, and then delete the policy.
To delete a patch version of an asset:
  1. In the asset details, click **Manage versions**.
  2. Click the three dots menu and select **Delete version**.
When GAV reuse is enabled, you have the option to reuse the GAV for another asset. If you don’t select this option, the GAV for that asset won’t be available for reuse. If you do select it, the GAV can be reused for another asset.
  3. Click **Delete asset**.


To delete an entire asset, delete all of its patch versions.
## Review GAV Information for Deleted Assets
You can review details about deleted assets. Find out which GAV information is unavailable for reuse using this endpoint:
`/api/v2/organizations/:organizationId/softDeleted`
Identify unavailable GAVs of deleted assets for cleanup and permanent deletion. Then, you can make GAVs reusable by permanently deleting the asset using this example API call:
```
DELETE '/api/v2/assets/:groupId/:assetId/:version'
--header 'x-delete-type: hard-delete'
--header 'Authorization: ***
```

## See Also
  * Managing Asset Deletion
  * To Change a RAML Version
Insert Attributes to an XML Tag | MuleSoft Documentation
# Insert Attributes to an XML Tag
This DataWeave example uses `@(key:value)` syntax (for example, `@(loc: "US")`) to inject attributes to XML tags. The example populates the `title` element with two attributes and each of the `author` elements with one attribute.
It uses these functions:
  * `mapObject` to iterate over each of the books in the input XML, defined in the variable `myInput`.
  * `map` to iterate over the `author` elements in each book.


DataWeave Script:
```
%dw 2.0
var myInput = read('<bookstore>
 <book>
  <title>Everyday Italian</title>
  <year>2005</year>
  <price>30</price>
  <author>Giada De Laurentiis</author>
 </book>
 <book>
  <title>Harry Potter</title>
  <year>2005</year>
  <price>29.99</price>
  <author>J K. Rowling</author>
 </book>
 <book>
  <title>XQuery Kick Start</title>
  <year>2003</year>
  <price>49.99</price>
  <author>James McGovern</author>
  <author>Per Bothner</author>
  <author>Kurt Cagle</author>
  <author>James Linn</author>
  <author>Vaidyanathan Nagarajan</author>
 </book>
 <book>
  <title>Learning XML</title>
  <year>2003</year>
  <price>39.95</price>
  <author>Erik T. Ray</author>
 </book>
</bookstore>', 'application/xml')
output application/xml
---
bookstore: myInput.bookstore mapObject (book) -> {
   book : {
   title @(lang: "en", year: book.year): book.title,
   price: book.price,
   (book.*author map
   author @(loc: "US"): $)
  }
}
```

Output XML:
```
<?xml version='1.0' encoding='UTF-8'?>
<bookstore>
 <book>
  <title lang="en" year="2005">Everyday Italian</title>
  <price>30</price>
  <author loc="US">Giada De Laurentiis</author>
 </book>
 <book>
  <title lang="en" year="2005">Harry Potter</title>
  <price>29.99</price>
  <author loc="US">J K. Rowling</author>
 </book>
 <book>
  <title lang="en" year="2003">XQuery Kick Start</title>
  <price>49.99</price>
  <author loc="US">James McGovern</author>
  <author loc="US">Per Bothner</author>
  <author loc="US">Kurt Cagle</author>
  <author loc="US">James Linn</author>
  <author loc="US">Vaidyanathan Nagarajan</author>
 </book>
 <book>
  <title lang="en" year="2003">Learning XML</title>
  <price>39.95</price>
  <author loc="US">Erik T. Ray</author>
 </book>
</bookstore>
```

## Related Examples
  * Output Self-closing XML tags
  * Remove Specified XML Attributes
  * Include XML Namespaces


## See Also
  * DataWeave Selectors
  *
Enabling API Catalog | MuleSoft Documentation
# Enabling API Catalog
Enable a connected Salesforce organization to access and sync Anypoint Platform APIs into API Catalog in Salesforce. This capability is enabled in Anypoint Platform Access Management by an Anypoint Platform organization administrator.
## Enable or Disable API Catalog in Anypoint Platform
  1. Sign in to Anypoint Platform using an account that has the root Organization Administrator permission.
  2. In the navigation bar or the main Anypoint Platform page, click **Access Management**.
  3. Click **Salesforce**.
  4. In the section for your connected Salesforce org, switch to **Enabled** for **You allow this Salesforce org to import APIs**.
  5. In **Settings for Anypoint APIs in Salesforce** , click **Continue**.
  6. In **Settings** , select the Anypoint Platform business groups that allow the Salesforce organization to import Anypoint Platform APIs into its API Catalog, and click **Save settings**.
Within the selected business groups, you can sync only APIs from Exchange that have managed instances and meet the prerequisite conditions. For more information, see API Catalog.   
---  
The Salesforce organization administrator can then sync APIs into their catalog.
  7. After the APIs are synced, the Salesforce administrator selects individual API instances and operations and converts them into invocable actions so Salesforce developers can access them.
A client ID is created.
  8. An access request for the Salesforce developers selected by the Salesforce administrator is sent to the Anypoint Platform owner of that API through API Manager.
After the request is accepted, Salesforce developers can start using the API.


## See Also
Establish a Tenant Relationship With a Trusted Salesforce Organization
Common Properties (Web Automation) | MuleSoft Documentation
# Common Properties (Web Automation)
The _Web Automation Web Session_ action steps share these _Common Properties_ : **Browser Settings**
  * **Browser mismatch**
Specifies if the execution aborts when there is a browser mismatch or if it shows a warning.
  * **Hide Command Prompt**
Hides the web driver’s command prompt (default). Can be displayed again for diagnostic purposes.
  * **Initial URL**
The URL that the web session launches when it starts. Default: `about: blank`.
  * **Keep out mouse**
When selected, at the start of the _Web session_ the mouse moves to the corner defined in the _Move mouse to_ property. This feature enables you to avoid triggering hover effects on a website accidentally.
  * **Move mouse to**
Defines where the mouse pointer moves to if _Keep out mouse_ is enabled.
  * **Repeat keep out mouse**
When selected, the mouse moves to the corner defined in the _Move mouse to_ property before each step within the _Web Session_. This feature enables you to avoid triggering hover effects on a website accidentally.
  * **Script Timeout [sec]**
Maximum waiting time in seconds before the internal scripting of the web driver aborts. Do not change this value unless MuleSoft Support advises you to do so.
  * **Start maximized**
Decide wether the browser window starts maximized.
  * **Webdriver Retries**
Number of retries to establish a successful web driver connection.
  * **Webdriver Timeout [sec]**
After the assigned time, the web session aborts a Webdriver command.


Additionally, _Web Element_ action steps share the following _Properties_ :
  * **Element _XPath_**
_XPath_ is short for _XML Path Language_. This is a special language used to uniquely identify elements within an XML document. Since HTML is based on XML, you can use the XPath to identify any object on a webpage. You can use the _Browser Wizard_ (see above) to generate XPaths or you can also enter them manually.
  * **Window Title**
Title of the website where the referenced element is located. This will be set when using the _Browser Wizard_.
  * **Use Window Title**
Determines whether or not the website title should be used to identify the correct browser tab
  * **Frame Indexes / Frame Hierarchy**
A series of indexes needed to identify elements that lie within frames. Each frame is referenced by its index, with individual frames separated by slashes. For example, a _Frame Index_ of _/2/1_ means that the element lies within the first sub-frame of the second frame of the main page. This will be set when using the _Browser Wizard_.


## See Also
  * Using the Web Browser Wizard
  *   *   *
X12 to FHIR Converter | MuleSoft Documentation
# X12 to FHIR Converter
The X12 to FHIR converter comes with a ready to use template for X12 to FHIR conversion. This template can be extended or modified to meet specific conversion requirements. The converter converts FHIR R4 to X12 formats and its responses from X12 to FHIR R4.
## Functional Diagram
## Advantages
  * Removes manual work associated with X12 and FHIR conversion
  * X12 connector is preconfigured for this use case to easily read & write X12 EDI events
  * Supports multiple X12 message formats and use cases:
    * 270 and 271 (Eligibility Verification Inquiry)
    * 278, 278i, and 275 (Prior Authorization)
    * 837 (Claims)
  * Solution can be extended to support any custom fields and segments
  * Highly performant with underlying DataWeave engine


## See Also
  *   * MuleSoft Accelerator for Healthcare
Azure Key Vault Properties Provider 1.0 | MuleSoft Documentation
# Azure Key Vault Properties Provider 1.0
Azure Key Vault Properties Provider is a configuration that enables you to retrieve your secrets from a secure Azure cloud service before your Mule app runs.
For information about compatibility and fixed issues, refer to the Azure Key Vault Properties Provider Release Notes.
## Before You Begin
To use this properties provider, you must be familiar with:
  * The Azure Key Vault API
  * Anypoint Connectors
  * Mule runtime engine (Mule)
  * Elements and global elements in a Mule flow
  * How to create a Mule app using Anypoint Studio


Before creating an app, you must have:
  * Mule Enterprise Edition
  * Credentials to access the Azure Key Vault target resource
  * Anypoint Platform
  * Anypoint Studio version 7.3.5 or later


## Common Use Cases for the Properties Provider
With Azure Key Vault Properties Provider, secrets can be retrieved in the pre-runtime phase, which means secrets are populated before the Mule app is deployed.
## Connection Types
Connectors can use the Azure Key Vault Properties Provider in their configurations. Here’s an example of MongoDB Connector using Azure Key Vault Properties Provider in the MongoDB connection type configuration.
## See Also
  * Introduction to Anypoint Connectors
  * Use Exchange to Discover Connectors, Templates, and Examples
  * Azure Key Vault Properties Provider Reference
  * MuleSoft Help Center
Returning Values | MuleSoft Documentation
# Returning Values
Each value saved to an Activity Parameter is returned at the end of the process. In this example, you use a User Task to inform the user about the outcome of the search in RPA Manager after the process is deployed.
## See Also
  * RPA Manager: Handling User Tasks
Checkpoint Collection | MuleSoft Documentation
# Checkpoint Collection
The Checkpoint Collection action step enables you to collect all timer values from the Checkpoint action steps configured in an Activity Workflow.
Because all Checkpoint values are determined at the end of the workflow, you can only place this action step in the Workflow Finalization section.
## Properties
  * **Checkpoint Label**
The label for the name of the checkpoint in the output JSON. Maximum length: 50 characters.
  * **Reached Label**
The label for the reached status of the checkpoint in the output JSON. Maximum length: 50 characters.
  * **Touch Time Label**
The label for the touch time in the output JSON. The touch time is a timestamp from the last time the checkpoint was touched. Maximum length: 50 characters.
  * **Value Label**
The label for the value of the checkpoint in the output JSON. Maximum length: 50 characters.


The properties panel does not validate the maximum label length. Ensure that you validate JSON labels and output by using the Wizard.   
---  
## Inbound Variables
This action step contains no inbound variables.
## Outbound Variables
  * **Checkpoint Collection**
The collection of captured checkpoint values in a JSON list, represented as a String.


## Wizard
  * **Settings for JSON labels**
    * **Checkpoint Label**
The label for the name of the checkpoint in the output JSON. Maximum length: 50 characters.
    * **Reached Label**
The label for the reached status of the checkpoint in the output JSON. Maximum length: 50 characters.
    * **Value Label**
The label for the value of the checkpoint in the output JSON. Maximum length: 50 characters.
    * **Touch Time Label**
The label for the touch time in the output JSON. The touch time is a timestamp from the last time the checkpoint was touched. Maximum length: 50 characters.


The **Preview JSON Output** shows a preview of the resulting JSON based on the configured Checkpoint action steps in the Workflow.
## See Also
  * Workflow Finalization
Deleting Partners | MuleSoft Documentation
# Deleting Partners
If you are no longer trading with a partner, you can delete the partner.
When you delete a partner, the partner is removed from the Partner Manager’s **Partners** page. All of the partner’s data is deleted, except for partner activities that occurred before the partner was deleted.
To delete a partner:
  1. From your Anypoint Partner Manager sandbox or production environment, select **Partners** from the sidebar.
  2. Select the partner to delete and click **Delete**.
  3. In the confirmation dialog, confirm the deletion.


After you delete a partner, you can reuse the partner name.
## See Also
  * Configuring and Managing Partners
  *   * Modifying Partner Settings
Managing Mule Apps on Runtime Fabric with RTFCTL | MuleSoft Documentation
# Managing Mule Apps on Runtime Fabric with RTFCTL
Use these `rtfctl` commands to manage Mule apps deployed to Runtime Fabric.
## Commands for Managing Applications on Runtime Fabric
Command | Description  
---|---  
Deletes a secure property  
Displays disk usage for an application  
Restarts an application  
### `delete`
Deletes a secure property
```
rtfctl delete secure-property <sample_key> -n <app_namespace>
```

Displays disk usage for an application
  * Displays the disk usage for an application, using the first replica by default
```
rtfctl disk <app_name> --app-namespace <app_namespace> --namespace <rtf_namespace>
```

  * Displays the disk usage for an application, using a specific replica
```
rtfctl disk <app_name> --details --pod <replica_name> --app-namespace <app_namespace> --namespace <rtf_namespace>
```



### `restart`
Restarts an application
```
rtfctl restart <app_name> --app-namespace <app_namespace> --namespace <rtf_namespace>
```

## See Also
  * Using RTFCTL Tool Overview
dropWhile | MuleSoft Documentation
# dropWhile
## dropWhile<T>(array: Array<T>, condition: (item: T) -> Boolean): Array<T>
Drops elements from the array while the condition is met but stops the selection process when it reaches an element that fails to satisfy the condition.
_Introduced in DataWeave version 2.2.0._
### Parameters
Name | Description  
---|---  
The array of elements.  
`condition` | The condition (or expression) used to match an element in the array.  
### Example
This example returns an array that omits elements that are less than or equal to `2`. The last two elements (`2` and `1`) are included in the output array because the function stops dropping elements when it reaches the `3`, which is greater than `2`.
#### Source
```
%dw 2.0
import * from dw::core::Arrays
output application/json
var arr = [0,1,3,2,1]
---
arr dropWhile $ < 3
```

#### Output
```
[
 3,
 2,
 1
]
```

## dropWhile(array: Null, condition: (item: Nothing) -> Any): Null
Helper function that enables `dropWhile` to work with a `null` value.
_Introduced in DataWeave version 2.4.0._
Troubleshooting Query Performance with Query Tracing | MuleSoft Documentation
# Troubleshooting Query Performance with Query Tracing
Query tracing in Anypoint DataGraph helps you analyze query performance by tracing every call made to the source APIs of the unified schema for a given query.
Trace results provide the following information:
Time taken by Anypoint DataGraph to parse and validate the query  
---  
Total response time for the entire query  
Errors identified during query execution  
Lack of trace information, denoted by a fading line  
Duration of requests to each source API in the query  
## Prerequisites
You must have the Contribute or Admin permission to use query tracing.
## Run a Query Trace
Query trace results are provided as soon as you run an operation.
  1. From the actions menu (**…​**), select **Trace Query**.
  2. Write your query.
  3. Click **Run**.
The trace query panel opens and displays results:
You can collapse and expand the query trace panel as needed.


## Additional Resources
  * Troubleshoot Queries with Response Logs
  * Run Queries and Mutations
Managing Capabilities for a Connected Salesforce Organization | MuleSoft Documentation
# Managing Capabilities for a Connected Salesforce Organization
When you establish a tenant relationship and enable the connection between your Anypoint Platform organization and a trusted Salesforce organization, you can enable and disable capabilities associated with the Salesforce organization.
  * Enabling or Disabling Einstein for Anypoint Platform
  * Enabling API Catalog


## See Also
  * Trusted Salesforce Organizations
  * Managing Connected Salesforce Orgs
Troubleshooting JSON Module | MuleSoft Documentation
# Troubleshooting JSON Module
To troubleshoot JSON module, become familiar with the information about enabling verbose logging and interpreting commonly thrown messages.
## Enable Verbose Logging
To get a better understanding of why an application’s interaction with the JSON module is failing, temporarily enable verbose logging for the module.
Remember to always disable the enhanced verbosity after troubleshooting, because it affects your Mule application performance.
To enable verbose logging in the configuration file:
  1. Access Anypoint Studio and navigate to the **Package Explorer** view.
  2. Open your application’s project name.
  3. Open the `src/main/resources` path folder.
  4. Open the `log4j2.xml` file inside the folder.
  5. Add an `<AsyncLogger>` tag inside the `<Loggers>` tag:
```
<Loggers>
	...
	<AsyncLogger name="org.mule.module.json" level="DEBUG"/>
	...
</Loggers>
```

  6. Save your application changes.
  7. Click the project name in **Package Explorer** and then click **Run** > **Run As** > **Mule Application**.


## Troubleshoot an Invalid JSON Payload with Trailing Characters
The JSON module **Validate schema** operation now correctly detects an invalid JSON payload with trailing characters.
To do so, you must add the system property `-DjsonSchemaValidator.FailOnTrailingTokens=true` to the validation, as it is not a default behavior in the Jackson library used in the connector.
  1. In Studio, navigate to **Run > Run configurations…​**
  2. In the **Run Configurations** screen, select **Mule Applications** from the first column.
  3. Click the **(X)= Arguments** tab.
  4. In the **VM arguments** box, add the system property `-DjsonSchemaValidator.FailOnTrailingTokens=true`.


## Understand Common Throws
Here is a list of common throw messages and how to interpret them:
  * JSON:INVALID_INPUT_JSON
```
The input document is not valid JSON.
```

  * JSON:INVALID_SCHEMA
```
The supplied schema is invalid.
```

  * JSON:SCHEMA_NOT_FOUND
```
The schema could not be found.
```

  * JSON:SCHEMA_NOT_HONOURED
```
The input JSON document does not adhere to its schema.
```

  * JSON:SCHEMA_INPUT_ERROR
```
The Validate schema operation failed because both the Schema and the SchemaContent fields were used at the same time during the operation's execution. You can only use one of these fields to validate schema XSD content.
```



## See Also
  * JSON Module Reference
  * MuleSoft Help Center
  *
Gmail Connector 1.1 | MuleSoft Documentation
# Gmail Connector 1.1
Anypoint Connector for Gmail (Gmail Connector) enables the management of your Gmail account, including sending and receiving emails and reacting to received emails.
For information about compatibility and fixed issues, see the Gmail Connector Release Notes.
## Before You Begin
To use this connector, you must be familiar with:
  * The Gmail Connector’s API
  * Anypoint Connectors
  * Mule runtime engine (Mule)
  * Elements and global elements in a Mule flow
  * How to create a Mule app using Anypoint Studio


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


## Common Use Cases For the Connector
Some possible uses for this connector include:
  * Sending an email to thank customers for a new purchase.
  * Organizing all emails related to an event.
  * Receiving attachments via email to verify an ID.


## Connection Types
Gmail connections use the Oauth2c authentication type, which uses access tokens provided by the authorization server to access protected data.
For information about configuring authentication types, see Using Anypoint Studio to Configure Gmail Connector.
## Next Step
After you complete the prerequisites, you are ready to create an app and configure the connector using Anypoint Studio.
## See Also
  * Introduction to Anypoint Connectors
  * Use Exchange to Discover Connectors, Templates, and Examples
  * Gmail Connector Reference
  * MuleSoft Help Center
Transit Gateway Attachments | MuleSoft Documentation
# Transit Gateway Attachments
AWS Transit Gateway acts as a cloud router in AWS, simplifying network access between VPCs, on-premises data centers, and third-party software, while providing increased visibility and control over the network. Transit gateways effectively merge your organization’s cloud resources and on-premises datacenters into one network topology.
On CloudHub, you can take advantage of this network simplification by securely attaching Anypoint Virtual Private Cloud (VPC) to AWS Transit Gateway in your AWS account.
You can add multiple transit gateways to your Anypoint Platform organization. The number of transit gateways you can add depends on the network connection entitlements available to your account. Contact your MuleSoft account representative if you don’t know how many entitlements are associated with your account.
## Limitations
The following values are governed by AWS limits:
  * Maximum number of transit gateways per VPC
  * Maximum number of VPCs that you can attach to a transit gateway


For information about limitations when attaching a VPC to an AWS transit gateway, see Transit gateway attachments to a VPC in the AWS documentation.
## See Also
  * Attach to Transit Gateways
  * What is a transit gateway? in the AWS documentation
  * Transit gateway route tables in the AWS documentation
Logging | MuleSoft Documentation
# Logging
Mule runtime engine (Mule) 4 uses Log4j 2 asynchronous logging by default, so the logging operation happens in a separate thread from the message processing, and the latter can continue without having to wait for the log operation to complete.
Asynchronous logging poses a performance-reliability trade-off as explained in Asynchronous Logging Mule, and you may lose some messages if Mule crashes before the logging buffers flush to the disk. In this case, consider that you can have a mixed configuration of asynchronous or synchronous loggers in your app. Best practice is to use asynchronous logging over synchronous with a minimum logging level of `WARN` for a production application. In some cases, enable `INFO` logging level when you need to confirm events such as successful policy installation or to perform troubleshooting.
Configure your logging strategy by editing your application’s `src/main/resources/log4j2.xml` file, as shown in the following example:
```
<?xml version="1.0" encoding="utf-8"?>
<Configuration>
  <Appenders>
    <RollingFile name="file" fileName="${sys:mule.home}${sys:file.separator}logs${sys:file.separator}try-transactional-propagate.log"
        filePattern="${sys:mule.home}${sys:file.separator}logs${sys:file.separator}try-transactional-propagate-%i.log">
      <PatternLayout pattern="%-5p %d [%t] [event: %X{correlationId}] %c: %m%n" />
      <SizeBasedTriggeringPolicy size="10 MB" />
      <DefaultRolloverStrategy max="10"/>
    </RollingFile>
  </Appenders>
  <Loggers>
    <!-- Http Logger shows wire traffic on DEBUG. -->
    <!--AsyncLogger name="org.mule.service.http.impl.service.HttpMessageLogger" level="DEBUG" /-->
    <AsyncLogger name="org.mule.service.http" level="WARN"/>
    <AsyncLogger name="org.mule.extension.http" level="WARN"/>
  <!-- Mule logger -->
    <AsyncLogger name="org.mule.runtime.core.internal.processor.LoggerMessageProcessor" level="WARN"/>
    <AsyncRoot level="WARN">
      <AppenderRef ref="file" />
    </AsyncRoot>
  </Loggers>
</Configuration>
```

  * Apply caution when logging parts of messages, especially the payload, because this bypasses streaming and causes significant disk I/O for large payloads
  * Avoid using the `<async>` scope to log messages
Because the logging mechanism is already implemented asynchronously by the Log4j2 library in the backend, enclosing a logger into the `<async>` scope does not improve parallelism, it increases the resource usage and duplicates the numbers of threads required. Repeatedly using this pattern in an application can cause thread exhaustion, low performance, and back-pressure.
```
		<async doc:name="Async" doc:description="Don't do this">
			<logger level="INFO" doc:name="Logger" message="Don't do this" />
		</async>
		<logger level="INFO" doc:name="Logger" message="Do this"/>
```



## See Also
  *
Streaming Processes | MuleSoft Documentation
# Streaming Processes
In the **Process Streaming** view, you see the number of configurations, RPA Bots, and sessions for each productive process. You can open a live view of the sessions of a process and watch the bot as it works.
## Before You Begin
  * Ask an organization administrator in Access Management to assign you the required permissions:
Action | RPA Permission | Deprecated RPA Permission  
---|---|---  
Open the **Process Streaming** view. | RPA Operations Viewer, RPA Operations Manager, RPA Administrator | Process Streaming Open  
  * Only productive processes for which at least one configuration has been created and for which you are a member of the process team are displayed.
  * Check **Enable Taskbar (Start menu, taskbar buttons)** in the run configuration to view the desktop of the computer that runs the process. Otherwise, a black screen is shown.
  * **Send images for process streaming** must be enabled in the RPA Bot Configurator on the computer, where the process runs.


## Watch a Bot at Work
Watch the process stream to see what is happening right now.
  1. In the **Process Streaming** view of the **Process Monitoring** module, click the icon **Show process streams** in the row of the **Process** you want to watch.
  2. Toggle **Off / On** to activate and deactivate a stream.
  3. Click the **Full Screen** icon in the stream panel to display it in full-screen mode.
  4. Press `ESC` to exit full-screen mode and return to the overview page.


## See Also
  * Deploying Automations
  * RPA Bot Configurator - Session Settings