我正在使用 Tridion.OutboundEmail.ContentManagement API 来检索和管理联系人详细信息。
检索联系人工作正常,拉回 ExtendedDetails 字典也是如此,但关键字 TcmUriCollection 始终为空。
[Test]
public void GetContacts_via_address_book()
{
var uri = new TcmUri(101, 2, TcmItemTypes.StaticAddressBook);
var addressBook = new StaticAddressBook(uri);
var contacts = addressBook.GetContacts();
foreach (var contact in contacts)
{
var firstName = contact.ExtendedDetails["NAME"].StringValue;
Assert.That(contact.EmailAddress, Is.Not.Empty); // PASS
Assert.That(firstName, Is.Not.Empty); // PASS
Assert.That(contact.Keywords.Count, Is.GreaterThan(0)); // FAIL
}
}
我也尝试过以下方法:
[Test]
public void GetContacts_via_filter()
{
var uri = new TcmUri(101, 2, TcmItemTypes.StaticAddressBook);
var addressBook = new StaticAddressBook(uri);
var filter = new ContactFilter(UserContext.Current);
var contacts = Contact.GetContacts(filter, addressBook);
foreach (var contact in contacts)
{
var firstName = contact.ExtendedDetails["NAME"].StringValue;
Assert.That(contact.EmailAddress, Is.Not.Empty); // PASS
Assert.That(firstName, Is.Not.Empty); // PASS
Assert.That(contact.Keywords.Count, Is.GreaterThan(0)); // FAIL
}
}
我什至可以将关键字添加到联系人的关键字集合并保存,它在 Tridion 中正确显示,但是当我再次检索相同的联系人时,集合再次为空。
有没有人对此 API 有任何经验,和/或知道问题出在哪里?