Dynamics 365 Finance and Operations On-hand List(Eldeki) formunun boyut değerlerine nasıl ulaşılır?

Bu yazıda Dynamics 365 Finance and Operations içinde bir eldeki stokları gösteren On-hand List formunun biraz karışık yapısı var. Formun veri kaynağında InventDim var ancak form direk bu veri kaynağından verileri göstermiyor. Aslında bir sınıf boyut değerlerini yönetiyor. Eğer boyut değerlerine ulaşmanız gerekirse ufak bir kodla düzenleme yapmak gerekiyor.

Bu örnekte eldeki formundan kendi yaptığım bir formu açmak ve InventSum ve belli boyut değerlerini aktarmak istiyorum.

Resim-1

Formun Extension’nını oluşturup bir buton ekliyorum. Bu butonun onClicked eventine kod yazacağız.

Resim-2

Yeni bir sınıf oluşturup aşağıdaki kodu yazıyorum.

class DmrInventOnhandItemFormEventHandler

{

[FormControlEventHandler(formControlStr(InventOnhandItem, DmrSwellShrink), FormControlEventType::Clicked)]

public static void DmrSwellShrink_OnClicked(FormControl sender, FormControlEventArgs e)

{

InventDim               inventDimFrom , dimValues;

InventSum               InventSum       = sender.formRun().dataSource(formDataSourceStr(InventOnhandItem, InventSum)).cursor();

dimValues.data(InventSum.joinChild( )); // Asıl işi yapan kod bu. Boyut değerlerini almamızı sağlıyor.

inventDimFrom.clear();

inventDimFrom.initValue();

inventDimFrom.InventSiteId      = dimValues.InventSiteId;

inventDimFrom.InventLocationId  = dimValues.InventLocationId;

inventDimFrom.InventSizeId      = dimValues.InventSizeId;

inventDimFrom.inventBatchId     = dimValues.inventBatchId;

inventDimFrom = inventDim::findOrCreate(inventDimFrom);

Args                args            = new Args();

Form                formToCall      = new Form(‘DmrSwellShrink’);

FormButtonControl   callerButton    = sender as FormButtonControl;

FormRun             form            = callerButton.formRun();

args.caller(form);

args.object(formToCall );

args.record(InventSum);

args.parm(inventDimFrom.inventDimId);

form = ClassFactory.formRunClass(args);

form.init();

form.run();

form.wait();

}

}

Açılan formun init metodunda aşağıdaki kodla gerekli bilgileri alıyorum.

inventSum       = element.args().record();

inventDimId     = element.args().parm();

inventDimArgs   = InventDim::find(InventDimId);

Bu yazıda eldeki formun boyut değerlerine nasıl ulaşırız bir örnekle göstermeye çalıştım.

Selamlar.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, InventSum, InventDim, InventOnHandItem, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, X++

 
Comment are closed.