anzwdev / al-code-outline

AL Code Outline for Visual Studio Code
MIT License
51 stars 13 forks source link

One or more of actions failed: Convert Object Ids to Names: error #484

Closed fvet closed 11 months ago

fvet commented 1 year ago

I recently face a lot of similar warnings related to "Convert Object Ids to Names" when running the 'Code Cleanup (on active editor' command.

image

Can i share some logs to assist you in troubleshooting the origin of the error?

File resulting in error

codeunit 71096923 "ESCD Payment Methods"
{
    Access = Internal;

    #region AddPaymentMethods
    internal procedure AddPaymentMethods(TptTrip: Record "ESCD Tpt Trip")
    var
        TempSourceDocument: Record "ESCA Source Document" temporary;
    begin
        SourceDocuments.GetSourceDocuments(TptTrip, TempSourceDocument, false);
        ShowSourceDocuments(TempSourceDocument, TptTrip."Trip Date");
    end;
    #endregion AddPaymentMethods

    #region AddPaymentMethods
    internal procedure AddPaymentMethods(TptLine: Record "ESCD Tpt Line")
    var
        TempSourceDocument: Record "ESCA Source Document" temporary;
        TptTrip: Record "ESCD Tpt Trip";
    begin
        SourceDocuments.GetSourceDocuments(TptLine, TempSourceDocument, true);

        TptTrip.SetLoadFields("Trip Date");
        If TptTrip.Get(TptLine."Trip No.") then;

        ShowSourceDocuments(TempSourceDocument, TptTrip."Trip Date");
    end;
    #endregion AddPaymentMethods

    #region AddPaymentMethods
    internal procedure AddPaymentMethods(WarehouseShipmentHeader: Record "Warehouse Shipment Header")
    var
        TempSourceDocument: Record "ESCA Source Document" temporary;
    begin
        SourceDocuments.GetWhseShipmentSourceDocuments(WarehouseShipmentHeader."No.", TempSourceDocument);
        ShowSourceDocuments(TempSourceDocument, WarehouseShipmentHeader."Shipment Date");
    end;
    #endregion AddPaymentMethods

    #region ShowSourceDocuments
    local procedure ShowSourceDocuments(var TempSourceDocument: Record "ESCA Source Document" temporary; ShipmentOrReceiptDate: Date)
    begin
        TempSourceDocument.FilterGroup(2);
        TempSourceDocument.SetRange("Source Document", TempSourceDocument."Source Document"::"Sales Order");
        TempSourceDocument.FilterGroup(0);

        SourceDocuments.ShowSourceDocuments(TempSourceDocument, true, false, ShipmentOrReceiptDate);
    end;
    #endregion ShowSourceDocuments

    var
        SourceDocuments: Codeunit "ESCD Source Documents";
}
anzwdev commented 11 months ago

Hi

I was trying to replicate the issue, but it works fine for me. Could you run "Open AZ AL Dev Tools log file" command in VS Code and check if you have any error logged there? Are you using the release or pre-release version of Microsoft AL Extension?

horstoeko commented 11 months ago

Hi @anzwdev

I have the same Issue:

System

Log

2023-09-27 12:20:35.013 [ERROR] tid:5 in 'WriteError' D:\a\al-code-outline\al-code-outline\language-server\Shared.AnZwDev.ALTools.Server\MessageLogWriterImpl.cs: line 30
    Workspace command convertObjectIdsToNames error during processing file 'c:\Sources\App\Fleetservice\app\src\Tables\FSEChargeData.Table.al': Method not found: 'Microsoft.Dynamics.Nav.CodeAnalysis.Syntax.OptionAccessExpressionSyntax Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxFactory.OptionAccessExpression(Microsoft.Dynamics.Nav.CodeAnalysis.Syntax.CodeExpressionSyntax, Microsoft.Dynamics.Nav.CodeAnalysis.Syntax.IdentifierNameSyntax)'.
   at AnZwDev.ALTools.CodeTransformations.ConvertObjectIdsToNamesSyntaxRewriter.VisitInvocationExpression(InvocationExpressionSyntax node)
       at Microsoft.Dynamics.Nav.CodeAnalysis.Syntax.InvocationExpressionSyntax.Accept[TResult](SyntaxVisitor`1 visitor) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SyntaxNodes.Generated.cs:line 27656
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxVisitor`1.Visit(SyntaxNode node) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Syntax\SyntaxVisitor.cs:line 29
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxRewriter.VisitExpressionStatement(ExpressionStatementSyntax node) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SyntaxRewriter.Generated.cs:line 2166
       at Microsoft.Dynamics.Nav.CodeAnalysis.Syntax.ExpressionStatementSyntax.Accept[TResult](SyntaxVisitor`1 visitor) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SyntaxNodes.Generated.cs:line 26484
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxVisitor`1.Visit(SyntaxNode node) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Syntax\SyntaxVisitor.cs:line 29
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxRewriter.VisitIfStatement(IfStatementSyntax node) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SyntaxRewriter.Generated.cs:line 2092
       at Microsoft.Dynamics.Nav.CodeAnalysis.Syntax.IfStatementSyntax.Accept[TResult](SyntaxVisitor`1 visitor) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SyntaxNodes.Generated.cs:line 25602
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxVisitor`1.Visit(SyntaxNode node) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Syntax\SyntaxVisitor.cs:line 29
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxRewriter.VisitListElement[TNode](TNode node) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Syntax\SyntaxRewriter.cs:line 166
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxRewriter.VisitList[TNode](SyntaxList`1 list) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Syntax\SyntaxRewriter.cs:line 139
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxRewriter.VisitBlock(BlockSyntax node) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SyntaxRewriter.Generated.cs:line 2081
       at Microsoft.Dynamics.Nav.CodeAnalysis.Syntax.BlockSyntax.Accept[TResult](SyntaxVisitor`1 visitor) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SyntaxNodes.Generated.cs:line 25472
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxVisitor`1.Visit(SyntaxNode node) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Syntax\SyntaxVisitor.cs:line 29
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxRewriter.VisitTriggerDeclaration(TriggerDeclarationSyntax node) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SyntaxRewriter.Generated.cs:line 2035
       at Microsoft.Dynamics.Nav.CodeAnalysis.Syntax.TriggerDeclarationSyntax.Accept[TResult](SyntaxVisitor`1 visitor) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SyntaxNodes.Generated.cs:line 24751
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxVisitor`1.Visit(SyntaxNode node) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Syntax\SyntaxVisitor.cs:line 29
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxRewriter.VisitListElement[TNode](TNode node) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Syntax\SyntaxRewriter.cs:line 166
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxRewriter.VisitList[TNode](SyntaxList`1 list) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Syntax\SyntaxRewriter.cs:line 139
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxRewriter.VisitField(FieldSyntax node) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SyntaxRewriter.Generated.cs:line 266
       at Microsoft.Dynamics.Nav.CodeAnalysis.Syntax.FieldSyntax.Accept[TResult](SyntaxVisitor`1 visitor) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SyntaxNodes.Generated.cs:line 3157
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxVisitor`1.Visit(SyntaxNode node) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Syntax\SyntaxVisitor.cs:line 29
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxRewriter.VisitListElement[TNode](TNode node) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Syntax\SyntaxRewriter.cs:line 166
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxRewriter.VisitList[TNode](SyntaxList`1 list) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Syntax\SyntaxRewriter.cs:line 139
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxRewriter.VisitFieldList(FieldListSyntax node) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SyntaxRewriter.Generated.cs:line 240
       at Microsoft.Dynamics.Nav.CodeAnalysis.Syntax.FieldListSyntax.Accept[TResult](SyntaxVisitor`1 visitor) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SyntaxNodes.Generated.cs:line 2870
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxVisitor`1.Visit(SyntaxNode node) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Syntax\SyntaxVisitor.cs:line 29
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxRewriter.VisitTable(TableSyntax node) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SyntaxRewriter.Generated.cs:line 228
       at Microsoft.Dynamics.Nav.CodeAnalysis.Syntax.TableSyntax.Accept[TResult](SyntaxVisitor`1 visitor) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SyntaxNodes.Generated.cs:line 2717
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxVisitor`1.Visit(SyntaxNode node) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Syntax\SyntaxVisitor.cs:line 29
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxRewriter.VisitListElement[TNode](TNode node) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Syntax\SyntaxRewriter.cs:line 166
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxRewriter.VisitList[TNode](SyntaxList`1 list) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Syntax\SyntaxRewriter.cs:line 139
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxRewriter.VisitCompilationUnit(CompilationUnitSyntax node) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SyntaxRewriter.Generated.cs:line 24
       at Microsoft.Dynamics.Nav.CodeAnalysis.Syntax.CompilationUnitSyntax.Accept[TResult](SyntaxVisitor`1 visitor) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SyntaxNodes.Generated.cs:line 78
       at Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxVisitor`1.Visit(SyntaxNode node) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Syntax\SyntaxVisitor.cs:line 29
       at AnZwDev.ALTools.CodeTransformations.ALSyntaxRewriter.ProcessNode(SyntaxNode node) in D:\a\al-code-outline\al-code-outline\language-server\Shared.AnZwDev.ALTools\CodeTransformations\ALSyntaxRewriter.cs:line 34
       at AnZwDev.ALTools.WorkspaceCommands.SyntaxRewriterWorkspaceCommand`1.ProcessSyntaxNode(SyntaxNode node, String sourceCode, ALProject project, String filePath, TextSpan span, Dictionary`2 parameters) in D:\a\al-code-outline\al-code-outline\language-server\Shared.AnZwDev.ALTools\WorkspaceCommands\SyntaxRewriterWorkspaceCommand.cs:line 38
       at AnZwDev.ALTools.WorkspaceCommands.SyntaxTreeWorkspaceCommand.ProcessSourceCode(String sourceCode, ALProject project, String filePath, Range range, Dictionary`2 parameters) in D:\a\al-code-outline\al-code-outline\language-server\Shared.AnZwDev.ALTools\WorkspaceCommands\SyntaxTreeWorkspaceCommand.cs:line 43

I hope that these information will help you investigating the problem.

Regards

anzwdev commented 11 months ago

I've released new version of the extension, recompiled to work with the new version of the AL compiler. Could you try if it works now?

fvet commented 11 months ago

@anzwdev Tested again with the latest version of your extension, and below AL version and all seems to work fine again. Thanks!


Name: AL Language extension for Microsoft Dynamics 365 Business Central
Id: ms-dynamics-smb.al
Description: Development tools for Dynamics 365 Business Central
Version: 12.1.883011
Publisher: Microsoft
VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=ms-dynamics-smb.al