Sabtu, 02 Februari 2013

Membuat sequence number di Ms.Dynamics AX 2012

Hi Guys, ...
(hhhmmm its been along time i am not using "SPAAXXRTAN!!" ...)
This time i wanna share about ... how to create a new Sequence number in AX 2012, ...wait,... AX 2012?! ... tidak salah ni? ... yes, now i am on my project n using AX 2012.
So far there's not a big different between AX 2012 coding and AX 2009 coding...(i hope so .. Amin)
Ok lets we start.

  1. Buat EDT dari String, ... kita ambil contoh SNId 
  2. Cari dan buka method Loadmodule() di Class NumberSeqModuleProject, lalu tambahkan code berikut. Tentu saja kamu bisa mengkopi dan paste code tersebut dari code yang sudah ada lalu ubah sedikit. ( hello ... buat apa ada fasilitas Copy Paste kalo tidak dimanfaatkan?!)
  3. Buat method di tabel Projparameters 
  4. Lalu buat Job berikut
  5. Jalankan Wizard sequence number, Organization Administration >> CommonForms >> Numbersequences >> Numbersequence >> Generate >> run Wizard
  6. Sekarang kita test, Apakah number sequncenya berfungsi atau tidak. buat Job sebagai berikut.
  7. Sequence number ini pasti kita akan gunakan di sebuah form. Buat formnya lalu tambahkan deklarasi berikut di method publicnya
  8. Setelah itu, di form itu juga buat method berikut
  9. Buat method close di formnya
  10. Terakhir tambahkan method dibawah ini di DataSourcenya
2.{
     datatype.parmDatatypeId(extendedTypeNum(Car Id));
     datatype.parmReferenceHelp(literalStr("@SYS334483"));
     datatype.parmWizardIsManual(NoYes::No);
     datatype.parmWizardIsChangeDownAllowed(NoYes::No);
     datatype.parmWizardIsChangeUpAllowed(NoYes::No);
     datatype.parmWizardHighest(999999);
     datatype.parmSortField(20);
     datatype.addParameterType(NumberSeqParameterType::DataArea, true, false);
     this.create(datatype);
}

3.client server static NumberSequenceReference numRefcarId()
{
     return NumberSeqReference::findReference(extendedTypeNum(car Id));
}

4.static void Carid(Args _args)
{
    NumberSeqModuleProject  NumberSeqModuleProject = new NumberSeqModuleProject();
    ;
    NumberSeqModuleProject.load();
}


6.static void number(Args _args)
{
    NumberSeq  numberSeq;
    CarId num;
    ;
    numberSeq = NumberSeq::newGetNum(ProjParameters::numRefcarId());
    num = numberSeq.num();
    info(num);
}

7. public class FormRun extends ObjectRun
{
    NumberSeqFormHandler numberSeqFormHandler;

}


8. NumberSeqFormHandler numberSeqFormHandler()
{
    if (!numberSeqFormHandler)
    {
        numberSeqFormHandler = NumberSeqFormHandler::newForm(ProjParameters::numRefcarId       ().NumberSequenceId,
                                                             element,
                                                             CarTable_DS,
                                                             fieldNum(CarTable, Car Id)
                                                            );
    }
    return numberSeqFormHandler;
}
9. void close()
{
    if (numberSeqFormHandler)
    {
        numberSeqFormHandler.formMethodClose();
    }
    super();
}

10.
 Create()

void create(boolean append = false,
            boolean extern = false)  // If created externally
{
    element.numberSeqFormHandler().formMethodDataSourceCreatePre();

    super(append);

    if (!extern)
    {
        element.numberSeqFormHandler().formMethodDataSourceCreate(true);
    }
}

Delete()

public void delete()
{
    element.numberSeqFormHandler().formMethodDataSourceDelete();
    super();
}

Write()

public void write()
{
    super();
    element.numberSeqFormHandler().formMethodDataSourceWrite();
}

Validate Write()

public boolean validateWrite()
{
    boolean         ret;
    ret = super();
    ret = element.numberSeqFormHandler().formMethodDataSourceValidateWrite(ret) && ret;
    if (ret)
    {
        CarTable.validateWrite();
    }
    return ret;
}

Link Active()

public void linkActive()
{
    ;
    element.numberSeqFormHandler().formMethodDataSourceLinkActive();
    super();
}

Yup, ... semoga bisa membantu infonya, ...ini aku dapat di http://swathidynamicsax.blogspot.com dan sudah aku test dan ... BerHasil! BerHasil! HOREE!! ... 

 

Erorr CS1963 - An expression tree may not contain a dynamic operation.

Kali ini saya mendapatkan erorr dengan code CS1963, padahal sebelumnya saya sudah mendefinisikan 'var item in Model' di @foreach(var...