Of course as soon as I submitted this, found the problem. Changed the addRange 
for InventSerial id to value(SysQuery::valueEmptyString());

Paul

--- In development-axapta@yahoogroups.com, "pkpeterson652" <ppeter...@...> 
wrote:
>
> Creating a custom lookup Form and when I execute the lookup I receive the 
> following message:
> 
> Query extended range failure: InventDim.InventSerialId is not a valid 
> datasource.field pair near pos 29.
> 
> What I want selected from InventTrans is:
> 
> 1. Records associated with a particluar Production order (ItemId and 
> InventTransId selections)
> 2. Records that aren't associated with a serial number.
> 
> In the init method of the data source (InventTrans) I have coded the 
> following:
> 
> public void init()
> {
>     Query                   q;
>     QueryBuildDataSource    qB;
>     QueryBuildDataSource    qB2;
>     ;
> 
>     super();
> 
>     q = new Query();
>     qB  = q.addDataSource(tablenum(InventTrans));
>     qB.addRange(Fieldnum(InventTrans,ItemId)).value(prodTable.itemid);
>     
> qB.addRange(FieldNum(InventTrans,InventTransId)).value(prodTable.InventTransId);
>     qB.addRange(FieldNum(InventTrans,Qty)).value('> 0');
> 
>     qB2 = qB.addDataSource(tablenum(InventDim));
>     qB2.addLink(FieldNum(InventTrans, 
> InventDimId),fieldNum(InventDim,InventDimid), qB.name());
>     qB2.addRange(Fieldnum(InventDim,InventSerialId)).value(strfmt('(%1.%2 = 
> "")', 'InventDim', fieldStr(InventDim, InventSerialId)));
>     qB2.joinMode(JoinMode::InnerJoin);
> 
>     this.query(q);
> }
> 
> The query that is built from the above looks like this:
> 
> SELECT * FROM InventTrans WHERE ((ItemId = N'038020AH')) AND ((InventTransId 
> = N'LOT003279')) AND ((Qty>0)) JOIN * FROM InventDim WHERE 
> InventTrans.inventDimId = InventDim.inventDimId AND 
> (((InventDim.InventSerialId = "")))
> 
> Don't understand the reason for the message and what what I need to change to 
> eliminate it.
> 
> Any help would be appreciated, Paul
>


Reply via email to