gpt4 book ai didi

c# - ssis 包的 Dynamics Crm 数据验证

转载 作者:太空宇宙 更新时间:2023-11-03 15:21:01 24 4
gpt4 key购买 nike

我目前正在使用 ssis 包中的 C# 脚本组件将数据从平面文件导入到 CRM 数据库。现在,我需要对数据进行数据验证,例如:

  1. 检查该属性是否为crm中的必填字段
  2. 检查属性是否采用正确的数据类型
  3. 检查文本类型属性的长度和最大、最小大小
  4. 检查查找和选择列表类型属性是否引用了正确的架构

我需要使用 C# 代码在 ssis 脚本组件中验证所有这些。我对此类数据验证非常陌生。

我尝试使用数据转换转换和数据分析任务进行数据验证,后来才知道这不是正确的方法,应该使用 C# 代码。

我后来试过这样的验证:

while (string.IsNullOrEmpty(Row.AccountName))
{
MessageBox.Show("Account Name should not be Blank");
if (!string.IsNullOrEmpty(Row.AccountName))
{
break;
}
}

if (!string.IsNullOrEmpty(Row.AccountName))
{
if (Row.AccountName.Length <= 20)
newaccount["name"] = Row.AccountName;

while (Row.AccountName.Length >= 20)
{
MessageBox.Show("Account name is too long and it should be less than 251 characters");
if (Row.AccountName.Length <= 20)
newaccount["name"] = Row.AccountName;
}
}
}

但我需要从 CRM 元数据访问长度和其他属性。请指教。

最佳答案

下面是一些示例代码,可帮助您入门:

using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Messages;
using Microsoft.Xrm.Sdk.Metadata;
using Microsoft.Xrm.Tooling.Connector;
using System.Collections.Generic;
using System.Linq;

public void Run(IOrganizationService svc)
{
var all = allAttributes(svc, "account");

var accountNum = all.Where(a => a.LogicalName == "accountnumber").FirstOrDefault();

var isRequired = accountNum.RequiredLevel.Value == AttributeRequiredLevel.SystemRequired;

var type = accountNum.AttributeType;

//to get max length, cast AttributeMetadata instance to appropriate type
var myStringAttribute = accountNum as StringAttributeMetadata;

var maxLength = myStringAttribute.MaxLength;
}

//Retrieve all attributes of an entity
private List<AttributeMetadata> allAttributes(IOrganizationService svc, string entity)
{
var req = new RetrieveEntityRequest();

req.EntityFilters = EntityFilters.Attributes;

req.LogicalName = entity.ToLower();

var response = (RetrieveEntityResponse)svc.Execute(req);

return response.EntityMetadata.Attributes.ToList();
}

关于c# - ssis 包的 Dynamics Crm 数据验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37393809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com