Wednesday, 4 March 2020

AX 2012 x++ set the default financial dimension

DimensionAttributeValue         dimAttrValue;
DimensionAttribute              dimAttr;
DimensionAttributeValueSetStorage davss;
RecId                defaultDimension;
davss = DimensionAttributeValueSetStorage::find(this.DefaultDimension);
dimAttr = DimensionAttribute::findByName(‘MyDimensionName’);
dimAttrValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimAttr, “DimensionValue”, false, true);
if(dimAttrValue)
{
davss.addItem(dimAttrValue);
this.DefaultDimension = davss.save();
}

In case we need to set the Ledger Dimension
 LedgerDimensionFacade::serviceCreateLedgerDimension(LedgerDefaultAccountHelper::getDefaultAccountFromMainAccountRecId(MainAccount::findByMainAccountId(_mainAccount).RecId),_FinDim);
 

Tuesday, 18 February 2020

AX 2012 number sequence by code

NumberSequenceTable numt;
    NumberSequenceReference numR;
    NumberSeq num;   
    EMCClinicParameters _EMCClinicParameters;
    EEMC_ProgRegId _EEMC_ProgRegId;
    select firstOnly _EMCClinicParameters;
    if (_EMCClinicParameters.CustProgramSequnce !="")
    {

       
 
    num = NumberSeq::newGetNumFromCode(_EMCClinicParameters.CustProgramSequnce,NumberSeqScopeFactory::createDefaultScope(), false, false);

 
    this.ProgRegId = num.num();
       
    }

/////////////////////////////////////
///////////////////////// Create the number sequence as type of comapny

Tuesday, 4 February 2020

AX 2012 X++ create Transfer journal

 CommaTextIO     csvFile;
    container       readCon;
    Dialog          dialog;
    DialogField     dfFileName;

    int insertCount,updateCount;
    str 200 DistributionId;
    #AviFiles
    SysOperationProgress progress = new SysOperationProgress();
     InventJournalTrans _InventJournalTrans;
    InventDim _InventDim;
    WMSJournalTrans _WMSJournalTrans;
    InventLocation _InventLocation,_InventLocationTo;
     InventLocationId _InventLocationId,_InventLocationIdTo;
    InventSerialId _InventSerialId;
     NumberSeq                             numberSeq;
    NumberSequenceReference     numberSequenceReference;

    int ProgramDay;
        #define.JournalID(1)
        #define.TransDate(2)
        #define.ItemID(3)
        #define.Qty(4)
        #define.Serial(5)
        #define.LocationFrom(6)
        #define.LocationTo(7)
    super();

    #File
    dialog = new Dialog("Pick the file");
    dfFileName = dialog.addField(extendedTypeStr("FilenameOpen"));
    dialog.filenameLookupFilter(["All files", #AllFiles]);

    if (dialog.run())
    {



        csvFile = new CommaTextIo(dfFileName.value(), 'r');
        csvFile.inFieldDelimiter(',');
        readCon = csvFile.read();



        while(csvFile.status() == IO_Status::OK)
        {
            readCon = csvFile.read();

            if (readCon)
            {
               ttsBegin;
                   _InventJournalTrans.clear();
                  // numberSeq                                   = new NumberSeq();
                  // numberSequenceReference           = InventParameters::numRefInventJournalVoucherId();
                  // numberseq                    = NumberSeq::newGetNum(numberSequenceReference);

                   _InventJournalTrans.initFromInventJournalTable(InventJournalTable::find(_InventJournalTrans.JournalId));
                  // _InventJournalTrans.Voucher           = numberseq.num();
                  _InventJournalTrans.JournalType    = InventJournalType::Transfer;
                  _InventJournalTrans.JournalId=   conPeek(readCon,#JournalID); //cells.item(row, 1).value().bStr();

                  _InventJournalTrans.transdate= str2Date(conPeek(readCon,#TransDate),123);    //cells.item(row, 2).value().date();
                  _InventJournalTrans.itemId= conPeek(readCon,#ItemID);  //cells.item(row,3).value().bStr();
                  _InventJournalTrans.qty= str2num(conPeek(readCon,#Qty)); //cells.item(row,4).value().double()*-1;


                 _InventLocation = InventLocation::find(conPeek(readCon,#LocationFrom));//InventLocation::find(cells.item(row,6).value().bStr());
                 _InventLocationTo = InventLocation::find(conPeek(readCon,#LocationTo));//InventLocation::find(cells.item(row,7).value().bStr());

                _InventDim.clear();
                _InventDim.InventSiteId=_InventLocation.InventSiteId;
                _InventDim.InventSerialId = conPeek(readCon,#Serial);//cells.item(row,5).value().bStr();
               _InventDim.InventLocationId = _InventLocation.InventLocationId;
                 _InventJournalTrans.inventDimId=InventDim::findOrCreate(_InventDim).inventDimId;


               _InventDim.clear();
             _InventDim.InventSiteId=_InventLocationTo.InventSiteId;
            _InventDim.InventSerialId = conPeek(readCon,#Serial);//cells.item(row,5).value().bStr();
            _InventDim.InventLocationId = _InventLocationTo.InventLocationId;
             _InventJournalTrans.ToInventDimId= InventDim::findOrCreate(_InventDim).inventDimId;

              _InventJournalTrans.insert();
                ttsCommit;


                    updateCount++;
                 progress.setCaption("Uploading transfer journal");
                progress.setAnimation(#AviUpdate);
               progress.setText(strfmt("%1 line uploaded", updateCount));
             //   progress.setCount(updateCount, 1);

            }


        }
    }

    info(strFmt("%1 records inserted ",updateCount));

Tuesday, 14 January 2020

AX X++ get the selected grid records

 InventQualityOrderTable _InventQualityOrderTable;
_InventQualityOrderTable = InventQualityOrderTable_DS.getFirst(true);
        while (_InventQualityOrderTable)
        {
         
                 
                  info(strFmt('The order %1 is validated', _InventQualityOrderTable.QualityOrderId));
         

        _InventQualityOrderTable = InventQualityOrderTable_DS.getNext();
        }

AX 2012 X++ validate quality order by code

InventQualityOrderTable _InventQualityOrderTable;
    InventQualityOrderValidate obj ;//= new InventQualityOrderValidate();
   

    obj = InventQualityOrderValidate::construct();
    obj.parmAcceptError(NoYes::Yes);
    obj.parmQualityOrderId('QO19S000009234');
    obj.parmWorker(5637146076);
    obj.run();

Monday, 6 January 2020

AX X++ cancel and UnPick PickList


 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
void cancelPickingRoute()
{
    WMSPickingRoute         WMSPickingRoute = WMSPickingRoute::findBySalesId("SO024406");
    WMSPickingLineCancel    WMSPickingLineCancel;
    WMSOrderTrans           WMSOrderTrans;
    WMSOrderTransUnPick     WMSOrderTransUnPick;
    ;

    switch (WMSPickingRoute.expeditionStatus)
    {
        case WMSExpeditionStatus::Complete :
            while select forupdate WMSOrderTrans
                index hint OrderIdx
            where WMSOrderTrans.fullPallet == 0
            &&    WMSOrderTrans.routeId    == WMSPickingRoute.pickingRouteID
            {
                ttsbegin;
                WMSOrderTransUnPick::newWMSOrderTrans(WMSOrderTrans).unPick(WMSOrderTrans.qty);
                ttscommit;
            }

            while select WMSOrderTrans
                index hint OrderIdx
            where WMSOrderTrans.fullPallet == 0
            &&    WMSOrderTrans.routeId    == WMSPickingRoute.pickingRouteID
            {

Thursday, 7 November 2019

Ax 2012 Post Packing Slip Item Arrival journal x++

 Dialog      dialog;
    DialogField field,filedDate;
    JournalCheckPost        journalCheckPost;
    WMSJournalTable _WMSJournalTable;
    PurchFormLetter_PackingSlip _PurchFormLetter_PackingSlip;
    ;
   


    dialog = new Dialog("Batch Receipt");
    dialog.addText("Receipt");
    field = dialog.addField(extendedTypeStr(ProductReceiptId));
    filedDate = dialog.addField(extendedTypeStr(TransDate));

    dialog.run();
    if (dialog.closedOk())
    {
         _WMSJournalTable = WMSJournalTable::find(WMSJournalTable.journalId);
         ttsbegin;

    _PurchFormLetter_PackingSlip = PurchFormLetter::construct(DocumentStatus::PackingSlip);
    _PurchFormLetter_PackingSlip.showQueryForm(false);
    _PurchFormLetter_PackingSlip.update(_WMSJournalTable,
                                                    field.value() ,
                                                   filedDate.value(),
                                                    PurchUpdate::Recorded,
                                                    AccountOrder::None,
                                                    false,
                                                    false);


    ttscommit;
        info("Done");
    }