axapta - AX2012 RouteOpr 表单显示单个资源而不是特定资源的所有 RouteOpr 条目
问题描述
我的问题是我们插入了一些具有以下逻辑的 routeOpr(嵌入在作业中,见下文),现在 RouteOpr 表单显示 RouteOpr 表单中的所有 routeOpr 条目,无论选择了哪个资源。
有人可以解释一下“ RouteOpr ”表单如果通过调用它应该是什么
'Organisation administration' / 'Area page' -> select a Ressource and click on 'Applicable for' / 'Operations'
通过一些调试,我已经发现了表单的查询是什么,但我不明白为什么表单不只是显示特定资源的 routeOpr 条目。
RouteOpr routeOpr;
WrkCtrRouteOprActivity wrkCtrRouteOprActivity;
WrkCtrActivity wrkCtrActivity;
WrkCtrActivityRequirementSet wrkCtrActivityRequirementSet;
WrkCtrAbility wrkCtrAbility;
WrkCtrActivityRequirementView wrkCtrActivityRequirementView;
changeCompany('someCompany')
{
WHILE SELECT routeOpr
EXISTS JOIN wrkCtrRouteOprActivity
WHERE routeOpr.RecId == wrkCtrRouteOprActivity.RouteOpr
EXISTS JOIN wrkCtrActivity
WHERE wrkCtrRouteOprActivity.Activity == wrkCtrActivity.RecId
EXISTS JOIN wrkCtrActivityRequirementSet
WHERE wrkCtrActivity.RecId == wrkCtrActivityRequirementSet.Activity
NOTEXISTS JOIN wrkCtrActivityRequirementView
WHERE wrkCtrActivityRequirementSet.RecId == wrkCtrActivityRequirementView.ActivityRequirementSet
NOTEXISTS JOIN wrkCtrAbility
WHERE wrkCtrActivityRequirementView.AbilityType == wrkCtrAbility.AbilityType
&& wrkCtrActivityRequirementView.AbilityRecId == wrkCtrAbility.AbilityRecId
&& (((wrkCtrAbility.LevelValue >= wrkCtrActivityRequirementView.MinimumLevelNeeded)))
&& ((wrkCtrAbility.WrkCtrId == 'someWrkCtrId'))
&& ((wrkCtrAbility.ValidFrom <= systemDateGet())
&& ((wrkCtrAbility.ValidTo >= systemDateGet())))
{
Debug::printDebug(strFmt("%1 %2 %3", routeOpr.OprId, routeOpr.WrkCtrIdCost, routeOpr.ItemRelation));
}
}
我认为我在工作中犯了一些错误和/或忘记了某些东西,也许有人可以帮助我。
select forUpdate route;
select forUpdate routeOpr;
select forUpdate wrkCtrActivityResourceRequirement;
select forUpdate wrkCtrActivityRequirementSet;
select forUpdate wrkCtrActivityRequirement;
route.clear();
route.RouteId = routeVersion.RouteId;
route.OprNum = 10;
route.OprNumNext = 0;
route.OprId = oprId;
route.Level = 1;
route.AccError = 1.00;
route.insert();
routeOpr.clear();
routeOpr.ItemCode = TableGroupAll::Table;
routeOpr.ItemRelation = routeVersion.ItemId;
routeOpr.RouteCode = RouteAll::Route;
routeOpr.RouteRelation = routeVersion.RouteId;
routeOpr.OprId = route.OprId;
routeOpr.ProcessPerQty = 1.00;
routeOpr.FormulaFactor1 = 1.00;
routeOpr.WrkCtrIdCost = ressource;
routeOpr.COL_UnitId = "HMIN";
routeOpr.ProcessTime = str2num(time);
routeOpr.RouteGroupId = "SOLL=IST";
routeOpr.ToHours = 0.0002;
routeOpr.insert();
wrkCtrActivityRequirementSet = routeOpr.activityRequirementSet();
wrkCtrActivityRequirementSet.selectForUpdate(true);
//wrkCtrActivityRequirementSet.LoadPercent = 100;
//wrkCtrActivityRequirementSet.Quantity = 1;
wrkCtrActivityRequirementSet.update();
wrkCtrActivityRequirement.clear();
wrkCtrActivityRequirement.ActivityRequirementSet = wrkCtrActivityRequirementSet.RecId;
wrkCtrActivityRequirement.RelationshipType = WrkCtrActivityRequirementType::Resource;
wrkCtrActivityRequirement.UsedForJobScheduling = NoYes::Yes;
wrkCtrActivityRequirement.UsedForOperationScheduling = NoYes::Yes;
wrkCtrActivityRequirement.insert();
wrkCtrActivityResourceRequirement.clear();
wrkCtrActivityResourceRequirement.setActivityRequirement(wrkCtrActivityRequirement.RecId);
wrkCtrActivityResourceRequirement.WrkCtrId = ressource;
wrkCtrActivityResourceRequirement.insert();
解决方案
除了不正确的工作之外,实际的错误是我没有设置该wrkCtrActivityResourceRequirement.ResourceDataAreaId
字段的值。
所以我做了一个这样设置领域的工作
wrkCtrActivityResourceRequirement.ResourceDataAreaId = curExt2dataareaid(tableNum(WrkCtrTable));
现在显示正确的条目。
(我没有注意到错误,因为该字段已设置visible = No,
,因此未在表格浏览器中显示。)
推荐阅读
- read-the-docs - 如何修复“readthedocs”上的错误“重复构建”?
- python - 第二个窗口中的按钮不起作用
- kubernetes - Kubernetes Cronjob 标记
- c# - 程序未能计算饮料和总人数
- laravel - Laravel/Cache 如何为所有键设置默认时间戳
- javascript - 递归等待的承诺在解决后什么都不做
- angular - 解决 ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it is checked
- kubernetes - 从 DaemonSet 中的每个 Pod 中抓取指标
- python - 如何创建和打开集成 tkinter 和 Reportlabs 包的 pdf?
- android - 用于在 Scrollview 中移动 Google Map 的 Android SupportMapFragment