1

タイプ「SearchColumnSelectField」として返される値に SuiteTalk からアクセスしようとしているとします。

((TransactionSearchRow)row).basic.postingPeriod?[0].searchValue.name

注: 例として PostingPeriod を使用しますが、同じ問題を持つ "RecordRef" タイプの "searchValue" を返す他の多くのレコードがあります。

This("searchValue.name") は null になります。ここで詳しく説明した問題と同様ですが、CustomFields とは異なり、返された "searchValue" の "internalId" に基づいてルックアップ値を取得する方法が文書化されていません (通常は移入されます)。さらに複雑なことに、返されたオブジェクトには「typeId」が指定されていないように見えます。次のようになります。

ここに画像の説明を入力

繰り返しになりますが、SuiteTalk("searchValue.name") から NetSuite インターフェイスから表示できるテキスト値にアクセスするにはどうすればよいでしょうか? NetSuite のドキュメントが不足しており、この場合は明らかに"period" 型ですが、それをどのように列挙するのでしょうか? または、この場合、値を取得する別の方法があるのでしょうか?

調べてみましたが、これについてはあまり書かれていません。この問題はこの投稿で言及されていると思います。それ以外は本当に何も見つかりません。私はすでに API ドキュメントを確認しました。ここここで、あまり役に立ちません。私が見ていない主題に関するある種の内部ドキュメントがあるのだろうかと思いますが、私が読んだものからは、実際にはそれほど多くはありません。 .

4

1 に答える 1

2

SuiteTalk のすべての get メソッドと search メソッドを試して、正しいタイプの結果を返すことができるメソッドを見つけたので、答えのように見えるものを見つけました。

NetSuiteService nsService = ... //Your NetSuiteService
IEnumerable<TransactionSearchRow> rows = ... //The results of your query

var lookup = nsService.getList(rows.
                Where(a => a.basic.postingPeriod.Any())
                .Select(a =>
                {
                    var value = a.basic.postingPeriod[0].searchValue;
                    value.type = RecordType.accountingPeriod;
                    value.typeSpecified = true;
                    return value;
                })
                .GroupBy(a => a.internalId)
                .Select(a => a.First())
                .ToArray()).readResponse
                .ToDictionary(a => ((AccountingPeriod)a.record).internalId, 
                    a => ((AccountingPeriod)a.record).periodName);

var allPeriods = rows
    .Select(a => a.basic.postingPeriod.Any() ? 
         lookup[a.basic.postingPeriod[0].searchValue.internalId] : "")
    .ToArray();

このメソッドはここにリストされていますが、実際には十分な詳細が提供されていません。また、理由がわかりません:

Period(Column) = a.basic.postingPeriod(Property) = RecordType.accountingPeriod(Property) = AccountingPeriod(Type)

各タイプが何に対応するかを推測する必要があると思います。期間についてはそれほど悪くはありませんが、他の期間については少し混乱する可能性があります.

これが他の誰かの助けになることを願っています。私にとっては難しいプロセスでした。他の誰かが他の解決策を持っている場合、私はまだ提案を受け付けています。これが最も効率的なデータ取得方法であるかどうかはまだわかりません。

于 2016-11-10T19:58:22.240 に答える