Reputation: 107
I am want to use OR EXISTS clause in QueryBuildDataSource but i dont know how to use it.
I prepare sql query:
select * from LedgerJournalTable l
where
(
l.createdBy = '...' and l.WorkflowStatus != 99
)
or exists
(
select top 1 'x' from WorkflowWorkItemTable w
where l.RecId = w.RefRecId
AND w.REFTABLEID = 211
and w.USERID = '....'
)
and i try to build ax query
queryDS = LedgerJournalTable_ds.query().dataSourceTable(tableNum(LedgerJournalTable));
ledgerStatusFilter = queryDS.addRange( fieldnum(LedgerJournalTable,WorkflowStatus) );
ledgerUserFilter = queryDS.addRange( fieldnum(LedgerJournalTable,createdBy) );
ledgerStatusFilter.value( "!=99" );
ledgerUserFilter.value( "..." );
qbdsWorkItemtTable = queryDS.addDataSource( tablenum(WorkflowWorkItemTable) );
qbdsWorkItemtTable.joinMode( JoinMode::NoExistsJoin );
qbdsWorkItemtTable.addLink( fieldnum(LedgerJournalTable,RecId), fieldnum(WorkflowWorkItemTable,RefRecId) );
qbdsWorkItemtTable.addRange( fieldnum(WorkflowWorkItemTable,RefTableId) ).value( strfmt("%1",tablenum(LedgerJournalTable)));
workflowUser = qbdsWorkItemtTable.addRange( fieldnum( WorkflowWorkItemTable, UserId ) );
workflowUser.value("...");
info( strfmt("%1", queryDS.toString() ) );
sory for my bad English :c
Upvotes: 0
Views: 2059
Reputation: 18051
Sorry, but AX queries do not support or exists
.
Also see this similar question.
Upvotes: 2