AX2012 审批流流转到已停用的域账号导致审批流停止
AX 2012 中当审批流流转到某个节点时,如果在该节点的审批人的域账号被停用,审批流将会停止,会报如图的错误:
要解决这个问题,得修改标准功能,需要修改SysWorkflow和SysWorkflowWorkItem两个类
public server static void fault(
Microsoft.Dynamics.AX.Framework.Workflow.Runtime.WorkflowContext _workflowContext,
WorkflowUser _user,
WorkflowFaultMessage _faultMessage)
{
UserConnection connection;
SysWorkflowFaultTable faultTable; setPrefix(classStr(SysWorkflow) + '-' + staticMethodStr(SysWorkflow, fault)); new InteropPermission(InteropKind::ClrInterop).assert(); if (CLRInterop::isNull(_workflowContext))
{
throw error(strFmt("@SYS104836", staticMethodStr(SysWorkflow, fault), varStr(_workflowContext)));
}
// CR <Hotfixed> VAR on 2016-07-26 at 15:04:07 Changed by Kim -Begin
if (SysWorkflowTable::find(CLRInterop::getAnyTypeForObject(_workflowContext.get_WorkflowCorrelationId())).RecId != )
// CR <Hotfixed> VAR on 2016-07-26 at 15:04:07 Changed by Kim -End
{
if (appl.ttsLevel() == )
{
SysWorkflow::internalFault(_workflowContext, _user, _faultMessage);
}
else
{
// We are in a nested transaction so we want to do the fault even if the outer transaction
// is rolled back so we do it on a sperate connection.
connection = new UserConnection();
faultTable.setConnection(connection);
if (!SysWorkflowFaultTable::exist(_workflowContext.get_RootCorrelationId()))
{
connection.ttsbegin();
faultTable.RootCorrelationId = _workflowContext.get_RootCorrelationId();
faultTable.FaultMessage = _faultMessage;
faultTable.User = _user;
faultTable.insert();
connection.ttscommit();
}
}
} CodeAccessPermission::revertAssert();
}
// EDD number Hotfix
// EDD description Hot fix
// Layer var
// Model VAR Model
//
// Developer Date Comments
// -------------- ----------------- ------------------------------
// Kim.Ding 三月-22-2016 13:46:01 Created
public static boolean TEC_checkADUser(UserId _userId)
{
xAxaptaUserManager mgr;
xAxaptaUserDetails det;
UserInfo userInfo;
boolean ok = true;
; mgr = new xAxaptaUserManager();
select userInfo where userInfo.Id == _userId;
det = mgr.getDomainUser(userInfo.NetworkDomain,userInfo.id);
if (det == null)
{
ok = false;
}
return ok;
}
/// <summary>
/// Microsoft internal use only.
/// </summary>
/// <param name="_workItemContext">
/// An instance of the <c>CLRObject</c> class.
/// </param>
/// <param name="_isClaimed">
/// A <c>WorkflowWorkItemClaimed</c> value.
/// </param>
/// <returns>
/// A <c>recId</c> value.
/// </returns>
private server static RecId create(
Microsoft.Dynamics.AX.Framework.Workflow.Runtime.WorkItemActivityContext _workItemContext,
WorkflowWorkItemClaimed _isClaimed)
{
..... userContext = _workItemContext.get_User();
user = userContext.get_UserId();
// CR <Hotfix> VAR on 2016-03-22 at 13:49:48 Changed by Kim -Begin
if (!SysWorkflowWorkItem::TEC_checkADUser(user))
{
return ;
}
// CR <Hotfix> VAR on 2016-03-22 at 13:49:48 Changed by Kim -End
autoDelegators = userContext.get_Delegators();
sysWorkflowDocument = SysWorkflowDocument::newDocument(
SysWorkflowConvert::toXppWorkflowContext(workflowContext),
versionTable.workflowTable().TemplateName,
user); .... }
AX2012 审批流流转到已停用的域账号导致审批流停止的更多相关文章
- USB硬件远程共享解决iphone已停用
悲剧的在iphone拆过电池之后,再开机显示iphone已停用,请在23000000分钟后再试一次 算算这得45年了,可以留给孙子用了... 网上除了刷机和有同步过的电脑貌似没有别的办法了 因是旧系统 ...
- iPhone 已停用
如果你的iPhone上出现了如下的显示,你可以参考苹果官网上的 iOS设备已停用 如果你看到了这篇文章,你比我幸运多了. 参考这一个条目,你也许就不会丢失里面的数据了. 可怜的我,出现这个问题时还没 ...
- 为什么手机连接wifi会显示已停用?
1.通常导致手机连接WiFi显示“已停用”故障的原因是由于无线路由器“安全模式”设置不当造成的,对此我们可以通过以下方法来解决: 2.根据无线路由器背面的信息(包括路由器IP地址,登陆用户名和密码), ...
- 【03】Chrome提示印象笔记剪藏插件"已停用不支持的扩展程序"怎么办?
[03] Chrome提示印象笔记剪藏插件"已停用不支持的扩展程序"怎么办? 刚好也遇上了这个问题,百度了一下,以下是解决方法,亲测可行: 1.首先把需要安装的第三方插件,后缀.c ...
- ipad已停用 连接itunes怎么办
问题描述: ipad 开机密码多次输入出错后,提示 ipad已停用 连接itunes 解决方法: 参考: https://jingyan.baidu.com/article/fb48e8bee9ef4 ...
- 对“demo!demo.Index+HookProc::Invoke”垃圾收集的类型已委托回调。这可能会导致应用程序崩溃、损坏和数据丢失。当传递委托给非托管代码,托管应用程序必须让这些委托保持活着
对"demo!demo.Index+HookProc::Invoke"垃圾收集的类型已委托回调.这可能会导致应用程序崩溃.损坏和数据丢失.当传递委托给非托管代码,托管应用程序必须承 ...
- Chrome谷歌浏览器已停用不支持的扩展程序解决方法
在不能上外网的情况下解决该问题: http://www.liu16.com/post/Chrome_2447.html
- Hosts 长期更新【已停】
修改hosts篇 [2018.1.3] 由于google的对应的hosts更新过于频繁,再加上上次(18+1)大之后,国家政策原因,网上hosts更新基本上都停了,github的项目也陆续挂掉了. 还 ...
- AIO5程序中审批跳转条件:超过某一个值必须总经理审批
以实际需求为例看下系统中如何设置: 客户需求:采购订单中对总金额进行限制,超过20000的话必须要经过总经理审批含税金额<20000:采购部门某个员工发起→直接主管批→财务主管知会含税金额≥20 ...
随机推荐
- GFT_News Auto
using AnfleCrawler.Common; using Newtonsoft.Json.Linq; using System; using System.Collections.Generi ...
- Python学习路程day8
Socket语法及相关 socket概念 A network socket is an endpoint of a connection across a computer network. Toda ...
- PCL中point cloud的数据类型
出处: http://wiki.ros.org/pcl/Overview 1.数据类型 1.1 ROS中point cloud数据类型 sensor mesgs::PointCloud sensor ...
- FreeBSD打开DTrace支持
主要翻译自:https://wiki.freebsd.org/DTrace FreeBSD跟Linux发行版一个比较大的差异,就是提倡源码构建.因此这里提到比较多的编译开关设置.自2012年5月后,D ...
- 如何让LinearLayout也有类似Button的点击效果?
有的时候,我们希望LinearLayout布局也有点击的效果,这时候我们不仅需要一个作为背景的selector,还要设置一些其它属性才行: android:clickable="true&q ...
- 史上最详细Windows版本搭建安装React Native环境配置 转载,比官网的靠谱亲测可用
史上最详细Windows版本搭建安装React Native环境配置 2016/01/29 | React Native技术文章 | Sky丶清| 95条评论 | 33530 views ...
- codeforces195c
link:http://codeforces.com/problemset/problem/336/C 从大到小枚举,如果对应的二进制位不等于0,就加进来,最后的sum如果%2^k==0那么就是合法的 ...
- windows Apache+cgi的配置方法
1. 配置config line 119 :打开#LoadModule rewrite_module modules/mod_rewrite.so line 192 :<Directory / ...
- |原创|unity 4.3 2D功能SpriteRenderer修改颜色的方法
4.3增加了不少2D功能,然后实在没有找到有人分享,在国外查资料研究一下午然后给个简单的教程 ===================================================== ...
- VendorNPC.lua --随身商人
print(">>Script: More Vendor NPC.") local NPCNAME="随身商人" --GOSSIP_ICON 菜单图 ...