public Customer getCustomer(String customerId) { eConnectMethods eConnect = new eConnectMethods(); String address1 = ""; String address2 = ""; Customer result = new Customer(); result.CustomerID = customerId; try { eConnectType myEConnectType = new eConnectType(); RQeConnectOutType myReqType = new RQeConnectOutType(); eConnectOut myeConnectOut = new eConnectOut(); myeConnectOut.ACTION = 1; myeConnectOut.DOCTYPE = "Customer"; myeConnectOut.OUTPUTTYPE = 2; myeConnectOut.INDEX1FROM = customerId; myeConnectOut.INDEX1TO = customerId; myeConnectOut.FORLIST = 1; // Add the eConnectOut XML node object to the RQeConnectOutType schema object myReqType.eConnectOut = myeConnectOut; // Add the RQeConnectOutType schema object to the eConnect document object RQeConnectOutType[] myReqOutType = { myReqType }; myEConnectType.RQeConnectOutType = myReqOutType; // Serialize the eConnect document object to a memory stream MemoryStream myMemStream = new MemoryStream(); XmlSerializer mySerializer = new XmlSerializer(myEConnectType.GetType()); mySerializer.Serialize(myMemStream, myEConnectType); myMemStream.Position = 0; // Load the serialized eConnect document object into an XML document object XmlTextReader xmlreader = new XmlTextReader(myMemStream); XmlDocument myXmlDocument = new XmlDocument(); myXmlDocument.Load(xmlreader); // Call the eConnect_Requester method of the eConnectMethods object to retrieve specified XML data string reqDoc = eConnect.eConnect_Requester(sConnectionString, EnumTypes.ConnectionStringType.SqlClient, myXmlDocument.OuterXml); XmlDocument resultDocument = new XmlDocument(); resultDocument.LoadXml(reqDoc); XmlNodeList customerNodeList = resultDocument.GetElementsByTagName("Customer"); if (customerNodeList.Count == 0) return null; else { //Here we have retrieved the customer document foreach (XmlNode node in customerNodeList[0]) { if (node.Name.Equals("ADDRESS1")) address1 = node.InnerText; if (node.Name.Equals("ADDRESS2")) address2 = node.InnerText; else if (node.Name.Equals("ADRSCODE")) result.CustomerAddress.AddressCode = node.InnerText; else if (node.Name.Equals("CITY")) result.CustomerAddress.City = node.InnerText; else if (node.Name.Equals("CNTCPRSN")) result.CustomerAddress.AddressContact = node.InnerText; else if (node.Name.Equals("COUNTRY")) result.CustomerAddress.Country = node.InnerText; else if (node.Name.Equals("CUSTCLAS")) result.CustomerClass = node.InnerText; else if (node.Name.Equals("CUSTNAME")) result.CustomerName = node.InnerText; else if (node.Name.Equals("PHONE1")) result.CustomerAddress.PhoneNumber1 = node.InnerText; else if (node.Name.Equals("PHONE2")) result.CustomerAddress.PhoneNumber2 = node.InnerText; else if (node.Name.Equals("FAX")) result.CustomerAddress.FaxNumber = node.InnerText; else if (node.Name.Equals("STATE")) result.CustomerAddress.State = node.InnerText; else if (node.Name.Equals("ZIP")) result.CustomerAddress.Zipcode = node.InnerText; else if (node.Name.Equals("STMTNAME")) result.StatementName = node.InnerText; else if (node.Name.Equals("SHRTNAME")) result.ShortName = node.InnerText; else if (node.Name.Equals("PRBTADCD")) result.BillTo = node.InnerText; else if (node.Name.Equals("PRSTADCD")) result.ShipTo = node.InnerText; else if (node.Name.Equals("STADDRCD")) result.StatementTo = node.InnerText; else if (node.Name.Equals("USERDEF1")) result.Type = node.InnerText; else if (node.Name.Equals("USERDEF2")) result.StudentStatus = node.InnerText; else if (node.Name.Equals("INACTIVE")) if (node.InnerText.Equals("1")) result.Inactive = true; } } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } result.CustomerAddress.AddressString = address1 + address2; return result; }
static void Main() { try { // Create an eConnect document type object eConnectType myEConnectType = new eConnectType(); // Create a RQeConnectOutType schema object RQeConnectOutType myReqType = new RQeConnectOutType(); // Create an eConnectOut XML node object eConnectOut myeConnectOut = new eConnectOut(); // Populate the eConnectOut XML node elements myeConnectOut.ACTION = 1; myeConnectOut.DOCTYPE = "Customer"; myeConnectOut.OUTPUTTYPE = 2; myeConnectOut.INDEX1FROM = "AARONFIT0001"; myeConnectOut.INDEX1TO = "AARONFIT0001"; myeConnectOut.FORLIST = 1; // Add the eConnectOut XML node object to the RQeConnectOutType schema object myReqType.eConnectOut = myeConnectOut; // Add the RQeConnectOutType schema object to the eConnect document object RQeConnectOutType [] myReqOutType = {myReqType}; myEConnectType.RQeConnectOutType = myReqOutType; // Serialize the eConnect document object to a memory stream MemoryStream myMemStream = new MemoryStream(); XmlSerializer mySerializer = new XmlSerializer(myEConnectType.GetType()); mySerializer.Serialize(myMemStream, myEConnectType); myMemStream.Position = 0; // Load the serialized eConnect document object into an XML document object XmlTextReader xmlreader = new XmlTextReader(myMemStream); XmlDocument myXmlDocument = new XmlDocument(); myXmlDocument.Load(xmlreader); // Create a connection string to specify the Microsoft Dynamics GP server and database // Change the data source and initial catalog to specify your server and database string sConnectionString = @"data source=MYSERVER;initial catalog=TWO;integrated security=SSPI;persist security info=False;packet size=4096"; // Create an eConnectMethods object eConnectMethods requester = new eConnectMethods(); // Call the eConnect_Requester method of the eConnectMethods object to retrieve specified XML data string reqDoc = requester.eConnect_Requester(sConnectionString, EnumTypes.ConnectionStringType.SqlClient, myXmlDocument.OuterXml); // Display the result of the eConnect_Requester method call Console.Write(reqDoc); } catch (Exception ex) {// Dislay any errors that occur to the console Console.Write(ex.ToString()); } }
/// <summary> /// Function to Retreive Data from GP Tables using eConnect, Return a string in XML Format /// </summary> /// <param name="DocumentType">Purchase_Order_Transaction, Sales_Order_Transaction</param> /// <param name="fromShadowTable">Direct From GP Tables or From EConnect Out</param> /// <param name="OutputType">0=List,1=Master document, 2=Complete document,3=Remove only</param> /// <param name="Action">Use this element when you request data from the shadow table. The value controls the type of data that is returned. /// 0=All documents /// 1=Insertions /// 2=Updates /// 3=Deletions /// 4=Returns all insertions and updates as separate documents for each item. /// 5=Combines all insertions and updates into one document for each item </param> /// <param name="WhereCondition">Custom Condition</param> /// <returns></returns> public static string RetreiveData(string DocumentType, bool fromShadowTable, int OutputType, int Action, string WhereCondition, bool RemoveShadow) { // Create a connection string to specify the Microsoft Dynamics GP server and database //string cnnString = "data source=(local);initial catalog=TWO;integrated security=SSPI;persist security info=False;packet size=4096"; //string cnnString = "data source=WEBMASTERNT02;initial catalog=TWO;integrated security=SSPI;persist security info=False;packet size=4096"; //string cnnString = "Data Source=192.168.1.4;initial catalog=TWO;integrated security=SSPI;persist security info=False;packet size=4096"; //string cnnString = ConfigurationManager.AppSettings["GPCnnString"]; try { // Create an eConnect document type object eConnectType myEConnectType = new eConnectType(); // Create a RQeConnectOutType schema object RQeConnectOutType myReqType = new RQeConnectOutType(); // Create an eConnectOut XML node object eConnectOut myeConnectOut = new eConnectOut(); // Populate the eConnectOut XML node elements myeConnectOut.ACTION = Action; myeConnectOut.DOCTYPE = DocumentType; myeConnectOut.OUTPUTTYPE = OutputType; myeConnectOut.FORLIST = fromShadowTable ? 0 : 1; myeConnectOut.REMOVE = RemoveShadow ? 1 : 0; myeConnectOut.WhereClause = WhereCondition; // Add the eConnectOut XML node object to the RQeConnectOutType schema object myReqType.eConnectOut = myeConnectOut; // Add the RQeConnectOutType schema object to the eConnect document object RQeConnectOutType[] myReqOutType = { myReqType }; myEConnectType.RQeConnectOutType = myReqOutType; // Serialize the eConnect document object to a memory stream MemoryStream myMemStream = new MemoryStream(); XmlSerializer mySerializer = new XmlSerializer(myEConnectType.GetType()); mySerializer.Serialize(myMemStream, myEConnectType); myMemStream.Position = 0; // Load the serialized eConnect document object into an XML document object XmlTextReader xmlreader = new XmlTextReader(myMemStream); XmlDocument myXmlDocument = new XmlDocument(); myXmlDocument.Load(xmlreader); // Create an eConnectMethods object eConnectMethods requester = new eConnectMethods(); //string outerXml = myXmlDocument.OuterXml; //int rem = 0x02; //outerXml = outerXml.Replace((char)rem, ' '); // Call the eConnect_Requester method of the eConnectMethods object to retrieve specified XML data return(requester.eConnect_Requester(FactoryCompany.ErpConnection.CnnString, EnumTypes.ConnectionStringType.SqlClient, myXmlDocument.OuterXml)); // outerXml); } catch (eConnectException ex) { // Dislay any errors that occur to the console throw new Exception(ex.Message); } catch (Exception e) { // Dislay any errors that occur to the console throw new Exception(e.Message); } }
/// <summary> /// Function to Retreive Data from GP Tables using eConnect, Return a string in XML Format /// </summary> /// <param name="DocumentType">Purchase_Order_Transaction, Sales_Order_Transaction</param> /// <param name="fromShadowTable">Direct From GP Tables or From EConnect Out</param> /// <param name="OutputType">0=List,1=Master document, 2=Complete document,3=Remove only</param> /// <param name="Action">Use this element when you request data from the shadow table. The value controls the type of data that is returned. /// 0=All documents /// 1=Insertions /// 2=Updates /// 3=Deletions /// 4=Returns all insertions and updates as separate documents for each item. /// 5=Combines all insertions and updates into one document for each item </param> /// <param name="WhereCondition">Custom Condition</param> /// <returns></returns> public static string RetreiveData(string DocumentType, bool fromShadowTable, int OutputType, int Action, string WhereCondition, bool RemoveShadow) { // Create a connection string to specify the Microsoft Dynamics GP server and database //string cnnString = "data source=(local);initial catalog=TWO;integrated security=SSPI;persist security info=False;packet size=4096"; //string cnnString = "data source=WEBMASTERNT02;initial catalog=TWO;integrated security=SSPI;persist security info=False;packet size=4096"; //string cnnString = "Data Source=192.168.1.4;initial catalog=TWO;integrated security=SSPI;persist security info=False;packet size=4096"; //string cnnString = ConfigurationManager.AppSettings["GPCnnString"]; try { // Create an eConnect document type object eConnectType myEConnectType = new eConnectType(); // Create a RQeConnectOutType schema object RQeConnectOutType myReqType = new RQeConnectOutType(); // Create an eConnectOut XML node object eConnectOut myeConnectOut = new eConnectOut(); // Populate the eConnectOut XML node elements myeConnectOut.ACTION = Action; myeConnectOut.DOCTYPE = DocumentType; myeConnectOut.OUTPUTTYPE = OutputType; myeConnectOut.FORLIST = fromShadowTable ? 0 : 1; myeConnectOut.REMOVE = RemoveShadow ? 1 : 0; myeConnectOut.WhereClause = WhereCondition; // Add the eConnectOut XML node object to the RQeConnectOutType schema object myReqType.eConnectOut = myeConnectOut; // Add the RQeConnectOutType schema object to the eConnect document object RQeConnectOutType[] myReqOutType = { myReqType }; myEConnectType.RQeConnectOutType = myReqOutType; // Serialize the eConnect document object to a memory stream MemoryStream myMemStream = new MemoryStream(); XmlSerializer mySerializer = new XmlSerializer(myEConnectType.GetType()); mySerializer.Serialize(myMemStream, myEConnectType); myMemStream.Position = 0; // Load the serialized eConnect document object into an XML document object XmlTextReader xmlreader = new XmlTextReader(myMemStream); XmlDocument myXmlDocument = new XmlDocument(); myXmlDocument.Load(xmlreader); // Create an eConnectMethods object eConnectMethods requester = new eConnectMethods(); //string outerXml = myXmlDocument.OuterXml; //int rem = 0x02; //outerXml = outerXml.Replace((char)rem, ' '); // Call the eConnect_Requester method of the eConnectMethods object to retrieve specified XML data return requester.eConnect_Requester(FactoryCompany.ErpConnection.CnnString, EnumTypes.ConnectionStringType.SqlClient, myXmlDocument.OuterXml); // outerXml); } catch (eConnectException ex) { // Dislay any errors that occur to the console throw new Exception(ex.Message); } catch (Exception e) { // Dislay any errors that occur to the console throw new Exception(e.Message); } }
public Customer getCustomer(String customerId) { eConnectMethods eConnect = new eConnectMethods(); String address1 = ""; String address2 = ""; Customer result = new Customer(); result.CustomerID = customerId; try { eConnectType myEConnectType = new eConnectType(); RQeConnectOutType myReqType = new RQeConnectOutType(); eConnectOut myeConnectOut = new eConnectOut(); myeConnectOut.ACTION = 1; myeConnectOut.DOCTYPE = "Customer"; myeConnectOut.OUTPUTTYPE = 2; myeConnectOut.INDEX1FROM = customerId; myeConnectOut.INDEX1TO = customerId; myeConnectOut.FORLIST = 1; // Add the eConnectOut XML node object to the RQeConnectOutType schema object myReqType.eConnectOut = myeConnectOut; // Add the RQeConnectOutType schema object to the eConnect document object RQeConnectOutType[] myReqOutType = { myReqType }; myEConnectType.RQeConnectOutType = myReqOutType; // Serialize the eConnect document object to a memory stream MemoryStream myMemStream = new MemoryStream(); XmlSerializer mySerializer = new XmlSerializer(myEConnectType.GetType()); mySerializer.Serialize(myMemStream, myEConnectType); myMemStream.Position = 0; // Load the serialized eConnect document object into an XML document object XmlTextReader xmlreader = new XmlTextReader(myMemStream); XmlDocument myXmlDocument = new XmlDocument(); myXmlDocument.Load(xmlreader); // Call the eConnect_Requester method of the eConnectMethods object to retrieve specified XML data string reqDoc = eConnect.eConnect_Requester(sConnectionString, EnumTypes.ConnectionStringType.SqlClient, myXmlDocument.OuterXml); XmlDocument resultDocument = new XmlDocument(); resultDocument.LoadXml(reqDoc); XmlNodeList customerNodeList = resultDocument.GetElementsByTagName("Customer"); if (customerNodeList.Count == 0) { return(null); } else { //Here we have retrieved the customer document foreach (XmlNode node in customerNodeList[0]) { if (node.Name.Equals("ADDRESS1")) { address1 = node.InnerText; } if (node.Name.Equals("ADDRESS2")) { address2 = node.InnerText; } else if (node.Name.Equals("ADRSCODE")) { result.CustomerAddress.AddressCode = node.InnerText; } else if (node.Name.Equals("CITY")) { result.CustomerAddress.City = node.InnerText; } else if (node.Name.Equals("CNTCPRSN")) { result.CustomerAddress.AddressContact = node.InnerText; } else if (node.Name.Equals("COUNTRY")) { result.CustomerAddress.Country = node.InnerText; } else if (node.Name.Equals("CUSTCLAS")) { result.CustomerClass = node.InnerText; } else if (node.Name.Equals("CUSTNAME")) { result.CustomerName = node.InnerText; } else if (node.Name.Equals("PHONE1")) { result.CustomerAddress.PhoneNumber1 = node.InnerText; } else if (node.Name.Equals("PHONE2")) { result.CustomerAddress.PhoneNumber2 = node.InnerText; } else if (node.Name.Equals("FAX")) { result.CustomerAddress.FaxNumber = node.InnerText; } else if (node.Name.Equals("STATE")) { result.CustomerAddress.State = node.InnerText; } else if (node.Name.Equals("ZIP")) { result.CustomerAddress.Zipcode = node.InnerText; } else if (node.Name.Equals("STMTNAME")) { result.StatementName = node.InnerText; } else if (node.Name.Equals("SHRTNAME")) { result.ShortName = node.InnerText; } else if (node.Name.Equals("PRBTADCD")) { result.BillTo = node.InnerText; } else if (node.Name.Equals("PRSTADCD")) { result.ShipTo = node.InnerText; } else if (node.Name.Equals("STADDRCD")) { result.StatementTo = node.InnerText; } else if (node.Name.Equals("USERDEF1")) { result.Type = node.InnerText; } else if (node.Name.Equals("USERDEF2")) { result.StudentStatus = node.InnerText; } else if (node.Name.Equals("INACTIVE")) { if (node.InnerText.Equals("1")) { result.Inactive = true; } } } } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } result.CustomerAddress.AddressString = address1 + address2; return(result); }