2017-08-31 2 views
0

J'utilise Alexa-php-toolkit pour Dynamics 365 https://github.com/AlexaCRM/php-crm-toolkit, en utilisant cela Je peux créer un nouveau contact mais je ne peux pas ajouter un nom de compte au contact, quand je essayez d'obtenir cette erreur:Comment ajouter un nom de compte à un contact dans Dynamics 365

Notice: Property accountid of the contact entity cannot be set in ../vendor/alexacrm/php-crm-toolkit/src/Entity.php on line 263.

Voici mon script.

<?php 
//URL: https://github.com/AlexaCRM/php-crm-toolkit 
/** 
* Use init.php if you didn't install the package via Composer 
*/ 
use AlexaCRM\CRMToolkit\Client as OrganizationService; 
use AlexaCRM\CRMToolkit\Settings; 
require_once '../vendor/autoload.php'; 
require_once '../vendor/alexacrm/php-crm-toolkit/init.php'; 
require_once 'config.php'; 
require_once 'includes/db.php'; 
$db   = new DB(); 
$options = getAuth(); 
$serviceSettings = new Settings($options); 
$service = new OrganizationService($serviceSettings); 
$accountId = 'a2536507-018d-e711-8115-c4346bac0a5f'; 
// create a new contact 
$contact = $service->entity('contact'); 
$contact->accountid = $accountId; 
$contact->firstname = 'Test'; 
$contact->lastname = 'Contact12'; 
$contact->jobtitle = 'Business Analyst'; 
$contact->mobilephone = '1002345679'; 
$contact->fax = '9902345679'; 
$contact->emailaddress1 = '[email protected]'; 
$contact->address1_line1 = '119 Cambridge'; 
$contact->address1_line2 = 'Apt 22'; 
$contact->address1_city = 'Houston'; 
$contact->address1_stateorprovince = 'TX'; 
$contact->address1_postalcode = '77009'; 
$contact->address1_country = 'US'; 
$contactId = $contact->create(); 
echo $contactId; 
?> 

Répondre

1

Il y a cette ligne de code dans une question:

$contact->accountid = $accountId; 

En premier lieu, le compte parent sur un contact enregistré dans le champ parentcustomerid qui est un special lookup field that can store link to both account or contact entity. Les champs accountid et parentcontactid permettent de gérer cela en arrière-plan, mais ne sont généralement pas disponibles. Vous devez travailler avec le champ parentcustomerid. Deuxièmement, un autre problème lorsque vous travaillez avec des recherches (clés étrangères) est que vous devez passer le type d'entité (nom de table).

Le code correct pourrait ressembler à ceci:

$accountRef = $client->entity('account'); 
$accountRef->ID = $accountId; 
$contact->parentcustomerid = $accountRef; 

ou

$contact->parentcustomerid = new EntityReference('account', $accountId); 

Ces exemples sont tirés de l'issue list, ajusté, mais pas testé. J'espère que cela fonctionne par exemple, pas la demande de fonctionnalité.