Search code examples
sql-serverssissalesforcebimlkingswaysoft

SSIS Custom component salesforce source (kingswaysoft) not configured properly via BIML


I am trying to connect to Salesforce using using kingswaysoft SSIS connector.

I am able to successfully connect to Salesforce using Microsoft visual studio GUI in Data Integration project and retrive the data from salesforce. Because I have to generate 100+ SSIS packages to handle I am trying to write using BIML which in turn generates SSIS packages.

I have my BIML code as below

<Biml xmlns="http://schemas.varigence.com/biml.xsd">
    <Connections>
      <CustomSsisConnection Name="Salesforce Connection Manager" CreationName="Salesforce (KingswaySoft)" ObjectData="&lt;SalesforceConnectionManager ConnectionString=&quot;InstanceType=Production;UserName=XXXXXXXXXXX;ServiceTimeout=250;ProxyMode=NoProxy;ProxyServer=;ProxyServerPort=0;ProxyUsername=;RetryOnIntermittentErrors=True&quot;&gt;&#xD;&#xA;  &lt;Password Sensitive=&quot;1&quot; xmlns=&quot;www.microsoft.com/SqlServer/Dts&quot; Encrypted=&quot;0&quot;&gt;XXXXXXXXX&lt;/Password&gt;&#xD;&#xA;  &lt;SecurityToken Sensitive=&quot;1&quot; xmlns=&quot;www.microsoft.com/SqlServer/Dts&quot; Encrypted=&quot;0&quot;&gt;XXXXXXXXXXXXXXXXXX&lt;/SecurityToken&gt;&#xD;&#xA;&lt;/SalesforceConnectionManager&gt;" />
    </Connections>
  <Packages>
    <Package Name="Package_1" Language="None" ProtectionLevel="EncryptSensitiveWithUserKey" SsisPackageType="5" VersionBuild="9" CreatorName="84336" CreatorComputerName="84336-WX-1" CreationDate="2018-07-03T15:40:13">
      <Variables>
        <Variable Name="recordsCount" DataType="Int32" IncludeInDebugDump="Include">0</Variable>
      </Variables>
      <Tasks>
        <Dataflow Name="Data Flow Task">
          <Transformations>
            <RowCount Name="Row Count" VariableName="User.recordsCount">
              <InputPath OutputPathName="Salesforce Source.Salesforce Source Output" />
            </RowCount>
            <CustomComponent Name="Salesforce Source" ComponentTypeName="KingswaySoft.IntegrationToolkit.Salesforce.SalesforceSourceComponent" ContactInfo="KingswaySoft Inc.; http://www.kingswaysoft.com; [email protected]; Copyright (c) 2011-2018 KingswaySoft Inc.">
              <DataflowOverrides>
                <OutputPath OutputPathName="Salesforce Source Output">
                <Columns>
                    <Column ErrorRowDisposition="FailComponent" TruncationRowDisposition="FailComponent" ColumnName="AccountNumber" />
                </Columns>
                </OutputPath>
              </DataflowOverrides>
              <CustomProperties>
                <CustomProperty Name="SourceType" DataType="Int32" TypeConverter="KingswaySoft.IntegrationToolkit.Salesforce.SalesforceSourceType" SupportsExpression="true" Description="Specifies the type of source data from Salesforce">0</CustomProperty>
                <CustomProperty Name="SourceObject" DataType="String" SupportsExpression="true" Description="Salesforce object to retrieve data from.">Account</CustomProperty>
                <CustomProperty Name="ObjectQuery" DataType="String" SupportsExpression="true" Description="Salesforce object query statement."></CustomProperty>
                <CustomProperty Name="BatchSize" DataType="Int32" SupportsExpression="true" Description="Specifies the batch size of the query.">1000</CustomProperty>
                <CustomProperty Name="IncludeDeletedArchived" DataType="Boolean" SupportsExpression="true" Description="Specifies whether deleted or archived records should be returned.">false</CustomProperty>
                <CustomProperty Name="UseBulkApi" DataType="Boolean" SupportsExpression="true" Description="Specify whether to use Salesforce Bulk API to read data.">false</CustomProperty>
                <CustomProperty Name="OutputTimezone" DataType="Int32" TypeConverter="KingswaySoft.IntegrationToolkit.Common.DescriptiveEnumTypeConverter`1[[KingswaySoft.IntegrationToolkit.Salesforce.SfdcSourceOutputTimezone, KingswaySoft.IntegrationToolkit.Salesforce, Version=1.0.2017.0, Culture=neutral, PublicKeyToken=705df8e0751bcea7]], KingswaySoft.IntegrationToolkit.Salesforce, Version=1.0.2017.0, Culture=neutral, PublicKeyToken=705df8e0751bcea7" SupportsExpression="true" Description="Specifies the output timezone for Salesforce datetime fields.">1</CustomProperty>
                <CustomProperty Name="PKChunkingHeader" DataType="String" SupportsExpression="true" Description="Specify the PK Chunking Header that helps with Bulk API data read performance."></CustomProperty>
              </CustomProperties>
              <OutputPaths>
                <OutputPath Name="Salesforce Source Output">
                  <OutputColumns>
                    <OutputColumn Name="AccountNumber" Length="40" DataType="String" ExternalMetadataColumnName="AccountNumber" ErrorOrTruncationOperation="Conversion" ErrorRowDisposition="FailComponent" TruncationRowDisposition="FailComponent" />
                  </OutputColumns>
                  <ExternalColumns>
                    <ExternalColumn Name="AccountNumber" Length="40" DataType="String" />
                  </ExternalColumns>
                </OutputPath>
              </OutputPaths>
              <Connections>
                <Connection Name="Salesforce" ConnectionName="Salesforce Connection Manager" />
              </Connections>
            </CustomComponent>
          </Transformations>
        </Dataflow>
      </Tasks>
      <Connections>
        <Connection ConnectionName="Salesforce Connection Manager" />
      </Connections>
    </Package>
  </Packages>
</Biml>

I am able to see Salesforce connection(properly) got created inside BI project after generating SSIS package from BIML.

enter image description here

And the generated SSIS looks this way package

enter image description here

When I double click on Salesforce Source, I am getting a warning which as

enter image description here

Please suggest what I am missing here. Why salesforce source not getting configured automatically via BIML?

Any suggestions much appreciated!!


Solution

  • I am able to solve the issue. I added below property to CustomComponent

    UsesDispositions="true"
    

    Now the error has gone and reference is here

    enter image description here