3

我正在尝试以编程方式将记录从 AS400 系统导入 Dynamics CRM。为了实现这一点,我已将 AS400 记录推送到 SQL 表中,并且能够通过在 SSIS 2008 C# 脚本中引用 CRM 4 Web 服务端点将这些记录推送到 CRM。

问题是其中一个字段是 Y2K 日期字符串格式。为了将其放入 CRM 中的日期字段 (DOB),我相信我需要将其转换为日期格式,然后在变量中引用结果值。

我不知道该怎么做。

这个问题/答案(http://stackoverflow.com/a/4880021/1326443)可能有助于解决部分问题,但我不知道如何在我的脚本中使用它来获取值(还没有为多年,对 C# 不熟悉)

脚本片段:

public class ScriptMain : UserComponent
{
private CrmService service = null;


public override void PreExecute()
{
    base.PreExecute();


    CrmAuthenticationToken token = new CrmAuthenticationToken();
    token.AuthenticationType = 0;
    token.OrganizationName = "DevOrg";

    service = new CrmService();
    service.Url = "http://crm/mscrmservices/2007/crmservice.asmx";
    service.CrmAuthenticationTokenValue = token;
    service.Credentials = System.Net.CredentialCache.DefaultCredentials;
}

public override void PostExecute()
{
    base.PostExecute();

}

public override void LeadInput_ProcessInputRow(LeadInputBuffer Row)
{
    lead cont = new lead();

if (!Row.TITL20_IsNull)

{
        cont.salutation = Row.TITL20;
    }


if (!Row.DOBI20_IsNull)

{
            cont.new_birthdate = Row.DOBI20;
        }

....

....

            service.Create(cont);
        }

    }
}

{ cont.new_birthdate = Row.DOBI20; }抛出:

无法将类型“字符串”隐式转换为 .....CrmSdk.CRMDateTime

4

1 回答 1

1

刚刚查看了CRMDateTimehttp://msdn.microsoft.com/en-us/library/bb928935.aspx)的文档

这表明您可以使用Value属性 ( http://msdn.microsoft.com/en-us/library/bb928944.aspx )进行设置

所以你可能想尝试:

cont.new_birthdate.Value = Row.DOBI20

编辑

针对您的评论,请尝试以下操作

string ConvertDate(string dateToConvert)
{ 
    dateToConvert= dateToConvert.PadLeft(7, '0');
    int c;
    int.TryParse(dateToConvert.Substring(0,1), out c);  
    c = (c * 100) + 1900;

    int y;
    int.TryParse(dateToConvert.Substring(1,2), out y);  

    return (c+y).ToString() + dateToConvert.Substring(3,4);
}
于 2012-10-02T10:54:10.277 回答