Skip to main content

VSCode ZMF Explorer : How is the file extension of the downloaded file determined

  • May 11, 2023
  • 5 replies
  • 2 views

Johan Jacob

Hi,

I would like to know how is the extension of file determined. When I download a PL1 program (SRC type in ZMF with language PL1) it nicely ends up with the extension PLI

the included copybooks receive the extension INC

When I download a component of lib type ERX (which are REXX components) it receives the extension TXT

Where can I direct a lib type to a specific file extension when needed

Thank you

Johan


#Fileextension
#VSCode
#ChangeManZMF
#ZMFExplorer

5 replies

Hi,

I would like to know how is the extension of file determined. When I download a PL1 program (SRC type in ZMF with language PL1) it nicely ends up with the extension PLI

the included copybooks receive the extension INC

When I download a component of lib type ERX (which are REXX components) it receives the extension TXT

Where can I direct a lib type to a specific file extension when needed

Thank you

Johan


#Fileextension
#VSCode
#ChangeManZMF
#ZMFExplorer

The ZMF Explorer retrieves a component using the Get /component REST api with an additional parameter passed - explorerFormat = Y .This invokes further internal REST api calls to Get  /history/language to retrieve the language and pass that back is an additional variable "standardLanguage" in the returned Component data. 

For a non-source component (like an interpreted REXX component) the following conversions are employed:

  • libtype=Cxx => language=COBOL
  • libtype=Jxx => language=JCL
  • libtype=Pxx => language=JCL
  • libtype=Hxx => language=C
  • libtype=Ixx => language=PLI
  • libtype=Rxx => language=REXX

If none of these assignments are applicable, then the default language is TEXT  - as in your case with a libtype of ERX

You can either make use of an assembler exit CMNEX038 or HLL exits SYSL00XL or SYSL01XL to set the correct value.


Johan Jacob
  • Author
  • Participating Frequently
  • 39 replies
  • May 12, 2023

The ZMF Explorer retrieves a component using the Get /component REST api with an additional parameter passed - explorerFormat = Y .This invokes further internal REST api calls to Get  /history/language to retrieve the language and pass that back is an additional variable "standardLanguage" in the returned Component data. 

For a non-source component (like an interpreted REXX component) the following conversions are employed:

  • libtype=Cxx => language=COBOL
  • libtype=Jxx => language=JCL
  • libtype=Pxx => language=JCL
  • libtype=Hxx => language=C
  • libtype=Ixx => language=PLI
  • libtype=Rxx => language=REXX

If none of these assignments are applicable, then the default language is TEXT  - as in your case with a libtype of ERX

You can either make use of an assembler exit CMNEX038 or HLL exits SYSL00XL or SYSL01XL to set the correct value.

OK, I modified HLLX SYSL00XL and activated it :

It changes correctly the language for the type ERX :

- X#SSLXL0 - start - 12 May 2023 12:02:54 --------------------------------------
function : SYSL00XL
hllxExitType : 0
externalName : X#SSLXL0
callOrigin : XML
zmfSubs : T
userid : ECSLJA
proceed : YES
dataChanged : NO
dataLocked : NO
xDsc : 0
xUid : ECSLJA
xSys : T
------------------------------------------------------------------------------
INPUT
componentType : ERX
language :
-I- InitializeWorkVariables
------------------------------------------------------------------------------
OUTPUT
componentType : ERX
language : REXX

But nevertheless the extension remains TEXT


Johan Jacob
  • Author
  • Participating Frequently
  • 39 replies
  • May 12, 2023

OK, I modified HLLX SYSL00XL and activated it :

It changes correctly the language for the type ERX :

- X#SSLXL0 - start - 12 May 2023 12:02:54 --------------------------------------
function : SYSL00XL
hllxExitType : 0
externalName : X#SSLXL0
callOrigin : XML
zmfSubs : T
userid : ECSLJA
proceed : YES
dataChanged : NO
dataLocked : NO
xDsc : 0
xUid : ECSLJA
xSys : T
------------------------------------------------------------------------------
INPUT
componentType : ERX
language :
-I- InitializeWorkVariables
------------------------------------------------------------------------------
OUTPUT
componentType : ERX
language : REXX

But nevertheless the extension remains TEXT

Just to be clear, the tag dataChanged was correctly set to 'YES' when leaving the exit


Johan Jacob
  • Author
  • Participating Frequently
  • 39 replies
  • May 12, 2023

Just to be clear, the tag dataChanged was correctly set to 'YES' when leaving the exit

OK, it had to be SYSL01XL, so my mistake, but even then the extension remains TXT

After restarting the VSCode workbench, all works fine :-)

So big thank you


Johan Jacob
  • Author
  • Participating Frequently
  • 39 replies
  • May 12, 2023

OK, it had to be SYSL01XL, so my mistake, but even then the extension remains TXT

After restarting the VSCode workbench, all works fine :-)

So big thank you

I meant, it changes correctly :-)