Axapta 在服务器端运行的作业需要调用在客户端运行的方法

Axapta 在服务器端运行的作业需要调用在客户端运行的方法,axapta,x++,dynamics-ax-2009,Axapta,X++,Dynamics Ax 2009,假设我有一个在服务器端运行的作业,同一个作业中的一行需要在客户端运行,这可以实现吗?当我尝试在全局类中批量运行方法WeekofYear时,它不会被执行(因为它调用只能在客户端上运行的WINApi类方法) 请协助。我只能建议您创建一个新方法,例如Global::weekOfYearServer,并确保所有WinAPI调用都在服务器上执行-您可以尝试在WinAPIServer类中创建适当的方法。我只能建议您创建一个新方法,例如Global::weekOfYearServer并确保所有WinAPI调用

假设我有一个在服务器端运行的作业,同一个作业中的一行需要在客户端运行,这可以实现吗?当我尝试在全局类中批量运行方法WeekofYear时,它不会被执行(因为它调用只能在客户端上运行的WINApi类方法)


请协助。

我只能建议您创建一个新方法,例如
Global::weekOfYearServer
,并确保所有WinAPI调用都在服务器上执行-您可以尝试在
WinAPIServer
类中创建适当的方法。

我只能建议您创建一个新方法,例如
Global::weekOfYearServer
并确保所有WinAPI调用都在服务器上执行-您可以尝试在
WinAPIServer
类中创建适当的方法。

我在服务器上运行
weekofYear
没有问题。请澄清您遇到的问题。WeekofYear当我批量运行时,我收到错误“服务器端模拟(RunAs)会话试图调用仅可用于客户端处理的方法”我从服务器运行
WeekofYear
。请澄清您遇到的问题。WeekofYear当我在批处理中运行时,出现错误“服务器端模拟(RunAs)会话试图调用仅可用于客户端处理的方法”是否可以将RunBaseBatch中的runsImpersonated()方法设置为false。我试着这么做了,效果很好。但是我不认为像Skaue建议的那样临时使用框架类是个好主意。你可以这样做,但当然你不应该修改
RunBaseBatch.runsImpersonated
,而是应该在你的类中创建一个新方法:
public boolean runsImpersonated(){return false;}
-它将指示批处理框架在客户端上运行此类。非常感谢。我所做的是在我的类BatchJobTry(Extendes RunBaseBatch)中,我重写了runsImpersonated()方法并删除了对super的调用,返回false,它完美地执行。因此,我的结论是,这取决于我操作(是运行客户端还是服务器端)方法的需要,并确保整个作业在客户端或服务器端或两者上完全运行。再次非常感谢。(如果我错了,请纠正我)我很高兴我是对的。谢谢你的推荐。快乐的编码。你可以使用buildin
wkofyr()
函数,但前提是你同意第一周是第一个星期四!将RunBaseBatch中的runsImpersonated()方法设置为false是否可行。我试着这么做了,效果很好。但是我不认为像Skaue建议的那样临时使用框架类是个好主意。你可以这样做,但当然你不应该修改
RunBaseBatch.runsImpersonated
,而是应该在你的类中创建一个新方法:
public boolean runsImpersonated(){return false;}
-它将指示批处理框架在客户端上运行此类。非常感谢。我所做的是在我的类BatchJobTry(Extendes RunBaseBatch)中,我重写了runsImpersonated()方法并删除了对super的调用,返回false,它完美地执行。因此,我的结论是,这取决于我操作(是运行客户端还是服务器端)方法的需要,并确保整个作业在客户端或服务器端或两者上完全运行。再次非常感谢。(如果我错了,请纠正我)我很高兴我是对的。谢谢你的推荐。快乐的编码。你可以使用buildin
wkofyr()
函数,但前提是你同意第一周是第一个星期四!