Adapter Module Filename in File Receiver Channel
Hi All,
is it possible to set the Filename in File Receiver Adapter from Adapter Module?
I know that it is possible to read the data
Channel ch = new Channel(moduleContext.getChannelID());
path = ch.getValueAsString("file.targetDir");
I Need to set the filename in Adapter Module, using of Payload is not possible because Payload is not xml.
Dynamic Parameters in Message Header is not possible because it is an multi mapping process an i need dynamic Filename for each Part
payload after mapping is like
MainDocument
SubMainDocument
MainDocument
SubMainDocument
i need special Name for each SubMainDocument in FileReceiverAdapter
regards
ralf
Hello Stefan,
interface mapping is an mapping like this:
outbound_interface => Inbound_Interface1
=> Inbound_Interface2
=> Inbound_Interface3
in sxmb_moni this looks like this
Soap_Header
Soap_Body
Payloads
=>MainDocument ( application/xml )
=> SubMainDocument ( text/xml )
=>MainDocument ( application/xml )
=> SubMainDocument ( text/xml )
First SubMainElement is routing to FileReceiverAdapeter A where Filename has to be like "NameA%nr%"
second SubMainElement is routing to FileReceiverAdapeter B where Filename has to be like "NameB%nr%"
%nr% is som value from the Payload.
Payload is not xml because using of Conversion Argent!!
I Think there is only one Dynamic in Header for all subelements, i have test it!
ralf
Similar Messages
-
Adapter Module for Sender File Adapter to access a Flat file
Hi,
We have a scenario where the source is a flat file.I want to develop an Adapter Module to make a small change to every line in the Flat file.
Now how do we read a flat file in the Adapter Module?Coz the flat file will be converted to XML file by the Standard Adapter Module of the File adapter.
Please help me out with this.
Thank you,
Anu.Hi Anu,
If you are not using Content Conversion option Standard Adapter Module does not convert the Flat file to XML .
You can directly access the payload as it is in flat file in the Adapter Module and make changes.
Use the Standard classes ModuleData & moduleContext to fetch the Payload.
chk this :
Customized Sender Adapter Module
XI: Read data from PDF file in Sender Adapter
regards
Ganga -
Error in file receiver channel "Unknown payload format 0 in the message"
hello
there is an errror in my receiver file channel with the status "Unknown payload format "
my channel is file receiver channel.
we implemented one sap note 1295430 and after that channnel is giving the error.
Please forward your views.
thanks.Hi there,
First of all, what TBDL means - It means that the message was successfully delivered from Integration Server and that the messages are handed over to the Messaging System.
TBDL occurs when the message is put into the receiving queue of the Messaging System.
What can be done?
Go to Messaging System receive servlet:
http://<Host>:<PORT>/MessagingSystem/receive/<CONNECTION>/<PROTOCOL>
If this was executed successfully, then the MS returns HTTP 200 to the Integration Server and the status TBDL moves to DELIVERING (check whether you have authorization to go to the above link).
--> Log-in to SAP using - XIAPPLUSER & XIAFUSER, and check if they are blocked
--> Check the messages:
AF
com.sap.aii.adapterframework.serviceuser.language
com.sap.aii.adapterframework.serviceuser.name = XIAFUSER
com.sap.aii.adapterframework.serviceuser.pwd
AS
com.sap.aii.applicationsystem.serviceuser.language
com.sap.aii.applicationsystem.serviceuser.name = XIAPPLUSER
com.sap.aii.applicationsystem.serviceuser.pwd
Also, worth reading - /people/sap.user72/blog/2005/11/29/xi-how-to-re-process-failed-xi-messages-automatically
Let us know if you have more questions.
regards,
Neetesh -
Error in File Receiver Channel
Dear All,
I am Getting below error in File Receiver Channel.
Message processing failed. Cause: com.sap.aii.af.ra.ms.api.RecoverableException: Error when getting an FTP connection from connection pool: com.sap.aii.af.service.util.concurrent.ResourcePoolException: Unable to create new pooled resource: FTPEx: User ABC cannot log in.
Regards,
ManikandanHi Manikandan,
Check the username and the password for the FTP server. If the username or the password is wrong then you would be able to post the message.
Also, there might be a timout issue, In the timeout parameter enter some value.
Ref: FTP Server connection Problem
Check and update us.
Thanks, -
Adapter module to enhance File adapter
Hey guys
i need a small clarification regarding adapter modules.
is it possible via adapter modules to enhance the File adapter to such an extent that it can deliver files to two separate systems in separate landscapes.
i know i can design one more receiver determination and can also use Run OS command options,but modules in general give better performance compared to others so just wan't to explore a little bit more about them.
Thanx
AamirHey Aamir,
yeah, they do take a lot of resources, but that's how XI was built to work.
What you're trying to do is a workaround and may not get support from SAP.
If I have understood right, you still wanna maintain the endpoint connection data in the communication channels but want to acces them directly without going through the technical routing pipeline, is that so?
If that's it, I'm sorry but I cannot help you any further.
The only way I know of accessing adapters without going throught technical routing is by using lookup API (RFC, JDBC, Soap) but it is not intended for endpoint scenarios (insert, update etc), mainly for simple read (lookups).
If maintaining the connection data outside adapters is not a concern, you could try to create the connections directly in Java code, inside java proxies.
Regards,
Henrique. -
Adapter module that dumps file to XI file directory
I am given a task to find a way of backing up files the simpliest way. Currently, our config is in a scenario where there are 2 receiver, the receiving system (SAP) and the file backup (File adapter). I would want to reduce the config requirements by eliminating the file backup objects. And I am thinking of doing this by creating an adapter module to be included in the sender adapter.
Another idea I could think of is the adapter module calls upon the file comm channel to do the file backup.
The purpose of this research is to reduce object transport time and the mistakes the transport guys are doing on the file comm ch reconfiguration.
To those who have experiences with adapter module development, is this idea feasible?Hi Jai,
Thanks for your reply. That is the 2nd option I have in case the 1st one isnt possible.
To further elaborate,
Current config:
we have two AS2 comm channels (sender and receiver) managing the connection with our external partners.
File comm channels to backup the files we send and receive.
The problem:
We are having problems with the transport guys as they often make mistake on reconfiguring the file comm channel during transport.
Requirements:
Reduce object creation and tranport time.
Solution proposal 1:
The idea is to remove all existing objects related to file back up and have all the file back ups done by the adapter module. And this adapter module would become part of the as2 comm channels module processes.
Hope this clarifies things more. -
Error in Adapter Module to unzip files
Hello ,
I wish to unzip many files with use of an adapter module
To du this I use following code
package de.lsv.moduledevelopement;
import java.io.*;
import java.util.Hashtable;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import javax.ejb.CreateException;
import com.sap.aii.af.mp.module.Module;
import com.sap.aii.af.mp.module.ModuleContext;
import com.sap.aii.af.mp.module.ModuleData;
import com.sap.aii.af.mp.module.ModuleException;
import com.sap.aii.af.ra.ms.api.Message;
import com.sap.aii.af.ra.ms.api.MessageDirection;
import com.sap.aii.af.ra.ms.api.Payload;
import com.sap.aii.af.ra.ms.spi.Trace;
import com.sap.aii.af.service.auditlog.Audit;
import com.sap.aii.af.service.auditlog.AuditDirection;
import com.sap.aii.af.service.auditlog.AuditLogStatus;
import com.sap.aii.af.service.auditlog.AuditMessageKey;
* @ejbLocal <{de.lsv.moduledevelopement.UnZipFilesLocal}>
* @ejbLocalHome <{de.lsv.moduledevelopement.UnZipFilesLocalHome}>
* @stateless
public class UnZipFilesBean implements SessionBean, Module {
static AuditMessageKey amk = null;
static String auditStr = "UnzipFilesBean - ";
static ModuleException mEx = null;
public static final String VERSION_ID =
"$Id://de.lsv.moduledevelopement.UnZipFilesBean.java#1 $";
private static final Trace TRACE = new Trace(VERSION_ID);
public void ejbRemove() {
public void ejbActivate() {
public void ejbPassivate() {
public void setSessionContext(SessionContext context) {
myContext = context;
private SessionContext myContext;
* Create Method.
public void ejbCreate() throws CreateException {
// TODO : Implement
/* (non-Javadoc)
* @see com.sap.aii.af.mp.module.Module#process(com.sap.aii.af.mp.module.ModuleContext, com.sap.aii.af.mp.module.ModuleData)
public ModuleData process(
ModuleContext moduleContext,
ModuleData inputModuleData)
throws ModuleException {
Object obj = null;
Message msg = null;
Payload attachment = null;
//initializing variables for module parameters
String modkey = "";
String fileMask = "";
String directory = "";
String saveDirectory = "";
// String newMimeType = "";
// String newAttachmentName = "";
// String newAttachmentExtension = "";
// String newAttachmentNameReplace = "";
//this block is to manage the adapter when is not file/FTP
try {
//get the XI Message
obj = inputModuleData.getPrincipalData();
msg = (Message) obj;
// create AuditMessageKey object to write audit log.
if (msg.getMessageDirection() == MessageDirection.INBOUND)
amk =
new AuditMessageKey(
msg.getMessageId(),
AuditDirection.INBOUND);
else
amk =
new AuditMessageKey(
msg.getMessageId(),
AuditDirection.OUTBOUND);
// ******start get the module parameters from the configuration******
modkey = moduleContext.getContextData("module.key");
Audit.addAuditLogEntry(
amk,
AuditLogStatus.SUCCESS,
auditStr + "Module Configuration Key: " + modkey);
//***** einlesen der Moduke Parameter******************
//***** DateiMaske
fileMask = moduleContext.getContextData("FileMask");
Audit.addAuditLogEntry(
amk,
AuditLogStatus.SUCCESS,
auditStr + "FileMask: " + fileMask);
// check ob fileMask definiert ist
if (fileMask == null || fileMask.equalsIgnoreCase("")) {
//if no attachment name is specified in the module configuration the module will end the execution
throw mEx =
new ModuleException(
auditStr
+ "!FileMask in Modulconfiguration nicht definiert!");
//***** DateiMaske2
String fileMask2 = moduleContext.getContextData("FileMask2");
Audit.addAuditLogEntry(
amk,
AuditLogStatus.SUCCESS,
auditStr + "FileMask2: " + fileMask2);
//***** Directory
directory = moduleContext.getContextData("Directory");
Audit.addAuditLogEntry(
amk,
AuditLogStatus.SUCCESS,
auditStr + "Directory: " + directory);
// Fehler wenn Directory nicht definiert
if (directory == null || directory.equalsIgnoreCase("")) {
//the module will end the execution
throw mEx =
new ModuleException(
auditStr
+ "Directory in Modulconfiguration nicht definiert");
//***** Sicherungs Verzeichnis
saveDirectory = moduleContext.getContextData("SaveDirectory");
Audit.addAuditLogEntry(
amk,
AuditLogStatus.SUCCESS,
auditStr + "SaveDirectory: " + saveDirectory);
// entpacken aufrufen
entpacke(directory, saveDirectory, fileMask);
if (fileMask2.length() > 0) {
entpacke(directory, saveDirectory, fileMask2);
//update the XI Message
inputModuleData.setPrincipalData(msg);
} catch (Exception e) {
String errorMessage =
auditStr + "Error bei der . Exception:" + e.getMessage();
Audit.addAuditLogEntry(amk, AuditLogStatus.ERROR, errorMessage);
throw mEx = new ModuleException(auditStr + errorMessage);
Audit.addAuditLogEntry(
amk,
AuditLogStatus.SUCCESS,
auditStr + "Verarbeitung beendet ");
return inputModuleData;
//+++++++++++++++++++++++++
private static void entpacke(
String directory,
String saveDirectory,
String mask)
// TODO Auto-generated method stub
Audit.addAuditLogEntry(
amk,
AuditLogStatus.SUCCESS,
auditStr + "Funktion entpacke");
if (!directory.endsWith("\")) {
directory = directory + "\";
} // if
File f;
f = new File(directory);
Audit.addAuditLogEntry(
amk,
AuditLogStatus.SUCCESS,
auditStr + "f = new File(directory)");
// // Achtung Klasse in einer Klasse :-)
// String[] strFiles = f.list(new FilenameFilter() {
// public boolean accept(File file, String filename) {
// Wildcard wildcard1 = new Wildcard(mask);
// Audit.addAuditLogEntry(
// amk,
// AuditLogStatus.SUCCESS,
// auditStr + "wc1");
// return wildcard1.match(filename, false);
String [] strFiles = f.list(new MyFilter(mask));
// Liste der Gefundenen dateien
Audit.addAuditLogEntry(
amk,
AuditLogStatus.SUCCESS,
auditStr + "Anzahl gepackter Dateien: " + strFiles.length);
//System.out.println( strFiles.length + " Dateien zum entpacken");
for (int i = 0; i < strFiles.length; i++) {
Audit.addAuditLogEntry(
amk,
AuditLogStatus.SUCCESS,
auditStr + "verarbeite Datei: : " + strFiles<i>);
// System.out.println("f[" + i + "]=" + strFiles<i>);
} // for
// *****entpacken**********************
for (int i = 0; i < strFiles.length; i++) {
try {
byte[] buf = new byte[4096];
ZipInputStream in =
new ZipInputStream(
new FileInputStream(directory + strFiles<i>));
Audit.addAuditLogEntry(
amk,
AuditLogStatus.SUCCESS,
auditStr + "Entpacke " + directory + strFiles<i>);
//System.out.println("Entpacke " + directory + strFiles<i>);
int count = 0;
while (true) {
count++;
// Nächsten Eintrag lesen
ZipEntry entry = in.getNextEntry();
if (entry == null) {
break;
// Beschreibung ausgeben
Audit.addAuditLogEntry(
amk,
AuditLogStatus.SUCCESS,
auditStr + entry.getName());
//System.out.println(entry.getName());
// Ausgabedatei erzeugen
FileOutputStream out =
new FileOutputStream(directory + entry.getName());
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
out.close();
// Eintrag schließen
in.closeEntry();
} // while
in.close();
Audit.addAuditLogEntry(
amk,
AuditLogStatus.SUCCESS,
auditStr + count + "Dateien entpackt");
//System.out.println(count + "Dateien entpackt");
// verschieben
if (saveDirectory.length() > 0) {
File quelle = new File(directory + strFiles<i>);
File ziel = new File(saveDirectory + strFiles<i>);
boolean bla = quelle.renameTo(ziel);
if (!bla) {
Audit.addAuditLogEntry(
amk,
AuditLogStatus.SUCCESS,
auditStr
+ strFiles<i>
+ " konnte nicht verschoben werden");
} else {
Audit.addAuditLogEntry(
amk,
AuditLogStatus.SUCCESS,
auditStr
+ strFiles<i>
+ "verschoben nach "
+ saveDirectory);
// System.out.println(
// strFiles<i> + "verscgoben nach " + directory + "sik//");
} // if
} catch (Exception e) {
String errorMessage =
auditStr
+ "Error in entpacken. Exception:"
+ e.getMessage();
Audit.addAuditLogEntry(amk, AuditLogStatus.ERROR, errorMessage);
} // catch
// *****entpacken*************
} // for
} //entpacke
} // UnzipFilesBean
class Wildcard {
static AuditMessageKey amk = null;
static String auditStr = "WildCard - ";
static ModuleException mEx = null;
private final String wildcardString;
* Der Konstruktor für die WildcardSuche.
* @param wildcardString
* Der WildcardString
public Wildcard(String wildcardString) {
this.wildcardString = wildcardString;
Audit.addAuditLogEntry(
amk,
AuditLogStatus.SUCCESS,
auditStr + "Constructor");
* Die Methode, welche den Vergleich durchführt.
* @param str
* Der String, welcher darauf überprüft werden soll, ob er dem
* WildcardString entspricht.
* @return true Wenn der String dem wildcardString entspricht.
public boolean match(String str, boolean fCasesensitive) {
if (str == null || wildcardString == null) {
return false;
return recursiveMatch(wildcardString, str, fCasesensitive);
* Hier wird der eigentliche Vergleich durchgeführt
* @param strWildcard
* Der Wildcardstring, z.B.: "Test*"
* @param str
* Der zu überprüfende String, z.B. "Testlauf"
* @return true, wenn eine Übereinstimmung vorhanden ist, sonst false
private boolean recursiveMatch(
String strWildcard,
String str,
boolean fCasesensitive) {
while (true) {
if (strWildcard.length() == 0)
return str.length() == 0;
char ch = strWildcard.charAt(0);
switch (ch) {
case '?' :
if (str.length() == 0)
return false;
break;
case '*' :
strWildcard = strWildcard.substring(1);
while (true) {
if (recursiveMatch(strWildcard, str, fCasesensitive))
return true;
if (str.length() == 0)
return false;
str = str.substring(1);
default :
if (str.length() == 0)
return false;
if (fCasesensitive) {
if (ch != str.charAt(0))
return false;
} else if (
Character.toLowerCase(ch)
!= Character.toLowerCase(str.charAt(0)))
return false;
break;
strWildcard = strWildcard.substring(1);
str = str.substring(1);
//++++++++++++++++++++++++++
} // class
/** Nun der eigentliche Filter */
class MyFilter implements FilenameFilter {
static AuditMessageKey amk = null;
static String auditStr = "MyFilter - ";
static ModuleException mEx = null;
String fileMask;
public MyFilter(String fileMask) {
this.fileMask = fileMask;
Audit.addAuditLogEntry(
amk,
AuditLogStatus.SUCCESS,
auditStr + "Constructor");
} //constructor
public boolean accept(File file, String filename) {
// TODO Auto-generated method stub
//fileMask = "?5LBL*";
Wildcard wildcard1 = new Wildcard(fileMask);
return wildcard1.match(filename, false);
} //class
But in Audit Protocol it failed after:
17.09.2008 17:33:19 Erfolgreich UnzipFilesBean - Module Configuration Key: 2
17.09.2008 17:33:19 Erfolgreich UnzipFilesBean - FileMask: ?5LBL???
17.09.2008 17:33:19 Erfolgreich UnzipFilesBean - FileMask2:
17.09.2008 17:33:19 Erfolgreich UnzipFilesBean - Directory: //transfer//X1E//100//99//lb//ein
17.09.2008 17:33:19 Erfolgreich UnzipFilesBean - SaveDirectory: //transfer//X1E//100//99//lb//ein_s
17.09.2008 17:33:19 Erfolgreich UnzipFilesBean - Funktion entpacke
17.09.2008 17:33:19 Erfolgreich UnzipFilesBean - f = new File(directory)
17.09.2008 17:33:19 Fehler UnzipFilesBean - Error bei der . Exception:null
I could not find the error??
Were there any log files to look into?
regarts
ZimmerningkatHi Ralf,
I am late..........
I am bit confused with your explanation.
1. Does all zip files will be picked by file adapter in one shot or is it conditional, since you have a XML descriptor file in firts zip file and the XML files describes the list of JPEG files which might be stored in the other zipped JPEG files?
2. Can you tell the exact flow of your scenario
3. Receiver in your scenario?
Thanks,
Gujjeti. -
BCM/SWIFT payment, parameter file Receiver channel
Iu2019m using the u201CSWIFT_payload_parFile_Splitu201D Operation Mapping for the FILEACT payment transaction.
The result should be
1) payload file
2) parameter file (*.par)
This seems to work just fine. My problems starts with the receiver channel for the *.par file.
I need to know more about how to setup the modules and parameters in the "*.par" receiver channel.
Is there a configuration guide for this?
Thanks.
FrankHi Frank,
I am facing similar issue. I am able to generate the parameter file but the overrides section contains only one parameter "Request Type" whereas there are other parameters that are mandatory. How do I get these filled?
Regards,
Deepthi -
File adapter modules : Access to file data before content conversion
I have a file sender channel for which content conversion in applied. The incoming file has data in comma separated values format.
e.g.
102366,Amol Joshi,DEPT1
107752,XYZ PQR,DEPT2
I want to access the the actual data in the file before content conversion takes place. Is it possible to access this data inside the adaper module? I tried creating an adapter module and put it before CallSAPAdapter,it still gets the XML after content conversion as the input data to the module.
Any pointers?Hi Amol,
I dont know if it is the right approach.
But if u r not able to meet ur requirement u can do one work around.
Use Message Transformation Bean to convert it once again in to CSV (flat file structure) and then proceed with ur module.
There should be a better way than this.
Hope we could find a better solution in the forum.
Regards,
Sudharshan -
Adapter Module (Reading Excel File)
Hi Guys,
I followed the Webblog : Read Excel instead of XML through FileAdapter
For File Adapter Module Development , for reading Excel Sheet.
Deployment all went fine and when i used in my configuration , file is getting picked up but the xml content is not getting displyed , it says not well formated.Below error is shown in the CC Monitor
The XML page cannot be displayed
Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later.
XML document must have a top level element. Error processing resource 'http://pxxxxx:50xxx/mdt/messagecontentservlet?att...
My coding in nwds
xmldata = "<?xmlversion="1.0"encoding="UTF-8"?>
+ "<ns:"+wb.getSheet(0).getCell(0, 0).getContents() +"xmlns:ns=""
+ wb.getSheet(0).getCell(1, 0).getContents() + "">"
+ "<Name>"+ wb.getSheet(0).getCell(1, 2).getContents()
+ "</Name>" +"</ns:" wb.getSheet(0).getCell(0, 0).getContents()">";
Kindly suggest if any
srini
Edited by: Venkateswarlu Srinivas on Jul 4, 2008 2:47 PMtry removing the \n you have added in the string
-
Com.sap.sql.DuplicateKeyException in file receiver channel
Hi experts,
I am currently testing the following scenario:
xml file -> file sender ->file receiver -> csv file
No mapping is used. Both channels are on the same PI 7.1 system.
The transformation seems to work so far. The only problem I have is that my receiver channel does not post the message to the directory because of this error:
Delivering the message to the application using connection File_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.DuplicateMessageException: Message Id f167e134-145e-4b2c-2d47-e431b8b34fd8(INBOUND) already exists in duplicate check table: com.sap.sql.DuplicateKeyException: [200]: Duplicate key.
Is it not possible to use file sender and file receiver in the same scenario? Thanks for any help.
Best regards.
Oliver.Hi André,
I am using the test option so the message can be processed multiple times. Anyway, I also tried using deletion but I still get the same error. I also tried a completely new file but still no change. When I check the comm channel I see that there is always created a new message id and when I search the rwb it posts two entries. One from the sender step and one from the receiver step. Seems to be alright to me.
Regards.
Oliver. -
No SuchAgorithmException in Adapter Module configured EAR file
Dear All,
I have created an adapter module using 3DES encryption/decryption algorithm for File/FTP adapter configuration and have deployed it at J2EE server of respective XI system.
The alogorithm and adapter module are working fine in DEV & QA environments but in Mirror system(which is similar to Prod), I have been encountering Error:-
<i><b>java.security.NosuchAlgorithmException: Algorithm DESede not available</b></i>
Can you please suggest what could be issue here? Any inputs will be highly appreciated.
Thanks and Best Regards
Prashant RajaniHi
see the below links
http://help.sap.com/saphelp_nw04/helpdata/en/0d/d517412797f523e10000000a155106/frameset.htm
CJS-20030 Checking if the secure store exists fails,
SHA-1 MessageDigest not available during WebAS Java install
/thread/12191 [original link is broken]
/thread/11521 [original link is broken]
verify url secKey
Regards
Chilla -
Java Mapping Or Adapter Module for MultiLevel File Content Conversion ??
Hi Experts,
Hi All,
As we all know file content conversion cannot parse more than three level even if we use FCC paramenters or MessageTransform Bean /StrictXmlToPlain Bean.
Currently i am facing an scenario where i can expect an content coversion with four or five levels.
for ex.
Target Message Looks like
Header(0..1)
|_____X
|_____Y
|_____Detail(0.n)
|____A
|____B
|____SubDetail(0.n)
|_____Trailer(0.n)
|______rec1
|______rec2
|______rec3(0..n)
|______Subrec1
|______Subrec2
So my question how can i do the FixedLength/CSV in the target system ???
Shall i do java mapping ? if yes then any code example relevant to this type of scenario
Shall i do adapter module development ?if yes then any code example relevant to this type of scenario
Thanks In Advance
Ronit MishraTarget Message Looks like
Header(0..1)----
Level 1
|_____X
|_____Y
|_____Detail(0.n)----
Level 2
|____A
|____B
|____SubDetail(0.n)----
Level 3
|_____Trailer(0.n)----
Level 4
|______rec1
|______rec2
|______rec3(0..n)----
Level 5
|______Subrec1
|______Subrec2 -
Regarding Adapter Module for Duplicate file handling at Sender side
Hi All
my requirement is to develop a adapter module . Source is FTP target is R/3 .source Commuincation cahnnel is File sender .
want to handle duplicate files
can any one provide me what are all the steps being used for the same .
any step-via -step doc will be helpful for me ......and adapetr module will be written in NetWeaver Developer studio or which s/W ????
also where to put the ejb or import the ejb s...
Pls help
Regards
PriyaHi Priya,
YES YOU NEED SAP NetWeaver Developer studio to develop Adapter Modules,or you can use any othe IDEs like Eclipse ....many documents available in sdn ,how to develop AM,refer below link it explaines clearly
let me know which version of XI u working on,if it PI7.1 jar files different.
http://wiki.sdn.sap.com/wiki/display/stage/AdapterModuleToReadExcelFilewithMultipleRowsandMultiple+Columns
Regards,
Raj -
Updated Filename in File Receiver
I need to append today's date to the file name when outputting a file. The date isn't available in the outbound XML so I can't use variable substitution. Does anyone have any suggestions?
Hi,
I don't have access to a date or time in the outbound XML file so I can't use variable substitution. I can't add additional fields to the outbound message as the partner would reject them.
To Map the Date function you no need any field in the source structure.The Date function is the standard function.and it wont take any input from sourece.it simply returns the current date in the specifies format.
I see that I need to create a mapping to the root node, using my date and including a userdefined function to put this value somewhere I can get it later
generally u specify your file name in Receiver communincation channel.So the same file name you have to concate with the Date (by usind predefined function Concat) and give the new string that means(ex:Filename = XYZ and Date :20080914 then new concated string whould be "XYZ20080914")
you have to create one new UDF and copy the code that have specified and give the new String (for ex:XYZ20080914) as input.map it to root node.
In ID you have to enable Adapter specific message attributes and also Filename in that.(Give * or any string in the place of File name) Because of this in the receiver file adapter it wont take the static filename which we have specified in the fiels FileName,instead it will take the File name which we have specified in Mapping UDF.
Maybe you are looking for
-
Time Capsule--can I back up Two different Laptops on the Time Capsule?
It's just about that easy. I just got the Time Capsule. I backed up my MacBook Pro. Now I'd like to use the same Time Capsule to back up my wife's MacBook. Can this be done? If so, how? I keep getting the failed message from the Time Machine Backup.
-
ConfigMgr client no longer installing during task sequence SCCM 2007
I've been trying to create an image and deploy an image of Dell Latitude E6430 laptops that while the deployment of the image works it does not install the SCCM client (configmgr client). This used to work in my environment but no longer does. I ca
-
Shared Corporate directory between clusters
Hello All, Is it possible to share a single corporate directory between two clusters, without using a 3rd party software or external server ? Cluster A is 8.0(3) and Cluster B is 8.6(2). I have a working intercluster trunk at this time, all 1xxx DN a
-
hi friends, I am doing my project in grid computing.I am using RMI. but sometimes what happens is when i submit the jobs to the machines and after completion when i collect the values and display the output, sometimes i am not able to get the whole i
-
Trouble configuring SunScreen 3.2
"--Adding interfaces & interface addresses --Applying edits --Activating configuration _I_MUXID2FD::: Invalid argument 33 /usr/lib/sunscreen/lib/ss_activate: ss_default_drop failed, return code 33 -- Exiting... An error occurred while activating the