inPoint.CSS
inPoint.CSS contains the SAP integration scenario for ArchiveLink (BC-AL 7.20 and S/4-BC-AL 7.20) and ILM (S/4-BC-ILM 1.0).
Configuration
All settings are defined in only one single file, the inPoint.CSS.config file.
Example
<PAMerp.ContentServer
checkSignature ="true"
defaultDocProtection ="rcud"
extendedEidCheck ="true"
certificatePath ="C:\CS\Certificates"
tracePath ="C:\CS\Trace"
keepTraceDays ="3"
webViewUrl ="https://servercertificatename:8888"
webViewName ="/mini/flat"
webViewIP ="true"
webViewImpersonation ="impersonationUser"
webViewSecret ="o/yyBWd+BY9MSiDuUjA9+Q=="
webViewSearchType ="Folder"
webViewSearchColumn ="NAME"
webViewPreferIPUser =""
webNameTemplate =""
singleContentDocuments ="false"
fallbackNTDomain =""
>
<repositories>
<add name="IG" archId="1" unitId="3" barcode="true" webViewFilterFolderChar="false" webViewName="/mini/doc" webViewFolder="pam-item://hierarchy=5&path=22$1\,23$3" webNameTemplate=""
sapServer="tstsap01" sapSysNr="00" sapClient="010" sapUser="RFC" sapPass="o/yyBWd+BY9MSiDuUjA9+Q==" sapRouter="" sapTrace="0"
deleteLogicalOnly="true" >
<inPoint
folderTable ="PAM.GLOBAL_FOLDERS"
linkTable ="PAM.GLOBAL_DOCLINK"
parentElementUri ="pam-item://hierarchy=5&path=22$1\,23$3"
elementType ="2"
formatId ="0"
tenantId ="1"
createSubFolder ="false"
/>
</add>
<add name = "HSILM" archId="1" unitId="6" barcode="false" >
<inPoint.ilm
enabled ="true"
useRecycleBin ="false"
updateRetention ="Database"
recursiveCreateFolder ="true"
createFolderIgnoreExisting ="false"
createDocumentVerifyExisting ="true"
/>
</add>
</repositories>
</PAMerp.ContentServer>
NOTE: Archive units need to have the CSS feature "inPoint CSS basic" configured.
PAMerp.ContentServer
checkSignature
If enabled, signatures from SAP will be verified! Highly recommended for security reasons.
defaultDocProtection
Default: crud
Represents the access mode of a document, when SAP sends no information. All combinations of the following access modes are supported.
c
Create.
r
Read.
u
Update.
d
Delete.
extendedEidCheck*
Default: false
If true, the SAPDOCID is verified to have the correct archive and archive-unit when using the EID instead of the SAPDOCID.
Use the preferEid to disable this behavior as a whole.
certificatePath
Directory where SAP certificates are stored.
tracePath*
If a web-request fails, the request will be saved into this directoy (if empty, it won't be saved).
keepTraceDays*
Default: 3
Daily folder with trace files will be deleted after this time.
fallbackNTDomain*
In case of archiving a document without NTLM the domain will be prepend a non-full qualified user. Used for scan client plugins.
webViewUrl*
Url redirecting to inPoint.Web.
webViewIP*
If true, url is only valid for callers IP.
webViewImpersonation*
Impersonation user for inPoint.Web. Is needed for anonymous access from SAP. Needs additional configuration in PAM-STORAGE web.config and inPoint.Web and Identity.
webViewSecret*
Encrypted password for impersonation user for inPoint.Web.
Shared Parameters
The following parameters can also be configured inside the repositories tag. Repositories configuration will be preferred in case of double configuration.
preferEid*
Default: true
If the SAPDOCID is recognized as a valid EID the EID will be used to access the document instead of the SAPDOCID.
Setting it to false will disable this behaviour.
Using this setting it is possible to read the document from a different repository then the one requested by SAP. In case of viewing with inPoint.Web it may be required to map the EID to the correct repository using the eidMapping setting.
sapServer*
Host name or IP address of SAP application server.
sapSysNr*
2 digit system number of SAP system.
sapMsHost*
Specifies the host on which the message server is running.
sapMsServ*
Name of the service where the message server can be reached. Is needed only, if the service of the message server is not defined as sapms\<SYSID>
in /etc/services.
sapSysId*
2 digit system ID of SAP system.
sapGroup*
Name of SAP group.
sapClient*
3-digit SAP client.
sapUser*
SAP communication user with type 'system', therefore password never expires.
sapPass*
Encrypted password for SAP user.
sapLang*
Default: DE
Logon language for SAP user.
sapRouter*
Use the following format for router: /H/hostname/S/portnumber/H/
sapTrace*
Possible values for trace:
0
Off.
1
Brief.
2
Verbose.
3
Full.
barcodeDocType*
Default: FAX
Document type, which is sent to SAP during barcode transfer. Recommended type is PDF.
barcodeQuery*
Allows to configure how the barcodes are searched. The following values are possible:
EXISTS
(default) - the query is executed using an EXISTS queryIN
- the query is executed using an IN query- other values are interpreted as a query string and executed as is
- Possible Parameter to be replaced at runtime
- %TABLE_NAME%: the full name of the document table (including the schema)
- %SAPREPOSITORY%: the name of the parameter containing the SAP repository
- %SAPBCUPDATE%: the name of the parameter containing the SAPBCUPDATE value
- the query must fetch these columns: SAPBARCODE,SAPDOCID,DOCCREATIONDATE
- Possible Parameter to be replaced at runtime
barcodeBlocksize*
The query for finding barcodes will be executed with this number of entries (default: 5000)
View parameters for inPoint.Web
The following parameters are used for document viewing in inPoint.Web. The setting can be configured on a general level or can be overwritten on repository level.
webViewName*
The url which is opened in inPoint.Web, will be combined with the value of 'webViewUrl'. See the documentation of inPoint.Web for details.
/mini/flat
: Documents are grouped in a folder with SAPDOCID value as webdavname./mini/doc
: Used for single content documents./folder
: opens the folder in inPoint.Web
webViewTemplate
Default: <empty>
When opening a document inPoint.Web these template can contain additional arguments for the URL.
The template is using #Script, the syntax is described in the general template documentation.
The parameters can be taken from the document itself or from the web request.
- document: The document object given by the interface IDocumentDescription from inPoint.Archive. As shortcut the properties can be accessed by using "document.XXX" where XXX is the name of the database column. The values are typed and need to be converted to string.
- request: The HttpRequest object from the web request. As shortcut the properties can be accessed by using "request.XXX" where XXX is the name of a URL parameter, header, form,...
Encoding!
All parameters will automatically be url-encoded by the system. But ensure that the template must be encoded correctly to save as XML (e.g. use&
instead of&
)).
Example
This example adds the Creator from the request as "SapCreator" and the SAPBARCODE field from the document as "BARCODE".
Example with shortcuts
This example uses the same argument but uses the shortcuts.
Example with formatting date and number
This example adds the NUMBER1 and the DATE1 field from the document. The number is formatted with a decimal point and thousand separator using comma. The date is formatted as yyyyMMdd:HHmmss.
webViewFolder*
This configures how the ItemUri to open the document/folder in inPoint.Web is created. In all cases the EID will be searched in the database by using the SAPDOCID.
- The ItemUri of a flat archive unit (FlatAU). It will be combined with the EID from the database to build a full itemUri, e.g.
"pam-item://hierarchy=64@path="
. Works only in combination with webViewName /mini/doc. - The predefined value
SearchDb
works for normal global sites (including any global site repository). This will search the whole folder tree to build an itemUri from scratch. Requires the value of 'hierarchyId'
webViewFilterFolderChar*
Default: false
If set to true, all characters not valid in a filename are discarded, when executing the search.
webViewSearchColumn*
Default: SAPDOCID
The search column for the SAPDOCID. Needs an additional process to copy the value from SAPDOCID column to a searchable column.
webViewSearchType*
Default: Document
Document
Defines the search column for document table.
Folder
Defines the search column for the folder table.
webViewPreferIPUser
Default: false
If enabled and the client sends the name of a valid inPoint user (when using inPoint.OleView setting the property SendUser to true) then inPoint.Web will be opened using the currently logged in user instead of the user given as impersonation user.
The administrator must make sure that the user has the necessary permissions to access the document.
The server will accept the user name in the following formats:
- User Principal Name (e.g. user@domain.org)
- Down-Level Logon Name (e.g. domain\user)
- user name if fallbackNTDomain is configured (e.g. user)
webNameTemplate
Default: <empty>
A template for creating the document name, the syntax is described in the general template documentation.
If the rendered template does not contain an extension ".bin will be added.
This variables can be used:
- EID (the EID of the document, without the pipes)
- DOCID (the docid of the document)
- DOCCONTENTCOUNT (the number of contents)
- CONIMPORTNAME (the name of the content given by the create/mCreate request, if there was no extension it will be derived from the mime-type)
- all custom fields from the document and content table (e.g. SAPDOCID, CONSAPCOMPID,...)
As special modifier these extensions can be added to each variable (separated by a colon)
- Name (truncates the extension from a value)
- Extension (extracts the extension from a value, the result includes the dot)
Important!
- If a document does not have any content accessing the content fields will result in an error. See the examples how to use an "if" statement to avoid this.
- If a document has multiple contents the template will use the first content to create the name.
Example
This will create a name using the SAPDOCID, but if it is empty it will use the EID instead. If there is one content in the document, it will add the value of the CONSAPCOMPID and the extension of the file name.
The result could look like this: E2009BBE755C45D2A70BE757ABDE3C46_data.pdf
This name will start with the constant 'Import_' followed by the name of the repository, the current time and finally the extension of the file name.
The result could look like this: Import_IF_2023_03_17__12_28_29.txt
This will check if the document has no content and if so it will use the SAPDOCID, otherwise it will use the 'CompId', a timestamp and then the original extension of the file name.
The result could look like this: E2009BBE755C45D2A70BE757ABDE3C46.bin
(for an empty document)
or data_20240206_171915.pdf
(for a document with one content)
documentNameHandling
Default: FirstContentUnique
A setting for creating the document name when documents are created using Archive.asmx and no explicit value for 'WEBDAVNAME' is given. The following values are possible:
FirstContentShort
: Use the name of the first content, shortend to 50 characters, made unique by prefixing date and time (this was the behavior in previous versions).FirstContentUnique
: Use the name of the first content, made unique by prefixing date and time.FirstContentOriginal
: Use the name of the first content, the caller has to ensure that the name is unique and valid.
eidMapping
Default: <not existing>
When inPoint.Web is used for viewing the document and the SAPDOCID is a valid EID, but it points to different Repository (see preferEid) the mapping can be configured here.
All further settings will be read from the mapped repository.
Note!
In case multiple repositories are mapped for the same archive and unit they the document will be searched in all of them. The first found document will be used. This requires a database query for each mapped entry and should be avoided if possible!
Each entry consists of the following attributes:
archId
: The archive id from the requested EID.unitId
: The archive unit id from the requested EID.repository
: The name of the repository where to take the settings from. This does not have to be a real SAP repository but it must have an entry in the configuration file.
e.g. The following configuration will map the EID from archive 1 unit 1 to the repository "MIGRATED_HR" and "MIGRATED_SALES" and the EID from archive 1 unit 6 to the repository "INVOICES". These repositories have to be configured as well in the configuration file.
<add name="HR" archId="1" unitId="1" barcode="false" >
<eidMapping>
<add archId="1" unitId="1" repository="MIGRATED_HR" />
<add archId="1" unitId="1" repository="MIGRATED_SALES" />
<add archId="1" unitId="6" repository="INVOICES" />
</eidMapping>
</add>
Common parameters
singleContentDocuments*
Default: false
If set to true, folderCreation has to be configured. For each content request from SAP a single document will be created with the same SAPDOCID. Remove unique index for SAPDOCID column and re-create as non-unique index in DESC table.
deleteLogicalOnly*
Default: false
Document will be deleted from file system (if the retention period has been exceeded). If set to true, only database entries are removed.
Repositories
name
Name of the SAP content repository.
archId
Id of the archive.
unitId
Id of the archive unit.
barcode*
If set to true, barcodes will be transferred to SAP. Needs configuration of RFC connection parameters and a scheduled task (find template in inPoint.CSS folder) executing the barcode program.
idxUpdateFunction*
Name of the RFC module, which updates meta data for the documents. Needs configuration of RFC connection parameters and a scheduled task.
idxUpdateBulkSize*
Default: 1000
Number of transferred documents per RFC call.
idxUpdateSkipHours*
Default: 0
Number of passed hours before a document will be transferred.
inPoint*
folderTable
Folder table corresponding to the configured unitId. Can be empty if the value for hierarchyId is set.
linkTable
Document link table corresponding to the configured unitId. Can be empty if the value for hierarchyId is set.
parentElementUri
Root uri where the document is stored.
elementType
Element type of the created folder.
formatId
Format id of the created folder.
tenantId
Tenant id of the created folder.
createSubFolder*
Default: true
If set to true, a new sub folder is created with the SAPDOCID value as webdavname. /mini/flat View can only be used with a SAPDOCID folder.
hierarchyId
The id of the hierarchy used in inPoint.Web. Required when searching the database for the document using searchDb as webViewFolder
inPoint.ilm*
Configuration for ILM interface.
enabled
Default: false
If set to true, ILM is enabled.
useRecycleBin*
Default: true
Deleted documents will be kept in the recycle bin.
updateRetention*
Database
Update the retention in the database, but the caller can choose.DatabaseOnly
Update the retention in the database only.Storage
Propagated the retention to the storage system.StorageAndWait
Propagated the retention to the storage system and wait during the update. (use only for testing)
recursiveCreateFolder*
Default: false
If set to true, non existing parent folders will be created automatically.
createFolderIgnoreExisting*
Default: false
if set to true, no error will be returned in case of an already existing folder.
createDocumentVerifyExisting*
Default: false
true
If an ILM document is created for ArchiveLink, the document has to exist in ArchiveLink before.
false
ILM and ArchiveLink documents can be created in any order. In that case every archive unit has to be checked for an existing ILM document (slower performance).
maxMemFileMB*
Default: 50
Size in MB.
Files with greater size will be cached on disk during write.
Browser configuration settings
ArchiveLink
Open the configuration site with http(s)://\<servername>:\<port>/inPoint.CSS/ArchiveLinkConfig.aspx
or http(s)://\<servername>:\<port>/inPoint.CSS/.archivelink
Certificates
On the left panel are the pending certificates, which were sent from SAP. To activate a certificate click the Approve link. The certificate is shown afterwards in the right panel for the approved certificates.
To see details of the certifcate click on the Detail link.
Server Info
Global overview of the configuration for all content repositories.
Trace
In case of an error or for information purposes check your desired requests and level. At least activate the trace.
Change to the link Traces and see the results.
To see detailed informations click on the Request link or Error Details link.
ILM
Open the configuration site with http(s)://\<servername>:\<port>/inPoint.CSS/ilm
Example
Click on the name of the repository to navigate the WebDAV structure.
Navigate further on as far as desired.
Click on the Info link to see more details.
Late archiving with barcode
Documents are scanned with the ScanClient and separated by barcode. Every barcode has a reference to a SAP document. After archiving with a ScanClient Plugin the documents where marked with a flag for SAP transfer.
NOTE: do not forget to install Visual C++ Redistributable Packages for Visual Studio 2013 for x64
You need to configure the SAP connection parameters and create a scheduled task. You can find the template inPoint.CSS.Barcode.xml in the inPoint.CSS installation folder.
The complete entry configured in "Actions":
Program/Script: "C:\Program Files (x86)\HS Europe\inPoint.CSS\bin\PAMerp.Barcode.exe"
Add arguments (optional): "C:\Program Files (x86)\HS Europe\inPoint.CSS.config
Press "OK" and the new scheduled task will be created.
NOTE: change config file to get access to Pam.Archive.
<!-- Configuration of inPoint.Archive, or a link to an existing configuration -->
<PamArchiveConfig ExternalFile="..\inPoint.Archive\inPoint.Archive.config" />