0

我正在尝试在 MS Dynamics GP 中创建客户。这是我的代码:

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

我看到没有添加地址:

在此处输入图像描述

我缺少什么代码?

4

2 回答 2

2

创建客户地址是与创建客户不同的调用。请参阅 Dynamics GP Web 服务参考中的CreateCustomerAddress方法。

        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();
        }
于 2013-05-21T13:30:28.487 回答
0

可以在同一个调用中添加地址。您只需要包含地址:

  var customerKey = new CustomerKey() { Id = "Customer1" };

  var customer = new Customer()
  {
    Key = customerKey,
    ClassKey = new CustomerClassKey() { Id = "(DEFAULT)      " },
    Addresses = new CustomerAddress[] { 
      new CustomerAddress 
      {
        Key = new CustomerAddressKey { Id = "PRIMARY", CustomerKey = customerKey },  
        City = "MyCity",
        PostalCode = "61170",
        Line1 = "Line 1",
        Phone1 = new PhoneNumber{CountryCode = "US", Value = "111"},
        Phone2 = new PhoneNumber{CountryCode = "US", Value = "222"}
      },
      new CustomerAddress 
      {
        Key = new CustomerAddressKey { Id = "SHIPTO", CustomerKey = customerKey },  
        City = "MyCity",
        PostalCode = "2222",
        Line1 = "Line 1",
        Phone1 = new PhoneNumber{CountryCode = "US", Value = "333"},
        Phone2 = new PhoneNumber{CountryCode = "US", Value = "444"}
      }
    },
  };
  var createCustomerPolicy = client.GetPolicyByOperation("CreateCustomer", context);
  client.CreateCustomer(customer, context, createCustomerPolicy);
于 2021-09-15T16:08:26.660 回答