Process parameters real time auto-refresh without reopening

Hi there,
Just facing a problem that in the process widget, I set one of my parameters to pull the attribute (upload path) right after the user uploads media where both the media upload widget, and the process one are in the same pop-up page. For now, the way to refresh the parameter is to reopen the pop-up. Wondering if there’s any solution can auto-refresh the process widget in real time without reopening?

So the popup contains embedded TI process widget and media upload widget?

How exactly should the process widget update? Is it necessary or just cosmetic? (e.g. if uploading the media file has updated an attribute of existing dimension element then running TI process could just reference the value in prolog via AttrS, there’s no need to pass the attribute value as a parameter.)

Recently in the last version 2023.10, there have been some changes to embedded TI widget embedded in dashboard to pick up filter changes and update parameters. This might also fix your issue. However, popups are a special case with refresh and setting service values so this might still not be working.

The most obvious workaround would be to separate the media upload and TI process to separate popups (and make the TI not embedded but standard toolbar popup). Then the process parameters will always be up to date.

If this is not working with 2023.10 you can raise enhancement request. I think this is ER not bug as intention of popup is to see extra detail or alternate slice from current context, so the popup actually has it’s own parallel copy of setting service variables. If you then perform an action in the popup which is updating or changing context then this is outside the scope of what popup was designed and intended for.

Fully agree that the easiest and best solution would be to have the TI pick up the file path directly from TM1. I would even go a step further and move the file into a different directory - especially if it’s sensible data and the purpose is to process the file contents. When uploaded through the frontend the file will be saved in the webserver and is accessible for anyone who knows or guesses the URL without being logged into TM1.

1 Like

Yes. The version of mine is already 2023.10.
I noticed that when I hit refresh in the top right corner, the table widget updates synchronically, but the other widgets in the pop-up don’t.

What I am trying to do is to control the process button like it’s disabled until users upload files with the “required” parameter got updated then the button works. Kinda a personal idea for more user friendly front-end design.

Hey Alex, that’s a very good idea and it’s also how we handle it now.
Just to make the front-end design a little more sophisticated like the button will be disabled until the user has uploaded files.

I understand. You can achieve this by using a snippet, which also gives you more control. See the code below that you can embed directly in the TI widget (beforeForm or afterForm). The snippet will give you an expandable section to upload the file. The tm1-ui-upload uses tm1-ui-after-upload to update a cell value and also set a parameter value (e.g. $ctrl.finalParameters[0].value = file.path;). If the parameter is “required” it will enable the button once the parameter value has been set. Maybe you can use something like this in your case.

<div class="separator">
    <i class="fa-fw" ng-class="{'fa fa-angle-right': !$ctrl.showupload, 'fa fa-angle-down': $ctrl.showupload}"></i>
    <a ng-click="$ctrl.showupload=!$ctrl.showupload">
        <span ng-if="!$ctrl.showupload">Upload exports (.zip)</span>
        <span ng-if="$ctrl.showupload">Hide Upload</span>
    </a>
</div>

<tm1-ui-upload 
    ng-if="$ctrl.showupload"
    tm1-instance="ApliqoFPM" 
    tm1-max-size="10"
    tm1-display-name="Select .zip with Export files"
    tm1-path="/subfolder/"
    tm1-retain-name="false"
    tm1-after-upload="$ctrl.$tm1Ui.cellPut(file.path, 'ApliqoFPM', '}APQ Settings', 'Location: Last File Upload', 'String'); $ctrl.finalParameters[0].value = file.path;"
    ng-model="$ctrl.thisUpload">
    
</tm1-ui-upload>

Thank you so much Alex!! I did it! You are my hero lol
One more question, maybe I’m asking for too much, do you think I can keep the preview function :rofl:? That would be the best perfect for media upload on UX :grimacing: