2012-08-28 4 views
0

저장된 검색에서 데이터를 추출하고 각 열을 csv 파일로 가져와야합니다. 이 검색은 일상적으로 300 줄을 넘기 때문에 각 레코드를 별도의 csv 파일로 구문 분석해야합니다 (따라서 300+ csv 파일을 만들어야합니다)NetSuite에서 검색 결과 내에서 다중 조인 된 레코드를 구문 분석하는 가장 효율적인 방법

필요한 모든 열을 사용하여이 작업을 수행했습니다 작고 (10 미만) 결합의 양은 아무도 없었으므로 효율성은 큰 관심사가 아니 었습니다.

이제 저장된 검색에서 42 개의 필드가있는 프로젝트가 있습니다. 검색은 판매 주문을 기반으로하며 고객 레코드 및 품목 레코드에 대한 조인을 포함합니다.

검색은 수식뿐만 아니라 사용자 지정 필드를 광범위하게 사용합니다.

이 모든 것을 수행하는 가장 효율적인 방법은 무엇입니까?

내가 가장 쉬운 방법을 생각하고 (어쩌면 가장 빠른)는

foreach (TransactionSearchRow row in searchResult.searchRowList) 
{ 
    using (var sw = System.IO.File.CreateText(path+filename)) 
    { 
     .... 
    } 
} 

블록을 래핑하는 것입니다,하지만 난 시도하고 내가 예상대로

if (customFieldRef is SelectCustomFieldRef) 
{ 
    SelectCustomFieldRef selectCustomFieldRef = (SelectCustomFieldRef)customFieldRef; 
    if (selectCustomFieldRef.internalId.Equals("custom_field_name")) 
    { 
     .... 
    } 
    } 

을 피하려고 이 코드는이 프로세스에서 너무 길어지게됩니다. 따라서 어떤 아이디어라도 감사 할 것입니다.

답변

1

NetSuite WSDL 생성 API를 사용하면 사용자 정의 필드를 읽을 때 중첩 된 유형/이름 테스트 대신 사용할 수 있습니다. 그것은 단지 짜증나고 당신은 그것으로 살아야합니다.

수동 SOAP로 드롭 다운하여 XML 응답을 직접 파싱 할 수 있습니다. 저에게는 고문처럼 들리지만, 몇 가지 도우미 기능을 사용하면 맞춤 필드를 훨씬 더 논리적으로 읽을 수 있습니다.

다른 대안은 SuiteTalk를 완전히 빼고 SuiteScript RESTlet에서 검색하는 것입니다. JavaScript API는 SOAP API보다 훨씬 간단하고 직접적인 사용자 정의 필드에 대한 액세스를 제공합니다. 호출하는 응용 프로그램에 데이터 (JSON, XML, 일반 텍스트 또는 최종 CSV 일 수도 있음)를 반환하기 전에 서버 측에서 원하는 모든 사전 처리 작업을 수행 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 나는 그만큼 생각하고 방금 그것을 빨아 들였습니다. –