- Newest
- Most votes
- Most comments
The error you're encountering in the CREASTMT job during the Blu Age L3 Workshop is related to a Groovy script execution issue in STEP020. The problem appears to be a missing method called 'withParameters()' that the script is trying to use on a LinkedHashMap object.
This error suggests there might be an issue with the Groovy script itself, possibly due to a syntax error or an incompatibility with the current version of Groovy being used in the workshop environment.
To resolve this issue, you can try the following steps:
-
Review the CREASTMT Groovy script, particularly around line 156 where the error is occurring. Look for any syntax errors or incorrect method calls.
-
Ensure that the Groovy script is up-to-date and compatible with the current workshop environment. There might have been changes or updates to the script that haven't been applied to your workshop instance.
-
If you have made any custom modifications to the script, try reverting them to see if the original version works correctly.
-
Check if there are any specific instructions or known issues for this particular step in the workshop documentation.
-
Verify that all required datasets and resources are properly set up and accessible to the job.
-
If possible, try restarting the Tomcat server or the entire workshop environment to ensure all components are in a clean state.
If the issue persists after trying these steps, you may need to reach out to the workshop facilitators or AWS Blu Age support for more specific guidance, as there might be workshop-specific configurations or requirements that need to be addressed.
Sources
AWS Blu Age Workshop Execution->Test->Batch, Execute CREASTMT Job { "exitCode": 4, "stepName": "STEP020", "program": "IDCAMS", "status": "Succeeded" } | AWS re:Post
AWS BluAge L3 Workshop - Execution - Test - Batch - COMBTRAN - Issue | AWS re:Post
I checked above 6 points. But, I could not find a reason of issue and could not solve this problem. I think this problem is related to legacy JCL syntax. But I don't have knowledge of legacy code. My CREASTMT.groovy script is below. Please see line 156. Can someone help me to solve this issue?
// Import
import com.netfective.bluage.gapwalk.rt.provider.ScriptRegistry
import com.netfective.bluage.gapwalk.rt.call.MainProgramRunner
import com.netfective.bluage.gapwalk.io.support.FileConfigurationUtils
import com.netfective.bluage.gapwalk.rt.job.support.DefaultJobContext
import com.netfective.bluage.gapwalk.rt.utils.GroovyUtils
import com.netfective.bluage.gapwalk.rt.io.support.FileConfiguration
import com.netfective.bluage.gapwalk.rt.shared.AbendException
import com.netfective.bluage.gapwalk.rt.call.exception.GroovyExecutionException
// Variables
mpr = applicationContext.getBean("com.netfective.bluage.gapwalk.rt.call.ExecutionController", MainProgramRunner.class)
TreeMap mapTransfo = [:]
Map params = ["MapTransfo":mapTransfo]
// Execute job with utility functions
Binding binding = new Binding()
binding.setVariable("jobContext", jobContext)
def shell = new GroovyShell(binding).parse(ScriptRegistry.getScript("functions"))
//*********************************************************************
//* JOB *
//*********************************************************************
shell.with {
def jobName = "CREASTMT"
mpr.setJobContext(jobContext)
displayStartJob(jobName)
Map programResults = jobContext.getProgramResults().clone()
def lastProgramResult
//*****************************************************************
// Copyright Amazon.com, Inc. or its affiliates.
// All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License").
// You may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
// either express or implied. See the License for the specific
// language governing permissions and limitations under the License
//*****************************************************************
// This JCL will create statement for each CARD present in the XREF
// file
//*****************************************************************
lastProgramResult = stepDELDEF01(shell, params, programResults)
//********************************************************************
// CREATE COPY OF TRANSACT FILE WITH CARD NUMBER AND TRAN ID AS KEY
//********************************************************************
lastProgramResult = stepSTEP010(shell, params, programResults)
lastProgramResult = stepSTEP020(shell, params, programResults)
//********************************************************************
// DELETE TRANSACTION REPORTS FROM PREVIOUS RUN
//********************************************************************
lastProgramResult = stepSTEP030(shell, params, programResults)
//********************************************************************
// PRODUCING REPORT IN TEXT AND HTML - DEMONSTRATES CALLED SUBROUTINE
//********************************************************************
lastProgramResult = stepSTEP040(shell, params, programResults)
displayEndJob(jobName)
return programResults.get("GroovyExecutionResult")
}
//*********************************************************************
//* STEPS *
//*********************************************************************
// STEP DELDEF01 - PGM - IDCAMS***************************************************
def stepDELDEF01(Object shell, Map params, Map programResults){
shell.with {
if (checkValidProgramResults(programResults)) {
return execStep("DELDEF01", "IDCAMS", programResults, {
mpr
.withFileConfigurations(new FileConfigurationUtils()
.withJobContext(jobContext)
.systemOut("SYSPRINT")
.output("*")
.build()
.fileSystem("SYSIN")
.stream(
""" DELETE AWS.M2.CARDDEMO.TRXFL.SEQ
DELETE AWS.M2.CARDDEMO.TRXFL.VSAM.KSDS -
CLUSTER
SET MAXCC = 0
DEFINE CLUSTER (NAME(AWS.M2.CARDDEMO.TRXFL.VSAM.KSDS) -
KEYS(32 0) -
RECORDSIZE(350 350) -
INDEXED) -
DATA (NAME(AWS.M2.CARDDEMO.TRXFL.DATA)) -
INDEX (NAME(AWS.M2.CARDDEMO.TRXFL.INDEX))""", getEncoding())
.build()
.getFileConfigurations())
.withParameters(params)
.runProgram("IDCAMS")
})
}
}
}
// STEP STEP010 - PGM - SORT******************************************************
def stepSTEP010(Object shell, Map params, Map programResults){
shell.with {
if (checkValidProgramResults(programResults)) {
return execStep("STEP010", "SORT", programResults, {
mpr
.withFileConfigurations(new FileConfigurationUtils()
.withJobContext(jobContext)
.bluesam("SORTIN")
.dataset("AWS.M2.CARDDEMO.TRANSACT.VSAM.KSDS")
.disposition("SHR")
.build()
.systemOut("SYSPRINT")
.output("*")
.build()
.systemOut("SYSOUT")
.output("*")
.build()
.fileSystem("SORTOUT")
.path("AWS.M2.CARDDEMO.TRXFL.SEQ")
.recordSize(350)
.disposition("NEW")
.normalTermination("CATLG")
.abnormalTermination("DELETE")
.build()
.fileSystem("SYSIN")
.stream(
""" SORT FIELDS=(263,16,CH,A,1,16,CH,A)
OUTREC FIELDS=(1:263,16,17:1,262,279:279,50)""", getEncoding())
.build()
.getFileConfigurations())
.withParameters(params)
.runProgram("SORT")
})
}
}
}
// STEP STEP020 - PGM - IDCAMS****************************************************
def stepSTEP020(Object shell, Map params, Map programResults){
shell.with {
if (checkValidProgramResults(programResults)) {
if (checkAllPreviousProgramResults(programResults, 'NE', 0)) {
return execStep("STEP020", "IDCAMS", programResults, {
mpr
.withFileConfigurations(new FileConfigurationUtils()
.withJobContext(jobContext)
.systemOut("SYSPRINT")
.output("*")
.build()
fileSystem("INFILE")
.path("AWS.M2.CARDDEMO.TRXFL.SEQ")
.recordSize(350)
.disposition("SHR")
.build()
.bluesam("OUTFILE")
.dataset("AWS.M2.CARDDEMO.TRXFL.VSAM.KSDS")
.disposition("SHR")
.build()
.fileSystem("SYSIN")
.stream(" REPRO INFILE(INFILE) OUTFILE(OUTFILE)", getEncoding())
.build()
.getFileConfigurations())
.withParameters(params)
.runProgram("IDCAMS")
})
}
}
}
}
// STEP STEP030 - PGM - IEFBR14***************************************************
def stepSTEP030(Object shell, Map params, Map programResults){
shell.with {
if (checkValidProgramResults(programResults)) {
if (checkAllPreviousProgramResults(programResults, 'NE', 0)) {
return execStep("STEP030", "IEFBR14", programResults, {
mpr
.withFileConfigurations(new FileConfigurationUtils()
.withJobContext(jobContext)
.fileSystem("HTMLFILE")
.path("AWS.M2.CARDDEMO.STATEMNT.HTML")
.disposition("MOD")
.normalTermination("DELETE")
.abnormalTermination("DELETE")
.build()
.fileSystem("STMTFILE")
.path("AWS.M2.CARDDEMO.STATEMNT.PS")
.disposition("MOD")
.normalTermination("DELETE")
.abnormalTermination("DELETE")
.build()
.getFileConfigurations())
.withParameters(params)
.runProgram("IEFBR14")
})
}
}
}
}
// STEP STEP040 - PGM - CBSTM03A**************************************************
def stepSTEP040(Object shell, Map params, Map programResults){
shell.with {
if (checkValidProgramResults(programResults)) {
if (checkAllPreviousProgramResults(programResults, 'NE', 0)) {
return execStep("STEP040", "CBSTM03A", programResults, {
mpr
.withFileConfigurations(new FileConfigurationUtils()
.withJobContext(jobContext)
.bluesam("STEPLIB")
.dataset("AWS.M2.CARDDEMO.LOADLIB")
.disposition("SHR")
.build()
.systemOut("SYSPRINT")
.output("*")
.build()
.systemOut("SYSOUT")
.output("*")
.build()
.bluesam("TRNXFILE")
.dataset("AWS.M2.CARDDEMO.TRXFL.VSAM.KSDS")
.disposition("SHR")
.build()
.bluesam("XREFFILE")
.dataset("AWS.M2.CARDDEMO.CARDXREF.VSAM.KSDS")
.disposition("SHR")
.build()
.bluesam("ACCTFILE")
.dataset("AWS.M2.CARDDEMO.ACCTDATA.VSAM.KSDS")
.disposition("SHR")
.build()
.bluesam("CUSTFILE")
.dataset("AWS.M2.CARDDEMO.CUSTDATA.VSAM.KSDS")
.disposition("SHR")
.build()
.fileSystem("STMTFILE")
.path("AWS.M2.CARDDEMO.STATEMNT.PS")
.disposition("NEW")
.normalTermination("CATLG")
.abnormalTermination("DELETE")
.build()
.fileSystem("HTMLFILE")
.path("AWS.M2.CARDDEMO.STATEMNT.HTML")
.disposition("NEW")
.normalTermination("CATLG")
.abnormalTermination("DELETE")
.build()
.getFileConfigurations())
.withParameters(params)
.runProgram("CBSTM03A")
})
}
}
}
}
answered 2 years ago
Relevant content
asked 2 years ago
- AWS OFFICIALUpdated 4 months ago
- AWS OFFICIALUpdated 2 years ago
- AWS OFFICIALUpdated 5 years ago

I could not solve this issue... I added new comment. Could someone please see additional comment?