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.

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...