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; }