I have read an article about the getting of current date time in dynamics AX and the answer is DateTimeUtil::getSystemDateTime. for further reading.
name is Arsalan Gulzar and the intent to create this blog is to discuss the problems and issues that developer face in the dynamics AX development and to share the new things that come up with the new version of AX.
Showing posts with label date. Show all posts
Showing posts with label date. Show all posts
Tuesday, January 24, 2012
Thursday, September 15, 2011
Add complex conditions in AOT Query in Dynamics X++
Sometimes you need to add complex conditions in your query to acheive the requirement. Below example will help you to achieve this
So i want to add these condition on query
BudgetSourceTracking.Category == BudgetControlCategory::Original || ( BudgetSourceTracking.Category == BudgetControlCategory::CarryForwardBudget && BudgetSourceTracking.Status == BudgetSourceTrackingStatus::Confirmed) || ( BudgetSourceTracking.Category != BudgetControlCategory::Original && BudgetSourceTracking.Category != includeCarryForward)
----
rangeCrtiteria is any string data type, you notice that i have added the condition of Status field too, but its alos working in this case
rangeCriteria = strfmt('((((%1.%2 == %3) || ((%1.%2 == %4) && %7)) && (%1.%5 == %6)) || ((%1.%2 != %3) && (%1.%2 != %4)))',
query.dataSourceTable(tablenum(BudgetSourceTracking)).name(),
fieldstr(BudgetSourceTracking,Category),
any2int(BudgetControlCategory::Original),
any2int(BudgetControlCategory::CarryForwardBudget),
fieldstr(BudgetSourceTracking,Status),
any2int(BudgetSourceTrackingStatus::Confirmed),
any2int(includeCarryForward));
query.dataSourceTable(tablenum(BudgetSourceTracking), 1).addRange(fieldnum(BudgetSourceTracking, Category)).value(rangeCriteria);
queryRun = new QueryRun(query);
So i want to add these condition on query
BudgetSourceTracking.Category == BudgetControlCategory::Original || ( BudgetSourceTracking.Category == BudgetControlCategory::CarryForwardBudget && BudgetSourceTracking.Status == BudgetSourceTrackingStatus::Confirmed) || ( BudgetSourceTracking.Category != BudgetControlCategory::Original && BudgetSourceTracking.Category != includeCarryForward)
----
rangeCrtiteria is any string data type, you notice that i have added the condition of Status field too, but its alos working in this case
rangeCriteria = strfmt('((((%1.%2 == %3) || ((%1.%2 == %4) && %7)) && (%1.%5 == %6)) || ((%1.%2 != %3) && (%1.%2 != %4)))',
query.dataSourceTable(tablenum(BudgetSourceTracking)).name(),
fieldstr(BudgetSourceTracking,Category),
any2int(BudgetControlCategory::Original),
any2int(BudgetControlCategory::CarryForwardBudget),
fieldstr(BudgetSourceTracking,Status),
any2int(BudgetSourceTrackingStatus::Confirmed),
any2int(includeCarryForward));
query.dataSourceTable(tablenum(BudgetSourceTracking), 1).addRange(fieldnum(BudgetSourceTracking, Category)).value(rangeCriteria);
queryRun = new QueryRun(query);
How to add date range in query at run time in Dynamics AX, X++
It want to add the date range on the query at run time. how can i achieve this.
Ans.
query.dataSourceTable(tablenum(BudgetSourceTracking), 1).addRange(fieldnum(BudgetSourceTracking, TrackingDate)).value(queryRange( fiscalPeriodStartDate, fiscalPeriodEndDate));
Ans.
query.dataSourceTable(tablenum(BudgetSourceTracking), 1).addRange(fieldnum(BudgetSourceTracking, TrackingDate)).value(queryRange( fiscalPeriodStartDate, fiscalPeriodEndDate));
Subscribe to:
Posts (Atom)