PrevPrev Go to previous topic
NextNext Go to next topic
Last Post 06/13/2017 2:28 PM by  John Henley
PFI to IPA Landmark transaction
 2 Replies
You are not authorized to post a reply.
Author Messages
Basic Member
(48 points)
Basic Member

Send Message:

05/23/2017 11:03 AM

    Here is the current Landmark transaction node: it returns no data

    _dataArea="LSAPPS" & _module="pfi" & _objectName="PfiUserCategory" & _actionName="Find" & _actionOperator="NONE" & _actionType="MultipleRecordQuery" & _runAsUser="" & _setName="ByTaskCategoryValueUser" & PfiUserProfile & PfiTask.TaskName="Level1;Level2;Level3" & PfiFilterKey="Req Loc" & PfiUserCategory="<!--RQH_REQ_LOCATION-->"

     and here is our PFI query


    We are trying to determine what levels of approval are valid for a requisition. Based on the query we set flags to let us know which levels will need to approve.


    Any help is appreciated.


    Daniel Burrus, PMP

    Project Manager, Technology Services

    Special School District of St. Louis County


    Daniel Burrus,PMP
    Special School District, St. Louis County
    Veteran Member
    (3487 points)
    Veteran Member

    Send Message:

    05/23/2017 4:58 PM

    Hi Daniel,

    It appears that you (or whoever built the call) are making some assumptions in your query that are not correct.  Landmark is pretty finicky about how data selection and filtering are done.

    You can't do multi-select within a field.  In query mode, Landmark expects data fields with an "=" to be key fields, and to have a single value passed in.  It won't understand "Level1;Level2;Level3" as an "or" statement.  I've never been able to get filters to do that either.

    Key fields must be queried in Index order without skipping fields.  If you only have values for the first and third keys, use the first one and then filter or manage within the loop.

    NOTE:  Landmark Filters SUCK!!! - they are very difficult to do correctly and there is no documentation that I've found.  In many cases you are better off to do a wide-open query and then filter via JavaScript or a branch.


    Since I don't know your data, and don't use reqs, I can't tell exactly what you are trying to do, but I'd recommend doing something like this instead:

    _dataArea="prodhcm" & _module="pfi" & _objectName="PfiUserCategory" & _actionName="Find" & _actionOperator="NONE" & _actionType="MultipleRecordQuery" & _runAsUser="" & _pageSize="30" & _filterString="PfiFilterKey=\"Req Loc\" & PfiUserCategory=\"<!--RQH_REQ_LOCATION-->\"" & _relationName="" & _setName="ByTaskCategoryValueUser" & _asOfDate="" & _effectiveDate="" & PfiUserProfile & PfiTask.TaskName & PfiFilterKey & PfiUserCategory


    Then use Javascript or a branch to include/exclude PfiTask.TaskName records.  It's not pretty, but it may get the job done (though my filter may not work - because filters SUCK!...see above)

    Basically, limit it as much as you can with keys, then add a filter if you must, then handle the remainder record-by-record in the return loop.


    If it is at all possible, use a SQL query instead.  Then you can regular SQL syntax and get exactly what you need in a jiffy.  However, if you are cloud/multi-tenant this likely isn't an option, unfortunately.


    Sorry I can't help more!


    Kelly Meade
    J. R. Simplot Company
    Boise, ID
    John Henley
    Senior Member
    (9650 points)
    Senior Member

    Send Message:

    06/13/2017 2:28 PM
    _filterString=((PfiTask.TaskName = "Level1") OR (PfiTask.TaskName = "Level2") OR (PfiTask.TaskName = "Level3"))
    Thanks for using the forums!
    You are not authorized to post a reply.