web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Microsoft Dynamics AX (Archived)

Error - Duplicate field on Query::Insert_RecordSet from a View

(0) ShareShare
ReportReport
Posted on by 1,875

Hello

I have the same problem that I saw here:

https://community.dynamics.com/ax/f/33/t/276817

Here is my error:

8345.Error.png

I'm using views to get data, I have create some view to get a final view with all the fields I need, and I use query::Insert_Recordset to get data from view and to insert on a temporaly table.

Here's the code:

public void populateRecords()

{

 QueryRun queryRun = new QueryRun(qr.query());

QueryBuildDataSource VendPackingSlipTransQbds;

QueryBuildDataSource purchLineTableViewAllQbds;

QueryBuildFieldList VendPackingSlipTransfieldList;

QueryBuildFieldList purchLineTableViewAllFieldList;

Map fieldMapping;

 purchLineTableViewAllQbds = queryRun.query().dataSourceTable(tableNum(PurchLineTableViewAll));

 VendPackingSlipTransQbds = purchLineTableViewAllQbds.addDataSource(tableNum(VendPackingSlipTrans));

 VendPackingSlipTransQbds.addLink(fieldNum(PurchLineTableViewAll, InventTransId), fieldNum(VendPackingSlipTrans, InventTransId));

VendPackingSlipTransQbds.joinMode(JoinMode::InnerJoin);

VendPackingSlipTransfieldList = VendPackingSlipTransQbds.fields();

 VendPackingSlipTransfieldList.addField(fieldNum(VendPackingSlipTrans, PackingSlipId));

 VendPackingSlipTransfieldList.addField(fieldNum(VendPackingSlipTrans, Qty));

 VendPackingSlipTransfieldList.addField(fieldNum(VendPackingSlipTrans, Ordered));

VendPackingSlipTransfieldList.dynamic(QueryFieldListDynamic::No);

purchLineTableViewAllFieldList = purchLineTableViewAllQbds.fields();

 purchLineTableViewAllFieldList.addField(fieldNum(PurchLineTableViewAll, InventTransId));

purchLineTableViewAllFieldList.dynamic(QueryFieldListDynamic::No);

 fieldMapping = new Map(Types::String, Types::Container);

 fieldMapping.insert(fieldStr(VendPurchPackingSlipTmp, InventTransId), [purchLineTableViewAllQbds.uniqueId(), fieldStr(PurchLineTableViewAll, InventTransId)]);

 fieldMapping.insert(fieldStr(VendPurchPackingSlipTmp, PackingSlipId), [VendPackingSlipTransQbds.uniqueId(), fieldStr(VendPackingSlipTrans, PackingSlipId)]);

 fieldMapping.insert(fieldStr(VendPurchPackingSlipTmp, Qty), [VendPackingSlipTransQbds.uniqueId(), fieldStr(VendPackingSlipTrans, Qty)]);

 fieldMapping.insert(fieldStr(VendPurchPackingSlipTmp, Ordered), [VendPackingSlipTransQbds.uniqueId(), fieldStr(VendPackingSlipTrans, Ordered)]);

query::insert_recordset(tmp, fieldMapping, queryRun.query());

}

The strangest thing is that when I call the form executing it from AOT the form works, but when I run the menuItem form it fails.

0676.1.png

Somebody have a solution for this?

*This post is locked for comments

I have the same question (0)
  • Martin Dráb Profile Picture
    237,878 Most Valuable Professional on at

    Let me first format your code so it becomes easier to read. Please use the </> button in the rich formatting view to paste source code.

    public void populateRecords()
    {
        QueryRun queryRun = new QueryRun(qr.query());
        QueryBuildDataSource vendPackingSlipTransQbds;
        QueryBuildDataSource purchLineTableViewAllQbds;
        QueryBuildFieldList vendPackingSlipTransfieldList;
        QueryBuildFieldList purchLineTableViewAllFieldList;
        Map fieldMapping = new Map(Types::String, Types::Container);
        
        purchLineTableViewAllQbds = queryRun.query().dataSourceTable(tableNum(PurchLineTableViewAll));
        
        vendPackingSlipTransQbds = purchLineTableViewAllQbds.addDataSource(tableNum(VendPackingSlipTrans));
        vendPackingSlipTransQbds.addLink(fieldNum(PurchLineTableViewAll, InventTransId), fieldNum(VendPackingSlipTrans, InventTransId));
        vendPackingSlipTransQbds.joinMode(JoinMode::InnerJoin);
        
        vendPackingSlipTransfieldList = vendPackingSlipTransQbds.fields();
        vendPackingSlipTransfieldList.addField(fieldNum(VendPackingSlipTrans, PackingSlipId));
        vendPackingSlipTransfieldList.addField(fieldNum(VendPackingSlipTrans, Qty));
        vendPackingSlipTransfieldList.addField(fieldNum(VendPackingSlipTrans, Ordered));
        vendPackingSlipTransfieldList.dynamic(QueryFieldListDynamic::No);
        
        purchLineTableViewAllFieldList = purchLineTableViewAllQbds.fields();
        purchLineTableViewAllFieldList.addField(fieldNum(PurchLineTableViewAll, InventTransId));
        purchLineTableViewAllFieldList.dynamic(QueryFieldListDynamic::No);
    
        fieldMapping.insert(fieldStr(VendPurchPackingSlipTmp, InventTransId), [purchLineTableViewAllQbds.uniqueId(), fieldStr(PurchLineTableViewAll, InventTransId)]);
        fieldMapping.insert(fieldStr(VendPurchPackingSlipTmp, PackingSlipId), [vendPackingSlipTransQbds.uniqueId(), fieldStr(VendPackingSlipTrans, PackingSlipId)]);
        fieldMapping.insert(fieldStr(VendPurchPackingSlipTmp, Qty), [vendPackingSlipTransQbds.uniqueId(), fieldStr(VendPackingSlipTrans, Qty)]);
        fieldMapping.insert(fieldStr(VendPurchPackingSlipTmp, Ordered), [vendPackingSlipTransQbds.uniqueId(), fieldStr(VendPackingSlipTrans, Ordered)]);
        
        Query::insert_recordset(tmp, fieldMapping, queryRun.query());
    }


    It seems to me that the problem is about this line, do you agree?

    fieldMapping.insert(fieldStr(VendPurchPackingSlipTmp, InventTransId),
    [purchLineTableViewAllQbds.uniqueId(), fieldStr(PurchLineTableViewAll, InventTransId)]);

    I think so because there is no InventTransId in the list of fields in the error message.

  • XB Profile Picture
    1,875 on at

    Still having the same problem, I have the same error even adding a new field to mapping

    public void populateRecords()
    {
        QueryRun                queryRun = new QueryRun(qr.query());
    
        QueryBuildDataSource    VendPackingSlipTransQbds;
        QueryBuildDataSource    purchLineTableViewAllQbds;
    
        QueryBuildFieldList     VendPackingSlipTransfieldList;
        QueryBuildFieldList     purchLineTableViewAllFieldList;
    
        Map                     fieldMapping;
    
        purchLineTableViewAllQbds = queryRun.query().dataSourceTable(tableNum(PurchLineTableViewAll));
        VendPackingSlipTransQbds  = purchLineTableViewAllQbds.addDataSource(tableNum(VendPackingSlipTrans));
        VendPackingSlipTransQbds.addLink(fieldNum(PurchLineTableViewAll, InventTransId), fieldNum(VendPackingSlipTrans, InventTransId));
        VendPackingSlipTransQbds.joinMode(JoinMode::InnerJoin);
    
        VendPackingSlipTransfieldList = VendPackingSlipTransQbds.fields();
        VendPackingSlipTransfieldList.clearFieldList();
        VendPackingSlipTransfieldList.addField(fieldNum(VendPackingSlipTrans, PackingSlipId));
        VendPackingSlipTransfieldList.addField(fieldNum(VendPackingSlipTrans, Qty));
        VendPackingSlipTransfieldList.addField(fieldNum(VendPackingSlipTrans, Ordered));
        //VendPackingSlipTransfieldList.addField(fieldNum(VendPackingSlipTrans, InventTransId));
        VendPackingSlipTransfieldList.dynamic(QueryFieldListDynamic::No);
    
        purchLineTableViewAllFieldList = purchLineTableViewAllQbds.fields();
        purchLineTableViewAllFieldList.clearFieldList();
        purchLineTableViewAllFieldList.addField(fieldNum(PurchLineTableViewAll, InventDimId));
        purchLineTableViewAllFieldList.dynamic(QueryFieldListDynamic::No);
    
        fieldMapping = new Map(Types::String, Types::Container);
        //fieldMapping.insert(fieldStr(VendPurchPackingSlipTmp, InventTransId), [VendPackingSlipTransQbds.uniqueId(), fieldStr(VendPackingSlipTrans, InventTransId)]);
        fieldMapping.insert(fieldStr(VendPurchPackingSlipTmp, PackingSlipId), [VendPackingSlipTransQbds.uniqueId(), fieldStr(VendPackingSlipTrans, PackingSlipId)]);
        fieldMapping.insert(fieldStr(VendPurchPackingSlipTmp, Qty),           [VendPackingSlipTransQbds.uniqueId(), fieldStr(VendPackingSlipTrans, Qty)]);
        fieldMapping.insert(fieldStr(VendPurchPackingSlipTmp, Ordered),       [VendPackingSlipTransQbds.uniqueId(), fieldStr(VendPackingSlipTrans, Ordered)]);
        fieldMapping.insert(fieldStr(VendPurchPackingSlipTmp, InventDimId),   [purchLineTableViewAllQbds.uniqueId(), fieldStr(purchLineTableViewAll, InventDimId)]);
    
        query::insert_recordset(tmp, fieldMapping, queryRun.query());
    }


  • XB Profile Picture
    1,875 on at

    For more information there is no error on CIL, this weekeng I was compiling appliaction and I reboot Sql services.

  • jay Profile Picture
    20 on at

    Hello! I was wondering if you found a solution for this, I have a similar problem with a class where if I run it from the AOT it works great but if I use a menu item I get the duplicate insert error

  • Martin Dráb Profile Picture
    237,878 Most Valuable Professional on at

    jay, are you sure it's an identical problem? It doesn't sound the same to me. If it's not, please create a new thread (with an appropriate title and tags_ and explain your problem in detail there.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Neeraj Kumar – Community Spotlight

We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…

Leaderboard > 🔒一 Microsoft Dynamics AX (Archived)

#1
Priya_K Profile Picture

Priya_K 4

#1
Martin Dráb Profile Picture

Martin Dráb 4 Most Valuable Professional

#3
Ali Zaidi Profile Picture

Ali Zaidi 2

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans