Introduction:
Being SAP PI consultant we all know how Dynamic Configuration works with File adapter and how to set the target filename dynamically.Now we have started with SAP HCI era and need to find how to achieve the same.Here is the blog which showcase the same by using Apache Camel File Processing Parameters in Content Modifier.
Lets discuss various use cases in detail.
1. How to set Source File Name to Target File Name
Create integration Project like below
Step 1: Configure the Sender SFTP Channel
Step 2:Configure Content Modifier to set the source file name to target file name.
CamelFileName: Parameters which holds File Name in Apache Camel Framework (Upon which SAP HCI-PI is built on).
file:onlyname.noext: Holds the filename text without considering Extension.
There are also other parameters which can utilized( See the below table )
Expression | Returns |
---|---|
file:name | HCI\InputFile.xml |
file:name.ext | xml |
file:name.noext | HCI\InputFile |
file:onlyname | InputFile.xml |
file:onlyname.noext | InputFile |
file:ext | xml |
Step 3:Configure the receiver SFTP Channel like below
Go ahead and deploy the integration project.Now you will have a file in the target SFTP folder with filename same as source filename.
2. How to set target filename dynamically based on key field from incoming message.
Configuration: Create integration project similar to Use Case 1 and repeat the Steps 1 and 3 .
Step 2: Content Modifier configuration
Below are parameters used in the content modifier.
${date:now:yyyyMMdd}: Captures current date of file processing.
${header.User}, ${header.Group}: Captures values from incoming file.
Go ahead and deploy the integration project.Now you will have a file in the target SFTP folder with dynamic filename based on input file.
3. How to set target filename and target folder structure directly (By leaving the Directory and FileName Blank)
Configuration: Create integration project similar to Use Case 1 and repeat the Step1
Step2:
${date:now:yyyyMMdd}: Captures current date of file processing.
${header.RecordCount}:Holds number of records in the input file.
${header.User}, ${header.Group}: Captures values from incoming file.
Step3:
Go ahead and deploy the integration project.Now you will have a file in the target SFTP server with dynamic filename based on input file and in the target folder which is set in the content modifier step.
Conclusion:
Hope this blog helped beginners to dynamically set filename and target folder in SAP HCI using Content Modifier.
Reference:
[1] Content Modifier:
SAP HANA Cloud Integration (Internal, SAP HCI OEM)
[2] SFTP Adapter:
SAP HANA Cloud Integration (Internal, SAP HCI OEM)
[3] Apache Camel File Configuration:
Regards,
Sriprasad Shivaram Bhat