Hi,
I'm new at eConnect programming, and I wonder if this c# code I'm using to create a salesperson via eConnect has something wrong:
using (eConnectMethods eConnectMethods = new eConnectMethods())
{
try
{
taCreateSalesperson salesperson = new taCreateSalesperson();
//Se mapean los valores del vendedor al objeto taCreateSalesperson de eConnect:
salesperson.SLPRSNID = salespersonWrapper.IdSalesperson;
salesperson.SALSTERR = salespersonWrapper.IdSalesTerritory;
salesperson.EMPLOYID = salespersonWrapper.idEmployee;
salesperson.VENDORID = salespersonWrapper.idVendor;
salesperson.SLPRSNFN = salespersonWrapper.FirstName;
salesperson.SPRSNSMN = salespersonWrapper.MiddleName;
salesperson.SPRSNSLN = salespersonWrapper.LastName;
salesperson.ADDRESS1 = salespersonWrapper.AddressLine1;
salesperson.ADDRESS2 = salespersonWrapper.AddressLine2;
salesperson.ADDRESS3 = salespersonWrapper.AddressLine3;
salesperson.CITY = salespersonWrapper.City;
salesperson.STATE = salespersonWrapper.State;
salesperson.COUNTRY = salespersonWrapper.Country;
salesperson.PHONE1 = salespersonWrapper.Phone1;
salesperson.PHONE2 = salespersonWrapper.Phone2;
salesperson.PHONE3 = salespersonWrapper.Phone3;
salesperson.FAX = salespersonWrapper.Fax;
salesperson.INACTIVE = (short)salespersonWrapper.IsInactive;
salesperson.COMMCODE = salespersonWrapper.CommissionCode;
salesperson.COMPRCNT = salespersonWrapper.CommissionPercentage;
salesperson.STDCPRCT = salespersonWrapper.StandardCommissionPercentage;
salesperson.COMAPPTO = (short)salespersonWrapper.CommissionApplied;
salesperson.COSTTODT = salespersonWrapper.CostToDate;
salesperson.CSTLSTYR = salespersonWrapper.CostLastYear;
salesperson.TTLCOMTD = salespersonWrapper.TotalCommissionsToDate;
salesperson.TTLCOMLY = salespersonWrapper.TotalCommissionsLastYear;
salesperson.COMSLTDT = salespersonWrapper.CommissionedSalesToDate;
salesperson.COMSLLYR = salespersonWrapper.CommissionedSalesLastYear;
salesperson.NCOMSLTD = salespersonWrapper.NonCommissionedSalesToDate;
salesperson.NCOMSLYR = salespersonWrapper.NonCommissionedSalesLastYear;
salesperson.KPCALHST = (short)salespersonWrapper.KeepCalendarHistory;
salesperson.KPERHIST = (short)salespersonWrapper.KeepFiscalYearHistory;
salesperson.MODIFDT = salespersonWrapper.ModifiedDate;
salesperson.CREATDDT = salespersonWrapper.CreateDate;
salesperson.COMMDEST = (short)salespersonWrapper.CommissionDestination;
salesperson.UpdateIfExists = (short)salespersonWrapper.UpdateIfExists;
salesperson.RequesterTrx = (short)salespersonWrapper.RequesterTransaction;
salesperson.USRDEFND1 = salespersonWrapper.Userfield1;
salesperson.USRDEFND2 = salespersonWrapper.Userfield2;
salesperson.USRDEFND3 = salespersonWrapper.Userfield3;
salesperson.USRDEFND4 = salespersonWrapper.Userfield4;
salesperson.USRDEFND5 = salespersonWrapper.Userfield5;
// Asignar el vendedor a un nuevo tipo maestro de vendedores:
RMSalespersonMasterType salespersonMasterType = new RMSalespersonMasterType();
salespersonMasterType.taCreateSalesperson = salesperson;
// Assign the master customer type to a new collection of master customer types.
RMSalespersonMasterType[] salesPersonMasterTypes = { salespersonMasterType };
// Assign the master salesperson types to the eConnectType.
eConnectType eConnectType = new eConnectType();
eConnectType.RMSalespersonMasterType = salesPersonMasterTypes;
// Serialize the master salesperson type in memory.
MemoryStream memoryStream = new MemoryStream();
XmlSerializer xmlSerializer = new XmlSerializer(eConnectType.GetType());
// Serialize the eConnectType.
xmlSerializer.Serialize(memoryStream, eConnectType);
// Reset the position of the memory stream to the start.
memoryStream.Position = 0;
// Create an XmlDocument from the serialized eConnectType in memory.
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load(memoryStream);
memoryStream.Close();
// Call eConnect to process the XmlDocument.
eConnectMethods.CreateEntity(connectionString, xmlDocument.OuterXml);
retorno.Add("La operación de creación fue realizada exitosamente");
retorno.Add("");
}
catch (eConnectException ex)
{
retorno.Add("eConnect Exception - " + ex.ToString());
retorno.Add(ex.StackTrace);
}
catch (System.Security.SecurityException ex)
{
retorno.Add("security message - " + ex.ToString());
retorno.Add(ex.StackTrace);
}
catch (Exception ex)
{
retorno.Add("Exception - " + ex.ToString());
retorno.Add(ex.StackTrace);
}
finally
{
// Call the Dispose method to release the resources
// of the eConnectMethds object
eConnectMethods.Dispose();
}
}
When I execute the method, the following error shows up:
{"The source was not found, but some or all of the event logs could not be searched." To create the source, you need permission to read all event logs in order to verify that the new source name is unique. Inaccessible records: Security. "}
It's apparently an OS internal error, but I use the same structure to send Items in other method, and it works perfectly.
I appreciate all the help you could give to solve this problem. Thanks in beforehand