Думайте о TransactionSearchAdvanced()
как о сохраненном поиске в пользовательском интерфейсе. Вам необходимо указать критерии для использования И столбцы, которые вы хотите вернуть. Перед запуском поиска добавьте следующий код, чтобы указать возвращаемые столбцы. Возможно, вы также захотите добавить критерий для mainLine, равный true
, или получите один результат на строку транзакции, а не один результат на транзакцию.
tranSearch.columns = new TransactionSearchRow()
{
basic = new TransactionSearchRowBasic()
{
tranId = new[] {new SearchColumnStringField()}
}
};
var result = ns.search(tranSearch);
if (result.status.isSuccess)
{
foreach (var rowList in result.searchRowList)
{
if (rowList is TransactionSearchRow row)
{
var tranId = row.basic.tranId[0].searchValue;
var total = row.basic.total[0].searchValue;
Console.WriteLine($"{tranId} - {total}");
}
}
}
Самый простой способ : Поскольку у вас есть внутренний идентификатор, вы можете использовать TransactionSearchBasic()
, чтобы получить всю запись, например, так:
var search = new TransactionSearchBasic()
{
type = new SearchEnumMultiSelectField()
{
@operator = SearchEnumMultiSelectFieldOperator.anyOf,
searchValue = new[] { "_vendorPayment" },
operatorSpecified = true,
},
internalId = new SearchMultiSelectField()
{
@operator = SearchMultiSelectFieldOperator.anyOf,
searchValue = new[] { new RecordRef { internalId = "723212" } },
operatorSpecified = true
}
};
var results = ns.search(search);
foreach (var result in results.recordList)
{
if (result is VendorPayment vendorPayment)
{
Console.WriteLine(vendorPayment.tranId);
}
}