2016-07-28 3 views
1

레코드 유형 (예 : InventoryItem, SalesOrder)으로 지정된 레코드 목록을 검색하는 기존 코드 스 니펫이 있습니다.Netsuite API의 배송 품목 검색

$request = new GetRequest(); 
$request->baseRef = new RecordRef(); 
$request->baseRef->type = $type; //Record Type 
$request->baseRef->internalId = $internalId; //Internal ID of record 

$getResponse = $service->get($request); 
if (! $getResponse->readResponse->status->isSuccess) { 
    return 'ERROR'; 
} else { 
    return $getResponse->readResponse->record; 
} 

그러나 Internal ID를 전달할 수는 있지만 RecordType의 목록에는 Shipping Item이없는 것으로 보입니다. 나의 목표는 판매 주문을 만들기위한 계산에서 운송 항목 세부 정보를 사용하는 것입니다 (제출하기 전에 표시해야 함).

배송 항목 레코드를받는 방법이 다른가요? 방법?

답변

0

이제 RESTlet을 통해 배송 항목을 성공적으로 검색 할 수 있습니다. 파일 캐비닛에이 파일을 새로 업로드 한 다음 새 스크립트로 추가했습니다. NetSuite는 새 스크립트를 만들 때 스크립트 파일을 직접 업로드 할 수 없습니다.

// get_record.js 
function get_record(datain) 
{ 
    var record = nlapiLoadRecord(datain.recordType, datain.id); 
    return record; 
} 

그런 다음 guzzle http 라이브러리를 사용하여 RESTlet을 호출합니다.

$url = "https://rest.sandbox.netsuite.com/app/site/hosting/restlet.nl"; 
    $client = new GuzzleHttp\Client(); 

    $authorization = [ 
     'NLAuth nlauth_account='.getenv('NETSUITE_ACCOUNT'), 
     'nlauth_email='.getenv('NETSUITE_EMAIL'), 
     'nlauth_signature='.getenv('NETSUITE_PASSWORD'), 
     'nlauth_role='.getenv('NETSUITE_ROLE') 
    ]; 

    $response = $client->request('GET', $url, [ 
     'headers' => [ 
      'Authorization' => implode(',', $authorization), 
      'Content-Type' => 'application/json' 
     ], 
     'query' => [ 
      'script' => '343', //script id 
      'deploy' => '1', 
      'recordType' => 'ShipItem', 
      'id' => '5905' // example of internal id of desired shipping item 
     ] 
    ]); 

    return json_decode($response->getBody()); 
2

Shipping Item 기록은 아직 Suitetalk에서 지원되지 않습니다. 대안으로 해운 품목을 얻으려는 대신 RESTlet을 만들 수 있습니다.

+0

감사합니다. 덕분에 RESTlet의 문서를 살펴 봅니다. 내가 아는 바를 기반으로 예를 들어 배송 항목을 가져 오는 데 필요한 사용자 지정 스크립트를 만든 다음 코드 기반에서 해당 Restlet 서비스를 호출합니다. 맞습니까? 내가 그것을 달성 할 수 있다면 여기에 구현을 게시 할 것입니다. – oLraX