我希望能够在table.modifiedField方法中执行一些逻辑,该方法将字段的先前值与新值进行比较.我如何获得之前的价值?
我有一个有两个网格的表格.我有一个包含行的表,其中每行的状态为"是"或"否".我想在顶部显示所有"是",在底部网格中显示"否".
类似的情况是,如果我想显示SalesTable标题记录.顶部网格只是那些状态为已交付的网格,而底部网格则是状态为已开票的网格.
我怎么能做到这一点?
我已经接近添加了同一个表类型的另一个数据源.我添加了一个QueryBuildRange来过滤记录,但我遇到两个问题:
我有一个显示字段的方法,它执行以下操作;
return InventSum::find(_salesLine.ItemId, InventDim::_salesLine.InventDimId).AvailPhysical();
Run Code Online (Sandbox Code Playgroud)
这为线路站点/仓库/位置提供了现有的可用物理.
我需要查看网站/仓库的可用总数.我想我需要通过Item/Warehouse搜索inventDim来获取我的inventdimid,但我找不到方法所以我怀疑这是不正确的.
有人可以帮忙吗?
我是AX的新手,也是IIS的初学者(并且首先发布了stackoverflow).我需要一些AX 2012 AIF Web服务的帮助和配置http AX入站端口.
我的问题是尝试使用HTTP激活AX内的入站端口.我收到以下两个错误:
这是在使用Microsoft发布的AX 2012 FP1 hyper-v映像的测试环境中.其他人使用此处的说明安装了Web服务:https://msdn.microsoft.com/EN-US/library/gg731848.aspx
根据为Web服务安装的人,我使用虚拟目录共享路径"C:\ Program Files\Microsoft Dynamics AX\60\AifWebServices \"和URL" http: "在网站屏幕上创建了一个新条目.// AX2012-A:85/MicrosoftDynamicsAXAif60 "
我不确定这些是否正确,但网站验证没有错误.Web服务似乎安装到站点"AIF"而不是"默认网站"
有没有人看到网站的IIS配置有任何问题?Web服务是否应该安装到默认网站而不是AIF网站?
创建入站端口时,它需要是http,因为我根据某人的请求设置了这个,但我再次无法启动入站端口并可以使用一些指导.
对于开发人员,我有一个自定义列表页面,用户可以在其中选择少量记录,在操作窗格中点击按钮,在一个类中运行一些逻辑,所有这些都可以正常工作.我的问题是光标不会停留在同一记录中,而是转到网格的顶部.听起来像一个熟悉的问题?
我使用具有所有逻辑的自定义类中的args存储列表页面的FormDataSource.
我尝试了一些东西,但都没有用.
formDataSource.research(true) 真正的参数应该在研究完成其工作后保留位置.我猜这应该是最直接的解决方案.列表页面查询有两个使用外部联接加入的数据源,我的猜测是研究(true)仅适用于内部联接.
formDatasource.setPosition(位置)
int position;
position = formDatasource.getPosition();
formDatasource.research();
formDatasource.setPosition(位置);
我使用getPosition存储位置并使用setPosition再次设置它.没用
formDataSource.findRecord()
currentRecord = formDatasource.cursor();
recId = currentRecord.RecId;
formDatasource.reread();
formDatasource.research();
formDatasource.findRecord(currentRecord);
我使用ds.cursor()获取当前记录并在research()之后将其传递给findRecord().没用
formDataSource.findValue()
currentRecord = formDatasource.cursor();
recId = currentRecord.RecId;
formDatasource.reread();
formDatasource.research();
formDatasource.findValue(fieldNum(Table,RecId),int642str(recId));
我使用ds.cursor()获取当前记录和recId,并在research()之后将其传递给findValue().没用
我调试了上面的代码,而cursor()方法确实得到了当前记录及其recId.我开始相信它可能是列表页面的限制,并祈祷有人证明我错了.
任何帮助表示赞赏.
我正在调查AX 2012中新代表和事件订阅模式的功能.
目前,我希望检测特定字段何时被修改,例如何时SalesTable.SalesStatus
更改为SalesStatus::Invoiced
.
我创建了以下事件后处理程序并附加到SalesTable.Update方法;
public static void SalesTable_UpdatePosteventHandler(XppPrePostArgs _args)
{
Info("Sales Update Event Handler");
}
Run Code Online (Sandbox Code Playgroud)
现在我知道我可以得到SalesTable
从_args
,但我怎么能检测场发生了变化?我真的可以使用前后版本,这让我觉得我在这里订阅了错误的事件.
我正在尝试创建自己的自定义深入分析功能,其中URL dynamics://0?myfunction_123456
将启动我自己的代码.
在C\SysStartupCmd\construct
,这个基本代码:
case 'viewalert':
sysStartupCmd = new SysStartUpCmdViewAlert(s,parm);
break;
case 'drilldown':
sysStartupCmd = new SysStartUpCmdDrillDown(s,parm);
break;
case 'viewalertrule':
sysStartupCmd = new SysStartUpCmdViewAlertRule(s,parm);
break;
Run Code Online (Sandbox Code Playgroud)
我已经测试了,所有这些都被这些网址解雇了:
但是,如果我添加自己的案例,让所有其他代码保持不变,我就无法获取要触发的URL:
case 'myFunction':
sysStartupCmd = new SysStartUpCmdDrillDown(s,parm);
break;
Run Code Online (Sandbox Code Playgroud)
我在整个系统中进行了挖掘,并且无法弄清楚是什么导致dynamics://
URL只针对这三种情况触发.有注册表项还是什么?我发现C\EventDrillDownPoller
哪个似乎创建了一个PipeServer来处理传入的内容?
我想在两个表单之间传递多个记录.用户打开Form-A,选择多个记录,然后单击打开Form-B的按钮.在Form-B中有两个(或更多)StringEdit
控件,它们应显示所选记录的值.
我知道如何只传递一条记录,为此我在Form-B的方法中使用以下代码:
if (element.args().parmEnumType() == enumNum(NoYes)
&& element.args().parmEnum() == NoYes::Yes)
{
myTable = element.args().record();
stringEdit.text(myTable.Field);
}
Run Code Online (Sandbox Code Playgroud)
我应该如何更改我的代码,以便我可以将另一个StringEdit
控件的文本设置为用户选择的下一条记录的字段值?
我在ax 2012有一个aif服务.我从.net应用程序传递信息.基本上我是在发布一般期刊.但是当出现错误时,说传入的信息不正确,它会返回一般错误,通常是 "错误验证记录".但警告消息显示导致错误数据等错误的实际原因.
有没有办法捕获并显示警告消息.我尝试过,exception::warning
但它恰到好处exception::error
.
catch (Exception::Error)
{
throw Global::error("need to get warning");
}
Run Code Online (Sandbox Code Playgroud) 我正在为Microsoft Dynamics Business Connector .net程序集编写一个python包装器.
这是我的代码:
"""Implements wrapper for axapta bussiness connector."""
import pathlib
from msl.loadlib import LoadLibrary
import clr
DLL_PATH = pathlib.Path(__file__).parent / 'Microsoft.Dynamics.BusinessConnectorNet.dll'
def test_msl_connector():
"""Get Axapta object via msl-loadlib package."""
connectorLL = LoadLibrary(DLL_PATH, 'net')
Axapta = getattr(connectorLL.lib,
'Microsoft.Dynamics.BusinessConnectorNet').Axapta
return Axapta
def test_pure_pythonnet_connector():
"""Get Axapta object via pythonnet package."""
clr.AddReference(str(DLL_PATH))
from Microsoft.Dynamics.BusinessConnectorNet import Axapta
return Axapta
Run Code Online (Sandbox Code Playgroud)
运行pytest时这是我的错误:
============================= test session starts =============================
platform win32 -- Python 3.6.2, pytest-3.4.0, py-1.5.2, pluggy-0.6.0
rootdir: C:\Users\AZ\Desktop\test_bom-mcs, inifile:
collected 2 items
test_main.py FF …
Run Code Online (Sandbox Code Playgroud)