2016-09-12 119 views
2

我需要使用php工具包刪除地址簿列表中已存在的客戶地址。 這裏是我的代碼,如何使用netsuite php工具包刪除地址簿中的客戶地址

$service = new NetSuiteService(); 


    $addressbook = new CustomerAddressBook(); 
    $addressbook->internalId = 'xxxxxx'; // addressBook Record (a entire row) interanl id 


    $addressBookList = new CustomerAddressbookList(); 
    $addressBookList->addressbook = $addressbook; 
    $addressBookList->replaceAll = false; 

    $customer = new Customer(); 
    $customer->internalId = $_SESSION["customer_internalId"]; // customer internal ID 
    $customer->addressbookList = $addressBookList; 

    $deleteRequest = new DeleteRequest(); 
    $deleteRequest->record = $customer; 
    $deleteResponse = $service->delete($deleteRequest); 

    print_r($deleteResponse); 

WHE運行此代碼我得到異常「BaseRef是一個抽象類,不能在被實例化...」。如何刪除客戶的地址簿列表中的許多地址之一?

+0

有人請幫助我 –

回答

2

我不認爲你可以刪除客戶記錄中的特定子記錄。

看這裏看deleted record types

我會做更新請求而只是刪除我不從addressbooklist需要的地址。像這樣的東西...

<?php 
$service = new NetSuiteService(); 
$service->setPreferences(false, true, true, true); 
$gr = new GetRequest(); 
$gr->baseRef = new RecordRef(); 
$gr->baseRef->internalId = $_SESSION["customer_internalId"]; //customer internal id 
$gr->baseRef->type = "customer"; 
$getResponse = $service->get($gr); 

if (!$getResponse->readResponse->status->isSuccess) 
{ 
echo "GET ERROR"; 
} 
else 
{ 
echo "GET SUCCESS"; 
} 

$customer = $getResponse->readResponse->record; 
$arrayAddressBook = $customer->addressbookList->addressbook; 

// find matching addressbook 

$findAddressKey = array_filter($arrayAddressBook, 
function ($e) 
{ 
return $e->internalId == 'xxxxxx' 

// addressbook internal id; 

}); 

// grab key of that addressbook object to remove 

$addressKey = key($findAddressKey); 
unset($arrayAddressBook[$addressKey]); 
$customer->addressbookList->replaceAll = true; 
$customer->addressbookList->addressbook = $arrayAddressBook; 
$request = new UpdateRequest(); 
$request->record = $customer; 
$service->setPreferences(false, false, false, true); 
$updateResponse = $service->update($request); 

if (!$updateResponse->writeResponse->status->isSuccess) 
{ 
echo "UPDATE ERROR"; 
} 
else 
{ 
echo "UPDATE SUCCESS, id " . $updateResponse->writeResponse->baseRef- >internalId; 
} 
?> 
+0

謝謝!它的工作 –