> For the complete documentation index, see [llms.txt](https://docs.editran.onesait.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.editran.onesait.com/documentacion-editran/ibm-editran-v5.3-comun-z-os-en/editran-sepa/descripcion-de-la-funcionalidad/datos-de-entrada-salida-para-los-conversores.md).

# Input/output data for the converters

## Output data <a href="#toc160121856" id="toc160121856"></a>

In all cases, a DD will be indicated, which is the list of output files generated by the converter (not to be confused with the list of input files that the user may have created and that could even reach A1P earlier).

This list of output files will be the one that must be in step A1P (in addition to setting the variable LF=S). To see the format of the ZTBGFCAR, see [Table 1](/documentacion-editran/ibm-editran-v5.3-comun-z-os-en/editran-sepa/descripcion-de-la-funcionalidad/uso-de-listas-de-ficheros-por-onesait-ecosystems-editran.md).

```cobol
//ZTBGFCAR DD DSN= KI.PMED.&L0..R&R1..R&R2..A&AP..LISTFICX,DISP=SHR
```

In the case of post-reception or JCL, this list contains the final DSNAMEs of the generated flat files.

Therefore, if the user until now was indicating a file list to step A1P, it will be included as input data to the converter; the converter generates a file list (different from the previous one), which will be the one that reaches A1P.

The converter can also generate a ZTBXFSAL with the result of the files passed to the converter (see table 3). If this is not desired, do not include the card or set SYSOUT \*.

```cobol
//ZTBXFSAL DD DSN= KI.PMED.&L0..R&R1..R&R2..A&AP..ZTBXFSAL,DISP=SHR
```

If the converter is being used integrated with Editran, with the previous and subsequent procedures you can obtain the messages in the Editran/G LOG, including the converter step with its DD card. If this functionality is not desired, do not include the DD card.

```cobol
//ZTBGFLOG DD   DSN=PUNTERO.INDRA.ZTBGFLOG,DISP=SHR  
```

LOG example:

```
U ZTB0000 000099940 000099990 CARGAC        05/02/2014 15:29:29 KI0F6AEA 04203
ERROR CALLING ZTBXBITS FILE TRANSFORMATION.                                  
U ZTB0000 000099940 000099990 CARGAC        05/02/2014 15:29:30 KI0F6AEA 04203
Error in the XML marshaller        
```

Table 3. Content of the ZTBXFSAL file, fixed file with length 252, whose content is the files that go through the converter and the result of the conversion. The content is as follows:

<table data-header-hidden><thead><tr><th width="63.07403564453125" valign="top"></th><th width="240.7943115234375" valign="top"></th><th width="67.45684814453125" valign="top"></th><th width="76.08642578125" valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top">Level</td><td valign="top">Name</td><td valign="top">Length</td><td valign="top">Type</td><td valign="top">Description</td></tr><tr><td valign="top">1</td><td valign="top">Input physical name</td><td valign="top">44</td><td valign="top">Alphan.</td><td valign="top">Physical name of the application file that enters the converter</td></tr><tr><td valign="top">1</td><td valign="top">Filler</td><td valign="top">1</td><td valign="top">Alphan.</td><td valign="top">Separator dash</td></tr><tr><td valign="top">1</td><td valign="top">Output physical name</td><td valign="top">44</td><td valign="top">Alphan.</td><td valign="top">Physical name of the application file generated by the converter</td></tr><tr><td valign="top">1</td><td valign="top">Filler</td><td valign="top">1</td><td valign="top">Alphan.</td><td valign="top">Separator dash</td></tr><tr><td valign="top">1</td><td valign="top">CGO result of the converter</td><td valign="top">4</td><td valign="top">No.</td><td valign="top">Result returned by the converter</td></tr><tr><td valign="top">1</td><td valign="top">Filler</td><td valign="top">1</td><td valign="top">Alphan.</td><td valign="top">Separator dash</td></tr><tr><td valign="top">1</td><td valign="top">Error text</td><td valign="top">80</td><td valign="top">Alphan.</td><td valign="top">Text of the error message returned by the converter</td></tr><tr><td valign="top">1</td><td valign="top">rest of record</td><td valign="top">77</td><td valign="top">Alphan.</td><td valign="top">Reserve area</td></tr></tbody></table>

## Input data.

To call the converters, use:

* Data via PARM
* Data entered in a user file, (which can always be the same for all or, if not valid, can be built with variables). This ZTBGFDAT file can be different for each session. In that case, in the procedure we will specify a DSNAME with variables, for example, source, remote, application, etc. Example:

```cobol
//ZTBGFDAT DD   DSN=KI.PEPE.&L0..R&R1..R&R2..A&AP..ZTBGFDAT,DISP=SHR
```

### Data passed to the converter via PARM. <a href="#toc160121857" id="toc160121857"></a>

The following data must be passed to the converter via PARM:

1. Source. Source Rbe. In the case of non-Editran JCLs, the entity code is entered. Otherwise, the input variable for the procedure is passed (\&L1\&L2).
2. Destination. Destination Rbe. In the case of non-Editran JCLs, the code of a destination entity example is entered. Otherwise, the input variable for the procedure is passed (\&R1\&R2).
3. Application. Editran/G application. In the case of non-Editran JCLs, the code of a sample application/g is entered. Otherwise, the input variable for the procedure is passed (\&AP)
4. Function: (X) - Flat file to XML, (P) - XML to flat file
5. Type of input file (in the case of function X it refers to the FLAT FILE, in the case of function P, it refers to the XML).

* (F) File. The JCL or procedure carries an input file with a DSNAME.
* (L) List. The JCL or procedure carries a list of input files.
  * In procedures prior to issuance (function X flat file to XML). If you use file lists in loading, it is recommended to use this option.
  * In procedures after receipt (function P XML to flat file). The standard product procedure leaves a list of received files, so it is recommended to use this option as input data to the XML to flat file converter step.
* (P) Profiles. The JCL or procedure does not carry an input file or list of input files. The issuing application files are taken from whatever is in the application profiles.
  * In procedures prior to issuance. If you use Editran profiles for loading, it is recommended to use this option.
  * In procedures after receipt (function P, XML to flat file), this option makes no sense.

6. DSNAME of the input file (it cannot be a member of a partitioned dataset).

* If input file type is P, nothing will be indicated.
* If input file type is F, a file name will be indicated here (directly or with variables).
* If input file type is L, a list whose content is the files to be transformed will be indicated here (see Table 1). If the user was already using a file list, that name will be indicated here.

PARM example, in a pre-issuance procedure with a file list:

```cobol
//      PROC ORIGEN=,FUNCION=,L0=,                
//           L1=,L2=,R1=,R2=,AP=,LF=,FU=,TI=,FI=  
//      SET LF=S                           
//      SET FU=X                           
//      SET TI=L                           
//      SET FI= KI.EGDC.&L0.R&R1.R&R2.A&AP.LCAR                 
//PASO01 EXEC PGM=ZTBXBXML,                             
//      PARM='&L1&L2&R1&R2&AP&FU&TI&FI/CBLQDA(ON)'      
//ZTBGFDAT DD   DSN=KI.EIDC.ZTBG.ZTBGFDAT,DISP=SHR      
//ZTBGFCAR DD  DSN=KI.PMED.R&R1..R&R2..A&AP..LISTFICX,  
//ZTBXFSAL DD  DSN=KI.PMED.R&R1..R&R2..A&AP..ZTBXFSAL,  
```

We are indicating that the session is L1+L2 (source), R1+R2 (destination), AP (application), (FU)nction X (flat file to XML), (TI)pe: (L)ist of files and FI (the dsname of the list is KI.EGDC.xxx.Ryyy.Ryyyyyy.Azzzzzz.LCAR) (where xxx is the local environment alias, yyyyyyyyy is the remote code, zzzzzz is the application). In addition, the LF = S variable is set, because step A1P will require it that way.

* In loads, in ALL cases (LIST (L), FILE (F), PROFILES (P)) the DD ZTBGFCAR must be indicated, which in turn must be in step A1P. In addition, it must be indicated that it be deleted beforehand (or afterwards) and in the procedures the variable LF=S must be set. This ZTBGFCAR is the list that contains the XMLs that the application will load (not to be confused with the list of files that the user can provide to the converter) or the list of TRANSFORMED files (in the case of launching JCL or in the case of post-reception).
* In downloads, a list of ZTBGFLFE files is received from step A4P (created by the application), so .PL&\&LFE must always be indicated. The converter step will create a new list of transformed files ZTBGFCAR in all cases.
* When this converter is launched outside the application, (in a separate jcl), it is normal to use Input file type F (\&TI=F), since a file name can be included directly (\&FI).
* When this converter is launched inside the application (embedded in the procedures prior to issuance and after receipt):
* In pre-issuance (loads):
  * If the user is already building a file list, for example KI.EGDC.xxx.Ryyy.Ryyyyyy.Azzzzzz.LCAR, they must continue doing so in this way, indicating the name in variable \&FI and indicating \&TI=L :
  * If the user relies on Editran profiles to perform the loads, they must continue to do so normally, indicating \&TI=P
  * Normally, the F option will not be used, since that would probably mean generating a different procedure for each presentation session.
  * The converter, in all cases, generates a new file list that will be passed to step A1P. This file list is generated with the name that we have put in the DD //ZTBGFCAR DD xxxxx
* In post-reception (downloads):
  * The converter step will create a new list of transformed files ZTBGFCAR in all cases

### Data passed to the converter via user file (ZTBGFDAT). <a href="#ref429735447" id="ref429735447"></a>

In all cases, it is necessary for the user to create a file (or n) with certain parameters that will normally always be the same. This file is called ZTBGFDAT and is a flat file with LRECL of 86 and FB. The content of this file is as follows:

<table data-full-width="true"><thead><tr><th width="63.30877685546875" valign="top"></th><th width="165.5308837890625" valign="top"></th><th width="66.7655029296875" valign="top"></th><th width="65.6378173828125" valign="top"></th><th width="66.22625732421875" valign="top"></th><th width="107.773681640625" valign="top"></th><th width="485.1851806640625" valign="top"></th></tr></thead><tbody><tr><td valign="top">Level</td><td valign="top">Name</td><td valign="top">Type</td><td valign="top">Length</td><td valign="top">Pos</td><td valign="top">Use</td><td valign="top">Description</td></tr><tr><td valign="top">1</td><td valign="top">Record Type</td><td valign="top">No.</td><td valign="top">1</td><td valign="top">1</td><td valign="top">Required</td><td valign="top"><p>Record type:</p><p>0- java server connection data</p><p>1-Data for the transformation from FLAT FILE to XML</p><p>2-Data for the transformation from XML to FLAT FILE</p><p>3-Confirmation-rejection record for direct debits and transfers</p><p>*-Commented record</p></td></tr><tr><td valign="top">2</td><td valign="top">Type 0 records</td><td valign="top"></td><td valign="top"></td><td valign="top"></td><td valign="top"></td><td valign="top">Java server connection data</td></tr><tr><td valign="top">3</td><td valign="top">Separator hyphen</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">2</td><td valign="top">Optional</td><td valign="top">Hyphen</td></tr><tr><td valign="top">3</td><td valign="top">IP or DNS of the java server</td><td valign="top">Alphanumeric</td><td valign="top">1-64</td><td valign="top">3</td><td valign="top">Required</td><td valign="top"><p>IP xxx.xxx.xxx.xxx or DNS of the java server</p><p>Right-aligned.</p></td></tr><tr><td valign="top">3</td><td valign="top">Separator hyphen</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">67</td><td valign="top">Optional</td><td valign="top">Hyphen</td></tr><tr><td valign="top">3</td><td valign="top">Java server port</td><td valign="top">No.</td><td valign="top">5</td><td valign="top">68</td><td valign="top">Required</td><td valign="top">Java server listening port 00001 to 65536</td></tr><tr><td valign="top">3</td><td valign="top">Separator hyphen</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">73</td><td valign="top">Optional</td><td valign="top">Hyphen</td></tr><tr><td valign="top">3</td><td valign="top">Server wait seconds</td><td valign="top">No.</td><td valign="top">3</td><td valign="top">74</td><td valign="top">Required</td><td valign="top"><p>Maximum seconds (001-999) for which the TCP client waits for a response from the java server.</p><p>If 999 is indicated, the TCP client waits indefinitely.</p></td></tr><tr><td valign="top">3</td><td valign="top">Separator hyphen</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">77</td><td valign="top">Optional</td><td valign="top">Hyphen</td></tr><tr><td valign="top">3</td><td valign="top">Free information</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">78</td><td valign="top">Optional</td><td valign="top"><p>Value:</p><p>S incorporate values in the free area of the flat file</p><p>N Do not incorporate values</p><p>Default value N</p></td></tr><tr><td valign="top">3</td><td valign="top">Separator hyphen</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">79</td><td valign="top">Optional</td><td valign="top">Hyphen</td></tr><tr><td valign="top">3</td><td valign="top">Keep output file</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">80</td><td valign="top">Optional</td><td valign="top"><p>Keep the output file if error</p><p>Value:</p><p>S the output file is not deleted</p><p>N the output file is deleted</p><p>Default N</p></td></tr><tr><td valign="top">3</td><td valign="top">Separator hyphen</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">81</td><td valign="top">Optional</td><td valign="top">Hyphen</td></tr><tr><td valign="top">3</td><td valign="top">Remove SEPA Spain XML validations</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">82</td><td valign="top">Optional</td><td valign="top"><p>Optional. If this field is not present, the default option is N</p><p>Value:</p><p>S Removes SEPA Spain validations</p><p>N Adds SEPA Spain validations</p></td></tr><tr><td valign="top">3</td><td valign="top">Separator hyphen</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">83</td><td valign="top">Optional</td><td valign="top">Hyphen</td></tr><tr><td valign="top">3</td><td valign="top">Validate XML</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">84</td><td valign="top">Optional</td><td valign="top"><p>Optional. If this field is not present, the default option is S</p><p>Value:</p><p>X Validates the XML generated by the converter</p><p>P Validates the XML that enters the converter</p><p>S Validates the XML in both directions</p><p>N Does not validate XML in any case</p><p>Warning: by disabling this validation, the files obtained could contain errors.</p></td></tr><tr><td valign="top">3</td><td valign="top">Separator hyphen</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">85</td><td valign="top">Optional</td><td valign="top">Hyphen</td></tr><tr><td valign="top">3</td><td valign="top">TGSS header</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">86</td><td valign="top">Optional</td><td valign="top"><p>Optional. If this field is not present, the default option is N</p><p>Value:</p><p>T This is a TGSS conversion with FF</p><p>N Normal SEPA conversion (not TGSS)</p><p>Warning: by activating this parameter, all 34.14s that enter the converter will be considered TGSS and it will try to put the header.</p><p>**Automatic confirmation will not be generated even if indicated in this type 3 record file.</p></td></tr><tr><td valign="top">2</td><td valign="top">Type 1 records</td><td valign="top"></td><td valign="top"></td><td valign="top"></td><td valign="top"></td><td valign="top">Data for transformation from FLAT FILE to XML</td></tr><tr><td valign="top">3</td><td valign="top">Separator hyphen</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">2</td><td valign="top">Optional</td><td valign="top">Hyphen</td></tr><tr><td valign="top">3</td><td valign="top">Output file DSNAME (DNSMAME of the XML)</td><td valign="top">Alphanumeric</td><td valign="top">1-44</td><td valign="top">3</td><td valign="top">Required-optional</td><td valign="top"><p>DSNAME of the XML transformed file. In this case, as there may be several transformed files</p><p>1.- Variables known by Editran can be used, for example, Origin, Destination, Application, YEAR, MONTH, DAY, SOURCE DSNAME, etc. (See Table 3)</p><p>2.- A fixed name can be used</p><p>3.-If nothing is indicated (spaces), Editran creates output files with the name: DSN-ENTRADA.XML. This is the recommended option, since the converter will automatically create a file list, which will be loaded by Editran, so that profiles do not have to be modified.</p></td></tr><tr><td valign="top">3</td><td valign="top">Separator hyphen</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">47</td><td valign="top">Optional</td><td valign="top">Hyphen</td></tr><tr><td valign="top">3</td><td valign="top">Source application file character table</td><td valign="top">Alphanumeric</td><td valign="top">18</td><td valign="top">48</td><td valign="top">Optional</td><td valign="top"><p>Name of the character table (encoding) in which the source file is found. If nothing is specified, the default table of the z/OS where it is running is used, as long as the param.alfabeto of Configuracion.properties is not parameterized. In the following link, the supported tables appear: <a href="https://docs.oracle.com/en/java/javase/11/intl/supported-encodings.html#GUID-D29CF3AD-FC0B-465F-8897-C38C0395AB02">https://docs.oracle.com/en/java/javase/11/intl/supported-encodings.html#GUID-D29CF3AD-FC0B-465F-8897-C38C0395AB02</a> </p><p>⚠️ In case the param.alfabeto option of Configuracion.properties is configured, it will take precedence over this parameter. </p></td></tr><tr><td valign="top"></td><td valign="top"></td><td valign="top"></td><td valign="top"></td><td valign="top"></td><td valign="top"></td><td valign="top"></td></tr><tr><td valign="top">3</td><td valign="top">Separator hyphen</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">66</td><td valign="top">Optional</td><td valign="top">Hyphen</td></tr><tr><td valign="top">3</td><td valign="top">Output file size</td><td valign="top">No.</td><td valign="top">12</td><td valign="top">67</td><td valign="top">Optional</td><td valign="top"><p>Size in bytes of the output file.</p><p>If nothing is specified, Editran creates by default an output file of 99,999 bytes.</p><p>If any value is specified, Editran calculates the space to allocate the output file as follows: it takes the value specified in bytes and divides it by the maximum record length of a variable (32752), in which the XML will remain.</p></td></tr><tr><td valign="top">3</td><td valign="top">Separator hyphen</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">79</td><td valign="top">Optional</td><td valign="top">Hyphen</td></tr><tr><td valign="top">3</td><td valign="top">Merge XML</td><td valign="top">No.</td><td valign="top">1</td><td valign="top">80</td><td valign="top">Optional</td><td valign="top"><p>Value:</p><p>S.- Whenever possible (creation date, ordering party/creditor identification, etc. match in all cases), unify all the information of each logical input into a single logical and physical XML output file.</p><p>N.- Obtain an output file with as many logical XML documents as the original has logical flat files.</p><p>The default value is S.</p></td></tr><tr><td valign="top">3</td><td valign="top">Separator hyphen</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">81</td><td valign="top">Optional</td><td valign="top">Hyphen</td></tr><tr><td valign="top">3</td><td valign="top">Output XML record length</td><td valign="top">No.</td><td valign="top">5</td><td valign="top">82</td><td valign="top">Optional</td><td valign="top"><p>Value:</p><p>Size of the record we want to give to the XML file generated by the converter.</p><p>Zeros, spaces or low-values as before</p><p>Default 27990</p></td></tr><tr><td valign="top">2</td><td valign="top">Type 2 records</td><td valign="top"></td><td valign="top"></td><td valign="top"></td><td valign="top"></td><td valign="top">Data for transformation from XML to FLAT FILE</td></tr><tr><td valign="top">3</td><td valign="top">Separator hyphen</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">2</td><td valign="top">Optional</td><td valign="top">Hyphen</td></tr><tr><td valign="top">3</td><td valign="top">Output file DSNAME (DNSMAME of the FLAT FILE)</td><td valign="top">Alphanumeric</td><td valign="top">1-44</td><td valign="top">3</td><td valign="top">Required-optional</td><td valign="top"><p>DSNAME of the transformed FLAT FILE. In this case, as there may be several transformed files:</p><p>1-Variables known by Editran can be used, for example, Origin, Destination, Application, YEAR, MONTH, DAY, SOURCE DSNAME, etc. (See table 3)</p><p>2.- A fixed name can be used</p><p>3.-If nothing is indicated (spaces) and the input file is called DSNAME.A.XML, an output flat file called DSNAME.A is created. In the event that you are used in Editran to putting DSNAME.A, change it to DSNAME.A.XML, because the final result will be the same as before. . RECOMMENDED OPTION</p><p>4.-If nothing is indicated (spaces) and the input file is called DSNAME.XML, the DSNAME.PLN file is created by default</p></td></tr><tr><td valign="top">3</td><td valign="top">Separator hyphen</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">47</td><td valign="top">Optional</td><td valign="top">Hyphen</td></tr><tr><td valign="top">3</td><td valign="top">Character table into which the flat file will be transformed</td><td valign="top">Alphanumeric</td><td valign="top">18</td><td valign="top">48</td><td valign="top">Optional</td><td valign="top"><p>Name of the character table into which the flat file should be transformed. If nothing is specified, the default table of the z/OS where it is running is used, as long as the param.alfabeto of Configuracion.properties is not parameterized. In the following link, the supported tables appear: <a href="https://docs.oracle.com/en/java/javase/11/intl/supported-encodings.html#GUID-D29CF3AD-FC0B-465F-8897-C38C0395AB02">https://docs.oracle.com/en/java/javase/11/intl/supported-encodings.html#GUID-D29CF3AD-FC0B-465F-8897-C38C0395AB02</a> </p><p>⚠️ In case the param.alfabeto option of Configuracion.properties is configured, it will take precedence over this parameter. </p></td></tr><tr><td valign="top">3</td><td valign="top">Separator hyphen</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">66</td><td valign="top">Optional</td><td valign="top">Hyphen</td></tr><tr><td valign="top">3</td><td valign="top">Output file size</td><td valign="top">No.</td><td valign="top">12</td><td valign="top">67</td><td valign="top">Optional</td><td valign="top"><p>Size in bytes of the output file.</p><p>If nothing is specified, Editran checks that it is a file list (usual option when downloading, as INPUT FILE OPTION = L, VIA PARM). In it, the bytes of the downloaded file appear</p><p>If the PARM option has INPUT FILE=F (option P not allowed for downloads), Editran creates by default an output file of 99,999 bytes</p><p>If you specify something, that takes precedence.</p></td></tr><tr><td valign="top">3</td><td valign="top">Separator hyphen</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">79</td><td valign="top">Optional</td><td valign="top">Hyphen</td></tr><tr><td valign="top">3</td><td valign="top">Reserved space</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">80</td><td valign="top">Optional</td><td valign="top"></td></tr><tr><td valign="top">2</td><td valign="top">Type 3 records</td><td valign="top"></td><td valign="top"></td><td valign="top"></td><td valign="top"></td><td valign="top">XML generation data with acceptance or rejection (direct debits-transfers)</td></tr><tr><td valign="top">3</td><td valign="top">Separator hyphen</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">2</td><td valign="top">Optional</td><td valign="top">Hyphen</td></tr><tr><td valign="top">3</td><td valign="top">Create CONF XML (Acc-Rej)</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">3</td><td valign="top">Required-optional</td><td valign="top"><p>Create CONF XML (Y/N), for acceptance or rejection (direct debits and transfers), depending on the XML received.</p><p>If N is indicated, a confirmation file is never created:</p><p>If S is indicated, a confirmation file is created **</p><p>(see DSNAME of the ACE/REJ XML)</p></td></tr><tr><td valign="top">3</td><td valign="top">Separator hyphen</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">4</td><td valign="top">Optional</td><td valign="top">Hyphen</td></tr><tr><td valign="top">3</td><td valign="top">Output file DSNAME (DNSMAME of the ACE/REJ XML)</td><td valign="top">Alphanumeric</td><td valign="top">1-44</td><td valign="top">5</td><td valign="top">Required-optional</td><td valign="top"><p>DSNAME of the XML file that contains the acceptance or rejection.</p><p>1.- If CREATE CONF XML = 'N' is indicated, whatever is in this field is ignored</p><p>2.- If CREATE CONF XML = 'S' is indicated</p><p>2.1- If DSNAME of the ACE/REJ XML = spaces, a confirmation XML is created, whose DSNAME = input XML.CNF</p><p>2.2- If DSNAME of the ACE/REJ XML contains a DSNAME, a confirmation XML is created with that DSNAME</p><p>If CREATE CONF XML='S'.</p><p>The resulting confirmation file will be the user's responsibility to load and issue:</p><p>Either by creating a file list with it (and matching what is indicated here).</p><p>Or by indicating it in the session profile as a file to issue.</p><p>It is also responsible for linking a loading procedure if applicable.</p></td></tr><tr><td valign="top">3</td><td valign="top">Separator hyphen</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">49</td><td valign="top">Optional</td><td valign="top">Hyphen</td></tr><tr><td valign="top">3</td><td valign="top">Create CONF XML with NIF</td><td valign="top">Alphanumeric</td><td valign="top">1</td><td valign="top">50</td><td valign="top">Optional</td><td valign="top"><p>Create CONF XML with NIF (Y/N), included in the OrgnlMsgId tag.</p><p>If N is indicated, the standard OrgnlMsgId will be generated</p><p>If S is indicated, a confirmation file is created with OrgnlMsgId nif+ standard</p></td></tr></tbody></table>

Example of content in ZTBGFDAT:

```
***************************** Top of Data ********************************************
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+-
0-                                                 111.022.033.444-00994-300-S-S-S-S-T
*0-                                                       pepito.es-00994-300-
1-%O.XML                                      -                  -            -N-03000
2-                                            -                  -            -   
3-S-%O.XML.CNF                                   -S                                   
***************************** Bottom of Data *****************************************
```

In the previous case:

* There is a type 0 record (java server connection data). The IP of the java server (z/OS USS) is 111.22.33.444, port 994. The TCP client waits a maximum of 5 minutes (300 seconds) for the server to resolve the process.
* Incorporates values in the free area of the flat file
* Keeps the output file if error
* Removes SEPA Spain validations
* Validates the XML in both directions
* This is a TGSS conversion with FF (it is recommended to create a special ZTBGFDAT for the conversion of TGSS 34.14s).
* There is a type 0 record (commented), the same, but in this case, a DNS is used.
* There is a type 1 record (data for the transformation from FLAT FILE to XML. It tells us (by not putting an output dsname), that if, for example, the flat file is called KI.PEPE, the XML file will be called KI.PEPE.XML. In addition, it is in the system language, so no character table is indicated. It also indicates that the application calculates the default output file size.
* There is a type 2 record (data for the transformation from XML to FLAT FILE. By not indicating anything in the transformed file name, if, for example, the XML is called KI.PEPE.XML, the output flat file will be called KI.PEPE (it removes .XML). If the XML is called KI.PEPE, the output flat file will be called KI.PEPE.PLN.
* It also indicates that the XML be validated against the Schema since no value has been included in the Validate XML field and the default value is S.
* In addition, it is in the system language, so no character table is indicated. It also indicates (by not putting anything) that if TIPO=FILE, \&TI=F, the application calculates the default output file size.
* Use of the free area of the records, in the example it uses this functionality since 'S' is indicated in the Free information parameter.
* Use of record size for the XML file generated by the converter, in this case it will be LRECL 3000.
* Keep the output file if error, in the example, in case of error in the converter, the generated output file will not be deleted.
* A confirmation file (acceptance or rejection) will be generated automatically.&#x20;
* If a name is entered that follows the same mechanics as that of records 1 and 2. The presenter's NIF will be included at the beginning in the confirmation file in the OrgnlMsgId tag.

### Use of the free area of the records

The use of some positions in the free areas of certain records in the flat-file format has been agreed with certain clients. The purpose is to read (flat file to XML) or write (XML to flat file) certain information in them that would otherwise be lost because no field is defined for it in the corresponding standard. This information is handled by client applications that only interpret flat-file formats and are usually used to generate confirmation files directly in XML format from them.

To use this functionality, ‘S’ must be indicated in the Free information parameter of the ZTBGFDAT file in the program call, since by default the converter does not perform it.

## XML to flat file

The values transferred from the XML-format file and the records and positions where they are placed in the flat-file format are described below. All those positions in the free areas that are not used with this functionality will remain blank.

### Issuance of transfers and cheques:

The content of:

* \<GrpHdr>\<MsgId> to position 290 of the payer header record.
* \<PmtInf>\<DbtrAcct>\<Ccy> to position 325 of the payer header record, provided the value is different from “EUR”.
* \<GrpHdr>\<InitgPty>\<Id>\<OrgId>\<Othr>\<Id> to position 328 of the payer header record.
* “XML” is written in position 598 of the payer header record.
* \<PmtInf>\<PmtInfId> to position 23 of the SEPA transfers header records, other transfers or cheques, depending on the type of block from which the data comes.
* The value of the Ccy attribute of \<PmtInf>\<CdtTrfTxInf>\<Amt>\<InstdAmt Ccy="XXX"> or of \<PmtInf>\<CdtTrfTxInf>\<Amt>\<EqvAmt>\<Amt Ccy="XXX">, provided it is different from “EUR”, in position 502 of the first mandatory beneficiary record if the source block is a SEPA Transfer or in position 333 of the same record if the source block is of the Other Transfers type.
* \<PmtInf>\<CdtTrfTxInf>\<Amt>\<EqvAmt>\<CcyOfTrf> to position 505 of the first mandatory beneficiary record if the source block is a SEPA Transfer or to position 336 of the same record if the source block is of the Other Transfers type.
* \<PmtInf>\<CdtTrfTxInf>\<XchgRateInf>\<XchRate> to position 508 of the first mandatory beneficiary record if the source block is a SEPA Transfer or to position 339 of the same record if the source block is of the Other Transfers type.
* \<PmtInf>\<CdtTrfTxInf>\<XchgRateInf>\<RateTp> to position 521 of the first mandatory beneficiary record if the source block is a SEPA Transfer or to position 352 of the same record if the source block is of the Other Transfers type.
* \<PmtInf>\<CdtTrfTxInf>\<XchgRateInf>\<CtrctId> to position 525 of the first mandatory beneficiary record if the source block is a SEPA Transfer or to position 356 of the same record if the source block is of the Other Transfers type.
* \<GrpHdr>\<CtrlSum> to position 41 of the \[General total record] if it contains 18 digits.
* \<GrpHdr>\<NbOfTxs> to position 59 of the \[General total record] if it contains more than 8 digits.
* \<PmtInfId>\<CtrlSum> to position 41 of the \[SEPA transfer total record], \[Other transfer total record] or \[Cheque total record], as applicable by block type, when it contains 18 digits.
* \<PmtInfId>\<NbOfTxs> to position 59 of the \[SEPA transfer total record], \[Other transfer total record] or \[Cheque total record], as applicable by block type, when it contains more than 8 digits.
* \<SchmeNm>\<Prtry> (for both legal entity and natural person) to positions 405-440 of the \[Optional Third Beneficiary Record].

### Direct debits (basic and B2B schemes):

* “XML” is written in position 598 of the presenter header record.
* Submissions, the content of:
  * \<GrpHdr>\<Authstn>\<Prtry> to position 167 of the \[Presenter header record].
  * \<PmtInf>\<PmtInfId> to position 300 of the \[Creditor header record by collection date].
  * \<PmtInf>\<BtchBookg> to position 335 of the \[Creditor header record by collection date] according to the following conversion: if it contains true, 0 is written, and if it contains false, 1 is written.
  * Basic scheme only: \<DrctDbtTxInf>\<PmtId>\<InstrId> to position 365 of the \[Optional Second Individual Record].
  * Basic scheme only: \<OrgnlDbtrAgt>\<FinInstnId>\<BIC> or \<OrgnlDbtrAgt>\<FinInstnId>\<Othr>\<Id> to field 10 together with the first 6 positions of the free field that follows it in the \[Optional Fourth Individual Record].
  * \<DrctDbtTxInf>\<MndtRltdInf>\<ElctrncSgntr> to two new optional individual records that are written after the last existing optional individual record. The first of them has data number “507” and includes the first 525 positions of the tag value, ending with 65 free positions. The second has data number “508” and includes the next 500 positions of the tag value, ending with 90 free positions.
  * \<PmtInf>\<CtrlSum> to position 81 of the \[Creditor total record by collection date]. It will be used to capture amounts of 18 digits in total (the flat-file standard allows up to 17).
  * \<PmtInf>\<NbOfTxs> to position 99 of the \[Creditor total record by collection date]. It will be used to capture individual record counts whose value exceeds the 8 digits allowed by the flat-file format.
* Rejections, originator information. 11 positions from the content of the first of the following tags found in the file are transferred:
  * \<OrgnlGrpInfAndSts>\<StsRsnInf>\<Orgtr> \<Id>\<OrgId>\<BICorBEI> or \<OrgnlGrpInfAndSts>\<StsRsnInf>\<Orgtr>\<Nm> or
  * \<OrgnlPmtInfAndSts>\<StsRsnInf>\<Orgtr>\<Id>\<OrgId>\<BICorBEI> or
  * \<OrgnlPmtInfAndSts>\<StsRsnInf>\<Orgtr>\<Nm> or
  * \<OrgnlPmtInfAndSts>\<TxInfAndSts>\<StsRsnInf>\<Orgtr>\<Id>\<OrgId>\<BICorBEI> or
  * \<OrgnlPmtInfAndSts>\<TxInfAndSts>\<StsRsnInf>\<Orgtr>\<Nm> to position 586 of each \[First individual record].
* Chargebacks, the content of:
  * \<OrgnlPmtInfAndRvsl>\<OrgnlCtrlSum> to position 81 of the \[Creditor total record by collection date]. It will be used to capture amounts of 18 digits in total (the flat-file standard allows up to 17).
  * \<OrgnlPmtInfAndRvsl>\<OrgnlNbOfTx> to position 99 of the \[Creditor total record by collection date]. It will be used to capture individual record counts whose value exceeds the 8 digits allowed by the flat-file format.
* Submissions and chargebacks, the content of:
  * \<GrpHdr>\<CtrlSum> to position 38 of the \[General total record]. It will be used to capture amounts of 18 digits in total (the flat-file standard allows up to 17).
  * \<GrpHdr>\<NbOfTxs> to position 56 of the \[General total record] if the amount exceeds the 8 digits allowed by the flat-file format.
* Rejections and returns, the content of:
  * \<OrgnlPmtInfAndSts>\<OrgnlCtrlSum> to position 81 of the \[Creditor total record by collection/return date]. It will be used to capture amounts of 18 digits in total (the flat-file standard allows up to 17).
  * \<OrgnlPmtInfAndSts>\<OrgnlNbOfTx> to position 99 of the \[Creditor total record by collection/return date]. It will be used to capture individual record counts whose value exceeds the 8 digits allowed by the flat-file format.
  * \<OrgnlGrpInfAndSts>\<OrgnlCtrlSum> to position 38 of the \[General total record]. It will be used to capture amounts of 18 digits in total (the flat-file standard allows up to 17).
  * \<OrgnlGrpInfAndSts>\<OrgnlNbOfTxs> to position 56 of the \[General total record]. It will be used to capture individual record counts whose value exceeds the 8 digits allowed by the flat-file format.

## Flat file to XML

For its part, when the client generates the flat-file files, it may make use of certain free areas to store information there that would otherwise be impossible to transfer to the XML file resulting from the conversion. They are as follows:

### Issuance of transfers and cheques:

The content of:

* 70 positions, starting at position 290, from the Ordering Party Header to \<InitgPty>\<Nm>. This functionality is used to be able to transform several flat logical files with different ordering party names into a single XML.
* 4 positions, starting at position 360, from the Ordering Party Header to as many \<PmtInf>\<PmtInfId> elements as need to be built in the resulting XML file. This mapping makes it possible to report and preserve this concept (which is not covered by either format) so that it can be returned in the bank statements sent by La Caixa (AEB 43).
* 12 positions, starting at position 364, from the Ordering Party Header to \<InitgPty>\<Id>\<OrgId> or to \<InitgPty>\<Id>\<PrvtId>, as applicable. This functionality is used to be able to convert several flat logical files that do not match in the ordering party identifiers into a single XML file, this being the Presenter Id to be reported.
* When the value H is found in position 23 of the \[SEPA Transfers Header Record], \<PmtInf>\<PmtTpInf>\<InstrPtry> will be filled with the code HIGH in the resulting XML file.
* 18 positions, starting at position 41 of the \[General total record], to \<GrpHdr>\<CtrlSum>. It will be used to capture amounts of 18 digits in total (the flat-file standard allows up to 17).
* 15 positions, starting at position 59 of the \[General total record], to \<GrpHdr>\<NbOfTxs>. It will be used to capture individual record counts whose value exceeds the 8 digits allowed by the flat-file format.
* 18 positions, starting at position 41 of the \[SEPA transfer total record], \[Other transfer total record] or \[Cheque total record], as applicable by block type, to \<PmtInfId>\<CtrlSum>. It will be used to capture amounts of 18 digits in total (the flat-file standard allows up to 17).
* 15 positions, starting at position 59 of the \[SEPA transfer total record], \[Other transfer total record] or \[Cheque total record], as applicable by block type, to \<PmtInfId>\<NbOfTxs>. It will be used to capture individual record counts whose value exceeds the 8 digits allowed by the flat-file format.

### Direct debits (basic and B2B schemes):

Submissions, the content of:

* Basic scheme only: the content of field 10 together with the first six positions of the free field of the \[Optional Fourth Individual Record] to \<OrgnlDbtrAgt>>\<FinInstnId>\<BIC> if it is a BIC, or to \<OrgnlDbtrAgt>\<FinInstnId>\<Othr>\<Id> in any other case.
* 18 positions, starting at 81, of the \[Creditor total record by collection date] to \<PmtInf>\<CtrlSum>. It will be used to capture amounts of 18 digits in total (the flat-file standard allows up to 17).
* 15 positions, starting at 99, of the \[Creditor total record by collection date] to \<PmtInf>\<NbOfTxs>. It will be used to capture individual record counts whose value exceeds the 8 digits allowed by the flat-file format.

Rejections, the content of:

* 11 positions, starting at position 167, of the \[Presenter header] record to \<OrgnlGrpInfAndSts>\<StsRsnInf>\<Orgtr> \<Id>\<OrgId>\<BICorBEI> if it is a BIC, or to \<OrgnlGrpInfAndSts>\<StsRsnInf>\<Orgtr>\<Nm> if it is not.
* 4 positions, starting at position 178, of the \[Presenter header] record to \<OrgnlGrpInfAndSts>\<StsRsnInf>\<Rsn>\<Cd>
* 11 positions, starting at position 370, of the \[Creditor header record by collection date], to \<OrgnlPmtInfAndSts>\<StsRsnInf>\<Orgtr>\<Id>\<OrgId>\<BICorBEI> if it is a BIC, otherwise to \<OrgnlPmtInfAndSts>\<StsRsnInf>\<Orgtr>\<Nm>
* 4 positions, starting at position 381, of the \[Creditor header record by collection date], to \<OrgnlPmtInfAndSts>\<StsRsnInf>\<Rsn>\<Cd>
* 11 positions, starting at position 586, of the \[First individual record] to \<OrgnlPmtInfAndSts>\<TxInfAndSts>\<StsRsnInf>\<Orgtr>\<Id>\<OrgId>\<BICorBEI> if it is a BIC, otherwise to \<OrgnlPmtInfAndSts>\<TxInfAndSts>\<StsRsnInf>\<Orgtr>\<Nm>

Chargebacks, the content of:

* 18 positions, starting at 81, of the \[Creditor total record by collection date] to \<OrgnlPmtInfAndRvsl>\<OrgnlNbOfTx>. It will be used to capture amounts of 18 digits in total (the flat-file standard allows up to 17).
* 15 positions, starting at 99, of the \[Creditor total record by collection date] to \<OrgnlPmtInfAndRvsl>\<OrgnlNbOfTx>. It will be used to capture individual record counts whose value exceeds the 8 digits allowed by the flat-file format.

Submissions and chargebacks, the content of:

* 18 positions, starting at 38, of the \[General total record] to \<GrpHdr>\<CtrlSum>. It will be used to capture amounts of 18 digits in total (the flat-file standard allows up to 17).
* 15 positions, starting at 56, of the \[General total record] to \<GrpHdr>\<NbOfTxs>. It will be used to capture individual record counts whose value exceeds the 8 digits allowed by the flat-file format.

Rejections and returns, the content of:

* 35 positions, starting at position 335, of the \[Creditor header record by collection date] to \<OrgnlPmtInfAndSts>\<OrgnlPmtInfId>.
* 18 positions, starting at position 81, of the \[Creditor total record by collection/return date] to \<OrgnlPmtInfAndSts>\<OrgnlNbOfTx>. It will be used to capture amounts of 18 digits in total (the flat-file standard allows up to 17).
* 15 positions, starting at position 99, of the \[Creditor total record by collection/return date] to \<OrgnlPmtInfAndSts>\<OrgnlNbOfTx>. It will be used to capture individual record counts whose value exceeds the 8 digits allowed by the flat-file format.
* 18 positions, starting at position 38, of the \[General total record] to \<OrgnlGrpInfAndSts>\<OrgnlCtrlSum>. It will be used to capture amounts of 18 digits in total (the flat-file standard allows up to 17).
* 15 positions, starting at position 56, of the \[General total record] to \<OrgnlGrpInfAndSts>\<OrgnlNbOfTxs>. It will be used to capture individual record counts whose value exceeds the 8 digits allowed by the flat-file format.

Returns, the content of:

*An \[Optional Second Individual Record] is provided, which will start with 2319143004. This record does not exist in the standard, but it is necessary to store the information detailed below, which cannot be mapped to the \[mandatory first individual record] because it does not have enough space in the free field.*

* 35 positions starting at position 11, from the \[Optional Second Individual Record] to the \<TxInfAndSts>\<StsId> tag
* 35 positions starting at 46, from the \[Optional Second Individual Record], to the \<TxInfAndSts>\<OrgnlInstrId> tag
* 105 positions, starting at 81, from the \[General total record] to \<OrgnlGrpInfAndSts>\<StsRsnInf>< AddtlInf>.

The converter will first look for this information in the free fields. If they are empty, the mapping will be performed as is usually done for each of those fields.

### Confirmation or rejection record for debits and transfers:

§ If the user indicates it, (type 3 record), when downloading the XML, a confirmation or rejection XML file is generated in certain cases, which can automatically be chained with an Editran procedure to generate the automatic response (Xml to Flat conversions of standards 3414 and 19 of type Submissions).

* If it is possible to download the XML, an acceptance file is generated (even if there is a warning in the XML download)
* If it is not possible to download the XML, a rejection file is generated. Example:

PAIN002. Starting from the data in the flat or XML file record 01 and 99, an XML would be generated

> (ACCP - RECEIPT AND CORRECT VALIDATION or RJCT - REJECTED) with certain data that came in the original XML:
>
> ```xml
> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>                       
> <Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.002.001.03">             
>     <CstmrPmtStsRpt>                                                          
>         <GrpHdr>                                                              
>             <MsgId>B0081.S0901.F130314.P0120140311</MsgId>                    
>             <CreDtTm>2014-03-14T11:30:00</CreDtTm>                            
>             <InitgPty>                                                         
>                 <Nm>TELEFONICA DE ESPANA, S.A.</Nm>                           
>             </InitgPty>                                                       
>         </GrpHdr>                                                              
>         <OrgnlGrpInfAndSts>                                                   
>             <OrgnlMsgId>B0081.S0901.F130314.P0120140311</OrgnlMsgId>          
>             <OrgnlNbOfTxs>0000023448</OrgnlNbOfTxs>                            
>             <OrgnlCtrlSum>1246067.16</OrgnlCtrlSum>                           
>             <GrpSts>ACCP</GrpSts>                                             
>         </OrgnlGrpInfAndSts>                                                  
>     </CstmrPmtStsRpt>                                                         
> </Document>                                                                   
> ```

* The list of variables known to the application is as follows (Table 3):

<table data-header-hidden><thead><tr><th width="95.48150634765625" valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top">Variable</td><td valign="top">Meaning</td></tr><tr><td valign="top">%O</td><td valign="top">DSN at source</td></tr><tr><td valign="top">%E</td><td valign="top">Decade</td></tr><tr><td valign="top">%Y</td><td valign="top">Last digit of the year</td></tr><tr><td valign="top">%A</td><td valign="top">Last two digits of the year (yy)</td></tr><tr><td valign="top">%M</td><td valign="top">Month in two digits (mm)</td></tr><tr><td valign="top">%X</td><td valign="top">Month in one character (1,2,3,4,5,6,7,8,9,O,N,D)</td></tr><tr><td valign="top">%D</td><td valign="top">Day of the month (dd)</td></tr><tr><td valign="top">%H</td><td valign="top">Time (hhmmss)</td></tr><tr><td valign="top">%C</td><td valign="top">Order number of the received file (nn)</td></tr><tr><td valign="top">%K</td><td valign="top">Order number of the received file (nnnn)</td></tr><tr><td valign="top">%R</td><td valign="top">The last 7 characters of the remote endpoint code</td></tr><tr><td valign="top">%P</td><td valign="top">Application code</td></tr></tbody></table>

* If the parameter is specified with NIF, the confirmation file will carry the OrgnlMsgId tag with the NIF in the first positions.

Example of content in ZTBGFDAT:

```
***************************** Top of Data ********************************************
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+-
0-                                                 111.022.033.444-00994-300-S-S-
*0-                                                       pepito.es-00994-300-
1-%O.XML                                      -                  -            - -03000
2-                                            -                  -            -   
3-S-%O.XML.CNF                                                                     
***************************** Bottom of Data *****************************************
```

In the previous case:

* There is a type 0 record (java server connection data). The IP of the java server (z/OS USS) is 111.22.33.444, port 994. The TCP client waits a maximum of 5 minutes (300 seconds) for the server to resolve the process.
* There is a type 0 record (commented), the same, but in this case, a DNS is used.
* There is a type 1 record (data for the transformation from FLAT to XML). It tells us (by not specifying the output dsname) that, for example, if the flat file is called KI.PEPE, the XML file will be called KI.PEPE.XML. Also, it is in the system language, so no character table is specified. It also indicates that the application calculates the default output file size.There is a type 2 record (data for the transformation from XML to FLAT). By not indicating anything in the transformed file name, for example, if the XML is called KI.PEPE.XML, the output flat file will be called KI.PEPE (it removes .XML). If the XML is called KI.PEPE, the output flat file will be called KI.PEPE.PLN.
* It also indicates that the XML be validated against the Schema since no value has been included in the Validate XML field and the default value is S.
* In addition, it is in the system language, so no character table is indicated. It also indicates (by not putting anything) that if TIPO=FILE, \&TI=F, the application calculates the default output file size.
* Use of the free area of the records, in the example it uses this functionality since 'S' is indicated in the Free information parameter.
* Use of record size for the XML file generated by the converter, in this case it will be LRECL 3000.
* Keep the output file if error, in the example, in case of error in the converter, the generated output file will not be deleted.
* A confirmation file (acceptance or rejection) will be generated automatically. If a name is entered that follows the same mechanism as that of records 1 and 2.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.editran.onesait.com/documentacion-editran/ibm-editran-v5.3-comun-z-os-en/editran-sepa/descripcion-de-la-funcionalidad/datos-de-entrada-salida-para-los-conversores.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
