ASMA Directory

Hi Guys,
Could someone please guide me with a problem that I am having using the file adapter's ASMA?
I am trying to pick-up a file using the file adapter and then place the file in a different directory also using the file adapter.  I have selected the Directory ASMA in both adapters.  I am also keeping the same filename.  This part is working fine.
I am using a UDF to specify the target directory.  The UDF contains that following code:
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 filename = conf.get(key);
conf.put(key, filename);
String directory = conf.get(key1);
directory = "/Central/Branches/70018/";
conf.put(key1, directory);
return a;
The problem that I am experiencing is that the file is placed back into the source folder, thus causing a loop.  It appears that the UDF is not changing the target directory.
Thanks very much,
Miguel

Hi Bhavesh,
I have reactivated the message mapping and done a full cache refresh...
I cannot find the section of the trace that you have mentioned.
This is the trace that I get:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!-- Response --> <SAP:Trace xmlns:SAP="http://sap.com/xi/XI/Message/30"><Trace level="1" type="T">Party normalization: sender </Trace>
<Trace level="1" type="T">Sender scheme external = XIParty</Trace>
<Trace level="1" type="T">Sender agency external = http://sap.com/xi/XI</Trace>
<Trace level="1" type="T">Sender party external = </Trace>
<Trace level="1" type="T">Sender party normalized = </Trace>
<Trace level="1" type="T">Party normalization: receiver </Trace>
<Trace level="1" type="T">Receiver scheme external = </Trace>
<Trace level="1" type="T">Receiver agency external = </Trace>
<Trace level="1" type="T">Receiver party external = </Trace>
<Trace level="1" type="T">Receiver party normalized = </Trace>
<Trace level="1" type="B" name="CL_XMS_HTTP_HANDLER-HANDLE_REQUEST"></Trace><!-- ************************************ -->
<Trace level="1" type="T">XMB was called with URL /sap/xi/engine?type=entry</Trace>
<Trace level="2" type="T">Request Line = POST /sap/xi/engine?type=entry HTTP/1.1</Trace>
<Trace level="2" type="T">Host = pgsap45.sap.pg.co.za:8001</Trace>
<Trace level="2" type="T">Server protocol = HTTP/1.1</Trace>
<Trace level="2" type="T">Remote address = 172.16.1.108</Trace>
<Trace level="1" type="T">COMMIT is done by XMB ! </Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-ENTER_XMS"></Trace><!-- ************************************ -->
<Trace level="1" type="B" name="CL_XMS_MAIN-SET_START_PIPELINE"></Trace><!-- ************************************ -->
<Trace level="3" type="T">XMB was called with external pipeline PID = ENTRY</Trace>
<Trace level="3" type="T">Getting type of XMB... </Trace>
<Trace level="1" type="B" name="SXMBCONF-SXMB_GET_XMB_USE">
</Trace>
<Trace level="2" type="T">XMB kind = CENTRAL</Trace>
<Trace level="3" type="T">Start pipeline found </Trace>
<Trace level="2" type="T">Switch to external start pipeline PID = CENTRAL</Trace>
<Trace level="1" type="B" name="CL_XMS_TROUBLESHOOT-ENTER_PLSRV">
<Trace level="3" type="T">No triggers found. OK. </Trace>
</Trace>
<Trace level="1" type="T">**************************************************** </Trace>
<Trace level="1" type="T">*                                                  * </Trace>
<Trace level="1" type="T">*                                                  * </Trace>
<Trace level="1" type="T">XMB entry processing </Trace>
<Trace level="3" type="T">system-ID = XIQ</Trace>
<Trace level="3" type="T">client = 300</Trace>
<Trace level="3" type="T">language = E</Trace>
<Trace level="3" type="T">user = XIAFUSER</Trace>
<Trace level="1" type="Timestamp">2007-08-28T13:57:48Z CAT  </Trace>
<Trace level="1" type="T">*                                                  * </Trace>
<Trace level="1" type="T">*                                                  * </Trace>
<Trace level="1" type="T">**************************************************** </Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_UC_EXECUTE"></Trace><!-- ************************************ -->
<Trace level="1" type="T">Message-GUID = 8489A912556E11DC9A030014220DCB99</Trace>
<Trace level="1" type="T">PLNAME = CENTRAL</Trace>
<Trace level="1" type="T">QOS = EO</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PIPELINE_ASYNC"></Trace><!-- ************************************ -->
<Trace level="3" type="T">QOS = EO</Trace>
<Trace level="3" type="T">Message-GUID = 8489A912556E11DC9A030014220DCB99</Trace>
<Trace level="1" type="T">Get definition of external pipeline = CENTRAL</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-LOOKUP_INTERNAL_PL_ID">
<Trace level="3" type="T">External PLID = CENTRAL</Trace>
<Trace level="3" type="T">Internal PLID = SAP_CENTRAL</Trace>
</Trace>
<Trace level="1" type="T">Get definition of internal pipeline = SAP_CENTRAL</Trace>
<Trace level="3" type="T">Generate prefixed queue name </Trace>
<Trace level="1" type="T">Queue name : XBTI0002</Trace>
<Trace level="1" type="T">Generated prefixed queue name = XBTI0002</Trace>
<Trace level="1" type="T">Schedule message in qRFC environment </Trace>
<Trace level="3" type="T">Setup qRFC Scheduler </Trace>
<Trace level="1" type="T">Setup qRFC Scheduler OK! </Trace>
<Trace level="3" type="T">Call qRFC .... MsgGuid = 8489A912556E11DC9A030014220DCB99</Trace>
<Trace level="3" type="T">Call qRFC .... Version = 000</Trace>
<Trace level="3" type="T">Call qRFC .... Pipeline = CENTRAL</Trace>
<Trace level="3" type="T">OK. </Trace>
<Trace level="1" type="T">----
</Trace>
<Trace level="1" type="T">Going to persist message </Trace>
<Trace level="1" type="T">NOTE: The following trace entries are always lacking </Trace>
<Trace level="1" type="T">- Exit WRITE_MESSAGE_TO_PERSIST </Trace>
<Trace level="1" type="T">- Exit CALL_PIPELINE_ASYNC </Trace>
<Trace level="1" type="T">Async barrier reached. Bye-bye ! </Trace>
<Trace level="1" type="T">----
</Trace>
<Trace level="3" type="T">Version number = 000</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST"></Trace><!-- ************************************ -->
<Trace level="3" type="T">Persisting message Status = 001</Trace>
<Trace level="3" type="T">Message version 000</Trace>
<Trace level="3" type="T">Pipeline CENTRAL</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-PERSIST_READ_MESSAGE">
<Trace level="3" type="T">Trace object available again now. OK. </Trace>
<Trace level="3" type="T">Message was read from persist layer. OK. </Trace>
<Trace level="3" type="T">Message properties in XMB object were setup. OK. </Trace>
<Trace level="3" type="ToDo">Make sure we catch exceptions in persist read </Trace>
<Trace level="3" type="ToDo">Tracing obj. not avail. before return of CL_XMS_MAIN-PERSIST_READ_MESSAGE</Trace>
</Trace>
<Trace level="1" type="T">Note: the following trace entry is written delayed (after read from persist)</Trace>
<Trace level="1" type="B" name="SXMS_ASYNC_EXEC"></Trace><!-- ************************************ -->
<Trace level="3" type="T">message version successfully read from persist version= 000</Trace>
<Trace level="2" type="T">Increment log sequence to 001</Trace>
<Trace level="1" type="T">----
</Trace>
<Trace level="1" type="T">Starting async processing with pipeline CENTRAL</Trace>
<Trace level="3" type="T">system-ID = XIQ</Trace>
<Trace level="3" type="T">client = 300</Trace>
<Trace level="3" type="T">language = E</Trace>
<Trace level="3" type="T">user = XIAFUSER</Trace>
<Trace level="1" type="Timestamp">2007-08-28T13:57:52Z CAT  </Trace>
<Trace level="1" type="T">----
</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PIPELINE_SYNC">
<Trace level="1" type="T">Get definition of external pipeline CENTRAL</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-LOOKUP_INTERNAL_PL_ID">
<Trace level="3" type="T">External PLID = CENTRAL</Trace>
<Trace level="3" type="T">Internal PLID = SAP_CENTRAL</Trace>
</Trace>
<Trace level="1" type="T">Corresponding internal pipeline SAP_CENTRAL</Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">Pipeline attributes </Trace>
<Trace level="3" type="T">PID        = SAP_CENTRAL</Trace>
<Trace level="3" type="T">ENABLE     = 1</Trace>
<Trace level="3" type="T">TRACELEVEL = 0</Trace>
<Trace level="3" type="T">EXEMODE    = A</Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">Pipeline elements </Trace>
<Trace level="3" type="T">ELEMPOS    = 0001</Trace>
<Trace level="3" type="T">PLSRVID    = PLSRV_RECEIVER_DETERMINATION</Trace>
<Trace level="3" type="T">PLSRVTYPE  = </Trace>
<Trace level="3" type="T">FL_DUMMY   = 0</Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">ELEMPOS    = 0002</Trace>
<Trace level="3" type="T">PLSRVID    = PLSRV_INTERFACE_DETERMINATION</Trace>
<Trace level="3" type="T">PLSRVTYPE  = </Trace>
<Trace level="3" type="T">FL_DUMMY   = </Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">ELEMPOS    = 0003</Trace>
<Trace level="3" type="T">PLSRVID    = PLSRV_RECEIVER_MESSAGE_SPLIT</Trace>
<Trace level="3" type="T">PLSRVTYPE  = </Trace>
<Trace level="3" type="T">FL_DUMMY   = </Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">ELEMPOS    = 0004</Trace>
<Trace level="3" type="T">PLSRVID    = PLSRV_MAPPING_REQUEST</Trace>
<Trace level="3" type="T">PLSRVTYPE  = </Trace>
<Trace level="3" type="T">FL_DUMMY   = </Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">ELEMPOS    = 0007</Trace>
<Trace level="3" type="T">PLSRVID    = PLSRV_OUTBOUND_BINDING</Trace>
<Trace level="3" type="T">PLSRVTYPE  = </Trace>
<Trace level="3" type="T">FL_DUMMY   = </Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">ELEMPOS    = 0008</Trace>
<Trace level="3" type="T">PLSRVID    = PLSRV_CALL_ADAPTER</Trace>
<Trace level="3" type="T">PLSRVTYPE  = =SWITCH=</Trace>
<Trace level="3" type="T">FL_DUMMY   = </Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">ELEMPOS    = 0009</Trace>
<Trace level="3" type="T">PLSRVID    = PLSRV_MAPPING_RESPONSE</Trace>
<Trace level="3" type="T">PLSRVTYPE  = </Trace>
<Trace level="3" type="T">FL_DUMMY   = </Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="1" type="Timestamp">2007-08-28T13:57:52Z CAT Begin of pipeline processing PLSRVID = CENTRAL</Trace>
<Trace level="1" type="B" name="PLSRV_RECEIVER_DETERMINATION">
<Trace level="1" type="Timestamp">2007-08-28T13:57:52Z CAT Start of pipeline service processing PLSRVID= PLSRV_RECEIVER_DETERMINATION</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
<Trace level="3" type="T">Calling pipeline service: PLSRV_RECEIVER_DETERMINATION</Trace>
<Trace level="3" type="T">Reading Pipeline-Service specification... </Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">Pipeline service specification (table SXMSPLSRV) </Trace>
<Trace level="3" type="T">PLSRVID    = PLSRV_RECEIVER_DETERMINATION</Trace>
<Trace level="3" type="T">PLSRVTYPE  = </Trace>
<Trace level="3" type="T">ADRESSMOD  = LOCAL</Trace>
<Trace level="3" type="T">P_CLASS    = CL_RD_PLSRV</Trace>
<Trace level="3" type="T">P_IFNAME   = IF_XMS_PLSRV</Trace>
<Trace level="3" type="T">P_METHOD   = ENTER_PLSRV</Trace>
<Trace level="3" type="T">FL_LOG     = </Trace>
<Trace level="3" type="T">FL_DUMMY   = 0</Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">
<Trace level="1" type="B" name="CL_RD_PLSRV-ENTER_PLSRV">
<Trace level="1" type="T">R E C E I V E R - D E T E R M I N A T I O N </Trace>
<Trace level="1" type="T"> Cache Content is up to date </Trace>
<Trace level="2" type="T">Start without given receiver </Trace>
<Trace level="2" type="T">Classic Receiver Determination via Rules. </Trace>
<Trace level="2" type="T">Check conditions for rule line no. 1  </Trace>
<Trace level="3" type="T">...create rule engine </Trace>
<Trace level="3" type="T">...call rule engine for Condition %CL_SAI_SWF_RULE_ENGINE.MSG_GET_SYSTEM(MSG=&amp;_MSG&amp;;SYSFIELD=&quot;FileName&quot;;SYSNSP=&quot;http://sap.com/xi/XI/System/File")% [*] 6* </Trace>
<Trace level="2" type="T">......attachment XI_Context not found </Trace>
<Trace level="3" type="T">......extracting from attachment: FileName = 70018_SendMSG_Payment_0_709_20070807052913.xml </Trace>
<Trace level="2" type="T">......extracting values found: 1 </Trace>
<Trace level="2" type="T">...invalid Receiver:  - IP_Digicall_BranchPayment </Trace>
<Trace level="2" type="T">Check conditions for rule line no. 2  </Trace>
<Trace level="3" type="T">...call rule engine for Condition %CL_SAI_SWF_RULE_ENGINE.MSG_GET_SYSTEM(MSG=&amp;_MSG&amp;;SYSFIELD=&quot;FileName&quot;;SYSNSP=&quot;http://sap.com/xi/XI/System/File")% [*] 7* </Trace>
<Trace level="2" type="T">......attachment XI_Context not found </Trace>
<Trace level="3" type="T">......extracting from attachment: FileName = 70018_SendMSG_Payment_0_709_20070807052913.xml </Trace>
<Trace level="2" type="T">......extracting values found: 1 </Trace>
<Trace level="2" type="T">...valid Receiver with Condition:  - SBO_DRP_SERVER </Trace>
<Trace level="2" type="T">No Receiver found behaviour: 0  </Trace>
<Trace level="2" type="T">Number of Receivers:1  </Trace>
</Trace>
</Trace>
</Trace>
<Trace level="1" type="Timestamp">2007-08-28T13:57:52Z CAT End of pipeline service processing PLSRVID= PLSRV_RECEIVER_DETERMINATION</Trace>
</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST">
<Trace level="3" type="T">No persisting of message after plsrv call, because of config </Trace>
</Trace>
<Trace level="1" type="B" name="PLSRV_INTERFACE_DETERMINATION">
<Trace level="1" type="Timestamp">2007-08-28T13:57:52Z CAT Start of pipeline service processing PLSRVID= PLSRV_INTERFACE_DETERMINATION</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
<Trace level="3" type="T">Calling pipeline service: PLSRV_INTERFACE_DETERMINATION</Trace>
<Trace level="3" type="T">Reading Pipeline-Service specification... </Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">Pipeline service specification (table SXMSPLSRV) </Trace>
<Trace level="3" type="T">PLSRVID    = PLSRV_INTERFACE_DETERMINATION</Trace>
<Trace level="3" type="T">PLSRVTYPE  = </Trace>
<Trace level="3" type="T">ADRESSMOD  = LOCAL</Trace>
<Trace level="3" type="T">P_CLASS    = CL_ID_PLSRV</Trace>
<Trace level="3" type="T">P_IFNAME   = IF_XMS_PLSRV</Trace>
<Trace level="3" type="T">P_METHOD   = ENTER_PLSRV</Trace>
<Trace level="3" type="T">FL_LOG     = </Trace>
<Trace level="3" type="T">FL_DUMMY   = 0</Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">
<Trace level="1" type="B" name="CL_ID_PLSRV-ENTER_PLSRV">
<Trace level="1" type="T">I N T E R F A C E - D E T E R M I N A T I O N </Trace>
<Trace level="1" type="T"> Cache Content is up to date </Trace>
<Trace level="2" type="T">Check conditions for (Inb: Party Srvc If)  SBO_DRP_SERVER MI_Digicall_BranchPayment </Trace>
<Trace level="2" type="T">...valid InbIf without Condition: MI_Digicall_BranchPayment </Trace>
<Trace level="2" type="T">Number of receiving Interfaces:1  </Trace>
</Trace>
</Trace>
</Trace>
<Trace level="1" type="Timestamp">2007-08-28T13:57:52Z CAT End of pipeline service processing PLSRVID= PLSRV_INTERFACE_DETERMINATION</Trace>
</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST">
<Trace level="3" type="T">No persisting of message after plsrv call, because of config </Trace>
</Trace>
<Trace level="1" type="B" name="PLSRV_RECEIVER_MESSAGE_SPLIT"></Trace><!-- ************************************ -->
<Trace level="1" type="Timestamp">2007-08-28T13:57:52Z CAT Start of pipeline service processing PLSRVID= PLSRV_RECEIVER_MESSAGE_SPLIT</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
<Trace level="3" type="T">Calling pipeline service: PLSRV_RECEIVER_MESSAGE_SPLIT</Trace>
<Trace level="3" type="T">Reading Pipeline-Service specification... </Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">Pipeline service specification (table SXMSPLSRV) </Trace>
<Trace level="3" type="T">PLSRVID    = PLSRV_RECEIVER_MESSAGE_SPLIT</Trace>
<Trace level="3" type="T">PLSRVTYPE  = </Trace>
<Trace level="3" type="T">ADRESSMOD  = LOCAL</Trace>
<Trace level="3" type="T">P_CLASS    = CL_XMS_PLSRV_RECEIVER_SPLIT</Trace>
<Trace level="3" type="T">P_IFNAME   = IF_XMS_PLSRV</Trace>
<Trace level="3" type="T">P_METHOD   = ENTER_PLSRV</Trace>
<Trace level="3" type="T">FL_LOG     = </Trace>
<Trace level="3" type="T">FL_DUMMY   = 0</Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">
<Trace level="1" type="B" name="CL_XMS_PLSRV_RECEIVER_SPLIT-ENTER_PLSRV"></Trace><!-- ************************************ -->
<Trace level="3" type="T">Case handling for different plsrv_ids PLSRV_RECEIVER_MESSAGE_SPLIT</Trace>
<Trace level="2" type="T">got property produced by receiver determination </Trace>
<Trace level="1" type="T">number of receivers: 1 </Trace>
<Trace level="1" type="T">Single-receiver split case </Trace>
<Trace level="1" type="T">Post-split internal queue name = XBTO0___0000</Trace>
<Trace level="1" type="T">----
</Trace>
<Trace level="1" type="T">Persisting single message for post-split handling </Trace>
<Trace level="1" type="T"> </Trace>
<Trace level="1" type="T">Going to persist message + call qRFC now... </Trace>
<Trace level="1" type="T">NOTE: The following trace entries are always lacking </Trace>
<Trace level="1" type="T">- Exit WRITE_MESSAGE_TO_PERSIST </Trace>
<Trace level="1" type="T">Async barrier reached. Bye-bye ! </Trace>
<Trace level="1" type="T">----
</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST"></Trace><!-- ************************************ -->
<Trace level="3" type="T">Persisting message Status = 012</Trace>
<Trace level="3" type="T">Message version 001</Trace>
<Trace level="3" type="T">Pipeline CENTRAL</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-PERSIST_READ_MESSAGE">
<Trace level="3" type="T">Trace object available again now. OK. </Trace>
<Trace level="3" type="T">Message was read from persist layer. OK. </Trace>
<Trace level="3" type="T">Message properties in XMB object were setup. OK. </Trace>
<Trace level="3" type="ToDo">Make sure we catch exceptions in persist read </Trace>
<Trace level="3" type="ToDo">Tracing obj. not avail. before return of CL_XMS_MAIN-PERSIST_READ_MESSAGE</Trace>
</Trace>
<Trace level="1" type="T">Note: the following trace entry is written delayed (after read from persist)</Trace>
<Trace level="1" type="B" name="SXMS_ASYNC_EXEC"></Trace><!-- ************************************ -->
<Trace level="3" type="T">message version successfully read from persist version= 001</Trace>
<Trace level="2" type="T">Increment log sequence to 002</Trace>
<Trace level="1" type="T">----
</Trace>
<Trace level="1" type="T">Starting async processing with pipeline CENTRAL</Trace>
<Trace level="3" type="T">system-ID = XIQ</Trace>
<Trace level="3" type="T">client = 300</Trace>
<Trace level="3" type="T">language = E</Trace>
<Trace level="3" type="T">user = XIAFUSER</Trace>
<Trace level="1" type="Timestamp">2007-08-28T13:57:52Z CAT  </Trace>
<Trace level="1" type="T">----
</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PIPELINE_SYNC"></Trace><!-- ************************************ -->
<Trace level="1" type="T">Get definition of external pipeline CENTRAL</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-LOOKUP_INTERNAL_PL_ID">
<Trace level="3" type="T">External PLID = CENTRAL</Trace>
<Trace level="3" type="T">Internal PLID = SAP_CENTRAL</Trace>
</Trace>
<Trace level="1" type="T">Corresponding internal pipeline SAP_CENTRAL</Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">Pipeline attributes </Trace>
<Trace level="3" type="T">PID        = SAP_CENTRAL</Trace>
<Trace level="3" type="T">ENABLE     = 1</Trace>
<Trace level="3" type="T">TRACELEVEL = 0</Trace>
<Trace level="3" type="T">EXEMODE    = A</Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">Pipeline elements </Trace>
<Trace level="3" type="T">ELEMPOS    = 0001</Trace>
<Trace level="3" type="T">PLSRVID    = PLSRV_RECEIVER_DETERMINATION</Trace>
<Trace level="3" type="T">PLSRVTYPE  = </Trace>
<Trace level="3" type="T">FL_DUMMY   = 0</Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">ELEMPOS    = 0002</Trace>
<Trace level="3" type="T">PLSRVID    = PLSRV_INTERFACE_DETERMINATION</Trace>
<Trace level="3" type="T">PLSRVTYPE  = </Trace>
<Trace level="3" type="T">FL_DUMMY   = </Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">ELEMPOS    = 0003</Trace>
<Trace level="3" type="T">PLSRVID    = PLSRV_RECEIVER_MESSAGE_SPLIT</Trace>
<Trace level="3" type="T">PLSRVTYPE  = </Trace>
<Trace level="3" type="T">FL_DUMMY   = </Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">ELEMPOS    = 0004</Trace>
<Trace level="3" type="T">PLSRVID    = PLSRV_MAPPING_REQUEST</Trace>
<Trace level="3" type="T">PLSRVTYPE  = </Trace>
<Trace level="3" type="T">FL_DUMMY   = </Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">ELEMPOS    = 0007</Trace>
<Trace level="3" type="T">PLSRVID    = PLSRV_OUTBOUND_BINDING</Trace>
<Trace level="3" type="T">PLSRVTYPE  = </Trace>
<Trace level="3" type="T">FL_DUMMY   = </Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">ELEMPOS    = 0008</Trace>
<Trace level="3" type="T">PLSRVID    = PLSRV_CALL_ADAPTER</Trace>
<Trace level="3" type="T">PLSRVTYPE  = =SWITCH=</Trace>
<Trace level="3" type="T">FL_DUMMY   = </Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">ELEMPOS    = 0009</Trace>
<Trace level="3" type="T">PLSRVID    = PLSRV_MAPPING_RESPONSE</Trace>
<Trace level="3" type="T">PLSRVTYPE  = </Trace>
<Trace level="3" type="T">FL_DUMMY   = </Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="1" type="Timestamp">2007-08-28T13:57:52Z CAT Begin of pipeline processing PLSRVID = CENTRAL</Trace>
<Trace level="1" type="T">Start with pipeline element PLEL= 5EC3C53B4BB7B62DE10000000A1148F5</Trace>
<Trace level="1" type="B" name="PLSRV_MAPPING_REQUEST">
<Trace level="1" type="Timestamp">2007-08-28T13:57:52Z CAT Start of pipeline service processing PLSRVID= PLSRV_MAPPING_REQUEST</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
<Trace level="3" type="T">Calling pipeline service: PLSRV_MAPPING_REQUEST</Trace>
<Trace level="3" type="T">Reading Pipeline-Service specification... </Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">Pipeline service specification (table SXMSPLSRV) </Trace>
<Trace level="3" type="T">PLSRVID    = PLSRV_MAPPING_REQUEST</Trace>
<Trace level="3" type="T">PLSRVTYPE  = </Trace>
<Trace level="3" type="T">ADRESSMOD  = LOCAL</Trace>
<Trace level="3" type="T">P_CLASS    = CL_MAPPING_XMS_PLSRV3</Trace>
<Trace level="3" type="T">P_IFNAME   = IF_XMS_PLSRV</Trace>
<Trace level="3" type="T">P_METHOD   = ENTER_PLSRV</Trace>
<Trace level="3" type="T">FL_LOG     = </Trace>
<Trace level="3" type="T">FL_DUMMY   = 0</Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">
<Trace level="1" type="B" name="CL_MAPPING_XMS_PLSRV3-ENTER_PLSRV">
<Trace level="2" type="T">......attachment XI_Context not found </Trace>
<Trace level="3" type="T">Append context with name =Directory and value =/Ibolt/Transactions/Out </Trace>
<Trace level="3" type="T">Append context with name =FileName and value =70018_SendMSG_Payment_0_709_20070807052913.xml </Trace>
<Trace level="3" type="T">Mapping is already determined in the interface determination </Trace>
<Trace level="1" type="T">No mapping required </Trace>
</Trace>
</Trace>
</Trace>
<Trace level="1" type="Timestamp">2007-08-28T13:57:52Z CAT End of pipeline service processing PLSRVID= PLSRV_MAPPING_REQUEST</Trace>
</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST">
<Trace level="3" type="T">No persisting of message after plsrv call, because of config </Trace>
</Trace>
<Trace level="1" type="B" name="PLSRV_OUTBOUND_BINDING">
<Trace level="1" type="Timestamp">2007-08-28T13:57:52Z CAT Start of pipeline service processing PLSRVID= PLSRV_OUTBOUND_BINDING</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
<Trace level="3" type="T">Calling pipeline service: PLSRV_OUTBOUND_BINDING</Trace>
<Trace level="3" type="T">Reading Pipeline-Service specification... </Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">Pipeline service specification (table SXMSPLSRV) </Trace>
<Trace level="3" type="T">PLSRVID    = PLSRV_OUTBOUND_BINDING</Trace>
<Trace level="3" type="T">PLSRVTYPE  = </Trace>
<Trace level="3" type="T">ADRESSMOD  = LOCAL</Trace>
<Trace level="3" type="T">P_CLASS    = CL_XMS_PLSRV_OUTBINDING</Trace>
<Trace level="3" type="T">P_IFNAME   = IF_XMS_PLSRV</Trace>
<Trace level="3" type="T">P_METHOD   = ENTER_PLSRV</Trace>
<Trace level="3" type="T">FL_LOG     = </Trace>
<Trace level="3" type="T">FL_DUMMY   = 0</Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">
<Trace level="1" type="B" name="CL_XMS_PLSRV_OUTBINDING-ENTER_PLSRV">
<Trace level="2" type="T">O U T B O U N D - B I N D I N G </Trace>
<Trace level="2" type="T"> Cache Content is up to date </Trace>
<Trace level="2" type="T">determine  OUTBOUND BINDING  for: </Trace>
<Trace level="2" type="T">-IBOLTSERVER </Trace>
<Trace level="2" type="T">-SBO_DRP_SERVER </Trace>
<Trace level="2" type="T">http://ibolt.com/PGSAP/TransactionalData.MI_Digicall_BranchPayment </Trace>
<Trace level="2" type="T">Channel found:  - SBO_DRP_SERVER - FTP_Digicall_Franchisee_Payment </Trace>
<Trace level="2" type="T">no header mapping defined </Trace>
</Trace>
</Trace>
</Trace>
<Trace level="1" type="Timestamp">2007-08-28T13:57:52Z CAT End of pipeline service processing PLSRVID= PLSRV_OUTBOUND_BINDING</Trace>
</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST">
<Trace level="3" type="T">No persisting of message after plsrv call, because of config </Trace>
</Trace>
<Trace level="1" type="B" name="PLSRV_CALL_ADAPTER">
<Trace level="1" type="Timestamp">2007-08-28T13:57:52Z CAT Start of pipeline service processing PLSRVID= PLSRV_CALL_ADAPTER</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV"></Trace><!-- ************************************ -->
<Trace level="3" type="T">Calling pipeline service: PLSRV_CALL_ADAPTER</Trace>
<Trace level="3" type="T">Reading Pipeline-Service specification... </Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">Pipeline service specification (table SXMSPLSRV) </Trace>
<Trace level="3" type="T">PLSRVID    = PLSRV_CALL_ADAPTER</Trace>
<Trace level="3" type="T">PLSRVTYPE  = =SWITCH=</Trace>
<Trace level="3" type="T">ADRESSMOD  = SD</Trace>
<Trace level="3" type="T">P_CLASS    = </Trace>
<Trace level="3" type="T">P_IFNAME   = </Trace>
<Trace level="3" type="T">P_METHOD   = </Trace>
<Trace level="3" type="T">FL_LOG     = </Trace>
<Trace level="3" type="T">FL_DUMMY   = 0</Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">Unknown channel type: File</Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="3" type="T">Pipeline service specification (table SXMSPLSRV) </Trace>
<Trace level="3" type="T">PLSRVID    = PLSRV_CALL_ADAPTER</Trace>
<Trace level="3" type="T">PLSRVTYPE  = AENGINE</Trace>
<Trace level="3" type="T">ADRESSMOD  = SD</Trace>
<Trace level="3" type="T">P_CLASS    = CL_XMS_PLSRV_IE_ADAPTER</Trace>
<Trace level="3" type="T">P_IFNAME   = IF_XMS_PLSRV</Trace>
<Trace level="3" type="T">P_METHOD   = ENTER_PLSRV</Trace>
<Trace level="3" type="T">FL_LOG     = </Trace>
<Trace level="3" type="T">FL_DUMMY   = 0</Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL"></Trace><!-- ************************************ -->
<Trace level="1" type="B" name="CL_XMS_PLSRV_IE_ADAPTER-ENTER_PLSRV">
<Trace level="3" type="T">Channel for adapter engine: File</Trace>
<Trace level="1" type="B" name="CL_XMS_PLSRV_CALL_XMB-CALL_XMS_HTTP">
<Trace level="2" type="T">return fresh values from cache </Trace>
<Trace level="2" type="T">Get logon data for adapter engine (SAI_AE_DETAILS_GET): </Trace>
<Trace level="3" type="T">URL = http://pgsap45:50100/MessagingSystem/receive/AFW/XI</Trace>
<Trace level="3" type="T">User = XIISUSER</Trace>
<Trace level="3" type="T">Cached = X</Trace>
<Trace level="3" type="T">Creating HTTP-client </Trace>
<Trace level="3" type="T">HTTP-client: creation finished</Trace>
<Trace level="3" type="T">Security: Basic authentication </Trace>
<Trace level="3" type="T">Serializing message object... </Trace>
<Trace level="3" type="T">HTTP-client: sending http-request...</Trace>
<Trace level="3" type="T">HTTP-client: request sent</Trace>
<Trace level="3" type="T">HTTP-client: Receiving http-response...</Trace>
<Trace level="3" type="T">HTTP-client: response received</Trace>
<Trace level="3" type="T">HTTP-client: checking status code...</Trace>
<Trace level="3" type="T">HTTP-client: status code = 200 </Trace>
<Trace level="3" type="T">Deserializing message object... </Trace>
<Trace level="3" type="T">HTTP-client: closing...</Trace>
</Trace>
</Trace>
</Trace>
</Trace>
<Trace level="1" type="Timestamp">2007-08-28T13:57:53Z CAT End of pipeline service processing PLSRVID= PLSRV_CALL_ADAPTER</Trace>
</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST">
<Trace level="3" type="T">No persisting of message after plsrv call, because of config </Trace>
</Trace>
<Trace level="3" type="T">Async processing: skip mapping of response </Trace>
</Trace>
<Trace level="1" type="T">----
</Trace>
<Trace level="1" type="T">Async processing completed OK. </Trace>
<Trace level="3" type="T">system-ID = XIQ</Trace>
<Trace level="3" type="T">client = 300</Trace>
<Trace level="3" type="T">language = E</Trace>
<Trace level="3" type="T">user = XIAFUSER</Trace>
<Trace level="1" type="Timestamp">2007-08-28T13:57:53Z CAT  </Trace>
<Trace level="1" type="T">----
</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST"></Trace><!-- ************************************ -->
<Trace level="3" type="T">Persisting message Status = 003</Trace>
<Trace level="3" type="T">Message version 002</Trace>
<Trace level="3" type="T">Pipeline CENTRAL</Trace>
</SAP:Trace>
Thanks,
Miguel

Similar Messages

  • Dynamic Directory not reliable with XSLT

    Dear experts,
    I have set up an XSLT mapping that dynamically sets the Directory:
    <xsl:param name="inputparam"/>
    <xsl:param name="TargetFolder">
            <xsl:choose>
                <xsl:when test="$storeCode='1234'">
                    <xsl:value-of select="'BDX'"/>
                </xsl:when>
                <xsl:when test="$storeCode='4998'">
                    <xsl:value-of select="'CRB'"/>
                </xsl:when>
                <xsl:when test="$storeCode='1326'">
                    <xsl:value-of select="'OLR'"/>
                </xsl:when>
                <xsl:when test="$storeCode='88746'">
                    <xsl:value-of select="'ROM'"/>
                </xsl:when>
                <xsl:when test="$storeCode='16781'">
                    <xsl:value-of select="'TRY'"/>
                </xsl:when>
            </xsl:choose>
    </xsl:param>
    <xsl:variable name="__function"  select="dyncfg:init($inputparam)" />
    <xsl:variable name="__function"  select="dyncfg:putValue('http://sap.com/xi/XI/System/File', 'Directory', $TargetFolder)" />
    In receiver FTP channel I use:
    - AF_Modules/DynamicConfigurationBean
    key.0 "write http://sap.com/xi/XI/System/File Directory"
    value.0 "message.interface"
    - Variable replacement
    targetfolder "message:interface_namespace"
    - ASMA
    Directory
    - Target Directory
    %targetfolder%
    So everything is set up correctly and it also works fine. But sometimes the FTP receiver channel does not get the Directory (I do not know why) and RWB gives the error:
    com.sap.aii.af.ra.ms.api.RecoverableException: The Adapter Message Property 'Directory' was configured as mandatory element, but was not supplied in the XI Message header: com.sap.aii.adapter.file.configuration.DynamicConfigurationException: The Adapter Message Property 'Directory' was configured as mandatory element, but was not supplied in the XI Message header
    Is there a safer way to accomplish what I am doing? Should I go for a Java mapping?
    Thank you for your ideas and best regards,
    Peter
    Edited by: Peter Wallner on Jul 4, 2011 8:53 AM

    Hello Sarvesh,
    Thank you again. I did go for a JAVA mapping now because I can't use graphical mapping in this scenario.
    Now I created it and when I look in SXMB_MONI in the "DynamicConfiguration" it tells me "Directory" and "FileName" which is good.
    But when I check in RWB the messages get stuck and it says "write property message.interface from key (http://sap.com/xi/XI/System/File)Directory with value null;"
    Does the order in the DynamicConfiguration matter? In MONI it looks like this:
    - <SAP:DynamicConfiguration xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Record namespace="http://sap.com/xi/XI/System/Directory" name="Directory">CRB</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/System/File" name="FileName">EXPORT_1401_2011-07-03.xml.zip</SAP:Record>
      </SAP:DynamicConfiguration>
    But normally the "FileName" is always first, isn't it?
    Thanks again and best regards,
    Peter

  • Java Message Mapping : Dynamic FileName and Directory for ASMA

    How to Put Dynamic FileName and Directory for ASMA Properties of File Receiver adapter in Java Message Mapping ???
    I know How to Do this in UDF , But In Java Type Message Mapping . How to do this ????
    Regards
    PS.

    Hi
    chk this:
    http://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=95093307
    Thanks
    Amit

  • Target Directory & File Name parameters in Receiver File Adapter with ASMA

    Hi Experts..
    I have the following question....
    What am I suppose to inform in the Target Directory & File Name obligatory parameters in Receiver File Adapter if I am using ASMA to fill it? Is it any dummy value?
    Also, if you have any step by step guide/blog to forward on how to use ASMA in file adapter I will be greatful.
    Thanks in advance,
    Daniela

    You can give any dummy value in dir and file name... Just go through these blogs
    /people/michal.krawczyk2/blog/2005/11/10/xi-the-same-filename-from-a-sender-to-a-receiver-file-adapter--sp14
    /people/madanmohan.agrawal/blog/2009/05/20/combining-three-different-aspects-of-pi-asma-af-module-and-variable-substitution-in-one-shot

  • How to handle Directory in File receiver adapter

    Hi
    I have a Mail (attachment) to File scenario in PI 7.11, where I need to send the message to one directory, if a certain condition is meet and an other direktory if that condition i not meet.
    More specifically, then my initial java mapping picks up 2 files and if the files cover the same period, then they should be merged and then sent to the following message mapping in the Operation mapping and after that sent to "Folder1". I have specified this Folder one in the receiver file communication channel.
    If the two files are not covering the same period, then the message should be sent to "Folder2" (which works as a trash folder). This Folder2 is specified in the javamapping by using dynamic configuration.
    In the receiver file communication channel I have ticked the "Directory" under Adapter-Specific Message Attributes.
    However, it all works fine, when the two files are NOT covering the same period, cause then the "Directory" variable is set under dynamic configuration by the java mapping, but when the two files DO cover the same period, then the file adapter errors cause I have ticked the "Directory" under ASMA but not assigned the variable under dynamic configuration.
    Of cause, one solution would be to assign the value for Folder1" in the java mapping, e.g. via a value mapping lookup, but I would like to avoid this.
    Is there a smart way to solve this challenge?
    Some code extracts:
    if (samePeriod(sb6157,sb6158))
                        StringBuffer sboutput = mergeFiles(sb6157, sb6158);
                        os.write(sboutput.toString().getBytes());
                   else
                        updateDynamicConfiguration("http://sap.com/xi/XI/System/File","Directory","
    test$
    MILUN
    trash");
                        copyStream(is,os);
    private boolean samePeriod(StringBuffer sb6157, StringBuffer sb6158)
              int startText6157 = sb6157.indexOf("<PROCESSING_PERIOD_START>");
              int endText6157 = sb6157.indexOf("</PROCESSING_PERIOD_START>");
              String date6157 = (sb6157.substring(startText6157 +25, endText6157));
              int startText6158 = sb6158.indexOf("<PROCESSING_PERIOD_START>");
              int endText6158 = sb6158.indexOf("</PROCESSING_PERIOD_START>");
              String date6158 = (sb6158.substring(startText6158 +25, endText6158));
              return (date6157.equalsIgnoreCase(date6158));
    Mikael

    Hi,
    Why dont you use dynamic configuration for both Directory 1 & Directory 2???
    I had  a similar scenario where we have to define a directory name based on source file names. The sample code is as follows. You can modify this as per your requirement. Let me know if you have any issues.
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File", "FileName");
    and
    DynamicConfigurationKey key1 = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File", "Directory");
    conf.put(key, arg)
    String fileName = conf.get(key);
    if(filename.equals("file1.txt")){
         conf.put(key1, Directory1)
    else
         conf.put(key1, Directory2)
    return "";
    Warm Regards,
    Gouri

  • Dynamic Config for Target directory

    Hello Experts,
    My interface is from MQ (JMS) to FILE.
    I have one sender and one receiver.
    I have the Lockbox data placed into the single Queue for 2 countries (AU u2013 Australia and NZ u2013 Newzeland)
    Point 1: My PI Interface Picks the lockbox data up from the Queue, then the respective file (dynamically by using dynamic configuration) is being created based on the condition in mapping.
    Here my mapping logic:
    SourceStrucutre                                                       ReceiveStrucutre                          
         Filed1               Filed1
         Filed2               Filed2
    INPUT -
     FIXED VALUES u2026u2026u2026..> UDF1 u2026u2026u2026> ReceiveStrucutre ( root node)
    Expected input values for INPUT: ABC and XYZ (ABC for AU and XYZ for NZ)
    Expected values in FIXED VALUES: ( if ABC -  create file name  FILE1.TXT; if XYZ -  create file name FILE2.TXT)
    The below UDF is mapped to root node of Receiver Structure.
    UDF1 code: ( with single Argument with name : arg)
    DynamicConfiguration conf = (DynamicConfiguration) container
        .getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File", "FileName");
    conf.put(key, arg);
    return "";
    the above mentioned logic works fine and am able to generate the file names (FILE1.TXT & FILE2.TXT ) in the target directory ( /tmp/common ) which mentioned in the receiver file adapter.
    Point 2:
    My Requirement is to generate the target directory dynamically based the file name generated..
    Expected Target directory:
    /tmp/AU/FILE1.TXT for the file FILE1.TXT
    /tmp/NZ/FILE2.TXT for the file FILE2.TXT
    I know we can do this by writing another UDF2 (DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File", "Directory"); for the directory and by making ASMA ticked for Directory in communication channel..
    My question is how to map the two UDFs to the same root node of receiver..
    Valuable inputs are much appreciated!!
    Thanks,
    Kumar

    what i mean is have :
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File", "FileName");
    and
    DynamicConfigurationKey key1 = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File", "Directory");
    conf.put(key, arg)
    conf.put(key1, value for Directory)
    If you are worried on how to map two UDFs to root node then FYI you can map the o/p of the UDFs to any node in your target structure......it wont cause any harm....
    If you say no node is free then you can have two inputs to your UDF and then in the return statement send out the value that you want to pass to the target node (presently you are using return"".......if applying above then you will have return arg2)....
    Regards,
    Abhishek.

  • ASMA parameters in file adapter

    Hi experts,
    Please explain when exactly we will get the requirement to use  ASMA attributes in file adapter and provide few examples?

    HI,
    Just to add a quick note, in the case of adapter like File Adapter you have the option in the Sender / Receiver File Adapter to select the ASMA and the corresponding Attribute ( eg : FileName, Directory etc ) to be used from the SOAP Header.
    In the case of few other adapters like SOAP, you do not have such explicit option. You add the ASMA to the SOAP Header using a UDF and you just select ASMA and Varibale Transport Binding in the Receiver SOAP adapter and all the SOAP Adapter value are replaced with header ASMA.
    Each adapter has a few specific ASMA and these can be seen along with the technical names while trying to set some condtion in the Condition Editory under Context Objects.
    If we check ASMA of file adapter ......all the information corresponding to that attributes will be available in the SOAP header
    Every adapter has a defined set of attributes, which are described individually as part of the configuration for each of the adapters. So these attributes would be visible. And better to call it Message Header instead of SOAP header.
    If we check ASMA in the receiver file adapter then receiver file adapter will pick those values from the SOAP header and will assign to the target file.
    Yes, if mapping of these attributes are done.
    Even we can directly set the target file name by accessing the system parameters through UDF.
    Yes
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/70c89607-e4d9-2910-7280-f6746e964516
    /people/jin.shin/blog/2007/04/27/sap-netweaver-xi-variable-substitution-with-adapter-specific-message-attributes-via-dynamicconfigurationbean
    /people/sravya.talanki2/blog/2006/12/20/accessing-system-parameters-in-mapping-runtime
    /people/alessandro.guarneri/blog/2007/03/18/basic-spam-protection-for-xi-mail-adapter
    Thanks
    Swarup

  • Dynamic Configuration - Set Directory Path for File Receiver Adapter

    Hi Experts,
    I have a question regarding the dynamic configuration for the file adapter. Is it possible to set a directory path without a message mapping for the file receiver adapter? the problem is that I want to import a pdf document. this pdf document I want to store in a dynamic directory (depending on the filename). so I have to read the filename out of the dynamic configuration and generate (depending on the filename) a directory for this file. Is that possible without a message mapping? I cannot make a message mapping because the file has the pdf format and should not get changed.
    best regards
    Christopher Kühn

    Hi Gaurav,
    I use the ASMA (respectively the filename) for the sender adapter. After the pdf was imported into XI this filename is in the ASMA.
    But what then??? How can I get this filename with the help of the variable substitution? and if I have this filename I have to change this filename a bit to generate the name / path of the directory.
    Please explain it to me detailled
    Thanks and regards
    christopher

  • Using mail payload to create target file directory

    Hi Folks
    I have a scenario where I need to get email attachments and place them in a folder structure based on text written in the subject field of the original payload.
    My current setup is:
    Sender:
    Mail adapter using PayloadSwapBean module in order to get the attached .csv file in the mails.
    Receiver:
    Plain File adapter currently pointing  to a specific destination.
    I would like to use the Subject field from the original payload (MailMessage), but as I use the PayloadSwapBean, the payload is swapped to MailAttachment-1 in which I dont have subject information.
    Now the question is: Is it possible to get this information and then use it in e.g Adapter Specific Message Attributes  of the receiver channel, AND still swap the payload to put the  attachment in the folder created?
    Please let me know if something needs clarification
    Thanks,
    Chris

    Hi Chris,
    you pick the email and use the ASMA to read email subject. then you can use AF module to put email subject value to directory variable. then use the variable in receiver file adapter.
    refer the below blog
    Combining three different aspects of PI (ASMA, AF Module and variable substitution) in one shot
    regards,
    Harish

  • ASMA question.

    Hi,
    I am working on a simple File to File interface without design objects i.e. tunneling interface. The intension of the scenario is to pick up a file from source and put it in the target directory. My question is do we have to use Adapter – specific Message Attributes in the Sender and Receiver communication channel. 
    As per my understanding these ASMA is used when you want file name, directory name and soon from the source and do some manipulation and send the file name to target system.
    Can some clear me the question please?
    Thanks in advance.
    Azias

    Hi Azias,
    No v dont need to use ASMA for simple picking and posting of a file. Your understandjing s correct. ASMA is used when you need some of the adapter specific attributes such as file name, Directory path etc. Then only do v need to select the option in the communication channel.
    Thanks and Regards,
    Sanjeev.

  • Dyanamic Configuration at receiver file adapter determine target directory

    Hi Experts,
    I have a requirement to determine the target directory during runtime.
    From the source side one particular field determine the Target directory where you need to place file
    ECC - PI - File adapter - this is the scenario
    In target side 3 directories in the same server . but the directory should determine from source fields - werks
    As I am new to PI Please describe the procedure in detail.
    Thanks in advance.
    Kevin

    Hi Kevin,
    Use the below UDF and map to the rootnode in the message mapping.
    public String GetFileName(Container container){
    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; 
    In the Advanced tab of the File adapter, check the option Adapter Specific Message Attributes. Under that, check the Filename option.
    This would get the fieldname in the target filename.
    Check the below link:
    /people/madanmohan.agrawal/blog/2009/05/20/combining-three-different-aspects-of-pi-asma-af-module-and-variable-substitution-in-one-shot
    http://help.sap.com/saphelp_nw04/helpdata/en/43/0a7d1be4e622f3e10000000a1553f7/frameset.htm
    /people/shabarish.vijayakumar/blog/2007/07/26/troubleshooting-the-file-adapter-last-updated-on-02-july10
    Thanks,

  • Modify the ASMA without defining the Sender and Receiver Interface

    Hi All,
    I am developing a scenario where I am picking files from NFS and putting in FTP.
    For this I am using only the ID and no IR content.
    So far so good.
    But Now we have a requirement to dynamically extract the target folder names from the File name.
    e.g
    Sourc File: ABC_FN_PQR
    Folder name shouild be FN
    For this the solution would be UDF.
    But now my question is that where do i put this UDF as there is no IR at all.
    Please suggest.
    regards,
    Piyush

    Hi,
    Just ASMA setting will do the needful. Are you planning to rename your target file name. If yes then only you will require UDF.
    Update: Since your directory name will be taken from source file name then you have to use mapping for this, else it will not be possible.
    I don't know if creating a new module for this will help you solve the issue, but in that case rather creating adapter module, mapping will be easier.
    Regards,
    Sarvesh
    Edited by: Sarvesh Singh on Dec 7, 2009 3:04 PM

  • Correlating on Directory problem

    Dear All,
    I have some strange problem with correlation. In BPM there is a fork with 2 recieve steps which are recieving filea.
    If I correlate on Directory every time a new instance of BP is created (even is the files where form the same directory(in CCs the Directory checkbox is also marked)). Then I tried to change the correlation to SenderService and it works perfectly, as the files come from one Sender than no new instances of BP are created.
    Any ideas what can be wrong with directories? (I have checked in XML Dynamic Configuration and the Directory names are for sure the same, but the correlation doesn't work).
    Best Regards,
    Artsiom Anichenka

    From what I've seen, there is really a bug there.
    Even though you are able to select ASMAs in the expression editor of the correlation editor, they won't be filled by BPE. I'd say to raise an OSS.
    Meanwhile, if you need to make the scenario work right away, you should extend your data type to contain the directory in the payload (and fill it with dynamic configuration in a mapping).
    Regards,
    Henrique.

  • Writing to 2 different directory using file receiver channel

    I have a scenario where i am picking multiple files from one server and writing it on another. While writing the files, i want to write them to different folders using one communication channels based on the filename. is it possible? if yes how?

    You have to go for dynamic configuration UDF in the mapping.
    Refer to the below document
    http://wiki.scn.sap.com/wiki/display/XI/Dynamic+file+name+and+directory+in+Receiver+File+Adapter+-+summary+of+possibilities
    Also http://****************/Tips/XI/ASMA/Index.htm
    You just need to add filters/fix value lookup and pass it to UDF to determine the target directory
    Message was edited by: Hareesh Gampa

  • Refresh System Data in Integration Directory PI 7.11

    Hey,
    I have setup a new technical system and a business system in SLD, but now I still can't find it in Integration Directory.
    I knew from the later PI Version, that there was an option to transfer SLD data to integration directory, but now I can't find it
    anymore.
    Can anybody help?
    Thanks!
    Michael

    I have setup a new technical system and a business system in SLD, but now I still can't find it in Integration Directory.
    I knew from the later PI Version, that there was an option to transfer SLD data to integration directory, but now I can't find it
    Tools (or right-click in ID) --> Assign Business System --> follow the wizard...it will assign the business system from SLD to ID

Maybe you are looking for