Salesforce APEX自动创建案例

时间:2016-09-20 16:14:43

标签: salesforce apex

因此,我这个项目的最终目标是为每个在我公司保修登记页面上注册产品的客户创建联系人和案例。

我已经有一个连接到MySQL数据库的python脚本,并将所需的信息保存到.xlsx文件中,然后另一个python脚本当前将.xlsx文件中的相同数据发送到salesforce,它适用于Case OR联系但不是两者。 Apex触发器仅在我实际执行网络到案例或电子邮件到案例时才有效,但由于某种原因无法使用python。

这将是大约每6个小时无限期触发的事情。我已经将它设置为不从数据库中提取两次相同数据的位置,因此它只通过编写' 1'来从MySQL数据库中获取新的联系人。到每个表格的新列,并检查是否' 1'存在,如果存在,则跳过它。除了创建联系人和案例之外,一切都工作正常。具体联系,因为它将包含我们在客户要求对其产品进行故障排除时所需的所有地址信息,我们还希望创建一个案例,因为这是产品和序列号被删除的地方,并允许触发器发送给客户案件创建后的电子邮件。

public class CaseAutocreateContactTest {

public static testMethod void testBulkContactsGetCreated() {
    List<Case> newCases = new List<Case>();
    for (Integer i = 0; i<100; i++) {
        Case c = new Case(SuppliedEmail='jdoe_test_test@doe.com' + i,
                            SuppliedName='John Doe' + i,
                            Subject='Feedback - Something' + i);
        newCases.add(c);
    }
    insert newCases;

    System.debug('here');
    List<Id> newCaseIds = new List<Id>();
    for (Case caseObj:newCases) {
        newCaseIds.add(caseObj.Id);    
    }

    List<Case> updatedCases = [Select ContactId From Case Where Id in :newCaseIds];

    for (Case caseObj:updatedCases) {
        System.debug(caseObj.Id + ' ' + caseObj.ContactId);
        System.assert(caseObj.ContactId!=null,'There should be no null contacts');
    }
}

public static testMethod void testContactGetsCreated() {
    Case c = new Case(SuppliedEmail='jdoe_test_test@doe.com',
                        SuppliedName='John Doe',
                        Subject='Feedback - Something');
    insert c;

    List<Contact> johnDoes = [select Id from Contact where Email='jdoe_test_test@doe.com'];

    //there should be only 1 -- the trigger should not have created another
    System.assert(johnDoes.size()==1, 'There should be one John Doe!');

    Case caseObj = [select ContactId from Case where Id=:c.Id];
    System.assert(caseObj.ContactId!=null,'There should be no null contact on the case');
}

public static testMethod void testNoDupesAreCreated() {
    Contact cnt1 = new Contact(FirstName = 'John',
                            LastName = 'Doe',
                            Email='jdoe_test_test@doe.com');

    insert cnt1;

    Case case1 = new Case(SuppliedEmail='jdoe_test_test@doe.com',
                        SuppliedName='John Doe',
                        Subject='Feedback - Something');

    insert case1;

    List<Contact> johnDoes = [select Id from Contact where Email='jdoe_test_test@doe.com'];

    //there should be only 1 -- the trigger should not have created another
    System.assert(johnDoes.size()==1, 'There should be only one John Doe!');
}

public static testMethod void testEmailNameDoesntGetCreated() {
    Case c = new Case(SuppliedEmail='testEmailNameDoesntGetCreated@doe.com',
                        SuppliedName='testEmailNameDoesntGetCreated@doe.com',
                        Subject='Feedback - Something');
    insert c;

    List<Contact> johnDoes = [select Id from Contact where Email='testEmailNameDoesntGetCreated@doe.com'];

    //there should be only 1 -- the trigger should not have created another
    System.assert(johnDoes.size()==0, 'There should be no John Does!');
}
}

1 个答案:

答案 0 :(得分:0)

我得到了它的工作。

所以我首先创建了一个Contact,就像我已经使用Simple-Salesforce,然后在Python中使用Selenium包打开本地托管的Web-to-case html文件,并从.xlsx表发送数据并提交。确认它为.xlsx表中的每个客户创建了一个案例,并确认salesforce将联系人和案例相互关联。