Skip to contents

Common Tasks

and how to solve them

This guide provides quick examples for common {improveR} operations.

attach a step to a parent

See reference. See article.

attachStep(ident, parent, from = pwd())

change the description of a step

See reference. See article.

changeStepDescription(ident=stepIdent, description="new description")
knitr::knit_exit()

change the rationale of a step

See reference. See article.

changeStepRationale(ident=stepIdent, description="new description")

create a step environment

See reference. See article.

stepDf <- improveR:::getStepDf(stepIdent)
workflow <- createWorkflow()
createStepEnv(stepDf, workflow)

create an analyis tree

See reference. See article.

createAnalysisTree(targetIdent="/improve-tutorial/", treeName="newTree", comment = "this is a comment")

create a folder

See reference. See article.

createFolder(folderName="NameOfNewFolder", targetIdent="/improve-tutorial/") 

See reference. See article.

createExternalLink(targetIdent="/improve-tutorial/demoSteps/Step 1", linkName="Weblink to scinteco", url="https://www.scinteco.com/", comment="Resource to integrate.")

create a step template environment

See reference. See article.

stepDf <- improveR:::getStepDf(stepIdent)
workflow <- createWorkflow()
createStepEnv(stepDf, workflow)

export a workflow

See reference. See article.

stepEnv <- getStep("/improve-tutorial/Reporting/Step 1") #get environment of step to which the workflow leads
stepEnv$dependencies$load(treeDepth=-1, stepDepth=-1) #get the full dependencies with -1
exportWorkflow(envATReportingStep1$workflow, "WFReportingSTep1") #export the workflow binding of stepEnv via exportWorfklow

get all steps of an analysis tree

childResourcesATModeling <- improveR::loadChildResources(ident='/improve-tutorial/Modeling/') %>%
  select(data) %>%
  unnest(data) %>%
  select(""name"", ""entityId"", ""path"")

get all analysis trees within a folder

Get all analysis trees inside the folder ‘improve-tutorial’.

allAnalysisTrees <- improveR::loadChildResources(ident="/improve-tutorial/")
allAnalysisTrees$data[[1]] %>% select(nodeType, name, path)
##         nodeType                     name                                       path
## 1  Analysis Tree                 Modeling                 /improve-tutorial/Modeling
## 2         Folder              folderCheck              /improve-tutorial/folderCheck
## 3  Analysis Tree       stopDeleteStepTest       /improve-tutorial/stopDeleteStepTest
## 4  Analysis Tree                demoSteps                /improve-tutorial/demoSteps
## 5         Folder        newWorkflowFolder        /improve-tutorial/newWorkflowFolder
## 6  Analysis Tree                   Review                   /improve-tutorial/Review
## 7         Folder              testFolder2              /improve-tutorial/testFolder2
## 8        ExtLink External link to website /improve-tutorial/External link to website
## 9  Analysis Tree                      EDA                      /improve-tutorial/EDA
## 10 Analysis Tree                Reporting                /improve-tutorial/Reporting
## 11 Analysis Tree                  newTree                  /improve-tutorial/newTree
## 12 Analysis Tree                DataOrder                /improve-tutorial/DataOrder
## 13        Folder              testFolder1              /improve-tutorial/testFolder1
## 14 Analysis Tree              newWorkflow              /improve-tutorial/newWorkflow

get all child steps of a step

Version 1: loadChildSteps()

dfChild <- loadChildSteps(ident="/improve-tutorial/Modeling/Step 1")
dfChild$data[[1]] %>%
  select(path, resourceId)
##                                path                       resourceId
## 1 /improve-tutorial/Modeling/Step 6 9C3323B91A244AAABABFEDE65287891E
## 2 /improve-tutorial/Modeling/Step 7 ED49CA61567D4F8AB3207C5451AFBA8F
## 3   /improve-tutorial/Review/Step 1 CCC0F17214854EE3977CE373B2C9E13E
## 4 /improve-tutorial/Modeling/Step 8 0C1B181FCC7F441C97AB5986618CBD62

Version 2: getStep()

envStep <- getStep(ident="/improve-tutorial/Modeling/Step 1")
envStep$children$load()
## 2026-01-13 12:40:28.522813 INFO::adding  Step 6 ST-54651 to children
## 2026-01-13 12:40:30.785346 INFO::adding  Step 7 ST-54672 to children
## 2026-01-13 12:40:33.037196 INFO::adding  Step 1 ST-65316 to children
## 2026-01-13 12:40:35.106335 INFO::adding  Step 8 ST-54675 to children
ls(envStep$children)
## [1] "load"                  "Modeling/Step 6/54651" "Modeling/Step 7/54672" "Modeling/Step 8/54675" "Review/Step 1/65316"

get all available tools

See reference.

envTools<-getToolInstances()
ls(envTools)

# [1] "Nonmem 7.4 7.4 runserver"                                                                 
# [2] "Nonmem 7.4 7.4 slurm runserver"                                                           
# [3] "Nonmem nm4robot_desktop-pmalkg2_cflandorfer nmLsf_desktop-pmalkg2_cflandorfer runserver"  
# [4] "Nonmem nm4robot_desktop-pmalkg2_cflandorfer nmSlurm_desktop-pmalkg2_cflandorfer runserver"
# [5] "R R4.2 R4.2 runserver"        

get the workflow leading to a step

envATReportingStep1 <- getStep("/improve-tutorial/Reporting/Step 1")

# get the workflow and show details on Step 'Modeling/Step 10'
envATReportingStep1$dependencies$load(treeDepth=-1)

#show all steps which form part of the workflow
envATReportingStep1$workflow$df()

Note that before calling dependencies$load(), the df() in the workflow binding will only return the step itself, i.e., Reporting/Step 1.

get the elements aka resources of a step’s inventory

# approach 1 
stepInventory <- loadChildResources(ident="/improve-tutorial/Modeling/Step 1")$data[[1]]
ncol(stepInventory)

# approach 2
envStep <- getStep(ident="/improve-tutorial/Modeling/Step 1")
stepInventory2 <- envStep$getStepInventory()$data[[1]]
ncol(stepInventory2)

# the approach with getStep returns two additional columns
setdiff(names(stepInventory2), names(stepInventory)) # 'isVersion', 'inventoryPath'

# approach 3
envStep <- getStep(ident="/improve-tutorial/Modeling/Step 1")
envStep$stepDf #does not show content of inventory; the inventory contains more than remote files

remove a step from a workflow

step$workflow$removeStep()

get the outdated elements of an inventory

envATReportingStep1 <- getStep("/improve-tutorial/Reporting/Step 1")
changedAndOutdatedFiles <- envATReportingStep1$workflow$changedAndOutdatedFiles()

#outdated elements in an inventory
inventory <- envATReportingStep1$getStepInventory()
inventoryOutdatedLinks <- inventory %>%
  select(data) %>%
  unnest(data) %>%
  filter(outdatedLink==TRUE) 
nrow(inventoryOutdatedLinks)

#outdated link in resource
x <- loadResource("/improve-tutorial/Reporting/Step 1")
x$outdatedLink  #outdatedLink can be FALSE even if there are outdated elements in the inventory of the Step

rerun changed and outdated steps within a workflow

step$workflow$rerunChangedAndOutdated()

create a step template

stepTemplateEnv <- createStepTemplateEnv()

delete a resource

See reference.

#Get steps inside the analysis tree
steps <- loadChildResources("/improve-tutorial/yourTree")$data[[1]] 
steps %>% select(nodeType, name, path, entityId)
##   nodeType   name                              path                                        entityId
## 1     Step Step 2 /improve-tutorial/yourTree/Step 2 envhost1.hc.scintecodev.internal-5310:ST-124756

#Delete the steps via their entityId, or equivalent ident
delete(res=steps$entityId)
## [1] TRUE

#Loading child resources of tree again confirms that step(s) were removed
loadChildResources("/improve-tutorial/yourTree")$data[[1]]
## data frame with 0 columns and 0 rows

terminate the execution of a step

See reference. See article.

terminateStepResource(ident="/improve-tutorial/Modeling/Step 9")

trigger the execution of a step

runStepResource(ident="/improve-tutorial/Modeling/Step 9")