web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Automate / Updating a browser-bas...
Power Automate
Answered

Updating a browser-based table AS a table -- Example: copying from Excel to Planview timesheet

(0) ShareShare
ReportReport
Posted on by 292

Is it possible to reference the target table AS a table instead of a series of input fields?

Instead of 100+ Actions, nest it within a loop that reads from the Excel table and updates a specific cell in the target table?

 

I would like to automate copying time from an Excel spreadsheet into my online Timesheet in Planview 

MelissaReed_1-1666630377337.png     to       MelissaReed_0-1666630343110.png

Copy a total copy/paste won't work because each Planview cell (on the right) must be activated (clicked on) in order to enter values.

I have something that works:  I did a Recording of myself copying/pasting between windows, cell by cell (exactly what I do now manually).   

 

This works but treats each cell of the Planview table as a separate input field:   Input, Input2, Input3.....

MelissaReed_2-1666630803229.png

 

It works, but creates 100+ Actions in the flow,  treating each cell as its own Form Field.   Lots of disadvantages to that.

 

Is it possible to Populate/Update the target UI's table AS a table -- row/column -- instead of a series of input fields?

Instead of 100+ Actions,  It could be a SINGLE Populate/Update action nested within a loop that reads from the Excel table and updates a specific cell in the target table.   

 

 

  • Henrik_M Profile Picture
    2,021 Super User 2024 Season 1 on at

    It might be possible.

    Can you upload some HTML code for the page?

  • VJR Profile Picture
    7,635 on at

    If the code-behind of the page (html) has a pattern then yes you can do it with a single action in a loop.

     

    Ex: 

    If the first textbox has a html code like   ..../tr/td/Input(1)...

    and the second has ..../tr/td/Input(2)...

    Then using custom/dynamic selector feature, you can add a Counter variable to iterate the value within the braces and populate value in that field.

    Add condition to move to the next row when the first is completed.

     

    On the other hand, also see if Planview has a direct Data import option to import an Excel.

  • MelissaReed Profile Picture
    292 on at

    I'll reply to the last point first -- The Timesheet page itself doesn't appear to have an import option and while Planview may have a data import API option this to be something that doesn't require permission setups. Plain vanilla PAD.  

    Responding to your first question -- I don't think this HTML fits that description.  I pulled it up and did a View Source and here's a snippet of that code for the first row.  No parameters.  Each cell appears to be explicitly named.

    Here's a snippet:

     …

    <tr class="workRow">

    <th class="sr-table-cell" scope="row"><span class="sr-only">Time - COV Websites</span></th>

    <td class="extraCol no-print">

    <button class="extra-button" type="button" id="32358###menu" title="Actions">

    <span class="timesheet-icon-16 menu-icon"></span>

    <span class="sr-only">Action Menu Options for Time - COV Websites</span>

    </button>

    <div class="extra-menu-content" data-trigger="32358###menu">

    <ul class="standard-wrapper banner-list-menu">

    <li><a href="/planview/TrackTime/Remarks.aspx?sc=32358&ln=&rc=13126&pn=388&am=&popup=1&back=close" class="open-child-window">Remarks</a></li>

    <li tabindex="0"><a tabindex="-1" href="../../CRI/issuesummary.aspx?sc=32358&rope=Y" class="open-child-window">Issues</a></li>

    <li tabindex="0"><a tabindex="-1" href="../../TrackTime/TRWorkDetail.aspx?sc=32358&rc=13126&pn=388">Detail</a></li>

    <li tabindex="0"><a tabindex="-1" href="../../Shared/AllocationStatus.aspx?sc=32358&rc=13126">Reported Time</a></li>

    <li class="banner-list-group-border" tabindex="0">

    <a tabindex="-1" href="#" class="delete-row" data-delete-id="32358###assigned">Remove</a>

    </li>

    </ul>

    </div>

     

    </td>

    <td class="descrCol">

    <label title="Item is currently pinned and automatically added to future timesheets" class="no-print">

    <input id="32358###favorite" class="favorite check" type="checkbox" checked="checked" />

    <span class="indicator timesheet-icon-20"></span>

    <span class="sr-only">Pin Time - COV Websites to timesheet</span>

    </label>

     

    <span title=" Project: COV Website Modernization

    > Time - COV Websites

    ">

    Time - COV Websites

    </span>

     
     

    </td>

     
     

    <td class="dailyCol hoursBox entryBox" >

    <label>

    <input id="32358###daily#1" type="text" value="" />

    <span class="sr-only">Time for Time - COV Websites on 10/23/2022</span>

    </label>

    </td>

    <td class="dailyCol hoursBox entryBox" >

    <label>

    <input id="32358###daily#2" type="text" value="" />

    <span class="sr-only">Time for Time - COV Websites on 10/24/2022</span>

    </label>

    </td>

    <td class="dailyCol hoursBox entryBox" >

    <label>

    <input id="32358###daily#3" type="text" value="" />

    <span class="sr-only">Time for Time - COV Websites on 10/25/2022</span>

    </label>

    </td>

    <td class="dailyCol hoursBox entryBox" >

    <label>

    <input id="32358###daily#4" type="text" value="" />

    <span class="sr-only">Time for Time - COV Websites on 10/26/2022</span>

    </label>

    </td>

    <td class="dailyCol hoursBox entryBox" >

    <label>

    <input id="32358###daily#5" type="text" value="" />

    <span class="sr-only">Time for Time - COV Websites on 10/27/2022</span>

    </label>

    </td>

    <td class="dailyCol hoursBox entryBox" >

    <label>

    <input id="32358###daily#6" type="text" value="" />

    <span class="sr-only">Time for Time - COV Websites on 10/28/2022</span>

    </label>

    </td>

    <td class="dailyCol hoursBox entryBox" >

    <label>

    <input id="32358###daily#7" type="text" value="" />

    <span class="sr-only">Time for Time - COV Websites on 10/29/2022</span>

    </label>

    </td>

     

  • MelissaReed Profile Picture
    292 on at

    @Henrik_M   You may have been going the same route as @VJR   See the code snippet I left in my reply to him.   

  • Verified answer
    VJR Profile Picture
    7,635 on at

    So, there is a pattern, right?

     

    <input id="32358###daily#1"

    <input id="32358###daily#2"

    <input id="32358###daily#3"

     

    Add an UI element for the first one and then using Custom/dynamic selectors access the others via a variable. Reach till 7 (for 7 days in week as in the above code). Then check out the Input Id for the text box in the 2nd row and access it in a similar way.

    Solved: Dynamic Selector (variable in selector) in Desktop... - Power Platform Community (microsoft.com)

     

  • MelissaReed Profile Picture
    292 on at

    Yes!  I see where you're going now.  This was exactly what I was trying to do.

    And the link you included solved the other part of it  -- you can dynamically reference UI Elements, you aren't locked into an explicit list of pre-captured UI references!  WHAT A GAMECHANGER!

     

    A little more detail about how to set up the dynamic UI Element reference for anyone following behind me:

    1. Create Action: Populate text field on web page --  on the config window, click Add UI and select the first cell on your browser window.  It will assign a fixed name.    
    2. Open to your UI Elements Editor (button on upper right corner -- stacked squares icon)
      1. From that UI Elements list, click on the UI Element you just added.  It will open a dialog box
      2. Scroll down the Elements list (in the middle) to 11 Input Text and click on that 
      3. In the properties window to the right, look for "Id" and doubleclick on Value field to edit it.
      4. Replace the fixed text value that's there with a variable reference and SaveMelissaReed_0-1666791010318.png

        Now you can dynamically reference any input text on that browser page.

    Return to your main app code.

    I set up two nested loops -- one to cycle through my project #'s (rows) and within that a 2-6 loop for Mon - Fri.

    ***For how I'm hard-coding the # hours to 0.5 but later I'll get that from my Excel table.

    MelissaReed_1-1666791752423.png

    Within those loops there are only two actions:

    1. Setting the variable  UIReferencePlanviewTimesheetCell  by formula that calculates the Input ID.
    2. Populate Text field on Web Page.   FYI: the "input field text" value DISPLAYED will not change from your original  UI Element capture.   Don't let that throw you.   

    I could've eliminated #1 by putting that formula directly into the Input Text.ID formula, but I wanted to be able to see exactly what that value was while I'm debugging so I've calc'd it here and referenced that calc'd variable in the UI Element definition.

     

    I set it up with 5 project #'s and ran it and watched it pop in "0.5" across each row!

    Thanks @VJR 

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Season of Sharing Community Challenge Winners!

Congratulations to our community stars!

Kudos to our 2025 Community Spotlight Honorees

Expanding mentorship, skilling, and AI innovation

Leaderboard > Power Automate

#1
Mohsin Ali Profile Picture

Mohsin Ali 424

#2
11manish Profile Picture

11manish 328 Super User 2026 Season 2

#3
M Bilal Khan Profile Picture

M Bilal Khan 274

Last 30 days Overall leaderboard