TCC - isNull дает противоречивые результаты

Я работаю над отчетом через TCC, который дает мне количество заявителей по заявкам с различными фильтрами, примененными с использованием сложных прогнозов. Одна из сложных проекций подсчитывает список кандидатов, в которых конкретная UDF в их профиле кандидата имеет значение Null. Я использую продукт Recruiting 17.4, Entity: Requisition и TCC версии 17.4. Кроме того, псевдоним для основного запроса — mainQuery.

По какой-то причине этот запрос выдает 0 для всех заявок:

<quer:projection alias="TotalWithoutSurveys" xmlns:quer="http://www.taleo.com/ws/integration/query">
  <quer:query projectedClass="Application" alias="Q1">
    <quer:projections>
      <quer:projection>
        <quer:count>
          <quer:field path="Candidate,Number"/>
        </quer:count>
      </quer:projection>
    </quer:projections>
    <quer:filterings>
      <quer:filtering>
        <quer:equal>
          <quer:field path="Requisition,ContestNumber"/>
          <quer:field ownerQuery="mainQuery" path="ContestNumber"/>
        </quer:equal>
      </quer:filtering>
      <quer:filtering>
        <quer:isNull>
          <quer:field path="Candidate,Gallup_5fTeacher_5fScore"/>
        </quer:isNull>
      </quer:filtering>
    </quer:filterings>
  </quer:query>
</quer:projection>

Если я заменю этот кусок:

    <quer:isNull>
      <quer:field path="Candidate,Gallup_5fTeacher_5fScore"/>
    </quer:isNull>

с этим куском:

    <quer:isNotNull>
      <quer:field path="Candidate,Gallup_5fTeacher_5fScore"/>
    </quer:isNotNull>

Он выдает правильные значения для этого запроса (хотя и неправильные для моей цели). Еще более странно, если я заменю его на этот фрагмент:

    <quer:equal>
      <quer:replaceNull>
        <quer:field path="Candidate,Gallup_5fTeacher_5fScore"/>
        <quer:string>None</quer:string>
      </quer:replaceNull>
      <quer:string>None</quer:string>
    </quer:equal>

он работает правильно. Есть идеи, что я делаю неправильно?


person Michael H.    schedule 04.02.2021    source источник


Ответы (1)


Даже я столкнулся с тем, что «IsNull» неэффективен с UDF.

В качестве альтернативы вы можете сделать это, используя «isNotNull» и «Not».

<quer:filtering xmlns:quer="http://www.taleo.com/ws/integration/query">
   <quer:not>
      <quer:isNotNull>
         <quer:field path="Requisition,JobInformation,AD_5fdea_5fEmp"/>
      </quer:isNotNull>
   </quer:not>
</quer:filtering>
person Naresh    schedule 22.02.2021