BassemE/mulesoft-documentation-embeddings huggingface dataset:
Use XML to Configure a Connector | MuleSoft Documentation
# Use XML to Configure a Connector
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 access the connector from your app by adding reference statements to both your XML Mule flow and the Apache Maven `pom.xml` file.
  * If you add the connector in Studio, Studio automatically populates the XML code with the connector’s namespace and schema location and it also adds a dependency to the `pom.xml` file.


## Add a Namespace for a Connector
To add a namespace for a connector, paste the following code inside the `<mule>` tag of the header of your configuration XML, where `<connector>` is the connector name specified in the XML and Maven Support topic of the connector’s User Guide:
```
http://www.mulesoft.org/schema/mule/<connector>
http://www.mulesoft.org/schema/mule/<connector>/current/mule-<connector>.xsd
```

This example shows how the namespace statements are placed in the `<mule>` XML block:
```
<mule xmlns:<connector>="http://www.mulesoft.org/schema/mule/<connector>"
	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/<connector>
	http://www.mulesoft.org/schema/mule/<connector>/current/mule-<connector>.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>GROUP_ID_FROM_EXCHANGE</groupId>
 <artifactId>ARTIFACT_ID_FROM_EXCHANGE</artifactId>
 <version>x.x.x</version>
 <classifier>mule-plugin</classifier>
</dependency>
```

Replace `GROUP_ID_FROM_EXCHANGE` and `ARTIFACT_ID_FROM_EXCHANGE` with correct information from Exchange.
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 `<connector-name>`.
  4. Select the connector.
  5. Click **Dependency Snippets** near the upper right of the screen.


## See Also
  * Introduction to Anypoint Connectors
  * MuleSoft Help Center
XML Threat Protection | MuleSoft Documentation
# XML Threat Protection
Malicious attacks on XML applications typically involve large, recursive payloads, XPath/XSLT or SQL injections, and CData. Using the XML Threat Protection policy, you can limit the size of things, such as maximum node depth and text node length, in your XML code to thwart malicious attacks. You can limit the size of comments to prevent invasions through CData, for example.
## Protecting XML Applications
Configure XML threat protection using the procedure to protect XML applications.
Configure XML threat protection. Set limits, and click apply to start protecting your XML code. The following example shows configuration of an XML threat protection policy.
## Responses to XML Threat Protection Policies
  * 200
Message successfully sent.
  * 400 Bad Request
Any request that violates the configured limits causes a Bad Request error.
isFunctionType | MuleSoft Documentation
# isFunctionType
## isFunctionType(t: Type): Boolean
Returns `true` if the input is the Function type.
_Introduced in DataWeave version 2.3.0._
### Parameters
Name | Description  
---|---  
The type to check.  
### Example
This example shows how `isFunctionType` behaves with different inputs.
#### Source
```
%dw 2.0
import * from dw::core::Types
type AFunction = (String) -> String
output application/json
---
{
  a: isFunctionType(AFunction),
  b: isFunctionType(Boolean)
}
```

#### Output
```
{
 "a": true,
 "b": false
}
```
Configuring Distributed Tracing for Managed Flex Gateway | MuleSoft Documentation
# Configuring Distributed Tracing for Managed Flex Gateway
OpenTelemetry provides a unified standard for instrumenting, generating, collecting, and exporting telemetry data across distributed systems. Flex Gateway supports OpenTelemetry, enabling you to configure the generation of distributed tracing data for all API traffic managed by the gateway. This integration delivers deep visibility into API request flows, making it easier to analyze system behavior, troubleshoot issues, and understand interactions between Flex Gateway APIs and external services.
With the Anypoint Monitoring Telemetry Exporter, you can send Flex Gateway trace data to third-party observability and analytics platforms, including Azure Monitor, Splunk HEC, or any OpenTelemetry-compliant tool. This capability allows you to leverage end-to-end observability, correlating API traces with data from other systems to build a comprehensive view of your environment.
## Before You Begin
To use the OpenTelemetry with Flex Gateway, you must be familiar with:
  * Distributed tracing concepts, including traces and spans.
If you’re new to distributed tracing and OpenTelemetry, we recommend starting with What is OpenTelemetry and Understanding distributed tracing.
  * How to export telemetry data to third-party monitoring systems.


## Configure Distributed Tracing for a Flex Gateway API
Tracing enables you to track Flex Gateway API interactions. When multiple systems and services are involved, distributed tracing tracks API requests as they flow through distributed environments, providing a comprehensive view of the API’s execution.
## Enable and Configure Distributed Tracing for your Managed Flex Gateway
To enable distributed tracing for your Managed Flex Gateway:
  1. From Anypoint Platform, select **Runtime Manager > Flex Gateways**.
  2. Click the Managed Flex Gateway name.
  3. In the navigation menu, click Settings.
  4. Click **Advanced options**.
  5. Click **Tracing**.
  6. Turn on **Distributed tracing**.
  7. Set the **Sampling percentage** to the percentage of transactions that you want to trace.
     * This setting corresponds to the `overall` sampling percentage. The `client` and `random` sampling percentages are set to 100% by default, if the sampling percentage is set to a non-zero value here.
     * Set the **Sampling percentage** to 0 if you want to specify the sampling percentage only on a per-API basis, using the Tracing policy.
  8. Click **Apply Changes**.


## Configure Distributed Tracing For Specific APIs
You can override the globally configured distributed tracing settings by applying the Tracing Policy to specific APIs. You must first enable and configure distributed tracing for the gateway. You can then apply this policy to the APIs you want to instrument:
  *
APIkit for OData V4 | MuleSoft Documentation
# APIkit for OData V4
APIkit for OData v4 is a framework that simplifies the development of RESTful APIs that adhere to the OData v4 specification. OData, also called Open Data Protocol, enables the creation and consumption of RESTful APIs. It allows data querying and manipulation through standard HTTP requests.
APIkit for OData enables you to generate Mule flows that handle OData requests to create OData APIs. For example, you can expose a legacy API as an OData API, orchestrate and transform data before exposing it in Salesforce, or create a bidirectional OData API for databases such as Oracle, DB2, or Azure DB.
While the APIkit for OData v2 extension is based on RAML APIs, APIkit for OData v4 leverages the Entity Data Model (EDM) used by OData services to build HTTP-based data services. The EDM formalizes the resource descriptions and structures within the OData service.
## See Also
  * APIkit for OData V2
  * Installing OData V4 Tooling
Navigate | MuleSoft Documentation
# Navigate
This _Web Automation_ object allows you to perform navigation operations, such as going backwards or forward in the navigation history or refreshing the current webpage. It can also be used to call a specific URL.
## Properties
**Navigation Command** Decide if the current webpage should be refreshed. Use this to go backwards or forwards in the browsing history or if you want to load a specific URL.
**Navigate to this URL** If you have selected _Specify a URL to navigate to_ under _Navigation Command_ , then enter the URL to be loaded here.
## Inbound Variables
**Navigate to this URL** If you have selected _Specify a URL to navigate to_ under _Navigation Command_ , then enter the URL to be loaded here.
## Outbound Variables
The action step _Navigate_ possesses no outbound variables.
Please note:
When calling a specific page using the _Navigate_ action step, it is important to note that the initial page build may take longer than the execution of the action step itself. The page request often loads only a very small, initial HTML page. Therefore, while the page is being loaded for the user, the NavigateTo has long been completed.
The only help here is an appropriate anchor point. This can be done in WebAutomation, using a _Check Element_ that waits until the elements appear in the completely displayed page. A _PatternSearch_ could also be used at this juncture. You can use this anchor point as a stable starting point for subsequent actions.
## Example
Measurement of the initial page load is particularly relevant in connection with APM/TA. This is only possible if you can enclose the transaction in a stopwatch clause. Since this is not possible directly in a web session, the web session is often opened with a neutral page (about:blank). Within the block, you might now expect that a stopwatch and the NavigateTo it contains will return the requested value from the page to be measured. This is usually not the case, however, because the page request often only load a very small, initial HTML page. In turn, this page loads further page content asynchronously, which then creates the actual visual page. Therefore, while the page is being loaded for the user, the NavigateTo has long been completed, which means the measured time does not correspond to the time actually required by the page.
The only help here is an appropriate anchor point. This can be done in WebAutomation, using a _Check Element_ that waits until the elements appear in the completely displayed page. A _PatternSearch_ could also be used at this juncture.
NetSuite Connector 11.8 | MuleSoft Documentation
# NetSuite Connector 11.8
Anypoint Connector for NetSuite (NetSuite Connector) synchronizes data and automates business processes between NetSuite and third-party applications, either on-premises or in the cloud. NetSuite provides cloud-based business management software that helps companies manage core business processes, ERP financials, CRM, e-commerce, inventory, and more.
NetSuite Connector provides the following features:
  * SOAP-based integration
NetSuite Connector 11.0 and later does not support REST-based operations.
  * Generation of NetSuite business objects
  * Different authentication levels
  * Error-handling support


For compatibility information and fixed issues, see the NetSuite Connector Release Notes.
## Before You Begin
To use this connector, you must be familiar with:
  * The NetSuite 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 NetSuite Web Services
  * Anypoint Studio version 7.3.3 or later


## Common Use Cases for the Connector
  * Quote-to-Cash
Improve cash flow, remove manual order entries, and minimize order errors by leveraging realtime integrations to connect and synchronize data about your customer’s intent to buy from your CRM application, such as Salesforce, into its realization of revenue in NetSuite ERP.
  * Invoice-to-Reconciliation
Automate your Accounts Receivable (A/R) process by automatically applying bank payments against invoices in NetSuite for real-time A/R processing. Streamline accounts payable by automating payment file transfers between NetSuite and your banks.
  * Hire-to-Retire
Build a single view of your employees with realtime synchronization of employee information between Netsuite and your Human Capital Management (HCM) services, such as Workday, Oracle HCM, PeopleSoft, and so on. Automatically trigger employee onboarding processes such as ordering computer equipment, uniforms, system access setup, and so on, while reversing the process upon retirement.


## Authentication types
NetSuite connections use token-based authentication, which uses either a consumer key and token ID or secret pairs to authenticate.
For information about configuring this authentication type, see Using Anypoint Studio to Configure NetSuite Connector.
## Using Exchange Templates and Examples
Anypoint Exchange provides the following templates that you can use as starting points for your apps:
  * Retrieve a List of Customers from NetSuite
  * Salesforce and NetSuite Opportunity Aggrgation


## 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
Anypoint DataGraph Release Notes | MuleSoft Documentation
# Anypoint DataGraph Release Notes
The following release notes are provided for Anypoint DataGraph:
  * Anypoint DataGraph Release Notes
Logger Component | MuleSoft Documentation
# Logger Component
This Core component helps you monitor and debug your Mule application by logging important information such as error messages, status notifications, payloads, and so on. You can add a Logger anywhere in a flow, and you can configure it to log a string that you specify, the output of a DataWeave expression you write, or any combination of strings and expressions.
Keep in mind that the Logger is one of the only components that supports mixing Strings and expressions within a value. DataWeave String interpolation or concatenation within a single expression should be used elsewhere.  
---  
The configured messages are logged to the app’s log file, which is located in `MULE_HOME/logs/<app-name>.log` if no custom log file path is specified in the `log4j2.xml` file. In Studio, the logs show in the Console.
The following example displays the message in Set Payload in a browser and also logs the message.
Example: XML Configuration of the Flow
```
<http:listener-config name="HTTP_Listener_Configuration" host="localhost" port="8081"/>
<flow name="logger-example-Flow">
 <http:listener config-ref="HTTP_Listener_Configuration" path="/"/>
 <set-payload value="Hello MuleSoft!"/>
 <logger message="#[payload]" level="INFO"/>
</flow>
```

## Logger Configuration
Field | Value | Description | Example  
---|---|---|---  
String or DataWeave expression |  Specifies the Mule log message. By default, messages are logged to the application’s log file. |  `message="Current payload is #[payload]"`  
Available options:
  * `INFO`(Default)

|  Specifies the log level. |  `level="ERROR"`  
Optional setting that specifies a category name that it adds to `log4j2.xml` file. For example, you might use a category to route your log messages based on your category, or you might set log levels based on category. |  `category="MyCustomCategory"`  
## Examples
This Logger is set to monitor message processing status, mixing Strings and expressions:
```
<logger category="monitoring" message="Message #[payload.id] processed successfully" level="INFO"/>
```

This Logger set to record the processing time of a flow, using a single expression and DataWeave’s String concatenation:
```
 <logger category="performance" message="#['Message ' ++ payload.id ++ ' took ' ++ vars.processingTime ++ ' milliseconds to process']" level="INFO"/>
```

## See also
Getting Started with Flex Gateway | MuleSoft Documentation
# Getting Started with Flex Gateway
Flex Gateway provides the following guides to quickly get started with Anypoint Flex Gateway. The tutorial describes how to deploy a Flex Gateway and publish a simple API that is secured with a basic authentication policy. See the guide for you desired Flex Gateway deployment type:
  * Getting Started with Managed Flex Gateway on CloudHub 2.0 - Deploy a Anypoint Platform hosted Managed Flex Gateway to CloudHub 2.0.
  * Getting Started with Self-Managed Flex Gateway - Deploy a Self-Managed Flex Gateway to a Docker container on your local infrastructure.
  * Getting Started with Self-Managed Flex Gateway in a Kubernetes Cluster - Deploy a Self-Managed Flex Gateway to a Kubernetes pod on your local infrastructure.


## Next Steps
  * Requirements and Limits for Flex Gateway
  * Setting Up Self-Managed Flex Gateway
Uninstall Runtime Fabric Using RTFCTL | MuleSoft Documentation
# Uninstall Runtime Fabric Using RTFCTL
To uninstall Runtime Fabric using `rtfctl` commands, follow these steps:
  1. Using Runtime Manager, delete all Mule app and API gateways deployed on Runtime Fabric.
  2. Verify on all associated environments that you have removed all applications.
  3. In Runtime Manager, delete the Runtime Fabric.
  4. Run the `rtfctl uninstall` command to uninstall the Runtime Fabric services from the Kubernetes cluster.
  5. Run the `rtfctl uninstall --confirm` command to verify the uninstall operation.
  6. After the uninstall command finishes, verify that there are no Runtime Fabric applications or services running in the cluster.


## See Also
  * Uninstalling Runtime Fabric
Finance Analysis | MuleSoft Documentation
# Finance Analysis
In the view **Finance Analysis** , you record, monitor, and analyze the financial aspects of a Process.
You can enter all expenses for automation of the process. On the basis of the costs of manual execution of the process and the number of process runs already carried out automatically, and the expected future number of monthly process runs, the **Net profit** per month and the expected **Break-Even Point** of the process are calculated.
Costs, savings, net profit, and break-even point are shown in line charts from the time of creation of the process. The data is shown from the start of automation within a configurable time period of a maximum of 60 months.
Each change to the raw data is reflected directly in the graphic. This way, you can analyze when the process automation pays for itself.
For the Finance Analysis, you require the following values:
  * Actual and expected number of process runs per month.
  * Costs of a process run if this is carried out by a human (**Cost per process run for manual process execution**).
  * Initial Investment for acquisition of the MuleSoft RPA solution and all other investments.
  * Period in months for depreciation of the initial investment and all other investments (**Depreciation period for initial invest (in month)**).
  * Monthly operating costs of process automation (**Operating costs**).


If these details are incomplete or are missing entirely, incorrect values or no values at all (**n/a**) are displayed in the table.
You can see the overview of all processes in the **Processes for finance analysis** view and the overview of a single process in the detailed view.
## See Also
  * Finance Analysis Basics
  * Analyze Costs and Savings
Agentforce Connector 1.1 XML and Maven Support | MuleSoft Documentation
# Agentforce Connector 1.1 XML and Maven Support
Although you can manually code a Mule app in XML, it is more efficient to use Anypoint Code Builder or Studio:
  * If you manually code a Mule runtime engine (Mule) app in XML, either from the Anypoint Code Builder or Studio XML editor, or from a text editor, you can access the connector from your app by adding reference statements to both your XML Mule flow and the Apache Maven `pom.xml` file.
  * If you add the connector in Anypoint Code Builder or Studio, the XML is automatically populated the code with the connector’s namespace and schema location and 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/ms-agentforce
http://www.mulesoft.org/schema/mule/ms-agentforce/current/mule-ms-agentforce.xsd
```

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

## Add a POM File Dependency
The Apache Maven `pom.xml` file generated by Anypoint Code Builder and 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>com.mulesoft.connectors</groupId>
	<artifactId>mule4-agentforce-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’re using.
To get 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 `agentforce`.
  4. Select the connector.
  5. Click **Dependency Snippets** near the upper right of the screen.


## See Also
  * Agentforce Connector Overview
  * Agentforce Connector Reference
Configuring Receive Settings for AS2 Inbound Messages | MuleSoft Documentation
# Configuring Receive Settings for AS2 Inbound Messages
The AS2 encoding setting determines the character encoding type for all messages received from this partner.
To configure the encoding type:
  1. In the sidebar, select **Partners**.
  2. Select the partner to which the setting applies.
  3. In the **Global endpoint settings** section’s **Inbound endpoint settings** column, click **AS2**.
  4. Select one of the following encoding types from the **Character encoding override** dropdown:
     * ASCII
     * ISO-8859-1
     * ISO-8859-2
     * ISO-8859-3
     * ISO-8859-4
     * ISO-8859-5
     * ISO-8859-6
     * ISO-8859-7
     * ISO-8859-8
     * ISO-8859-9
     * UTF-8
  5. Click **Save**.
toBinary | MuleSoft Documentation
# toBinary
## toBinary(number: Number): String
Transforms a decimal number into a binary number.
_Introduced in DataWeave version 2.2.0._
### Parameters
Name | Description  
---|---  
The input number.  
### Example
This example shows how the `toBinary` behaves with different inputs.
#### Source
```
%dw 2.0
import toBinary from dw::core::Numbers
output application/json
---
{
  a: toBinary(-2),
  b: toBinary(100000000000000000000000000000000000000000000000000000000000000),
  c: toBinary(0),
  d: toBinary(null),
  e: toBinary(2),
}
```

#### Output
```
{
 "a": "-10",
 "b": "11111000111010111010110100101011100001001110000011010101100010111101001011100000100010011000011101100101101001111101111010110010010100110010100100000000000000000000000000000000000000000000000000000000000000",
 "c": "0",
 "d": null,
 "e": "10"
}
```

## toBinary(number: Null): Null
Helper function that enables `toBinary` to work with null value.
_Introduced in DataWeave version 2.2.0._
Einstein AI Connector 1.0 | MuleSoft Documentation
# Einstein AI Connector 1.0
Anypoint Connector for Einstein AI (Einstein AI Connector) provides connectivity to LLMs via the Salesforce Einstein Trust Layer.
Einstein AI Connector offers a range of advanced features that simplify and enhance AI integration in MuleSoft applications.
Use this connector to:
  * Build AI Agents in a low-code environment
  * Leverage existing investments (APIs, integrations, and templates) as tooling for the AI agents
  * Manage all Large Language Model (LLM) interactions through the Salesforce Einstein Trust Layer
  * Generate vector embeddings to power RAG-based architectures


For information about compatibility and fixed issues, see the Einstein AI Connector release notes.
## Before You Begin
To use this connector, you must be familiar with:
  * Anypoint Connectors
  * Mule runtime engine (Mule)
  * Elements and global elements in a Mule flow
  * How to create a Mule app using Anypoint Code Builder or Anypoint Studio


Before creating an app, you must have:
  * Java 8 or 17
  * Apache Maven
  * Connected App credentials to connect with your Salesforce org
  * Anypoint Platform
  * The latest versions of Anypoint Code Builder or Anypoint Studio


To configure the connector, you must create a Connected App in Salesforce. For more information, see Models API Developer Guide.
## Common Use Cases for the Connector
These are some common use cases for Einstein AI Connector:
  * Enhance customer service by providing case summaries, case classifications, large dataset summaries, and more.
  * Assist sales teams in writing sales emails, summarizing cases for specific accounts, assessing the probability of closing deals, and more.
  * Support marketing teams in generating product descriptions, creating newsletters, planning social media campaigns, and more.
  * Generate embeddings of text data to support sentiment analysis and natural language understanding applications.


## Next Step
After you complete the prerequisites, you are ready to create an app and configure the connector using Anypoint Studio or Anypoint Code Builder.
## See Also
  * Introduction to Anypoint Connectors
  * Using Anypoint Code Builder to Configure a Connector
  * Using Studio to Configure a Connector
  * Einstein AI Connector Reference
  * Einstein AI Connector - Additional Configuration Information
  * MuleSoft Help Center
Contribute to MuleSoft Documentation | MuleSoft Documentation
# Contribute to MuleSoft Documentation
Many of our documentation repositories are open and we welcome your contributions!
To contribute to the English version of this documentation:
  1. If this is your first time contributing to MuleSoft documentation, sign the Salesforce.com Contributor License Agreement (CLA). You need to sign the CLA only once per GitHub account.
  2. Navigate to the page that you want to modify and click **View in Github**.
  3. Make your edits.
  4. Submit a pull request to the GitHub repository.


The Documentation team then either accepts your pull request or contacts you for clarification.
If your pull request results in an error, verify that you signed the CLA in Step 1.
DataWeave Overview | MuleSoft Documentation
# DataWeave Overview
DataWeave is the programming language designed by MuleSoft for data transformation. It is also the expression language Mule runtime engine uses to configure components and connectors.
DataWeave enables you to build a simple solution for a common use case for integration developers: read and parse data from one format, transform the data, and write it out as a different format. For example, a DataWeave script can receive a CSV file as input and transform it into an array of complex JSON objects, or receive an XML input and write the data out to a flat file format. DataWeave enables developers to focus on the transformation logic instead of thinking about the specifics of reading, parsing, and writing specific data formats in a performant way.
  * To learn more about DataWeave, visit the language guide.
  * To look up reference information about DataWeave operators and functions, visit the reference guide.
  * To see sample scripts to solve common transformation scenarios, visit DataWeave examples.
  * To try DataWeave scripts interactively, visit DataWeave Playground.
  * To get started with DataWeave for Mule runtime engine (Mule) version 4.4 and later, visit the quickstart.


## Compatibility
The following table specifies which version of DataWeave is bundled with each Mule runtime engine release:
Mule Version | DataWeave Version  
---|---
Comparable Matchers Reference | MuleSoft Documentation
# Comparable Matchers Reference
Anypoint Code Builder 
Anypoint Studio 
`Comparable` is a DataWeave type that represents all the types that can be compared to each other. Allowed primitives are String, Number, Boolean, DateTime, LocalDateTime, LocalTime, Time, and TimeZone that you can pass any primitive value such as an integer or a date.   
---  
## greaterThan(Comparable)
Checks that the expression is greater than the specified value.
Example
```
<munit-tools:assert-that
expression="#[payload]"
is="#[MunitTools::greaterThan(|2017-08-09|)]"/>
```

Example
```
<munit-tools:assert-that
expression="#[payload]"
is="#[MunitTools::greaterThan(20)]"/>
```

## greaterThanOrEqualTo(Comparable)
Checks that the expression is greater than or equal to the specified value.
Example
```
<munit-tools:assert-that
expression="#[payload]"
is="#[MunitTools::greaterThanOrEqualTo(20)]"/>
```

Example
```
<munit-tools:assert-that
expression="#[payload]"
is="#[MunitTools::greaterThanOrEqualTo(|2017-08-09|)]"/>
```

## lessThan(Comparable)
Example
```
<munit-tools:assert-that
expression="#[payload]"
is="#[MunitTools::lessThan(20)]"/>
```

Example
```
<munit-tools:assert-that
expression="#[payload]"
is="#[MunitTools::lessThan(|2017-08-09|)]"/>
```

## lessThanOrEqualTo(Comparable)
Checks that the expression is less than or equal to the specified value.
Example
```
<munit-tools:assert-that
expression="#[payload]"
is="#[MunitTools::lessThanOrEqualTo(20)]"/>
```

Example
```
<munit-tools:assert-that
expression="#[payload]"
is="#[MunitTools::lessThanOrEqualTo(|2017-08-09|)]"/>
```

## closeTo(Number, Number)
Checks that the expression is close to the first number, using the second number as a delta value. In other words, checks that the expression belongs to the range defined by the first number +/- the second number.
Example
```
<munit-tools:assert-that
expression="#[payload]"
is="#[MunitTools::closeTo(1, 0.01)]"/>
<!--
 This evaluates if the expression is between 0.99 (1 - 0.01) and 1.01 (1 + 0.01)
-->
```

## equalTo(Object)
Checks that the expression is equal to a specific value.
Example
```
<munit-tools:assert-that
expression="#[payload]"
is="#[MunitTools::equalTo(0)]"/>
```

Example
```
<munit-tools:assert-that
expression="#[payload]"
is="#[MunitTools::equalTo('example')]"/>
```

This matcher also accepts Dataweave objects.
Example
```
<munit-tools:assert-that
expression="#[{example1: 1 , example2: 2}]"
is="#[MunitTools::equalTo({example1: 1 , example2: 2})]"/>
```

The matcher validates that the keys and their respective values are the same. The order in the matcher must be the same as the one in the expression or the assertion fails.
Example
```
<munit-tools:assert-that
expression="#[{example1: 1 , example2: 2}]"
is="#[MunitTools::equalTo({example2: 2 , example1: 1})]"/>
<!-- This assertion fails -->
```

Example
```
<munit-tools:assert-that
expression="#[[1, 2, 3]]"
is="#[MunitTools::equalTo([3, 2, 1])]"/>
<!-- This assertion fails -->
```

## See Also
  * DataWeave Comparable Type
  *   * Core Matchers Reference
  * String Matchers Reference
  * Iterable and Map Matchers Reference
Web Service Consumer XML and Maven Support | MuleSoft Documentation
# Web Service Consumer 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 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.
## 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/wsc
http://www.mulesoft.org/schema/mule/wsc/current/mule-wsc.xsd
```

This example shows how the namespace statements are placed in the `<mule>` XML block:
```
<mule xmlns:wsc="http://www.mulesoft.org/schema/mule/wsc"
	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/wsc
	http://www.mulesoft.org/schema/mule/wsc/current/mule-wsc.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-wsc-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 `Web Service Consumer`.
  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 Examples.
## See Also
  * Introduction to Anypoint Connectors
  * MuleSoft Help Center
isArrayType | MuleSoft Documentation
# isArrayType
## isArrayType(t: Type): Boolean
Returns `true` if the input type is the Array type.
_Introduced in DataWeave version 2.3.0._
### Parameters
Name | Description  
---|---  
The type to check.  
### Example
This example shows how `isArrayType` behaves with different inputs.
#### Source
```
%dw 2.0
import * from dw::core::Types
type AType = Array<String>
output application/json
---
{
  a: isArrayType(AType),
  b: isArrayType(Boolean),
}
```

#### Output
```
{
 "a": true,
 "b": false
}
```
ServiceNow Connector 6.9 | MuleSoft Documentation
# ServiceNow Connector 6.9
Anypoint Connector for ServiceNow (ServiceNow Connector) provides connections between Mule runtime engine (Mule) and ServiceNow apps. Use the ServiceNow operations with the custom ServiceNow tables, along with any operations available through the installed plugins.
For compatibility information and fixed issues, see the ServiceNow Connector Release Notes.
## Before You Begin
To use this connector, you must be familiar with:
  * Anypoint Connectors
  * Mule runtime engine (Mule)
  * Elements in a Mule flow and global elements
  * How to create a Mule app using Anypoint Studio


Before creating an app, you must have access to the ServiceNow target resource and Anypoint Platform.
## Common Use Cases For the Connector
ServiceNow Connector enables organizations to fully integrate business processes across HR, legal, procurement, operations, marketing, and facilities departments. Creating connectivity within and outside of the enterprise is quick and simple with the integration of over 120 Anypoint Connectors.
Use ServiceNow Connector to create instant API connectivity with the ServiceNow API, and quickly and easily interface with ServiceNow from within Anypoint Platform.
For examples, see example use cases, which include getting a ServiceNow incident record.
## Audience
  * New users, read:
    * Using Anypoint Studio to Configure the Connector to create your Mule app
  * Advanced users, read:
    * XML and Maven Support
    * Examples, which provides one or more use cases for the connector


## Connection Types
The following authentication types are supported:
  * Basic
  * OAuth 2.0 Authorization Code


### Limitations
  * OAuth 2.0 Authorization Code authentication works only with the following versions of Mule:
    * 4.1.5
    * 4.2.1 and later
  * Metadata does not work with OAuth 2.0 Authorization Code authentication.


## Use Exchange Templates and Examples
Anypoint Exchange provides templates you can use as a starting point for your app, as well as examples that illustrate a complete solution.
  * Workday and ServiceNow Worker Bidirectional Sync
  * Workday Worker to ServiceNow Service Request Migration
  * Workday and ServiceNow Employee Aggregation
  * Workday to ServiceNow Service Worker Migration
  * Workday Worker to ServiceNow Service Request Broadcast


## Next Step
After you complete the prerequisites and experiment with templates and examples, you are ready to create an app with Anypoint Studio.
## See Also
  * Introduction to Anypoint Connectors
  * Use Anypoint Exchange to Discover Connectors, Templates, and Examples
  * ServiceNow Connector Release Notes
  * ServiceNow Connector on Exchange
  * MuleSoft Help Center
NetSuite Connector 11.2 | MuleSoft Documentation
# NetSuite Connector 11.2
Anypoint Connector for NetSuite (NetSuite Connector) synchronizes data and automates business processes between NetSuite and third-party applications, either on-premises or in the cloud. NetSuite provides cloud-based business management software that helps companies manage core business processes, ERP financials, CRM, e-commerce, inventory, and more.
NetSuite Connector provides the following features:
  * SOAP-based integration
NetSuite Connector 11.0 and later does not support REST-based operations.
  * Generation of NetSuite business objects
  * Different authentication levels
  * Error-handling support


For compatibility information and fixed issues, see the NetSuite Connector Release Notes.
## Before You Begin
To use this connector, you must be familiar with:
  * The NetSuite 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 NetSuite Web Services
  * Anypoint Studio version 7.3.3 or later


## Common Use Cases for the Connector
  * Quote-to-Cash
Improve cash flow, remove manual order entries, and minimize order errors by leveraging realtime integrations to connect and synchronize data about your customer’s intent to buy from your CRM application, such as Salesforce, into its realization of revenue in NetSuite ERP.
  * Invoice-to-Reconciliation
Automate your Accounts Receivable (A/R) process by automatically applying bank payments against invoices in NetSuite for real-time A/R processing. Streamline accounts payable by automating payment file transfers between NetSuite and your banks.
  * Hire-to-Retire
Build a single view of your employees with realtime synchronization of employee information between Netsuite and your Human Capital Management (HCM) services, such as Workday, Oracle HCM, PeopleSoft, and so on. Automatically trigger employee onboarding processes such as ordering computer equipment, uniforms, system access setup, and so on, while reversing the process upon retirement.


## Authentication types
NetSuite connections use token-based authentication, which uses either a consumer key and token ID or secret pairs to authenticate.
For information about configuring this authentication type, see Using Anypoint Studio to Configure NetSuite Connector.
## Using Exchange Templates and Examples
Anypoint Exchange provides the following templates that you can use as starting points for your apps:
  * Retrieve a List of Customers from NetSuite
  * Salesforce and NetSuite Opportunity Aggrgation


## 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
Testing Regular Expressions | MuleSoft Documentation
# Testing Regular Expressions
The _Regex Tester_ is a tool in RPA Builder that enables you to create and test regular expressions. You can open the _Regex Tester_ in three different ways:
  * In the top menu bar, click **Tools** → **Open Regex Tester**.
  * In the top menu bar, click the **Open Regex Tester** button ().
  * In an action step that supports Regex, click the **Test Regex** button ().
Opening the _Regex Tester_ this way automatically transfers any regular expressions and text patterns associated with the action step to the tool.


## Regex Tester Wizard
  * **Regex**
Enter the regular expression that you want to test. Commonly used regular expressions can be selected from the **Commonly used Regex** table by double clicking on the desired entry.
  * **Test Pattern**
Enter a piece of text that you wish to use for testing the regular expression. Click the Execute Test button to run the test. Matches will be highlighted in the **Test Pattern** field.
  * **Commonly used Regex**
This table contains commonly used regular expressions that can be used in the **Regex** field. Double click on the desired entry to transfer it to the _Regex_ field.


## See Also
  *
Upgrading and Migrating to SAP Connector 5.x | MuleSoft Documentation
# Upgrading and Migrating to SAP Connector 5.x
Anypoint Connector for SAP version 5.x has enhancements and changes. Some of the main changes introduced in SAP Connector 5.x are:
  * The `Create` operation is renamed to `Retrieve IDoc`.
  * The execute BAPI functions over qRFC, tRFC, and sRFC operations are merged into Synchronous Remote Function Call (sRFC) and Asynchronous Remote Function Call (aRFC) operations.
  * The `Disable function template cache` flag is renamed to `Disable JCo internal cache`, and applies to both functions and sources. The default value is `false`.
  * The sources now have `-listener` in their aliases instead of `source`. For example, the XML is changed from `sap:document-source` to `sap:document-listener`.
  * The SAP configuration has the following changes:
  * The SAP Inbound and SAP Outbound configurations are merged into the new SAP configuration.
  * The **Message Server** field is now in the **General** tab. The new configuration makes understanding what configuration to use in the connector more intuitive.


These new features and enhancements may cause backward compatibility issues.
## Upgrade Steps
Follow these steps to perform the upgrade:
  1. In Anypoint Studio, create a Mule project.
  2. In the **Mule Palette** view, click **Search in Exchange**.
  3. In **Add Dependencies to Project** , enter `sap` in the search field.
  4. In **Available modules** , select **SAP Connector - Mule 4** and click **Add**.
  5. Click **Finish**.
  6. Verify that the SAP Connector dependency version is 5.x.x in the `pom.xml` file in the Mule project, where `x.x` is the minor release and patch version number. For example, if you are upgrading to v5.2, the dependency version in the pom.xml file should be 5.2.0.


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. Verify that there are no problems in the project `pom.xml` file.
  3. Test the connection to verify that the operations work.


### Revert the Upgrade
If it is necessary to revert to the previous version of SAP Connector, change the `sap-connector` dependency version in the project’s `pom.xml` file to the previous version.
You must update the project’s `pom.xml` file in Anypoint Studio.
## See Also
  * Introduction to Anypoint Connectors
  * MuleSoft Help Center
Microsoft Excel Online Connector 1.0 | MuleSoft Documentation
# Microsoft Excel Online Connector 1.0
Anypoint Connector for Microsoft Excel Online (Excel Online Connector) gives you access to the Excel platform. This connector exposes the most commonly used operations provided by the Microsoft Excel Online API.
For compatibility information and fixed issues, see the Microsoft Excel Online Connector Release Notes.
## Before You Begin
To use this connector, you must be familiar with:
  * The Microsoft Excel Online 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 Excel target resource
  * Anypoint Studio version 7.3.5 or later


## Common Use Cases for the Connector
Some possible uses for this connector include:
  * Sales
    * Organize your company’s sales in a spreadsheet to perform cost studies, inventory management, or production scheduling.
    * Create a chart of your company’s inventory and analyze that data to encourage your customers to buy certain items.
  * Data
    * Visualize and share data regarding your customers, subscriptions, orders, charges, refunds, and events.


## Authentication Type
Microsoft Excel Online Connector uses the OAuth 2.0 authentication type, which delegates user authentication to the service hosting the user account.
## 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