Note: The following applies to managed COBOL only. 
               	 
            
 
            	 
            You can use any existing COBOL program in a multiple user environment in 
               		.NET. Do this as follows: 
               	 
            
 
            	 
             
               		
               - Create a COBOL class library project and add your procedural COBOL program to that project. 
                  		
               
  
               		
               - Rebuild the project. 
                  		  
                  
The COBOL program is now represented as a class that can be instantiated. It is packaged as a library (.dll); it is not compiled as an executable that can be run directly. 
                     		  
                  
 
                  		
                 
               	 
            
 
            	 
            Whether the COBOL program to be called is procedural or OO COBOL, you need a program to call it, and this program can be in any .NET language, such as C# or COBOL: 
               	 
            
 
            	 
             
               		
               - Create a project for the calling program, which can be more or less any project type, and add a reference to the: 
                  		  
                  
 
                     			 
                     - Micro Focus Runtime (Interop RuntimeServices) assembly - this adds the 
                        				MicroFocus.COBOL.RuntimeServices reference to your project.
                        			 
                     
  
                     			 
                     - Micro Focus Runtime assembly - this adds the 
                        				MicroFocus.COBOL.Runtime reference to your project. You need this only if the calling program is in a .NET language other than COBOL. 
                        			 
                     
  
                     			 
                     - Project containing the COBOL class library that you want to call. 
                        			 
                     
  
                     		  
                  
 
                  		
                 
               		 
               		
               - In the calling program, create a run unit using the 
                  		  MicroFocus.COBOL.RuntimeServices.RunUnit constructor. 
                  		
               
  
               		
               - Use the 
                  		  Try ... Finally syntax to ensure that the program destroys the run unit if the program fails. 
                  		
               
  
               		
               - Either use the 
                  		  RunUnit.Call() method to call the COBOL class, or: 
                  		  
                  
 
                     			 
                     - Make sure that any parameters use .NET standard data types, and make sure that the called COBOL can receive these .NET standard
                        data types. 
                        			 
                     
  
                     			  
                     			 
                     - Create an instance of the procedural COBOL program to be called. 
                        			 
                     
  
                     			 
                     - Add the program instance to the new run unit, using the 
                        				RunUnit.Add() method. 
                        			 
                     
  
                     			 
                     - Invoke the program instance within the new run unit. 
                        			 
                     
  
                     		  
                  
 
                  		
                 
               		
               - Use the 
                  		  StopRun() 
                     		  method to destroy the run unit when you have finished with it. 
                  		
               
  
               	 
            
 
            	 
            Note:  
               		
                
                  		  
                  - If the run unit causes a run-time error, a 
                     			 System.ApplicationException is thrown. 
                     		  
                  
  
                  		  
                  - In OO COBOL programs in a mixed language environment, do not use static methods and data as they cause run-time errors. 
                     		  
                  
  
                  		  
                  - Ensure that data access is synchronized, as the run units will be executing in different threads. 
                     		  
                  
  
                  		
               
 
               	 
              
            	 
            For details of the RunUnit class in the 
               		MicroFocus.COBOL.RuntimeServices assembly, see: 
               		RunUnit Class.