public static void CreateDateExtension(SoapClient soapClient,
            string iDataExtensionName,
            string iDataExtensionCustomerKey)
        {
            DataExtension de = new DataExtension();
            de.Name = iDataExtensionName;
            de.CustomerKey = iDataExtensionCustomerKey;

            de.IsSendable = true;
            de.IsSendableSpecified = true;

            DataExtensionField def = new DataExtensionField();
            def.Name = "EMAIL";
            de.SendableDataExtensionField = def;

            //Sendable SubscriberField will be "Email Address" by default
            //If SubscriberKey option is enabled then value needs to be "Subscriber Key"
            ExactTargetSOAPAPI.Attribute attr = new ExactTargetSOAPAPI.Attribute();
            attr.Name = "Email Address";
            de.SendableSubscriberField = attr;

            DataExtensionField emailField = new DataExtensionField();
            emailField.Name = "EMAIL";
            emailField.FieldType = DataExtensionFieldType.EmailAddress;
            emailField.FieldTypeSpecified = true;
            emailField.IsRequired = true;
            emailField.IsRequiredSpecified = true;
            emailField.IsPrimaryKey = true;
            emailField.IsPrimaryKeySpecified = true;
            emailField.MaxLength = 50;
            emailField.MaxLengthSpecified = true;

            DataExtensionField fnameField = new DataExtensionField();
            fnameField.Name = "FIRST NAME";
            fnameField.FieldType = DataExtensionFieldType.Text;
            fnameField.FieldTypeSpecified = true;

            DataExtensionField lnameField = new DataExtensionField();
            lnameField.Name = "LAST NAME";
            lnameField.FieldType = DataExtensionFieldType.Text;
            lnameField.FieldTypeSpecified = true;

            de.Fields = new DataExtensionField[] { emailField, fnameField, lnameField };

            string sStatus = "";
            string sRequestId = "";

            CreateResult[] aoResults = soapClient.Create(new CreateOptions(), new APIObject[] { de }, out sRequestId, out sStatus);

            Console.WriteLine("Status: " + sStatus);
            Console.WriteLine("Request ID: " + sRequestId);
            foreach (CreateResult cr in aoResults)
            {
                Console.WriteLine("StatusCode: " + cr.StatusCode);
                Console.WriteLine("ErrorCode: " + cr.ErrorCode);
                Console.WriteLine("StatusMessage: " + cr.StatusMessage);
            }
        }
Example #2
0
        public static void CreateDateExtension(SoapClient soapClient,
                                               string iDataExtensionName,
                                               string iDataExtensionCustomerKey)
        {
            DataExtension de = new DataExtension();

            de.Name        = iDataExtensionName;
            de.CustomerKey = iDataExtensionCustomerKey;

            de.IsSendable          = true;
            de.IsSendableSpecified = true;

            DataExtensionField def = new DataExtensionField();

            def.Name = "EMAIL";
            de.SendableDataExtensionField = def;

            //Sendable SubscriberField will be "Email Address" by default
            //If SubscriberKey option is enabled then value needs to be "Subscriber Key"
            ExactTargetSOAPAPI.Attribute attr = new ExactTargetSOAPAPI.Attribute();
            attr.Name = "Email Address";
            de.SendableSubscriberField = attr;

            DataExtensionField emailField = new DataExtensionField();

            emailField.Name                  = "EMAIL";
            emailField.FieldType             = DataExtensionFieldType.EmailAddress;
            emailField.FieldTypeSpecified    = true;
            emailField.IsRequired            = true;
            emailField.IsRequiredSpecified   = true;
            emailField.IsPrimaryKey          = true;
            emailField.IsPrimaryKeySpecified = true;
            emailField.MaxLength             = 50;
            emailField.MaxLengthSpecified    = true;

            DataExtensionField fnameField = new DataExtensionField();

            fnameField.Name               = "FIRST NAME";
            fnameField.FieldType          = DataExtensionFieldType.Text;
            fnameField.FieldTypeSpecified = true;

            DataExtensionField lnameField = new DataExtensionField();

            lnameField.Name               = "LAST NAME";
            lnameField.FieldType          = DataExtensionFieldType.Text;
            lnameField.FieldTypeSpecified = true;

            de.Fields = new DataExtensionField[] { emailField, fnameField, lnameField };

            string sStatus    = "";
            string sRequestId = "";

            CreateResult[] aoResults = soapClient.Create(new CreateOptions(), new APIObject[] { de }, out sRequestId, out sStatus);

            Console.WriteLine("Status: " + sStatus);
            Console.WriteLine("Request ID: " + sRequestId);
            foreach (CreateResult cr in aoResults)
            {
                Console.WriteLine("StatusCode: " + cr.StatusCode);
                Console.WriteLine("ErrorCode: " + cr.ErrorCode);
                Console.WriteLine("StatusMessage: " + cr.StatusMessage);
            }
        }
        public Response Crear(DataExtensionHead dataExtensionHead)
        {
            var response = new Response { Success = true, Warning = false };
            try
            {
                //Create DataExtension object [Subscribers > Data Extensions > Data Extensions]
                DataExtension de = new DataExtension();
                de.CustomerKey = dataExtensionHead.Nombre;
                de.Name = dataExtensionHead.Nombre;
                de.Description = dataExtensionHead.Descripcion;

                //Is this data base table going to house Subscribers?
                if (dataExtensionHead.EsUsadaComoBase)
                {
                    //Is this data base table going to house Subscribers?
                    //de.IsSendable = true;
                    //de.IsSendableSpecified = true;
                    de.IsSendable = dataExtensionHead.EsUsadaComoBase;
                    de.IsSendableSpecified = dataExtensionHead.EsUsadaComoBase;

                    //The Name of the Column in the DE to map to ET
                    de.SendableDataExtensionField = new DataExtensionField();
                    de.SendableDataExtensionField.FieldType = DataExtensionFieldType.Text;
                    de.SendableDataExtensionField.Name = dataExtensionHead.NombreBaseFuente;
                    //The Name of the Attribute in ET to Send to
                    de.SendableSubscriberField = new PartnerAPI.Attribute();
                    de.SendableSubscriberField.Name = dataExtensionHead.NombreBaseMostrar;//If Subscriber Key is turned on this must be Subscriber Key
                }

                List<DataExtensionField> fields = new List<DataExtensionField>();

                foreach (var detalle in dataExtensionHead.DataExtensionDetalleList)
                {
                    //Create the field
                    DataExtensionField field = new DataExtensionField();
                    field.Name = detalle.Campo;
                    field.FieldType = GetTypeDataExtension(detalle.Tipo);
                    field.FieldTypeSpecified = true;
                    field.IsRequired = !detalle.EsNulo;
                    field.IsRequiredSpecified = !detalle.EsNulo;
                    field.IsPrimaryKey = detalle.EsClavePrimaria;
                    field.IsPrimaryKeySpecified = detalle.EsClavePrimaria;
                    if (field.IsPrimaryKey || detalle.Tamanio > 0)
                    {
                        field.MaxLength = detalle.Tamanio;
                        field.MaxLengthSpecified = true;
                    }
                    fields.Add(field);
                }

                de.Fields = fields.ToArray();

                try
                {
                    string cRequestID = String.Empty;
                    string cStatus = String.Empty;

                    //Call the Create method on the Subscriber object
                    CreateResult[] cResults = conexion.ETCliente.Create(new CreateOptions(), new APIObject[] { de }, out cRequestID, out cStatus);

                    if (Constantes.Error == cStatus)
                    {
                        response.Success = false;
                        foreach (CreateResult cr in cResults)
                        {
                            response.Message += "DataExtensionKey: " + dataExtensionHead.Nombre + " | Status Message: " + cr.StatusMessage + "| ";
                        }
                    }

                }
                catch (Exception exCreate)
                {
                    response.Success = false;
                    response.Message = exCreate.Message;
                }
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = ex.Message;
            }
            return response;
        }
        public string Crear(DataExtensionHead dataExtensionHead)
        {
            string respuesta = string.Empty;
            //Create DataExtension object [Subscribers > Data Extensions > Data Extensions]
            DataExtension de = new DataExtension();
            de.CustomerKey = dataExtensionHead.Nombre;
            de.Name = dataExtensionHead.Nombre;
            de.Description = dataExtensionHead.Descripcion;

            //Is this data base table going to house Subscribers?
            if(dataExtensionHead.EsUsadaComoBase)
            {
                //Is this data base table going to house Subscribers?
                //de.IsSendable = true;
                //de.IsSendableSpecified = true;
                de.IsSendable = dataExtensionHead.EsUsadaComoBase;
                de.IsSendableSpecified = dataExtensionHead.EsUsadaComoBase;

                //The Name of the Column in the DE to map to ET
                de.SendableDataExtensionField = new DataExtensionField();
                de.SendableDataExtensionField.FieldType = DataExtensionFieldType.Text;
                de.SendableDataExtensionField.Name = dataExtensionHead.NombreBaseFuente;
                //The Name of the Attribute in ET to Send to
                de.SendableSubscriberField = new PartnerAPI.Attribute();
                de.SendableSubscriberField.Name = dataExtensionHead.NombreBaseMostrar;//If Subscriber Key is turned on this must be Subscriber Key
            }

            List<DataExtensionField> fields = new List<DataExtensionField>();

            foreach (var detalle in dataExtensionHead.DataExtensionDetalleList)
            {
                //Create the field
                DataExtensionField field = new DataExtensionField();
                field.Name = detalle.Campo;
                field.FieldType = GetTypeDataExtension(detalle.Tipo);
                field.FieldTypeSpecified = true;
                field.IsRequired = !detalle.EsNulo;
                field.IsRequiredSpecified = !detalle.EsNulo;
                field.IsPrimaryKey = detalle.EsClavePrimaria;
                field.IsPrimaryKeySpecified = detalle.EsClavePrimaria;
                if (field.IsPrimaryKey || detalle.Tamanio>0)
                {
                    field.MaxLength = detalle.Tamanio;
                    field.MaxLengthSpecified = true;
                }
                fields.Add(field);
            }

            de.Fields = fields.ToArray();

            try
            {
                string cRequestID = String.Empty;
                string cStatus = String.Empty;

                //Call the Create method on the Subscriber object
                CreateResult[] cResults = conexion.ETCliente.Create(new CreateOptions(), new APIObject[] { de }, out cRequestID, out cStatus);

                //Display Results
                respuesta += "Overall Status: " + cStatus;
                respuesta += "<br/>";
                respuesta += "Number of Results: " + cResults.Length;
                respuesta += "<br/>";

                //Loop through each object returned and display the StatusMessage
                foreach (CreateResult cr in cResults)
                {
                    respuesta += "Status Message: " + cr.StatusMessage;
                    respuesta += "<br/>";
                }
            }
            catch (Exception exCreate)
            {
                //Set Message
                respuesta += "<br/><br/>CREATE ERROR:<br/>" + exCreate.Message;
            }

            return respuesta;
        }