2012-11-06 58 views
0

收到此錯誤無效custrecord_lt_partner參考關鍵詞225399.雖然試圖插入NetSuite的錯誤INVALID_KEY_OR_REF

前兩個字段列表/記錄&第三個字段是自由格式文本。

NetSuite的具有管理員權限

下面是代碼

global $nsClient; 

$recordTypeRef = array("internalId" => 91); 

$partnerName = "225399"; 
$companyName = "20562"; 
$labAcctNum = "7182794"; 

$partnerNameFields = new nsComplexObject('SelectCustomFieldRef'); 

$partnerNameFields->setFields(
    array(
     'value'   => new nsListOrRecordRef(array('internalId' => $partnerName)), 
     'internalId' => 'custrecord_lt_partner' 
    ) 
); 

$companyNameFields = new nsComplexObject('SelectCustomFieldRef'); 

$companyNameFields->setFields(
    array(
     'value'   => new nsListOrRecordRef(array('internalId' => $companyName)), 
     'internalId' => 'custrecord_lt_company' 
    ) 
); 


$labAcctNumFields = new nsComplexObject('StringCustomFieldRef'); 

$labAcctNumFields->setFields(
    array(
     'internalId' => 'custrecord_lt_user_lab_acct_number', 
     'value'  => $labAcctNum, 
    ) 
); 


$customRecordFields = array(
    "recType"   => $recordTypeRef, 
    "customFieldList" => array($partnerNameFields, $companyNameFields, $labAcctNumFields), 
); 


$customRecord = new nsComplexObject('CustomRecord'); 

$customRecord->setFields($customRecordFields); 

//echo "<pre>"; print_r($customRecord); echo "</pre>"; exit; 


$addResponse = $nsClient->add($customRecord); 

if($addResponse->isSuccess) { 
    echo "<pre>"; print_r("Success"); echo "</pre>"; exit; 
} 
else { 
    echo "<pre>"; print_r($addResponse->statusDetail[0]->message); echo "</pre>"; exit; 
} 

回答

3

時指定的internalID不存在我得到這個錯誤。所以我假設$ partnerId的值是「225399」。 您是否在Netsuite中檢查過具有該ID的條目? (URL或系統標籤通常會告訴你更多的信息,除了SelectField,通常還有一個Javascript數組,你可以在其中找到ID)。

+0

謝謝,但我使用舊的庫,現在我使用新的PHP工具包,並得到了一切工作。但要回答你的問題是的,我引用了錯誤的內部ID –

0

是$ partnerName合作伙伴記錄中的entityId字段還是internalId字段?

您需要提供internalId或externalId。你在變量中使用「name」這個詞讓我覺得你沒有使用內部或外部ID。