Problem:
While building a customer IMS/CBl/ASM Mainframe Express application into Enterprise Developer for Visual Studio, the following error is displayed and the build fails:
********************************************
MM370ANM Micro Focus Assembler Option Debugger
Copyright (C) 2012 Micro Focus. All rights rsrvd. Vrn 3.1.00
MM370ANM Assemble: Y9940970
000000 SAMTUMSG CSECT
000000 SAMTUMSG AMODE 31
000000 SAMTUMSG RMODE ANY
000000 F0F0F0F1 DC CL4'0001'
000004 C6C5D3C1D2E3 DC CL79'FELAKTIG
000053 F0F0F0F2 DC CL4'0002'
000057 D2D6D5E3D6D5 DC CL79'KONTONUMM
0000A6 F0F0F0F3 DC CL4'0003'
0000AA D2D6D5E3D6D5 DC CL79'KONTONUMM
0000F9 5C5C5C5C 1 DC CL4'****'
0000FD 1 END
Source name has no matching CSECT name, Y9940970
Created---------ASM\\Y9940970.IDF
total elapsed seconds = 0
********************************************************************************
MM370ASM 0 errors found - end of processing
********************************************************************************
MF370LNK Micro Focus Assembler Linkage Editor
Copyright (C) 2012 Micro Focus. All rights rsrvd. Vrn 3.1.00
Link Info. : Options = REPLACE OMF(390) ANIMATE LIST RENT REUS CALL NONCAN
ASMLK0108S : Linking = Y9940970 member not found, Terminated...
Done building project "Handelsbanken.cblproj" -- FAILED.
Build FAILED.
********************************************
The following compile directives are used:
ANIM NOOPT RENT NOLIST LINK REUS CALL AMODE(31) RMODE(31) NOMPC NOATT SYSPARM()
The .IDF file is generated automatically into the source folder, Assembler .OBJ file is generated in asm project directory and the *.390 modules are generated and placed in the project root directory.
Resolution:
There is a mf370ctl.cfg file that ships in the installation bin folder. It contains environment variables that control file locations. This file can be copied to the Visual Studio project folder. The copy in the project folder overrides the copy in the Enterprise Developer bin folder.
The SYSLIN environment variable controls the output location of OBJ files and the SYSLMOD environment variable controls the output location for the .390 files. You can set these environment variables in the mf370ctl.cfg file or if you prefer, you can simply set these as environment variables.
Note that when we added assembler support to Visual Studio we added the assembler IDE properties as they were in Mainframe Express. There was no provision in the Manframe Express IDE to set the output location for the obj files or executable .390 files. The difference was that in Mainframe Express the .OBJ and .390 file went in the LOADLIB folder with the other executables, but by default in Visual Studio the files are going into the same folder as the assembler source.
#ASMLK0108S
#MFDS
#Assemlbererror
#EnterpriseDeveloper
#linking