Salesforce SOAP创建记录

时间:2013-10-08 19:59:43

标签: c# soap salesforce

我有以下代码来插入记录(我将插入1000个)。我获得了成功的插入,但所有数字字段在salesforce中都是EMPTY。一个文本字段工作正常(“兰迪教堂”)并出现在salesforce中。我有什么想法可能做错了吗?

  public void InsertTestRecord()
    {

        ChurchHist__c ch = new ChurchHist__c();


        ch.ChurchId__c = 9999;
        ch.ChurchName__c = "Church of Randy";
        ch.ReportYear__c = 2013;
        ch.ReportMonth__c = 08;
        ch.RegisteredMembers__c = 777;
        ch.ActiveMembers__c = 111;
        ch.InactiveMembers__c = 666;
        ch.UsersForMonth__c = 25;
        ch.ContribForMonth__c = 789.01;
        ch.ContribYTD__c = 200000.02;
        ch.AchContrib__c = 200000.00;
        ch.CcContrib__c = 0.02;
        ch.AchToCc__c = 0.12345;

        sObject[] s = new sObject[1];
        s[0] = ch;
        try
        {
            SaveResult[] saveResult = binding.create(s);

            if (saveResult[0].success)
            {
                Debug.Print("Success");
            }
            else
            {
                foreach (Error error in saveResult[0].errors)
                {
                    Debug.Print(error.statusCode.ToString());
                    Debug.Print(error.message);

                }
            }
        }
        catch (SoapException se)
        {
            Debug.Print(se.ToString());

        }

    }

1 个答案:

答案 0 :(得分:2)

您需要设置指定的标志,例如numeric属性有一个关联的指定标志,用于控制.NET soap引擎是否实际通过线路发送该属性,但该属性的setter不会自动设置指定的标志。 e.g。

ch.ChurchId__c = 9999;
ch.ChurchId__cSpecified = true;
ch.reportyear__c = 2013;
ch.reportyear__cSpecified = true;

指定的标志是某些类型的.NET soap系统的“功能”。 (数字和日期IIRC)。