IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

XML GENERATE in COBOL Enterprise


IBM Mainframe Forums -> COBOL Programming
Post new topic   Reply to topic
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
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

Moderator Emeritus


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

PostPosted: Mon Mar 03, 2008 2:21 am
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
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: 2146
Location: At my coffee table

PostPosted: Tue Mar 04, 2008 7:54 pm
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
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: 2146
Location: At my coffee table

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

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

Moderator Emeritus


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

PostPosted: Tue Mar 04, 2008 8:40 pm
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
Reply with quote

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

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Tue Mar 04, 2008 9:02 pm
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 View Bookmarks
All times are GMT + 6 Hours
Forum Index -> COBOL Programming

 


Similar Topics
Topic Forum Replies
No new posts Replace each space in cobol string wi... COBOL Programming 3
No new posts COBOL -Linkage Section-Case Sensitive COBOL Programming 1
No new posts COBOL ZOS Web Enablement Toolkit HTTP... COBOL Programming 0
No new posts Calling DFSORT from Cobol, using OUTF... DFSORT/ICETOOL 5
No new posts Generate random number from range of ... COBOL Programming 3
Search our Forums:

Back to Top