Dynamic file name (Date) in Receiver File Adapter
Hi,
can any one tell me how to create outbound file name with receiver file adapter in format like Name_22-08-2006.dat. I need from a current Date in the name of the message (without any other information). In message payload I dont have that date. Is it possible to use variable from user defined function in message mapping for that name?
Regards,
Naycho
Naycho,
that's exactly what I've managed to perform using DynamicConfiguration. Check these links:
http://help.sap.com/saphelp_nw2004s/helpdata/en/43/03612cdecc6e76e10000000a422035/frameset.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/43/09b16006526e72e10000000a422035/frameset.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/43/03fe1bdc7821ade10000000a1553f6/frameset.htm
Particularly, I've created a Java API for using setDirectory and setFileName methods through mappings. I use XSLT with java enhancement because it's a million times easier to parse and get node values with XSL than pure java.
I'm writing a blog on the subject, if you don't resolve the problem until it's out, let me know.
Regards,
Henrique.
Similar Messages
-
Dynamic File Adapter status - Active or Inactive
Hi Experts
Is there any way to set the Sender/ Receiver File adapter status dynamically to inactive or active.
Is there any setting exists in the file adapters ? Please provide me possible solutions.
Thanks
FaheemHi all,
Many thnz for the response.
There is one more way of doing this as well. Just now i found that.
In the runtime workbench - Communication channel monitoring , Select the automatic control for the comminucation channel to make active or inactive .
there are options for our comm channel to run specfic date and time.
Thnz
Faheem -
Poll a folder dynamically file adapter
Hi
I have 2 requirements:
1. I want to poll a folder using file adapter for all the files in it. How to achieve this ? Can I use *.*. but the dev guide explicitly disapproves of it so what else to do.
2. On a more advance note. I want to change the folder to be read from dynamically. This way I want to poll different folders using a single file adapter.
Thanks1 you should be able to use *.* to just process all the files in the folder
i'm not sure how to make the directory dynamic, since this is the start of your process, so there isn't some other trigger moment what can set the directory to either a or b
i think you should be able to set it on runtime from the console with some like this :
http://eelzinga.wordpress.com/2009/10/28/oracle-soa-suite-11g-setting-and-getting-preferences/
only that's for preference so i can imagine there will also be some setting the the jca directory property.
or you could create a directory myfile, and in this put both folder a and folder b
http://download.oracle.com/docs/cd/E15523_01/integration.1111/e10226/bc_config.htm#SOAAG3684
33.1.2.3 Oracle File Adapter
Recursive
then with the file adapter you can use the recursive property to process all the files in the subfolder -
Error when setting dynamically the target URL in receiver SOAP Adapter
Hi,
I'm setting dynamically (from the mapping) the target URL in the receiver SOAP adapter:
String url = "http://mosxd30:50000/XISOAPAdapter/MessageServlet?senderParty=&senderService=DUM&receiverParty=&receiverService=&interface=SI_OA_CustomInvoiceData&interfaceNamespace=urn:repsol.com:laboratory:firma";
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/SOAP", "TServerLocation");
conf.put(key, url);
The receiver adapter fails with:
"invalid content type for SOAP: TEXT/HTML; HTTP 401 Unauthorized"
Reading weblogs, etc, the most probable cause for this is a wrong target URL, but then what I did was to set it as a fixed URL in the C.Channel, and it worked, so the URL is fine.
In the communication channel, I'm using "Configure user authentication", with a user and password, and what I think it's happening is that if I use another different URL dynamically, the channel is ignoring the user authentication settings.
Any ideas?
ThanksI forgot to say that I've checked the SAP note "FAQ Soap adapter", and it says:
Q: I get an authorization error "401 Unauthorized" from the adapter's servlet. What went wrong?
A: The adapter's servlet is protected by default. You must use one of the user names assigned in security role xi_adapter_soap_message for component XISOAPAdapter. Please consult the documentation for Visual Administrator to view and change the security setting.
The user authentication of the SOAP adapter is not part of the SOAP adapter but of the web container of the J2EE engine. The default authentication setting is defined in the web.xml descriptor file of the SOAP dapter web application. This setting may be modified from Visual Administrator with some restriction. Please refer to the security documentation for the J2EE engine.
Please note that 710 onwards there is no Visual Administrator instead the Netweaver Administrator is to be used to assign the roles to the user to access the SOAP adater servlet.The user must be assigned one of the following roles SAP_XI_IS_SERV_USER, SAP_XI_APPL_SERV_USER, SAP_XI_DEVELOPER_J2EE, SAP_XI_ADMINISTRATOR_J2EE.
The target URL is a sender soap adapter (the result of one interface is sent to another one via soap adapter), and it's this one which is complaining because of the authentication I think. But I don't know why it's ignoring the user authentication flag I'm using. -
Dynamically generate terget directory in receiver FTP adapter
Hi guys,
I'm trying to set up a scenario where the file will be placed into a terget directiry based on values from the incoming message. I can't use variable substitution as my target message does not contain the needed value, so I'm trying to set up a dynamic configuration in an UDF. Unfortunately, this is not working.. Any ideas, what could be wrong? The receiver FTP adapter always just takes values from it's configuration. It doesn't help when I try to change it in mapping.
This is the java map code in the UDF:
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File", "Directory");
DynamicConfigurationKey key2 = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File", "FileName");
conf.put(key, a);
conf.put(key2, "tfilename.txt");
return "";
Thanks a lot for any help,
OlianHi,
use below code it will work fine
DynamicConfiguration conf = (DynamicConfiguration) container
.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File", "FileName");
DynamicConfigurationKey key1 = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File", "Directory");
String a=conf.get(key);
String b=conf.get(key1);
var1 = a+b; ;
return var1;
map this udf to root element of your receiver structure.
Regards,
Raj -
Convert XML payload to HTML form data in Receiver HTTP Adapter
Hi,
I want to make a HTTP request ( Receiver HTTP Adapter ) to a servlet where I need to send the payload in HTML form format ( name=value ). As per the help document:
A typical HTML form comprises named fields. When transferring a completed form to the server or a CGI program, the data must be transferred in such a way that the CGI script can recognize the fields that make up the form, and which data was entered in which field.
The plain HTTP adapter constructs this format using a prolog and an epilog
Has anyone done this before? I looked through all help documents and forums but in vain. I can resort to Java Mapping to do this but I do not want to re-invent the wheel if I can do it easily using HTTP Adapter Configuration. Please help.The parameters available in HTTP adapter for message header are:
HeaderFieldFive http://sap.com/xi/XI/System/HTTP
HeaderFieldFour http://sap.com/xi/XI/System/HTTP
HeaderFieldOne http://sap.com/xi/XI/System/HTTP
HeaderFieldSix http://sap.com/xi/XI/System/HTTP
HeaderFieldThree http://sap.com/xi/XI/System/HTTP
HeaderFieldTwo http://sap.com/xi/XI/System/HTTP
HTTPDest http://sap.com/xi/XI/System/HTTP
TargetURL http://sap.com/xi/XI/System/HTTP
URLParamFive http://sap.com/xi/XI/System/HTTP
URLParamFour http://sap.com/xi/XI/System/HTTP
URLParamOne http://sap.com/xi/XI/System/HTTP
URLParamSix http://sap.com/xi/XI/System/HTTP
URLParamThree http://sap.com/xi/XI/System/HTTP
URLParamTwo http://sap.com/xi/XI/System/HTTP -
Dynamic Queue names at JMS receiver
HI All,
I have a scenario where sender is an RFC and receiver is via JMS and also get a reply back . JMS is asynchonous but as suggested in other threads it is possible to capture the response by setting some Adapter specific parameters.
But my problem is the queue name for the response is not constant and it varies from request to request for the response. I have no clue how to achieve this , I tried searching some threads but couldn't come to a conclusion.
Possibility of dynamic MQ queue selection in one receiver JMS channel
help on Dynamic queue name in JMS Adapter
Has anyone come across such a situation ? Please suggest.
Also In one of threads it was suggested to use Java Proxy? Please suggest a way forward in this approach too
Regards,
Mohan.> please refer the link what you provided in section 2.8 mentioned JMS Receiver communication channel will give response back,but i never tried.
Yest because this document is applicabe for a scenario where request msg will come form sender JMS to XI and then Response will be sent back again to JMS by using receiver JMS adapter. So senario is JMS request --- R3 (via XI) --- R3 response to JMS.
But here case is different. e.g. RFC --> PI --> JMS and reply will get back from JMS to RFC. So definetly in this case response will come from sender JMS and not from receiver JMS.
Read sec 2.8 throughly, you will come to know how to set the queue names dynamically for RECEIVER JMS Adapter.
Regards,
Sarvesh -
Dynamic File adapter configuration
Hi All,
Is it possible in XI give source directory dynamically?
If I move my XI development objects into quality or production, there would not be the same directories available. So we need to modify the source directory name again?
Could anyone clarify these issues?
Thanks,
Venu.Hi Venu..
It's possible to give source directory a dynamic name..
Just type %directoryname% in the source path..
and in the adapter paramaters (variable substution) access the value dynamically..
Ex:
variable
directoryname
Refernce:
payload:messagetype,level,.........etc
Regards..
Satya.. -
SOA 10g: Dynamic Host Name and Port in FTP Adapter
Hello All,
I am using GET operation in FTP Adapter. I wanted to make Hostname,portName,Username and Password Dynamic.
Pls suggest how to achieve this in SOA 10g.
thanks,
Abor http://blogs.oracle.com/adapters/2010/04/changing_the_connection_factory_jndi_dynamically_in_ftp_adapter.html
the make the jndi dynamic, but you still have to setup all the jndi lookups before you can dynamically can change them -
The same filename from a sender to a receiver file adapter - SP14
Hi Expers,
I Have Gone through the link which is given bu Michal.
/people/michal.krawczyk2/blog/2005/11/10/xi-the-same-filename-from-a-sender-to-a-receiver-file-adapter--sp14
Here My Questions are.........
1.Should we give any file name in the receiver side Adapter in this scenario.?????
2.How wil be the Sender and Receiver Communication channel Parameters????
What Are they???????
Please Clarify me...
Regards
KhannaHi Rajesh,
Is your query related to sending the file name from the source xml document to the reciever file adapter. If so this can be achieved.
Pls. do the following.
1. In the mapping program that you are using populate the filename coming from the source into the target root element.
2.Sender adapters can write adapter-specific attributes to the message header; these can then be evaluated at configuration time
3. To change the adapter-specific attributes of the message header by using message mappings, you access the required classes of the mapping API by using a mapping runtime constant.
<b>Note: You donot need to specify any filename in the receiver communication channel.</b>
To access the classes DynamicConfiguration and DynamicConfigurationKey by using the mapping runtime constant DYNAMIC_CONFIGURATION, use the method getTransformationParameters() of the container object.
Create an simple user defined function in the mapping and use the following code.
Imports: com.sap.aii.mapping.api.*;
Parameter: String filename
Paramter: String filename;
filename = fileName + ".DAT";
DynamicConfiguration conf = (DynamicConfiguration) container
.getTransformationParameters()
.get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create( "http://sap.com/xi/XI/System/File", "FileName");
conf.put(key, filename);
return filename;
You donot need to hard code the value of the filename in the file adapter for your interface.
In SXMB_MONI, when you see the pipeline services you would see that the value of the filename is populated in the message payload.
Thanks
Indranil -
Error dynamic File Name in Receiver File Adapter
Hi all,
Dynamic file name for Receiver file Adapter Problem
my multi mapping look like this in design mode
messages
message1
SD01_E
FileName
row
message2
SD02_E
FileName
row
by processing the xml look like this:
<ns2:SD01_E xmlns:ns2="urn:lsv.de/SAP/XXX">
<FileName>L40SA939.xiConstant</FileName>
- <row>
or
<ns2:SD02_E xmlns:ns2="urn:lsv.de/SAP/XXX">
<FileName>L40SA939.xiConstant</FileName>
- <row>
in file receivere adapter i have try this but it dos not work
payload:SD01_E,1,FileName,1
Error:com.sap.engine.lib.xml.parser.ParserException: XMLParser: No data allowed here: (hex) 0(:main:, row:1, col:0)
is there any way to have access to Filename in different root elements??
regards
RalfHi Ralf,
i think, you need for each XML msg (each different root element) a new adapter -> a new IF determination, new rec agreement and a new channel.
Regards,
Udo -
How to give a dynamic File Name for Receiver File/FTP Adapter.
Hi Experts,
I have one scenario in which we are creating a flat file of IDOC which is coming from R/3 & sending it to FTP location. For this we have configured Receiver FTP adapter with File Name Scheme as "NT.out" & in File Consturction mode i have given as "Add Time Stamp".
therfore while creating a file it is creating as NTyyyyMMdd-HHmmss-SSS.out
where as my requirement is only to to add Time & not the Date. (NThhmmss.out)
How to do this ?
for your info we are using ABAP Mapping.
Pl help me
Regards,
UmeshHi Umesh,
Add one more field to your target structure for your file name and populate that field as per your requirement like NTyyyyMMdd.out. In receiver communication channel use Variable subtiution option and give the refrence of Payload and file construction mode set as create.
And refer the below weblogs for Variable Subtiutuion File Name Scheme
/people/jayakrishnan.nair/blog/2005/06/20/dynamic-file-name-using-xi-30-sp12-part--i - Dynamic File Name Part 1
/people/jayakrishnan.nair/blog/2005/06/28/dynamic-file-namexslt-mapping-with-java-enhancement-using-xi-30-sp12-part-ii - Dynamic File Name Part 2
Hope this way would be solve u r problem.
Cheers
Veera
>>>Reward points, if it is needful -
Setting dynamic file name in Receiver file adapter - not from payload
Guys I just remember reading a weblog but can't find it now that I need it, on how to set the file name in message mapping dynamically but not using any payload field.
Please let me know if you remember this.
Thanks a lot,
Viktor Vargaalso u can check in
<a href="/people/jayakrishnan.nair/blog/2005/06/28/dynamic-file-namexslt-mapping-with-java-enhancement-using-xi-30-sp12-part-ii file name(XSLT Mapping with Java Enhancement) using XI 3.0 SP12 Part -II</a>
<a href="/people/michal.krawczyk2/blog/2005/11/10/xi-the-same-filename-from-a-sender-to-a-receiver-file-adapter--sp14: The same filename from a sender to a receiver file adapter - SP14</a> -
Dynamic File name in Receiver File adapter
Hi,
My Scenario is Proxy to File.
I must create filename dynamically in the receiver file adapter by taking the sales order number and divison from the source.
How can i create a dynamic filename? i searched the forum, but i could not get the correct answer,
Please help me out.
Regards
SrinivasHi Srinivas,
> My Scenario is Proxy to File.
> I must create filename dynamically in the receiver file adapter by taking the sales order number and divison from the source.
public String targetFileName(String Sono, String Div, Container container) throws StreamTransformationException
DynamicConfiguration conf = (DynamicConfiguration)container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
String MyFileName = sono + div + "<filename>"+".xml";
conf.put(key, MyFileName);
return MyFileName;
File name you can format according to your requirement.
And one more thing for this you have to specify the ASMA properties. For this check the below link step-1 and step-2.
/people/michal.krawczyk2/blog/2005/11/10/xi-the-same-filename-from-a-sender-to-a-receiver-file-adapter--sp14
Regards
Ramesh -
Dynamic File name for File receiver adapter
Hello,
I am doing Proxy sender to File receiver scenario.
Filename is generated in SAP R/3 program and I want to create the file with this same name
on target location.
please suggest me how to use this file name in Receiver file adapter?.
Thanks & Regards
JageshHi,
you have to enable the adapter specific parameter --> file name in both the sender and the receiver CC to get the input file name as output file name.
Refer this blog:
/people/michal.krawczyk2/blog/2005/11/10/xi-the-same-filename-from-a-sender-to-a-receiver-file-adapter--sp14
Also you need to use this udf
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
String ourSourceFileName = conf.get(key);
return ourSourceFileName;
Also refer this blog:
/people/william.li/blog/2006/04/18/dynamic-configuration-of-some-communication-channel-parameters-using-message-mapping
Regards,
Nithiyanandam
Maybe you are looking for
-
My wife and I are going to share a PC,, W7,, can we have seperate iTunes accounts and libraries on the same PC?
-
How do I verify a new email account?
I started a new form and would like to add another email for the responses to go to. It keeps telling me that the new email address I added is not verified. How do I verify it?
-
Exporting HD mpeg2 to cable lab standards for cable insertion. (VOD)
Can compressor export to cable lab standards? I have tried using the mpeg2 transport stream setting but that gets rejected from insertion. these are the specs I need. Multiplexed Stream: MPEG -2 Transport 481 Video PID 482 Audio PID 19.0 mbps Video:
-
Create a cursor from a PL/SQL variable or an external file
Dear friends, is there a way for me to make Oracle Forms read a cursor from a PL/SQL variable, or an external file? Let's suppose we have the code below: DECLARE cursor c_values is select * from my_table; r_values c_values%ROWTYPE; BEGIN for r_values
-
I am currently creating 5x4' posters in illustrator, Do I have to work with images at that size when creating the posters or can I work on a small scale and ramp up the size when done? I am not very well versed in Illustrator so bear with me! Any hel