Pages

Banner 468 x 60px

 

Thursday, April 19, 2018

Get workflow information using x++

0 comments
Hi Guys, I share how to Get Workflow Information AX using X++ :

Get workflow information using x++ :

Display str ApproveDate()
{
    WorkflowTrackingStatusTable     workflowTrackingStatus;
    WorkflowTrackingTable           workflowTrackingTable;
    WorkflowTrackingCommentTable    workflowTrackingCommentTable;
    UserInfo                        userInfo;
    Name                            _name;

    select firstFast RecId, User from workflowTrackingTable
    order by RecId desc
    join workflowTrackingCommentTable
    where workflowTrackingCommentTable.WorkflowTrackingTable == workflowTrackingTable.RecId
    join UserInfo
    where UserInfo.id == WorkflowTrackingTable.User
    exists join workflowTrackingStatus
    where workflowTrackingTable.WorkflowTrackingStatusTable == workflowTrackingStatus.RecId
    && workflowTrackingStatus.ContextRecId == _getPR.RecId
    && workflowTrackingStatus.ContextTableId == tableNum(PurchreqTable) //PurchTable
    && workflowTrackingTable.TrackingType == WorkflowTrackingType::Approval;
    if (workflowTrackingTable.RecId > 0)
    {
        return ": " + strFmt('Approve Date : %1 - Approve Name : %2',  datetime2str(workflowTrackingCommentTable.createdDateTime,123), userInfo.name);
    }
    else
    {
        return '';
    }
}

Ask me if you have a problem, please email to : adityomagnet@gmail.com
Read more...

Wednesday, April 18, 2018

Rename Product Name in EcoresProductTranslation AX 2012

0 comments
  1. Hai guys, I want to share how to Rename Product Name in EcoresProductTranslation Table AX 2012 :


If you have problem, please email to me : adityomagnet@gmail.com

Thanks in advance
Read more...

throw error in x++

0 comments

throw error in x++ :

public void closeOk()
{
    List                ordersToUpdate = new List(typeName2Type(extendedTypeStr(RecId)));
    FormRun             callerForm = element.args().caller();
    MultiSelectionHelper selection = MultiSelectionHelper::createFromCaller(element.args().caller());
    SalesTable          salesTable = selection.getFirst();
    CustTrans           custTrans;
    BankPaymCancel      bankPaymCancel;
    Args                args;
    MCRCustPaymTable    mcrCustPaymTable;
    UserId              User1, User2;
    ABUUserParameter    ABUUserParameter;
    User2 = curUserId();
    User1 = ABUUserParameter::findUser(User2).User;   
    //if(curUserId() != User1)
    if(curUserId() == User1) // test
    {
        if(salesTable.DocumentStatus == DocumentStatus::PackingSlip ||
           salesTable.DocumentStatus == DocumentStatus::PickingList ||
           salesTable.DocumentStatus == DocumentStatus::Invoice ||
           salesTable.DocumentStatus == DocumentStatus::Confirmation) // test
        {
            throw error("Order sudah di packing / picking / invoice, silahkan konfirmasi ke gudang untuk cancel order");
        }
    }
    //end

    while (salesTable)
    {
        ordersToUpdate.addEnd(salesTable.RecId);
        salesTable = selection.getNext();
    }

    SalesUpdateRemain::cancelRemainderOnManySalesOrders(ordersToUpdate.pack());

    salesTable = selection.getFirst();
    while (salesTable && RetailPricingEngine::isMCROrder(salesTable.SalesId))
    {
        mcrCustPaymTable = MCRCustPaymTable::findByRefRecIDRefTableID(salesTable.RecId, salesTable.TableId);

        if(mcrCustPaymTable && mcrCustPaymTable.CustPaymType == MCRCustPaymType::GiftCard)
        {
            while select forUpdate custTrans
                where custTrans.MCRPaymOrderID == salesTable.SalesId
                      && custTrans.CancelledPayment == NoYes::No
            {
                bankPaymCancel = BankPaymCancel::newBankPaymCancel(custTrans, true);

                args = new Args();
                args.caller(bankPaymCancel);
                args.record(custTrans);
                BankPaymCancel::serverRun(args);
            }
        }

        salesTable = selection.getNext();
    }

    if (callerForm)
    {
        callerForm.dataSource().research(true);
    }

    super();
}

Read more...

create Purchase Requisitions using x++

0 comments
create Purchase Requisitions using x++ :

void clicked()
{
    PurchReqTable                   purchReqTable;
    PurchReqApprovalEventHandler    PurchReqApprovalEventHandler;
    PurchReqLine                    purchReqLine;

    // Get Procurement Category
    InventTable                     _inventTable;
    EcoResProduct                   _EcoResProduct;
    EcoResProductCategory           _EcoResProductCategory;

    ProjTable                       _projTable = projTable::find(RUM_MasterProjectHeader.Value);

    // Get Clicked
    RUM_MasterProjectLines          GetClicked_RUM_MasterProjectLines;

    // Get UnitID
    EcoResProductName               _productName;
    EcoResProductTranslation        _EcoResProductTranslation;


    // get defaultdimension
    DimensionAttribute              _DimensionAttribute;
    DimensionAttributeValue         _DimensionAttributeValue;
    DimensionFinancialTag           _DimensionFinancialTag;
    DimensionAttributeValueSetItem  _DimensionAttributeValueSetItem;
 
    purchReqLine                    _purchReqLine;

    ;

    ttsBegin;
    purchReqTable.clear();
        purchReqTable.initValue();
        purchReqTable.PurchReqId        = NumberSeq::newGetNum(PurchReqTable::numRefPurchReqId()).num();
        purchReqTable.PurchReqName      = RUM_MasterProjectHeader.Description;
        PurchReqTable.ProjId            = RUM_MasterProjectHeader.Value;
        purchReqTable.ProjIdDataArea    = RUM_MasterProjectHeader.dataAreaId;
        PurchReqTable.RequisitionStatus = RUM_MasterProjectHeader.Status;
    purchReqTable.insert();
    ttsCommit;

     for(GetClicked_RUM_MasterProjectLines = getFirstSelection(RUM_MasterProjectLines_ds); GetClicked_RUM_MasterProjectLines; GetClicked_RUM_MasterProjectLines = RUM_MasterProjectLines_ds.getNext() )
    {
           ttsbegin;
           purchReqLine.clear();
                purchReqLine.LineType = PurchReqLineType::Item;
                purchReqLine.initValue();
                purchReqLine.InventDimId                      = GetClicked_RUM_MasterProjectLines.InventDimId;
                purchReqLine.initFromPurchReqTable(purchReqTable);

                //_inventTable = InventTable::find(GetClicked_RUM_MasterProjectLines.itemnumber);
               // select _EcoResProduct where _EcoResProduct.RecId == _inventTable.Product;
               // select _EcoResProductCategory where _EcoResProductCategory.Product == _EcoResProduct.RecId;

                purchReqLine.BuyingLegalEntity                = CompanyInfo::find().RecId;
                purchReqLine.ItemId                           = GetClicked_RUM_MasterProjectLines.ItemNumber;
                purchReqLine.InventDimIdDataArea              = curext();

                // purchReqLine.ProcurementCategory              = _EcoResProductCategory.Category;
                //  purchReqLine.ActivityNumber = salesLine.ActivityNumber;
                //  purchReqLine.ReceivingOperatingUnit = 22565423099;
                //  purchReqLine.DefaultDimension = str2int64("22565466744");
     
                _DimensionAttribute = DimensionAttribute::findByName(RUM_MasterProjectHeader_dimensionlist.text(PurchParameters::find().BITDimensionlist));
                select firstOnly _DimensionAttributeValue where _DimensionAttributeValue.DimensionAttribute == _DimensionAttribute.RecId;
                select firstOnly _DimensionAttributeValueSetItem where _DimensionAttributeValueSetItem.DimensionAttributeValue ==_DimensionAttributeValue.RecId;
             
                purchReqLine.DefaultDimension = _DimensionattributeValueSetItem.DimensionAttributeValueSet;//_DimensionattributeValueSetItem.DimensionAttributevalue;


                purchReqLine.PurchQty           = GetClicked_RUM_MasterProjectLines.QtyPlan;
                purchReqLine.PurchPrice         = GetClicked_RUM_MasterProjectLines.PricePlan;
                purchReqLine.LineAmount         = GetClicked_RUM_MasterProjectLines.QtyPlan * GetClicked_RUM_MasterProjectLines.PricePlan;
                purchReqLine.CurrencyCode       = GetClicked_RUM_MasterProjectLines.CurrencyCode;
                PurchReqLine.RequisitionStatus  = GetClicked_RUM_MasterProjectLines.Status;


                purchReqLine.initFromInventTable(InventTable::find(GetClicked_RUM_MasterProjectLines.itemnumber), true , false);

                //purchReqLine.initFromProjTable(_projTable);
            purchReqLine.insert();
            ttsCommit;
    }

                if (purchReqLine.CurrencyCode != purchReqLine.orig().CurrencyCode && purchReqLine.orig().CurrencyCode)
                {
                    purchReqLine.write();
                }
                if (PurchReqWFStatusTransitionHelper::setPurchReqTable2InReview(purchReqTable.RecId))
                {
                    Workflow::activateFromWorkflowType("PurchReqReview", purchReqTable.RecId, "Auto-Submitted into workflow", false, curUserId() );
                }
                PurchReqWFStatusTransitionHelper::setPurchReqTable2Approved(purchReqTable.RecId,false);

    info(strFmt('Purchase Requisition has been created : %1', purchReqTable.PurchReqId));
}





















void clicked()
{
    PurchReqTable                   purchReqTable;
    PurchReqApprovalEventHandler    PurchReqApprovalEventHandler;
    PurchReqLine                    purchReqLine;

    // Get Procurement Category
    InventTable                     _inventTable;
    EcoResProduct                   _EcoResProduct;
    EcoResProductCategory           _EcoResProductCategory;

    // Get Clicked
    RUM_MasterProjectLines          GetClicked_RUM_MasterProjectLines;

    // Get UnitID
    EcoResProductName               _productName;
    EcoResProductTranslation        _EcoResProductTranslation;

    // get defaultdimension
    DimensionAttribute              _DimensionAttribute;
    DimensionAttributeValue         _DimensionAttributeValue;
    DimensionAttributeValueSetItem  _DimensionAttributeValueSetItem;
    ;

    ttsBegin;
    purchReqTable.clear();
        purchReqTable.initValue();
        purchReqTable.PurchReqId        = NumberSeq::newGetNum(PurchReqTable::numRefPurchReqId()).num();
        purchReqTable.PurchReqName      = RUM_MasterProjectHeader.Description;
        PurchReqTable.ProjId            = RUM_MasterProjectHeader.Value;
        purchReqTable.ProjIdDataArea    = RUM_MasterProjectHeader.dataAreaId;
        PurchReqTable.RequisitionStatus = RUM_MasterProjectHeader.Status;
    purchReqTable.insert();
    ttsCommit;

     for(GetClicked_RUM_MasterProjectLines = getFirstSelection(RUM_MasterProjectLines_ds); GetClicked_RUM_MasterProjectLines; GetClicked_RUM_MasterProjectLines = RUM_MasterProjectLines_ds.getNext() )
    {
           ttsbegin;
           purchReqLine.clear();
                purchReqLine.initValue();
                purchReqLine.initFromPurchReqTable(purchReqTable);

                purchReqLine.InventDimId                      = GetClicked_RUM_MasterProjectLines.InventDimId;

                _inventTable = InventTable::find(GetClicked_RUM_MasterProjectLines.itemnumber);
                select _EcoResProduct where _EcoResProduct.RecId == _inventTable.Product;
                select _EcoResProductCategory where _EcoResProductCategory.Product == _EcoResProduct.RecId;
                select _EcoResProductTranslation where _EcoResProductTranslation.Product == _EcoResProduct.RecId;
                purchReqLine.ProcurementCategory              = _EcoResProductCategory.Category;

                purchReqLine.BuyingLegalEntity                = CompanyInfo::find().RecId;
                purchReqLine.ItemId                           = GetClicked_RUM_MasterProjectLines.ItemNumber;
                purchReqLine.InventDimIdDataArea              = curext();

                //  purchReqLine.ActivityNumber = salesLine.ActivityNumber;
                //  purchReqLine.ReceivingOperatingUnit = 22565423099;

                _DimensionAttribute = DimensionAttribute::findByName(RUM_MasterProjectHeader_dimensionlist.text(PurchParameters::find().BITDimensionlist));
                select firstOnly _DimensionAttributeValue where _DimensionAttributeValue.DimensionAttribute == _DimensionAttribute.RecId;
                select firstOnly _DimensionAttributeValueSetItem where _DimensionAttributeValueSetItem.DimensionAttributeValue ==_DimensionAttributeValue.RecId;
                purchReqLine.DefaultDimension = _DimensionattributeValueSetItem.DimensionAttributeValueSet;

                purchReqLine.PurchQty                       = GetClicked_RUM_MasterProjectLines.QtyPlan;
                purchReqLine.PurchPrice                     = GetClicked_RUM_MasterProjectLines.PricePlan;
                purchReqLine.LineAmount                     = GetClicked_RUM_MasterProjectLines.QtyPlan * GetClicked_RUM_MasterProjectLines.PricePlan;
                purchReqLine.CurrencyCode                   = GetClicked_RUM_MasterProjectLines.CurrencyCode;
                PurchReqLine.RequisitionStatus              = GetClicked_RUM_MasterProjectLines.Status;
                purchReqLine.initFromInventTable(InventTable::find(GetClicked_RUM_MasterProjectLines.ItemNumber), true, false);

            purchReqLine.insert();
            ttsCommit;
    }


                if (purchReqLine.CurrencyCode != purchReqLine.orig().CurrencyCode && purchReqLine.orig().CurrencyCode)
                {
                    purchReqLine.write();
                }
                if (PurchReqWFStatusTransitionHelper::setPurchReqTable2InReview(purchReqTable.RecId))
                {
                    Workflow::activateFromWorkflowType("PurchReqReview", purchReqTable.RecId, "Auto-Submitted into workflow", false, curUserId() );
                }
                PurchReqWFStatusTransitionHelper::setPurchReqTable2Approved(purchReqTable.RecId,false);

    info(strFmt('Purchase Requisition has been created : %1', purchReqTable.PurchReqId));
}
Read more...

Convert time to GMT using x++ :

0 comments
Convert time to GMT using x++ :

DateTimeUtil::date(DateTimeUtil::removeTimeZoneOffset(PurchTable.createdDateTime, TimeZone::GMTPLUS0700_BANGKOK_HANOI_JAKARTA));
Read more...

Display item name product from product number using x++

0 comments
Display item name product from product number using x++ :

display SalesLineShowItemName itemnameproduct()
{
    return EcoResProductTranslation::findByProductLanguage(this.inventTable().Product,"en-us").Name;
}
Read more...

Monday, April 16, 2018

X++ code for check license Microsoft Dynamics AX 2012 R3

0 comments
Hi Everybody,

I want to share X++ code  for check license Microsoft Dynamics AX 2012 R3 :

static void ABUCheckLisense(Args _args)
{

    SysSecRoleEntryPointsTmp    srepTbl;
    SysUserLicenseMetadataTmp   slsaTmp;
    SecurityRole                securityRole;
    CommaTextIo                 commaTextIo;
    FileIOPermission            permission;
    MenuFunction                menuFunction;
    str                         menuLabel;
    str                         fileName = @"C:\Temp\TEST.csv";
    //str                         fileName = "C:\Temp\.csv";
    FromTime                    startTime = timeNow();
    #File

    //delete_from srepTbl;
    //delete_from slsaTmp;

    SysUserLicenseMiner::BuildLicenseMetadataTable(slsaTmp);
    SysUserLicenseMiner::BuildRoleToUserTypeInfo(slsaTmp, srepTbl);

    permission = new FileIOPermission(fileName,#io_write);
    permission.assert();
    commaTextIo = new CommaTextIo(fileName,#io_write);

    //Header
    commaTextIo.write(
        "Entry type",
        "Entry point AOT name",
        "Entry point label",
        "Role AOT name",
        "Role name",
        "License type");

    while select srepTbl
    /*    join securityRole
        where srepTbl.RoleRecId == 1085499//srepTbl.RoleRecId
        && securityRole.RecId == srepTbl.RoleRecId*/
    {
        menuFunction    = null;
        menuLabel       = '';
        switch (srepTbl.EntryPointType)
        {
            case EntryPointType::MenuItemAction:
                menuFunction = new MenuFunction(srepTbl.EntryPointName, MenuItemType::Action);
                break;

            case EntryPointType::MenuItemDisplay:
                menuFunction = new MenuFunction(srepTbl.EntryPointName, MenuItemType::Display);
                break;

            case EntryPointType::MenuItemOutput:
                menuFunction = new MenuFunction(srepTbl.EntryPointName, MenuItemType::Output);
                break;
        }

        if (menuFunction)
        {
            menuLabel = menuFunction.label();
        }

        commaTextIo.write(
            strFmt("%1",srepTbl.EntryPointType),
            srepTbl.EntryPointName,
            menuLabel,
            srepTbl.RoleAotName,
            SysLabel::labelId2String(securityRole.Name),
            strFmt("%1",srepTbl.UserLicType)
            );
    }
    CodeAccessPermission::revertAssert();

    info(strFmt("Total time: %1", timeConsumed(startTime, timeNow())));

}
Read more...

Wednesday, February 21, 2018

RELATION BETWEEN LEDGERDIMENSION AND DIMENSIONATTRIBUTEVALUECOMBINATION AX 2012 USING SQL :

0 comments

RELATION BETWEEN LEDGERDIMENSION AND DIMENSIONATTRIBUTEVALUECOMBINATION AX 2012 USING SQL :



SELECT  A.JOURNALID,C.[DESCRIPTION],
              A.VOUCHER,
              A.ITEMID,
              A.TRANSDATE,
              A.INVENTONHAND ,A.QTY,
              B.INVENTLOCATIONID, B.WMSLOCATIONID,
              (CASE  WHEN C.POSTED = 1 THEN  'YES'
                           WHEN C.POSTED = 0 THEN 'NO'
               END) AS POSTED,
              D.PRODUCTNAME,
              (CASE WHEN A.JOURNALTYPE = 0 THEN 'MOVEMENT'
                           WHEN A.JOURNALTYPE = 2 THEN 'TRANSFER'
                           WHEN A.JOURNALTYPE = 3 THEN 'BOM'
                           WHEN A.JOURNALTYPE = 4 THEN 'COUNTING'
               END) TYP,
               B.INVENTSITEID,
               E.DISPLAYVALUE AS DEPT,
               A.LEDGERDIMENSION,
               (CASE WHEN A.JOURNALTYPE = 3 THEN '1133-1001--'
                           ELSE
               F.DISPLAYVALUE END) AS ACCOUNT,
               (SELECT TOP 1 Y.COSTAMOUNTPHYSICAL / Y.QTY FROM [MDXABU].[DBO].[INVENTTRANSORIGIN] AS X WITH (NOLOCK)
                           INNER JOIN [MDXABU].[DBO].[INVENTTRANS] AS Y WITH (NOLOCK)
                                  ON Y.INVENTTRANSORIGIN = X.RECID
                WHERE X.INVENTTRANSID = A.INVENTTRANSID) AS COSTPRICE,
                (SELECT TOP 1 Y.COSTAMOUNTPHYSICAL  FROM [MDXABU].[DBO].[INVENTTRANSORIGIN] AS X WITH (NOLOCK)
                           INNER JOIN [MDXABU].[DBO].[INVENTTRANS] AS Y WITH (NOLOCK)
                                  ON Y.INVENTTRANSORIGIN = X.RECID
                WHERE X.INVENTTRANSID = A.INVENTTRANSID) AS COSTAMOUNT
INTO #TEMPJOURNAL
FROM [MDXABU].[DBO].INVENTJOURNALTRANS AS A WITH (NOLOCK)
       INNER JOIN [MDXABU].[DBO].INVENTDIM AS B WITH (NOLOCK)
              ON B.INVENTDIMID = A.INVENTDIMID
       INNER JOIN [MDXABU].[DBO].INVENTJOURNALTABLE AS C WITH (NOLOCK)
              ON C.JOURNALID = A.JOURNALID
       INNER JOIN [MDXABU].[DBO].ECORESPRODUCTTRANSLATIONS AS D WITH (NOLOCK)
              ON D.DISPLAYPRODUCTNUMBER = A.ITEMID
       LEFT JOIN [MDXABU].[DBO].[DIMENSIONATTRIBUTEVALUESETITEMVIEW] AS E WITH (NOLOCK)
              ON E.DIMENSIONATTRIBUTEVALUESET = A.DEFAULTDIMENSION
              AND E.DIMENSIONATTRIBUTE = 5637146078
       LEFT JOIN [MDXABU].[DBO].[DIMENSIONATTRIBUTEVALUECOMBINATION] AS F WITH (NOLOCK)
              ON F.RECID = A.LEDGERDIMENSION
       INNER JOIN [MDXABU].[DBO].[INVENTJOURNALTABLE] AS G WITH (NOLOCK)
              ON G.JOURNALID = A.JOURNALID
WHERE CAST(G.POSTEDDATETIME AS DATE) >= @FROMDATE
AND CAST(G.POSTEDDATETIME AS DATE) <= @TODATE
AND A.ITEMID LIKE 'P%'


SELECT B.NAME AS COANAME, * FROM #TEMPJOURNAL AS A WITH (NOLOCK)
       LEFT JOIN [MDXABU].[DBO].[MAINACCOUNT] AS B WITH (NOLOCK)
              ON B.MAINACCOUNTID = A.ACCOUNT

-----------------------------------------------------------------------------------------



SELECT A.INVOICEID,
              A.SALESID,
              A.INVOICEACCOUNT,
              A.INVOICINGNAME,
              A.INVOICEDATE,
              F.INVENTSITEID ,
              F.INVENTLOCATION AS INVENTLOCATIONID,
              E.ITEMGROUPID,
              A.INVOICEAMOUNT,
              B.ITEMID,
              C.PRODUCTNAME,
              B.QTY,
              B.SALESPRICE,
              B.LINEAMOUNTTAX,
              B.LINEAMOUNT,
              (SELECT (SUM(RA.COSTAMOUNTADJUSTMENT) + SUM(RA.COSTAMOUNTPOSTED)) FROM [MDXABU].[DBO].INVENTTRANS AS RA WITH (NOLOCK)
               INNER JOIN [MDXABU].[DBO].INVENTTRANSORIGIN  AS RB WITH (NOLOCK)
               ON RA.INVENTTRANSORIGIN = RB.RECID
               WHERE RB.INVENTTRANSID = B.INVENTTRANSID
              ) AS COGS,
              G.ABUITEMGROUPID AS SUBCATEGORY
 FROM [MDXABU].[DBO].CUSTINVOICEJOUR AS A WITH (NOLOCK)
       INNER JOIN [MDXABU].[DBO].CUSTINVOICETRANS AS B WITH (NOLOCK)
              ON B.INVOICEID = A.INVOICEID
       LEFT JOIN [MDXABU].[DBO].ECORESPRODUCTTRANSLATIONS AS C WITH (NOLOCK)
              ON C.DISPLAYPRODUCTNUMBER = B.ITEMID
       LEFT JOIN [MDXABU].[DBO].INVENTDIM AS D WITH (NOLOCK)
              ON  D.INVENTDIMID = B.INVENTDIMID
              AND D.DATAAREAID = A.DATAAREAID
       LEFT JOIN [MDXABU].[DBO].INVENTITEMGROUPITEM AS E WITH (NOLOCK)
              ON E.ITEMID = B.ITEMID
       INNER JOIN [MDXABU].[DBO].CUSTTABLE AS F WITH (NOLOCK)
              ON F.ACCOUNTNUM = A.INVOICEACCOUNT
              AND F.DATAAREAID = A.DATAAREAID
       INNER JOIN [MDXABU].[DBO].[ABUITEMGROUP] AS G WITH (NOLOCK)
              ON  G.ITEMID = B.ITEMID
              AND G.ABUITEMGROUPID in (@CATEGORY)

       LEFT JOIN [MDXABU].[DBO].[DIMENSIONATTRIBUTEVALUESETITEMVIEW] AS H WITH (NOLOCK)
       ON H.DIMENSIONATTRIBUTEVALUESET = B.DEFAULTDIMENSION
       AND H.DIMENSIONATTRIBUTE = 5637146077
       AND H.DISPLAYVALUE in (@FINDIMBRANCHES)
       LEFT JOIN [MDXABU].[DBO].[DIMENSIONATTRIBUTEVALUECOMBINATION] AS I WITH (NOLOCK)
       ON I.RECID = B.LEDGERDIMENSION

       WHERE A.DATAAREAID = 'ABU'
       AND A.INVOICEDATE >= @FROMDATE
       AND A.INVOICEDATE <= @TODATE

Read more...

FormCtrl using x++ :

0 comments

FormCtrl using x++ :



void clicked()
{
    ABUTallyHeader  _abutallyheader;
    ABUTallyLine    _abutallyline;

    super();

    while select _abutallyheader where
    _abutallyheader.RefRecId == WMSOrderTrans.RecId
    {

        select count(RecId), sum(Qty) from _abutallyline where _abutallyline.RefRecIdRouteLine == _abutallyheader.recid;

        WMSOrderTrans.qty       = _abutallyline.Qty;
        WMSOrderTrans.QtyBOX    = _abutallyline.RecId;

        if (formCtrl)
        {
            formCtrl.fieldModified(fieldNum(WMSOrderTrans, Qty));
            formCtrl.fieldModified(fieldNum(WMSOrderTrans, QtyBOX));
            wmsOrderTrans_ds.refresh();
        }

        info(strFmt("Update qty : %1 And Box : %2",_abutallyline.Qty,_abutallyline.RecId));
    }

}


Read more...

Creating Financial Dimension in General Journals in AX 2012 in X++

0 comments

Creating Financial Dimension in General Journals in AX 2012 in X++ :

AxLedgerJournalTable header = new AxLedgerJournalTable();

AxLedgerJournalTrans trans = new AxLedgerJournalTrans();
container ledgerDimensions, offsetDimensions;

header.parmJournalName("GenJrn");
header.save();

trans.parmAccountType(LedgerJournalACType::Ledger);
trans.parmJournalNum(header.ledgerJournalTable().JournalNum);
ledgerDimensions = ["131100-USA","131100", 1, "COUNTRY","USA"];
trans.parmLedgerDimension(AxdDimensionUtil::getLedgerAccountId(ledgerDimensions));
trans.parmAmountCurDebit(230);
offsetDimensions = ["0103-USA","0103", 1, "COUNTRY", "USA"];
trans.parmOffsetLedgerDimension(AxdDimensionUtil::getLedgerAccountId(offsetDimensions));
trans.save();

Read more...

A financial dimension value is based on the LAND-00013 record and has been used on a transaction. You cannot delete the LAND-00013 record AX 2012

 A financial dimension value is based on the LAND-00013 record and has been used on a  transaction. You cannot delete the LAND-00013 record ...