关于使用组织名和友好名称不一样的情况下,触发Plug-in报错

0 views
Skip to first unread message

shanz...@gmail.com

unread,
May 7, 2008, 7:41:12 AM5/7/08
to Microsoft Dynamics CRM 3.0/4.0 微软客户管理系统
最近我在开发使用CRM4.0的Plug-in的过程中,发现在我建了个组织“TEST”,在数据库名(TEST_MSCRM),而我的组织友好名称
是“TESTXXXXXX”,能够正常注册,但不能使用Plugin注册的程序代码。
我用的SDK自带的Plugin例子,没做任何修改。
我把组织的友好名称改成和组织唯一名称相同时即(TEST),该Plugin又能正常执行。
后在调试过程中发现:Plugin中
public class AccountCreateHandler: IPlugin
{
public void Execute(IPluginExecutionContext context)
{
DynamicEntity entity = null;
......

ICrmService service = context.CreateCrmService(true);
......


context中的OrganizationName获取的是友好名称,导致Webservice的组织名引用的是友好名称,执行程序时报401错
误。


不知道各位大侠遇到过这个问题?


难道要用外部WebService来实现?

Darren Liu

unread,
May 7, 2008, 9:53:30 AM5/7/08
to Microsoft Dynamics CRM 3.0/4.0 微软客户管理系统
请问你为什么需要Organization 的名呢?

如果你使用的是 ICrmService, 所有的 Plug-in将是在那一个的Organization Context 里了。

如果Plug-in是register在 TEST Organization那里。
....
ICrmService service = context.CreateCrmService(true);
service.create(contact);
...

那contact 就在 TEST Organization那里创建。

刘嘉鸿 Darren Liu,Microsoft CRM MVP
Crowe Chizek and Company
http://www.crowecrm.com
http://msdynamicscrm.blogspot.com/
http://liudarren.spaces.live.com/

shanz...@gmail.com

unread,
May 7, 2008, 10:07:57 PM5/7/08
to Microsoft Dynamics CRM 3.0/4.0 微软客户管理系统
我事不需要使用OrganizationName 的,现在用的就是ICrmService,
ICrmService service = context.CreateCrmService(true);
service.create(contact);

而是在组织名和友好名称不一样时,Plug-in是没有注册正确,把Organization的友好名称注册到的Organization
Context里面了,

这个是经过调试发现service 的OrganizationName是友好名称了,而实际上应该是TEST,


On 5月7日, 下午9时53分, Darren Liu <darren...@gmail.com> wrote:
> 请问你为什么需要Organization 的名呢?
>
> 如果你使用的是 ICrmService, 所有的 Plug-in将是在那一个的Organization Context 里了。
>
> 如果Plug-in是register在 TEST Organization那里。
> ....
> ICrmService service = context.CreateCrmService(true);
> service.create(contact);
> ...
>
> 那contact 就在 TEST Organization那里创建。
>
> 刘嘉鸿 Darren Liu,Microsoft CRM MVP
> Crowe Chizek and Companyhttp://www.crowecrm.comhttp://msdynamicscrm.blogspot.com/http://liudarren.spaces.live.com/
>
> On May 7, 6:41 am, shanzhen...@gmail.com wrote:
>
>
>
> > 最近我在开发使用CRM4.0的Plug-in的过程中,发现在我建了个组织"TEST",在数据库名(TEST_MSCRM),而我的组织友好名称
> > 是"TESTXXXXXX",能够正常注册,但不能使用Plugin注册的程序代码。
> > 我用的SDK自带的Plugin例子,没做任何修改。
> > 我把组织的友好名称改成和组织唯一名称相同时即(TEST),该Plugin又能正常执行。
> > 后在调试过程中发现:Plugin中
> > public class AccountCreateHandler: IPlugin
> > {
> > public void Execute(IPluginExecutionContext context)
> > {
> > DynamicEntity entity = null;
> > ......
>
> > ICrmService service = context.CreateCrmService(true);
> > ......
>
> > context中的OrganizationName获取的是友好名称,导致Webservice的组织名引用的是友好名称,执行程序时报401错
> > 误。
>
> > 不知道各位大侠遇到过这个问题?
>
> > 难道要用外部WebService来实现?- 隐藏被引用文字 -
>
> - 显示引用的文字 -
Message has been deleted

刀客

unread,
May 8, 2008, 2:58:26 AM5/8/08
to Microsoft Dynamics CRM 3.0/4.0 微软客户管理系统
if you execute a plug-in on a nondefault organization instance in
Microsoft Dynamics CRM 4.0?

On 5月8日, 上午10时07分, shanzhen...@gmail.com wrote:
> 我事不需要使用OrganizationName 的,现在用的就是ICrmService,
> ICrmService service = context.CreateCrmService(true);
> service.create(contact);
>
> 而是在组织名和友好名称不一样时,Plug-in是没有注册正确,把Organization的友好名称注册到的Organization
> Context里面了,
>
> 这个是经过调试发现service 的OrganizationName是友好名称了,而实际上应该是TEST,
>
> On 5月7日, 下午9时53分, Darren Liu <darren...@gmail.com> wrote:
>
>
>
> > 请问你为什么需要Organization 的名呢?
>
> > 如果你使用的是 ICrmService, 所有的 Plug-in将是在那一个的Organization Context 里了。
>
> > 如果Plug-in是register在 TEST Organization那里。
> > ....
> > ICrmService service = context.CreateCrmService(true);
> > service.create(contact);
> > ...
>
> > 那contact 就在 TEST Organization那里创建。
>
> > 刘嘉鸿 Darren Liu,Microsoft CRM MVP
> > Crowe Chizek and Companyhttp://www.crowecrm.comhttp://msdynamicscrm.blogspot.com/http://liuda...
>
> > On May 7, 6:41 am, shanzhen...@gmail.com wrote:
>
> > > 最近我在开发使用CRM4.0的Plug-in的过程中,发现在我建了个组织"TEST",在数据库名(TEST_MSCRM),而我的组织友好名称
> > > 是"TESTXXXXXX",能够正常注册,但不能使用Plugin注册的程序代码。
> > > 我用的SDK自带的Plugin例子,没做任何修改。
> > > 我把组织的友好名称改成和组织唯一名称相同时即(TEST),该Plugin又能正常执行。
> > > 后在调试过程中发现:Plugin中
> > > public class AccountCreateHandler: IPlugin
> > > {
> > > public void Execute(IPluginExecutionContext context)
> > > {
> > > DynamicEntity entity = null;
> > > ......
>
> > > ICrmService service = context.CreateCrmService(true);
> > > ......
>
> > > context中的OrganizationName获取的是友好名称,导致Webservice的组织名引用的是友好名称,执行程序时报401错
> > > 误。
>
> > > 不知道各位大侠遇到过这个问题?
>
> > > 难道要用外部WebService来实现?- 隐藏被引用文字 -
>
> > - 显示引用的文字 -- 隐藏被引用文字 -
>
> - 显示引用的文字 -

刀客

unread,
May 8, 2008, 3:03:05 AM5/8/08
to Microsoft Dynamics CRM 3.0/4.0 微软客户管理系统
我在newsgroups,也看过一个类似问题,应该是产品本身的bug.
https://www.microsoft.com/communities/newsgroups/en-us/default.aspx?d...

ms提供了hotfix,你还可以不打补丁,直接把Friendly Org Name改成跟Unique OrgName 一致来解决.

shanz...@gmail.com

unread,
May 8, 2008, 4:37:22 AM5/8/08
to Microsoft Dynamics CRM 3.0/4.0 微软客户管理系统
我也知道把Friendly Org Name改成跟Unique OrgName能够解决这个问题,.已经测试过。
但是在实际应用环境中,这两个名称是不可能一样的,问题就在这里。

On 5月8日, 下午3时03分, 刀客 <ca...@techsun.com> wrote:
> 我在newsgroups,也看过一个类似问题,应该是产品本身的bug.https://www.microsoft.com/communities/newsgroups/en-us/default.aspx?d...

刀客

unread,
May 8, 2008, 5:57:13 AM5/8/08
to Microsoft Dynamics CRM 3.0/4.0 微软客户管理系统
如果两个名称一定不同的话,你可以跟ms拿补丁,4.0现在内部已经出了很多补丁了,但是还没正式发布,你需要联系ms技术支持来获取.

shanz...@gmail.com

unread,
Jun 5, 2008, 12:27:13 AM6/5/08
to Microsoft Dynamics CRM 3.0/4.0 微软客户管理系统
已拿到补丁,问题解决,谢谢!
Reply all
Reply to author
Forward
0 new messages