Microsoft Dynamics AX 2009 "Genel" sekmesine "Yapılandırma" sütun ekledikten sonra bir ürün reçetesi konfigürasyon "Rota kartı günlüğü" iletişim kutusunda düzgün görüntülenmiyor

Şunlar için geçerlidir: Microsoft Dynamics AX 2009 Service Pack 1Microsoft Dynamics AX 2009

Hızlı bir şekilde yayımlanmış makaleleri doğrudan Microsoft destek kuruluş içinde bilgi sağlar. Buradaki bilgiler yanıt olarak ortaya çıkan veya benzersiz konular oluşturulur veya diğer Bilgi Bankası bilgi desteklemek üzere tasarlanmıştır.

Belirtiler


Microsoft Dynamics AX 2009 Rota kartı günlüğü iletişim kutusunda sağ tıklatın ve sonra Kurulumyapılandırma sütun Özet sekmesine eklemek için tıklatın, bir ürün reçetesi (BOM) yapılandırmasını görüntülenmiyor doğru Rota kartı günlüğü iletişim kutusuna ekleyin.

Neden


Microsoft Dynamics AX Gecikmeli bağlantılı veri kaynağı için bir kılavuz denetimi ekleme desteklemediğinden bu sorun oluşur.

Çözüm


Düzeltme Bilgileri

Artık Microsoft tarafından desteklenen bir düzeltme sağlanmaktadır. Ancak bunun yalnızca bu makalede anlatılan sorunu düzeltmesi amaçlanmıştır. Yalnızca bu özel sorunla karşılaşmış olan sistemlere uygulayın. Bu düzeltme ek sınama uygulanabilir. Bu nedenle, bu sorundan ciddi bir şekilde etkilemiyorsa, bu düzeltmeyi içeren bir sonraki sürümü veya sonraki Microsoft Dynamics AX 2009 hizmet paketini beklemenizi öneririz. Not: Özel durumlarda, destek aramaları teknik destek uzmanı Microsoft Dynamics ve ilgili ürünlere yönelik iptal edilebilir çözeceğini giderleri belirleyen belirli bir güncelleştirmenin sorununuzu. Ek destek sorularına ve söz konusu güncelleştirme için geçerli olmayan sorunlara normal destek ücretleri uygulanır.Bu düzeltmeyi Microsoft Dynamics AX 2009 için Service Pack 2 içine eklenmek üzere zamanlanmıştır.

Yükleme bilgileri

Bu düzeltmeyi yüklemeden önce Microsoft Dynamics AX İstemci kullanıcıların sistem kaydedildiğini doğrulayın. Bu düzeltmeyi uyguladığınızda yalnızca istemci kullanıcının oturum açmış olması gerekir. Bu düzeltmeyi uygulamak için bir geliştirici lisansı olması gerekir.Not Kullanıcı hesabının Windows oturumu açma penceresini veya veritabanı oturumu açma penceresi Microsoft Dynamics AX'te kullanıcı Administrators grubunun bir üyesi olmasını öneririz.

Kod değişiklikleri

Microsoft, programlama örneklerini yalnızca gösterim amacıyla zımni veya açık garanti olmadan sağlar. Bu, satılabilirlik veya belirli bir amaca uygunluk açısından zımni garantileri içerir ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama dilini, yordamları oluşturmak ve yordamlardan hata ayıklamak için kullanılan araçları bildiğinizi varsayar. Microsoft destek mühendisleri belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir. Ancak, işlevsellik sağlamak veya yordamlar, belirli gereksinimlerinizi karşılayacak şekilde geliştirmek amacıyla bu örnekleri değiştirmezler.Her zaman, uygulamadan önce test kodu denetimli bir ortamda üretim bilgisayarlarınıza düzeltmeler giderir.Bu düzeltmeyi uygulamak için aşağıdaki adımları izleyin:
  1. ProdJournalFormTransRoute sınıfının datasourceWritePre yöntemi kodu aşağıdaki gibi değiştirin:Varolan kodu
    void datasourceWritePre(){    ;    if (prodJournalRoute.ProdPickList && prodJournalRoute.OprPriority && !prodJournalRoute.ProdPickListJournalId)        prodJournalRoute.ProdPickList = NoYes::No;    if (prodJournalRoute.ProdReportFinished)        prodJournalRoute.ProdInventDimId = InventDim::findOrCreate(inventDim).InventDimId;    else        // Modify the following line.        prodJournalRoute.ProdInventDimId = '';        prodJournalRoute.ProdInventDimId = '';    super();}
    Kod değiştirme
    void datasourceWritePre(){    ;    if (prodJournalRoute.ProdPickList && prodJournalRoute.OprPriority && !prodJournalRoute.ProdPickListJournalId)        prodJournalRoute.ProdPickList = NoYes::No;    if (prodJournalRoute.ProdReportFinished)        prodJournalRoute.ProdInventDimId = InventDim::findOrCreate(inventDim).InventDimId;    else        // The following line is modified.        prodJournalRoute.ProdInventDimId = InventDim::inventDimIdBlank();        prodJournalRoute.ProdInventDimId = '';    super();}
  2. ProdJournalFormTransRoute sınıfının fieldModifiedProdReportFinishedPost yöntemi kodu aşağıdaki gibi değiştirin:Varolan kodu
    void fieldModifiedProdReportFinishedPost(){    InventDim emptyInventDim;    ;    if (prodJournalRoute.ProdReportFinished)    {        if (! prodJournalRoute.ProdInventDimId)            inventDim_ds.create();        inventDim.data(InventDim::find(ProdTable::find(prodJournalRoute.ProdId).InventDimId));    }    else        inventDim.data(emptyInventDim);    inventDim_ds.setCurrent();}
    Kod değiştirme
    void fieldModifiedProdReportFinishedPost(){    // Add the following line.    InventDim emptyInventDim = InventDim::find(InventDim::inventDimIdBlank());    InventDim emptyInventDim;    ;    if (prodJournalRoute.ProdReportFinished)    {        if (! prodJournalRoute.ProdInventDimId)            inventDim_ds.create();        inventDim.data(InventDim::find(ProdTable::find(prodJournalRoute.ProdId).InventDimId));    }    else        inventDim.data(emptyInventDim);    inventDim_ds.setCurrent();}
  3. ProdJournalTransRoute form enableFieldsActive yönteminde kodu aşağıdaki gibi değiştirin:Varolan kodu
    void enableFieldsActive(){    prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,EmplId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryHoursId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryQtyId)).mandatory(prodJournalRoute.isProjMethodConsumed());    projectHour.visible(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed());    projectQuantity.visible(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed());}
    Kod değiştirme
    void enableFieldsActive(){    // Add the following lines.    int i;    container enabledDimFields = InventDim::dimEnabledFieldList();    container dimFields = InventDim::dimFieldList();    ;        prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,EmplId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryHoursId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryQtyId)).mandatory(prodJournalRoute.isProjMethodConsumed());    projectHour.visible(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed());    projectQuantity.visible(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed());    // Add the following lines.    for(i = 0; i < conlen(dimFields) ; i++)    {        if (inventDim_DS.object(conpeek(dimFields, i)))        {            if (prodJournalRoute.ProdInventDimId == InventDim::inventDimIdBlank())            {                inventDim_DS.object(conpeek(dimFields,i)).enabled(false);            }            else            {                inventDim_DS.object(conpeek(dimFields,i)).enabled(confind(enabledDimeFields,i) != 0);            }        }    }}
  4. ProdJournalTransRoute formunda InventDim veri kaynağı nesnesinin özelliklerini değerini aşağıdaki gibi değiştirin:
    • LinkType özelliğinin değeri InnerJoiniçin değiştirin.
    • DelayActive özelliğinin değeri Hayırolarak değiştirin.
  5. "\Forms\ProdJournalTransRoute\DataSources\InventDim\Methods\ validateWrite" nesnesinde aşağıdaki kodu ekleyin.
    public boolean validateWrite(){    boolean ret;    ;    if (inventDim.inventDimId == InventDim::inventDimIdBlank())        return true;    ret = super();        return ret;}
  6. "\Forms\ProdJournalTransRoute\DataSources\InventDim\Methods\ yazma" nesne kodu aşağıdaki gibi değiştirin:Varolan kodu
    void write(){    ;    prodJournalRoute_ds.write();}
    Kod değiştirme
    void write(){    ;    prodJournalRoute_ds.write();    // Add the following line.    element.enableFieldsActive();}
  7. "\Forms\ProdJournalTransRoute\DataSources\ProdJournalRoute\Methods\active" kodu aşağıdaki gibi değiştirin:Varolan kodu
    int active(){    int ret;    ret = super();    journalFormTrans.datasourceActivePost();    if (prodJournalRoute.isProjMethodConsumed())    {        skipWrite = true;        prodJournalRouteProjHour_ds.executeQuery();        prodJournalRouteProjQuantity_ds.executeQuery();        skipWrite = false;    }    element.enableFieldsActive();    return ret;}
    Kod değiştirme
    int active(){    int ret;    // Add the following lines.    ;    journalFormTrans.updateDesign(InventDimFormDesignUpdate::Init);    ret = super();    journalFormTrans.datasourceActivePost();    if (prodJournalRoute.isProjMethodConsumed())    {        skipWrite = true;        prodJournalRouteProjHour_ds.executeQuery();        prodJournalRouteProjQuantity_ds.executeQuery();        skipWrite = false;    }    element.enableFieldsActive();    return ret;}
  8. ProdJournalTransJob form enableFieldsActive yönteminde kodu aşağıdaki gibi değiştirin:Varolan kodu
    void enableFieldsActive(){    prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,EmplId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryHoursId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryQtyId)).mandatory(prodJournalRoute.isProjMethodConsumed());    projectHour.visible(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed());    projectQuantity.visible(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed());}
    Kod değiştirme
    void enableFieldsActive(){  // Add the following lines.    int i;    container enabledDimFields = InventDim::dimEnabledFieldList();    container dimFields = InventDim::dimFieldList();    ;        prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,EmplId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryHoursId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryQtyId)).mandatory(prodJournalRoute.isProjMethodConsumed());    projectHour.visible(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed());    projectQuantity.visible(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed());    prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed());    // Add the following lines.    for(i = 0; i < conlen(dimFields) ; i++)    {        if (inventDim_DS.object(conpeek(dimFields, i)))        {            if (prodJournalRoute.ProdInventDimId == InventDim::inventDimIdBlank())            {                inventDim_DS.object(conpeek(dimFields,i)).enabled(false);            }            else            {                inventDim_DS.object(conpeek(dimFields,i)).enabled(confind(enabledDimeFields,i) != 0);            }        }    }}
  9. ProdJournalTransJob formunda InventDim veri kaynağı nesnesinin özelliklerini değerini aşağıdaki gibi değiştirin:
    • LinkType özelliğinin değeri InnerJoiniçin değiştirin.
    • DelayActive özelliğinin değeri Hayırolarak değiştirin.
  10. "\Forms\ProdJournalTransJob\DataSources\InventDim\Methods\ validateWrite" nesnesinde aşağıdaki kodu ekleyin.
    public boolean validateWrite(){    boolean ret;    ;    if (inventDim.inventDimId == InventDim::inventDimIdBlank())        return true;    ret = super();        return ret;}
  11. "\Forms\ProdJournalTransJob\DataSources\InventDim\Methods\ yazma" nesne kodu aşağıdaki gibi değiştirin:Varolan kodu
    void write(){    ;    prodJournalRoute_ds.write();}
    Kod değiştirme
    void write(){    ;    prodJournalRoute_ds.write();    // Add the following line.    element.enableFieldsActive();}
  12. "\Forms\ProdJournalTransJob\DataSources\ProdJournalRoute\Methods\active" kodu aşağıdaki gibi değiştirin:Varolan kodu
    int active(){    int ret;    ret = super();    journalFormTrans.datasourceActivePost();    if (prodJournalRoute.isProjMethodConsumed())    {        skipWrite = true;        prodJournalRouteProjHour_ds.executeQuery();        prodJournalRouteProjQuantity_ds.executeQuery();        skipWrite = false;    }    element.enableFieldsActive();    return ret;}
    Kod değiştirme
    int active(){    int ret;    // Add the following lines.    ;    journalFormTrans.updateDesign(InventDimFormDesignUpdate::Init);    ret = super();    journalFormTrans.datasourceActivePost();    if (prodJournalRoute.isProjMethodConsumed())    {        skipWrite = true;        prodJournalRouteProjHour_ds.executeQuery();        prodJournalRouteProjQuantity_ds.executeQuery();        skipWrite = false;    }    element.enableFieldsActive();    return ret;}
  13. ProdJournalRoute tablosuna ekleme yöntemi kodu aşağıdaki gibi değiştirin:Varolan kodu
    void insert(){    ttsbegin;    if (! this.LineNum)        this.LineNum = ProdJournalRoute::lastLineNum(this.JournalId) + 1;    if (this.OprFinished)        this.JobFinished = NoYes::Yes;    this.updateRouteConstantRelease();    super();    ttscommit;}
    Kod değiştirme
    void insert(){    ttsbegin;    if (! this.LineNum)        this.LineNum = ProdJournalRoute::lastLineNum(this.JournalId) + 1;    if (this.OprFinished)        this.JobFinished = NoYes::Yes;            // Add the following lines.    if(!this.ProdInventDimId)        this.ProdInventDimId = InventDim::inventDimIdBlank();    this.updateRouteConstantRelease();    super();    ttscommit;}
  14. ProdJournalRoute tablosundaki initValue yöntemi kodu aşağıdaki gibi değiştirin:Varolan kodu
    void initValue(){    super();    this.TransDate= systemdateget();}
    Kod değiştirme
    void initValue(){    super();    this.TransDate= systemdateget();    // Add the following line.    this.ProdInventDimId = InventDim::inventDimIdBlank();}

Ön koşullar

Bu düzeltmeyi uygulamak için herhangi bir önkoşul bulunmamaktadır.

Yeniden başlatma gereksinimi

Bu düzeltmeyi uyguladıktan sonra bilgisayarı yeniden başlatmanız gerekmez.

Durum


Microsoft bu sorunun "Uygulandığı öğe" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.
MICROSOFT VE/VEYA TEDARİKÇİLERİ BELGELERDE HİÇBİR BEYANDA BULUNMAZ VE UYGUNLUĞU, GÜVENİLİRLİĞİ VEYA İÇERDİĞİ BİLGİLERİN DOĞRULUĞU HAKKINDA GARANTİ OLUN VE İLGİLİ GRAFİKLER BU WEB SİTESİNDE ("MATERYALLER") HERHANGİ BİR AMAÇLA YAYINLANMIŞ. MALZEMELERİN TEKNİK YANLIŞLIKLAR VEYA YAZIM HATALARI İÇEREBİLİR VE VERİLMEKSİZİN HERHANGİ BİR ZAMANDA REVİZE EDİLEBİLİR. YÜRÜRLÜKTEKİ YASALARIN İZİN VERDİĞİ AZAMİ ÖLÇÜDE, MICROSOFT VE/VEYA TEDARİKÇİLERİNE REDDETMEKTEDİR VE GÖSTERİMLER, GARANTİ, EXPRESS, ZIMNİ YA DA YASAL DAHİL ANCAK SINIRLI OLUP OLMADIĞINI TÜM GÖSTERİMLER, GARANTİ VE KOŞULLARI DIŞARIDA VEYA BAŞLIK, İHLAL ETMEME, TATMİN EDİCİ KOŞUL VEYA KALİTE, SATILABİLİRLİK VE MALZEMELER AÇISINDAN, BELİRLİ BİR AMACA UYGUNLUK KOŞULLARI.