标签: axapta

如何在Dynamic Axe表的modifiedField方法中获取前一个字段值?

我希望能够在table.modifiedField方法中执行一些逻辑,该方法将字段的先前值与新值进行比较.我如何获得之前的价值?

x++ axapta

5
推荐指数
1
解决办法
2万
查看次数

如何在同一表单上显示具有不同数据的两个网格

我有一个有两个网格的表格.我有一个包含行的表,其中每行的状态为"是"或"否".我想在顶部显示所有"是",在底部网格中显示"否".

类似的情况是,如果我想显示SalesTable标题记录.顶部网格只是那些状态为已交付的网格,而底部网格则是状态为已开票的网格.

我怎么能做到这一点?

我已经接近添加了同一个表类型的另一个数据源.我添加了一个QueryBuildRange来过滤记录,但我遇到两个问题:

  1. 当我点击顶部/底部的一行时,它会同时移动两行行(突出显示的内容)
  2. 出于某种原因,它希望显示相同数量的顶行作为底行?如果我有3个交付的销售订单和5个已开票的销售订单,它将在顶部显示3,在底部显示3.

forms datasource x++ axapta dynamics-ax-2009

5
推荐指数
1
解决办法
3548
查看次数

查找物料/仓库的总可用物理和可用物理

我有一个显示字段的方法,它执行以下操作;

return InventSum::find(_salesLine.ItemId, InventDim::_salesLine.InventDimId).AvailPhysical();
Run Code Online (Sandbox Code Playgroud)

这为线路站点/仓库/位置提供了现有的可用物理.

我需要查看网站/仓库的可用总数.我想我需要通过Item/Warehouse搜索inventDim来获取我的inventdimid,但我找不到方法所以我怀疑这是不正确的.

有人可以帮忙吗?

axapta dynamics-ax-2009

5
推荐指数
1
解决办法
1万
查看次数

AX 2012 http入站端口激活错误 - 未找到端口的部署网站

我是AX的新手,也是IIS的初学者(并且首先发布了stackoverflow).我需要一些AX 2012 AIF Web服务的帮助和配置http AX入站端口.

我的问题是尝试使用HTTP激活AX内的入站端口.我收到以下两个错误:

  • 找不到端口的部署网站:TestOrdImport
  • 无法部署端口'TestOrdImport'.\n错误:找不到端口的部署网站:TestOrdImport

这是在使用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,因为我根据某人的请求设置了这个,但我再次无法启动入站端口并可以使用一些指导.

https://i.imgur.com/cl8jGVJ.png

microsoft-dynamics axapta aif dynamics-ax-2012

5
推荐指数
1
解决办法
8391
查看次数

刷新列表页面网格时,光标移动到顶部

对于开发人员,我有一个自定义列表页面,用户可以在其中选择少量记录,在操作窗格中点击按钮,在一个类中运行一些逻辑,所有这些都可以正常工作.我的问题是光标不会停留在同一记录中,而是转到网格的顶部.听起来像一个熟悉的问题?

我使用具有所有逻辑的自定义类中的args存储列表页面的FormDataSource.

我尝试了一些东西,但都没有用.

  1. formDataSource.research(true) 真正的参数应该在研究完成其工作后保留位置.我猜这应该是最直接的解决方案.列表页面查询有两个使用外部联接加入的数据源,我的猜测是研究(true)仅适用于内部联接.

  2. formDatasource.setPosition(位置)

    int position;
    position = formDatasource.getPosition();

    formDatasource.research();

    formDatasource.setPosition(位置);

    我使用getPosition存储位置并使用setPosition再次设置它.没用

  3. formDataSource.findRecord()

    currentRecord = formDatasource.cursor();

    recId = currentRecord.RecId;
    formDatasource.reread();

    formDatasource.research();
    formDatasource.findRecord(currentRecord);

    我使用ds.cursor()获取当前记录并在research()之后将其传递给findRecord().没用

  4. 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.我开始相信它可能是列表页面的限制,并祈祷有人证明我错了.

任何帮助表示赞赏.

axapta dynamics-ax-2012

5
推荐指数
1
解决办法
1万
查看次数

表更新事件处理程序

我正在调查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,但我怎么能检测场发生了变化?我真的可以使用前后版本,这让我觉得我在这里订阅了错误的事件.

ax x++ axapta dynamics-ax-2012 dynamics-ax-2012-r2

5
推荐指数
1
解决办法
5266
查看次数

什么处理动态:// URL?

我正在尝试创建自己的自定义深入分析功能,其中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)

我已经测试了,所有这些都被这些网址解雇了:

  • 动态:// 0/DrillDown_382576
  • 动态:// 0/ViewAlert_382576
  • 动态:// 0/ViewAlertRule_382576

但是,如果我添加自己的案例,让所有其他代码保持不变,我就无法获取要触发的URL:

    case 'myFunction':
        sysStartupCmd = new SysStartUpCmdDrillDown(s,parm);
        break;
Run Code Online (Sandbox Code Playgroud)

我在整个系统中进行了挖掘,并且无法弄清楚是什么导致dynamics://URL只针对这三种情况触发.有注册表项还是什么?我发现C\EventDrillDownPoller哪个似乎创建了一个PipeServer来处理传入的内容?

startup x++ axapta dynamics-ax-2009

5
推荐指数
2
解决办法
3152
查看次数

如何在两个表单之间传递多个记录?

我想在两个表单之间传递多个记录.用户打开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控件的文本设置为用户选择的下一条记录的字段值?

forms x++ axapta args dynamics-ax-2012-r2

5
推荐指数
1
解决办法
5877
查看次数

从aif Web服务捕获警告消息

我在ax 2012有一个aif服务.我从.net应用程序传递信息.基本上我是在发布一般期刊.但是当出现错误时,说传入的信息不正确,它会返回一般错误,通常是 "错误验证记录".但警告消息显示导致错误数据等错误的实际原因.

有没有办法捕获并显示警告消息.我尝试过,exception::warning但它恰到好处exception::error.

catch (Exception::Error)
{
    throw Global::error("need to get warning");
}
Run Code Online (Sandbox Code Playgroud)

x++ axapta aif dynamics-ax-2012

5
推荐指数
1
解决办法
541
查看次数

在python中包装Microsoft Dynamics Business Connector .net程序集

我正在为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)

.net python windows axapta python.net

5
推荐指数
1
解决办法
358
查看次数