SAP PI 7.3.1 File Adapter - Select file based on content
Hi all,
I have a scenario where I need to process a file differently based on the content within the payload.
For example a file called File_IS,xml is sent to a folder that PI is polling. Within this file is a field <TYPE> which I want to use to determine whether the file should be used . I have two mapping scenarios that each have a file sender communication channel polling for the same file name "File_IS.xml" . This is because a message will come from a 3rd party with the same file name but the content can be different meaning different mapping scenarios are required. IF Com_Channel_1 sees the File I only want it to be picked up if say <TYPE> = 'A' - if not then Com_Channel_1 should do nothing with this file. Similarly Com_Channel_2 should only use the file if <Type> = 'B'.
Scenario:
File_IS.xml -> File sender 1 -> <TYPE> = 'A' - Pick up file - do mapping - archive. <TYPE> <> 'A' - do nothing and leave file in folder
-> File sender 2 -> <TYPE> = 'B' - Pick up file - do mapping - archive. <TYPE> <> 'B' - do nothing and leave file in folder
Is the above possible at all ?
Thanks for your time.
Best Regards.
Gary
Hello,
In case content of input files are different (for both the scenarios) even then also u can use one file sender channel. Check below approach:
Interface Determination condition
Thanks
Amit Srivastava
Similar Messages
-
Error in Receiver File adapter using File content Conversion
Hi,
I am getting the following error in the receiver file adapter.
Conversion initialization failed: java.lang.Exception: java.lang.Exception: Error(s) in XML conversion parameters found: Parameter 'statement.fieldFixedLengths' or 'statement.fieldSeparator' is missing
I am using the below parameters for FCC:
Recordset Structure - statement
statement.endSeparator - 'nl'
statement.fieldSeparator - '0X09'
statement.fieldNames -xblnr,wrbtr,newbs,kostl,newko,prctr,xref1,rke_wwfud,rke_wwst3,blart,bukrs,bldate,budat,gjahr,monat,ctype,waers,bktxt,posnr,wbs_element,mwxkz,businessplace,businessplace,c_waers,c_wrbtr,g_ctype,g_waers,g_wrbtr,h_ctype,h_waers,h_wrbtr,trade_id,lob,sgtxt,zuonr,reason_rev,ldgrp,tcode,lifnr
ignoreRecordsetName - true
Please let me know where i am going wrong.
Thanks,
AparnaHi Aparna,
I feel the problem in your content conversion parameters is with
statement.fieldNames and ignoreRecordsetName
When you are confirguring receiver file adapter for file content conversion the above one is not required. Please refer below link for details on configuring content conversion in file adapter
[http://help.sap.com/saphelp_nw04/helpdata/en/bc/bb79d6061007419a081e58cbeaaf28/frameset.htm]
Hope this helps !!
Regards,
Amit -
File Adapter or File Transport which one will give more performance
Hi all,
File Adapter or File Transport which one will give more performance ? in OSB?
Which one to select any one did performance analysis?
Thanks
PhaniWhy don't you just go read some benchmarks?
http://www.barefeats.com/mbpp18.html -
Sender File Adapter with file conversion
Hi guys,
Im using a Sender File adapter with file conversion. The message to be processed has a structure with fixed lengths and in your content are some values that needs to be ignored.
An example:
value1 <b>value2</b> value3
I want to ignore <b>value 2</b> but I cant find a parameter for that! Do I need to define dummy fields on my data type and ignore those fields during mapping? Or there is a specific parameter for that?
Thanks in advance,
Ricardo.hi,
there always is another way:)
you can import the whole line to one field
and cut it inside the adapter module
(then you can define start and stop of the substring that you need to use)
but of course it's not standard even though it's quite easy to achieve in java
Regards,
michal
<a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a> -
Can File Adapter Select Based on File Age?
Is there a way to configure a File Sender communication channel to only pick up files that are at least 10 minutes old (been in the sending directory for that long)?
I want to avoid anything requiring an external process (ie. temp directory or outside scheduler moving files).
Thanks,
KeithHi Keith,
Do you mean, if the input file is still being written by some applications the File adapter is supposed to wait for the application before processing?
If so, you have the option Msecs to Wait Before Modification Check
Msecs to Wait Before Modification Check
Enter the number of milliseconds that the adapter must wait before it checks whether the files have been changed.
This parameter is not available if you have selected File Content Conversion as the Message Protocol and then made an entry under Recordsets per Message that splits an input file into several messages.
From SAP Help.
Regards,
Jaishankar -
Receiver File Adapter - Create File on another SAP System
I am working on a project that includes this requirement: PDF files to be copied from a third party company via SFTP to a directory on our ECC system.
We have worked out the sender side config, and the transfer of the files into PI works fine via SFTP.
However, the PDF files are ending up in a directory on the PI system and not on our ECC system as expected.
The receiver communication channel is set up as follows:
Party = blank
Communication Component = communication component of the ECC business system
Adapter type = File
('Receiver' is ticked)
Transport Protocol = File System (NFS) (etc)
Target directory = /tmp (using this temporarily for testing)
I would have thought using the ECC business system would mean the files would end up on that system, but instead they end up on the /tmp directory on the PI system.
We are not permitted to use FTP between our SAP systems, so I can't go with that option.
I've searched for help on this and only see conflicting and vague statements about whether the NFS protocol can or can't be used for transfer to another SAP system in the landscape.
Any suggestions and help on the above, and the best method of transferring the files to the end SAP system would be very appreciated.
Regards,
Christineremember that NFS means that it is referring to a file system on PI server.
What you could do is mount a space on SAP PI onto SAP ECC so that ECC will be able to access the files on SAP PI.
Guess that should solve the problem. -
File adapter - archiving files after successful processing & errors
Hi All
In sender file adapter, I understand that we can archive files after processing them.
After successful processing, we can archive the file, and if there are any errors, we can archive the file in a different folder (all files resulting in errors during processing are archived in a seperate folder).
Now, see this scenario.
My file is successfully picked up, processed and posted to receiving sap system thru proxy.
But, if there is any application specific error (ex: duplicate id), because of which this data cannot be processed in the receiving system, how can i move the file which is archived in successful messages folder to the folder where we archive error messages?
Is it possible?
This is required because, when there are these kind of errors with incorrect data, we want the corresponding file to be archived in the folder where erred files are archived.
Please let me know how we can achieve this.
Many Thanks
Chandrain file sender CC, thr is option to archive and error file store also..
1)under processing mode - archive.. give the path thr..
2) To archive source files where a permanent error occurred during processing, select Archive Faulty Source Files
http://help.sap.com/saphelp_nwpi71/helpdata/en/44/658abd344a4de0e10000000a1553f7/frameset.htm -
File adapter validate file checking directory for files
Hi Gurus,
We have requirement. There are 3 directories (Processing, Error and Archive)in the Source side.SAP PI need to pick up a file called "abc.txt" from the processing tab.
But there is a condition.
1. If "abc.txt" file exists in the "Error" directory then Not process the interface.
2. If there is no "abc.txt" file in the "Error" directory then validate the file "abc.txt" in the "Processing" directory. If the file is not according to the validation rule then move the "abc.txt" file to the "Error" directory and then stop the processing.
3. if the above two conditions are ok then move the "abc.txt" file to "archive" directory and send the file to PI.
Please help me to achive this requirement.Hi Kevin,
You need to use the option of "advanced selection for source file" in the source tab of sender comm. channel.
chk this link :-
http://help.sap.com/saphelp_nw04/helpdata/en/e3/94007075cae04f930cc4c034e411e1/content.htm
/people/mickael.huchet/blog/2006/09/18/xipi-how-to-exclude-files-in-a-sender-file-adapter
hope its of some help
Regards,
Rohit -
File adapter: Additional files option and Archive option
Hi all!
I configure file adapter to take file with two additional files. Additional files is optional. Also I configure to processing mode to archive.
So when I put all three files in folder everything works fine - all files are archived.
Problems begins when I put not all additional files for example:
1) when I put one main file and the <b>FIRST</b> additional file, files are archived, in communication channel monitoring i see error in message java.lang.NullPointerException, but message with payload transfers to IE successful.
2) when I put one main file and the <b>SECOND</b> additional file, the main file archived, the SECOND file <b>NOT</b> archived and stayed in source directory. In CC monitoring I see error message java.lang.NullPointerException, but message with payload transfers to IE successful.
Please provide me with some solution, because I need to archive all files.
Maxim.in file sender CC, thr is option to archive and error file store also..
1)under processing mode - archive.. give the path thr..
2) To archive source files where a permanent error occurred during processing, select Archive Faulty Source Files
http://help.sap.com/saphelp_nwpi71/helpdata/en/44/658abd344a4de0e10000000a1553f7/frameset.htm -
File Adapter: Dynamic file name
Hello,
I would like to use a filename like this:
Name.<DOCNUM>.Direction.<Timestamp>
For DOCNUM I use variable substitution. Works fine.
For <Timestamp> I need a different format as the timestamp function
in file adapter create. So I try to set up my timestamp in mapping like
dynamic file name:
DynamicConfigurationKey key1 = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File", "Timestamp");
conf.put(key1, a);
Input a is date function which creates my desired timestamp format. In file adapter I try this:
Name.%DOCNUM%.Direction.%Timestamp%
or
Name.%DOCNUM%.Direction.Timestamp
or
Timestamp
all doesn't work for Timestamp.
So is there a possibility to configure a dynamic filename like this???
Is there a possibility to access dynamic configuration variables in dynamic filename except
the known for filename and directory??
thanks
chris
Edited by: Christian Riekenberg on Mar 10, 2009 4:02 PM
Edited by: Christian Riekenberg on Mar 10, 2009 4:05 PMyour file name needs to be
Name.<DOCNUM>.Direction.<Timestamp>
dont use variable substitution. use only dynamic configuration and set the file name
introduce a logic that will create the string
Name.<DOCNUM>.Direction.<Timestamp>
eg. String filename = "Name" + var_docnum + "Direction" + var_timestamp;
then use the dynamic conf code to set the file name and use adapter specific properties in you adapter to retrieve it.
Ref:
/people/michal.krawczyk2/blog/2005/11/10/xi-the-same-filename-from-a-sender-to-a-receiver-file-adapter--sp14
http://help.sap.com/saphelp_nw04/helpdata/en/43/03612cdecc6e76e10000000a422035/frameset.htm -
File Adapter: picking files from multiple directories
Hi all,
In a sender file communication channel with Transport
Protocol FTP, There are 2 parameters for Picking up the file
called Source Directory and Filename. If I want to pick the
files from 2 or more directories, What needs to be done.
Or is it possible to do so ?
Without making duplicate interfaces what else can be done ?
Regards,
VijayActually it is possible to select files from different folders for sender channel. It is available with SP14.
I just copy following description from help.sap.com
Advanced Selection for Source File
If you want to set an exclusion mask for the File Name specified above, or if you want to specify multiple directories using a file name mask and exclusion mask, set the Advanced Selection for Source File indicator.
¡ Specify an Exclusion Mask for the file name specified above.
Example
You want to process all files that have the extension '.txt', but want to exclude all files that begin with the letter 'a'. To do this, enter .txt for File Name, and a for Exclusion Mask.
¡ You can enter additional specifications for source directories, file names, and exclusion masks in the table. This data is processed in addition to the details specified above. -
XI Receiver file adapter : Dyanmic File PATH
Hi,
Appreciate if someone could help me on the issue below:
I have a receiver File adapter with a dynamic target directory as per below:
Target directory: /test/YYYY/MM/DD
the value for YYYY (Year) , MM (Month) and DD (Date) will be the date when the file being transfered from the sender.
Appreciate if someone could help me to achieve this. I know we can use the variable substitution however it doesn't allow us to set a systems field such as sy-datum.
Cheers,
ZABHi,
Populate this value in your payload , and then use Dynamic File Name concept of File Adapter.
The dynamic filename generation concept is as follows.
In your filename field. just give a variable with % symbols. (eg: %file% ).
Now, under the option Variable Name Substitution, you can give how the value has to be created.
It can be your interface name, sender service name, etc or it can be some value dynamically from your payload.
For the former, your give
message:interface_name ,etc
and for the payload part you give,
Payload: "your element root which u wanna acecss"
Just check this link out,
http://help.sap.com/saphelp_nw04/helpdata/en/bc/bb79d6061007419a081e58cbeaaf28/content.htm
And read the contents under variable substitution and it will help you understand the concepts better.
If you have any clarifications, do get back,
Regards,
bhavesh -
Hi,
I am facing some problem in FCC for Receiver adapter. It has to convert from XML to CSV File.
<?xml version="1.0" encoding="UTF-8" ?>
- <ns0:PaymentFull_Target xmlns:ns0="http://sdn.com/Payment">
- <RECORDSET>
- <Header>
<LineItem>1</LineItem>
<SaleNumber>102</SaleNumber>
<TransNumber>105</TransNumber>
<Store>1326</Store>
<variant>Z6</variant>
<TransType>NEW</TransType>
<Adjustm_Type />
</Header>
- <Header>
<LineItem>2</LineItem>
<SaleNumber>102</SaleNumber>
<TransNumber>105</TransNumber>
<Store>1326</Store>
<variant>Z6</variant>
<TransType>NEW</TransType>
<Adjustm_Type />
</Header>
- <Header>
<LineItem>3</LineItem>
<SaleNumber>102</SaleNumber>
<TransNumber>105</TransNumber>
<Store>1326</Store>
<variant>Z6</variant>
<TransType>NEW</TransType>
<Adjustm_Type />
</Header>
</RECORDSET>
</ns0:PaymentFull_Target>
Output File is coming only with lineitem values , remaining fields are not coming.
*1,2,3*
FCC Used...
RecordSet Structure -- Header
Header.fieldNames -
LineItem,SaleNumber,TransNumber,Store,variant,TransType,Adjustm_Type
Header.fieldSeparator----- ,
Header.endSeparator----- 'nl'
Did I miss anything.. any idea whats going wrong?
Thanks
DeepthiHi Deepthi,
Mention the occurrence of header in Recordset
You specify like this:
Recordset: Header, *
Header.fieldSeparator : u2018Field Separatoru2019
-->For FCC on Receiver side you donu2019t have to mention the field names.
-->The u2018endSeparatoru2019 parameter needs to given for substructure only
Check this links:
http://help.sap.com/saphelp_nw04/helpdata/en/d2/bab440c97f3716e10000000a155106/content.htm
/people/shabarish.vijayakumar/blog/2007/08/03/file-adapter-receiver--are-we-really-sure-about-the-concepts
/people/arpit.seth/blog/2005/06/02/file-receiver-with-content-conversion
Rgds,
Akhila -
Sender File Adapter: Flat file content conversion to "multileveled" XML
Hi all,
I would like to do following conversion with file adapter:
- Input flat file schema:
A...
B,,,
C:::
- Desired XML form:
<mesage>
<A>
<B>
<C>:::</C>
</B>
</A>
</message
>
All found examples (internet or XI documentation) do offer only "flat" XML option:
<mesage>
<A>...</A>
<B>,,,</B>
<C>:::</C>
</message>
Does anybody have an idea ?
Thanx and regards
JuricaFile Adapters content conversion does not supprot such a nested strucutre currently.
The only format supported is the one shown in ths link,
http://help.sap.com/saphelp_nw04/helpdata/en/2c/181077dd7d6b4ea6a8029b20bf7e55/content.htm
Either write a module that will do this conversion or Change the datatye for the source to the format shown in help.sap.
Regards
Bhavesh -
Sender File Adapter with file conversion Multimapping
Hello all,
i have to use multimapping with the file sender adapter
XML for multimapping ist like this
ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
<ns0:Message1>
<ns1:KVNR_Senden_MT xmlns:ns1="urn:lsv.de/SENDER">
<Inhalt>
<KE/>
<VF/>
<BBNRAB/>
<BBNREP/>
<VERNR/>
<ED/>
<FEKZ/>
in File adapter
DocumentName Messages
RecordsetName Inhalt
Recorset Struc Inhalt,20
Inhalt.fieldFixedLength 4,5,6.....
Inhalt.fieldNames KE,VF,.....
but were can I generate Message1?????
any Hints?
regards
ralfsorry but the message tags will not be add dynamically
i have change an existing message mapping 1:1 with file content conversion
into a multimapping.
by changing into multimapping the message was surrounded with
<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
<ns0:Message1>.......
no changing in File Adapter an in the IE there was an error
com.sap.aii.utilxi.misc.api.BaseRuntimeException geworfen: RuntimeException in Message-Mapping transformatio~.
if i added the stuct
<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
<ns0:Message1>.......
by hand and it works???
so i think i had to add
<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
<ns0:Message1>.......
to the file content conversion but i don't know how to do it???
Ralf
Maybe you are looking for
-
Difference between LIV and Normal Invoice document
Hi Guys, What is the difference between an LIV invoice and a normal FI invoice document. Are the entries different or something. In which cases do we go for LIV invoicing. thanks srik.
-
Dont want to have 2 PR if the delivery date is the same in MD04
Hi Guys, I want to avoid the splitting of a PR . Example: Demand of 100 on the 10/08/2011.=> Req of 100 created when MRP runs. The next week the demand changes to 50 on the 14/08/2011 and 50 on the 10/08/2011. Because of the lead time the delivery st
-
Apple Notes not sending notes to Gmail
Previously when I created a note in Apple Notes, it would sync to my MacBook, iPad, iPhone and the new note would also be sent to my Gmail account. I've since upgraded to Mavericks on my MacBook on iOS 7 on my iOS devices. Notes are still syncing acr
-
Hi All, I have two table, the first table(emp) contains few columns LIKE eno, ename etc. with some data. In my second table(eval1) I have one column which holds column names of first table ex. ename. How can I get the column value of first table base
-
Can I use read table instead of multiple select & loop statements. Any one please give me the sample code ..how to do it. Thanks in advance