IBM Sterling Transformation Extender

Sterling Transformation Extender

Come for answers, stay for best practices. All we're missing is you.


#Sterling
#Supplychain
 View Only
  • 1.  Dynamically running one map from another on MVS Batch

    Posted 05/29/08 08:31 AM

    Originally posted by: SystemAdmin


    I am calling one map from another map using Run command. While running it on MVS Batch, if i dont provide a DDName for the called map in JCL, i get an error saying no DDname found for the called map.

    I want to dynamically decide which map is to be called and thats why i wont know the name of map being called while creating JCL. Is there any way to do this without providing the DDname??
    #DataExchange
    #IBMSterlingTransformationExtender
    #IBM-Websphere-Transformation-Extender


  • 2.  Re: Dynamically running one map from another on MVS Batch

    Posted 06/04/08 09:52 AM

    Originally posted by: SystemAdmin


    No, the ddname is needed because it is used as the defining card value. don't believe there is any other work around, if you have the jcl could you post it here and we can look at it?
    #IBM-Websphere-Transformation-Extender
    #IBMSterlingTransformationExtender
    #DataExchange


  • 3.  Re: Dynamically running one map from another on MVS Batch

    Posted 06/05/08 08:15 AM

    Originally posted by: SystemAdmin


    Hi,

    Have attached the JCL below.

    MAININBD map calls XHUMINT0 map in this scenario.

    I also want MAININBD map to call different maps for different inbound formats. So I want some generic DDname to be used and the Calling map to pick up the called map from some PDS based on the member name may be. If we have to specify a DDname for each map being called, we will end up with having more than 100 DDnames in the JCL which will keep increasing as and when we add new file formats (and we have about a 3 week lead time on JCL changes).

    //DTX EXEC PGM=DTXCMDSV,REGION=900M,
    // PARM='-@CMDLINE'
    //STEPLIB DD DISP=SHR,DSN=&DTXLIB
    // DD DISP=SHR,DSN=SYS1.IXM.SIXMLOD1
    //*
    //CMDLINE DD *
    MAININBD /I1:V MAININBI /O1:WX0D,X25 MAININO1
    /O2:WX0D,X25 MAININO2
    /*
    //*
    //MAININBD DD DISP=SHR,DSN=&MAPLIB(MAININBD)
    //*
    //XHUMINT0 DD DISP=SHR,DSN=&MAPLIB(XHUMINT0)
    //*
    #IBM-Websphere-Transformation-Extender
    #IBMSterlingTransformationExtender
    #DataExchange


  • 4.  Re: Dynamically running one map from another on MVS Batch

    Posted 06/05/08 12:23 PM

    Originally posted by: Rich_McFate


    I just checked with my WTX on z/OS guru. She says you should be able to specify the map name in the Run call without needing a DDNAME for it in the JCL.

    e.g. Valid(Run("DSN:PROJECT.MAP.PARTNER1"....

    Same is tree for inputs and outputs:

    ..." -IF1 DSN:" + SomeObject:InThe:Data + ...
    ...+ " -OF1 DSN:OUTPUT.SOME.THING" +...
    #IBMSterlingTransformationExtender
    #IBM-Websphere-Transformation-Extender
    #DataExchange


  • 5.  Re: Dynamically running one map from another on MVS Batch

    Posted 06/06/08 02:18 AM

    Originally posted by: SystemAdmin


    I tried using DSN:Path in my Run command as follows:

    =VALID(RUN ( "DSN:THI.CASCADE.MAPLIB.V8.GN(HUBMRICN)" , " -IE1S" + NUMBERTOTEXT(SIZE (Accepted_Instructions)) + " " + TEXT (Accepted_Instructions) + "-OE1"),LASTERRORMSG())

    But I get the following error in the JCL:
    Could not find dataset or dataset member associated with ddname: DSN:THI
    EDC5037I The specified ddname was not found.Open map DSN:THI failed (2)
    Mapping return code 3, severity ERROR:
    Could not open map
    Job step return code is 12
    #IBMSterlingTransformationExtender
    #DataExchange
    #IBM-Websphere-Transformation-Extender


  • 6.  Re: Dynamically running one map from another on MVS Batch

    Posted 06/06/08 08:49 AM

    Originally posted by: Rich_McFate


    Well, darn. That was the best idea I had on this one.

    It looks like the engine is trying to be too helpful. I remember that customers used to complain that when they tested their maps on Windows with something like RUN("MYMAP.MMC", they would have to modify the map to move it to MVS. I suspect that at some point we changed it so that it would strip away the extension and leave just the DDNAME for cross-platform compatibility.

    We knew the "DSN:" trick worked for inputs and outputs -- were hoping it would work here, too.

    The only other thing I can think of to try is to use a Resource Registry variable (e.g. RUN(%MyMap%.. ), but I suspect the same thing might happen.

    Sorry that didn't work for you.

    Rich
    #IBM-Websphere-Transformation-Extender
    #IBMSterlingTransformationExtender
    #DataExchange


  • 7.  Re: Dynamically running one map from another on MVS Batch

    Posted 06/06/08 10:07 AM

    Originally posted by: SystemAdmin


    The map ddname specified in the RUN must match the map name specified in the JCL

    A map can be coded in JCL in any of the
    following three ways:

    1.
    //REVERSE DD DSN=DTX.MAPSEQ,DISP=SHR
    The RUN identifies the map by its ddname
    e.g RUN ("REVERSE",....)

    2.
    //REVERSE DD DSN=DTX.MAPPDS(DTXBMMVS),DISP=SHR
    The DD statement identifies the map as a member of
    a PDS and the RUN identifies the map by its ddname:
    e.g RUN ("REVERSE",....)

    3.
    //MAPLIB DD DSN=DTX.MAPPDS,DISP=SHR
    The DD statement identifies the PDS only and the member
    name is identified on the Run in parentheses
    following the ddname that identifies the PDS:
    e.g. RUN ("MAPLIB(DTXBMMVS)",....)

    Note: if you code RUN ("reverse.mmc") this will be converted to a DD name "REVERSE"
    and that dd name will be opened as the map file. You can specify DD name with either option 1 or 2.
    #IBMSterlingTransformationExtender
    #DataExchange
    #IBM-Websphere-Transformation-Extender


  • 8.  Re: Dynamically running one map from another on MVS Batch

    Posted 06/09/08 02:51 AM

    Originally posted by: SystemAdmin


    Providing a MAPLIB DD statement, and using the member name in RUN command worked.

    I added following statment to the JCL.
    //MAPLIB DD DISP=SHR,DSN=&MAPLIB

    And changed the run command as follows:
    =VALID(RUN ( "MAPLIB(HUBMRICN)" , " -IE1S" + NUMBERTOTEXT(SIZE (Accepted_Instructions)) + " " + TEXT (Accepted_Instructions) + "-OE1"),LASTERRORMSG())

    Thanks for the help!
    #IBM-Websphere-Transformation-Extender
    #DataExchange
    #IBMSterlingTransformationExtender


  • 9.  Re: Dynamically running one map from another on MVS Batch

    Posted 06/09/08 02:40 PM

    Originally posted by: jvanboga


    Any reason you can't pass a control map a runmap variable and let it call the runmap dynamically? Use a GOTO executing the step with the appropriate map?
    #IBM-Websphere-Transformation-Extender
    #IBMSterlingTransformationExtender
    #DataExchange