Jumat, 28 Juni 2019

Membuat proses yang bekerja menggunakan batch job


Proses ini akan bekerja berdasarkan batch job. 
Contoh :
Kita akan membuat suatu proses update pada sebuah table. ex ItemHusna, table master untuk data Item yang datasourcenya dari InventTable

buatlah class. contoh HYNmahasiswa.
class HYNmahasiswa
{
    InventTable         itemTable;
}

buat method : processRecords

[SysEntryPointAttribute(false)]
public void processRecords()
{
    int             counter = 0;
    InventTable       tableInvent;


    //Determines the runtime
    if (xSession::isCLRSession())
    {
        info('Running in a CLR session.');
    }
    else
    {
        info('Running in an interpreter session.');

        //Determines the tier
        if (isRunningOnServer())
        {
            info('Running on the AOS.');
        }
        else
        {
            info('Running on the Client.');
        }
    }
     
//panggil method yang akan mengupdate table ItemHusna

While select tableInvent
{
      this.getDataitem(tableInvent.ItemId);
}

    info(strFmt("Successfully processed %1 records.", counter));
}

//buat mehtod getDataitem([parameter dengan extended data type ItemId]
public void getLeadtime(ItemId  _itemId)
{
    ItemHusna               dataitemhusna;
;

select forupdate dataitemhusna;
ttsbegin;
     dataitemhusna.itemid = _itemid.itemid;
     dataitemhusna.insert();
ttscommit;
}

Buat menuitem Output dengan propertis sebegai berikut.

Label            : [nama label akan muncul di batch queue]
Object type  : Class
Object          : SysOperationServiceController
Parameters   : HYNmahasiswa.getLeadtime

FULL CILL Aplikasi AX.

Pada menu Item action HYNmahasiswa > klik kanan > Open.

maka terbuka form dialog untuk menjalankan batch job. pilih group batch jobnya, atur recurencenya klik OK.

Cloud hosted environment di D365

Biasanya kita menginginkan sebuah environment yang sama dengan LIVE/PROD untuk mengtest sebuah proses. Maka kita bisa menggunakan fitur Clou...