Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Splitfilesystem V2

The files are stored within a filesystem in Base32 coded structures. The whole path is base 32 coded and divided into blocks.

Code Block
C:\Doc_Base\FI\FZVW\O4Y\OJQX\O\GIYD\EMZQ\G4YT\GXZW\GEYW\GZJQ\G44C\2MRZ\GE2S\2NBS\GNSC\2OBR\HEYC\2YZX\GJSD\IMBT\GM3W\MZRZ\L5XG

The metadata and properties of the archived document are stored in a .info-File as JSON.

Code Block
{
  "properties": {
    "contentDigestAlgorithm": "MD5",
    "creationUser": "LOCAL SERVICE",
    "creationTime": "2023-07-13T07:03:50.867280400Z[UTC]",
    "propertyLayoutVersion": "V02.00",
    "modificationTime": "2023-07-13T08:03:37.406140Z[UTC]",
    "modificationUser": "LOCAL SERVICE",
    "objectName": "20230713_611ce078-2915-423d-8190-c72d40337ff9_node",
    "contentLength": "1127",
    "repository": "FI",
    "contentDigest": "68FAB75EC1AC8D2820068CC95FAA5EDE",
    "contentStreamLength": "1127",
    "archiveLinkVersion": "0046"
  }
}

Configurationparameters within the repository.cfg file

In order to store documents on a filesystem parameters have to be defined within the repository.cfg file. In general the file is stored in the folder:

Code Block
<Tomcat folder>\webapps\<name of the webapp>\WEB-INF\classes\config

A small sample of a repository.cfg file:

...

The latest version of split file system is V3. As latest release, it is recommended for new installations and when setting up new content services.

The table below illustrates the main differences of the different versions:

Splitfilesystem

SplitfileSystemV2

SplitfileSystemV3

available since

tia Content Server Core 3.6.0

Info- and meta files

Info: XML file

Meta: JSON file

Combined in one file in JSON format

see splitfilesystemV2

Storage path

for details, see Storage path

Base32 encoded and split in blocks for folder and file name. Last block of encoded component name is used as file name.

Configuration parameters: contrepinpath, maxfolderblocks

see splitfilesystem

similiar to splitfilesystem, but the component name encoding differs.

Configuration parameters: contrepinpath,maxfolderblocks, maxFileNameLength

Root folder configuration

for details, see Multi root configuration (splitfilesystemv3, netappv3, icasv3)

Single-root

Configuration parameters: root

see splitfilesystem

Multi-root

Configuration parameters: root.<n>, root.<n>.freespacegb, rootSelectionIntervalH

Example configuration for SplitfilesystemV3 :

Code Block
<repo>.contentservice.type     = splitfilesystemv3
<repo>.description             = Finance Repository
<repo>.saphttp.security        = 1
<repo>.accessmode              = rucd
<repo>.authentication.required = false
<repo>.authentication.user     = 
<repo>.authentication.pwdalias = 

#===== FI content service configuration (filesystem|splitfilesystemv2|splitfilesystemv3|azureblobstore|s3blobstore|kgsstore)
<repo>.contentservice.splitfilesystemv3.root.1 = C:/Doc_Base
<repo>.contentservice.splitfilesystemv3.root.2 = C:/Doc_Base_Disk2
<repo>.contentservice.splitfilesystemv3.contrepinpath = true
<repo>.contentservice.splitfilesystemv3.maxfolderblocks=8
<repo>.contentservice.splitfilesystemv3.maxFileNameLength=200
<repo>.contentservice.splitfilesystemv3.rootSelectionIntervalH=24
Info

Folder separation is always / see Syntax rules for repository.cfg file

Example configuration for SplitfilesystemV2:

Code Block
FI.contentservice.type     = splitfilesystemv2
FI.description             = Finance Repository
FI.saphttp.security        = 1
FI.accessmode              = rucd
FI.authentication.required = false
FI.authentication.user     = 
FI.authentication.pwdalias = 

#===== FI content service configuration (filesystem|splitfilesystemv2|splitfilesystemv3|azureblobstore|s3blobstore|kgsstore)
FI.contentservice.splitfilesystemv2.root = C:/Doc_Base
FI.contentservice.splitfilesystemv2.contrepinpath = true
 #===== FI keystore service configuration (none|pkcs12)
FI.keystoreservice.typedefault false
Info

Folder separation is always / see Syntax rules for repository.cfg file

Example of a info file containing also meta data as stored beside the actual data file by splitfilesystemV2, as well as by splitfilesystemV3.

Code Block
{
  "properties": {
    "contentDigestAlgorithm": "MD5",
 = pkcs12 FI.keystoreservice.pkcs12.name = common-ks.pkcs12

#===== FI meta service configuration (none|elastic|database|kafka)
FI.metaservice.type = none

#===== FI meta service configuration (none|elastic|database|kafka)
FI.protocolservice.type = none

...

All further parameters are defined individually for each content repository.

In order to store the documents on the filesystem the content repository type has to be set to splitfilesystemv2 .

Code Block
<repoName>.contentservice.type = splitfilesystemv2

In order to store the documents in a specified place the path has to be entered; ex. C:/Doc_Base/or /opt/Doc_Base . Please be aware that the separator for the folder always is a / !

When storing the documents on a filesystem we suggest to set the parameter ContrepInPath = true

Code Block
#<repoName>.contentservice.splitfilesystemv2.root = C:/Doc_Base
#<repoName>.contentservice.splitfilesystemv2.ContrepInPath = true 

The saphttp.security can be set to 0, 1 or 2.

0 means that no security is necessary and no certifiate is needed in order to store documents in the content repository

1 means that in order to store documents in the content repository a certificate has to be send from the SAP system to the content server. The certifiacte will be accepted automatically by the content server.

2 means that in order to store documents in the content repository a certificate has to be send from the SAP system to the content server. The certifiacte has to be accepted manually by the content server. This can be done via the transaction CSADMIN within the SAP system.

Code Block
#<repoName>.saphttp.security        = 1 

The parameters for the accessmode in general always should be rucd (read, update, create, delete) and the authentication should be set to false with no user a/o password.

Code Block
FI.accessmode              = rucd
FI.authentication.required = false
FI.authentication.user     = 
FI.authentication.pwdalias =  "creationUser": "LOCAL SERVICE",
    "creationTime": "2023-07-13T07:03:50.867280400Z[UTC]",
    "propertyLayoutVersion": "V02.00",
    "modificationTime": "2023-07-13T08:03:37.406140Z[UTC]",
    "modificationUser": "LOCAL SERVICE",
    "objectName": "20230713_611ce078-2915-423d-8190-c72d40337ff9_node",
    "contentLength": "1127",
    "repository": "FI",
    "contentDigest": "68FAB75EC1AC8D2820068CC95FAA5EDE",
    "contentStreamLength": "1127",
    "archiveLinkVersion": "0046"
  }
}