Наши бизнес-счета в Acumatica имеют 13 настраиваемых атрибутов для нашего основного класса бизнес-счетов. Я смог успешно сохранить значения в атрибутах на основе примера Acumatica «Добавление записей в бизнес-счета и формы возможностей». Но мне не удалось выяснить, как получить значения с помощью Export.Экспорт атрибутов Business Account с API Acumatica
Во-первых, я попытался использовать формат, аналогичный тому, как было указано поле при их сохранении.
Public Function GetCustomerAttributes(ByVal customerID As String) As String()()
Dim customer As CR303000Content = m_context.CR303000GetSchema()
m_context.CR303000Clear()
Dim idFilter As Filter = New Filter()
idFilter.Field = customer.AccountSummary.BusinessAccount
idFilter.Condition = FilterCondition.Equals
idFilter.Value = customerID
' SIMILAR TO EXAMPLE FOR SAVING
Dim awdField As Field = New Field()
awdField.ObjectName = customer.Attributes.Attribute.ObjectName
awdField.FieldName = "AWD Number"
Dim searchfilters() As Filter = {idFilter}
Dim searchCommands() As Command = {awdField}
Dim searchResult As String()() = m_context.CR303000Export(searchCommands, searchfilters, 0, False, False)
Return searchResult
End Function
Я думал, что это вернет один результат со значением для нашего атрибута с именем «AWD Number». Вместо этого было возвращено 13 результатов, по одному для каждого атрибута, а значение каждого из них было пустым. Я изменил имя поля на client.Attributes.Attribute.FieldName, а затем начал возвращать имя каждого атрибута. Поэтому я подумал, что если я добавил еще одно поле для значения, то я мог бы получить имя и значение в отдельных результатов, например:
Public Function GetCustomerAttributes(ByVal customerID As String) As String()()
Dim customer As CR303000Content = m_context.CR303000GetSchema()
m_context.CR303000Clear()
Dim idFilter As Filter = New Filter()
idFilter.Field = customer.AccountSummary.BusinessAccount
idFilter.Condition = FilterCondition.Equals
idFilter.Value = customerID
Dim awdField As Field = New Field()
awdField.ObjectName = customer.Attributes.Attribute.ObjectName
awdField.FieldName = customer.Attributes.Attribute.FieldName
Dim awdValue As Field = New Field()
awdValue.ObjectName = customer.Attributes.Attribute.ObjectName
awdValue.FieldName = customer.Attributes.Attribute.Value
Dim searchfilters() As Filter = {idFilter}
Dim searchCommands() As Command = {awdField, awdValue}
Dim searchResult As String()() = m_context.CR303000Export(searchCommands, searchfilters, 0, False, False)
Return searchResult
End Function
я получил массив 2-деталь назад для каждого из 13 результатов но значение во втором поле было по-прежнему пустым.
Кто-нибудь знает, как я могу получить значения? Меня не волнует, должен ли я получать их по одному, но я бы предпочел сразу же получить их всех с их именами или кодами, чтобы мне не приходилось полагаться на индексы, всегда оставаясь неизменными. Ниже приведены изображения отладчика, запущенного на моем втором примере и в Acumatica. Благодаря!
Спасибо! Я действительно пробовал этот формат для FieldName в моем первом примере, но определенно не пробовал это ObjectName. Я был убежден, что это должно быть ссылка на атрибуты –