InstallShield (Windows Installer) Action Text not being updated for Custom Action - user-interface

I'm using installshield to develop an installer for a product and I'm having issues with the ActionText (the current action description) updating for my custom action.
I've followed these steps here: http://helpnet.flexerasoftware.com/installshield17helplib/ActionTextSettings.htm which make perfect sense, and should work, but my custom action doesn't update the action text in the UI.
I'm thinking that because my custom action runs and waits for a long running process to end, maybe it's blocking whichever thread is responsible for updating the action text.
Now I write it, it doesn't seem to make sense, but I don't know what else might do it!
The main details of the Custom Action are:
Filename & Command line: wscript.exe "invisible.vbs" "longrunningbatch.bat"
Return Processing: Synchronous
In-Script Execution: Commit Execution in System Context
And invisible.vbs contains:
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, True
The above line should hide the shell window and the 'True' ensures the shell doesn't return until the batch file has finished running.
I've also added my custom action to the Action Text list as per the link and associated it with a string.
Should work right?
Anyone else experienced this at all?

Firstly, you'll need to brush up on your Windows Installer, because if you've changed an action from commit to deferred and that's OK with you then you've done something unusual. Deferred actions are for actions that modify the system in some way related to the install. Commit actions are to finalise any work that the associated deferred action has done (e.g. deferred action modifies some system file. Commit action deletes the backup of the unmodified system file). Additionally, if you have a deferred action then you should also have a rollback action which undoes any action done by the deferred action in the event that the user cancels the install or it fails.
The following two links should help point you in the right direction:
http://blogs.flexerasoftware.com/installtalk/2011/10/i-take-it-all-back-using-windows-installer-msi-rollback-actions.html
http://www.installsite.org/pages/en/isnews/200108/index.htm
Secondly, if all the custom action does is to update the action text in the progress dialog, then you don't need it at all. Flexera doesn't document this, but you can set the action text for any custom action you build through the direct editor. To do this, add entries in the "ActionText" table, where the "Action" column is the name of your custom action and the "Description" column is the text you want to display.

Ok,
So I found this post: http://community.flexerasoftware.com/archive/index.php?t-82772.html, which basically says that since my custom action was set to commit execution, the install was effectively finished at the time it was running, and therefore there's no point in updating the progress text.
So the fix for my situation is to move my custom action to just before InstallFinalize and switch to 'deferred execution'.
Hope this might help someone.

Related

How do I start workflow session only when the indicator file show up? (Informatica)

What does this mean to start the session only when an indicator file show up for the workflow? Where do I create the text file and how do I insert it to the session? Also, what type of content should be in the text file? I'm quite new into informatica so I really need help... It is because everytime I want to start the session, I would right-click to start the workflow..
Use Event wait taks and set it to wait for a file you're expecting. There is a downside: you can only monitor for a file with a predefined name, there are no wildcards allowed.
Here's more: https://www.tutorialgateway.org/event-wait-task-in-informatica/
What does this mean to start the session only when an indicator file show up for the workflow?
This means there is a dependent file that must be present before the session in workflow is triggered.
Where do I create the text file and how do I insert it to the session?
You should create the text file in a location on Informatica server that workflow can access. You will want to use an event wait task placed prior to session. In event wait task, you'll specify the location and filename that must be present before event wait task succeeds.
Also, what type of content should be in the text file?
The file can be blank since it is a trigger file.

Trigger event for new file in Netsuite File Cabinet

I'm new to SuiteScript. Is it possible for SuiteScript 2.0 to create a trigger to start some funcionality as soon as a new file is uploaded to a particular folder in Netsuite's File Cabinet (by web services or manually by drag and drop zone)?
Thanks in advance for helping me out.
I do not see that a server side User Event script can fire for the File object like it can for so many other objects. It is not listed in the "Applies To" field for a script's Deployment record.
Additionally, Workflows have a similar field called "Record Type", and it is not listed there, either.
If you are creating File objects via SuiteTalk, you can execute logic after the "add" method is executed synchronously, or you can call a RESTLet if you would like to execute logic server-side in NetSuite.

Dynamics 365 - A check to ensure that all tasks have been complete

I have a scenario where the user wants a check in place to ensure that all tasks have been completed before moving onto next stage on the Business Process Flow.
Is there anyway to do this?
2 ways to achieve it.
Option 1: Create a bool field - Tasks closed? & keep that in BPF step, if it’s true then platform will also users to move forward. Otherwise not.
You can mark this as read-only, write a plugin on Task completion to update this as yes, when there is no more open tasks.
Read more
Option 2: Can have a js validation onStageChange or onSave to retrieve open child tasks, check the count, show notification & preventDefault.
Read more
You can do the same in pre-update plugin, throw InvalidPluginExecutionException if there are open tasks.

How to run command when popup shows up?

I need to execute a command when popup shows up, like Loaded event, how can I do that? Do I need to override PopupWindowAction or it's supported already?
An interaction request is normally raised from code - execute the command just before raising the request, if that's possible.
Or you can execute it from the constructor of your popup's view model, that should happen a litte later.
As a last option, you can react to the Loaded event of your popup's content.
Another last option would be to override PopupWindowAction.CreateWindow and attach a handler to execute your command, but I'd prefer one of the code-only options that work without the actual view.

Adding a dialog child workflow to an on-demand workflow

I was wondering if anybody ran into the same issue as I am facing now.
What I'm trying to do is have a workflow that checks the condition of a field (optionset) of a form. If the field has option 1, 2 or 3 then create new record with certain shared attributes, otherwise start a child workflow. The child workflow is a "Dialog" process, not a "workflow" process which informs the user that the record was not created and why. For some reason I cannot select the dialog workflow from the dropdown list of available child workflows...
Both the parent workflow and the "dialog" workflow process are based on the same entity.
If anybody has any ideas on how I could debug this or any clues in general I would greatly appreciate your feedback.
Thanks for taking the time to read this post!
It is not possible to call a dialog from a workflow (see here).
Workflows are generally triggered by events.
Imagine the ramifications - which user would receive the dialog and what if no-one was logged in?
One option is to drive everything with JavaScript
Trigger on change of the option set
Create the records
Start the workflow
Start the dialog
See the section under the heading "Opening a Dialog Process by Using a URL" on MSDN here
Rather use the URL than showModalDialog or showModelessDialog.
What might work even better is to call an Action from JavaScript. The Action can run synchronously and create all records, start child workflows and dialogs.
A synchronous workflow can stop an event and return an error message to the user, but cannot return success messages - it look like this will not meet your requirements, but Gareth Tucker has an example here.

Resources