Das RPG-Programm läßt sich noch weiter vereinfachen
Code:
         ctl-opt dftactgrp(*no);                                                                                        
      //------------------------------------------------------------------//                                            
      //                                                                  //                                            
      //  Parsen XML-DATEN - CCSID DER XML-DATEI MUSS 1208 SEIN           //                                            
      //                                                                  //                                            
      //-----------------                                                 //                                            
      // R.Ross 12.2018 *                                                 //                                            
      //------------------------------------------------------------------//                                            
      // XML-Array - Root                                                 //                                            
      //------------------------------------------------------------------//                                            
                                                                                                                        
         dcl-ds  Data                  qualified;                                                                       
                  Teile_Nr             likeds(Data_tmp);                                                                
                  hgna                 likeds(hgna);                                                                    
                  Ersteller            likeds(Data_tmp);                                                                
                  Erstelldatum         likeds(Data_tmp);                                                                
                  Workflow_Status      likeds(Data_tmp);                                                                
                  Aenderungsdatum      likeds(Data_tmp);                                                                
         end-ds;                                                                                                        
                                                                                                                        
      //------------------------------------------------------------------//                                            
      // Template Data                                                    //                                            
      //------------------------------------------------------------------//                                            
                                                                                                                        
         dcl-ds  Data_tmp              template qualified;                                                              
                  Fieldname            char(10);                                                                        
                  Data                 char(20);                                                                        
         end-ds;                                                                                                        
                                                                                                                        
      //------------------------------------------------------------------//                                            
      // Element hgna                                                     //                                            
      //------------------------------------------------------------------//                                            
                                                                                                                        
         dcl-ds  hgna                  qualified;                                                                       
                  Keygroup             likeds(Keygroup);                                                                
         end-ds;                                                                                                        
                                                                                                                        
      //------------------------------------------------------------------//                                            
      // Element Keygroup                                                 //                                            
      //------------------------------------------------------------------//                                            
                                                                                                                        
         dcl-ds  Keygroup              qualified;                                                                       
                  Groupname            char(40);                                                                        
                  cnt_Keycharacteristic uns(10);                                                                        
                  Keycharacteristic    likeds(Keycharacteristic)dim(10);                                                
         end-ds;                                                                                                        
                                                                                                                        
      //------------------------------------------------------------------//                                            
      // Element Keycharacteristic                                        //                                            
      //------------------------------------------------------------------//                                            
                                                                                                                        
         dcl-ds  Keycharacteristic     qualified;                                                                       
                  Name                 char(10);                                                                        
                  Data                 char(20);                                                                        
         end-ds;                                                                                                        
                                                                                                                        
      //------------------------------------------------------------------//                                            
      // Processing                                                       //                                            
      //------------------------------------------------------------------//                                            
                                                                                                                        
           main();                                                                                                      
                                                                                                                        
           *inlr = *on;                                                                                                 
      //------------------------------------------------------------------//                                            
      // Main                                                             //                                            
      //------------------------------------------------------------------//                                            
         dcl-proc Main;                                                                                                 
                                                                                                                        
         dcl-s   LocOpt      varchar(256);            // XML-Options                                                    
         dcl-s   LocFile     varchar(128);            // File                                                           
                                                                                                                        
           LocFile = '/Home/Import/xml/test01.xml';   // File                                                           
                                                                                                                        
           LocOpt  = 'doc=file case=any allowextra=yes +                                                                
                      countprefix=cnt_ datasubf=data';                                                                  
                                                                                                                        
           xml-into Data %xml(LocFile:LocOpt);                                                                          
                                                                                                                        
         end-proc;                                                                                                      
      //------------------------------------------------------------------//