Dynamic file name using reciver file adpater if no Mapping involved
Hi XI/PI experts,
I am working on one scenerion where I have to poll the files from one server and send them to target FTP server with no content conversion( no Mapping involved).
for example:
if the source file is ABC_Invoice_item.csv
then the target file is expected as invoice_YYYYMMDD.csv
Please advise how we can acchive this?
Many Thanks in advance for your valuable inputs.
Cheers,
Mohan
Hi,
You can refer the following link for selecting additional files using a single comm channel :
http://help.sap.com/saphelp_nwpi71/helpdata/EN/44/692ab8a4b633eae10000000a1553f6/content.htm
You can also use a Java mapping instead of adapter module to store the filename dynamically in the message header. In this case, use a data type that has just one field under it. Use the same data type for both sender and receiver.
In your Java mapping, use the code for dynamic configuration to retrieve the sender filename, alter it and then store it in the message header again for use by the receiver adapter.
No changes will be required in the sender comm channel. There will not be any conversion to xml format and the data will pass through as is.
Regards
Similar Messages
-
Creation Dynamic session name using BDC session Method
Hi All,
I have one typical BDC problem. If the number of records in file are crossing 80,my bdc is giving problem .So I need to split total records into sets of 80 and submit them. So I need to create the session name dynamically, pass the data dynamically. IF you have example code or know the procedure as how to proceed kindly inform me
Regards
PraveenHi Rob,
Please find my code below..
Part of the variables are in Polish since the original developer is a polish guy..
Praveen
Code.
*& Report ZCO_I025_WSKAZNIKI_STAT_DEV *
*& Interfejs wczytywania wskaźników statystycznych *
REPORT zco_i025_wskazniki_stat_dev .
TYPES:
BEGIN OF l_tab_dane,
indic LIKE rk23f-stagr,
quant LIKE rk23f-mbgbtr,
mpk LIKE rk23f-ekostl,
order LIKE rk23f-eaufnr,
text LIKE rk23f-sgtxt,
END OF l_tab_dane.
DATA:
it_excel TYPE TABLE OF alsmex_tabline,
wa_excel TYPE alsmex_tabline,
it_data TYPE TABLE OF l_tab_dane,
wa_data TYPE l_tab_dane,
error TYPE C,
msg TYPE string.
DATA:
iv_pole TYPE string,
ddatum(10),
kdatum(10),
*Inserted By satyam Developer
filelist TYPE filetable,
rc TYPE i.
DATA: BEGIN OF bdctab OCCURS 5.
INCLUDE STRUCTURE bdcdata.
DATA: END OF bdctab.
SELECTION-SCREEN BEGIN OF BLOCK p1 WITH FRAME TITLE text-001.
PARAMETERS:
p_zakla LIKE tka01-kokrs DEFAULT '1000',
p_ddate LIKE sy-datum DEFAULT sy-datum,
p_kdate LIKE sy-datum DEFAULT sy-datum.
SELECTION-SCREEN ULINE.
PARAMETERS:
p_fname LIKE rlgrap-filename. " DEFAULT 'd:dane.xls'.
SELECTION-SCREEN END OF BLOCK p1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
file_filter = cl_gui_frontend_services=>filetype_excel
multiselection = 'X'
CHANGING
file_table = filelist
rc = rc.
IF LINES( filelist ) IS INITIAL.
EXIT.
ENDIF.
READ TABLE filelist INDEX 1 INTO p_fname.
START-OF-SELECTION.
AUTHORITY-CHECK OBJECT 'TKA01'
ID 'KOKRS' FIELD p_zakla.
CONCATENATE p_ddate6(2) '.' p_ddate4(2) '.' p_ddate(4) INTO ddatum.
CONCATENATE p_kdate6(2) '.' p_kdate4(2) '.' p_kdate(4) INTO kdatum.
error = '0'.
PERFORM wczytaj_dane.
IF error = '0'.
PERFORM utworz_sesje.
PERFORM wprowadz_dane.
PERFORM zamknij_sesje. "comment by prav
ENDIF.
PERFORM zamknij_sesje. "add by prav
IF error = '1'.
WRITE: msg, /.
ENDIF.
WRITE: 'Wykonano', /.
*& Form wczytaj_dane
text
FORM wczytaj_dane.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_fname
i_begin_col = 1
i_begin_row = 1
i_end_col = 8
i_end_row = 65000
TABLES
intern = it_excel
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc <> 0.
WRITE: / 'Bład importu pliku wejsciowego: ', p_fname, ' - ',
sy-subrc.
ELSE.
SORT it_excel BY row col.
LOOP AT it_excel INTO wa_excel.
IF wa_excel-row = 1.
CONTINUE.
ENDIF.
iv_pole = wa_excel-value.
CASE wa_excel-col.
WHEN 1. wa_data-indic = iv_pole.
WHEN 2.
REPLACE ',' WITH '.' INTO iv_pole.
wa_data-quant = iv_pole.
WHEN 3. wa_data-mpk = iv_pole.
WHEN 4. wa_data-order = iv_pole.
WHEN 5. wa_data-text = iv_pole.
ENDCASE.
AT END OF row.
IF wa_data-mpk IS INITIAL AND wa_data-order IS INITIAL.
error = '1'.
WRITE:
'Musi być podane Stanowisko kosztów lub Zlecenie wewnętrzne. Rekord: ',
wa_excel-row, /.
EXIT.
ENDIF.
IF wa_data-mpk IS NOT INITIAL AND wa_data-order IS NOT INITIAL.
error = '1'.
WRITE:
'Musi być podane Stanowisko kosztów lub Zlecenie wewnętrzne. Rekord: ',
wa_excel-row, /.
EXIT.
ENDIF.
IF wa_data-indic IS INITIAL.
error = '1'.
WRITE: 'Brak identyfikatora wskaźnika. Rekord: ', wa_excel-row
EXIT.
ENDIF.
IF wa_data-quant IS INITIAL.
error = '1'.
WRITE: 'Brak informacji o ilości. Rekord: ', wa_excel-row, /.
EXIT.
ENDIF.
APPEND wa_data TO it_data.
CLEAR wa_data.
ENDAT.
ENDLOOP.
ENDIF.
ENDFORM. "wczytaj_dane
*& Form wprowadz_dane
text
FORM wprowadz_dane.
DATA:
licznik TYPE i,
l_txt TYPE string,
pole(30) TYPE c,
liczba(15) TYPE c.
LOOP AT it_data into wa_data.
PERFORM bdc_dynpro USING 'SAPLSPO4' '0300'.
PERFORM bdc_field USING 'BDC_CURSOR' 'SVALD-VALUE(01)'.
PERFORM bdc_field USING 'BDC_OKCODE' '=FURT'.
PERFORM bdc_field USING 'SVALD-VALUE(01)' p_zakla.
PERFORM bdc_dynpro USING 'SAPLK23F1' '1200'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'COHEADER-SEND_REC_REL' '03SAP'.
PERFORM bdc_field USING 'RK23F-STATUS' 'L'.
PERFORM bdc_field USING 'COHEADER-BLDAT' ddatum.
PERFORM bdc_field USING 'COHEADER-BUDAT' kdatum.
PERFORM bdc_field USING 'BDC_CURSOR' 'EKOSTL(1)'.
licznik = 0.
LOOP AT it_data into wa_data.
ADD 1 TO licznik.
l_txt = licznik.
CONCATENATE 'EL4(' l_txt ')' INTO pole.
condense pole no-gaps.
PERFORM bdc_field USING pole wa_data-indic.
CONCATENATE 'ELR1(' l_txt ')' INTO pole.
condense pole no-gaps.
liczba = wa_data-quant.
if liczba < 0.
shift liczba circular left up to '-'.
endif.
condense liczba no-gaps.
PERFORM bdc_field USING pole liczba.
IF NOT wa_data-mpk IS INITIAL.
CONCATENATE 'EL2(' l_txt ')' INTO pole.
condense pole no-gaps.
PERFORM bdc_field USING pole wa_data-mpk.
ENDIF.
IF NOT wa_data-order IS INITIAL.
CONCATENATE 'EL3(' l_txt ')' INTO pole.
condense pole no-gaps.
PERFORM bdc_field USING pole wa_data-order.
ENDIF.
CONCATENATE 'EL8(' l_txt ')' INTO pole.
condense pole no-gaps.
PERFORM bdc_field USING pole wa_data-text.
call transaction 'KB31N' using bdctab mode 'A'.
refresh:bdctab.
clear bdctab.
ENDLOOP.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
tcode = 'KB31N'
TABLES
dynprotab = bdctab
EXCEPTIONS
internal_error = 1
not_open = 2
queue_error = 3
tcode_invalid = 4
printing_invalid = 5
posting_invalid = 6
OTHERS = 7.
IF sy-subrc <> 0.
WRITE: / text-010 .
ENDIF.
call transaction 'KB31N' using bdctab mode 'A'.
REFRESH bdctab.
clear:bdctab. "by praveen
ENDFORM. "wprowadz_dane
*& Form bdc_dynpro
text
-->PROGRAM text
-->DYNPRO text
FORM bdc_dynpro USING program dynpro.
CLEAR bdctab.
MOVE:
program TO bdctab-program,
dynpro TO bdctab-dynpro,
'X' TO bdctab-dynbegin.
APPEND bdctab.
ENDFORM. "bdc_dynpro
*& Form bdc_field
text
-->POLE text
-->WARTOSC text
FORM bdc_field USING pole wartosc.
CLEAR bdctab.
MOVE:
pole TO bdctab-fnam,
wartosc TO bdctab-fval.
APPEND bdctab.
ENDFORM. "bdc_field
*& Form utworz_sesje
text
FORM utworz_sesje.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
group = 'WSKASTAT'
user = sy-uname
keep = 'X'.
**begin of praveen
*if sy-subrc ne 0.
write 'hai'.
endif.
**end of praveen
ENDFORM. "utworz_sesje
*& Form zamknij_sesje
text
FORM zamknij_sesje.
CALL FUNCTION 'BDC_CLOSE_GROUP'.
IF sy-subrc NE 0.
WRITE: /, 'Bład podczas zamykania sesji'.
EXIT.
ENDIF.
ENDFORM. "zamknij_sesje -
Dynamic Column Names using Refcursors
Hi,
I have a stored procedure which returns a refcursor. The refcursor contains a SQL query in which the column names and number of columns vary dynamically based on the date parameters passed.
"My objective is to return certain XYZ details of employees for a certain month range."
For ex: For the month of Aug-2011, the column names would be '1-AUG-11' to '31-AUG-11 and for Feb-2011 '1-FEB-11' to '28-FEB-11'
My issue is, when I execute the refcursor query using "EXEC", my column names/headings are preserved.
FIELD NAMES: EMPLOYEE_CODE XYZ_TYPE *1-AUG-11* *2-AUG-11* ... *31-AUG-11*
DATA: EMPCODE_Z TYPE1 VALUE_1 VALUE_1 ... VALUE_31
Whereas when I fetch the refcursor into a collection of nested table and display, my column names are lost.
DATA: EMPCODE_Z TYPE1 VALUE_1 VALUE_1 ... VALUE_31
Is there a way where I can preserve the column names from the refcursor after fetching into pl/sql collections?
Any help would be highly appreciated.
Thank you.
Edited by: 867622 on Nov 11, 2011 4:38 PM867622 wrote:
If not dynamic SQL, how can the number of columns be altered based on the input parameters?Cannot. A dynamic SQL projection means dynamic SQL (there's an exception to this, and despite interesting is not relevant to 99.99% of problems dealing with dynamic SQL projections).
You can however still use a dynamic projection and wrap that into a user defined type interface.
Here's the basic approach:
// create a user define type that will provide the wrapper for the SQL projection
create or replace type TString as table of varchar2(4000);
// build dynamic SQL projections via this type, e.g.
select
TStrings( object_id, object_name, created )
from user_objects
select
TStrings( emp_id, dept_id, salary, commission )
from employeesDespite the SQL cursors being different and the columns and number of columns being selected different, the SQL projection of both are the same. The Count method tells you the number of columns in the projection. Referencing an applicable column is simply done by using the column's sequential number in the projection.
You also do not have to use a collection or varchar2 as the wrapper type - you can create complex user objects and use the collection type for that, as the SQL projection.
Another alternative is converting the ref cursor into a DBMS_SQL cursor and using the latter's describe interface to dynamically determine the structure of the SQL projection and fetching the column values from it. But 11gr1 or later is needed for doing this. -
Mail Receiver adapter - dynamic file name without mail package
I know that we can get the dynamic attachment name using mail package... As per the FAQ Mail adapter, the Mail package use is deprecated and hence we do not want to go that route.
I have seen the following wiki entry for setting the file attachment name...
http://wiki.sdn.sap.com/wiki/display/XI/Adapter%20Module%20PI%207.0%20Set%20Attachment%20Name?bc=true
Is this the only approach to dynamic attachment name using Mail adapter (and without Mail package). Or a different approach without Adapter module is possible?There is a different approach without using mail package or adapter module.
Have a look at this Wiki:
http://wiki.sdn.sap.com/wiki/display/ESOAInfrastructure/Dynamic+Email+Attachment+name+for+Received+Mails+with+ASMA+and+without+using+mail+package -
Call Type node not setting Call Type Dynamically By name.
I'm attempting to use the Call Type node to set a Call Type dynamically by name using the following logic:
concatenate("somestring_",userParseFromVXML("CT"),"_Q")
The userParseFromVXML is a custom function that works correctly and pulls my data out of FromExtVXML correctly. If I use a peripheral variable and use the same logic then set the Call Type node to set the call type dynamically by name using the peripheral variable it sets the call type correctly without any problems. I'm using UCCE 9.0.3 and I'm wondering if anyone else has run across this issue.I wish I'd known about the table function before myself.
This is what my experience is now after having tested these scenarios.
Scenario
Example
PASS/FAIL
String literal
concatenate("somestring_", "test", "_Q")
PASS
Peripheral Variable
concatenate("somestring_", Call.PeripheralVariable1, "_Q")
PASS
Custom Function
concatenate("somestring_", userParseFromVXML("CT"), "_Q")
Passing now (not sure what i must have been missing)
The custom function I'm using returns a string and when I created a new custom function returning a String literal it worked just fine. After doing my testing and swapping back to my original custom function I started seeing the call tagged with the correct Call Type, so I can only assume that I was missing something in the original concatenate string. The custom function I am using is as follows:
if((find(%1%,Call.user.microapp.FromExtVXML[0]))>0,before(";",after(concatenate(%1%,"="),Call.user.microapp.FromExtVXML[0])),if((find(%1%,Call.user.microapp.FromExtVXML[1]))>0,before(";",after(concatenate(%1%,"="),Call.user.microapp.FromExtVXML[1])),if((find(%1%,Call.user.microapp.FromExtVXML[2]))>0,before(";",after(concatenate(%1%,"="),Call.user.microapp.FromExtVXML[2])),if((find(%1%,Call.user.microapp.FromExtVXML[3]))>0,before(";",after(concatenate(%1%,"="),Call.user.microapp.FromExtVXML[3])),"Not Found")))) -
Dynamic File Name on Receiver Side using XSLT mapping
Hi,
My scenario is a Proxy to File scenario.The File on the receiving side is a TEXT file generated due to XSLT mapping. The file name has to be dynamic like- TEST<DDMMYYHHMMSS>File.DAT.
If somebody knows how to do the same please help.
Regards
RituHi Ritu,
I agree to Krishna.With your XSLT mapping create a XML output which can be converted to a text file with content conversion.
And for the dynamic file name, i guess its the date that matters which needs to be in DDMMYYHHMMSS format. the same can be accomplished by a Java function and calling it in your XSLT .
Do refer this weblog it will help you accomplish the same.
>>> /people/pooja.pandey/blog/2005/06/27/xslt-mapping-with-java-enhancement-for-beginners
Regards,
Shabarish -
Strange problem in Dynamic File Name . XI behaving strangely
My o/p is coming like this
<?xml version="1.0" encoding="UTF-8" ?>
- <ns0:MT_PurchaseOrderChange xmlns:ns0="http://E2open.com/xi/IntercompanySCM_6.0/POChange">
- <recordset>
- <data>
<PoHeaderDomainName>broker_domain</PoHeaderDomainName>
<PoHeaderOrgName>broker_org</PoHeaderOrgName>
<PoHeaderPoState>$null</PoHeaderPoState>
<PoHeaderStateChangeDate>$null</PoHeaderStateChangeDate>
<PoHeaderPoNumber>4500000026</PoHeaderPoNumber>
<PoHeaderPoCreationDate>$null</PoHeaderPoCreationDate>
<PoHeaderLastModifiedDate>$null</PoHeaderLastModifiedDate>
<PoHeaderModelSubType>Discrete_Order</PoHeaderModelSubType>
<PoHeaderSupplierName>0000352119</PoHeaderSupplierName>
<PoHeaderSupplierDescription>$null</PoHeaderSupplierDescription>
<PoHeaderCustomerName>SSP_CUSTOMER</PoHeaderCustomerName>
<PoHeaderCustomerDescription>$null</PoHeaderCustomerDescription>
<PoHeaderCustomerMessage>$null</PoHeaderCustomerMessage>
<PoHeaderSupplierMessage>$null</PoHeaderSupplierMessage>
<PoHeaderBillToName>$null</PoHeaderBillToName>
<PoHeaderBillToAddressDescriptor>$null</PoHeaderBillToAddressDescriptor>
<PoHeaderBillToAddressAddress1>$null</PoHeaderBillToAddressAddress1>
<PoHeaderBillToAddressAddress2>$null</PoHeaderBillToAddressAddress2>
<PoHeaderBillToAddressCity>$null</PoHeaderBillToAddressCity>
<PoHeaderBillToAddressCountry>$null</PoHeaderBillToAddressCountry>
<PoHeaderBillToAddressCounty>$null</PoHeaderBillToAddressCounty>
<PoHeaderBillToAddressState>$null</PoHeaderBillToAddressState>
<PoHeaderBillToAddressZip>$null</PoHeaderBillToAddressZip>
<PoHeaderBuyerCode>$null</PoHeaderBuyerCode>
<PoHeaderFreight>$null</PoHeaderFreight>
<PoHeaderTerms>0001</PoHeaderTerms>
<PoHeaderOrderPriority>$null</PoHeaderOrderPriority>
<PoHeaderCommunicationMode>$null</PoHeaderCommunicationMode>
<PoHeaderAgreementStartDate>$null</PoHeaderAgreementStartDate>
<PoHeaderAgreementEndDate>$null</PoHeaderAgreementEndDate>
<UDFPoHeaderRevisionNumber>$null</UDFPoHeaderRevisionNumber>
<UDFPoHeaderERPPOCreationDate>01Sep2006000000</UDFPoHeaderERPPOCreationDate>
<UDFPoHeaderheaderUDF1>$null</UDFPoHeaderheaderUDF1>
<UDFPoHeaderheaderUDF2>$null</UDFPoHeaderheaderUDF2>
<UDFPoHeaderheaderUDF3>$null</UDFPoHeaderheaderUDF3>
<UDFPoHeaderheaderUDF4>$null</UDFPoHeaderheaderUDF4>
<UDFPoHeaderheaderUDF5>$null</UDFPoHeaderheaderUDF5>
<PoLineItemPoLineItemId>00020</PoLineItemPoLineItemId>
<PoLineItemCustomerItemName>E107434516</PoLineItemCustomerItemName>
<PoLineItemCustomerItemDesc>L1357 TOROID INDUCTOR</PoLineItemCustomerItemDesc>
<PoLineItemCustomerDomainName>SSP_CUSTOMER_domain</PoLineItemCustomerDomainName>
<PoLineItemSupplierItemName>E107434516</PoLineItemSupplierItemName>
<PoLineItemSupplierItemDesc>L1357 TOROID INDUCTOR</PoLineItemSupplierItemDesc>
<PoLineItemSupplierDomainName>0000352119_domain</PoLineItemSupplierDomainName>
<PoLineItemUnitPrice>720</PoLineItemUnitPrice>
<PoLineItemBasisOfUnitPrice>$null</PoLineItemBasisOfUnitPrice>
<PoLineItemCurrency>EUR</PoLineItemCurrency>
<PoLineItemUnitOfMeasure>TNE</PoLineItemUnitOfMeasure>
<PoLineItemLineItemState>$null</PoLineItemLineItemState>
<PoLineItemStateChangeDate>$null</PoLineItemStateChangeDate>
<PoLineItemLastModifiedDate>$null</PoLineItemLastModifiedDate>
<UDFPoLineSupplierItemName>E107434516</UDFPoLineSupplierItemName>
<UDFPoLinelineUDF1>$null</UDFPoLinelineUDF1>
<UDFPoLinelineUDF2>$null</UDFPoLinelineUDF2>
<UDFPoLinelineUDF3>$null</UDFPoLinelineUDF3>
<UDFPoLinelineUDF4>$null</UDFPoLinelineUDF4>
<UDFPoLinelineUDF5>$null</UDFPoLinelineUDF5>
<PoScheduleId>1</PoScheduleId>
<PoScheduleLastAction>Insert_Or_Modify</PoScheduleLastAction>
<PoScheduleScheduleState>$null</PoScheduleScheduleState>
<PoScheduleStateChangeDate>$null</PoScheduleStateChangeDate>
<PoScheduleRequestQuantity>9.000</PoScheduleRequestQuantity>
<PoScheduleRequestDate>16Sep2006000000</PoScheduleRequestDate>
<PoScheduleRequestShipmentDate>16Sep2006000000</PoScheduleRequestShipmentDate>
<PoScheduleOriginalRequestQuantity>$null</PoScheduleOriginalRequestQuantity>
<PoScheduleOriginalRequestDate>$null</PoScheduleOriginalRequestDate>
<PoScheduleCarrier>$null</PoScheduleCarrier>
<PoScheduleCarrierMode>$null</PoScheduleCarrierMode>
<PoScheduleCarrierAccountNumber>$null</PoScheduleCarrierAccountNumber>
<PoScheduleCustomerSiteName>5302</PoScheduleCustomerSiteName>
<PoScheduleShipToAddressDescriptor>$null</PoScheduleShipToAddressDescriptor>
<PoScheduleShipToAddressAddress1>$null</PoScheduleShipToAddressAddress1>
<PoScheduleShipToAddressAddress2>$null</PoScheduleShipToAddressAddress2>
<PoScheduleShipToAddressCity>$null</PoScheduleShipToAddressCity>
<PoScheduleShipToAddressCountry>$null</PoScheduleShipToAddressCountry>
<PoScheduleShipToAddressCounty>$null</PoScheduleShipToAddressCounty>
<PoScheduleShipToAddressState>$null</PoScheduleShipToAddressState>
<PoScheduleShipToAddressZip>$null</PoScheduleShipToAddressZip>
<PoScheduleLastModifiedDate>$null</PoScheduleLastModifiedDate>
<PoScheduleCustomerMessage>$null</PoScheduleCustomerMessage>
<PoScheduleSupplierMessage>$null</PoScheduleSupplierMessage>
<PoScheduleRefdPoCustomerName>$null</PoScheduleRefdPoCustomerName>
<PoScheduleRefdPoS>$null</PoScheduleRefdPoS>
<PoScheduleRefdPoModelSubType>$null</PoScheduleRefdPoModelSubType>
<PoScheduleRefdPoNumber>$null</PoScheduleRefdPoNumber>
<PoScheduleRefdPoLineItemId>$null</PoScheduleRefdPoLineItemId>
<PoScheduleRefdPoScheduleId>$null</PoScheduleRefdPoScheduleId>
<UDFPoSchedulescheduleUDF1>$null</UDFPoSchedulescheduleUDF1>
<UDFPoSchedulescheduleUDF2>$null</UDFPoSchedulescheduleUDF2>
<UDFPoSchedulescheduleUDF3>$null</UDFPoSchedulescheduleUDF3>
<UDFPoSchedulescheduleUDF4>$null</UDFPoSchedulescheduleUDF4>
<UDFPoSchedulescheduleUDF5>$null</UDFPoSchedulescheduleUDF5>
<PoPromiseScheduleId>1</PoPromiseScheduleId>
<PoPromiseScheduleAddressDescriptor>$null</PoPromiseScheduleAddressDescriptor>
<PoPromiseScheduleAddress1>$null</PoPromiseScheduleAddress1>
<PoPromiseScheduleAddress2>$null</PoPromiseScheduleAddress2>
<PoPromiseScheduleAddressCity>$null</PoPromiseScheduleAddressCity>
<PoPromiseScheduleAddressCountry>$null</PoPromiseScheduleAddressCountry>
<PoPromiseScheduleAddressCounty>$null</PoPromiseScheduleAddressCounty>
<PoPromiseScheduleAddressState>$null</PoPromiseScheduleAddressState>
<PoPromiseScheduleAddressZip>$null</PoPromiseScheduleAddressZip>
<PoPromiseScheduleQuantity>9.000</PoPromiseScheduleQuantity>
<PoPromiseScheduleDate>16Sep2006000000</PoPromiseScheduleDate>
<PoPromiseScheduleShipmentDate>$null</PoPromiseScheduleShipmentDate>
<UDFPoPromiseScheduleUDF1>$null</UDFPoPromiseScheduleUDF1>
<UDFPoPromiseScheduleUDF2>$null</UDFPoPromiseScheduleUDF2>
<UDFPoPromiseScheduleUDF3>$null</UDFPoPromiseScheduleUDF3>
<UDFPoPromiseScheduleUDF4>$null</UDFPoPromiseScheduleUDF4>
<UDFPoPromiseScheduleUDF5>$null</UDFPoPromiseScheduleUDF5>
</data>
- <FileNameNode>
<FileName>111111111_222222223_purchase-orders_20060901065147_</FileName>
</FileNameNode>
</recordset>
</ns0:MT_PurchaseOrderChange>
I have specifed
Payload:MT_PurchaseOrderChange,1,FileNameNode,1,FileName,1
in variable substitution
I am on SP 14 and it the dynamic file is working for other scneario
bt in this scneario i am getting the error
Receiver Adapter v2405 for Party '', Service 'com_E2open_qas':
Configured at 2006-09-01 18:42:32 GMT+05:30
History:
- 2006-09-01 19:11:48 GMT+05:30: Message processing failed: Error during variable substitution: com.sap.aii.adapter.file.varsubst.VariableDataSourceException: The following variable was not found in the message payload: amit
- 2006-09-01 19:11:48 GMT+05:30: Processing started
- 2006-09-01 19:06:47 GMT+05:30: Message processing failed: Error during variable substitution: com.sap.aii.adapter.file.varsubst.VariableDataSourceException: The following variable was not found in the message payload: amit
- 2006-09-01 19:06:47 GMT+05:30: Processing started
- 2006-09-01 19:01:47 GMT+05:30: Message processing failed: Error during variable substitution: com.sap.aii.adapter.file.varsubst.VariableDataSourceException: The following variable was not found in the message payload: amit
amit is the variable i have given for substitution.Hi,
if you have SP14 stop using variable substitiuion:)
you can do it much easier with dynamic configuraiton
/people/william.li/blog/2006/04/18/dynamic-configuration-of-some-communication-channel-parameters-using-message-mapping
so you can easily set it for file adapter to set the file name
you can also have a look at my weblog:
/people/michal.krawczyk2/blog/2005/11/10/xi-the-same-filename-from-a-sender-to-a-receiver-file-adapter--sp14
Regards,
michal
<a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a> -
Dynamic file name from input payload (RFC 2 flat file)
Hi,
I have an RFC to flat file scenario. The output flat file has not an XML structure, it's just a plain text file generated with abap mapping.
In my source interface (RFC), I have a field called <FILENAME>, I want to use the value of that field to create the target file using dynamic file name. But if in variable substitution I use payload:ZRFC_NAME,1,FILENAME,1 It doesn't work because the dynamic variable substitution try to access to output payload, not the source one...
What can I do?Hi Marshal,
You can add a extra node to your target strucutre like
FileName- Node
--FileName - Element.
do the mapping from the field filename of RFC to FileName field in u r target strucure. And use this field path at Refrence in variable subtituion.
In the Content converison add the Name & Values as below
FileName.fileldNames -- FileName
FileName.fieldFixedLengths -- 0
FileName.fixedLengthTooShortHandling -- Cut
So the extra field in u r target structure would not populate in u r target text file.
Cheers
Veera -
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> -
Hi,
I am following this blog to name the target file/directory dynamically at the runtime :
/people/sameer.shadab/blog/2005/09/23/an-interesting-usage-of-variable-substitution-in-xi
But I am getting this error in the CC monitoring :
Could not process due to error: com.sap.aii.adapter.file.configuration.DynamicConfigurationException: Error during variable substitution: com.sap.aii.adapter.file.varsubst.VariableDataSourceException: Unknown message header category 'interface_name ' for variable 'var1'.Hi,
Try following this weblog for dynamic file name.
/people/michal.krawczyk2/blog/2005/11/10/xi-the-same-filename-from-a-sender-to-a-receiver-file-adapter--sp14
Dynamic filename come under the Dynamic configuration in moni, for your messages.
This is the code used inside.
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;
That is why Dynamic configuration is coming in output.. It is a class to generate dynamic configuration file at runtime provided by SAP XI.
Hope this will help you.
regards
Aashish Sinha
PS : reward points if helpful -
Dynamic file name in case of .txt output files
Hi all,
I have a query related to dynamic file name scenario.
In case of IDOC-XI-FILE sceanrio,
<b>Is it possible to generate .txt file name based on Plant number like</b>
<b>%<Plantname>%_%<BusinessDay>_filename.txt</b>
<b>Note:I have implemneted this for .xml output files but I am not able to implement it for .txt output files .</b>
PLEASE HELP ME .
Regards
PrabhatHi Prabhat,
I think, the normal Dynamic File Name generation should work fine in your case also. Even if you perform Content Conversion, you can use Variable Name Substiution to create your Destination file name as, the name of the file is determined first and only then is the content converison perfromed.
for info on content conversion, I would suggest that you go through this thread and check my reply,
Re: Dynamic File Name for Receiver File Adapter
Regards,
Bhavesh -
Dynamic File name in File Adapter
Hi,
I have a requirement to pass dynamic file name in File Adapter.
Is there any way to pass a variable for the file name attribut in file adapter.
I am looking for some options apart from %yyMMddHHmmss%,%SEQ%...etc
Please suggest if any of you have information on how to put values from a variable to file name attribute in file adapter
regards
SaijuHi Saiju,
Yes there is.
Assign your file name to a variable, let's say 'fileName'.
Now go to your invoke activity(for the specific fileadapter) -> Property tab-> find a property call jca.file.FileName -> in the value field assign 'fileName' variable.
That's it... (assuming you are using 11g)
Arik
Edited by: Arik on Jun 27, 2012 3:12 PM -
Hi Master,
I written the UDF for Getting the Dynamic File name.
DynamicConfiguration conf = (DynamicConfiguration) container.getParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
// Retrieve the filename
String FileName = conf.get(key);
This is working ok - but I want to return these values so I can be used in mapping.
when I try to add the statement return FileName; , the compiler then complains with the following error:
cannot return a value from method whose result type is void return FileName;
Please help me,
Thanks,
AnuThanks Nithiyanandam,
I am using the Same code. But i am getting the Syntax error:
Source code has syntax error: E:/usr/sap/DX1/DVEBMGS01/j2ee/cluster/server0/./temp/classpath_resolver/Mapaf708c00d6bb11dd83ee00101816a382/source/com/sap/xi/tf/_MM_I_FF_O_RFC_.java:13: cannot resolve symbol symbol : class variable location: class com.sap.xi.tf._MM_I_FF_O_RFC_ variable a; ^ 1 error
UDF Name: FileName
while creating the UDF, I select the first radio button(Value). not Context and Queue.
I written the below code.
DynamicConfiguration conf = (DynamicConfiguration) container
.getTransformationParameters()
.get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create(
"http://sap.com/xi/XI/System/File",
"FileName");
String FileName = conf.put(key, a);
return FileName;
Thanks,
ANU -
Dynamic File Name and File size
Hi All
I need some help in calling Dynamic File Name and Dynamic File size of a file in my adapter Module.
Could you please provided some help on the same?
I have tried the same through UDF it is working. Could anyone provide me the steps for the same
Regards
Abhishek MahajanHi,
You can use the already available adapter module "DynamicConfigurationBean". Have this adapter module at the top of the module list in CC.
Have the parameter value as insert http://sap.com/xi/XI/System/File FileName and http://sap.com/xi/XI/System/File SourceFileSize (corresponding to the key names)
For more info:
http://help.sap.com/saphelp_nw04/helpdata/en/45/da2239feb22e98e10000000a155369/frameset.htm
There is also a SAP note available for the same....dont remember the note number:(.....
Regards,
Abhishek. -
Xml file in dynamic file name in file receiver adapter
Hi,
I'm doing the dynamic file name in file receiver adapter. I have done as per instructed in /people/jayakrishnan.nair/blog/2005/06/20/dynamic-file-name-using-xi-30-sp12-part--i
All turned out okay. I have got the file name I require. Except that the file format is XML and I need to suppress the filename node occupied by the dynamic file name.
The content conversion mentioned in /people/sravya.talanki2/blog/2005/08/11/solution-to-the-problem-encountered-using-variable-substitution-with-xi-sp12, does not seem to solve my problem. As it is only for file format other than the XML one, because we only do the content conversion if we want to "convert" the format of the content from XML to the other format.
Does anybody have the solution to my problem? thanks in advanceThank you Raj for the direction
The way to do it is :
1. In ID, advanced tab, put a check on the adapter-specific message attributes - file name.
2. Put a "*" on the file name scheme
3. In IR, create a UDF to set up target file name :
DynamicConfiguration conf = (DynamicConfiguration) container
.getTransformationParameters()
.get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
// set up file name for receiver adapter
String SourceFileName = conf.get(key);
conf.put(key, TargetFileName);
return " ";
4. Map the above UDF to the header level of the target structure.
Regards,
Idi
Maybe you are looking for
-
I need headphones for my Macbook.
I have an old white Macbook ... 2008 I think ... for which I need some headphones. Can anyone tell me if Apple headphones are standard between all hardware? And if not what sort of headphones do I need for it please?
-
SOLMAN 7.0 (SR3) Installation Error
Hi, Experts I am trying to install solman 7.0 in windows/db2. In one phase i am getting error, i am unable to solve this issue. Please help me to resolve the issue. WARNING 2009-01-02 10:25:57.906 Execution of the command "D:\usr\sap\ISM\DVEBMGS00\ex
-
Change journal template. 1000 separator
Hi experts, I'm in version SAP BPC 5.1 MS and I need to change format cells of Journal template. I need to introduce 1000 separator on credit and debit cells. Does it possible? Than you very much in advance Gabriel Garcia
-
What is layer_quantity in cst_quantity_layers
Hi, I need to know is layer_quantity in cst_quantity_layers represent the current OH or Qty get costed (exists in MTA) or something else? Regards Emad
-
hi i am planning to write Xi certification,can i know the process ,requirements dates and fare for the certification. regards ramu