Skip to main content

Schedule Bookmarks for Email




    Something like this will join a schedule to a bookmark but you need to save the bookmarkid within the schedule as a parameter

    <DataLayer ConnectionID="connScheduler" Type="Scheduler">
      <Join ID="Join" JoinType="InnerJoin">
        <DataLayer Type="Bookmarks" BookmarkCollection="@Application.rdBookmarkCollectionDefault~" />
        <MatchCondition LeftDataColumn="rdBookmarkID" RightDataColumn="BookmarkID" />
  • Johnny Stevens

    Thanks John... I used a left outer join, adding the BookmarkID as "Custom Column 2" in my Scheduler so I can join as you defined. I'm also passing the reportId along with other values so that I can create the URL to the Bookmark in the email.

    Bonus info - Rather than send a URL to our users, we are creating an intermediary SQL table with an id and the URL. We'll send the email out to the user as https://<parentApp>/<id>. They'll click on the link, hit the parent app to authenticate, and then the parent app will match the <id> to the and forward the user to our embedded Info with the Bookmark URL.


    A Left Outer Join will give you rows of schedules that are not associated with a bookmark.  An Inner Join will only return schedules with associated bookmarks.

    I personally never liked using the Custom Columns, especially since Logi has used these in instances such as InfoGo for its own purposes.  Instead of using the two "CustomColumns" you can save the schedule with the BookmarkID and many other parameters as link parameters.  This will store these values as an XML encoded value within your schedule.  The DataLayer Scheduler automatically transposes this XML to individual new columns so you wouldn't have to remember that CustomColumn2 is a bookmarkID, you can just reference it.  This also allows you to store other information (such as a different bookmark collection to look in, parameters which tell the task which export type to process or anything that doesn't necessarily belong within the bookmark but needs to be accessed by the process task running the scheduled task.  For instance, with the below example your email to the user can display the Report Title and custom email body if desired.

    Just a bit different way of doing things.

    So in your joined dataset the parameters are transposed as columns

  • Johnny Stevens

    That's fantastic!! It allows me to remove values from some of the hard-limited columns (e.g. ApplicationID) and place them and more into the Link Params for use in the Scheduler. It even works with us saving our Scheduler Tasks in SQL!

    Thank you so much, John. Props to VISUI... again!


Please sign in to leave a comment.