In this post i would be demonstrating how to use out of box Customer Service (CustCustomerService) for the following operations:
using CustService = ConsumeAXServices.CustomerServiceRef;
Here is the C# method to Read a Customer:
public CustService.AxdCustomer CustomerRead(ref CustService.EntityKey[] entityKeyList, string accNum = "US-003" , Boolean halt = true)
{
CustService.CustomerServiceClient proxy = null;
CustService.AxdCustomer custDoc = null;
CustService.CallContext callContext = null;
try
{
custDoc = new CustService.AxdCustomer();
CustService.EntityKey[] custKeyList = new CustService.EntityKey[1];
CustService.EntityKey custKey = new CustService.EntityKey();
custKey.KeyData = new CustService.KeyField[1];
CustService.KeyField custAccountNum = new CustService.KeyField();
custAccountNum.Field = "AccountNum";
custAccountNum.Value = accNum;
custKey.KeyData[0] = custAccountNum;
custKeyList[0] = custKey;
callContext = new CustService.CallContext() { Company = "usmf" };
proxy = new CustService.CustomerServiceClient();
custDoc = proxy.read(callContext, custKeyList);
Console.WriteLine("Cust Num - " + custDoc.CustTable[0].AccountNum);
Console.WriteLine("Cust CreditStatus - " + custDoc.CustTable[0].CreditRating);
                
if (halt)
Console.ReadLine();
entityKeyList = custKeyList;
                
}
catch (Exception ex)
{
Console.WriteLine("Error - " + ex.Message);
proxy.Abort();
Console.ReadLine();
}
finally
{
if (proxy != null)
{
proxy.Close();
proxy = null;
}
}
return custDoc;
}
public void CreateCustomer(string accNum = "SanCus003", string custName = "Santosh Cust 003")
{
CustService.CustomerServiceClient proxy = null;
CustService.AxdCustomer custDoc;
CustService.CallContext callContext = null;
CustService.AxdEntity_CustTable custTable = null;
CustService.AxdEntity_DirParty_DirOrganization dirPartyOrg = null;
CustService.AxdEntity_OrganizationName orgName = null;
try
{
custDoc = new CustService.AxdCustomer();
custTable = new CustService.AxdEntity_CustTable() { AccountNum = accNum, CustGroup = "20" };
                
dirPartyOrg = new CustService.AxdEntity_DirParty_DirOrganization() { NumberOfEmployees = 11, NumberOfEmployeesSpecified = true };
orgName = new CustService.AxdEntity_OrganizationName { Name = custName };
dirPartyOrg.OrganizationName = new CustService.AxdEntity_OrganizationName[] { orgName };
custDoc.CustTable = new CustService.AxdEntity_CustTable[] { custTable};
custTable.DirParty = new CustService.AxdEntity_DirParty_DirPartyTable[] { dirPartyOrg };
callContext = new CustService.CallContext() { Company = "usmf" };
proxy = new CustService.CustomerServiceClient();
var entityKeyList = proxy.create(callContext, custDoc);
var keyField = entityKeyList.FirstOrDefault().KeyData.FirstOrDefault();
Console.WriteLine("Key Field - " + keyField.Field + "Key Value - " + keyField.Value);
Console.ReadLine();
}
// removed Catch and finally block to save the space
                
               
                
                
            
      
{
CustService.CustomerServiceClient proxy = null;
CustService.CallContext callContext = null;
CustService.QueryCriteria qc = null;
CustService.AxdCustomer custDoc = null;
CustService.AxdEntity_CustTable[] custTableList = null;
try
{
CustService.CriteriaElement criteria = new CustService.CriteriaElement()
{ DataSourceName = "CustTable", FieldName = "CustGroup", Value1 = custGrp };
CustService.CriteriaElement[] criteriaList = new CustService.CriteriaElement[] { criteria };
qc = new CustService.QueryCriteria();
qc.CriteriaElement = criteriaList;
callContext = new CustService.CallContext() { Company = "usmf" };
proxy = new CustService.CustomerServiceClient();
custDoc = proxy.find(callContext, qc);
custTableList = custDoc.CustTable;
foreach (var custTable in custTableList)
{
Console.WriteLine("Customer - {0} , Group - {1}" , custTable.Name, custTable.CustGroup);
}
Console.ReadLine();
}
// removed Catch and finally block to save the space
{
CustService.CustomerServiceClient proxy = null;
CustService.CallContext callContext = null;
CustService.QueryCriteria qc = null;
CustService.EntityKey[] custKeyList = null;
try
{
CustService.CriteriaElement criteria = new CustService.CriteriaElement() { DataSourceName = "CustTable", FieldName = "CustGroup", Value1 = custGrp };
CustService.CriteriaElement[] criteriaList = new CustService.CriteriaElement[] { criteria };
qc = new CustService.QueryCriteria();
qc.CriteriaElement = criteriaList;
callContext = new CustService.CallContext() { Company = "usmf" };
proxy = new CustService.CustomerServiceClient();
custKeyList = proxy.findKeys(callContext, qc);
foreach (var custKey in custKeyList)
{
CustService.KeyField keyField = custKey.KeyData.FirstOrDefault();
Console.WriteLine("Key Field - {0} , Key Value - {1}", keyField.Field, keyField.Value);
}
Console.ReadLine();
}
- Read a Customer
 - Create a Customer
 - Update a Customer
 - Delete a Customer
 - Find Customers
 - FindKeys for Customers
 
CustService is the alias name i used in my code to refer Customer Service;
using CustService = ConsumeAXServices.CustomerServiceRef;
Here is the C# method to Read a Customer:
public CustService.AxdCustomer CustomerRead(ref CustService.EntityKey[] entityKeyList, string accNum = "US-003" , Boolean halt = true)
{
CustService.CustomerServiceClient proxy = null;
CustService.AxdCustomer custDoc = null;
CustService.CallContext callContext = null;
try
{
custDoc = new CustService.AxdCustomer();
CustService.EntityKey[] custKeyList = new CustService.EntityKey[1];
CustService.EntityKey custKey = new CustService.EntityKey();
custKey.KeyData = new CustService.KeyField[1];
CustService.KeyField custAccountNum = new CustService.KeyField();
custAccountNum.Field = "AccountNum";
custAccountNum.Value = accNum;
custKey.KeyData[0] = custAccountNum;
custKeyList[0] = custKey;
callContext = new CustService.CallContext() { Company = "usmf" };
proxy = new CustService.CustomerServiceClient();
custDoc = proxy.read(callContext, custKeyList);
Console.WriteLine("Cust Num - " + custDoc.CustTable[0].AccountNum);
Console.WriteLine("Cust CreditStatus - " + custDoc.CustTable[0].CreditRating);
if (halt)
Console.ReadLine();
entityKeyList = custKeyList;
}
catch (Exception ex)
{
Console.WriteLine("Error - " + ex.Message);
proxy.Abort();
Console.ReadLine();
}
finally
{
if (proxy != null)
{
proxy.Close();
proxy = null;
}
}
return custDoc;
}
Here is the C# method to Create a Customer:
public void CreateCustomer(string accNum = "SanCus003", string custName = "Santosh Cust 003")
{
CustService.CustomerServiceClient proxy = null;
CustService.AxdCustomer custDoc;
CustService.CallContext callContext = null;
CustService.AxdEntity_CustTable custTable = null;
CustService.AxdEntity_DirParty_DirOrganization dirPartyOrg = null;
CustService.AxdEntity_OrganizationName orgName = null;
try
{
custDoc = new CustService.AxdCustomer();
custTable = new CustService.AxdEntity_CustTable() { AccountNum = accNum, CustGroup = "20" };
dirPartyOrg = new CustService.AxdEntity_DirParty_DirOrganization() { NumberOfEmployees = 11, NumberOfEmployeesSpecified = true };
orgName = new CustService.AxdEntity_OrganizationName { Name = custName };
dirPartyOrg.OrganizationName = new CustService.AxdEntity_OrganizationName[] { orgName };
custDoc.CustTable = new CustService.AxdEntity_CustTable[] { custTable};
custTable.DirParty = new CustService.AxdEntity_DirParty_DirPartyTable[] { dirPartyOrg };
callContext = new CustService.CallContext() { Company = "usmf" };
proxy = new CustService.CustomerServiceClient();
var entityKeyList = proxy.create(callContext, custDoc);
var keyField = entityKeyList.FirstOrDefault().KeyData.FirstOrDefault();
Console.WriteLine("Key Field - " + keyField.Field + "Key Value - " + keyField.Value);
Console.ReadLine();
}
// removed Catch and finally block to save the space
Here is the C# method to Update a Customer:
public void UpdateCustomer(string accNum = "SanCus002", string CustName = "Santosh Cust 002 - Update3")
        {
            CustService.CustomerServiceClient proxy = null;
            CustService.AxdCustomer custDoc = null;
            CustService.CallContext callContext = null;
            CustService.AxdEntity_CustTable custTable = null;
            CustService.AxdEntity_DirParty_DirOrganization dirPartyOrg = null;
            CustService.AxdEntity_OrganizationName orgName = null;
            CustService.EntityKey[] entityKeyList = null; 
            try
            {
               custDoc = this.CustomerRead(ref entityKeyList, accNum, false);
               custTable = custDoc.CustTable[0];
               custTable.CreditMax = 10000;
               custTable.action = CustService.AxdEnum_AxdEntityAction.update;
               custTable.actionSpecified = true;               
               dirPartyOrg = custDoc.CustTable[0].DirParty[0] as CustService.AxdEntity_DirParty_DirOrganization;                               
               dirPartyOrg.NumberOfEmployees = 12;
               dirPartyOrg.NumberOfEmployeesSpecified = true;
               dirPartyOrg.action = CustService.AxdEnum_AxdEntityAction.update;
               dirPartyOrg.actionSpecified = true;                         
               orgName =  dirPartyOrg.OrganizationName[0];
               orgName.updateMode = CustService.AxdEnum_ValidTimeStateUpdate.Correction;
               orgName.updateModeSpecified = true;
               orgName.Name = CustName;
               orgName.action = CustService.AxdEnum_AxdEntityAction.update;
               orgName.actionSpecified = true;
               callContext = new CustService.CallContext() { Company = "usmf" };
               proxy = new CustService.CustomerServiceClient();
               proxy.update(callContext, entityKeyList, custDoc);
               Console.WriteLine("Customer Update Success");
               Console.ReadLine();
            }
// removed Catch and finally block to save the space
Here is the C# method to Delete a Customer (customer shouldn't have any transactions assoicated):
public void DeleteCustomer(string accNum = "US-003")
        {
            CustService.CustomerServiceClient proxy = null;
            CustService.CallContext callContext = null;
            try
            {
                CustService.EntityKey[] custKeyList = new CustService.EntityKey[1];
                CustService.EntityKey custKey = new CustService.EntityKey();
                custKey.KeyData = new CustService.KeyField[1];
                CustService.KeyField custAccountNum = new CustService.KeyField();
                custAccountNum.Field = "AccountNum";
                custAccountNum.Value = accNum;
                custKey.KeyData[0] = custAccountNum;
                custKeyList[0] = custKey;
                callContext = new CustService.CallContext() { Company = "usmf" };
                proxy = new CustService.CustomerServiceClient();
                proxy.delete(callContext, custKeyList);
                Console.WriteLine("Customer Delete Success - " + accNum);
                Console.ReadLine();
            }
// removed Catch and finally block to save the space
Here is the C# method to Find Customers based on a Criteria
public void FindCustomers(string custGrp = "10"){
CustService.CustomerServiceClient proxy = null;
CustService.CallContext callContext = null;
CustService.QueryCriteria qc = null;
CustService.AxdCustomer custDoc = null;
CustService.AxdEntity_CustTable[] custTableList = null;
try
{
CustService.CriteriaElement criteria = new CustService.CriteriaElement()
{ DataSourceName = "CustTable", FieldName = "CustGroup", Value1 = custGrp };
CustService.CriteriaElement[] criteriaList = new CustService.CriteriaElement[] { criteria };
qc = new CustService.QueryCriteria();
qc.CriteriaElement = criteriaList;
callContext = new CustService.CallContext() { Company = "usmf" };
proxy = new CustService.CustomerServiceClient();
custDoc = proxy.find(callContext, qc);
custTableList = custDoc.CustTable;
foreach (var custTable in custTableList)
{
Console.WriteLine("Customer - {0} , Group - {1}" , custTable.Name, custTable.CustGroup);
}
Console.ReadLine();
}
// removed Catch and finally block to save the space
Here is the C# method to FindKeys of Customers based on a Criteria:
public void FindKeysCustomer(string custGrp = "10"){
CustService.CustomerServiceClient proxy = null;
CustService.CallContext callContext = null;
CustService.QueryCriteria qc = null;
CustService.EntityKey[] custKeyList = null;
try
{
CustService.CriteriaElement criteria = new CustService.CriteriaElement() { DataSourceName = "CustTable", FieldName = "CustGroup", Value1 = custGrp };
CustService.CriteriaElement[] criteriaList = new CustService.CriteriaElement[] { criteria };
qc = new CustService.QueryCriteria();
qc.CriteriaElement = criteriaList;
callContext = new CustService.CallContext() { Company = "usmf" };
proxy = new CustService.CustomerServiceClient();
custKeyList = proxy.findKeys(callContext, qc);
foreach (var custKey in custKeyList)
{
CustService.KeyField keyField = custKey.KeyData.FirstOrDefault();
Console.WriteLine("Key Field - {0} , Key Value - {1}", keyField.Field, keyField.Value);
}
Console.ReadLine();
}
// removed Catch and finally block to save the space
No comments:
Post a Comment