Microsoft Dynamics NAV 2009'daki RoleTailored istemcisinde (RTC) Yapılacaklar'a bir ekip kodu atadıktan sonra, sistem beklenmedik bir şekilde belirli bir kişi kartı için Yapılacaklar Listesi iletişim kutusunda Yapılacaklar'ı temizler

Uygulandığı Öğe
Dynamics NAV 2009

Bu makale, tüm ülkelerde ve tüm dil yerel ayarlarında Microsoft Dynamics NAV için geçerlidir.

Belirtiler

Microsoft Dynamics NAV 2009 R2 ve Microsoft Dynamics NAV 2009 Service Pack 1'de (SP1) düzeltme 2476183 uyguladığınızı varsayalım. RoleTailored (RTC) istemcisindeki Yapılacaklar Kartı iletişim kutusunda bir Yapılacaklar'a ekip kodu atadıktan sonra, sistem belirli bir kişi kartı için Yapılacaklar Listesi iletişim kutusundaki Yapılacaklar'ı temizler. Ancak sistem, beklendiği gibi Klasik istemcideki Yapılacaklar Listesi iletişim kutusunda Yapılacaklar'ı listeler.
  Düzeltme 2476183 hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:

2476183 Microsoft Dynamics NAV 2009 Service Pack 1'de RoleTailored istemcisinde bir satış elemanı için ekip yapılacaklar öğesini kapattıktan sonra, ekip yapılacaklar işi beklendiği gibi tamamlanmadı

Çözüm

Düzeltme bilgileri

Artık Microsoft, desteklenen bir düzeltme sunmaktadır. Ancak, yalnızca bu makalede açıklanan sorunu düzeltmeye yöneliktir. Bunu yalnızca bu özel sorunun yaşandığı sistemlere uygulayın. Bu düzeltme için ek sınamalar gerekebilir. Bu nedenle, bu sorundan ciddi bir şekilde etkilenmiyorsanız, bir sonraki Microsoft Dynamics NAV 2009 hizmet paketini veya bu düzeltmeyi içeren bir sonraki Microsoft Dynamics NAV sürümünü beklemenizi öneririz.

Not Özel durumlarda, Microsoft Dynamics ve ilgili ürünler için bir Teknik Destek Uzmanı belirli bir güncelleştirmenin sorunu çözeceğini belirlerse, normalde destek aramaları için yapılan ücretler iptal edilebilir. Ek destek soruları ve söz konusu güncelleştirme için uygun olmayan sorunlara normal destek ücretleri uygulanır.

          

Yükleme bilgileri

Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; açık veya zımni hiçbir garanti vermez. Bu, satılabilirlik veya belirli bir amaca uygunluk ile ilgili zımni garantileri içerir, ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama diline ve prosedürler oluşturmak ve prosedürlerde hata ayıklamak için kullanılan araçlara aşina olduğunuzu varsaymaktadır. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğini açıklamaya yardımcı olabilir. Ancak, ek işlevsellik sağlamak veya özel gereksinimlerinizi karşılamak için prosedürler oluşturmak için bu örnekleri değiştirmeyeceklerdir.

Not Bu düzeltmeyi yüklemeden önce, tüm Microsoft Navision istemcisi kullanıcılarının sistem oturumunu kapattığını doğrulayın. Bu, Microsoft Navision Application Services (NAS) istemci kullanıcılarını içerir. Bu düzeltmeyi uyguladığınızda oturum açan tek istemci kullanıcı siz olmalısınız.

Bu düzeltmeyi uygulamak için bir geliştirici lisansınız olmalıdır.

Windows Oturum Açma veya Veritabanı Oturum Açma penceresindeki kullanıcı hesabına "SUPER" rol kimliğinin atanmasını öneririz. Kullanıcı hesabına "SUPER" rol kimliği atanamıyorsa, kullanıcı hesabının aşağıdaki izinlere sahip olduğunu doğrulamanız gerekir:

  • Değiştireceğiniz nesnenin Değiştirme izni.
  • Sistem Nesne Kimliği 5210 nesnesi ve Sistem Nesne Kimliği 9015 nesnesi için Yürütme izni.

Not: Veri onarımı gerçekleştirmeniz gerekmediği sürece, veri depoları üzerinde haklarınız olması gerekmez.

Kod değişiklikleri

Not: Kod düzeltmelerini üretim bilgisayarlarınıza uygulamadan önce her zaman denetimli bir ortamda sınayın.
Bu sorunu gidermek için aşağıdaki adımları izleyin:

  1. Yapılacaklar tablosundaki (5080) UpdateAttendeeTodos işlevindeki kodu aşağıdaki gibi değiştirin:
    Mevcut kod

    ...
    BEGIN
    
    //Delete the following lines.
    Todo2.SETCURRENTKEY("Organizer To-do No.","System To-do Type");
    Todo3.RESET;
    Todo2.SETRANGE("Organizer To-do No.",OldTodoNo);
    IF "Team Code" = '' THEN
    Todo2.SETFILTER(
    "System To-do Type",
    '%1|%2',
    Todo2."System To-do Type"::"Salesperson Attendee",
    Todo2."System To-do Type"::"Contact Attendee")
    ELSE
    Todo2.SETFILTER("System To-do Type",'<>%1',Todo2."System To-do Type"::Team);
    IF Todo2.FIND('-') THEN
    REPEAT
    TodoBuffer.INIT;
    TodoBuffer.TRANSFERFIELDS(Todo2,FALSE);
    TodoBuffer.INSERT;
    Todo2.TRANSFERFIELDS(Rec,FALSE);
    Todo2."System To-do Type" := TodoBuffer."System To-do Type";
    IF Todo2."System To-do Type" = Todo2."System To-do Type"::"Contact Attendee" THEN
    Todo2.VALIDATE("Contact No.",TodoBuffer."Contact No.")
    ELSE
    Todo2."Salesperson Code" := TodoBuffer."Salesperson Code";
    Todo2.MODIFY(TRUE);
    TodoBuffer.DELETE;
    UNTIL Todo2.NEXT = 0;
    
    IF ISSERVICETIER THEN BEGIN
    // End of the deleted lines.
    
    Todo3.SETCURRENTKEY("Organizer To-do No.","System To-do Type");
    Todo3.SETRANGE("Organizer To-do No.","Organizer To-do No.");
    IF Todo3.FINDSET THEN
    REPEAT
    IF Todo3."No." <> "No." THEN BEGIN
    TodoBuffer.INIT;
    TodoBuffer.TRANSFERFIELDS(Todo3,FALSE);
    TodoBuffer.INSERT;
    Todo3.TRANSFERFIELDS(Rec,FALSE);
    Todo3."System To-do Type" := TodoBuffer."System To-do Type";
    IF Todo3."System To-do Type" = Todo3."System To-do Type"::"Contact Attendee" THEN
    Todo3.VALIDATE("Contact No.",TodoBuffer."Contact No.")
    ELSE
    Todo3."Salesperson Code" := TodoBuffer."Salesperson Code";
    SearchManagement.ParseToDo(Todo3,FALSE);
    Todo3."Last Date Modified" := TODAY;
    Todo3."Last Time Modified" := TIME;
    MobSalesMgt.TodoOnModify(Todo3);
    Todo3.MODIFY;
    TodoBuffer.DELETE;
    END;
    UNTIL Todo3.NEXT = 0;
    END;
    END;
    ...
    

    Değiştirme kodu 1

    ...
    BEGIN 
    // Add the following lines.
    IF ISSERVICETIER THEN BEGIN
    Todo3.RESET;
    // End of the added lines.
    
    Todo3.SETCURRENTKEY("Organizer To-do No.","System To-do Type");
    Todo3.SETRANGE("Organizer To-do No.","Organizer To-do No.");
    IF Todo3.FINDSET THEN
    REPEAT
    IF Todo3."No." <> "No." THEN BEGIN
    TodoBuffer.INIT;
    TodoBuffer.TRANSFERFIELDS(Todo3,FALSE);
    TodoBuffer.INSERT;
    Todo3.TRANSFERFIELDS(Rec,FALSE);
    Todo3."System To-do Type" := TodoBuffer."System To-do Type";
    IF Todo3."System To-do Type" = Todo3."System To-do Type"::"Contact Attendee" THEN
    Todo3.VALIDATE("Contact No.",TodoBuffer."Contact No.")
    ELSE
    Todo3."Salesperson Code" := TodoBuffer."Salesperson Code";
    SearchManagement.ParseToDo(Todo3,FALSE);
    Todo3."Last Date Modified" := TODAY;
    Todo3."Last Time Modified" := TIME;
    MobSalesMgt.TodoOnModify(Todo3);
    Todo3.MODIFY;
    TodoBuffer.DELETE;
    END;
    UNTIL Todo3.NEXT = 0;
    
    // Add the following lines.
    END ELSE BEGIN
    Todo2.SETCURRENTKEY("Organizer To-do No.","System To-do Type");
    Todo2.SETRANGE("Organizer To-do No.",OldTodoNo);
    IF "Team Code" = '' THEN
    Todo2.SETFILTER(
    "System To-do Type",
    '%1|%2',
    Todo2."System To-do Type"::"Salesperson Attendee",
    Todo2."System To-do Type"::"Contact Attendee")
    ELSE
    Todo2.SETFILTER("System To-do Type",'<>%1',Todo2."System To-do Type"::Team);
    IF Todo2.FIND('-') THEN
    REPEAT
    TodoBuffer.INIT;
    TodoBuffer.TRANSFERFIELDS(Todo2,FALSE);
    TodoBuffer.INSERT;
    Todo2.TRANSFERFIELDS(Rec,FALSE);
    Todo2."System To-do Type" := TodoBuffer."System To-do Type";
    IF Todo2."System To-do Type" = Todo2."System To-do Type"::"Contact Attendee" THEN
    Todo2.VALIDATE("Contact No.",TodoBuffer."Contact No.")
    ELSE
    Todo2."Salesperson Code" := TodoBuffer."Salesperson Code";
    Todo2.MODIFY(TRUE);
    TodoBuffer.DELETE;
    UNTIL Todo2.NEXT = 0;
    // End of the added lines.
    
    END;
    END;
    ...
    
  2. Yapılacaklar Listesi sayfasındaki (5096) Özellikler Eylemi kodunu aşağıdaki gibi değiştirin:

    ...
    { 33      ;1   ;Action    ;
                          CaptionML=ENU=&Create To-do;
                          Promoted=Yes;
                          PromotedCategory=Process;
                          OnAction=VAR
                                     TempToDo@1001 : TEMPORARY Record 5080;
                                   BEGIN
                                     TempToDo.CreateToDoFromToDo(Rec);
                                   END;
                                    }
    
    // Add the following lines.
    { 1034 ;1 ;Action ;
    Name=<Action1034>;
    CaptionML=ENU=Edit Organizer To-Do;
    RunObject=Page 5098;
    RunFormLink=No.=FIELD(Organizer To-do No.);
    Image=Edit;
    PromotedCategory=Process }
    // End of the added lines.
    
    ...
    
  3. Yapılacaklar Kartı sayfasındaki Özellikler kodunu (5098) aşağıdaki gibi değiştirin:

    ... 
    RecurringDateIntervalEditable := TRUE;
    "Contact No.Editable" := TRUE;
    END;
    
    // Add the following lines.
    OnOpenPage()
    IF (GETFILTER("No.") = '' ) AND ISSERVICETIER THEN
    CurrPage.EDITABLE := FALSE;
    END;
    // End of the added lines.
    
    ...
    

Önkoşullar

Bu düzeltmeyi uygulamak için aşağıdaki ürünlerden birini yüklemiş olmanız gerekir:

  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 Service Pack 1

Kaldırma bilgileri

Bu düzeltmeyi kaldıramazsınız.

Durum

Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır.

Not: Bu, doğrudan Microsoft destek kuruluşu tarafından hazırlanmış bir "HIZLI YAYIMLAMA" makalesidir. Burada yer alan bilgiler acil sorunlar karşısında bu şekliyle verilir. Kullanıma sunma hızının bir sonucu olarak, materyaller yazım hataları içerebilir ve herhangi bir zamanda önceden haber verilmeksizin revize edilebilir. Göz önünde bulundurulması gereken diğer hususlar için Kullanım Koşulları'na bakın.