2015-07-02 3 views
1

Я новичок с API Netsuite.Как получить данные кредитной карты из Netsuite TransactionSearchAdvanced?

Я пытаюсь получить данные кредитового авизо (оплата по счету или поставщику) из TransactionSearchAdvanced.

Вот мой код:

public void GetCreditList() 
    { 

     TransactionSearchAdvanced tsa = new TransactionSearchAdvanced(); 

     tsa.columns = new TransactionSearchRow(); 

     tsa.columns.basic = new TransactionSearchRowBasic(); 
     tsa.columns.basic.tranId = new SearchColumnStringField[] { new SearchColumnStringField() }; 

     tsa.criteria = new TransactionSearch(); 
     tsa.criteria.basic = new TransactionSearchBasic(); 

     tsa.criteria.basic.mainLine = new SearchBooleanField(); 
     tsa.criteria.basic.mainLine.searchValue = true; 
     tsa.criteria.basic.mainLine.searchValueSpecified = true; 

     tsa.criteria.basic.type = new SearchEnumMultiSelectField(); 
     [email protected] = SearchEnumMultiSelectFieldOperator.anyOf; 
     tsa.criteria.basic.type.operatorSpecified = true; 
     tsa.criteria.basic.type.searchValue = new string[] { "_creditMemo" }; 

     this.login(true); 
     SearchResult response = _service.search(tsa); 

     // Process response 
     if (response.status.isSuccess) 
     { 
      if (response.totalRecords > 0) 
      { 
       for (int i = 1; i <= response.totalPages; i++) 
       { 
        processCreditMemoSearchResponse(response); 
       } 
      } 
      else 
      { 
       _out.info("\nNothing found."); 
      } 
     } 
     else 
     { 
      //_out.error(getStatusDetails(response.status)); 
     } 

     Console.ReadLine(); 

    } 


private void processCreditMemoSearchResponse(SearchResult response) 
    { 
     _out.info("\nThe search() operation for customers was run successfully."); 
     _out.info("\n Total Records = " + response.totalRecords); 
     _out.info(" Total Pages = " + response.totalPages); 
     _out.info(" Page Size = " + response.pageSize); 
     _out.info(" Current Page Index = " + response.pageIndex); 

     //Record[] records = response.recordList; 

     SearchRow[] records = response.searchRowList; 

     CreditMemo creditMemo; 
     for (int i = 0, j = (response.pageIndex - 1) * _pageSize; i < records.Length; i++, j++) 
     { 
      creditMemo = (CreditMemo)records[i]; 
      _out.info(
       "\n Record[" + j + "]: " + 
       "\n internalId=" + creditMemo.internalId); 
     } 
    } 

И я получаю ошибку «не удается преобразовать SearchRow в CreditMemo»

Я не знаю, что я должен делать дальше.

Любой совет стоит! Спасибо!

ответ

0

Я нашел свое решение!

public void GetInvoiceList() 
    { 

     TransactionSearch transactionsSearch = new TransactionSearch(); 
     TransactionSearchBasic transactionSearchBasic = new TransactionSearchBasic(); 

     transactionSearchBasic.type = new SearchEnumMultiSelectField(); 
     [email protected] = SearchEnumMultiSelectFieldOperator.anyOf; 
     transactionSearchBasic.type.operatorSpecified = true; 
     transactionSearchBasic.type.searchValue = new string[] { "_invoice" }; 

     transactionsSearch.basic = transactionSearchBasic; 

     this.login(true); 

     SearchResult result = _service.search(transactionsSearch); 
     List<Invoice> invoiceList = new List<Invoice>(); 

     if (result.status.isSuccess) 
     { 
      //RecordList recordList = result.recordList; 
      Record[] records = result.recordList; 

      if (records != null && records.Length != 0) 
      { 
       for (int i = 0; i < records.Length; i++) 
       { 
        Invoice invoice = (Invoice)records[i]; 
        invoiceList.Add(invoice); 
       } 
      } 
     } 


     Console.ReadLine(); 

    } 
Смежные вопросы