17 Mayıs 2018 Perşembe

Boyutları güncelleme(Dimension1,2,3,4) | Dynamics Ax

Örneğin satınalma siparişleri formunda boyutları buton yardımı ile güncellemek istediler. Dimension(1,2,3,4,5) Extended'lerde yok. Bunun için öncelikle ilişkili olarak exdended data type'lerin içine hangi boyutların güncellenmesi isteniyorsa tanımlama yapmamız gerekiyor.
Örneğin Dimension3 için resimdeki gibi bir tanımlama yapabilirsiniz;


Aşağıdaki kodu formun methods kısmına yazdıktan sonra istenilen forma bir buton ekleyip, butonun click'ınde bu methodu çağırabilirsiniz.

void updateDims()

{

    //  Dimensions Değiştirme

    Dialog                  d = new Dialog(strfmt("%1 için boyutları düzenle", PurchLine.ETGInventDimCombinationName));

    DialogField             dlgDimDepartment, dlgDimPerson, dlgDimVehicle, dlgDimPurpose;

    DialogGroup             dlgGroup;

    InventTrans             inventTrans;

    InventTransPosting      inventTransPosting;

    ;



    // Dimensions

    dlgGroup = d.addGroup("@SYS80374");

    dlgGroup.widthMode(FormWidth::ColumnWidth);

    dlgDimDepartment    = d.addFieldValue(typeid(DepartmentDimension),  PurchLine.Dimension[1], "Departman");

    dlgDimPerson        = d.addFieldValue(typeid(PersonDimension),      PurchLine.Dimension[4], "Personel");

    dlgDimVehicle       = d.addFieldValue(typeid(VehicleDimension),     PurchLine.Dimension[5], "Araç");

    dlgDimPurpose       = d.addFieldValue(typeid(PurposeDimension),     PurchLine.Dimension[3], "Amaç");



    if(PurchLine)

    {

        d.run();

        if (d.closedOk())

        {

            ttsbegin;

            PurchLine.selectForUpdate(true);

            PurchLine.Dimension[1] = dlgDimDepartment.value();

            PurchLine.Dimension[4] = dlgDimPerson.value();

            PurchLine.Dimension[5] = dlgDimVehicle.value();

            PurchLine.Dimension[3] = dlgDimPurpose.value();

            PurchLine.doupdate();

            inventTrans = InventTrans::findTransId(PurchLine.InventTransId);

            while select forupdate inventTransPosting

                where inventTransPosting.TransDate      == inventTrans.DateFinancial &&

                      inventTransPosting.Voucher        == inventTrans.Voucher &&

                      inventTransPosting.InventTransId  == inventTrans.InventTransId

            {

                inventTransPosting.Dimension[1] = PurchLine.Dimension[1];

                inventTransPosting.Dimension[4] = PurchLine.Dimension[4];

                inventTransPosting.Dimension[5] = PurchLine.Dimension[5];

                inventTransPosting.Dimension[3] = PurchLine.Dimension[3];

                inventTransPosting.doupdate();

            }

            ttscommit;

            PurchLine_ds.research(true);

        }

    }

    else

        throw warning ("Öncelikle bir satır girmelisiniz!");

}

Siparişlerde -(eksi) fiyat atması | Dynamics Ax

Siparişlerde girilen birim fiyatın sistem tarafında -(eksi) olarak gelmesini madde kartında bulunan
Fiyata esas alınan miktar alanından yapabilirsiniz.


Bu alan -(eksi) olarak seçildiğinde sipariş satırlarına birim fiyatı -(eksi) olarak gelecektir.

3 Mayıs 2018 Perşembe

Toplu İş | Dynamics Ax

Hergün kayıtlarınızın otomatik olarak hesaplanması, güncellenmesi vs. istenilirse;
Toplu işlerden(Temel > Sorgulamalar > Toplu iş) bunu yapabilirsiniz.

Bunun için öncelikle bir class yazmanız gerekecek. Classta yapmak hergün yapılmasını istediğiniz işin kodunu da aşağıdaki gibi yazabilirsiniz. Bu şartlara göre belirlediğim saatte DRTUserGroupList tablosuna insert etmesini istiyorum.

public void run()
{
      UserGroupInfo       UserGroupInfo;
      UserGroupList       UserGroupList;
      DRT_UserGroupList   DrtUserGroupList;
      UserInfo            UserInfo;
      ;

    ttsbegin;

   delete_from DrtUserGroupList;
    while select UserGroupInfo join UserGroupList
        where UserGroupInfo.Id == UserGroupList.groupId
         {
            select  UserInfo
                where  UserInfo.id == UserGroupList.userId;
                    {
                         DrtUserGroupList.clear();
                         DrtUserGroupList.groupId   =  UserGroupList.groupId;
                         DrtUserGroupList.userId    =  UserGroupList.userId;
                         DrtUserGroupList.GroupName =  UserGroupInfo.name;
                         DrtUserGroupList.company   =  UserInfo.company;
                         DrtUserGroupList.UserName  =  UserInfo.name;
                         DrtUserGroupList.insert();
                     }

          }

    ttscommit;
}

Class'ın içerisinde aşağıdaki şekilde bir method oluşturuyoruz ve burda çalıştırıyoruz. Aşağıdaki gibi bir ekran karşımıza çıkıyor. Tamam dedikten sonra Toplu işlere eklemiş oluyoruz.

static void main(Args _args)
{
    DRTUserGroupList DRTUserGroupList = new DRTUserGroupList();
    ;
    if(DRTUserGroupList.prompt())
    {
        DRTUserGroupList.run();
    }
}



Toplu işler'den de gerekli ayarları yapınca; belirttiğimiz sıktıkta Ax otomatik olarak çalıştıracaktır.



Class'ı indirmek için tıklayın.



Total ciro

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