标签: dynamics-ax7

使用 Ax7 oData 进行字符串过滤会出现错误

我正在尝试使用 Ax7 oData 端点按名称搜索销售报价。使用相等效果很好,但是更高级的过滤函数会给我带来错误。

这个简单的 EQ 查询工作正常: https://myAx7Server/data/SalesQuotationHeaders?$filter=SalesQuotationName eq 'Sparrow Retail'

但是这个查询给了我错误“查询运算符的类型‘System.String’不可查询!”

https://myAx7Server/data/SalesQuotationHeaders?$filter=startswith(SalesQuotationName,'S')

我是否做错了什么,或者只是这些 oData 端点不支持按字符串搜索?

axapta odata dynamics-ax7

4
推荐指数
1
解决办法
1751
查看次数

D365FO中的命令链(方法换行)导致'对象未设置为对象的实例'

我试图通过扩展CustTable在D365FO中使用新的"命令链"功能.

在将其记录到新表中之前,我们需要检查更新方法上的值是否已更改.

[ExtensionOf(tableStr(CustTable))]
final class CustTable_Extension
{
    void update(boolean _updateSmmBusRelTable = true, boolean _updateParty = 
                true)
    {
        CustTable   custTable_Orig = this.orig();
        boolean hasChanged = this.CreditMax != custTable_Orig.CreditMax;

        next update(_updateSmmBusRelTable, _updateParty);

        if(hasChanged)
        {
            //do something
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,在运行此代码时,我们得到"对象未设置为对象的实例"错误.发生错误是因为'this'对象为null.调用"next update(_updateSmmBusRelTable,_updateParty);"时也会出现同样的错误.

文件指出:"这让扩大的公共和保护的方法逻辑,而无需使用事件处理程序当您缠绕的方法,您还可以访问其他公共和保护的方法和类的变量."

有任何想法吗?

x++ axapta dynamics-ax7 dynamics-365-operations

3
推荐指数
1
解决办法
2453
查看次数

“PurchPurchaseOrderLineEntity”类型的表行写入验证失败

我正在尝试使用 odata 从邮递员发布采购订单行详细信息,但出现以下错误。

{
"error": {
    "code": "",
    "message": "An error has occurred.",
    "innererror": {
        "message": "Write validation failed for table row of type 'PurchPurchaseOrderLineEntity'. Infolog: .",
        "type": "Microsoft.Dynamics.Platform.Integration.Services.OData.AxODataValidateWriteException",
        "stacktrace": "   at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.UpdateProcessor.CreateEntity_Save(ChangeOperationContext context, ChangeInfo changeInfo)\r\n   at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.UpdateManager.<>c__DisplayClass10_0.<CreateEntity>b__1(ChangeOperationContext context)\r\n   at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.ChangeInfo.ExecuteActionsInCompanyContext(IEnumerable`1 actionList, ChangeOperationContext operationContext)\r\n   at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.ChangeInfo.TrySave(ChangeOperationContext operationContext)\r\n   at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.UpdateManager.SaveChanges()\r\n   at Microsoft.Dynamics.Platform.Integration.Services.OData.AxODataDelegatingHandler.<SaveChangesAsync>d__3.MoveNext()"
    }
}
Run Code Online (Sandbox Code Playgroud)

}

我尝试检查这些链接,但没有取得突破:

下面是我的有效负载

{      
            "dataAreaId": "XXXX",
            "LineNumber": 1,
            "PurchaseOrderNumber": "XXXX-PO-000009",
            "ReceivingSiteId": "1",
            "LineDescription": "XXXXXXX XXXX XXXX",
            "ItemNumber": "SKU0000012530",
            "DIOTOperationType": "Blank",
            "LineAmount": 9687.19,
            "PurchasePriceQuantity": 1,
            "PurchasePrice": …
Run Code Online (Sandbox Code Playgroud)

x++ axapta dynamics-ax7 dynamics-365-operations

0
推荐指数
1
解决办法
2970
查看次数