cancel
Showing results for 
Search instead for 
Did you mean: 

How to put a delay between Sender Adapter processing ?

Joseph_BERTHE
Active Contributor
0 Kudos

Hi,

I'm using FTP type and I schedule the sender each 1hour. In that time, plenty of file has been added into the source folder.

The files are like this <file_name_###>.txt where the ### are a incremental number. PI can takes all of them in order thanks to this patern : <file_nme>*.txt, but when processing it takes all the file in one time.

I would like to put a delay between each file. Is it possible ?

Kind regards

Joseph BERTHE

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

What you can do is, first use Quality of Service as Exactly Once in Order by doing so even all the message will be picked up at once but they will be in a queue. Now use an udf in message mapping to create a delay. Just use Thread.sleep(3000); in UDF code and map it with any field or add this code to any existing UDF.

For more info see below thread.

Regards,

Sarvesh

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi Joseph,

I need it because the receiver is a RFC adapter so I call a BAPI. But I want a unique call. So When the first file is eaten by PI it executes the BAPI, but during that time no one can execute that same BAPI. So I want to put a delay between each file.

-


> Delay between Sender Adpter Processing will not be possible .

But you can make the Interface work in EOIO fashion . by that your inputs will be processed one after the other .

Make the parameter "Quality of Service"- Exactly Once in order at your sender adapter level for this.

EOIO (Exactly Once In Order): Here Messages are delivered with the same queue name as in the same sequence that they were sent from the sender system. Message processing will be asynchronous in this case.

Regards ,

Former Member
0 Kudos

Hi Joseph!

As far as I know this is not possible by just clicking on a parameter.

See SAP dicumentation of File/FTP Sender Adapter also:

http://help.sap.com/saphelp_nw04/helpdata/en/e3/94007075cae04f930cc4c034e411e1/content.htm

Why do you need this delay between the processing of each file?

Regards,

Volker

Joseph_BERTHE
Active Contributor
0 Kudos

I need it because the receiver is a RFC adapter so I call a BAPI. But I want a unique call. So When the first file is eaten by PI it executes the BAPI, but during that time no one can execute that same BAPI. So I want to put a delay between each file.

Former Member
0 Kudos

Hi Joseph,

Check this blog (Solution N° 1: use only option "File name Mask")

/people/mickael.huchet/blog/2006/09/18/xipi-how-to-exclude-files-in-a-sender-file-adapter

otherwise you have to write the own module.

Regards

Ramesh

Former Member
0 Kudos

Hello Joseph,

If "n" number of files are at the source, then you can't put in a delay in picking each file, on the basis of parameters alone. You might have to use the Shell Script at the adapter level.

EOIO is also a solution, but still it will pick the "n" files at one-go and there won't be a delay (as such) between each files. You might have to use a UDF in the mapping to delay the messages.

Hope this helps.

Regards,

Neetesh

Edited by: Neetesh Raj on Aug 24, 2009 12:55 PM

Edited by: Neetesh Raj on Aug 24, 2009 12:55 PM