web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

No record found.

News and Announcements icon
Community site session details

Community site session details

Session Id :
Microsoft Dynamics AX (Archived)

where is trouble query from

(0) ShareShare
ReportReport
Posted on by

Hi Friends,

Looking for suggestion to figure out where is the 'AX' query from, we ran into a problem, a query slows down entire system. See attached.

How can we find out where is this query from in AX, report, query or something else? it'd be better to figure who ran it.

I have searched tables names, but didn't find class or form related to it.

SELECT T1.EXCHADJUNREALIZED,T1.AMOUNTCUR,T1.AMOUNTMST,
T1.DUEDATE,T1.REFRECID,T1.CASHDISCOUNTLEDGERDIMENSION,T1.CASHDISCDATE,
T1.TRANSDATE,T1.POSSIBLECASHDISC,T1.ACCOUNTNUM,T1.USECASHDISC,T1.LASTINTERESTDATE,T1.SETTLEMENTPRIORITYCASHDISCDATE,T1.REPORTINGCURRENCYAMOUNT,T1.EXCHADJUNREALIZEDREPORTING,T1.TDSAMOUNT_IN,T1.TCSAMOUNT_IN,
T1.INTERESTAMOUNT_BR,T1.FINEAMOUNT_BR,T1.INTERESTCODE_BR,T1.FINECODE_BR,T1.INTERESTAMOUNTPAYMCUR_BR,T1.FINEAMOUNTPAYMCUR_BR,
T1.TAXWITHHOLDAMOUNTORIGIN_IN,T1.SETTLEDLINEPERCENT_IN,T1.SETTLEDTOTALAMOUNT_IN,T1.SKS_EPY_SENTTOEPAY,
T1.COLLECTIONLETTER,T1.COLLECTIONLETTERCODE,T1.DATAAREAID,T1.RECVERSION,T1.PARTITION,T1.RECID,
T2.ACCOUNTNUM,T2.TRANSDATE,T2.VOUCHER,T2.INVOICE,T2.TXT,T2.AMOUNTCUR,T2.SETTLEAMOUNTCUR,T2.AMOUNTMST,T2.SETTLEAMOUNTMST,T2.CURRENCYCODE,T2.DUEDATE,
T2.LASTSETTLEVOUCHER,T2.LASTSETTLEDATE,T2.LASTEXCHADJVOUCHER,T2.CLOSED,T2.TRANSTYPE,T2.APPROVED,T2.EXCHADJUSTMENT,T2.DOCUMENTNUM,T2.DOCUMENTDATE,
T2.LASTEXCHADJRATE,T2.FIXEDEXCHRATE,T2.LASTEXCHADJ,T2.CORRECT,T2.BANKCENTRALBANKPURPOSECODE,T2.BANKCENTRALBANKPURPOSETEXT,T2.SETTLEMENT,
T2.INTEREST,T2.COLLECTIONLETTER,T2.DEFAULTDIMENSION,T2.POSTINGPROFILECLOSE,T2.EXCHRATESECOND,T2.ACCOUNTINGEVENT,T2.EXCHRATE,T2.LASTSETTLEACCOUNTNUM,
T2.COMPANYBANKACCOUNTID,T2.THIRDPARTYBANKACCOUNTID,T2.PAYMMODE,T2.PAYMREFERENCE,T2.PAYMMETHOD,T2.CASHPAYMENT,T2.CONTROLNUM,T2.DELIVERYMODE,T2.POSTINGPROFILE,T2.OFFSETRECID,
T2.EUROTRIANGULATION,T2.ORDERACCOUNT,T2.CASHDISCCODE,T2.PREPAYMENT,T2.PAYMSPEC,T2.CUSTEXCHADJUSTMENTREALIZED,T2.CUSTEXCHADJUSTMENTUNREALIZED,T2.PAYMMANLACKDATE,T2.PAYMMANBATCH,
T2.PAYMID,T2.COLLECTIONLETTERCODE,T2.INVOICEPROJECT,T2.LASTSETTLECOMPANY,T2.CANCELLEDPAYMENT,T2.REASONREFRECID,T2.REPORTINGCURRENCYAMOUNT,
T2.REPORTINGEXCHADJUSTMENTREALIZED,T2.REPORTINGEXCHADJUSTMENTUNREALIZED,T2.LASTEXCHADJRATEREPORTING,T2.REPORTINGCURRENCYCROSSRATE,T2.EXCHADJUSTMENTREPORTING,
T2.SETTLEAMOUNTREPORTING,T2.APPROVER,T2.TAXINVOICESALESID,T2.CONCESSIONCONTRACTID,T2.CONCESSIONSETTLEMENTID,T2.RETAILCUSTTRANS,
T2.RETAILSTOREID,T2.RETAILTERMINALID,T2.RETAILTRANSACTIONID,T2.CUSTBILLINGCLASSIFICATION,T2.MCRPAYMORDERID,T2.DIRECTDEBITMANDATE,T2.PAYMSCHEDID,
T2.SKS_DD_ISDIRECTDEBIT,T2.MODIFIEDDATETIME,T2.DEL_MODIFIEDTIME,T2.MODIFIEDBY,T2.MODIFIEDTRANSACTIONID,T2.CREATEDDATETIME,
T2.DEL_CREATEDTIME,T2.CREATEDBY,T2.CREATEDTRANSACTIONID,T2.DATAAREAID,T2.RECVERSION,T2.PARTITION,T2.RECID,
T3.EXCHADJUNREALIZED,T3.AMOUNTCUR,T3.AMOUNTMST,T3.DUEDATE,T3.REFRECID,T3.CASHDISCOUNTLEDGERDIMENSION,T3.CASHDISCDATE,T3.TRANSDATE,T3.POSSIBLECASHDISC,T3.ACCOUNTNUM,T3.USECASHDISC,T3.LASTINTERESTDATE,T3.SETTLEMENTPRIORITYCASHDISCDATE,
T3.REPORTINGCURRENCYAMOUNT,T3.EXCHADJUNREALIZEDREPORTING,T3.TDSAMOUNT_IN,T3.TCSAMOUNT_IN,T3.INTERESTAMOUNT_BR,T3.FINEAMOUNT_BR,T3.INTERESTCODE_BR,T3.FINECODE_BR,T3.INTERESTAMOUNTPAYMCUR_BR,T3.FINEAMOUNTPAYMCUR_BR,T3.TAXWITHHOLDAMOUNTORIGIN_IN,T3.SETTLEDLINEPERCENT_IN,
T3.SETTLEDTOTALAMOUNT_IN,T3.SKS_EPY_SENTTOEPAY,T3.COLLECTIONLETTER,T3.COLLECTIONLETTERCODE,T3.DATAAREAID,T3.RECVERSION,T3.PARTITION,T3.RECID,
T4.LASTCOLLECTIONLETTERJOURDATE,T4.LASTCOLLECTIONLETTERCODE,T4.LASTCOLLECTIONLETTERNUM,T4.DATAAREAID,T4.RECID,
T5.DISPLAYVALUE,T5.RECVERSION,T5.RECID,
T6.PARTY,T6.DATAAREAID,T6.RECID 
FROM CUSTTRANSOPEN T1 CROSS JOIN CUSTTRANS T2 
CROSS JOIN CUSTTRANSOPEN T3 
LEFT OUTER JOIN CUSTTRANSOPENLASTUPDCOLLECTIONLETTER T4 
ON (((((T4.PARTITION=@P1) AND (T4.DATAAREAID IN (@P2) )) 
AND (T4.PARTITION#2=@P3)) AND (T4.DATAAREAID#2 IN (@P4) )) 
AND (T1.RECID=T4.CUSTTRANSOPENRECID AND (T1.DATAAREAID = T4.DATAAREAID) 
AND (T1.PARTITION = T4.PARTITION))) 
LEFT OUTER JOIN DIMENSIONATTRIBUTEVALUECOMBINATION T5 ON ((T5.PARTITION=@P5) AND (T1.CASHDISCOUNTLEDGERDIMENSION=T5.RECID)) 
CROSS JOIN CUSTTABLE T6 WHERE ((T1.PARTITION=@P6) AND (T1.DATAAREAID IN (@P7) )) AND ((T2.PARTITION=@P8) AND ((((T2.APPROVED=@P9) 
AND 1=@P10) AND (T1.ACCOUNTNUM=T2.ACCOUNTNUM AND (T1.DATAAREAID = T2.DATAAREAID) AND (T1.PARTITION = T2.PARTITION))) 
AND (T1.REFRECID=T2.RECID AND (T1.DATAAREAID = T2.DATAAREAID) AND (T1.PARTITION = T2.PARTITION)))) AND (((T3.PARTITION=@P11) 
AND (T3.DATAAREAID IN (@P12) )) AND ((T1.RECID=T3.RECID AND (T1.DATAAREAID = T3.DATAAREAID) AND (T1.PARTITION = T3.PARTITION)) 
AND (T1.RECID=T3.RECID AND (T1.DATAAREAID = T3.DATAAREAID) AND (T1.PARTITION = T3.PARTITION)))) AND (((T6.PARTITION=@P13) AND (T6.DATAAREAID IN (@P14) )) 
AND ((T6.PARTY=@P15) AND (T2.ACCOUNTNUM=T6.ACCOUNTNUM AND (T2.DATAAREAID = T6.DATAAREAID) AND (T2.PARTITION = T6.PARTITION)))) 
ORDER BY T1.ACCOUNTNUM,T1.AMOUNTCUR,T1.REFRECID,T1.DUEDATE,T3.RECID OPTION(FAST 3)

*This post is locked for comments

I have the same question (0)
  • Verified answer
    Martin Dráb Profile Picture
    235,243 Most Valuable Professional on at

    As the first step, I would try cross references of some fields that (hopefully) aren't used at too many places, such as CustTransOpenLastUpdCollectionLetter.LastCollectionLetterCode.

  • Verified answer
    Pedro Tornich Profile Picture
    on at

    Hi Ganriver,

    Inspecting your query I see it joins the CustTransOpen twice with the CustTrans and it's also joining DimensionAttributeValueCombination table. All these tables are known to be large tables. I'm not aware of your database size, but a select like this can really be a problem.

    Since there is no ranges and no TOP clauses this query will return all available records, a behavior usually found in Forms and Reports, but it could also be a batch process.

    You must inquire users to see if someone is getting trouble to open a specific form or report and also check the batch jobs to see if you find some job taking too long to run.

    Just in case it rings any bells, this query seems to be returning all customer open transactions (for all customers) and also their collection letter alongside with the involved cash discount ledger dimension (main account plus financial dimensions used for cash discount). You may check if there is some custom process, form or report that would use this kind of data.

    Keep in mind that this query is most probably being called from a customization.

  • Suggested answer
    Khushhal Garg Profile Picture
    on at

    You can use trace parser. Take trace for shorter duration if you see this query running a lot then trace can capture it and then using tracer parser, you can check stack and see which process is running this query.

  • Verified answer
    Klaas Deforche Profile Picture
    on at

    To answer your question: The query comes from the form CustOpenTrans.

    You can open it from several places, one is: Accounts Receivable > Common > Customers >All customers > Collect > Settle open transactions.

    I'm having issues with this query as well. Very high impact on the overall performance.

  • Ganriver1 Profile Picture
    on at

    Thanks a lot! Guys.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Mansi Soni – Community Spotlight

We are honored to recognize Mansi Soni as our August 2025 Community…

Announcing our 2025 Season 2 Super Users!

A new season of Super Users has arrived, and we are so grateful for…

Congratulations to the July Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > 🔒一 Microsoft Dynamics AX (Archived)

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans