Search code examples
microsoft-dynamicsdynamics-gp

Create Customer No Address - Dynamics GP


I am trying to create a customer in MS Dynamics GP. Here is my code:

public void CreateGPCustomer(JMAOrder jd)
    {
        Customer cu = new Customer();
        cu.ModifiedDate = DateTime.Now;
        cu.IsActive = true;
        cu.Name = "Joseph Jones";
        cu.Shortname = "Joe";
        cu.StatementName = cu.Name;
        CustomerAddress cad = new CustomerAddress();
        cad.City = "Waltham";
        cad.ContactPerson = cu.Name;
        cad.CountryRegion = "US";
        cad.CreatedDate = DateTime.Now;
        cad.LastModifiedDate = DateTime.Now;
        cad.Line1 = "123 Main St";
        cad.Line2 = "12";
        PhoneNumber ph = new PhoneNumber();
        ph.CountryCode = "1";
        ph.Value = "7811234567";
        cad.Phone1 = ph;
        cad.PostalCode = "02452";
        cad.State = "MA";
        cu.Key = MakeCustomerKey("Joseph", "Jones");
        Policy p = wsDynamicsGP.GetPolicyByOperation("CreateCustomer", context);
        wsDynamicsGP.CreateCustomer(cu, context, p);
    }

I see no address has been added:

enter image description here

What code am I missing?


Solution

  • Creating a customer address is a separate call from creating a customer. See the CreateCustomerAddress method in the Dynamics GP Web Services Reference.

            CompanyKey companyKey;
            Context context;
            CustomerKey customerKey;
            CustomerAddressKey customerAddressKey;
            CustomerAddress customerAddress;
            Policy customerAddressCreatePolicy;
    
            // Create an instance of the service
            DynamicsGPClient wsDynamicsGP = new DynamicsGPClient();
    
            // Create a context with which to call the service
            context = new Context();
    
            // Specify which company to use (sample company)
            companyKey = new CompanyKey();
            companyKey.Id = (-1);
    
            // Set up the context object
            context.OrganizationKey = (OrganizationKey)companyKey;
    
            // Create a customer key to specify the customer
            customerKey = new CustomerKey();
            customerKey.Id = "AARONFIT0001";
    
            // Create a customer address key
            customerAddressKey = new CustomerAddressKey();
            customerAddressKey.CustomerKey = customerKey;
            customerAddressKey.Id = "BILLING";
    
            // Create a customer address object
            customerAddress = new CustomerAddress();
            customerAddress.Key = customerAddressKey;
    
            // Populate properties with address information
            customerAddress.Line1 = "11403 45 St. South";
            customerAddress.Line2 = "Billing Dept.";
            customerAddress.City = "Chicago";
            customerAddress.State = "IL";
            customerAddress.CountryRegion = "USA";
    
            // Get the create policy for the customer address
            customerAddressCreatePolicy = wsDynamicsGP.GetPolicyByOperation("CreateCustomerAddress",
            context);
    
            // Create the customer address
            wsDynamicsGP.CreateCustomerAddress(customerAddress, context, customerAddressCreatePolicy);
    
            // Close the service
            if(wsDynamicsGP.State != CommunicationState.Faulted)
            {
                wsDynamicsGP.Close();
            }