Reading Multiple lines using File Adapter in PI 7.1
Hi Friends,
We are using PI 7.1 Service pack 4, scenario is File to IDOC .
I am using Sender File Adapter with File content conversion for fixed lengths to read file from FTP XI-SAP.
File Format :
EDI_DC40 , A, B, C, D, E
E1WPU01, F, G,H, I
E1WPU02 , J,K,L
E1WPU02 , J,K,L
I have maintained Fcc parameters . I am able to read files for mulitple rows when manually set the count in recorset structure
like :
Recordset Structure : EDI_DC40,1, E1WPU01,1, E1WPU02,2...
Problem is when I set * in Recorset Structure : EDI_DC40,1, E1WPU01,,E1WPU02,
Nothing is coming .
Could anyone help me how to resolve this issue.
Regards,
Vijay
Hi Vijay,
As u mentioned in earlier post...
keyfieldName = TABNAM
EDI_DC40.fieldNames :
EDI_DC40. fieldFixedLengths:
EDI_DC40.keyFieldValue :
E1WPU01.fieldNames :
E1WPU01.fieldFixedLengths:
E1WPU01.keyFieldValue
E1WPU02.fieldNames :
E1WPU02.fieldFixedLengths:
E1WPU02.keyFieldValue
Here actually you are trying to get the key field value even from EDI_DC40 and E1WPU01 also....
So obviously u dnt have those values in that rows so.. it cannot get the rows....
So please u try this one..... The same FCC but remove the 2 lines.... for EDI_DC40 and E1WPU01
keyfieldName = TABNAM
EDI_DC40.fieldNames :
EDI_DC40. fieldFixedLengths:
E1WPU01.fieldNames :
E1WPU01.fieldFixedLengths:
E1WPU02.fieldNames :
E1WPU02.fieldFixedLengths:
E1WPU02.keyFieldValue
I hope this wil solve ur problem..
Lemme know if any issues...
Thanks & Regards,
H.L.Babu
Similar Messages
-
File Read and Write using File Adapter in Bpel
In Bpel Process i am using File Adapter ( Schema is Opaque) for read and write the file contents. i am able do successful deployment and read, write function in first time deployment, after that again i tired to run the application, its not going to write the content of file, its only writing the file with out data's or content in that file.
Please help me...
SaravananHi Eric
In my domain.log file having the following details. In this file im unable to find out what the exact problem. Please look at this and help me.
<2008-01-22 18:25:42,024> <INFO> <default.collaxa.cube.compiler> validating "C:\product\10.1.3.1\OracleAS_1\bpel\domains\default\tmp\.bpel_BPELProcess2_1.1_298e83988d77b6640c33dfeec11ed31b.tmp\BPELProcess2.bpel" ...
<2008-01-22 18:25:49,850> <INFO> <default.collaxa.cube.engine.deployment> <CubeProcessFactory::generateProcessClass>
Process "BPELProcess2" (revision "1.1") successfully compiled.
<2008-01-22 18:25:49,914> <INFO> <default.collaxa.cube.activation> <AdapterFramework::Inbound> Loading JCAActivationAgent for {portType=Read_ptt}
<2008-01-22 18:25:49,914> <INFO> <default.collaxa.cube.activation> <AdapterFramework::Inbound> JCAActivationAgent::load - Locating Adapter Framework instance: OraBPEL
<2008-01-22 18:25:49,930> <INFO> <default.collaxa.cube.activation> <AdapterFramework::Inbound> JCAActivationAgent::load - Done loading JCAActivationAgent for processId='bpel://localhost/default/BPELProcess2~1.1/
<2008-01-22 18:25:49,930> <INFO> <default.collaxa.cube.engine.deployment> Process "BPELProcess2" (revision "1.1") successfully loaded.
<2008-01-22 18:26:02,698> <INFO> <default.collaxa.cube.activation> <AdapterFramework::Inbound> JCAActivationAgent::uninit Shutting down the JCA activation agent, processId='bpel://localhost/default/BPELProcess2~1.0/', activation properties={portType=Read_ptt}
<2008-01-22 18:26:02,698> <INFO> <default.collaxa.cube.activation> <AdapterFramework::Inbound> Adapter Framework instance: OraBPEL - performing endpointDeactivation for portType=Read_ptt, operation=Read
<2008-01-22 18:26:02,698> <INFO> <default.collaxa.cube.ws> <File Adapter::Outbound> Endpoint De-activation called in adapter for endpoint : D:\MAXIMUS_Project_Softwares\jdevstudiobase10132\jdev\mywork\MyLabs\BPELProcess2\in
<2008-01-22 18:26:02,698> <INFO> <default.collaxa.cube.activation> <AdapterFramework::Inbound> JCAActivationAgent::init - Initializing the JCA activation agent, processId='bpel://localhost/default/BPELProcess2~1.1/
<2008-01-22 18:26:02,698> <INFO> <default.collaxa.cube.activation> <AdapterFramework::Inbound> JCAActivationAgent::initiateInboundJcaEndpoint - Creating and initializing inbound JCA endpoint for:
process='bpel://localhost/default/BPELProcess2~1.1/'
domain='default'
WSDL location='rd.wsdl'
portType='Read_ptt'
operation='Read'
activation properties={portType=Read_ptt}
<2008-01-22 18:26:02,698> <INFO> <default.collaxa.cube.activation> <AdapterFramework::Inbound> Adapter Framework instance: OraBPEL - endpointActivation for portType=Read_ptt, operation=Read
<2008-01-22 18:26:02,730> <INFO> <default.collaxa.cube.activation> <File Adapter::Inbound> Endpoint Activation called in File Adapter for endpoint: D:\MAXIMUS_Project_Softwares\jdevstudiobase10132\jdev\mywork\MyLabs\BPELProcess2\in
<2008-01-22 18:26:02,730> <INFO> <default.collaxa.cube.activation> <AdapterFramework::Inbound> Adapter Framework instance: OraBPEL - successfully completed endpointActivation for portType=Read_ptt, operation=Read
<2008-01-22 18:26:02,890> <WARN> <default.collaxa.cube.activation> <File Adapter::Inbound> PollWork::run exiting, Worker thread will die
<2008-01-22 18:26:04,171> <INFO> <default.collaxa.cube.ws> <File Adapter::Outbound> Managed Connection Created
<2008-01-22 18:26:04,171> <INFO> <default.collaxa.cube.ws> <File Adapter::Outbound> Connection Created
<2008-01-22 18:26:04,171> <INFO> <default.collaxa.cube.ws> <File Adapter::Outbound> FileInteraction Created -
How to read multiple lines using 'REUSE_ALV_GRID_DISPLAY'
Hi,
In ALV report the FM 'REUSE_ALV_GRID_DISPLAY' used.
EXPORTING
I_CALLBACK_PROGRAM = W_REPID
I_CALLBACK_PF_STATUS_SET = 'PF_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
How to read multiple lines in the following dynamic subroutine ?
I am able to read single value through p_selfld.
Nut the requirement is to change the values in more than 1 row for a fld (edit mode)
FORM USER_COMMAND USING P_UCOMM TYPE SY-UCOMM
P_SELFLD TYPE SLIS_SELFIELD.
endform
Thanks in advanceYou can get the reference by a dirty assign, but this is not offcially supported...
But if you have some limitations.
FORM user_command USING fuw_ucomm LIKE sy-ucomm
fuw_selfield TYPE slis_selfield.
FIELD-SYMBOLS: <lfs_grid> type ref to cl_gui_alv_grid,
<lfs_row> type LVC_S_ROW.
data: li_rows type lvc_t_row.
assign ('(SAPLSLVC_FULLSCREEN)GT_GRID-GRID') to <lfs_grid>.
check sy-subrc is initial.
call method <lfs_grid>->get_selected_rows
IMPORTING
et_index_rows = li_rows.
endform. "user_command -
How to read an excel file which contains multiple tabs using File adapter
Hi BPEL gurus,
I have a requirement where i need to read an EXCEL file, which has three tabs inside the file. All the three tabs has data in it. I have seen few examples where file adapter reads an excel file with data present inside a single tab but not with multiple tabs.
If anyone has worked on this scenario, please provide your suggestions/inputs/links etc.
Thanks in advancehi Sathish,
this might help
PI/XI: Reading MS Excel's XLSX and XLSM files with standard PI modules - easily...
thanks and regards,
Praveen T -
Multiple lines in File adapter
Hi Friends ,
I am using a file to Idoc scenerio,I had to write the tdline field , which is multiple lines in idoc to a field in file .
My file structre is simple : No hierchries in the fields . Assume f is long text field .
I have defined field f as 0:unbounded .
In content conversion parameters :
Recordset : row, *
My structure is :
a
b
row
e
f(long text field)
g
h
Now what happens is , if the TDLINE has multiple lines , the the data in file appears with Pipe seperator .
In my case , I have used Pipe as field seperator .
Please suggest .
ChanHi Vijay,
As u mentioned in earlier post...
keyfieldName = TABNAM
EDI_DC40.fieldNames :
EDI_DC40. fieldFixedLengths:
EDI_DC40.keyFieldValue :
E1WPU01.fieldNames :
E1WPU01.fieldFixedLengths:
E1WPU01.keyFieldValue
E1WPU02.fieldNames :
E1WPU02.fieldFixedLengths:
E1WPU02.keyFieldValue
Here actually you are trying to get the key field value even from EDI_DC40 and E1WPU01 also....
So obviously u dnt have those values in that rows so.. it cannot get the rows....
So please u try this one..... The same FCC but remove the 2 lines.... for EDI_DC40 and E1WPU01
keyfieldName = TABNAM
EDI_DC40.fieldNames :
EDI_DC40. fieldFixedLengths:
E1WPU01.fieldNames :
E1WPU01.fieldFixedLengths:
E1WPU02.fieldNames :
E1WPU02.fieldFixedLengths:
E1WPU02.keyFieldValue
I hope this wil solve ur problem..
Lemme know if any issues...
Thanks & Regards,
H.L.Babu -
How can I get file from multiple instance using file adapter
Hi.
Our system(PI7.1) have three application instances running with each physical servers.
We use sender file adapter.
The file data is sent to one of the servers.
Now, how can I get the file using three file adater?
Should I put the file "sapmnt(\usr\sap)" .
Or are there another solution?
regards,Hi Ashutosh
You will have to use sapcar.zip which contains the utility Sapcar.exe utility for unzipping the files from SAP compressed files. (*.car file)
Regards
Gaurav
PS: Reward points if solved -
How to post multiple message using file adapter in XI2.0
We have to post multiple IDOCS.We have scenario as below.
We will have file structure like as shown below.
VKORG,VTWEG,SPART,BSART,PARVW,PARTNER,BSTDK,MATNR,MENGE,VSART,BSTZD,POLINE,BSARK
BE10;10;10;OR;SP;1000033;;M184-ISS01;2;G;131;0002;
BE10;10;10;OR;SP;1000033;;M184-ISS01;2;G;131;0002;
BE30;10;10;OR;SP;1000033;;M184-ISS01;2;G;131;0002;
For this we want that 2
messages should be created.In first message there will be first 2 records
with VKORG BE10 and in second message there will be last record with VKORG BE30.
We can do it through FILE2XMBWITHSTRUCTURECONVERSION and using some options.
I am sending the configuration that I have done for my adapter.
classname=com.sap.aii.messaging.adapter.ModuleFile2XMB
mode=FILE2XMBWITHSTRUCTURECONVERSION
#mode=FILE2XMB
XMB.TargetURL=http://20.60.53.36:8000/sap/xi/engine?type=entry
XMB.ReceiverBusinessSystem=sapdev210
#XMB.ContentKind=B
XMB.ContentKind=T
#XMB.ContentType=application/xml
XMB.ContentType=text/xml
#XMB.ContentType=text/plain
XMB.QualityOfService=EO
##xml conversion properties if mode FILE2XMBWITHROWCONVERSION specified (example, see docu)
xml.recordsetStructure=IDOC,*
xml.recordsetName=SALESDATA
xml.recordsetsPerMessage=1
xml.documentName=SALESDATA
#xml.fieldFixedLengths=
xml.IDOC.processFieldNames=fromConfiguration
xml.IDOC.fieldNames=VKORG,VTWEG,SPART,BSART,PARVW,PARTNER,BSTDK,MATNR,MENGE,VSART,BSTZD,POLINE,BSARK
xml.keyFieldName=VKORG
xml.keyFieldType=CaseSensitiveString
xml.IDOC.keyFieldValue=BE10.
xml.IDOC.fieldSeparator= ;
What I have tried is hardcoding 2 in xml.recordsetStructure=IDOC,2.It works fine
Since I already knew this.
Butin real scenario we wont be knowing this that is why I have given * in configuration , and
given
xml.keyFieldName=VKORG
xml.keyFieldType=CaseSensitiveString
xml.IDOC.keyFieldValue=BE10.
With this it should identify on key field and its value and put first 2 records in one message
and last record in second message.
It is not giving any error when we start adapter but no XML message is created.Can u plz help me
for the above problem.
My datatype in repository is like
SALESDATA
IDOC
VKORG
VTWEG
and allother remaining fields.
Is this scenario possible in XI 2.0.If yes then will it be done through above approach or something else.
Thanx.
Rekha.Hi,
I think you can not handle this problem with keyFieldName/keyFieldValue.
In my opinion with keyFieldName/keyFieldValue you can create different substructures of the same XML, but you can not seperate messages with the same substructure.
But I don't know how to handle your problem ;-(
Another point is that I see a dot after xml.IDOC.keyFieldValue=BE10.
My be this is a problem too.
Christoph -
How to change read-directory when using file adapter
Hi, I'm deploying BPEL process to read files from a directory. I want to change the directory where to read dynamically. This can be achieved by using a file header variable. I know how to do this. But, the problem for me is that I can not find a place to assign this file header variable a correct value. The first step in my BPEL process is the receive-step and this has to be the first step. I wanted to place the assign-step before this step but this makes the BPEL process invalid. First step has to be a receive or a pick-step. So, now I have a dilemma! Anyone an advice on this?
Thanks in advance.Maybe you can use this information :
http://otndnld.oracle.co.jp/document/products/as10g/1012/doc_v3/integrate.1012/B14448-01/html/app_trblshoot.htm
A.3.3 Common User Errors explains something about the fileheader messages -
How to read MS-Excel file by using file Adapter
hi friends,
I have an issue on read Operation by using file Adapter.
It is necessary to read excel file by using file adapter. But in the native format of file adapter there is no option to read excel type of files.
So friends, please help me how to solve this problem?
Thanks in Advance..See also this post:
Read Excel File Using FileAdapter in SOA 11g
It might help you -
Multiple message through FIle Adapter using XI 2.0
I have scenario to create multiple message using File adapter .My file structure will be like
EMPID NAME SKILLS
001 A ABAP
001 A XI
002 B JAVA
Now I want to post first 2 records in one message and last record in other message.
Can we do it in XI 2.0.Any help appreciatedHi Suraj.
Thank you very mutch for your reply.
Excuse me...my mapping is done for message type and idoc.
My problem is that when the interface start, on the sxmb_moni I see an error like this:
Creating Java mapping com.sap.xi.tf._MM_XmlOrderToIdocMapping_ --- Using MappingResolver with context URL //srvsapdev/sapmnt/CX1/SYS/global/xi/mapping/gestione_magazzini/7fa9c9e15a7811dab710f3e3ac10826e/ --- Load of com/sap/xi/tf/_MM_XmlOrderToIdocMapping_.class from //srvsapdev/sapmnt/CX1/SYS/global/xi/mapping/gestione_magazzini/7fa9c9e15a7811dab710f3e3ac10826e failed. --- Class not found: com.sap.xi.tf._MM_XmlOrderToIdocMapping_ --- java.lang.ClassNotFoundException at RUMappingJava.load(): Could not load class: com.sap.xi.tf._MM_XmlOrderToIdocMapping_ Class not found: com.sap.xi.tf._MM_XmlOrderToIdocMapping_ --- com.sap.aii.ibrun.server.map.MappingRuntimeException: at com.sap.aii.ibrun.server.map.MappingRuntimeException.code_STYLESHEET_OR_CLASS_NOT_FOUND
..where 'gestione_magazzini' is my namespace and 'MM_XmlOrderToIdocMapping' is my message mapping.
Can you help me to undestand the problem?
Thanks,
Gianluca -
Reading Multiple lines in a file Using File Adapter
Hi All,
Iam new to this technology.How to read multiple lines in a file using file adapter.Brief me with the methodology.I didn't look at anything else but if you want to write more than one line ever to your file you should change this
out = new FileOutputStream("Calculation.log");to this...
out = new FileOutputStream("Calculation.log",true);A quick look at the API reveals the follow constructor FileOutputStream(File file, boolean append) append means should I add on the end of the file or over-write what is there.
By default you over-write. So in our case we say true instead which says add on to what is there.
At the end of that little snippet you shoudl be closing that stream as well.
So where you have
p.close();You should have
p.close();
out.close(); -
Remove Line feed at the end of the file while using file adapter
Hi All,
I have a requirement. We are sending a file from SAP to FTP using file adapter. we are successful in sending the file to FTP but at the end of the file a extra blank line is created .
Can anyone please suggest how to remove the extra line feed at the end of the file.
Thanks and Regards,
LRK.check this:
http://help.sap.com/saphelp_nw04/helpdata/en/2c/181077dd7d6b4ea6a8029b20bf7e55/frameset.htm
To define an additional string as a separator after the last column in a row, specify it here. The system skips this string when it processes the last column (otherwise the system would treat it as part of the last column).
Also there are solved threads which deal with same problem....you can even check them out...
regards,
Abhishek. -
How to read a incorrect XML file using file adapter
Hi',
I have a XML file which is incorrect,
example
<?xml version='1.0' encoding='UTF'?>
<emp>
<empid>100</empid>
<empname123>yatan</empname>
</emp>
now we can see that the XML data *<empname123>yatan</empname>* is incorrect,
so if we have to read this type of XML in BPEL is it possible to read it or can we read it with some work around
I have tried one way to achieve this,
I read this XML with file adapter opaque read operation, and inside the BPEL process used Base64Decoder (Java embedding) to decode the
opaque data to XML, it works to some extend. I am able to see the only the data like,
100 yatan
If I read a correct XML with same approach the data is a complete XML like,
<?xml version='1.0' encoding='UTF-8' ?>
<emp>
<empid>100</empid>
<empname>yatan</empname>
</emp>
can some one advice me how to achieve this, or some one has done this before
thanks
YatanWhat initially I have thought is,
once a incorrect file comes in this failed directory, some BPEL process should get invoked and feed the data to user, for this I thought of designing a BPEL process which will poll this failed directory, so for this we will need a empty BPEL process which will pick the file and then pass the data, the issue is I need to use here a opaque read and I dont know how to convert back the opaque (faulty XML) back to string.
I have already tried to convert the opaque to XML using java embedding but for faulted XML only the data comes back in the form of string, where as need the complete XML back, can you suggest how to do this.
thanks
Yatan -
Is it possible to read the file using File Adapter which is in client machi
Is it possible to read the file using file Adapter which is in client machine(on the same network).Then what is thee need of FTP Adapter?
You can achieve that by exposing your client machine as a drive, then you can go using file adapter.
FTP adapter will help you to communicate with different machine which is in different network.
It is considered good etiquette to reward answerers with points (as "helpful" - 5 pts - or "correct" - 10pts).
Thanks,
Vijay -
How to get the read input file name in bpel process using File Adapter.
Hi,
I am reading a .txt file from configured directory using File Adapter.
I had configured file adapter to read file with naming pattern “SalesOrder.*\.txt”.
Now I had requirement to access the actual file name in bpel process eg: “SalesOrder123.txt”
How can I get the file name in bpel process.
Any help is appreciated.
Vidya.1) create a variable of message type. Click on Browse Message type. Here you select Message Type-->Project WSDL Files -->fileAdapterInboundHeader-->Message Types-->Inboundheader_msg. Then click OK
2)Next dbl Click on teh receive Activity which is receing your File from teh File Adapter. Go to the Adapter Tab. Click on Browse variable and select the variable that you had just created above.
This would get the File name in the variable declared
Maybe you are looking for
-
Inserting password for airport base graphite network
I have an iBook G3 500 of seven years vintage, and recently bought an airport card and a graphite airport base on eBay. It's working fine as a domestic network, but it has simply the name of the person who sold me the airport base as its name, and no
-
Dear All, We are created Counter for air consumption in that mentioned counter over floew reading 99999999.We are not planning any maintenance paln againtst this counter. we start punching readings like, Our last counter reading before uploading into
-
How to start Windows 7 in safe mode with bootcamp?
So my computer had a crash this afternoon in Win7 (it happened before, but still...) and tried to reboot my MBP. I pressed Alt, selected my Win7 partition, and that was it... No Safe mode selection screen, no Windows Logo showing it's booting properl
-
I see that "Trust" a computer on iOS7 is indefinite (learned). How do I undo that on a computer that I want to use for charging but do not want to trust?
-
Hello All, Is there any document available which speaks about E-Business Suite integration with Agile PLM. Thanks, Kannan B