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)

DB Sync fails on data entity: Column DataAreaId is invalid because it is not contained in aggregate function or GROUP BY clause

(0) ShareShare
ReportReport
Posted on by 792

Hello all,

I have created a data entity in my Dynamics 365 for Operations project (ApplicationSuite customized) which is causing a DB sync failure whenever I try to build it.

 

Structure of Data Entity:- (You can try it out yourself and I think you'll also face this issue)

Tables InventModelGroup, InventModelGroupItem and InventTable are joined (1:1 innerjoin).


Relations:-

  • InventModelGroup.DataAreaId == InventModelGroupItem.ModelGroupDataAreaId
  • InventModelGroup.ModelGroupId == InventModelGroupItem.ModelGroupId
  • InventModelGroupItem.ItemId == InventTable.ItemId

Fields exposed are:-

ModelGroupId, StockedProduct, InventModelGroup.DataAreaId, InventTable.ItemId, NameAlias etc.

The Primary Company Context of the data entity is set to DataAreaId (as we want to filter the query result base on company).

Now when I build my project (DB sync automatically) it gives following error:-

Dynamics 365 for Operations build step: Best practice check completed (7142 ms).
Database execution failed: Database execution failed: Column 'INSERTED.DATAAREAID' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
[IF OBJECTPROPERTY(OBJECT_ID('GETNONPOITEMLISTBYIDENTITYINSERTTRIGGER'), 'ISTRIGGER') = 1
DROP TRIGGER GETNONPOITEMLISTBYIDENTITYINSERTTRIGGER
]
[CREATE TRIGGER GETNONPOITEMLISTBYIDENTITYINSERTTRIGGER ON GETNONPOITEMLISTBYIDENTITY INSTEAD OF INSERT AS BEGIN
INSERT INTO INVENTMODELGROUP (MODELGROUPID,STOCKEDPRODUCT,I.RECVERSION,I.DATAAREAID,I.PARTITION)
SELECT COALESCE(I.MODELGROUPID, ''),
COALESCE(I.STOCKEDPRODUCT, 0),
0,
I.DATAAREAID,
I.PARTITION FROM INSERTED I
WHERE NOT EXISTS (SELECT 'x' FROM INVENTMODELGROUP WHERE (MODELGROUPID = I.MODELGROUPID) AND (PARTITION = I.PARTITION) AND (DATAAREAID = I.DATAAREAID))
AND ( I.MODELGROUPID <> '')
GROUP BY I.MODELGROUPID,
I.STOCKEDPRODUCT,
I.PARTITION
INSERT INTO INVENTTABLE (ITEMID,NAMEALIAS,I.RECVERSION,I.DATAAREAID,I.PARTITION)
SELECT COALESCE(I.INVENTTABLE_ITEMID, ''),
COALESCE(I.NAMEALIAS, ''),
WHERE NOT EXISTS (SELECT 'x' FROM INVENTTABLE WHERE (ITEMID = I.INVENTTABLE_ITEMID) AND (PARTITION = I.PARTITION) AND (DATAAREAID = I.DATAAREAID))
AND ( I.INVENTTABLE_ITEMID <> '')
GROUP BY I.INVENTTABLE_ITEMID,
I.NAMEALIAS,
INSERT INTO INVENTMODELGROUPITEM (MODELGROUPDATAAREAID,MODELGROUPID,ITEMID,I.RECVERSION,I.PARTITION)
SELECT COALESCE((SELECT TOP 1 DATAAREAID FROM INVENTMODELGROUP WHERE (MODELGROUPID = I.MODELGROUPID) AND (PARTITION = I.PARTITION) AND (DATAAREAID = I.DATAAREAID)), ''),
COALESCE((SELECT TOP 1 MODELGROUPID FROM INVENTMODELGROUP WHERE (MODELGROUPID = I.MODELGROUPID) AND (PARTITION = I.PARTITION) AND (DATAAREAID = I.DATAAREAID)), ''),
COALESCE((SELECT TOP 1 ITEMID FROM INVENTTABLE WHERE (ITEMID = I.INVENTTABLE_ITEMID) AND (PARTITION = I.PARTITION) AND (DATAAREAID = I.DATAAREAID)), ''),
GROUP BY I.INVMODELGRPITM_MODELGROUPID,
I.MODELGROUPID,
I.INVENTTABLE_ITEMID,
END
[IF OBJECTPROPERTY(OBJECT_ID('GETNONPOITEMLISTBYIDENTITYUPDATETRIGGER'), 'ISTRIGGER') = 1
DROP TRIGGER GETNONPOITEMLISTBYIDENTITYUPDATETRIGGER
[CREATE TRIGGER GETNONPOITEMLISTBYIDENTITYUPDATETRIGGER ON GETNONPOITEMLISTBYIDENTITY INSTEAD OF UPDATE AS BEGIN
IF (UPDATE(MODELGROUPID) OR UPDATE(STOCKEDPRODUCT))
BEGIN
UPDATE INVENTMODELGROUP SET
MODELGROUPID = I.MODELGROUPID,
STOCKEDPRODUCT = I.STOCKEDPRODUCT
FROM INSERTED I WHERE I.RECID = INVENTMODELGROUP.RECID
IF (UPDATE(INVENTTABLE_ITEMID) OR UPDATE(NAMEALIAS))
UPDATE INVENTTABLE SET
ITEMID = I.INVENTTABLE_ITEMID,
NAMEALIAS = I.NAMEALIAS
FROM INSERTED I WHERE I.RECID#3 = INVENTTABLE.RECID
IF (UPDATE(ITEMID) OR UPDATE(INVMODELGRPITM_MODELGROUPID) OR UPDATE(MODELGROUPID) OR UPDATE(STOCKEDPRODUCT) OR UPDATE(INVENTTABLE_ITEMID) OR UPDATE(NAMEALIAS))
UPDATE INVENTMODELGROUPITEM SET
MODELGROUPDATAAREAID = COALESCE((SELECT TOP 1 DATAAREAID FROM INVENTMODELGROUP WHERE (MODELGROUPID = I.MODELGROUPID) AND (PARTITION = I.PARTITION) AND (DATAAREAID = I.DATAAREAID)), 0),
MODELGROUPID = COALESCE((SELECT TOP 1 MODELGROUPID FROM INVENTMODELGROUP WHERE (MODELGROUPID = I.MODELGROUPID) AND (PARTITION = I.PARTITION) AND (DATAAREAID = I.DATAAREAID)), 0),
ITEMID = COALESCE((SELECT TOP 1 ITEMID FROM INVENTTABLE WHERE (ITEMID = I.INVENTTABLE_ITEMID) AND (PARTITION = I.PARTITION) AND (DATAAREAID = I.DATAAREAID)), 0)
FROM INSERTED I WHERE I.RECID#2 = INVENTMODELGROUPITEM.RECID
[IF OBJECTPROPERTY(OBJECT_ID('GETNONPOITEMLISTBYIDENTITYDELETETRIGGER'), 'ISTRIGGER') = 1
DROP TRIGGER GETNONPOITEMLISTBYIDENTITYDELETETRIGGER
[CREATE TRIGGER GETNONPOITEMLISTBYIDENTITYDELETETRIGGER ON GETNONPOITEMLISTBYIDENTITY INSTEAD OF DELETE AS BEGIN
DELETE INVENTMODELGROUPITEM FROM INVENTMODELGROUPITEM JOIN DELETED D ON D.RECID#2 = INVENTMODELGROUPITEM.RECID
DELETE INVENTTABLE FROM INVENTTABLE JOIN DELETED D ON D.RECID#3 = INVENTTABLE.RECID
WHERE NOT EXISTS (SELECT 'x' FROM INVENTMODELGROUPITEM C WHERE C.ITEMID = INVENTTABLE.ITEMID)
DELETE INVENTMODELGROUP FROM INVENTMODELGROUP JOIN DELETED D ON D.RECID = INVENTMODELGROUP.RECID
WHERE NOT EXISTS (SELECT 'x' FROM INVENTMODELGROUPITEM C WHERE C.MODELGROUPDATAAREAID = INVENTMODELGROUP.DATAAREAID AND C.MODELGROUPID = INVENTMODELGROUP.MODELGROUPID)
Inner Exception: Inner Exception: Column 'INSERTED.DATAAREAID' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Process: syncengine.exe exited with code -1.
Database synchronization failed. You may have to do a full build of the package 'ApplicationSuite' and all of its dependent packages.
Dynamics 365 for Operations build step: Database synchronization completed (126872 ms).
Dynamics 365 for Operations build completed (197173 ms).

Observations:-

  • If DataAreaId value is removed from the Primary Company Context, the build succeeds.
  • Again, if the ItemId (i.e. the InventTable.ItemId) is removed from the exposed fields, keeping the Primary Company Context set to Data AreaId, the build succeeds as well.

But I need to show ItemId in my data-entity query result, as well as I want to filter it by Company. So both of them needs to be present.

How can I go about it?

*This post is locked for comments

I have the same question (0)
  • Sagnik Majumder Profile Picture
    792 on at

    Can someone please reply to this query? Its really important.

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

    I suggest you simplify your data entity by removing all unrelated data sources and fields. When you do that, the problem should be more obvious. If it doesn't help by itself, you can then export the project and share it, so everybody can reproduce the problem and analyze its cause.

  • Tommy Skaue Profile Picture
    Moderator on at

    Hi

    I'm not sure how you can solve the metadata to make it build, but from a SQL perspective I can easily spot the error.

    DataAreaId is correctly not grouped in the following SQL Query (which you can try to run manually and you will get the same error)

    SELECT COALESCE(I.MODELGROUPID, ''),
    COALESCE(I.STOCKEDPRODUCT, 0),
    0,
    I.DATAAREAID,
    I.PARTITION FROM INSERTED I
    WHERE NOT EXISTS (SELECT 'x' FROM INVENTMODELGROUP WHERE (MODELGROUPID = I.MODELGROUPID) AND (PARTITION = I.PARTITION) AND (DATAAREAID = I.DATAAREAID))
    AND ( I.MODELGROUPID <> '')
    GROUP BY I.MODELGROUPID,
    I.STOCKEDPRODUCT,
    I.PARTITION
    


  • Sagnik Majumder Profile Picture
    792 on at

    Thanks for your reply Martin.

    I have followed your advice and have cleaned up my data entity and removed all unnecessary datasources and fields. 

    Now the data entity has the following structure:-

    Datasources:-

    • InventModelGroup joined with InventModelGroupItem
    • InventModelGroupItem joined with InventTable

    Relations:-

    • InventModelGroup.DataAreaId == InventModelGroupItem.ModelGroupDataAreaId
    • InventModelGroup.ModelGroupId == InventModelGroupItem.ModelGroupId
    • InventModelGroupItem.ItemId == InventTable.ItemId

    Fields exposed are:-

    • ModelGroupId (belongs to table InventModelGroup),
    • DataAreaId (belongs to table InventModelGroup), [Name of this field is DataAreaIdField],
    • ItemId (belongs to table InventTable)

    The Primary Company Context of the data entity is set to DataAreaId (as we want to filter the query result base on company).

    Building this dataentity gives me the above errors. There are plenty in number (62 errors).

    I am attaching the data entity here.

    Please try it on your environment and revert back.

  • Sagnik Majumder Profile Picture
    792 on at

    Unfortunately the entity xml file is not getting attached. So I am instead pasting the xml content here.

    GetNonPoItemListByIdEntity.xml

    <?xml version="1.0" encoding="utf-8"?>
    <AxDataEntityView xmlns:i="www.w3.org/.../XMLSchema-instance">
    <Name>GetNonPoItemListByIdEntity</Name>
    <SourceCode>
    <Declaration><![CDATA[
    public class GetNonPoItemListByIdEntity extends common
    {
    }
    ]]></Declaration>
    <Methods />
    </SourceCode>
    <ConfigurationKey>LogisticsBasic</ConfigurationKey>
    <FormRef>InventModelGroup</FormRef>
    <Label>Get NonPOItemListById Entity Query</Label>
    <DataManagementEnabled>Yes</DataManagementEnabled>
    <DataManagementStagingTable>GetNonPoItemListByIdStaging</DataManagementStagingTable>
    <IsPublic>Yes</IsPublic>
    <PrimaryCompanyContext>DataAreaId</PrimaryCompanyContext>
    <PrimaryKey>EntityKey</PrimaryKey>
    <PublicCollectionName>GetNonPoItemListByIds</PublicCollectionName>
    <PublicEntityName>GetNonPoItemListById</PublicEntityName>
    <SupportsSetBasedSqlOperations>Yes</SupportsSetBasedSqlOperations>
    <DeleteActions />
    <FieldGroups>
    <AxTableFieldGroup>
    <Name>AutoReport</Name>
    <Fields>
    <AxTableFieldGroupField>
    <DataField>DataAreaId</DataField>
    </AxTableFieldGroupField>
    </Fields>
    </AxTableFieldGroup>
    <AxTableFieldGroup>
    <Name>AutoLookup</Name>
    <Fields />
    </AxTableFieldGroup>
    <AxTableFieldGroup>
    <Name>AutoIdentification</Name>
    <AutoPopulate>Yes</AutoPopulate>
    <Fields />
    </AxTableFieldGroup>
    <AxTableFieldGroup>
    <Name>AutoSummary</Name>
    <Fields />
    </AxTableFieldGroup>
    <AxTableFieldGroup>
    <Name>AutoBrowse</Name>
    <Fields />
    </AxTableFieldGroup>
    </FieldGroups>
    <Fields>
    <AxDataEntityViewField xmlns=""
    i:type="AxDataEntityViewMappedField">
    <Name>ModelGroupId</Name>
    <DataField>ModelGroupId</DataField>
    <DataSource>InventModelGroup</DataSource>
    </AxDataEntityViewField>
    <AxDataEntityViewField xmlns=""
    i:type="AxDataEntityViewMappedField">
    <Name>DataAreaIdField</Name>
    <DataField>DataAreaId</DataField>
    <DataSource>InventModelGroup</DataSource>
    </AxDataEntityViewField>
    <AxDataEntityViewField xmlns=""
    i:type="AxDataEntityViewMappedField">
    <Name>ItemId</Name>
    <DataField>ItemId</DataField>
    <DataSource>InventTable</DataSource>
    </AxDataEntityViewField>
    </Fields>
    <Keys>
    <AxDataEntityViewKey>
    <Name>EntityKey</Name>
    <Fields>
    <AxDataEntityViewKeyField>
    <DataField>ModelGroupId</DataField>
    </AxDataEntityViewKeyField>
    </Fields>
    </AxDataEntityViewKey>
    </Keys>
    <Mappings />
    <Ranges />
    <Relations />
    <StateMachines />
    <ViewMetadata>
    <Name>Metadata</Name>
    <SourceCode>
    <Methods>
    <Method>
    <Name>classDeclaration</Name>
    <Source><![CDATA[
    [Query]
    public class Metadata extends QueryRun
    {
    }
    ]]></Source>
    </Method>
    </Methods>
    </SourceCode>
    <DataSources>
    <AxQuerySimpleRootDataSource>
    <Name>InventModelGroup</Name>
    <DynamicFields>Yes</DynamicFields>
    <Table>InventModelGroup</Table>
    <DataSources>
    <AxQuerySimpleEmbeddedDataSource>
    <Name>InventModelGroupItem</Name>
    <DynamicFields>Yes</DynamicFields>
    <Table>InventModelGroupItem</Table>
    <DataSources>
    <AxQuerySimpleEmbeddedDataSource>
    <Name>InventTable</Name>
    <DynamicFields>Yes</DynamicFields>
    <Table>InventTable</Table>
    <DataSources />
    <DerivedDataSources />
    <Fields />
    <Ranges />
    <Relations>
    <AxQuerySimpleDataSourceRelation>
    <Name>QueryDataSourceRelation1</Name>
    <Field>ItemId</Field>
    <JoinDataSource>InventModelGroupItem</JoinDataSource>
    <RelatedField>ItemId</RelatedField>
    </AxQuerySimpleDataSourceRelation>
    </Relations>
    </AxQuerySimpleEmbeddedDataSource>
    </DataSources>
    <DerivedDataSources />
    <Fields />
    <Ranges />
    <Relations>
    <AxQuerySimpleDataSourceRelation>
    <Name>QueryDataSourceRelation1</Name>
    <Field>ModelGroupId</Field>
    <JoinDataSource>InventModelGroup</JoinDataSource>
    <RelatedField>ModelGroupId</RelatedField>
    </AxQuerySimpleDataSourceRelation>
    <AxQuerySimpleDataSourceRelation>
    <Name>QueryDataSourceRelation2</Name>
    <Field>DataAreaId</Field>
    <JoinDataSource>InventModelGroup</JoinDataSource>
    <RelatedField>ModelGroupDataAreaId</RelatedField>
    </AxQuerySimpleDataSourceRelation>
    </Relations>
    </AxQuerySimpleEmbeddedDataSource>
    </DataSources>
    <DerivedDataSources />
    <Fields />
    <Ranges />
    <GroupBy />
    <Having />
    <OrderBy />
    </AxQuerySimpleRootDataSource>
    </DataSources>
    </ViewMetadata>
    </AxDataEntityView>


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

    Can you please confirm that you're getting the error about group by ("Column DataAreaId is invalid because it is not contained in aggregate function or GROUP BY clause") despite the fact that your simplified data entity doesn't contain any grouping at all?

  • Lauras U Profile Picture
    955 on at

    Hi I am getting very similar sync error.

      System.InvalidOperationException: System.InvalidOperationException: Database execution failed: The select list for the INSERT statement contains more items than the insert list. The number of SELECT values must match the number of INSERT columns.
     [IF OBJECTPROPERTY(OBJECT_ID('HCMJOBENTITYINSERTTRIGGER'), 'ISTRIGGER') = 1
         DROP TRIGGER HCMJOBENTITYINSERTTRIGGER
     ]
     [CREATE TRIGGER HCMJOBENTITYINSERTTRIGGER ON HCMJOBENTITY INSTEAD OF INSERT AS BEGIN
     INSERT INTO HCMJOB (JOBID,MAXIMUMPOSITIONS,I.RECVERSION,I.PARTITION)
     SELECT COALESCE(I.JOBID, ''),
     	COALESCE(I.MAXIMUMNUMBEROFPOSITIONS, 0),
     	0,
     	I.PARTITION FROM INSERTED I
     WHERE NOT EXISTS (SELECT 'x' FROM HCMJOB WHERE (JOBID = I.JOBID) AND (PARTITION = I.PARTITION))
     AND ( I.JOBID <> '')
     GROUP BY I.JOBID,
     	I.MAXIMUMNUMBEROFPOSITIONS,
     	I.PARTITION
     INSERT INTO HCMJOBDETAIL (DEFAULTFULLTIMEEQUIVALENCY,DESCRIPTION,EXTERNALSURVEYCODE,MARKETCONTROLPAY,MARKETMAXIMUMPAY,MARKETMINIMUMPAY,MARKETSOURCE,NOTE,VALIDFROM,VALIDTO,JOB,COMPENSATIONLEVEL,JOBFUNCTION,JOBTYPE,SURVEYCOMPANY,TITLE,I.RECVERSION,I.PARTITION)
     SELECT COALESCE(I.FULLTIMEEQUIVALENT, 0),
     	COALESCE(I.DESCRIPTION, ''),
     	COALESCE(I.COMPENSATIONREFERENCEJOB, ''),
     	COALESCE(I.MARKETPRICECONTROLPOINT, 0),
     	COALESCE(I.MARKETPRICEHIGHTHRESHOLD, 0),
     	COALESCE(I.MARKETPRICELOWTHRESHOLD, 0),
     	COALESCE(I.MARKETPRICESOURCE, ''),
     	COALESCE(I.JOBDESCRIPTION, ''),
     	COALESCE(I.EFFECTIVE, ''),
     	COALESCE(I.EXPIRATION, ''),
     	COALESCE(I.NOTE, ''),
     	COALESCE((SELECT TOP 1 RECID FROM HCMJOB WHERE (JOBID = I.JOBID) AND (PARTITION = I.PARTITION)), 0),
     	COALESCE((SELECT TOP 1 RECID FROM HCMCOMPENSATIONLEVEL WHERE (COMPENSATIONLEVELID = I.COMPENSATIONLEVELID) AND (PARTITION = I.PARTITION)), 0),
     	COALESCE((SELECT TOP 1 RECID FROM HCMJOBFUNCTION WHERE (JOBFUNCTIONID = I.FUNCTIONID) AND (PARTITION = I.PARTITION)), 0),
     	COALESCE((SELECT TOP 1 RECID FROM HCMJOBTYPE WHERE (JOBTYPEID = I.JOBTYPEID) AND (PARTITION = I.PARTITION)), 0),
     	COALESCE((SELECT TOP 1 RECID FROM HCMSURVEYCOMPANY WHERE (SURVEYCOMPANYID = I.COMPENSATIONSURVEYCOMPANYID) AND (PARTITION = I.PARTITION)), 0),
     	COALESCE((SELECT TOP 1 RECID FROM HCMTITLE WHERE (TITLEID = I.TITLEID) AND (PARTITION = I.PARTITION)), 0),
     GROUP BY I.FULLTIMEEQUIVALENT,
     	I.DESCRIPTION,
     	I.COMPENSATIONREFERENCEJOB,
     	I.FUNCTION_,
     	I.MARKETPRICECONTROLPOINT,
     	I.MARKETPRICEHIGHTHRESHOLD,
     	I.MARKETPRICELOWTHRESHOLD,
     	I.MARKETPRICESOURCE,
     	I.JOBDESCRIPTION,
     	I.COMPENSATIONSURVEYCOMPANY,
     	I.EFFECTIVE,
     	I.EXPIRATION,
     	I.NOTE,
     	I.JOBID,
     	I.COMPENSATIONLEVELID,
     	I.FUNCTIONID,
     	I.JOBTYPEID,
     	I.COMPENSATIONSURVEYCOMPANYID,
     	I.TITLEID,
     END
     [IF OBJECTPROPERTY(OBJECT_ID('HCMJOBENTITYUPDATETRIGGER'), 'ISTRIGGER') = 1
         DROP TRIGGER HCMJOBENTITYUPDATETRIGGER
     [CREATE TRIGGER HCMJOBENTITYUPDATETRIGGER ON HCMJOBENTITY INSTEAD OF UPDATE AS BEGIN
     IF (UPDATE(JOBID) OR UPDATE(MAXIMUMNUMBEROFPOSITIONS))
     BEGIN
     UPDATE HCMJOB SET
     	JOBID = I.JOBID,
     	MAXIMUMPOSITIONS = I.MAXIMUMNUMBEROFPOSITIONS
     FROM INSERTED I WHERE I.RECID = HCMJOB.RECID
     IF (UPDATE(COMPENSATIONLEVEL) OR UPDATE(FULLTIMEEQUIVALENT) OR UPDATE(DESCRIPTION) OR UPDATE(COMPENSATIONREFERENCEJOB) OR UPDATE(FUNCTION_) OR UPDATE(JOBTYPE) OR UPDATE(MARKETPRICECONTROLPOINT) OR UPDATE(MARKETPRICEHIGHTHRESHOLD) OR UPDATE(MARKETPRICELOWTHRESHOLD) OR UPDATE(MARKETPRICESOURCE) OR UPDATE(JOBDESCRIPTION) OR UPDATE(COMPENSATIONSURVEYCOMPANY) OR UPDATE(TITLE) OR UPDATE(EFFECTIVE) OR UPDATE(EXPIRATION) OR UPDATE(NOTE) OR UPDATE(JOBID) OR UPDATE(MAXIMUMNUMBEROFPOSITIONS) OR UPDATE(COMPENSATIONLEVELID) OR UPDATE(FUNCTIONID) OR UPDATE(JOBTYPEID) OR UPDATE(COMPENSATIONSURVEYCOMPANYID) OR UPDATE(TITLEID))
     UPDATE HCMJOBDETAIL SET
     	JOB = COALESCE((SELECT TOP 1 RECID FROM HCMJOB WHERE (JOBID = I.JOBID) AND (PARTITION = I.PARTITION)), 0),
     	COMPENSATIONLEVEL = COALESCE((SELECT TOP 1 RECID FROM HCMCOMPENSATIONLEVEL WHERE (COMPENSATIONLEVELID = I.COMPENSATIONLEVELID) AND (PARTITION = I.PARTITION)), 0),
     	JOBFUNCTION = COALESCE((SELECT TOP 1 RECID FROM HCMJOBFUNCTION WHERE (JOBFUNCTIONID = I.FUNCTIONID) AND (PARTITION = I.PARTITION)), 0),
     	JOBTYPE = COALESCE((SELECT TOP 1 RECID FROM HCMJOBTYPE WHERE (JOBTYPEID = I.JOBTYPEID) AND (PARTITION = I.PARTITION)), 0),
     	SURVEYCOMPANY = COALESCE((SELECT TOP 1 RECID FROM HCMSURVEYCOMPANY WHERE (SURVEYCOMPANYID = I.COMPENSATIONSURVEYCOMPANYID) AND (PARTITION = I.PARTITION)), 0),
     	TITLE = COALESCE((SELECT TOP 1 RECID FROM HCMTITLE WHERE (TITLEID = I.TITLEID) AND (PARTITION = I.PARTITION)), 0),
     	DEFAULTFULLTIMEEQUIVALENCY = I.FULLTIMEEQUIVALENT,
     	DESCRIPTION = I.DESCRIPTION,
     	EXTERNALSURVEYCODE = I.COMPENSATIONREFERENCEJOB,
     	MARKETCONTROLPAY = I.MARKETPRICECONTROLPOINT,
     	MARKETMAXIMUMPAY = I.MARKETPRICEHIGHTHRESHOLD,
     	MARKETMINIMUMPAY = I.MARKETPRICELOWTHRESHOLD,
     	MARKETSOURCE = I.MARKETPRICESOURCE,
     	NOTE = I.JOBDESCRIPTION,
     	VALIDFROM = I.EFFECTIVE,
     	VALIDTO = I.EXPIRATION
     FROM INSERTED I WHERE I.RECID#2 = HCMJOBDETAIL.RECID
     [IF OBJECTPROPERTY(OBJECT_ID('HCMJOBENTITYDELETETRIGGER'), 'ISTRIGGER') = 1
         DROP TRIGGER HCMJOBENTITYDELETETRIGGER
     [CREATE TRIGGER HCMJOBENTITYDELETETRIGGER ON HCMJOBENTITY INSTEAD OF DELETE AS BEGIN
     DELETE HCMJOBDETAIL FROM HCMJOBDETAIL JOIN DELETED D ON D.RECID#2 = HCMJOBDETAIL.RECID
     DELETE HCMJOB FROM HCMJOB JOIN DELETED D ON D.RECID = HCMJOB.RECID
     WHERE NOT EXISTS (SELECT 'x' FROM HCMJOBDETAIL C WHERE C.JOB = HCMJOB.RECID)
       ---> System.Data.SqlClient.SqlException:  ---> System.Data.SqlClient.SqlException: The select list for the INSERT statement contains more items than the insert list. The number of SELECT values must match the number of INSERT columns.
        at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
        at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
        at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
        at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
        at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
        at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
        at Microsoft.Dynamics.AX.Framework.Database.Synchronize.SqlExecute.Execute(IEnumerable`1 commands)
        at Microsoft.Dynamics.AX.Framework.Database.Tools.DataEntityTriggerSync.RunSync()
        --- End of inner exception stack trace ---
        at Microsoft.Dynamics.AX.Framework.Database.Tools.DataEntityTriggerSync.ThrowOnSqlExecuteException(SqlException e, String commandText)
        at Microsoft.Dynamics.AX.Framework.Database.Tools.SyncEngine.DataEntityTriggerSync()
        at Microsoft.Dynamics.AX.Framework.Database.Tools.SyncEngine.PartialTableViewSync()
        at Microsoft.Dynamics.AX.Framework.Database.Tools.SyncEngine.PartialSync()
        at Microsoft.Dynamics.AX.Framework.Database.Tools.SyncEngine.RunSync(SyncOptions options)
        at Microsoft.Dynamics.AX.Framework.Database.Tools.SyncEngine.Run(String metadataDirectory, String sqlConnectionString, SyncOptions options)
          Inner Exception:     Inner Exception: System.Data.SqlClient.SqlException (0x80131904): The select list for the INSERT statement contains more items than the insert list. The number of SELECT values must match the number of INSERT columns.
     ClientConnectionId:b11482a3-80f4-41c6-a7c3-adc1b2a599e9
     Error Number:121,State:1,Class:15
      Process: syncengine.exe exited with code -1.


    Reproduction is very easy: create HcmJobEntity extensions add Note field (Memo!) from HcmJobDetails DS to entity fields -> sync. D365FO Update8 on Vanilla demo machine

  • Suggested answer
    Manpreet Profile Picture
    15 on at

    Hi Lauras,

    Table HCMJobDetail does not save data per company, check the table property. I think this is the issue for you not being able to select "DataAreaId" as primary company context in the Data entity.

  • Suggested answer
    Ignacio Sanhueza Profile Picture
    5 on at

    Hello,

    I know a lot of time has passed but I had this same issue and for everyone facing the same error I have been able to solve it.

    In the case of tables that rely on multiple DataAreaId's you must use the target table's ones. (For me it was InventItemGroupItem)

    This is what Sagnik had:

    Relations:-

    • InventModelGroup.DataAreaId == InventModelGroupItem.ModelGroupDataAreaId
    • InventModelGroup.ModelGroupId == InventModelGroupItem.ModelGroupId
    • InventModelGroupItem.ItemId == InventTable.ItemId

    What you want to do is make all the relationships against InventTable and take away IventModelGroup table from the equation.

    Relations:-

    • InventTable.DataAreaId == InventModelGroupItem.ModelGroupDataAreaId
    • InventTable.DataAreaId == InventModelGroupItem.ItemDataAreaId
    • InventModelGroupItem.ItemId == InventTable.ItemId

    Then you just take InventModelGroupItem.ModelGroupId instead of InventModelGroup.ModelGroupId.

    That should solve it for every error born from tables that don't use their own DataAreaId's.

    In my case it was InventItemGroupItem.

    I hope this helps someone.

    Cheers,

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
Scott_itD Profile Picture

Scott_itD 2 Community Manager

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans