7 Ağustos 2017 Pazartesi

Kullanıcı Kimliği güncelleme / Created by Update

Dynamics ax 2009 change created By

Dynamics Ax'ta kullanıcı içe aktarırken, kullanıcı kimliğini otomatik atar. Burdan siz isterseniz değiştirebilirsiniz. İçe aktarırken değiştirmediniz, ileride de bu adın değiştirilmesi istenirse;


Kullanıcılardan gidip değiştirmek istediğim kullanıcıyı Yeniden adlandır yapıp eski kayıtları da AX'ın veri tabanından  güncelleyince istenilen kullanıcı kimliği güncelleniyor.

Unutmamanız gereken şey önceki kayıtlarla tutarlı olması için, kullanıcının kayıt girdiği bütün tablolardaki created by alanını da güncellemeniz gerekiyor (Satınalma, satış, talep vs.). (SQL tarafında bunu yapabilirsiniz.)


Nette araştırdığımda SQL tarafına girmeden, aşağıdaki bir kod yardımıyla(Satınalma, satış, talep vs.) ilgili tablolardaki Created by güncellenebilir diyor ama;
 static void MAA_CreatedBy(Args _args)
{
    PurchTable  PurchTable;

 while  select forUpdate   PurchTable
        where PurchTable.createdBy == "maakb4545"

        if(PurchTable.RecId)
            {
              ttsBegin;
               New OverwriteSystemfieldsPermission().assert();
               PurchTable.overwriteSystemfields(true);
               PurchTable.(fieldNum(PurchTable, CreatedBy)) = "makbl";
               PurchTable.doUpdate();
            ttsCommit;
            }

        CodeAccessPErmission::revertAssert();
    info("bitti");
}
Bu kod çalıştığında; aşağıdaki hatayı veriyor.





Bazı blog sitelerde kodu AOS'ta çalıştırın diye tavsiye edilmiş. Fakat burada da aynı hatayı aldım.

Bu yöntemler çözüm olmayınca ancak SQL tarafından çözüm bulabildim.

SQL tarafına yazdığım kod aşağıdaki gibi.
UPDATE PURCHTABLE SET CREATEDBY='makbl' where CREATEDBY='maakb'

Bu kod PurchTable'ı günceller. Siz diğer tabloları(SalesTable, SalesLine, PurchLine vs.) güncellerken tablo adını değiştirip çalıştırabilirsiniz.





Hiç yorum yok:

Yorum Gönder

Total ciro

static void MAA_SalesTableTotal(Args _args) { SalesTable SalesTable; utcDateTime dateTime; dateTime ...