Portal | Manuals | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Profile Log in to check your private messages Log in
 
XML GENERATE in COBOL Enterprise

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> COBOL Programming
View previous topic :: :: View next topic  
Author Message
grabeva

New User


Joined: 07 Sep 2006
Posts: 23

PostPosted: Tue Feb 26, 2008 9:30 pm    Post subject: XML GENERATE in COBOL Enterprise
Reply with quote

hello ......

i need some help.
I have a Cobol pgm, that parse xml to text, and final, convert text to xml.
Part of this text, are in "xml" formt, and i need not tu re-convert, i need to say at xml generate that this field, MUST not change.
how i write them?

i give part of the program

Code:
       ID  DIVISION.
       PROGRAM-ID. IVRNOMAX.
      ****************************************************************
      *    CONVERSOR MENSAJE XML A TEXTO y viceversa
      ****************************************************************
      *   ENTRADA          : FORMATO XML
      *   SALIDA           : FORMATO TEXTO
      *   FECHA            : 04-02-08
      ****************************************************************
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
      * definiciones de variables  ....gb
       77 servicio                     PIC 9(4) value zeros.
       77 ind                          PIC 99 value zeros.
       01 SW-CORRECTO                  PIC X(01).
          88 CORRECTO                            VALUE 'S'.
          88 INCORRECTO                          VALUE 'N'.
      *
       01  xml-document-length         PIC 999       COMP.
      *
       copy ivrxml.
      *
      *****************************************************************
      * COPY DE APLICATIVOS CON LOS NOMBRES DE LOS TAG
      *****************************************************************
      *
      ******************************************************************
      ** COPY         : IVCCHSOL                                      **
      ** DESCRIPCION  : COPY DE INTERCAMBIO DEL MODULO IVRCHSOL       **
      ** FECHA        : 01/12/2007 - DYNAMIC                          **
      ******************************************************************
       01 IVCCHSOl-ENTRADA.
              10 SERVICEE                 PIC  9(04).
              10 DATETIME                 PIC  9(08).
              10 CHANNEL                  PIC  X(03).
              10 BRANCH                   PIC  9(03).
              10 COUNTRYID                PIC  X(02).
              10 ACCOUNT                  PIC  9(11).
              10 TYPEE                    PIC  9(03).
              10 QUANTITY                 PIC  9(10).
              10 DELIVERY                 PIC  9(03).
              10 DELIVERYDNI              PIC  9(08).
       01 IVCCHSOL-SALIDA.
              10 REQUEST                  PIC  9(04).
              10 RESPONSECODE             PIC  9(04).
              10 CASENUMBER               PIC  9(10).
      *       10 FILLER                   PIC  X(380).
      *
      ******************************************************************
      ** FIN COPY                                                     **
      ******************************************************************
      *
      ******************************************************************
      * Sample data definitions for processing numeric XML content.    *
      ******************************************************************
       01 TABLAS-CONVERSION.
          05  TABLA-CURRENT-ELEM.
              10  CURRENT-ELEMENT     PIC X(100) OCCURS 9.
      *
        01 xfr-ed pic x(9) justified.
        01 xfr-ed-1 redefines xfr-ed pic 999999.99.
        01 NUMCHARS             COMP PIC 999.
      *
       LINKAGE SECTION.
       01 AREA-RECIBIDA               PIC X(32005).
      *
       PROCEDURE DIVISION USING AREA-RECIBIDA.
       MAINLINE SECTION.
           PERFORM INICIO.
           PERFORM PROCESO.
           PERFORM FIN.
      *
       INICIO SECTION.

           MOVE ZEROS              TO XML-RETORNO
           MOVE AREA-RECIBIDA      TO XML-COMMAREA.
           MOVE ZEROS              TO SERVICIO
           .
      *
       F-SALIDA.
           EXIT.
      *
       PROCESO SECTION.
      * ---------------
           EVALUATE XML-ACCION
             WHEN 1
               PERFORM XML-A-TEXTO
             WHEN 2
               PERFORM TEXTO-A-XML
           END-EVALUATE.
      *
       F-SALIDA.
           EXIT.
      *
      *
       FIN SECTION.
      * ---------------
           IF XML-RETORNO = 0
               IF XML-ACCION = 1
                  DISPLAY 'FIN EXITOSO DE XML-PARSE'
               ELSE
                  DISPLAY 'FIN EXITOSO DE XML-GENERATE'
               END-IF
           ELSE
               IF XML-ACCION = 1
                  DISPLAY 'ERROR EN XML-PARSE, VERIFIQUE'
               ELSE
                  DISPLAY 'ERROR EN XML-GENERATE, VERIFIQUE'
               END-IF
           END-IF.
      *
           MOVE XML-DOCUMENT-LENGTH TO XML-DATOS-LEN-R
           MOVE XML-COMMAREA        TO AREA-RECIBIDA
           GOBACK.
      *
       F-SALIDA.
           EXIT.
      *
      *
      *-- RUTINAS DE TEXTO A XML
      *
        TEXTO-A-XML SECTION.
      * ---------------
           MOVE XML-DATOS(1:4)  TO SERVICIO
      *
           EVALUATE SERVICIO
                    WHEN 1121
                         PERFORM TEXTO-SERVICIO-1121
                    WHEN 1122
                         PERFORM TEXTO-SERVICIO-1122
                    WHEN 1125
                         PERFORM TEXTO-SERVICIO-1125
                    WHEN 1126
                         PERFORM TEXTO-SERVICIO-1126
                    WHEN 1127
                         PERFORM TEXTO-SERVICIO-1127
                    WHEN OTHER
                         DISPLAY 'ESTE <SERVICE> '
                         SERVICIO 'NO ESTA DISPONIBLE, VERIFIQUE.'
                         EXIT
           END-EVALUATE
           .
      *
       F-SALIDA.
           EXIT.
      *
      *
       TEXTO-SERVICIO-1121 SECTION.
           .
       F-SALIDA.
           EXIT.
      *
       TEXTO-SERVICIO-1122 SECTION.
           .
       F-SALIDA.
           EXIT.
      *
       TEXTO-SERVICIO-1125 SECTION.
           .
       F-SALIDA.
           EXIT.
      *
       TEXTO-SERVICIO-1126 SECTION.
           .
       F-SALIDA.
           EXIT.
      *
       TEXTO-SERVICIO-1127 SECTION.
      *
           MOVE SPACES TO IVCCHSOL-SALIDA
      *
           XML GENERATE XML-AREA-DATOS
                        FROM IVCCHSOL-SALIDA
                        COUNT IN NUMCHARS
           .
       F-SALIDA.
           EXIT.
      *
      *
      *-- RUTINAS DE CONVERSION XML A TEXTO
      *
       XML-A-TEXTO SECTION.
      * ---------------
           XML PARSE XML-DATOS    PROCESSING PROCEDURE XML-HANDLER
             ON EXCEPTION
               DISPLAY 'XML DOCUMENT ERROR ' XML-CODE
               MOVE 1              TO XML-RETORNO
             NOT ON EXCEPTION
               DISPLAY 'XML DOCUMENT SUCCESSFULLY PARSED'
           END-XML
           .
      *
        F-SALIDA.
           EXIT.
      *
       XML-HANDLER SECTION.
      *                        ==> ORDER XML EVENTS MOST FREQUENT FIRST
      *
           EVALUATE XML-EVENT
      *
             WHEN 'START-OF-ELEMENT'
                  DISPLAY 'START ELEMENT TAG: <' XML-TEXT '>'
                  IF XML-TEXT = 'SERVICE'
                     COMPUTE SERVICIO   = FUNCTION NUMVAL-C(XML-TEXT)
                  ELSE
                     ADD 1              TO IND
                     MOVE XML-TEXT      TO CURRENT-ELEMENT(IND)
                  END-IF
      *
             WHEN 'CONTENT-CHARACTER'
                  DISPLAY 'CONTENT CHARACTER: <' XML-TEXT '>'
                  PERFORM EVALUA-SERVICIO
      *
             WHEN 'END-OF-ELEMENT'
               DISPLAY 'END ELEMENT TAG: <' XML-TEXT '>'
               MOVE SPACES            TO CURRENT-ELEMENT(IND)
               SUBTRACT 1             FROM IND
      *
             WHEN 'START-OF-DOCUMENT'
               COMPUTE XML-DOCUMENT-LENGTH = FUNCTION LENGTH(XML-TEXT)
               DISPLAY 'START OF DOCUMENT: LENGTH=' XML-DOCUMENT-LENGTH
                   ' CHARACTERS.'
      *
             WHEN 'END-OF-DOCUMENT'
               DISPLAY 'END OF DOCUMENT.'
      *
             WHEN 'VERSION-INFORMATION'
               DISPLAY 'VERSION: <' XML-TEXT '>'
      *
             WHEN 'ENCODING-DECLARATION'
               DISPLAY 'ENCODING: <' XML-TEXT '>'
      *
             WHEN 'STANDALONE-DECLARATION'
               DISPLAY 'STANDALONE: <' XML-TEXT '>'
      *
             WHEN 'ATTRIBUTE-NAME'
               DISPLAY 'ATTRIBUTE NAME: <' XML-TEXT '>'
      *
             WHEN 'ATTRIBUTE-CHARACTERS'
               DISPLAY 'ATTRIBUTE VALUE CHARACTERS: <' XML-TEXT '>'
      *
             WHEN 'ATTRIBUTE-CHARACTER'
               DISPLAY 'ATTRIBUTE VALUE CHARACTER: <' XML-TEXT '>'
      *
             WHEN 'START-OF-CDATA-SECTION'
               DISPLAY 'START OF CDATA: <' XML-TEXT '>'
      *
             WHEN 'END-OF-CDATA-SECTION'
               DISPLAY 'END OF CDATA: <' XML-TEXT '>'
      *
             WHEN 'PROCESSING-INSTRUCTION-TARGET'
               DISPLAY 'PI TARGET: <' XML-TEXT '>'
      *
             WHEN 'PROCESSING-INSTRUCTION-DATA'
               DISPLAY 'PI DATA: <' XML-TEXT '>'
      *
             WHEN 'COMMENT'
               DISPLAY 'COMMENT: <' XML-TEXT '>'
      *
             WHEN 'EXCEPTION'
               COMPUTE XML-DOCUMENT-LENGTH = FUNCTION LENGTH (XML-TEXT)
               DISPLAY 'EXCEPTION ' XML-CODE ' AT OFFSET '
                   XML-DOCUMENT-LENGTH '.'
             WHEN OTHER
               DISPLAY 'UNEXPECTED XML EVENT: ' XML-EVENT '.'
           END-EVALUATE.
       F-SALIDA.
           EXIT.
      *
        EVALUA-SERVICIO SECTION.
           EVALUATE SERVICIO
                    WHEN 1121
                         PERFORM XML-SERVICIO-1121
                    WHEN 1122
                         PERFORM XML-SERVICIO-1122
                    WHEN 1125
                         PERFORM XML-SERVICIO-1125
                    WHEN 1126
                         PERFORM XML-SERVICIO-1126
                    WHEN 1127
                         PERFORM XML-SERVICIO-1127
                    WHEN OTHER
                         DISPLAY 'ESTE <SERVICE> '
                         SERVICIO 'NO ESTA DISPONIBLE, VERIFIQUE.'
                         EXIT
           END-EVALUATE
           .
       F-SALIDA.
           EXIT.
      *
       XML-SERVICIO-1121 SECTION.
       F-SALIDA.
           EXIT.
      *
       XML-SERVICIO-1122 SECTION.
       F-SALIDA.
           EXIT.
      *
       XML-SERVICIO-1125 SECTION.
       F-SALIDA.
           EXIT.
      *
       XML-SERVICIO-1126 SECTION.
       F-SALIDA.
           EXIT.
      *
       XML-SERVICIO-1127 SECTION.
           EVALUATE CURRENT-ELEMENT(IND)
             WHEN 'DATETIME'
                  COMPUTE DATETIME =  FUNCTION NUMVAL-C(XML-TEXT)
             WHEN 'CHANNEL'
                  MOVE XML-TEXT   TO CHANNEL
             WHEN 'BRANCH'
                  COMPUTE BRANCH =  FUNCTION NUMVAL-C(XML-TEXT)
             WHEN 'COUNTRYID'
                  MOVE XML-TEXT TO COUNTRYID
             WHEN 'ACCOUNT'
                  COMPUTE ACCOUNT =  FUNCTION NUMVAL-C(XML-TEXT)
             WHEN 'TYPE'
                  COMPUTE TYPEe   =  FUNCTION NUMVAL-C(XML-TEXT)
             WHEN 'QUANTITY'
                  COMPUTE QUANTITY =  FUNCTION NUMVAL-C(XML-TEXT)
             WHEN 'DELIVERY'
                  COMPUTE DELIVERY =  FUNCTION NUMVAL-C(XML-TEXT)
             WHEN 'DELIVERYDNI'
                  COMPUTE DELIVERYDNI =  FUNCTION NUMVAL-C(XML-TEXT)
             WHEN OTHER
                  DISPLAY 'HAY MAS CAMPOS INFORMADOS PARA <SERVICE> '
                           SERVICIO '<XML-TEXT> ' XML-TEXT
           END-EVALUATE
             .
       F-SALIDA.
           EXIT.
Back to top
View user's profile Send private message

dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Mon Mar 03, 2008 2:21 am    Post subject:
Reply with quote

Hello,

Quote:
Part of this text, are in "xml" formt, and i need not tu re-convert,
You may be ahead if you convert the "xml text" to plain text, and then generate all of the plain text to the needed xml.
Back to top
View user's profile Send private message
grabeva

New User


Joined: 07 Sep 2006
Posts: 23

PostPosted: Tue Mar 04, 2008 5:23 pm    Post subject:
Reply with quote

Sorry, i don't understand
thanks for your time
Back to top
View user's profile Send private message
CICS Guy

Senior Member


Joined: 18 Jul 2007
Posts: 2150
Location: At my coffee table

PostPosted: Tue Mar 04, 2008 7:54 pm    Post subject:
Reply with quote

grabeva wrote:
Sorry, i don't understand
Me too, but it is your requirement that I don't understand...
It would be simpler if you posted a small sample if your input and required output.......
Back to top
View user's profile Send private message
grabeva

New User


Joined: 07 Sep 2006
Posts: 23

PostPosted: Tue Mar 04, 2008 8:05 pm    Post subject:
Reply with quote

my input message contains:

some fields 'text' + some field 'xml'

my out message :

all fields 'xml'

if a pass the message with xml generate, convert with error de part of message with 'xml' how i do it?
Back to top
View user's profile Send private message
CICS Guy

Senior Member


Joined: 18 Jul 2007
Posts: 2150
Location: At my coffee table

PostPosted: Tue Mar 04, 2008 8:38 pm    Post subject:
Reply with quote

Maybe not quite that small..... icon_rolleyes.gif
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Tue Mar 04, 2008 8:40 pm    Post subject:
Reply with quote

Hello,

You currently have both text and xml data to deal with.

Quote:
some fields 'text' + some field 'xml'


Parse the existing xml into text.

At this point, you have only "fields 'text'".

Generate a complete xml output ("all fields 'xml'") from the text.
Back to top
View user's profile Send private message
grabeva

New User


Joined: 07 Sep 2006
Posts: 23

PostPosted: Tue Mar 04, 2008 9:00 pm    Post subject:
Reply with quote

thanks
Gra
Back to top
View user's profile Send private message
enrico-sorichetti

Global Moderator


Joined: 14 Mar 2007
Posts: 10375
Location: italy

PostPosted: Tue Mar 04, 2008 9:02 pm    Post subject: Reply to: XML GENERATE in COBOL Enterprise
Reply with quote

Just a mild suggestion icon_smile.gif
is there any reason why the process providing the data is mixing up formats
any chance to review it to straighten up things a little bit icon_cool.gif
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> COBOL Programming All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
This topic is locked: you cannot edit posts or make replies. Cobol to fetch the content by using s... arunc55 COBOL Programming 4 Fri Nov 17, 2017 1:25 pm
No new posts VBS and VB, COBOL syntax is the same ... natt.sut COBOL Programming 3 Sun Nov 12, 2017 6:36 am
No new posts COBOL - EXIT statement weird behavior anthony.pangestu COBOL Programming 0 Fri Oct 27, 2017 9:57 am
No new posts IEW2456E error when link-editing a C ... Senthilraj JCL & VSAM 0 Fri Oct 13, 2017 3:12 pm
No new posts Assembler Macro Copybook converted to... Ziquilix PL/I & Assembler 4 Tue Sep 26, 2017 3:07 am

Facebook
Back to Top
 
Job Vacancies | Forum Rules | Bookmarks | Subscriptions | FAQ | Polls | Contact Us