Skip to main content
Answer

Selector does not work correctly

  • November 20, 2025
  • 11 replies
  • 77 views

Forum|alt.badge.img+1

#region UsrProjectTaskFilterLabor
        public abstract class usrProjectTaskFilterLabor : PX.Data.BQL.BqlString.Field<usrProjectTaskFilterLabor> { }
        [PXDBString]
        [PXUIField(DisplayName = Messages.ProjectTask)]
        [PXSelector(
            typeof(Search<PMTask.taskCD,
                Where<PMTask.projectID, Equal<Current<DailyFieldReport.projectId>>,
                    And<PMTask.status, NotEqual<ProjectTaskStatus.planned>,
                    And<Where<Current<DailyFieldReportExt.usrBranchIDFilterLabor>, Equal<Null>,
                        Or<PMTask.defaultBranchID, Equal<Current<DailyFieldReportExt.usrBranchIDFilterLabor>>>>>>>>),
            typeof(PMTask.taskCD),
            typeof(PMTask.description),
            ValidateValue = false)]
        public virtual string UsrProjectTaskFilterLabor { get; set; }
        #endregion

And<Where<Current<DailyFieldReportExt.usrBranchIDFilterLabor>, Equal<Null>,
                        Or<PMTask.defaultBranchID, Equal<Current<DailyFieldReportExt.usrBranchIDFilterLabor>>>>»

Does not work. I have rows in database for my condition. But selector return 0 rows. When i delete 
And<Where<Current<DailyFieldReportExt.usrBranchIDFilterLabor>, Equal<Null>,
                        Or<PMTask.defaultBranchID, Equal<Current<DailyFieldReportExt.usrBranchIDFilterLabor>>>>»
this condition its work. But i need this condition

Best answer by bihalivan15

#region UsrProjectTaskFilterLabor
        public abstract class usrProjectTaskFilterLabor : PX.Data.BQL.BqlString.Field<usrProjectTaskFilterLabor> { }
        [PXDBString]
        [PXUIField(DisplayName = Messages.ProjectTask)]
        [PXSelector(typeof(SearchFor<PMTask.taskCD>.
            In<
                SelectFrom<PMTask>.
                Where<PMTask.projectID.IsEqual<DailyFieldReport.projectId.FromCurrent>.
                    And<PMTask.status.IsNotEqual<ProjectTaskStatus.planned>>.
                    And<DailyFieldReportExt.usrBranchIDFilterLabor.FromCurrent.Value.IsNull.
                Or<PMTask.defaultBranchID.IsEqual<DailyFieldReportExt.usrBranchIDFilterLabor.FromCurrent>>>>>),
            typeof(PMTask.taskCD),
            typeof(PMTask.description),
            ValidateValue = false)
        ]
        public virtual string UsrProjectTaskFilterLabor { get; set; }
        #endregion

its work for me. Use FromCurrent.Value.IsNull. and its work :)

11 replies

darylbowman
Captain II
Forum|alt.badge.img+15

Try using 'IsNull' instead of 'Equal<Null>'

 

Also, consider rewriting in F-Bql. It's so much easier to read and write.


Forum|alt.badge.img+3

Hi, ​@bihalivan15 
Try replacing Equal<Null> with IsNull, like this:

And<Where<Current<DailyFieldReportExt.usrBranchIDFilterLabor>, IsNull,
Or<PMTask.defaultBranchID, Equal<Current<DailyFieldReportExt.usrBranchIDFilterLabor>>>>

 


Forum|alt.badge.img+1
  • Author
  • Semi-Pro II
  • November 20, 2025

Hi, ​@bihalivan15 
Try replacing Equal<Null> with IsNull, like this:

And<Where<Current<DailyFieldReportExt.usrBranchIDFilterLabor>, IsNull,
Or<PMTask.defaultBranchID, Equal<Current<DailyFieldReportExt.usrBranchIDFilterLabor>>>>

 

I am test this and see some problem. When pmTask have defaultBranchID null value. Filter does not find them. Example :When usrBranchIDFilterLabor is null I see all pm task where defaultBranchID is not null. Why?


Forum|alt.badge.img+1
  • Author
  • Semi-Pro II
  • November 20, 2025

Try using 'IsNull' instead of 'Equal<Null>'

 

Also, consider rewriting in F-Bql. It's so much easier to read and write.

I am test this and have problem. When usrBranchIDFilter is null I saw all pm task where defaultBranchID is not null


darylbowman
Captain II
Forum|alt.badge.img+15

Try this instead:

#region UsrProjectTaskFilterLabor
public abstract class usrProjectTaskFilterLabor : PX.Data.BQL.BqlString.Field<usrProjectTaskFilterLabor> { }
[PXDBString]
[PXUIField(DisplayName = Messages.ProjectTask)]
[PXSelector(typeof(SearchFor<PMTask.taskCD>.
In<
SelectFrom<PMTask>.
Where<PMTask.projectID.IsEqual<DailyFieldReport.projectId.FromCurrent>.
And<PMTask.status.IsNotEqual<ProjectTaskStatus.planned>>.
And<DailyFieldReportExt.usrBranchIDFilterLabor.FromCurrent.IsNull.
Or<PMTask.defaultBranchID.IsEqual<DailyFieldReportExt.usrBranchIDFilterLabor.FromCurrent>>>>>),
typeof(PMTask.taskCD),
typeof(PMTask.description),
ValidateValue = false)]
public virtual string UsrProjectTaskFilterLabor { get; set; }
#endregion

 


Forum|alt.badge.img+1
  • Author
  • Semi-Pro II
  • November 20, 2025

Try this instead:

#region UsrProjectTaskFilterLabor
public abstract class usrProjectTaskFilterLabor : PX.Data.BQL.BqlString.Field<usrProjectTaskFilterLabor> { }
[PXDBString]
[PXUIField(DisplayName = Messages.ProjectTask)]
[PXSelector(typeof(SearchFor<PMTask.taskCD>.
In<
SelectFrom<PMTask>.
Where<PMTask.projectID.IsEqual<DailyFieldReport.projectId.FromCurrent>.
And<PMTask.status.IsNotEqual<ProjectTaskStatus.planned>>.
And<DailyFieldReportExt.usrBranchIDFilterLabor.FromCurrent.IsNull.
Or<PMTask.defaultBranchID.IsEqual<DailyFieldReportExt.usrBranchIDFilterLabor.FromCurrent>>>>>),
typeof(PMTask.taskCD),
typeof(PMTask.description),
ValidateValue = false)]
public virtual string UsrProjectTaskFilterLabor { get; set; }
#endregion

 


 

  


darylbowman
Captain II
Forum|alt.badge.img+15

Have you tried restarting the instance? Selectors can be very sensitive to changes. I have already had to remove and re-add a selector to get it working.


Forum|alt.badge.img+1
  • Author
  • Semi-Pro II
  • November 20, 2025

Have you tried restarting the instance? Selectors can be very sensitive to changes. I have already had to remove and re-add a selector to get it working.

I restarting the instance and remove and re-add selector. Its not working:(


Forum|alt.badge.img+1
  • Author
  • Semi-Pro II
  • November 20, 2025

Have you tried restarting the instance? Selectors can be very sensitive to changes. I have already had to remove and re-add a selector to get it working.

#region UsrProjectTaskFilterLabor
        public abstract class usrProjectTaskFilterLabor : PX.Data.BQL.BqlString.Field<usrProjectTaskFilterLabor> { }
        [PXDBString]
        [PXUIField(DisplayName = Messages.ProjectTask)]
        [PXSelector(typeof(SearchFor<PMTask.taskCD>.
            In<
                SelectFrom<PMTask>.
                Where<PMTask.projectID.IsEqual<DailyFieldReport.projectId.FromCurrent>.
                    And<PMTask.status.IsNotEqual<ProjectTaskStatus.planned>>.
                    And<DailyFieldReportExt.usrBranchIDFilterLabor.FromCurrent.IsNull>>>),
            typeof(PMTask.taskCD),
            typeof(PMTask.description),
            ValidateValue = false)
        ]
        public virtual string UsrProjectTaskFilterLabor { get; set; }
        #endregion
i write this and see problem in And<DailyFieldReportExt.usrBranchIDFilterLabor.FromCurrent.IsNull»
With this i see 0 rows. usrBranchIDFilterLabor.FromCurrent.IsNull not working


Forum|alt.badge.img+1
  • Author
  • Semi-Pro II
  • November 20, 2025

Have you tried restarting the instance? Selectors can be very sensitive to changes. I have already had to remove and re-add a selector to get it working.

#region UsrBranchIDFilterLabor
        public abstract class usrBranchIDFilterLabor : PX.Data.BQL.BqlInt.Field<usrBranchIDFilterLabor> { }
        [Branch(useDefaulting: false, PersistingCheck = PXPersistingCheck.Nothing)]
        [PXDefault(typeof(Search<Branch.branchID, Where<Branch.branchID, Equal<Current<AccessInfo.branchID>>>>), PersistingCheck = PXPersistingCheck.Nothing)]
        [PXUIField(DisplayName = Messages.Branch, Visibility = PXUIVisibility.SelectorVisible)]
        public virtual Int32? UsrBranchIDFilterLabor { get; set; }
        #endregion

it`s my field UsrBranchIDFilterLabor


Forum|alt.badge.img+1
  • Author
  • Semi-Pro II
  • Answer
  • November 20, 2025

#region UsrProjectTaskFilterLabor
        public abstract class usrProjectTaskFilterLabor : PX.Data.BQL.BqlString.Field<usrProjectTaskFilterLabor> { }
        [PXDBString]
        [PXUIField(DisplayName = Messages.ProjectTask)]
        [PXSelector(typeof(SearchFor<PMTask.taskCD>.
            In<
                SelectFrom<PMTask>.
                Where<PMTask.projectID.IsEqual<DailyFieldReport.projectId.FromCurrent>.
                    And<PMTask.status.IsNotEqual<ProjectTaskStatus.planned>>.
                    And<DailyFieldReportExt.usrBranchIDFilterLabor.FromCurrent.Value.IsNull.
                Or<PMTask.defaultBranchID.IsEqual<DailyFieldReportExt.usrBranchIDFilterLabor.FromCurrent>>>>>),
            typeof(PMTask.taskCD),
            typeof(PMTask.description),
            ValidateValue = false)
        ]
        public virtual string UsrProjectTaskFilterLabor { get; set; }
        #endregion

its work for me. Use FromCurrent.Value.IsNull. and its work :)