0

我正在尝试在 CiviCRM 中将电子邮件地址设置为空白。我序列化一个数组,如下所示并通过 REST 发布(代码是 groovy):

def rest = [
                json: 1,
                api_key: apiKey,
                key: siteKey,
                debug: 1,
                version: 3,
                entity: 'Contact',
                action: 'create',
                contact_type: contact_type,
                overwriteblank:true,
                id: record.crID,
                rest["email[1][email]"] = modified.value as String
                rest["email[1][location_type_id]"] = 1
        ]

我尝试了“覆盖空白”选项 - 但电子邮件似乎仍未设置为空白。

谢谢

4

2 回答 2

2

电子邮件地址是与联系人分开的 API 实体(因为联系人可以拥有无​​限数量的电子邮件地址)。您需要做的就是获取contact_id = 不管的电子邮件条目,然后将其删除。

$result = civicrm_api3('Email', 'get', array('contact_id' => $YOUR_CONTACT_ID));

然后在检查错误并遍历 $result['values'] 之后:

$deleted = civicrm_api3('Email', 'delete', array('id' => $YOURRESULTROW['id']));

使用 SQL 方法,您并没有删除电子邮件,而是将该人的电子邮件设置为空字符串。

于 2014-10-09T01:54:40.187 回答
-1

我能做的最好的就是通过 sql。

String sql_update = """update civicrm_email set email = "" where contact_id = ?"""
于 2014-10-02T04:30:04.773 回答