热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在AOT查询中规避有效时间状态-CircumventValidTimeStateinAOTqueries

IhaveanAOTqueryinDynamicsAX2012whichconsistsoftheHcmWorkerandHcmEmploymenttables(am

I have an AOT query in Dynamics AX 2012 which consists of the HcmWorker and HcmEmployment tables (among others). My problem is that when I create a report (not SSRS), or otherwise use this query, I only get the employees with a valid time state in HcmEmployment.

我在Dynamics AX 2012中有一个AOT查询,它包含HcmWorker和HcmEmployment表(以及其他表)。我的问题是,当我创建报告(而非SSRS)或以其他方式使用此查询时,我只会让员工在HcmEmployment中拥有有效的时间状态。

I would like to get all employees that has a record in this table, even if they doesn't have a current employment - and only once. The optimal solution is to get the record from HcmEmployment for the current employment, if it exists, and otherwise the last record with a start date before "now". However, I can accept a solution where it joins with the last start date.

我想让所有在此表中都有记录的员工,即使他们没有当前的工作 - 只有一次。最佳解决方案是从当前就业的HcmEmployment(如果存在)中获取记录,否则在“现在”之前的最后记录具有开始日期。但是,我可以接受一个与上一个开始日期相连的解决方案。

I would prefer a solution where I do not need to add code every time I use it (i.e. solve it in the AOT query).

我更喜欢一个解决方案,每次我使用它时都不需要添加代码(即在AOT查询中解决它)。

I have tried setting the validTimeStateDateTimeRange property on the query from code, which resulted in duplicate lines if the employee has several employments.

我已经尝试从代码中设置查询的validTimeStateDateTimeRange属性,如果员工有多个就业,则会导致重复的行。

If I set the HcmEmployment datasource to ExistsJoin and firstOnly, then it works in a view, but not on reports (still duplicate records) :( Using this view on reports is not an option, because the users needs to be able to filter on DefaultDimension from HcmEmployment.

如果我将HcmEmployment数据源设置为ExistsJoin和firstOnly,那么它在视图中工作,但不在报表上(仍然是重复记录):(在报表上使用此视图不是一个选项,因为用户需要能够对DefaultDimension进行过滤来自HcmEmployment。

How can I solve this problem?

我怎么解决这个问题?

2 个解决方案

#1


4  

I "solved" my own problem...

我“解决”了我自己的问题......

For some reason the report did not correctly inherit the properties (ExistsJoin) from the AOT query. After dropping the query on the report again, some compilations and the following code in the query init method, it works :) No more duplicate records!

由于某种原因,报告未正确地从AOT查询继承属性(ExistsJoin)。再次在报表上删除查询,查询init方法中的一些编译和以下代码,它工作:)没有更多的重复记录!

this.query().validTimeStateDateTimeRange(DateTimeUtil::minValue(), 
                                         DateTimeUtil::maxValue());

#2


0  

As I see it, you have conflicting options:

在我看来,你有相互矛盾的选择:

I would like to get all employees that has a record in this table, even if they doesn't have a current employment

我想让所有在此表中都有记录的员工,即使他们没有当前的工作

and:

和:

the users needs to be able to filter on DefaultDimension from HcmEmployment

用户需要能够从HcmEmployment过滤DefaultDimension

If the user filters on the employment, should the employee then be printet, if the employment is not selected?

如果用户过滤就业,那么如果未选择就业,员工是否应该打印?

What you probably would like:

你可能想要的:

  • If not filtering on HcmEmployment disable that data source (property Enabled).

    如果不对HcmEmployment进行过滤,则禁用该数据源(属性已启用)。

  • If filtering on HcmEmployment use an exists join.

    如果对HcmEmployment进行过滤,则使用存在连接。

In both cases find the maxof(ValidFrom), maxof(ValidTo) by an independent select.

在这两种情况下,通过独立选择找到maxof(ValidFrom),maxof(ValidTo)。

Have a look on this answer to see how to edit query properties by code.

查看此答案,了解如何按代码编辑查询属性。

Or make two reports, one with and without a query to HcmEmployment.

或者制作两份报告,一份有或没有查询HcmEmployment。


推荐阅读
  • Flutter 核心技术与混合开发模式深入解析
    本文深入探讨了 Flutter 的核心技术,特别是其混合开发模式,包括统一管理模式和三端分离模式,以及混合栈原理。通过对比不同模式的优缺点,帮助开发者选择最适合项目的混合开发策略。 ... [详细]
  • 本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ... [详细]
  • 本文详细介绍了如何利用 Bootstrap Table 实现数据展示与操作,包括数据加载、表格配置及前后端交互等关键步骤。 ... [详细]
  • 本文详细介绍了如何在Android应用中实现重复报警功能。示例代码可在以下路径找到:https://developer.android.com/samples/RepeatingAlarm/index.html。首先,我们将从Manifest文件开始分析。 ... [详细]
  • Django与Python及其他Web框架的对比
    本文详细介绍了Django与其他Python Web框架(如Flask和Tornado)的区别,并探讨了Django的基本使用方法及与其他语言(如PHP)的比较。 ... [详细]
  • 本文详细介绍了 `org.apache.tinkerpop.gremlin.structure.VertexProperty` 类中的 `key()` 方法,并提供了多个实际应用的代码示例。通过这些示例,读者可以更好地理解该方法在图数据库操作中的具体用途。 ... [详细]
  • 如何将955万数据表的17秒SQL查询优化至300毫秒
    本文详细介绍了通过优化SQL查询策略,成功将一张包含955万条记录的财务流水表的查询时间从17秒缩短至300毫秒的方法。文章不仅提供了具体的SQL优化技巧,还深入探讨了背后的数据库原理。 ... [详细]
  • 本文将从基础概念入手,详细探讨SpringMVC框架中DispatcherServlet如何通过HandlerMapping进行请求分发,以及其背后的源码实现细节。 ... [详细]
  • 小编给大家分享一下Vue3中如何提高开发效率,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获, ... [详细]
  • Logging all MySQL queries into the Slow Log
    MySQLoptionallylogsslowqueriesintotheSlowQueryLog–orjustSlowLog,asfriendscallit.However,Thereareseveralreasonstologallqueries.Thislistisnotexhaustive:Belowyoucanfindthevariablestochange,astheyshouldbewritteninth ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • 本文详细介绍了Elasticsearch中的分页查询机制,包括基本的分页查询流程、'from-size'浅分页与'scroll'深分页的区别及应用场景,以及两者在性能上的对比。 ... [详细]
  • HTML前端开发:UINavigationController与页面间数据传递详解
    本文详细介绍了如何在HTML前端开发中利用UINavigationController进行页面管理和数据传递,适合初学者和有一定基础的开发者学习。 ... [详细]
  • 本文将深入探讨 Unreal Engine 4 (UE4) 中的距离场技术,包括其原理、实现细节以及在渲染中的应用。距离场技术在现代游戏引擎中用于提高光照和阴影的效果,尤其是在处理复杂几何形状时。文章将结合具体代码示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • GreenPlum采纳ShareNothing的架构,良好的施展了便宜PC的作用。自此IO不在是DW(datawarehouse)的瓶颈,相同网络的压力会大很多。然而GreenPlum的查问优化策略可能防止尽量少的网络替换。对于首次接触GreenPlum的人来说,必定耳目一新。 ... [详细]
author-avatar
郭建将_683
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有