none
Plugin failed 求助三大MVP RRS feed

答案

  • 一定要把plugin 注册在异步模式下

    另外你debug看看 oldQuoteId newQuoteId 是否都有值


    Batistuta Cai-刀客 | 蔡敏生 | MS CRM MVP | Blog:http://caims.cnblogs.com
    2009年8月19日 3:42
    版主

全部回复

  • 一定要把plugin 注册在异步模式下

    另外你debug看看 oldQuoteId newQuoteId 是否都有值


    Batistuta Cai-刀客 | 蔡敏生 | MS CRM MVP | Blog:http://caims.cnblogs.com
    2009年8月19日 3:42
    版主
  • 我记得通过
    oldQuoteId = (Guid)context.ParentContext.InputParameters["quoteid"];

    是获取不到 被修订的quote的值的.你debug再验证下.
    Batistuta Cai-刀客 | 蔡敏生 | MS CRM MVP | Blog:http://caims.cnblogs.com
    2009年8月19日 3:43
    版主
  • 还有debug验证下
    newQuoteId = context.OutputParameters.Properties["id"].ToString();
    是否可以取到值,我好像记得以前是通过PostImageEntity来获取了,不知道当时为什么要这样写
    Batistuta Cai-刀客 | 蔡敏生 | MS CRM MVP | Blog:http://caims.cnblogs.com
    2009年8月19日 3:45
    版主
  • 註冊成異步模式后,我通過QuoteNumber和RevisionNumber-1來取old QuoteId.這樣應該沒有什麽后患吧.
    韓建興 http://jamson.cnblogs.com
    2009年8月20日 7:18
  • 註冊成異步模式后,我通過QuoteNumber和RevisionNumber-1來取old QuoteId.這樣應該沒有什麽后患吧.
    韓建興 http://jamson.cnblogs.com

    我就是这样做的,但是好像对被修订的报价单 再进行修订是 新的报价单版本号是0.
    Batistuta Cai-刀客 | 蔡敏生 | MS CRM MVP | Blog:http://caims.cnblogs.com
    2009年8月20日 8:43
    版主
  • 那你是怎麼解決的?
    http://jamson.cnblogs.com
    2009年8月20日 9:28
  • 不管它,好像那操作不叫修订,版本号从0开始的。


    Batistuta Cai-刀客 | 蔡敏生 | MS CRM MVP | Blog:http://caims.cnblogs.com
    2009年8月20日 10:07
    版主
  • annotation newAnno = new annotation();

                                    newAnno.documentbody = dyAnno.documentbody;
                                    newAnno.filename = dyAnno.filename;
                                    newAnno.filesize = dyAnno.filesize;
                                    newAnno.isdocument = dyAnno.isdocument;
                                    newAnno.langid = dyAnno.langid;
                                    newAnno.mimetype = dyAnno.mimetype;
                                    newAnno.notetext = dyAnno.notetext;
                                    newAnno.objectid = new Lookup("quote", new Guid(newQuoteId));
                                    newAnno.objecttypecode = new EntityNameReference("quote");
                                    newAnno.subject = dyAnno.subject;
                                    newAnno.stepid = dyAnno.stepid;
                                   
                                    TargetCreateAnnotation targetCreate = new TargetCreateAnnotation();
                                    targetCreate.Annotation  = newAnno;
                                    CreateRequest create = new CreateRequest();
                                    create.Target = targetCreate;
                                   
                                    CreateResponse responsed = (CreateResponse)_service.Execute(create);






    这个写法严重的错误。

    请参考:
    LookupProperty khchanpin = new LookupProperty();
    khchanpin.Name = "new_khcp_chanpin";
    khchanpin.Value = new Lookup();
    khchanpin.Value.type = "new_chanpin";
    khchanpin.Value.Value = new Guid(ProductName);

    LookupProperty khaccount = new LookupProperty();
    khaccount.Name = "new_khcp_account";
    khaccount.Value = new Lookup();
    khaccount.Value.type = "account";
    khaccount.Value.Value = accountid;

    StringProperty khadd = new StringProperty();
    khadd.Name = "new_purchase_add";
    khadd.Value = (string)entity.Properties["new_gmdd"];

    StringProperty khsl = new StringProperty();
    khsl.Name = "new_barcode";
    khsl.Value = (string)entity.Properties["new_sl"];

    CrmDateTimeProperty khsj = new CrmDateTimeProperty();
    khsj.Name = "new_purchase_dt";
    khsj.Value = new CrmDateTime();
    khsj.Value.Value = (string)entity.Properties["new_gmsj"];

    DynamicEntity newkh = new DynamicEntity();
    newkh.Name = "new_kehuchanpin";
    newkh.Properties = new Microsoft.Crm.Sdk.PropertyCollection();
    newkh.Properties.Add(khchanpin);
    newkh.Properties.Add(khaccount);
    newkh.Properties.Add(khadd);
    newkh.Properties.Add(khsl);
    newkh.Properties.Add(khsj);

    TargetCreateDynamic khtarget = new TargetCreateDynamic();
    khtarget.Entity = newkh;

    CreateRequest khCreateRequest = new CreateRequest();
    khCreateRequest.Target = khtarget;

    CreateResponse khCreateResponse = (CreateResponse)server.Execute(khCreateRequest);




    Eirc's Yang(杭州-天天) cnblog:http://www.cnblogs.com/ericqyang/ MSN:yqing630@hotmail.com
    2009年8月21日 7:03
  • 这个写法严重的错误。->講個理由
    2009年8月24日 3:25
  • 不是严重的错误。 :)

    第一个是用了 Strong Entity Type,如果你加了新的字段或实体, 你需要更新你的 Web Service。将来要更改那就麻烦了。

    第二种方法是一种软性的写法,使用了 Dynamic Entity 的方法。 如果加了新字段或实体,就不用更新 web service 了, 因为不是锁定一个字段或实体。

    Best Practice 是使用 DynamicEntity。

    希望你明白我的意思吧。


    Darren Liu | 刘嘉鸿 | MS CRM MVP | English Blog: http://msdynamicscrm-e.blogspot.com | Chinese Blog: http://liudarren.spaces.live.com
    2009年8月24日 4:16
    版主
  • tks,瞭解了。結案.
    2009年8月25日 1:11