In this tutorial, you use the top-down method to create a Web service requester that runs the provider Web service you created
               in the previous tutorial. 
               	 
            
 
            	 
            
               Prerequisites
 
               		 
               		
               Before attempting to complete this tutorial, you must first complete 
                  		  Tutorial: CICS Web Service Provider from JSON, Request-Response Top-down Method. This is required because the requester generated in this tutorial runs the provider Web service you created in the previous
                  tutorial and that runs on the 
                  		  CWSJSON 
                  		  enterprise server region. 
                  		
               
 
               		
               The 
                  		  Test the invkRevJCICSClientApp Web service requester section of this tutorial requires that you have access to a TN3270 emulator such as Rumba. 
                  		
               
 
               		
               Note: CCSID conversion tables must also be installed before running this tutorial, but as these are also required to run the prerequisite
                  
                  		  Tutorial: CICS Web Service Provider, JSON Request-Response Method, they should already be installed. 
                  		
               
 
               		 
               	 
              
            	  
            	 
            
               Generate CICS Web Service requester components
 
               		 
               		
               Use the 
                  		  Generate Web Service dialog box to generate the components of your Web service requester. 
                  		
               
 
               		 
               		
                
                  		  
                  - From the Solution Explorer, expand the 
                     			 ReverseJSON project's 
                     			 json folder; then Ctrl-click both the 
                     			 reverseReq.json and 
                     			 reverseResp.json files. 
                     		  
                  
- Right-click the selected 
                     			 .json files; then select 
                     			 Generate Web Service from the context menu. 
                     		  
                  
- In the Generate Web Service dialog box, ensure that 
                     			 reverseReq.json populates the 
                     			 (for request) field, and 
                     			 reverseResp.json populates the 
                     			 (for response) field. 
                     		  
                  
- In the 
                     			 Generate group, select the 
                     			 Client radio button. 
                     		  
                  
- In the 
                     			 Program group, check 
                     			 CICS. 
                     		  
                  
- In the 
                     			 Program group's 
                     			 Name field, type 
                     			 invkRevJ, which is the name for the generated COBOL skeleton program. 
                     		  
                  
- Click 
                     			 OK. 
                     		  
                  
 
                  		
                  Enterprise Developer generates a new project named 
                     		  invkRevJCICSClientApp. It contains: 
                     		
                  
 
                  		
                   
                     		   
                     			 
                     - invkRevJ.cbl 
                        			 
                     
- A skeleton CICS program. 
                        			 
                     
- InvkRevJInBundle 
                        			 
                     
- A folder that contains generated input files. 
                        				
                         
                           				   
                           					 
                           - jsbinds/invkRevI.json 
                              					 
                           
-  A JSBIND file for converting between input JSON messages and COBOL data structures. 
                              					 
                           
- jsbinds/reverseReq.json 
                              					 
                           
- A copy of the input JSON that corresponds to the 
                              						invkRevJ.cbl program. 
                              					 
                           
- META-INF/cics.xml 
                              					 
                           
- A reference file used by Enterprise Server to establish the structure of the input bundle directory. 
                              					 
                           
 
- InvkRevJOutBundle 
                        			 
                     
- A folder that contains generated output files. 
                        				
                         
                           				   
                           					 
                           - jsbinds/invkRevO.json 
                              					 
                           
-  A JSBIND file for converting between output JSON messages and COBOL data structures. 
                              					 
                           
- jsbinds/reverseResp.json 
                              					 
                           
- A copy of the output JSON that corresponds to the 
                              						invkRevJ.cbl program. 
                              					 
                           
- META-INF/cics.xml 
                              					 
                           
- A reference file used by Enterprise Server to establish the structure of the output bundle directory. 
                              					 
                           
 
  
               	 
              
            	 
            
               Implement the service
 
               		 
               		
                The 
                  		  generated 
                  		  invkRevJ.cbl program 
                  		  should provide the functionality that is required to invoke the 
                  		  reverse service. Any JSON application that uses a linkable interface, including 
                  		  invkRevJ.cbl, is required to do the following: 
                  		
               
 
               		
                
                  		  
                  - Populate the request structure. 
                     		  
                  
- PUT that data into a CONTAINER named DFHJSON-DATA. 
                     		  
                  
- PUT the name of the JSONTRANSFRM resource used to transform the COBOL request data to JSON into a CONTAINER named DFHJSON-TRANSFRM.
                     
                     		  
                  
- LINK to DFHJSON, which includes: 
                     			 
                      
                        				
                        - Locating the appropriate JSBIND file by using the JSONTRANSFRM resource named in the DFHJSON-TRANSFRM CONTAINER. 
                           				
                        
- Transforming the content of the DFHJSON-DATA CONTAINER into JSON using the JSBIND file and placing it into the DFHJSON-JSON
                           CONTAINER. 
                           				
                        
 
- SEND the request and RECEIVE the response, which includes: 
                     			 
                      
                        				
                        - Using WEB OPEN to open a connection to the server hosting the service. 
                           				
                        
- Using WEB CONVERSE to SEND the request to the server and RECEIVE the response. This is done by supplying the request message
                           via the DFHJSON CONTAINER and receiving the response message into the same CONTAINER. 
                           				
                        
- Using WEB CLOSE to close the connection to the server. 
                           				
                        
 
- PUT the name of the JSONTRANSFRM resource used to transform the JSON response message to COBOL into a CONTAINER named DFHJSON-TRANSFRM.
                     
                     		  
                  
- LINK to DFHJSON, which repeats the same procedure as before. 
                     		  
                  
- Populates the response structure by GETting the content of the DFHJSON-DATA CONTAINER. 
                     		  
                  
 
                  		
                  To provide the program with an input and direct the output to your terminal, you must edit the code. 
                     		
                  
 
                  		
                   
                     		  
                     - From the 
                        			 Solution Explorer, double-click 
                        			 invkRevJ.cbl to open it in the COBOL editor. 
                        		  
                     
- In the 
                        			 PROCEDURE DIVISION, 
                        			 WS-OP-1 section, add the following 
                        			 MOVE statements before the 
                        			 EXEC CICS PUT CONTAINER statement: 
                        			 move 'esaelPeMesreveR'      to myString 
-  After the 
                        			 EXEC CICS GET CONTAINER command for 
                        			 DFHJSON-DATA, add the following code to send the reversed string back to the terminal: 
                        			  exec cics send text
      from(reversedString)
      freekb
 end-exec
- Save the program and exit the editor. 
                        		  
                     
  
               	 
              
            	 
            
               Build the invkRevJCICSClientApp project
 
               		 
               		
                
                  		  
                  - From the Solution Explorer, right-click the 
                     			 invkRevJCICSClientApp project; then select 
                     			 Build. 
                     		  
                  
  
            	 
            
               Move the 
                  		  invkRevJ.dll file
               
 
               		 
               		
               Because the 
                  		  invkRevJ.dll file is generated to the 
                  		  ReverseJSON project's 
                  		  invkRevJCICSClientApp\bin\x86\Debug directory, but the output path is set to the 
                  		  ReverseJSON project's 
                  		  loadlib directory, you need to move the file from 
                  		  invkRevJCICSClientApp\bin\x86\Debug directory to the project's 
                  		  loadlib directory so that 
                  		  Enterprise Server finds the correct file. 
                  		
               
 
               		
                
                  		  
                  -  Using Windows Explorer or at a command prompt, change to the 
                     			 ReverseJSON project directory. 
                     		  
                  
-  Copy or move the 
                     			 invkRevJ.dll file from the 
                     			 invkRevJCICSClientApp\bin\x86\Debug directory to the 
                     			 loadlib directory. 
                     		  
                  
  
            	 
            
               Configure CWSJSON resources
 
               		 
               		
               To run the invkRevJCICSClientApp Web service requester using the CWSJSON 
                  		  enterprise server region you created in the previous tutorial, you must add the appropriate resources to the startup list and add and configure additional
                  resources required by the CICS program. 
                  		
               
 
               		
                
                  		   
                  			 
                  - Start the CWSJSON 
                     				enterprise server region 
                     			 
                  
-  
                     				
                      
                        				  
                        - Start 
                           					 Enterprise Server Administration from Server Explorer. 
                           				  
                        
- On Server Explorer, right-click 
                           					 CWSJSON; then select 
                           					 Start. 
                           				  
                        
 
- Start ES Monitor and Control (ESMAC) 
                     			 
                  
-  
                     				
                      
                        				  
                        - After CWSJSON has started, on the Administration Home page, click the 
                           					 Details button located in the 
                           					 Status column for the 
                           					 CWSJSON region. 
                           				  
                        
- On the 
                           					 Server > Control page, click 
                           					 ES Monitor & Control. 
                           				  
                        
 
- Add CWSJSONR to the startup list 
                     			 
                  
-  
                     				
                      
                        				  
                        - On the ESMAC menu ribbon, click the 
                           					 Resources drop-down list; then select 
                           					 by Group. 
                           				  
                        
- Click 
                           					 Startup. 
                           				  
                        
- Click the 
                           					 Details button that corresponds to the DEMOSTRT startup list. 
                           				  
                        
- On the CICS STARTUP - DEMOSTRT page, scroll down to the end of the list and type 
                           					 CWSJSONR into the empty field at the bottom; then click 
                           					 Apply. 
                           					 
                           As with the previous tutorial, you need to create the CWSJSONR resource group. 
                              					 
                            
 
- Create the CWSJSONR resource group 
                     			 
                  
-  
                     				
                      
                        				  
                        - On the ESMAC menu, click the 
                           					 Groups button located under 
                           					 Resources. 
                           				  
                        
- On the CICS Resource Groups page, click 
                           					 New. 
                           				  
                        
- In the 
                           					 Name field, type 
                           					 CWSJSONR. 
                           				  
                        
- In the 
                           					 Description field, type 
                           					 CICS Web Services JSON Requester Resources; then click 
                           					 Add. 
                           				  
                        
 
- Create and verify resources 
                     			 
                  
- The invkRevJCICSClientApp program requires a URIMap resource, a pair of Bundle resources, and a PCT resource used to invoke
                     the Reverse Web service from a TN3270 terminal emulator. 
                     				
                      
                        				  
                        - On the CICS Group CWSJSONR page, click 
                           					 URIMap. 
                           				  
                        
- Complete these fields: 
                           					 
                           
                               
                                 						  
                                  
                                    							 
                                     
                                       								
                                       | Name | reverseR |   
                                       								
                                       | Description | My CICS Requester URIMap |   
                                       								
                                       | Usage | Client |   
                                       								
                                       | Port | 5639 |   
                                       								
                                       | Host | localhost |   
                                       								
                                       | Path | /cics/services/reverse |  
 
 
- Click 
                           					 Add; then click 
                           					 Apply. 
                           				  
                        
- Click 
                           					 Group List to return to the CICS Group CWSJSONR page. 
                           				  
                        
- Click 
                           					 Bundle. 
                           				  
                        
-  Complete these fields: 
                           					 
                           
                               
                                 						   
                                 						   
                                 						  
                                  
                                    							 
                                     
                                       								
                                       | Name | INVKRVJI |   
                                       								
                                       | Description | Input bundle to map the data structure to a JSON request |   
                                       								
                                       | Bundle Dir | $IDE_PROJECT_LOC\invkRevJCICSClientApp\invkRevJInBundle |  
 
 
- Click 
                           					 Add; then click 
                           					 Apply. 
                           				  
                        
- Click 
                           					 Group List to return to the CICS Group CWSJSONR page. 
                           				  
                        
- Click 
                           					 Bundle. 
                           				  
                        
-  Complete these fields: 
                           					 
                           
                               
                                 						   
                                 						   
                                 						  
                                  
                                    							 
                                     
                                       								
                                       | Name | INVKRVJO |   
                                       								
                                       | Description | Output bundle to map the JSON response to a data structure |   
                                       								
                                       | Bundle Dir | $IDE_PROJECT_LOC\invkRevJCICSClientApp\invkRevJOutBundle |  
 
 
- Click 
                           					 Add; then click 
                           					 Apply. 
                           				  
                        
- Click 
                           					 Group List to return to the CICS Group CWSJSONR page. 
                           				  
                        
- Click 
                           					 PCT. 
                           				  
                        
- Complete these fields: 
                           					 
                           
                               
                                 						  
                                  
                                    							 
                                     
                                       								
                                       | Name | RVRS |   
                                       								
                                       | Description | CWS transaction to invoke the reverse service |   
                                       								
                                       | Program Name | invkRevJ |  
 
 
- Click 
                           					 Add; then click 
                           					 Apply. 
                           				  
                        
- To return to the Administration Home page, click 
                           					 Home at the top of the ESMAC menu. 
                           					 
                           You can install the new resources by stopping and starting the region. 
                              					 
                            
- From the 
                           					 Enterprise Developer Server Explorer, right-click 
                           					 CWSJSON; then select 
                           					 Restart. This stops and then starts the CWSJSON 
                           					 enterprise server region, automatically installing and loading the newly added resources on the startup list. 
                           				  
                        
- After CWSJSON is started, use the ESMAC 
                           					 Active feature to verify that the CWSJSONR resources are installed and active. 
                           				  
                        
 
  
            	  
            	  
            	 
            
               Test the invkRevJCICSClientApp Web service requester
 
               		 
               		
               Now that you have your Web service requester running with all of its resources active, you are ready to run it from a TN3270
                  terminal emulator. 
                  		
               
 
               		
                
                  		   
                  		  
                  - Optionally, test to confirm that the ReverseJSON provider is running by repeating the 
                     			 Test the ReverseJSON Web service provider section in the 
                     			 Tutorial: CICS Web Service Provider, JSON Request-Response Top-down Method tutorial. 
                     		  
                  
- From the 
                     			 Enterprise Developer Server Explorer, right-click 
                     			 CWSJSON; then select 
                     			 Show TN3270 display. 
                     		  
                  
- If using Rumba, press 
                     			 F3 to bypass the CICS logon screen. 
                     		  
                  
- Enter 
                     			 RVRS. 
                     			 
                     The emulator should return your input string, reversed: 
                        				 Hello
JSON