Waiting for engine...
Skip to main content

Component object

Use the Component object to retrieve, create, and update the component configuration XML for a single component ID and version number. It is similar to opening and viewing a component's XML from the Revision History panel on the user interface's Build tab.

You can use the Component object to:

  • Perform static code analysis and validation using external tools for code quality or following coding standards.

  • Perform textual version differentials using external tools.

  • Search component XML for specific configuration elements using external tools.

  • Migrate from other tools by creating integration components.

  • Generate process configuration documentation and dependency reports.

  • Archive deployment and component metadata for compliance requirements.

You can use the Component object to retrieve additional, complimentary information to what the Component Metadata object provides. For example, if you use the Component Metadata object to get the component type, you can then use the Component object to find its XML structure, or to see if a process-type component contains the processOverrides XML. The Component object additionally returns a component's full folder path in the Component Explorer hierarchy, as well as the component's user-defined description (if specified).

Sensitive data

Any password-type fields, such as private certificates, are masked using a cryptographic hash. Though your actual password value is masked and re-encrypted with a one-way algorithm, the result is a value that cannot be decrypted but can be used to detect if the password value changed between versions.

Structure

<Component componentId="" version="" name="" type="" subType="" createdDate="" createdBy="" modifiedDate="" modifiedBy="" deleted="" currentVersion="" folderName="" folderId="" fullFolderPath="" copiedFromComponentId="" copiedFromComponentVersion=""/>
<description/>
<encryptedValues/>
<object/>
<processOverrides/>
</Component>

FieldTypeDescription
FilterFilterFilter
componentIdstringThe ID of the component. The component ID is available on the Revision History dialog, which you can access from the Build page in the service. This must be omitted for the CREATE operation but it is required for the UPDATE operation.
versionstringThe revision number of the given component. Optional
namestringThe user-defined name given to the component. Required for CREATE. Optional for UPDATE.
typestringThe type of component. See the Component Types section later in this topic for a complete list of components that the Component object can retrieve.
subTypestringFor Connector types, the subtype returns the type of connector (for example, http, disk, or custom). You can use the Connector object to retrieve subType values. In the CREATE and UPDATE operations, this is required for SDK connections and operation components only. Must be a valid connector type that is available in the account.
createdDatestring — yyyy-MM-dd (for example, 2020-01-31)The creation date of the component.
createdBystring — (for example, user@boomi.com)The email address of the user who created the component.
modifiedDatestringyyyy-MM-dd (for example, 2020-01-31)The modification date of the component.
modifiedBystring — (for example, user@boomi.com)The email address of the user who modified the component.
deleted booleanstringIndicates if it is a deleted component. A True value indicates a deleted status, whereas a False value indicates active status.
currentVersion booleanstringIndicates if the value specified in the version field is the most current and latest revision number created for the component on the Build tab. A True value indicates that the revision number is the most current revision number on the Build tab, whereas False indicates that the version field value is not the most current revision number.
folderNamestringThe name of the Component Explorer folder in which the component resides.
folderIdstringThe ID of the folder where the component currently resides. Optional for CREATE and UPDATE. If omitted or blank, root folder will be used. Must be a valid, non-deleted folder ID.
fullFolderPathstringThe full path of the folder location in which the component currently resides.
copiedFromComponentIdstringIf you copied the component , this field is the ID of the original component from where you copied the component.
copiedFromComponentVersionstringIf you copied the component, this field is the revision number of the original copied component.
descriptionstringIf specified, the text description that appears at the top of an opened component.Optional for CREATE and UPDATE.
encryptedValuesstringA list of encrypted values.Optional for CREATE and UPDATE.
objectanytypeThe XML structure of the component object. The structure of the object contents vary by component type. Required. Object name for specific component type. Determines the type of component to create and update. Recommend exporting existing components to determine values.
Note these values are slightly different from Component/@type values (reference the Component Metadata object topic for more information).
Component type specific configurationanytypeRequired. Varies by component type. Recommend extracting existing component to determine configuration values.
processOverridesanytypeFor process type components, specifies overridden values (for example, variables overridden by environment extensions).
folderFullPath
version
type
createdDate
createdBy
modifiedDate
modifiedBy
Deleted
currentVersion
folderName
folderFullPath
anytypeRead-only system-generated values returned in the response. If included in the response, values for these fields are ignored.

Component types

Use the following table to determine the component types available for use within the Component object. Note that connector subtype fields are not defined in the table; subtype values exactly match the various connector types that you can select from the Build tab on the user interface, and can be retrieved using the Connector object.

Component type fieldComponent type description
FilterFilter
certificateX.509 Certificate
certificate.pgpPGP Certificate
connector-actionConnector Operation
connector-settingsConnector Connection
crossrefCross Reference Table
documentcacheDocument Cache
transform.mapMap
transform.functionMap Function
processProcess
processpropertyProcess Property
profile.dbDatabase Profile
profile.ediEDI Profile
profile.flatfileFlat File Profile
profile.xmlXML Profile
profile.jsonJSON Profile
queueQueue
tradingpartnerTrading Partner
tpgroupProcessing Group
tporganizationOrganization
tpcommoptionsCommunication Channel
webserviceAPI Service
webservice.externalAPI Proxy
processrouteProcess Route
customlibraryCustom Library
flowserviceFlow Service
script.processingProcess Script
script.mappingMap Script
xsltXSLT Stylesheet

Considerations by Component Type

Profiles

  • Profile elements must be created individually. There is not an “import from schema” option via the API at this time.

Certificates

  • For the X.509, first we have to generate the key and then we have to pass the generated certificate model while creating the Certificate.

Key Generation Payload for X.509 Certificates:

  • Invoke POST API https://api.boomi.com/api/rest/v1/Account-ID/CertificateKeyGeneration with the below payload:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <bns:CertificateGeneration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bns="http://api.platform.boomi.com/" alias="Name" signatureAlgorithm="SHA512withRSA" keyLength="2048" validity="365" passPhrase="boomi">
    <bns:Name fullName="str1234" commonName="CN" organization="Org" organizationalUnit="OU" locality="LOC" state="USA" country="CTY"/>
    </bns:CertificateGeneration>
FieldDescription
signatureAlgorithmRequired. Must not be blank. The values should be SHA512withRSA, SHA384withRSA, SHA256withRSA, SHA224withRSA or SHA1withRSA. If not, API will return an error.
keyLengthRequired. Must not be blank. The values should be 1024 or 2048. If not, API will return an error.
ValidityRequired. Must not be blank. The values must be integer and should be in between 1 to 9999.
passPhraseRequired. Must not be blank.
aliasRequired, can be blank.
commonName, organization, organizationalUnit, locality, countryRequired. Must not be blank.

Key Generation Response:

<bns:CertificateModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

<!--Cerificate values and certificate data-->

</bns:CertificateData> </bns:CertificateModel>

  • Pass the above key generation response in the <object> section of the Component create/update XML, as below by taking any GET response of an existing certificate:
    <bns:encryptedValues/>
<bns:description></bns:description>
<bns:object>

<!--Copy and Paste of Key generation response here -->

<bns:CertificateModel> <bns:CertificateData> </bns:CertificateData> </bns:CertificateModel> </bns:object> </bns:Component>

Supported operations

GETQUERYCREATEUPDATEEXECUTEDELETE
SupportedNot supported SupportedSupported Not supportedNot supported 

Using the GET operation

  • When using the GET operation by componentId, it returns the latest component if you do not provide the version .

  • When you provide the version in the format of <componentId>~<version>, it returns the specific version of the component.

  • The GET operation only accepts mediaType application/xml for the API response.

  • The limit is 5 requests for the BULK GET operation. All other API objects have a limit of 100 BULK GET requests.

Using the CREATE operation

  • Cannot create components for types not eligible for your account. For example, if your account does not have the B2B/EDI feature, you will not be able to create Trading Partner components.

  • Request will not be processed in case if the payload has invalid attributes and tags under the <object> section.

  • To create or update a component, you must supply a valid component XML format for the given type. The component XML can be rather complex with many optional fields and nested configuration. For this reason we strongly recommend approaching it by first creating the desired component structure/skeleton as you would normally in the Build page UI, then exporting the XML using the Component object GET. This will provide an accurate example or template of the XML you will need to create. You can replace values or continue that pattern as you need for your use case.

Using the UPDATE operation

  • Full updates only. No partial updates. If part of the object’s configuration is omitted, the component will be updated without that configuration.

    • The only exception is for encrypted fields such as passwords. Omitting an encrypted field from the update request will NOT impact the saved value.
  • Requests without material changes to configuration will be rejected to prevent unnecessary revisions.

  • Request will not be processed in case if the payload has invalid attributes and tags under the <object> section.

  • For the saved process property components, modifications to the data type are not permitted.

SOAP implementation

  • GET operation

    Request:

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:api="http://api.platform.boomi.com/">
    <soapenv:Header>
    <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <wsse:UsernameToken wsu:Id="UsernameToken" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <wsse:Username>user@boomi.com</wsse:Username>
    <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</wsse:Password>
    </wsse:UsernameToken>
    </wsse:Security>
    </soapenv:Header>
    <soapenv:Body>
    <api:get>
    <api:objectType>component</api:objectType>
    <api:objectId>1234a5-67a8-912f-a345-a6ed7891c2b</api:objectId>
    </api:get>
    </soapenv:Body>
    </soapenv:Envelope>

    Response:

    <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
    <bns:getResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bns="http://api.platform.boomi.com/">
    <bns:result xsi:type="bns:Component" folderFullPath="Tests/ComponentMetadata/Process-Test" componentId="456789a-bcde-f0123-4567-89abcdef012" version="2" name="Boomi-Test" type="process" createdDate="2020-02-07T20:53:01Z" createdBy="user@boomi.com" modifiedDate="2020-02-07T21:01:55Z" modifiedBy="user@boomi.com" deleted="false" currentVersion="true" folderName="Process-Test" folderId="AbcdeFgHiJkL">
    <bns:encryptedValues/>
    <bns:description/>
    <bns:object>
    <Xslt>
    <stylesheet><![CDATA[<?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:foo="http://www.foo.org/" xmlns:bar="http://www.bar.org">
    <xsl:output
    method="html"
    doctype-system="about:legacy-compat"
    encoding="UTF-8"
    indent="yes" />
    <xsl:template match="/">
    <html>
    <body>
    <h2>My CD Collection</h2>
    <table border="1">
    <tr bgcolor="#9acd32">
    <th>Title</th>
    <th>Artist</th>
    <th>Country</th>
    <th>Company</th>
    <th>Price</th>
    <th>Year</th>
    </tr>
    <xsls:for-each select="catalog/foo:cd">
    <tr>
    <td><xsl:value-of select="titled"/></td>
    <td><xsl:value-of select="artist"/></td>
    <td><xsl:value-of select="country"/></td>
    <td><xsl:value-of select="company"/></td>
    <td><xsl:value-of select="price"/></td>
    <td><xsl:value-of select="bar:year"/></td>
    </tr>
    </xsl:for-each>
    </table>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>]]></stylesheet>
    </Xslt>
    </bns:object>
    </bns:result>
    </bns:getResponse>
    </S:Body>
    </S:Envelope>
  • CREATE operation

    • Send an HTTP POST to https://api.boomi.com/api/soap/v1/{accountId} where accountId is the ID of the authenticating account for the request.

Request:

   <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:api="http://api.platform.boomi.com/">
<soapenv:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>{username}</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">{password}</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<api:create>
<object xsi:type="api:Component" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bns="http://api.platform.boomi.com/" folderFullPath="Boomi/Admin" version="3" name="New Database Profile" type="profile.db" createdDate="2023-01-19T17:08:12Z" createdBy="admin@boomi.com" modifiedDate="2023-01-19T17:09:49Z" modifiedBy="admin@boomi.com" deleted="false" currentVersion="true" folderName="Admin" folderId="Rjo5MTg4NzQ">
<bns:encryptedValues/>
<bns:object>
<DatabaseProfile strict="true" version="2">
<ProfileProperties>
<DatabaseGeneralInfo executionType="dbread"/>
</ProfileProperties>
<DataElements>
<DBStatement isNode="true" key="2" name="Statement" statementType="select" storedProcedure="" tableName="">
<DBFields isNode="true" key="3" name="Fields" type="result_set"/>
<DBParameters isNode="true" key="4" name="Parameters"/>
<sql/>
</DBStatement>
</DataElements>
</DatabaseProfile>
</bns:object>
</object>
</api:create>
</soapenv:Body>
</soapenv:Envelope>

Response:

      <?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<bns:createResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bns="http://api.platform.boomi.com/">
<result xsi:type="bns:Component" folderFullPath="Boomi/Admin" componentId="6e525533-253c-400b-ad42-7b38b3521060" version="1" name="New Database Profile" type="profile.db" createdDate="2023-07-05T16:04:51Z" createdBy="admin@boomi.com" modifiedDate="2023-07-05T16:04:51Z" modifiedBy="admin@boomi.com" deleted="false" currentVersion="true" folderName="Admin" folderId="Rjo5MTg4NzQ">
<bns:encryptedValues/>
<bns:object>
<DatabaseProfile strict="true" version="2">
<ProfileProperties>
<DatabaseGeneralInfo executionType="dbread"/>
</ProfileProperties>
<DataElements>
<DBStatement isNode="true" key="2" name="Statement" statementType="select" storedProcedure="" tableName="">
<DBFields isNode="true" key="3" name="Fields" type="result_set"/>
<DBParameters isNode="true" key="4" name="Parameters"/>
<sql/>
</DBStatement>
</DataElements>
</DatabaseProfile>
</bns:object>
</result>
</bns:createResponse>
</S:Body>
</S:Envelope>
  • UPDATE operation

    • Send an HTTP POST to https://api.boomi.com/api/soap/v1/{accountId}/Component/{componentId} where accountId is the ID of the authenticating account for the request.

Request:

   <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:api="http://api.platform.boomi.com/">
<soapenv:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>{username}</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">{password}</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<api:update>
<object xsi:type="api:Component" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bns="http://api.platform.boomi.com/" folderFullPath="Boomi/Admin" componentId="52d89a9a-ddce-4a6e-bb48-f8003e8a0487" version="3" name="New Database Profile update" type="profile.db" createdDate="2023-01-19T17:08:12Z" createdBy="admin@boomi.com" modifiedDate="2023-01-19T17:09:49Z" modifiedBy="admin@boomi.com" deleted="false" currentVersion="true" folderName="Admin" folderId="Rjo5MTg4NzQ">
<bns:encryptedValues/>
<bns:object>
<DatabaseProfile strict="true" version="2">
<ProfileProperties>
<DatabaseGeneralInfo executionType="dbread"/>
</ProfileProperties>
<DataElements>
<DBStatement isNode="true" key="2" name="Statement" statementType="select" storedProcedure="" tableName="">
<DBFields isNode="true" key="3" name="Fields" type="result_set"/>
<DBParameters isNode="true" key="4" name="Parameters"/>
<sql/>
</DBStatement>
</DataElements>
</DatabaseProfile>
</bns:object>
</object>
</api:update>
</soapenv:Body>
</soapenv:Envelope>

Response:

   <?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<bns:updateResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bns="http://api.platform.boomi.com/">
<result xsi:type="bns:Component" folderFullPath="Boomi/Admin" componentId="52d89a9a-ddce-4a6e-bb48-f8003e8a0487" version="5" name="New Database Profile update" type="profile.db" createdDate="2023-05-17T16:35:57Z" createdBy="admin@boomi.com" modifiedDate="2023-07-05T16:06:18Z" modifiedBy="admin@boomi.com" deleted="false" currentVersion="true" folderName="Admin" folderId="Rjo5MTg4NzQ">
<bns:encryptedValues/>
<bns:object>
<DatabaseProfile strict="true" version="2">
<ProfileProperties>
<DatabaseGeneralInfo executionType="dbread"/>
</ProfileProperties>
<DataElements>
<DBStatement isNode="true" key="2" name="Statement" statementType="select" storedProcedure="" tableName="">
<DBFields isNode="true" key="3" name="Fields" type="result_set"/>
<DBParameters isNode="true" key="4" name="Parameters"/>
<sql/>
</DBStatement>
</DataElements>
</DatabaseProfile>
</bns:object>
</result>
</bns:updateResponse>
</S:Body>
</S:Envelope>

Known Limitations:

  • Bulk creation or updating is not allowed. Only one component can be created or updated at a time.
  • The XML payload accepted is a max of 10 MB for create and update APIs.
  • The XML validations are not in place for all the connectors and operations. (Validating the invalid attributes and tags under the <object> section).
On this Page