> 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/requisitos-e-instalacion/instalacion.md).

# Installation

## CICS <a href="#toc160121845" id="toc160121845"></a>

If an Editran/CICS license is received:

* License (if this functionality is contracted). To install it, you must run the ZTBLJG02 JCL.
* CICS executables: ZTBPOIF5.
* Batch executables: ZTBXBXML, ZTBXBITS, ZTBGBGPG and ZTBLBLLI.
* Procedures: ZTBGP1X and ZTBGP4X
* JCLs: ZTBXJXML

## IMS

If an Editran/IMS license is received.

* License (if this functionality is contracted). To install it, you must run the ZTBLJG02 JCL.
* Batch executables: ZTBXBXML, ZTBXBITS and ZTBGBGPG
* Procedures: ZTBGP1X and ZTBGP4X
* JCLs: ZTBGJXML

## Common z/OS (user data file) <a href="#toc160121847" id="toc160121847"></a>

The user must create a file (or files), ZTBGFDAT, with certain parameters to pass to the converter (detailed in this document).

## Common z/OS (JAVA) <a href="#toc160121848" id="toc160121848"></a>

For the installation, the following actions will be carried out:

<details>

<summary>Software download.</summary>

Go to the website <https://www.onesait.com/editran> and select Resources. Go to IBM z/OS and in the section **Additional Modules** download the Editran SEPA software.

<figure><img src="https://801476230-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUu0lfTrLp38KT1UbRdFs%2Fuploads%2Fps3TN3nZQVxC5uN7czp5%2Fimage.png?alt=media&amp;token=a246d27a-1b8c-491d-b809-469e46a50579" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>Insertion of the package into the z/OS UNIX services.</summary>

Send, in binary mode, the sepa-zos.V\*.tar package to USS. You can use any file transfer utility, such as *ftp.*

As an example, it can be uploaded as follows:

* cmd
* ftp
* open destination IP (will prompt for tso user and password)
* cd /u/editranxsepa/SEPAv350 (destination directory where we will upload the application).
* binary (binary ftp)
* lcd c:\ (source directory where the .tar is located)
* put EDITRANSepa.tar&#x20;
* quit (exit)

<figure><img src="https://801476230-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUu0lfTrLp38KT1UbRdFs%2Fuploads%2FbtfN1idZQ6zooZbSQkPA%2Fimage.png?alt=media&amp;token=8fc425ac-b76d-495c-86ef-df79cbd465e8" alt=""><figcaption></figcaption></figure>

We can see that it remains in the USS directory.

```
/u/editranxsepa/SEPAv350: >ls -l
-rw-r-----+  1 KI63A23  KISNCE   9338880 Feb  3 12:15 sepa-zos.V2.43-2022-09-07.tar
```

</details>

<details>

<summary>Package installation</summary>

Unzip the file sepa-zos.V\*.tar in the installation folder created for this purpose. You can use the command tar -xof sepa-zos.V\*.tar

Leaving the following directory structure from this point:

```
|--conf
|--lib
|--logs
|--scripts
```

</details>

<details>

<summary>Script configuration</summary>

* The Editran/SEPA scripts are located in the scripts folder. First, we should check that the files checkLic.sh, start.sh and stop.sh have execution permissions.
* The checkLic.sh program is run from the directory where this file is located. It tells us whether we have a license file, whether it is correct, and if we do not have a file it tells us the hostId and the name of the OS with which we must request a license from product support. Once the license file is received in ASCII, it must be sent to USS in EBCDIC.
* Next, edit the start.sh and starSeparador.sh file and set the following variables:

<pre><code><strong>PWD=/u/editranxsepa/SEPAv350 (installation path, where it has been unpacked)
</strong>cd ${PWD}                                         
IP="172.22.242.193"            (IP on which the server starts)
PORT="7775"                    (port on which the server is listening)  
JAVA_HOME="/usr/lpp/java/J8.0_64"    (java installation path) 
LOGOUT="/dev/null"                        
</code></pre>

* Later, edit the stop.sh and stopSeparador.sh file, setting the following variables

`PWD=/u/editranxsepa/SEPAv350 (installation path, where it has been unpacked)`

* Once this is done, it is now possible to start the application by running the command:

<pre><code><strong>./start.sh
</strong></code></pre>

* To check that the server has started correctly after running the command, edit the logs/out.log file, and it should have the following traces (the port and IP should show the ones configured in the file):

```
17/04/2012 11:16:40,013 8530 INFO [main] servers.ThreadPooledServer main - Starting Server
17/04/2012 11:16:40,031 8548 INFO [Thread-3] servers.ThreadPooledServer openServerSocket - Port: 7774
17/04/2012 11:16:40,033 8550 INFO [Thread-3] servers.ThreadPooledServer openServerSocket - LocalSocketAddress:/192.168.172.88:7775
17/04/2012 11:16:40,035 8552 INFO [Thread-3] servers.ThreadPooledServer openServerSocket - InetAddress:/192.168.172.88
```

</details>

* conf directory configuration:

There are three files in the conf directory, which are detailed below:

<details>

<summary>Configuracion.properties (Optional for versions earlier than Java 11).</summary>

It defines certain optional parameters of the Editran/SEPA program. In z/OS this file is not used because these are JCL parameters. If JAVA is called directly, at least the machine language must be specified.

The different parameters that can be configured are:

* param.lenguaje (Machine language): Can be ‘A’ (ASCII) or ‘E’ (EBCDIC); by default it should be disabled and let the Editran/SEPA converter calculate it automatically.
* param.alfabeto (Alphabet): Defines the character set (*charset*) used for reading or writing the flat file during the conversion process. The minimum supported Java version is **Java 8**.\
  The permitted values correspond to the *charset* supported by the Java platform according to the runtime version (for example, those defined for Java 8 and Java 11 in the official documentation). It can be consulted for Java 11 at the following [web](https://docs.oracle.com/en/java/javase/11/intl/supported-encodings.html#GUID-187BA718-195F-4C39-B0D5-F3FDF02C7205).\
  If no explicit configuration is provided, the *charset* default of the machine where the application runs will be used.\
  ⚠️For Java 11 and above it is mandatory to explicitly specify the encoding parameter, and it is not recommended to rely on the system *charset* default. For example, param.alfabeto=IBM-1047 can be specified.
* param.validar.xml (Validate XML): used to indicate whether the XML should be validated against its schema, with possible values S (Always validate), P (validate only in XML to Flat conversions), X (validate only from Flat to XML) or N (Never validate). The default value is S. Warning: by disabling this validation, the files obtained could contain errors.
* param.info.libre (Information in free field): In an XML to Flat conversion there are certain non-convertible fields, and this field is used to include this information in the free area of the flat file. The information written in the free area is explained in another section of the manual. Its value can be ‘S’ (Yes) or ‘N’ (No), by default not writing in the free field.
* param.mantener.salida (Keep output file in case of error): In an incorrect conversion the output file is not created because its value is invalid. This field indicates whether we want to keep the output file even if the conversion was incorrect, with possible values "S" to keep it and "N" to delete it. By default the output file is deleted.
* param.resp.auto (Automatic response message): This field is used to generate response messages when certain SEPA rules are received, although it can only be used for XML to Flat conversions of rules 3414 and 19 of the Presentations type, in which this file is generated. The value of this field is the name of the automatic response file. By default the response file is not created.
* param.quitar.validaciones (Remove validations): To use this parameter you must have a license for it, since it is a field developed specifically on request. It is used to ignore mandatory XML validations that are not imposed by the XSD schema, but by the SEPA Spain standard. The field can be set to "S" to ignore the mandatory validations required by SEPA Spain for XML and "N" to validate the SEPA Spain standard. By default it does not ignore them.
* param.juntar.xml (Join XML): this parameter allows defining the behavior of the converter when transforming input files in flat format that include more than one logical file. There are two possibilities:&#x20;
  * a) whenever possible (they match in everything, creation date, debtor/creditor identification, etc.), unify all the information of each input logical file into a single logical and physical output XML file. For this option, value S will be configured.&#x20;
  * b) obtain an output file with as many logical XML documents as the original has logical flat-format files. For this option, value N will be indicated. The default value is S. Warning: to configure the parameter with value N it is essential to have the corresponding license (see the section of this manual).
* param.cabecera (Transmission Header): for XML to flat conversions of standard 34-14, this parameter indicates whether an additional header should be included at the beginning of the resulting file. The possible values of the parameter are T to write the header of the General Treasury of the Social Security and N not to do so, this being the default value. When this parameter has value T, the converter ignores the param.resp.auto parameter for XML 34-14 files.

</details>

<details>

<summary>Entidades.properties (Optional).</summary>

The use of this file is optional and it configures an extra data source necessary for the conversion from flat format to XML to be complete and correct. When this file is not defined, or the data sought is not found, the corresponding XML format tags will remain empty or with the literal “NOTPROVIDED” as allowed by the standard in each case.

Specifically, it allows providing the BIC of the debtor entity for the transfer ISO standard, as well as the BIC of the creditor entity for the debit ISO standard. As many entities as necessary can be added to the list.

The file will contain exclusively relationships between BIC codes and the pair of numbers “entity + branch” to which they correspond. For Spanish entities, the indicated “entity + branch” number will be searched in positions 4 to 11, counting from 0, of the IBAN accounts (starting with "ES") corresponding to the party whose BIC is to be reported (creditor for debits and debtor for transfers) in the corresponding records of the flat-format file.

Location example: ES0001234567000000000000

Initial file content:

```
#Example
#bic.0=ABCDEFGHXXX
#entyof.0=01234567
 
bic.1=
entyof.1=
 
bic.2=
entyof.2=
```

The four digits of the branch can be replaced by the ‘\*’ mask to associate all branches of an entity with the same BIC.

```
#entyof.0=01234567    --->  EntityBranch
#entyof.0=0123*       --->  Entity*
```

Likewise, the file can also be used with Portuguese accounts.

</details>

<details>

<summary>log4j2.properties.</summary>

This is the information about the log characteristics. By default, the log is configured so that for each file conversion two log records are generated located in the folder *logs*, one in the general Editran/SEPA log called *out.log* and another specific one for each file with a name equal to its input file.

This file is editable so that it can be adapted to what the client may request. For example, if we want to perform the following operations:

* Disable some log: We can disable the EDISEPAFICHERO log by adding # to all lines in block 2.
* Edit the general log: We can modify the log name (appender.rolling.name), its maximum size (appender.rolling.policies.size.size) or the number of historical files kept (appender.rolling.strategy.max)
* Add one or more logs: If you want to do this task, you should follow the log4j logging configuration according to your criteria.

Initial file content:

```
## Lines beginning with ## identify comments. ## must not be deleted.
## To disable a line, prepend #; to enable it, remove #.
 
## Block 1) must be active, blocks 2) and 3) are optional.
## To deactivate any of them, prepend # to all lines
## in the block. To activate it, remove # from all lines in the block.
 
## status parameter: assign debug or trace if initialization
## of the log fails.
status = info
name = LogConfigEditranSEPA
 
## 1) GENERAL LOG CONFIGURATION: accumulates the information of all
## conversions performed with the installation.
appender.rolling.type = RollingFile
appender.rolling.name = EDISEPAGENERAL
appender.rolling.fileName = logs/out.log
appender.rolling.filePattern = logs/out.%i.log
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d{dd/MM/yyyy HH:mm:ss,SSS} %5r %-5p [%t] %c{2} %M - %m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
## appender.rolling.policies.size.size: with the assigned value the
## log size can be modified.
appender.rolling.policies.size.size = 2000KB
appender.rolling.strategy.type = DefaultRolloverStrategy
## appender.rolling.strategy.max: with the assigned value it is possible to
## modify the number of historical log files kept.
appender.rolling.strategy.max = 5
 
## rootLogger.level: assign debug or trace to obtain more information
## about the errors produced.
rootLogger.level = info
rootLogger.appenderRef.rolling.ref = EDISEPAGENERAL
 
## 2) PARTICULAR LOG CONFIGURATION FOR EACH FILE
appender.file.type = File
appender.file.name = EDISEPAFICHERO
## appender.file.fileName: its real value is assigned by code so that it
## includes the real name of the file to be converted.
appender.file.fileName = logs/nombreFichero.log
appender.file.layout.type = PatternLayout
appender.file.layout.pattern = %d{dd/MM/yyyy HH:mm:ss,SSS} %-5p - %m%n
appender.file.append = false
 
logger.file.name = com.indra.mmdd.editran.parser
## logger.file.level: assign debug or trace to obtain more information
## about the errors produced.
logger.file.level = info
logger.file.appenderRefs = File
logger.file.appenderRef.file.ref = EDISEPAFICHERO
 
## 3) CONFIGURATION FOR SENDING ERRORS BY EMAIL.
## Only acts when there is an error.
## By default, sending errors by email is disabled.
#appender.smtp.type = SMTP
#appender.smtp.name = EDISEPAEMAIL
## In the following six parameters, replace the example values to the
## right of '=' with the actual ones corresponding to both the SMTP server
## and the sender and recipient users of the emails.
#appender.smtp.smtpHost = smtp.dominio
#appender.smtp.smtpPort = 25
#appender.smtp.smtpUsername = usuarioautenticadoSMTP@dominio
## The password of the account from which the emails will be sent will appear
## in clear text. To avoid this, configure an account that does not require it.
#appender.smtp.smtpPassword = contraseC1ausuarioautenticadoSMTP
#appender.smtp.from = usuarioremitente@dominio
#appender.smtp.to = usuariodestinatario@dominio
#appender.smtp.subject = Editran/SEPA conversion error
#appender.smtp.buffersize = 50
#appender.smtp.layout.type = PatternLayout
#appender.smtp.layout.pattern = %d{dd/MM/yyyy HH:mm:ss,SSS} %-5p - %m%n
#appender.smtp.smtpProtocol = smtp
## appender.smtp.smtpDebug: assign true to get a trace if there are
## problems sending emails.
#appender.smtp.smtpDebug = false
 
#logger.smtp.name = com.indra.mmdd.editran.parser
#logger.smtp.level = info
#logger.smtp.appenderRefs = SMTP
#logger.smtp.appenderRef.smtp.ref = EDISEPAEMAIL
```

</details>


---

# 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/requisitos-e-instalacion/instalacion.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.
