Quantcast
Channel: Microsoft Dynamics AX Forum - Recent Threads
Viewing all 175888 articles
Browse latest View live

RE: Accounting date at the Purchase Requisition

$
0
0

Hello Kim,

Purchase requisitions do not create any GL transactions, as you just request something but do not record item transactions that add a monetary value.

The thing with the budgeting is that you can enable a budget check for purchase requisitions in the budget control form.

When doing that you have to specify, which budget should be checked against the PR amount - e.g. budget 2018, 2019, ... - and therefore you need a date value.

Does this clarify things?

Best regards,

Ludwig


RE: Is it possible to add the column "Available physical" to the Transfer Order lines?

$
0
0

Hello Sean The Michael,

Why is it necessary to display this info in the transfer order form?

Out of the box you can get this information with one click.

Simply select inventory - onhand and you can see the available physical qty.

Best regards,

Ludwig

Master planning log: Number of Level

$
0
0

Hi,

I've got a strange behaviour in a customer's productive environment (2009). Master planning stopped due to an errror that item disposition has been stopped, because of the maximum number of bom levels exceeded. So I increased the Maximum number from 20 to 25 levels in BOM parameters.

Now everything works great again. But when I take look on the log form of the master planning, then I noticed that "Number of levels" only is logged with an value of 13. So customer is wondering about that value, because they excpected a value something higher than 20.

So can anybody tell me, how the logged "Number of Levels" field is calculated?

RE: fiscal period

$
0
0

Hello Nazim2015,

What exactly is the process of roll foward?

Is this the process of recording the opening transactions that you can find in GL / fiscal year close?

Do you know if the fiscal period close has been run before?

If this is the case, can you check whether the parameter 'set fiscal year status to closed' has been enabled in the GL parameters?

Best regards,

Ludwig

RE: Accounting date at the Purchase Requisition

$
0
0

Thanks, Ludwig, for your comment.   When set up the budget, you have an amount for each GL account in that budget.  Until the PO receipt is post which links to the GL->then links to budget.   Then the PO is really matter.  PR has no GL impact.  Where is the connection between PR and budget?  You mentioned the check box.  I got that.  I can't seem to understand the practical side of it.  

Accounting date at the Purchase Requisition

$
0
0

Hi All, 

When placed a purchase requisition, there is a field named Accounting date.  Based on my brief research, that date is for budget.  

At what point does this date matter?  At the point of Product Receipt?  I would think at that point, it hits GL (inventory account for example), then it links to budget.  Budget has a cycle which is the date range.  So the Accounting date determine which budget cycle this PO falls into?  Is this the purpose of the Accounting date?  Could somebody share your thoughts?  Thanks so much!

RE: 3 ways matching - if exceeds tolerant limit

$
0
0

Hi,

I assume that you matched the PO receipt(s) with the PO invoice and then send it over to the approver.

Once the approver approved the invoice you should then be able to invoice directly.

Is this not possible in your case? Do you get an error/warning message when trying to do that?

Best regards,

Ludwig

RE: Rename SQL Database Names for Dynamics AX UAT Server

$
0
0

Hi Nickolaos,

Thank you for your quick response. ok i understand about AOS. now what you will suggest about Retail related databases like Async, retail shops databases etc. can we change their name easily also ?

regards,

Kamran  


Rename SQL Database Names for Dynamics AX UAT Server

$
0
0

Hello Fellows,

We have production as well as UAT environment for AX. we have same database name in UAT SQL server as in LIve SQL.

now i want to change only databases name in UAT SQL server to make it different from Live.

I will do rename but kindly tell me what and where are the changes do in Dynamics AX to take impact of new names.

including Roles as "AOS, Report Server, Retail,  and Management reporter''.

Regards,

Kamran J

RE: 3 ways matching - if exceeds tolerant limit

$
0
0

It may be possible in my case.  If it exceeds the tolerant limits, and if I set the AP Parameter->Post invoice with discrepancies->Choose "Required approval" then when it exceeds the tolerant limits, it, then goes to the approver, correct?  Thanks

Shows Only one sales order rights is system admin

$
0
0

i have two user both have same rights system admin but in one user shows all sales order but in second user only one sales order show how to solve that

RE: Accounting date at the Purchase Requisition

$
0
0

Hello Kim,

The budget relationship to the PR is just a check whether sufficient budget is available for that requisition if it later on becomes a PO that creates some costs.

It it thus more like an early warning indicator whether one can go ahead with the purchase requisition or has to ask for additional budget before the PR can be processed and converted into a PO.

Does this make sense to you?

Best regards,

Ludwig

RE: Accounting date at the Purchase Requisition

$
0
0

Ah!  Yes, it makes sense.  I see it now.  You are so smart!  Thank you, Ludwig.

RE: 3 ways matching - if exceeds tolerant limit

$
0
0

Hello Kim,

What this parameter does is, it makes the following tab available in the matching form

If you have a price tolerance then the approver has to open this form and select the approved/yes button, which is a manual task.

When using a workflow, I do not like to activate this parameter as the approvals and checks are all tracked in the workflow. Activating this parameter would add another manual step that interrupts the whole workflow.

If you do not use workflows then you can make use of this parameter to get a formal approval of the variance.

Best regards,

Ludwig

RE: Adding customized field posted date time into ledgerstatement Report

$
0
0

Hi Zeeshan,

As I said earlier, you have to add PostedDateTime field to LedgerTransStatementTmp and LedgerTransStatementStagingTmp.

Then modify populateTempTableLedgerInStaging method in LedgerTransStatementDP class as below:


private void populateTempTableLedgerInStaging(
    LedgerTransStatementStagingTmp _ledgerTransStatementTmp,
    Query _query,
    FromDate _startDate,
    ToDate _endDate,
    boolean _includeOpening,
    boolean _includeClosing,
    Name _dimensionFocusName,
    boolean _includeIntercompanyTaxVoucher)
{
    boolean                             hasRangesOrFilters = SysQuery::queryHasRangesOrFilters(_query);
    RecordInsertList                    recordInsertList;
    TransDate                           periodStartDate;
    QueryBuildDataSource                qbdsGJAE, qbdsGJE, qbdsFCP, qbds, qbdsLedger, qbdsCompanyInfo;
    QueryRun                            queryRun;
    GeneralJournalAccountEntry          generalJournalAccountEntry;
    GeneralJournalEntry                 generalJournalEntry;
    Ledger                              ledger;
    CompanyInfo                         companyInfo;
    FiscalCalendarPeriod                fiscalCalendarPeriod;
    FiscalPeriodType                    opening = FiscalPeriodType::Opening;
    SubledgerVoucherGeneralJournalEntry subledgerVoucherGeneralJournalEntry, subledgerVoucherGeneralJournalEntry2;
    AmountMST                           zeroAmount = 0.0;
    Voucher                             emptyVoucher = '';
    int                                 i;
    DimensionFocusBalance               dimensionFocusBalance;
    TaxTransGeneralJournalAccountEntry  taxTransGeneralJournalAccountEntryForTax, taxTransGeneralJournalAccountEntryForVoucher;
    TaxTrans                            taxTrans;
    LedgerTransStatementStagingTmp      localLedgerTransStatmentTmp;

    this.setUserConnection(localLedgerTransStatmentTmp);
    localLedgerTransStatmentTmp.linkPhysicalTableInstance(_ledgerTransStatementTmp);

    periodStartDate = FiscalCalendars::findOpeningStartDateByDate(CompanyInfo::fiscalCalendarRecId(), _startDate);

    if (hasRangesOrFilters)
    {
        // The query has multiple top level data sources all of which get run when the quer is run. We are interested in only
        // Ledger records so disable the other top level data sources.
        for (i = 1; i <= _query.childDataSourceCount(); i++)
        {
            qbds = _query.childDataSourceNo(i);
            if (qbds.table() != tableNum(GeneralJournalAccountEntry))
            {
                qbds.enabled(false);
            }
        }

        // Ranges or filters exist, so the GeneralJournalAccountEntry records to process must
        // be looped over individually. Group by RecId and include other
        // fields that are in the select list to populate the trans list.
        qbdsGJAE = _query.dataSourceTable(tableNum(GeneralJournalAccountEntry));

        // Filter to the current date range
        qbdsGJE = qbdsGJAE.addDataSource(tableNum(GeneralJournalEntry));
        qbdsGJE.fetchMode(QueryFetchMode::One2One);
        qbdsGJE.joinMode(JoinMode::InnerJoin);
        qbdsGJE.addLink(fieldNum(GeneralJournalAccountEntry, GeneralJournalEntry), fieldNum(GeneralJournalEntry, RecId));
        qbdsGJE.addRange(fieldNum(GeneralJournalEntry, AccountingDate)).value(SysQuery::range(periodStartDate, _endDate, true));
        qbdsGJE.addRange(fieldNum(GeneralJournalEntry, Ledger)).value(queryValue(Ledger::current()));

        // Get the fiscal period type
        qbdsFCP = qbdsGJE.addDataSource(tableNum(FiscalCalendarPeriod));
        qbdsFCP.fetchMode(QueryFetchMode::One2One);
        qbdsFCP.joinMode(JoinMode::InnerJoin);
        qbdsFCP.addLink(fieldNum(GeneralJournalEntry, FiscalCalendarPeriod), fieldnum(FiscalCalendarPeriod, RecId));

        // Get the company
        qbdsLedger = qbdsGJE.addDataSource(tableNum(Ledger));
        qbdsLedger.fetchMode(QueryFetchMode::One2One);
        qbdsLedger.joinMode(JoinMode::InnerJoin);
        qbdsLedger.addSelectionField(fieldNum(Ledger, PrimaryForLegalEntity));
        qbdsLedger.addLink(fieldNum(GeneralJournalEntry, Ledger), fieldnum(Ledger, RecId));
        qbdsCompanyInfo = qbdsLedger.addDataSource(tableNum(CompanyInfo));
        qbdsCompanyInfo.fetchMode(QueryFetchMode::One2One);
        qbdsCompanyInfo.joinMode(JoinMode::InnerJoin);
        qbdsCompanyInfo.addSelectionField(fieldNum(CompanyInfo, DataArea));
        qbdsCompanyInfo.addLink(fieldNum(Ledger, PrimaryForLegalEntity), fieldnum(CompanyInfo, RecId));

        // Filter out closing transactions if necessary
        if (!_includeClosing)
        {
            qbdsFCP.addRange(fieldNum(FiscalCalendarPeriod, Type)).value(SysQuery::valueNot(FiscalPeriodType::Closing));
        }

        // Group by GeneralJournalAccountEntry.RecId to prevent the cardinality of the result set from increasing
        // due to other data sources added by the user in the SysQuery form
        qbdsGJAE.addGroupByField(fieldNum(GeneralJournalAccountEntry, RecId));
        qbdsGJAE.addGroupByField(fieldNum(GeneralJournalAccountEntry, GeneralJournalEntry));
        qbdsGJAE.addGroupByField(fieldNum(GeneralJournalAccountEntry, LedgerDimension));
        qbdsGJAE.addGroupByField(fieldNum(GeneralJournalAccountEntry, Text));
        qbdsGJAE.addGroupByField(fieldNum(GeneralJournalAccountEntry, TransactionCurrencyCode));
        qbdsGJAE.addGroupByField(fieldNum(GeneralJournalAccountEntry, PostingType));
        qbdsGJE.addGroupByField(fieldNum(GeneralJournalEntry, AccountingDate));
        qbdsGJE.addGroupByField(fieldNum(GeneralJournalEntry, PostingLayer));
        qbdsFCP.addGroupByField(fieldNum(FiscalCalendarPeriod, Type));

        // SEFA.DUM:
        //-->
        qbdsGJE.addGroupByField(fieldNum(GeneralJournalEntry, DocumentDate));
        //<--

        // Fill the staging table with the set of GJAE records to process
        new SkipAOSValidationPermission().assert();
        recordInsertList = new RecordInsertList(tableNum(LedgerTransStatementStagingTmp), true, true, true, true, true, _ledgerTransStatementTmp);
        queryRun = new queryRun(_query);

        while (queryRun.next())
        {
            _ledgerTransStatementTmp.clear();

            generalJournalAccountEntry = queryRun.get(tableNum(GeneralJournalAccountEntry)) as GeneralJournalAccountEntry;

            _ledgerTransStatementTmp.GeneralJournalAccountEntry = generalJournalAccountEntry.RecId;
            _ledgerTransStatementTmp.GeneralJournalEntry = generalJournalAccountEntry.GeneralJournalEntry;
            _ledgerTransStatementTmp.LedgerDimension = generalJournalAccountEntry.LedgerDimension;
            _ledgerTransStatementTmp.TransTxt = generalJournalAccountEntry.Text;
            _ledgerTransStatementTmp.CurrencyCode = generalJournalAccountEntry.TransactionCurrencyCode;
            _ledgerTransStatementTmp.LedgerPostingType = generalJournalAccountEntry.PostingType;

            generalJournalEntry = queryRun.get(tableNum(GeneralJournalEntry)) as GeneralJournalEntry;
            _ledgerTransStatementTmp.TransDate = generalJournalEntry.AccountingDate;
            _ledgerTransStatementTmp.PostingLayer = generalJournalEntry.PostingLayer;

            // SEFA.DUM:
            //-->
            _ledgerTransStatementTmp.LcwDocumentDate = generalJournalEntry.DocumentDate;
            //<--

            fiscalCalendarPeriod = queryRun.get(tableNum(FiscalCalendarPeriod)) as FiscalCalendarPeriod;
            _ledgerTransStatementTmp.PeriodCode = fiscalCalendarPeriod.Type;

            if (_includeOpening && _ledgerTransStatementTmp.PeriodCode == FiscalPeriodType::Opening && _startDate == periodStartDate)
            {
                // Special case if this is an opening transaction and the date range includes the period start date and
                // includeOpeningTransactions is selected, then the opening transactions should be treated like normal
                // operating transactions to include them in the list of transactions
                _ledgerTransStatementTmp.PeriodCode = FiscalPeriodType::Operating;
            }
            else if (generalJournalEntry.AccountingDate < _startDate)
            {
                // Other special case where start date of the report is after the start of the period, so operating
                // transactions should be treated as opening to include them in the opening balance
                _ledgerTransStatementTmp.PeriodCode = FiscalPeriodType::Opening;
            }

            companyInfo = queryRun.get(tableNum(CompanyInfo)) as CompanyInfo;
            _ledgerTransStatementTmp.GeneralJournalEntryDataArea = companyInfo.DataArea;

            recordInsertList.add(_ledgerTransStatementTmp);
        }
        recordInsertList.insertDatabase();
        CodeAccessPermission::revertAssert();

        // Re-enable the data sources
        for (i = 1; i <= _query.childDataSourceCount(); i++)
        {
            qbds = _query.childDataSourceNo(i);
            if (qbds.table() != tableNum(GeneralJournalAccountEntry))
            {
                qbds.enabled(true);
            }
        }
    }
    else
    {
        // No filters or ranges were added, so instead populate the table with a simple set-based insert
        // optionally including closing transactions if required
        if (_includeClosing)
        {
            insert_recordset _ledgerTransStatementTmp
                (GeneralJournalAccountEntry,
                GeneralJournalEntry,
                LedgerDimension,
                LedgerPostingType,
                TransTxt,
                CurrencyCode,
                TransDate,
                PostingLayer,
                //Sefa
                LcwDocumentDate,
                //--<
                GeneralJournalEntryDataArea,
                PeriodCode)
            select
                RecId,
                GeneralJournalEntry,
                LedgerDimension,
                PostingType,
                Text,
                TransactionCurrencyCode
            from generalJournalAccountEntry
            join
                AccountingDate,
                PostingLayer,
                //Lcw SEFA:DUM:
                DocumentDate,
                //--<
            from generalJournalEntry
            where generalJournalEntry.RecId == generalJournalAccountEntry.GeneralJournalEntry
                && generalJournalEntry.AccountingDate >= _startDate
                && generalJournalEntry.AccountingDate <= _endDate
                && generalJournalEntry.Ledger == Ledger::current()
            join ledger
                where ledger.RecId == generalJournalEntry.Ledger
            join DataArea from companyInfo
                where companyInfo.RecId == ledger.PrimaryForLegalEntity
            join Type from fiscalCalendarPeriod
                where fiscalCalendarPeriod.RecId == generalJournalEntry.FiscalCalendarPeriod;
        }
        else
        {
            insert_recordset _ledgerTransStatementTmp
                (GeneralJournalAccountEntry,
                GeneralJournalEntry,
                LedgerDimension,
                LedgerPostingType,
                TransTxt,
                CurrencyCode,
                TransDate,
                PostingLayer,
                //LCW Sefa
                LcwDocumentDate,
                //--<
                GeneralJournalEntryDataArea,
                PeriodCode)
            select
                RecId,
                GeneralJournalEntry,
                LedgerDimension,
                PostingType,
                Text,
                TransactionCurrencyCode
            from generalJournalAccountEntry
            join AccountingDate,
                 PostingLayer,
                //Lcw SEFA:DUM:
                DocumentDate,
                //--<
                from generalJournalEntry
                where generalJournalEntry.RecId == generalJournalAccountEntry.GeneralJournalEntry
                    && generalJournalEntry.AccountingDate >= _startDate
                    && generalJournalEntry.AccountingDate <= _endDate
                    && generalJournalEntry.Ledger == Ledger::current()
            join ledger
                where ledger.RecId == generalJournalEntry.Ledger
            join DataArea from companyInfo
                where companyInfo.RecId == ledger.PrimaryForLegalEntity
            join Type from fiscalCalendarPeriod
                where fiscalCalendarPeriod.RecId == generalJournalEntry.FiscalCalendarPeriod
                    && fiscalCalendarPeriod.Type != FiscalPeriodType::Closing;
        }

        // Update for the special case of opening transactions being included in the date range and includeOpening being specified
        // so those transactions should be treated as regular operating transactions
        if (_includeOpening && periodStartDate == _startDate)
        {
            update_recordSet _ledgerTransStatementTmp setting
                PeriodCode = FiscalPeriodType::Operating
                where _ledgerTransStatementTmp.PeriodCode == FiscalPeriodType::Opening;
        }

        // Add any additional operating transactions between the period opening and the start of the report and treat them as
        // opening transactions so that opening + operating == current balance
        if (_startDate > periodStartDate)
        {
            insert_recordset _ledgerTransStatementTmp
                (LedgerDimension, TransDate, PostingLayer, PeriodCode,
                AmountCredit, TransactionCurrencyAmountCredit, PreviousCreditTotal,
                AmountDebit, TransactionCurrencyAmountDebit, PreviousDebitTotal, GeneralJournalEntryDataArea)
            select FocusLedgerDimension, minOf(AccountingDate), PostingLayer, opening,
                sum(CreditAccountingCurrencyAmount), sum(CreditAccountingCurrencyAmount), sum(CreditAccountingCurrencyAmount),
                sum(DebitAccountingCurrencyAmount), sum(DebitAccountingCurrencyAmount), sum(DebitAccountingCurrencyAmount) from dimensionFocusBalance
                group by FocusLedgerDimension, PostingLayer
                where dimensionFocusBalance.AccountingDate >= periodStartDate &&
                    dimensionFocusBalance.AccountingDate < _startDate &&
                    dimensionFocusBalance.Ledger == Ledger::current() &&
                    (dimensionFocusBalance.FiscalCalendarPeriodType == FiscalPeriodType::Opening ||
                        dimensionFocusBalance.FiscalCalendarPeriodType == FiscalPeriodType::Operating) &&
                    dimensionFocusBalance.FocusDimensionHierarchy ==
                        DimensionHierarchy::findByTypeAndName(DimensionHierarchyType::Focus, _dimensionFocusName).RecId
            join ledger
                where ledger.RecId == dimensionFocusBalance.Ledger
            join DataArea from companyInfo
                 group by DataArea
                 where companyInfo.RecId == ledger.PrimaryForLegalEntity;

            update_recordSet _ledgerTransStatementTmp
                setting AmountCredit = _ledgerTransStatementTmp.AmountCredit * -1,
                    TransactionCurrencyAmountCredit = _ledgerTransStatementTmp.TransactionCurrencyAmountCredit * -1,
                    PreviousCreditTotal = _ledgerTransStatementTmp.PreviousCreditTotal * -1
                where _ledgerTransStatementTmp.GeneralJournalAccountEntry == 0;
        }
    }

    // Include revenue/expense posting entry(s) associated with intercompany tax postings
    if (_includeIntercompanyTaxVoucher)
    {
        insert_recordset localLedgerTransStatmentTmp
            (GeneralJournalAccountEntry,
            GeneralJournalEntry,
            LedgerDimension,
            LedgerPostingType,
            TransTxt,
            CurrencyCode,
            TransDate,
            PostingLayer,
            //LCW Sefa
                LcwDocumentDate,
            //--<
            PeriodCode,
            GeneralJournalEntryDataArea)
            select _ledgerTransStatementTmp
                where _ledgerTransStatementTmp.LedgerPostingType == LedgerPostingType::Tax
            join taxTransGeneralJournalAccountEntryForTax
                where taxTransGeneralJournalAccountEntryForTax.GeneralJournalAccountEntry == _ledgerTransStatementTmp.GeneralJournalAccountEntry &&
                    taxTransGeneralJournalAccountEntryForTax.TaxTransRelationship == TaxTransRelationshipType::Tax
            join taxTrans
                where taxTrans.RecId == taxTransGeneralJournalAccountEntryForTax.TaxTrans &&
                    taxTrans.TaxObligationCompany == TaxObligationCompany::Source
            join taxTransGeneralJournalAccountEntryForVoucher
                where taxTransGeneralJournalAccountEntryForVoucher.TaxTrans == taxTrans.RecId &&
                    taxTransGeneralJournalAccountEntryForVoucher.TaxTransRelationship == TaxTransRelationshipType::TransactionLineAccount
            join RecId, GeneralJournalEntry, LedgerDimension, PostingType, Text, TransactionCurrencyCode
                from generalJournalAccountEntry
                where generalJournalAccountEntry.RecId == taxTransGeneralJournalAccountEntryForVoucher.GeneralJournalAccountEntry
            join AccountingDate, PostingLayer,
                //Lcw SEFA:DUM:
                DocumentDate,
                //--<
                from generalJournalEntry
                where generalJournalEntry.RecId == generalJournalAccountEntry.GeneralJournalEntry
            join Type
                from fiscalCalendarPeriod
                where fiscalCalendarPeriod.RecId == generalJournalEntry.FiscalCalendarPeriod &&
                    fiscalCalendarPeriod.Type != FiscalPeriodType::Closing
            join ledger
                where ledger.RecId == generalJournalEntry.Ledger
            join DataArea
                from companyInfo
                where companyInfo.RecId == ledger.PrimaryForLegalEntity &&
                    companyInfo.DataArea != taxTrans.dataAreaId;       // ignore entries from the same company as they will already be included

        // Identify revenue/expense posting entry(s) associated with intercompany tax postings opening balance transactions
        if (_startDate > periodStartDate)
        {
            update_recordSet localLedgerTransStatmentTmp setting
                PeriodCode = opening
                where localLedgerTransStatmentTmp.GeneralJournalEntryDataArea != taxTrans.dataAreaId &&
                    localLedgerTransStatmentTmp.TransDate < _startDate;
        }
    }

    // Fill in the credit amount
    update_recordSet _ledgerTransStatementTmp setting
        AmountCredit = generalJournalAccountEntry.AccountingCurrencyAmount * -1,
        PreviousCreditTotal = generalJournalAccountEntry.AccountingCurrencyAmount * -1,
        TransactionCurrencyAmountCredit = generalJournalAccountEntry.TransactionCurrencyAmount * -1
        join generalJournalAccountEntry where
            generalJournalAccountEntry.RecId == _ledgerTransStatementTmp.GeneralJournalAccountEntry &&
            generalJournalAccountEntry.IsCredit == true;

    // Fill in the debit amount
    update_recordSet _ledgerTransStatementTmp setting
        AmountDebit = generalJournalAccountEntry.AccountingCurrencyAmount,
        PreviousDebitTotal = generalJournalAccountEntry.AccountingCurrencyAmount,
        TransactionCurrencyAmountDebit = generalJournalAccountEntry.TransactionCurrencyAmount
        join generalJournalAccountEntry where
            generalJournalAccountEntry.RecId == _ledgerTransStatementTmp.GeneralJournalAccountEntry &&
            generalJournalAccountEntry.IsCredit == false;

    // Fill in the summation
    update_recordSet _ledgerTransStatementTmp setting
        AccumulatedMST = _ledgerTransStatementTmp.AmountDebit - _ledgerTransStatementTmp.AmountCredit,
        AmountMSTDebCred = _ledgerTransStatementTmp.AmountDebit - _ledgerTransStatementTmp.AmountCredit;

    // Fill in voucher information
    update_recordSet _ledgerTransStatementTmp setting
        Voucher = subledgerVoucherGeneralJournalEntry.Voucher
        join subledgerVoucherGeneralJournalEntry
            where subledgerVoucherGeneralJournalEntry.GeneralJournalEntry == _ledgerTransStatementTmp.GeneralJournalEntry
        notExists join subledgerVoucherGeneralJournalEntry2
            // Only fill in voucher if summarization didn't happen
            where  subledgerVoucherGeneralJournalEntry2.GeneralJournalEntry == _ledgerTransStatementTmp.GeneralJournalEntry
                && subledgerVoucherGeneralJournalEntry2.RecId != subledgerVoucherGeneralJournalEntry.RecId;

    // Fill in the voucher information for summarized records
    update_recordSet _ledgerTransStatementTmp setting
        Voucher = "@SYS342661" // This label is the text "Summarized"
        where _ledgerTransStatementTmp.Voucher == '';
}

After that modify copyToReportTable method in LedgerTransStatementDP as below:

private void copyToReportTable(LedgerTransStatementStagingTmp _ledgerTransStmtStagingTmp)
{
    NoYes isFinalTrue = NoYes::Yes;

    insert_recordset ledgerTransStatementTmp
    (
        MainFocusValue,
        MainFocusName,
        MainFocusDescription,
        PeriodCode,
        TransDate,
        Voucher,
        AmountDebit,
        AmountCredit,
        AccumulatedMST,
        AmountCur,
        TransactionCurrencyAmountDebit,
        TransactionCurrencyAmountCredit,
        AmountMSTDebCred,
        CurrencyCode,
        GeneralJournalAccountEntry,
        GeneralJournalEntry,
        GeneralJournalEntryDataArea,
        PreviousCreditTotal,
        PreviousDebitTotal,
        Reversed,
        SecondaryFocus,
        SecondaryFocusName,
        TaxAmount,
        TaxCode,
        TraceNum,
        TransTxt,
        OffsetAccount,
        IsFinalRecord,
        BudgetModelId,
        LedgerPostingType,
        RecordType,
        BudgetTransactionStatus,
        IsEndingBalance,
        GroupRowNum,
        //Sefa
        LcwDocumentDate,
        //--<
    )
    select
        MainFocusValue,
        MainFocusName,
        MainFocusDescription,
        PeriodCode,
        TransDate,
        Voucher,
        AmountDebit,
        AmountCredit,
        AccumulatedMST,
        AmountCur,
        TransactionCurrencyAmountDebit,
        TransactionCurrencyAmountCredit,
        AmountMSTDebCred,
        CurrencyCode,
        GeneralJournalAccountEntry,
        GeneralJournalEntry,
        GeneralJournalEntryDataArea,
        PreviousCreditTotal,
        PreviousDebitTotal,
        Reversed,
        SecondaryFocus,
        SecondaryFocusName,
        TaxAmount,
        TaxCode,
        TraceNum,
        TransTxt,
        OffsetAccount,
        isFinalTrue,
        BudgetModelId,
        LedgerPostingType,
        RecordType,
        BudgetTransactionStatus,
        IsEndingBalance,
        GroupRowNum,
        //Sefa
        LcwDocumentDate,
        //--<
        from _ledgerTransStmtStagingTmp
    // Re-order the records since the report prints in recid order and the opening transactions were calculated
    // after some initial operating records were created
    order by MainFocusValue, IsEndingBalance, SecondaryFocus, GeneralJournalEntryDataArea, PeriodCode, RecordType, TransDate, Voucher, TaxCode;
}


Adding customized field posted date time into ledgerstatement Report

$
0
0

Can anyone just let me know how to add the customized field into the standard ledgerstatement report in ax 2012.

how to put code in LedgerTransStatementDP classs to get posted date time.

i want to get and show posted date time field for every row in the report. 

        Date            Voucher                             Description           Amount              Posted Date time

8/6/2015      InvoiveV-000000011        Vendor invoice      120,000.00           ?????????????

RE: How to disable a warehouse

$
0
0

Hi Pola,

As far as I know, there is not a stoppin transactions in a warehouse functionality out of the box. You can do customization for this purpose.

For instance add a new NoYesId field to InventLocation tabla named "IsActive". And then customize InventMovement class which is run before every physical transactions.

Add an if statement that checks InventLocation.SdIsActive field in checkUpdatePhysical() method. And do checkFailed if the warehouse is not active.

Best regards,

Sefa

How to disable a warehouse

$
0
0

Hi All,

i was useing some of warehouses and i didn't work with locations,

now i need to stop doing any transaction on those warehouses,

what shall i do !

your response is highly appreciated,

Thanks,

RE: Rename SQL Database Names for Dynamics AX UAT Server

$
0
0

Hi Kamran,

unfortunately I don't have experience in retail stores, but you can test changing the names of these databases one by one, checking that the system works after each step. You just need to find out where the pointer to each db name is maintained in AX.

RE: Shows Only one sales order rights is system admin

$
0
0

One possibility is that the other user is connecting with a wrong client version. I have seen cases where only one record is shown on all grids if a wrong client kernel version (older than AOS kernel version) was used. You could open the About AX 2012 window for both of these clients and compare the kernel version. Is there a difference?

Also, are they connecting to the same AOS and same company? Do they have personalization on forms? What about other forms than sales orders (customers, purchase orders...), are there any differences in what they see?

Viewing all 175888 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>