亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

您如何使用 TransactionSearch 進行搜索?

您如何使用 TransactionSearch 進行搜索?

C#
莫回無 2022-12-24 10:15:32
您如何找到具有供應商付款內部 ID 的供應商付款(交易)?我很難弄清楚交易搜索是如何工作的。下面是我的代碼:它返回成功但沒有結果using (var serviceClient = new ServiceClient(token))        {            var tranSearch = new TransactionSearchAdvanced();            var recordRefs = new List<RecordRef>();            recordRefs.Add(new RecordRef()            {                internalId = @"723212",                type = RecordType.vendorPayment,                typeSpecified = true            });            var types = new List<string>();            types.Add(@"_vendorPayment");            tranSearch.criteria = new TransactionSearch()            {                basic = new TransactionSearchBasic()                {                    internalId = new SearchMultiSelectField()                    {                        @operator = SearchMultiSelectFieldOperator.anyOf,                        operatorSpecified = true,                        searchValue = recordRefs.ToArray()                    },                    type = new SearchEnumMultiSelectField()                    {                        @operator = SearchEnumMultiSelectFieldOperator.anyOf,                        operatorSpecified = true,                        searchValue = types.ToArray()                    }                                        }                                };                            var result = serviceClient.search(tranSearch);        }搜索結果返回成功,但recordlist 中沒有記錄,searchrowlist 中沒有搜索。
查看完整描述

1 回答

?
LEATH

TA貢獻1936條經驗 獲得超7個贊

想象一下TransactionSearchAdvanced()UI 中保存的搜索。您需要指定要使用的條件以及要返回的列。在運行搜索之前,添加以下代碼以指定要返回的列。您可能還想為 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}");

        }

    }

}

最簡單的方法:因為你有內部 ID,你可以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);

    }

}


查看完整回答
反對 回復 2022-12-24
  • 1 回答
  • 0 關注
  • 103 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號