如何将帐户名称添加到 Dynamics 365 中的联系人
How to add Account name to a contact in Dynamics 365
我正在使用 Alexa-php-toolkit for Dynamics 365 https://github.com/AlexaCRM/php-crm-toolkit,使用它我可以成功创建新的联系人,但是我无法在联系人中添加帐户名,当我尝试我收到此错误:
Notice: Property accountid of the contact entity cannot be set in ../vendor/alexacrm/php-crm-toolkit/src/Entity.php on line 263.
这是我的脚本。
<?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 = 'john.doe1@example.com';
$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;
?>
问题中有你这行代码:
$contact->accountid = $accountId;
首先,联系人的父帐户保存在 parentcustomerid
字段中,即 special lookup field that can store link to both account or contact entity。
accountid
和 parentcontactid
字段有助于在后台处理此问题,但通常不可用。您需要使用 parentcustomerid
字段。
其次,使用查找(外键)时的另一个问题是您需要传递实体类型(table 名称)。
正确的代码可能如下所示:
$accountRef = $client->entity( 'account' );
$accountRef->ID = $accountId;
$contact->parentcustomerid = $accountRef;
或
$contact->parentcustomerid = new EntityReference( 'account', $accountId );
这些示例取自 issue list,经过调整,但未经测试。我希望它是工作示例,而不是功能请求。
我正在使用 Alexa-php-toolkit for Dynamics 365 https://github.com/AlexaCRM/php-crm-toolkit,使用它我可以成功创建新的联系人,但是我无法在联系人中添加帐户名,当我尝试我收到此错误:
Notice: Property accountid of the contact entity cannot be set in ../vendor/alexacrm/php-crm-toolkit/src/Entity.php on line 263.
这是我的脚本。
<?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 = 'john.doe1@example.com';
$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;
?>
问题中有你这行代码:
$contact->accountid = $accountId;
首先,联系人的父帐户保存在 parentcustomerid
字段中,即 special lookup field that can store link to both account or contact entity。
accountid
和 parentcontactid
字段有助于在后台处理此问题,但通常不可用。您需要使用 parentcustomerid
字段。
其次,使用查找(外键)时的另一个问题是您需要传递实体类型(table 名称)。
正确的代码可能如下所示:
$accountRef = $client->entity( 'account' );
$accountRef->ID = $accountId;
$contact->parentcustomerid = $accountRef;
或
$contact->parentcustomerid = new EntityReference( 'account', $accountId );
这些示例取自 issue list,经过调整,但未经测试。我希望它是工作示例,而不是功能请求。