attachStep(ident, parent, from = pwd())
How to…
Common Tasks
and how to solve them
This guide provides quick examples for common {improveR} operations.
attach a step to a parent
change the description of a step
changeStepDescription(ident=stepIdent, description="new description")
knitr::knit_exit()change the rationale of a step
changeStepRationale(ident=stepIdent, description="new description")create a step environment
stepDf <- improveR:::getStepDf(stepIdent)
workflow <- createWorkflow()
createStepEnv(stepDf, workflow)create an analyis tree
createAnalysisTree(targetIdent="/improve-tutorial/", treeName="newTree", comment = "this is a comment")create a folder
createFolder(folderName="NameOfNewFolder", targetIdent="/improve-tutorial/") create an external Link
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
stepDf <- improveR:::getStepDf(stepIdent)
workflow <- createWorkflow()
createStepEnv(stepDf, workflow)export a workflow
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 exportWorfklowget 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/newWorkflowget 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 0C1B181FCC7F441C97AB5986618CBD62Version 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 filesremove 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 Steprerun 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 rowsterminate the execution of a step
terminateStepResource(ident="/improve-tutorial/Modeling/Step 9")trigger the execution of a step
runStepResource(ident="/improve-tutorial/Modeling/Step 9")