【问题标题】:Connect To SQL From CRM Dynamics 2011 Plugin从 CRM Dynamics 2011 插件连接到 SQL
【发布时间】:2013-01-24 15:43:07
【问题描述】:

大家好,我之前发布了一个关于如何设置有效合同以起草的问题,但经过我的研究,我发现它可以直接进入 SQL 进行更新,也可以通过复制合同然后制作来完成更新。我不得不选择选项一。我正在尝试访问我的数据库并更新表,但从插件中得到一个 SQL 通用错误。我从插件访问数据库的代码(我一般使用Entity Framework来连接):

string strConn = "Data Source=serverName;Initial Catalog=DatabaseName;IntegratedSecurity=SSPI";

SqlConnection connection = new SqlConnection();
SqlCommand command = new SqlCommand();
connection.ConnectionString = strConn;
connection.Open();
command.Connection = connection;
command.CommandText = "Update ContractBase set StateCode = 0,StatusCode = 1 "
  + "where ContractId = ACC70D43-DEBA-E111-8610-00155D041E80";
command.ExecuteNonQuery();
connection.Close();  

当我从插件连接到数据库时,还有什么需要考虑的吗?提前致谢。

【问题讨论】:

  • 不知道是否是您的错误原因(您没有发布错误消息),但您的过滤器中缺少单引号:where ContractId = 'ACC70D43-DEBA-E111-8610-00155D041E80'
  • 是的,就是这样,非常感谢...
  • 没问题。现在您的问题已解决,您可以使用解决方案回答您的问题(然后接受该答案)
  • 你知道这在很大程度上不受支持吧?
  • 嗨詹姆斯,是的,我知道它不受支持,但它是必需的,我必须在合约处于活动状态时更新它,两种方法是直接进入 SQL 并设置它起草或复制合同(成为草稿),然后对其进行更新。我不得不选择一个并进入SQL,因为另一种方式不符合客户的业务需求,因此我必须这样做......

标签: sql-server sql-server-2008-r2 dynamics-crm-2011 dynamics-crm dynamics-crm-4


【解决方案1】:

SetStateRequest 消息不是设置状态和状态的适当方式吗?还是我错过了什么?

【讨论】:

  • 嗨,迈克,是的,理想情况下,这条消息可以(并且应该)用于设置实体的状态。但是,一旦合同处于活动状态,就无法将其更改回草稿,因此我不得不采取一种变通方法,我知道这并不理想(不支持)....
  • 我会考虑的唯一其他事情是 IDisposable 对象的“使用”块,例如 SqlConnection
【解决方案2】:

我不确定这是否为时已晚,但您可以创建一个将 CRM 数据存储到 SQL 表中的 SSIS 包。创建一个简单的插件,在创建或更新此 SSIS 包时触发。

您必须在非隔离模式下运行此插件,因为沙盒隔离不允许文件访问(包)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多