最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Acumatica Find Duplicate Leads - Stack Overflow

programmeradmin3浏览0评论

I would like to identify if a lead being created is yet on the database, base on its email. The following sql query is working in SSMS but not in bql :

'''SELECT [CRLead].[ContactID]  FROM [dbo].[CRLead]  INNER JOIN [dbo].[Contact] On ([CRLead].[ContactID]=[Contact].[ContactID])WHERE [CRLead].[Resolution]<> 'DL' AND [Contact].[CreatedDateTime] IS NOT NULL AND [Contact].[Email]='[email protected]' '''

    '''string email = row.EMail;
int? code = row.ContactID;
string dl = "DL";
CRLead lead0 = SelectFrom<CRLead>.Where<CRLead.eMail.IsEqual<@P.AsString>>.OrderBy<Desc<CRLead.contactID>>.View.SelectWindowed(Base, 0, 1, email); // result OK
CRLead lead1 = SelectFrom<CRLead>.Where<CRLead.createdDateTime.IsNotNull.And<CRLead.eMail.IsEqual<@P.AsString>>>.OrderBy<Desc<CRLead.contactID>>.View.SelectWindowed(Base, 0, 1, email); // result OK
CRLead lead2 = SelectFrom<CRLead>.Where<CRLead.resolution.IsNotEqual<@P.AsString>.And<CRLead.eMail.IsEqual<@P.AsString>>>.OrderBy<Desc<CRLead.contactID>>.View.SelectWindowed(Base, 0, 1, dl, email);// result NOT OK
CRLead lead3 = SelectFrom<CRLead>.Where<CRLead.createdDateTime.IsNotNull.And<CRLead.resolution.IsNotEqual<@P.AsString>.And<CRLead.eMail.IsEqual<@P.AsString>>>>.OrderBy<Desc<CRLead.contactID>>.View.SelectWindowed(Base, 0, 1, dl, email);// result NOT OK
CRLead lead = SelectFrom<CRLead>.Where<CRLead.contactID.IsNotEqual<@P.AsInt>.And<CRLead.resolution.IsNotEqual<PX.Objects.CR.doublClass>.And<CRLead.eMail.IsEqual<@P.AsString>>>>.OrderBy<Desc<CRLead.contactID>>.View.SelectWindowed(Base, 0, 1, code, email);// RESULT NOT OK
public class doublClass : PX.Data.BQL.BqlString.Constant<doublClass>
{
    public doublClass() : base("DL") { }
}'''

I would like to identify if a lead being created is yet on the database, base on its email. The following sql query is working in SSMS but not in bql :

'''SELECT [CRLead].[ContactID]  FROM [dbo].[CRLead]  INNER JOIN [dbo].[Contact] On ([CRLead].[ContactID]=[Contact].[ContactID])WHERE [CRLead].[Resolution]<> 'DL' AND [Contact].[CreatedDateTime] IS NOT NULL AND [Contact].[Email]='[email protected]' '''

    '''string email = row.EMail;
int? code = row.ContactID;
string dl = "DL";
CRLead lead0 = SelectFrom<CRLead>.Where<CRLead.eMail.IsEqual<@P.AsString>>.OrderBy<Desc<CRLead.contactID>>.View.SelectWindowed(Base, 0, 1, email); // result OK
CRLead lead1 = SelectFrom<CRLead>.Where<CRLead.createdDateTime.IsNotNull.And<CRLead.eMail.IsEqual<@P.AsString>>>.OrderBy<Desc<CRLead.contactID>>.View.SelectWindowed(Base, 0, 1, email); // result OK
CRLead lead2 = SelectFrom<CRLead>.Where<CRLead.resolution.IsNotEqual<@P.AsString>.And<CRLead.eMail.IsEqual<@P.AsString>>>.OrderBy<Desc<CRLead.contactID>>.View.SelectWindowed(Base, 0, 1, dl, email);// result NOT OK
CRLead lead3 = SelectFrom<CRLead>.Where<CRLead.createdDateTime.IsNotNull.And<CRLead.resolution.IsNotEqual<@P.AsString>.And<CRLead.eMail.IsEqual<@P.AsString>>>>.OrderBy<Desc<CRLead.contactID>>.View.SelectWindowed(Base, 0, 1, dl, email);// result NOT OK
CRLead lead = SelectFrom<CRLead>.Where<CRLead.contactID.IsNotEqual<@P.AsInt>.And<CRLead.resolution.IsNotEqual<PX.Objects.CR.doublClass>.And<CRLead.eMail.IsEqual<@P.AsString>>>>.OrderBy<Desc<CRLead.contactID>>.View.SelectWindowed(Base, 0, 1, code, email);// RESULT NOT OK
public class doublClass : PX.Data.BQL.BqlString.Constant<doublClass>
{
    public doublClass() : base("DL") { }
}'''
Share Improve this question asked Jan 20 at 16:57 Lionel PARISLionel PARIS 314 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 0

Isn't it a NULL handling issue? Try this BQL; I’ve included records with null values.

CRLead lead2 = SelectFrom<CRLead>
.Where<Brackets<CRLead.resolution.IsNotEqual<@P.AsString>.Or<CRLead.resolution.IsNull>>
    .And<CRLead.eMail.IsEqual<@P.AsString>>>
.OrderBy<Desc<CRLead.contactID>>.View.SelectWindowed(Base, 0, 1, dl, email);
发布评论

评论列表(0)

  1. 暂无评论