コード例 #1
0
        private void MapInputColumnsToExternalColumns()
        {
            if (ExternalColumnInputColumnMap.Count > 0)
            {
                string[] viCols = new string[Input.Input.GetVirtualInput().VirtualInputColumnCollection.Count];
                for (int i = 0; i < viCols.Length; i++)
                {
                    viCols.SetValue(Input.Input.GetVirtualInput().VirtualInputColumnCollection[i].Name, i);
                }

                foreach (ExternalColumnInputMap map in ExternalColumnInputColumnMap)
                {
                    for (int mc = 0; mc < DtsInput.ExternalMetadataColumnCollection.Count; mc++)
                    {
                        if (DtsInput.ExternalMetadataColumnCollection[mc].Name == map.ExternalColumn.ExternalColumnName)
                        {
                            //IDTSInputColumn100 ic = GetInputColumn(DtsInput.Name, map.Item2);
                            //ic.ExternalMetadataColumnID = DtsInput.ExternalMetadataColumnCollection[mc].ID;
                            for (int vi = 0; vi < viCols.Length; vi++)
                            {
                                if (viCols[vi] == map.InputColumnName)
                                {
                                    ISInputColumn ic = new ISInputColumn(this, DtsInput.Name, viCols[vi], UsageType.UT_READONLY);
                                    //ic.ExternalMetadataColumnID = DtsInput.ExternalMetadataColumnCollection[mc].ID;
                                    //MapInputColumn(DtsInput.Name, DtsInput.ExternalMetadataColumnCollection[mc].Name);
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                string[] viCols = new string[Input.Input.GetVirtualInput().VirtualInputColumnCollection.Count];
                for (int i = 0; i < viCols.Length; i++)
                {
                    viCols.SetValue(Input.Input.GetVirtualInput().VirtualInputColumnCollection[i].Name, i);
                }
                for (int i = 0; i < viCols.Length; i++)
                {
                    for (int mc = 0; mc < DtsInput.ExternalMetadataColumnCollection.Count; mc++)
                    {
                        if (DtsInput.ExternalMetadataColumnCollection[mc].Name == viCols[i])
                        {
                            ISInputColumn ic = new ISInputColumn(this, DtsInput.Name, viCols[i], UsageType.UT_READONLY);
                            ic.ExternalMetadataColumnID = DtsInput.ExternalMetadataColumnCollection[mc].ID;
                        }
                    }
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// This example shows Kingsway Connection generate
        /// </summary>
        public void KingswayConnection()
        {
            if (File.Exists(Constants.StorageFoldePath + @"\" + _ispacFileName + ".ispac"))
            {
                File.Delete(Constants.StorageFoldePath + @"\" + _ispacFileName + ".ispac");
            }

            //  create a project
            ISProject mainProject = new ISProject(Constants.StorageFoldePath + @"\" + _ispacFileName + ".ispac", null);

            //  create a package
            ISPackage package = new ISPackage("ExamplePackage", mainProject);
            //  Create a Source Kinsway connection manager
            CrmSourceComponent crmSourceComponent1 = new CrmSourceComponent();

            ISKingswaySoftCRMConnectionManager crmConnection = new ISKingswaySoftCRMConnectionManager("CrmConnection", mainProject, package);

            crmConnection.ConnectionString        = "";//write connection String
            crmConnection.IgnoreCertificateErrors = true;

            // Create DataFlow
            ISDataFlowTask iSDataFlowTask = new ISDataFlowTask("Data Flow", package);

            //Create Kingsway Soft Source Component
            ISCrmSourceComponent crmSourceComponent = new ISCrmSourceComponent(iSDataFlowTask, "Crm source", crmConnection);

            crmSourceComponent.SourceEntity = "account";
            crmSourceComponent.BatchSize    = 1;
            crmSourceComponent.BatchSize    = 1;


            //Define Output for Source Component
            ISOutput iSOutput = new ISOutput(crmSourceComponent, 0);
            //Define Entity Column for output Name doesn't need to same with crm name
            ISOutputColumn iSOutputColumn = new ISOutputColumn(crmSourceComponent, iSOutput.Name, "name");
            var            datatpye       = Converter.GetSSISDataTypeFromADONetDataType("string", 180);

            iSOutputColumn.SetDataTypeProperties(datatpye);

            //Configure External Metadata for Entity, columnt name must be same with crm
            ISExternalMetadataColumn iSExternalMetadataColumn = new ISExternalMetadataColumn(crmSourceComponent, iSOutput.Name, "name", false);

            iSExternalMetadataColumn.SetDataType(datatpye);
            iSExternalMetadataColumn.AssociateWithOutputColumn("name");



            //Create Destination component
            ISCrmDestination iSCrmDestination = new ISCrmDestination(iSDataFlowTask, "Crm Destination", crmSourceComponent, crmSourceComponent.GetOutputNameFromIndex(0), crmConnection);

            iSCrmDestination.DestinationEntity = "contact";
            iSCrmDestination.ActionType        = (int)KingswaySoft.IntegrationToolkit.DynamicsCrm.CrmDestinationActionType.Create;



            //Create Destination Component Input
            ISInput iSInput = new ISInput(iSCrmDestination, 0);

            //Map Source component output to destination input
            var inputColumn = new ISInputColumn(iSCrmDestination, iSInput.Name, iSOutputColumn.Name, UsageType.UT_READWRITE);
            //Set input metadata
            ISExternalMetadataColumn iSExternalMetadataColumnforInput = new ISExternalMetadataColumn(iSCrmDestination, iSInput.Name, "fullname", true, "name");

            iSExternalMetadataColumnforInput.SetDataType(datatpye);
            //Set Crm type information, Type information must be defined.
            iSExternalMetadataColumnforInput.SetCustomPropertyToExternalMetadataColumn("CrmFieldType", "String");
            iSExternalMetadataColumnforInput.SetCustomPropertyToExternalMetadataColumn("LookupTypes", "");



            mainProject.SaveToDisk();
        }