Record set per message
hi
if suppose this is my input structure
<car>
<color = red/>
<manufavture = 200/>
<car/>
i want to know the entire structure above is 1 recordset per message,please explain the difference between recordset per message and a mesage.
Hi,
Copied From SAP Help
Under Recordsets per Message, specify the number of recordsets to be grouped together in a message. This entry is optional. The default value is *. In the default setting, all recordsets are included in a message.
If the number of recordsets in a document is greater than the number specified, then the adapter creates multiple messages from a document. The last message might then contain fewer recordsets than specified
http://help.sap.com/saphelp_nw70/helpdata/EN/ae/d03341771b4c0de10000000a1550b0/frameset.htm
Regards
Seshagiri
Similar Messages
-
File content conversion record set per message
Dear All,
Problem:- File is of huge size because of which file content conversion is taking longer time and is failing.
File format:-
Header
Detail
Detail
Header
Detail
Detail
Detail
Detail
Header
Detail
Detail
Trailer
Trailer has total count of all detail record,header record and there are few checks as well as wrt other fields.
We need to do all the above validation on the file and if it successful it shud process it otherwise alert shud be raised.
As a step:-
I have used record set per message for splitting up the file because of huge size this functionality is working fine but because of spitting of file i am not able to do trailer validation as XI is creating multiple records with different message ID's
Is any other approch which will help to achieve both Spliting as well as validation
chiragChirag,
simplest scenario I can think of is splitting the 2 reqs.
1. create 2 folders, one for "in process" files and other for "validated" files.
2. create 2 scenarios:
2.1. your current sender system to in process folder (whatever to File).
=> In this you just do the validation, without FCC. You could create a simple module for that or even do it at mapping runtime, as you said (mapping may be easier to handle errors), and throw a runtime exception (which will eventually trigger an alert).
=> At the end, only files that go successfully throug the validation will be located in the "In Process" folder.
2.2. do a simple file to file scenario (from "In Process" to "Validated" folder), this time executing FCC & splitting messages if necessary.
Of course, this will only work if the module/mapping is able to process the large file anyway (hopefully yes, since it will still be a flat file and not XML yet).
BR,
Henrique. -
Reg: When trying for [Record Set Per Message] Payload not generating MONI
Hi,
Can you please change the value of FCC parameters from
Record Set Per Message:: 1
Key Field Value: KF
Key Field Type: Case Sensitive
Record Set Per Message:: 1
Key Field Value: K01
Key Field Type: Case Sensitive
Regards,
ChandraHi,
If you want to split file according to Record set per message, check below settings with your configuration.
Ex file:
Amarsrinivas,Eli,4444,XYZ,3
Sachin,Tendulkar,29564,ABC,9
Ajay,Jadeja,5555,PQR,5
*IR PART*
See this is the Outbound Data type I have created::
*ADT_Record_Outbound Complex Type *
Record Element 0..unbounded(This is used for if Record set per message more then one.Structure Occurance.Not the message type)
First_Name Element xsd:strin 1
Last_Name Element xsd:string 1
EMP_ID Element xsd:string 1
Project_Status Element xsd:string 1
Experience Element xsd:string 1
THis is the Inboudn Data type I have created::
ADT_Record_Inbound
*ADT_Record_Inbound Complex Type *
Record Element 0..unbounded(This is used for if Record set per message more then one.Structure Occurance.Not the message type.One to one mapping done)
FullName Element xsd:string 1
Global_ID Element xsd:string 1
Project Element xsd:string 1
IT_Exp Element xsd:string 1
This is the Mapping I have done.....
ForSource Message TYpe I kep Occurancs as 1
For Target Message Type as I kept Occurances as 1
ID Part::
CONTENT CONVERSION PARAMETERS::
Document Name:: AMT_Record_Outbound
Document Namespace:: http://xxxxxxxxxxxxxxxxxxxxx
Document Offset::
RecordSet Name::Record
RecordSet Structure: ---:Record,*
Recordset Sequence,* ::: Assensding
Record Set Per Message:: (As you required)(According to that target file and message will create)(If you mention 2 each 2 structure one message will flow in SXMB_MONI)
Key Field Value:
Key Field Type: Case Sensitive
Record.fieldSeparator= ,
Record.endSeparator= nl
Record.fieldNames= First_Name,Last_Name,EMP_ID,Project_Status,Experience
ignoreRecordsetName= true
Regards,
Prakasu.M -
How do we count the number of records send in a message. the scenario is from FTP to Proxy. No graphical mapping involved. Need to count the number of records that XI processed for a particular message.
Kumar,
On receiver end you have proxy's..right? you can code to count number of records per messages inside proxys. I think this would be the simplest way.
Nilesh -
Recordset per message in Sender File Adapter
Hi Friends
I have configured a sender file adapter to pick up *.txt files from a specific path, Since the file is having thousands of records it is failing to process the file at PI level . In order to avoid the problem I have kept Recordset Set Per Message as 10 , but still PI is processing all the records into a single message. Please help me in troubleshooting it.
Regards
Suman.Hi Suman,
Go thru these threads for troubleshooting...
Massive file
Processing huge file loads through XI
Processing of huge no of Inbound xml files
Bottleneck in Large file processing
How to process large data files in XI ? 100 MB files ?
Regds,
Pinangshuk. -
Hi Group,
I am using Record ser per message to split my large volume messages,but in my input I have one header,unbounded items,one tailor when I am using record set message it is splitting items and getting error in the MONI that Header target not able to generate,In the sender communication channel I am using content Conversion.
Can any body suggestHi,
Can you give a try using this weblog:
/people/stefan.grube/blog/2007/02/20/working-with-the-payloadzipbean-module-of-the-xi-adapter-framework
Also see the question by Bhavesh in the end of the weblog.
---Satish -
Sender File Adapter cannot send single record per message ?
Hi,
I have scenario flat file to jdbc. but then why the sender file adapter didn't split the record to become single record per message eventhough i have set it in "Recordsets Per Message" = 1. ?
Document Name MT_APINVOICE
Document Namespace urn:file:jdbc:apivinvoice
Document Offset 8
Recordset Name INPUT
Recordset Namespace
Recordset Structure RECORD,*
Recordset Sequence Ascending
Recordset per Message 1
Key Field Name
Key field Type String
RECORD.fieldFixedLengths 10,5,10,10
RECORD.endSeparator 'nl'
RECORD.fieldNames F1,F2,F3,F4
Please advise
Thank You and Best Regards
Fernand>>but then how to make for example more then 1 records per message.
like 10 records per message. should i set RECORD,10 ?
That is right. Just try it out yourself.
@Shesagiri,
Number of record is decided by the parameter Recordset structure and number of recordset with in a message is decided by Recordset per Message.
Regards
Jaishankar -
I am creating biztalk application to store the data into sql server.
and my client says this line what i am not understood .
"Only one round trip to database from BizTalk per message irrespective of number of records in message per table."
Any one can help me to understand this line.!
Thanks,One more option is -
Create a stored procedure to perform batch insert, you can insert into any number of tables you want.
--sample SP code...just added the steps you need to know to extract XML and perform insert
CREATE PROCEDURE <SPName>
@YourXML XML
AS
BEGIN
EXEC sp_xml_preparedocument @idoc OUTPUT, @youXML
SET @j = 1
WHILE @j <= @recordCount
BEGIN
SET @xpath = '//ns1:RootNode/Record[' + CAST(@j AS VARCHAR(11)) + ']'
;WITH XMLNAMESPACES('record namespace' as ns0, 'rootnode namespace' as ns1)
INSERT INTO YourTable
(field1, field2....field20)
SELECT
field1, field2....field20
FROM OPENXML(@idoc, @xpath, 2)
WITH(field1 varchar(2), field2 varchar(20)........field20 varchar(100))
SET @j = @j + 1
END
END
On BizTalk side its quite simple...generate schema for your stored procedure...and in your map transform your XML to StoredProcedure schema using CDATA.
Hope it helps!! -
Can we enable "Select record Set Message choice" of Table in left side
Hi ,
I have requirement to set the "Select Record Set " Message choice of a table region on left side.
Ex:If there are more records in a table region and message choice available to select next set of records.
You can chk in Workflow Status Monitor function.
Its the Navigation Bar to be @ left side on the table Region whcih allows you to navigate the records set.
Thanks,Sarath.
Edited by: SarathL on Dec 13, 2011 4:59 PMHi,
Not sure what exactly you are looking for.
The Next link and option to select next set of rows comes to your OA Table by default .. isn't it?
-Idris -
BUG: Record Limit per Document doesn't work for PDF in CS4 - does it work in CS5?
Hey all - I'm attempting to export 100 data merged documents to pdf. I know i can use "Record Limit per Document" set to 1 to create 100 InDesign files, which isn't what i want to do. When you select "Export to PDF" in the data merge window, the "record limit per document" option exists, but no matter what, it will always create one giant pdf file - it will NOT separate into 100 different pdf files. This is a bug in CS4.
I am wondering if the bug has been fixed in CS5 or if there is a workaround in CS4 to generate the pdfs.
All I found is this ancient thread in which people say the only workaround is to batch convert the pdf files later, and then degenerates into unrelated discussion:
http://forums.adobe.com/message/1110826g'day there
has there been any follow-up to this or workarounds?
i constantly have VDP jobs which have tens of thousands of records, but the chaps printing it only want the PDFs in lots of 500 or so. being able to do ONE merge which splits the merge into bite-size PDFs for our printing section would be preferable to making them through the dialog box in the appropriate lots.
colly -
Mail.app: Select outgoing (SMTP) server per message?
Dear community members,
I'm looking for a solution to the following problem:
I do have multiple e-mail accounts which are configured in the following way: One of them is the master account (let's say [email protected]) added to Mail.app as a POP account. The other ones (let's call them [email protected] and [email protected]) are on different servers and are configured to forward all incoming mail to [email protected] They are, however, not added to Mail.app as additional accounts. That is because it's not necessary for receiving mail with these addresses, since all incoming mail is forwarded to [email protected], anyway, and therefore immediately available in Mail.app.
The problem arises when sending e-mails within Mail.app. I can easily add all three addresses in the "Mail" > "Settings" > "Accounts" settings window by entering them in the e-mail-address-field separated by comma (e.g. "[email protected], [email protected], [email protected]“). This allows me to select the desired outgoing address on a per-message basis in the compose window.
There is, however, a problem with this: This setting means that mail from all three addresses is being sent using the same SMTP server. This can cause problems for domains that do have SPF-records, for example. Therefore, I'd very much prefer to not only select the outgoing mail address on a per-message-basis, but also the SMTP-server I'd like to use. Since Mail.app allows me to add multiple SMTP servers in the account's settings window, I believe there has to be a way to select which one to use on a per-message-basis? Whenever there's a problem with an SMTP-server, a window opens up asking me which of the alternative SMTP servers I'd like to use, instead. This indicates that this function exists – it's just far from obvious for me where to find it in a normal usage scenario.
Does anyone have an idea? Any hint is welcome!
Thanks
NickThat has nothing to do with it. I ended up working around the problem by changing the account name.
But I still think this is a bug, so I won't mark the topic as answered (a workaround is not the solution). -
Detecting message part after Recordsets per Message
Hi !
Scenario: File -> XI -> RFC
Because of some big text files (about 30 or 40 mb) as input files, we need to use partition our files using Recordsets Per Message in the content conversion parameters of our file adapter (sender).
We need to send to the RFC, the total number of messages that we are sending or at least, a flag to indicate that we are sending the LAST message.
Example:
one file has 21.000 records. We set the "recordsets per message" to 3000. Then XI will receive 7 messages with 3000 records each. When we call the RFC (receiver) after processing the 7th package, we need to send also a flag to indicate that that was the last message.
Any ideas?
Thanks !Hi Matias,
There's a BPM pattern that deals with something like this. it's called BpmPatternCollectMessage and collects all messages of the same type until it gets a terminating message. so in your case you could define the terminating message as being the last / summary line of your input file (creating a new recordset type for that) and once you receive this message, which should be after the split up parts of your file, you could send out the RFC calls.
Question is, how that will perform with large files.... probably not too well, although there have been some performance improvements to BPMs lately.
Maybe you should try that as well and run a performance test against your solution with the Z Table. The problem with the Z table solution is, that you have to deal with the fact, that mappings can be executed more than once, in the case errors did occurr. so this can mean, that your function and hence the call to the Z table could occurr more than once for the same message. (remember mappings are stateless....)
Regards
Christine -
Recordeset per message with variable recordset sequence?
Hi,
I'm uploading a text-file with three different recordset substructures in any number and in variable sequence. I.e. a file could look like below:
structure 1
structure 1
structure 3
structure 2
structure 1
structure 3
structure 1
Thus the File adapter settings are as follows:
Recordset Structure = structure 1,,structure 2,,structure 3.*
Recordset Sequence = Variable
This works fine, the problem is the file is huge and I would like to limit the number of records in each message by using the recordset per message parameter. But if you have a variable recordset sequence the whole message is regarded as one recordset. If I change to ascending sequence I get an unpredictable number of messages since a recordset change is only done every time the file "breaks the order" defined in the Recordset Structure. Basically I want each record to be regarded as a recordset so I can split the file up with a predictable number of record per message. Is there any work around possible?
//JohanDear Johan,
if we say structure 1 as "A" structure 2 as "B" structure 3 as "C" and with sequence as variable then "regular expressions" reprsented as
(ABC).
any combination at file structure comes as a message or as you say single record at sender side.
if you really want to break the records and conquer where order is not important,
that is A record ,B record, C record are independent of each other at XI processing then go for 3 FILE ADAPTERS and 3 different message structures as A* 2)B* 3)C*.
this will definitely result in controlling message load at XI .
but can say for sure that there can be no replacement for (ABC) since it results in various combinations of A,B,C for example take computer language set it is (10)* and your is (ABC) there by its very diffciult to break this structure equivalent to some structure which meets your requirement.
and also no meaning of breaking it as (AB)* or any combination,
we will end no where if we look for replacement for (ABC),
what can we do is go for independent structures or limit Structure order at FILE mean
atleast (ABC)* or (ABC) .
Thanks & Regards,
Rama Krishna -
How to set the message in the status bar...
hai,
how to set the message in the status bar...
let us say "inserted data successfully, or opening page followed by the link clicked on the screen....."
kindly help me outsunil,
do not use advise by Ashutosh with WebDynpro.
Instead of placing message into browser status bar (and browser is not the only WD UI agent), use IWDMessageManager API to post messages of such kind:
wdComponentAPI.getMessageManager().reportSucces("Record inserted");
VS -
Recordsets per Message not working
I found that Recordsets per Message will split the source message into multiple messages and process them separately. This will save my alot of time and is exactly what I need - but it does not work.
I have in my sender file adapter the following parameters in File Content conversion:
Document Name = MT_SND_ZADIG
Document Namespace = urn://federalmogul.com/ADP/FINFRADP001/00
Recordset Name = RECORDSET
Recordset Structure = RECORDSET,*
Recordset Sequence = Ascending
Recordsets per Message = 10
Key Field Type = String (case-sensitive)
RECORDSET.fieldNames RECORDCODE,ACCOUNTID,CONST_E,CONST_Z2M,MONTHYEAR,JOURNALCODE,FOLIOCODE,RECORDTYPE,DAY,GLACCOUNT,CODINGBLOCK,DEBITAMOUNT,CREDITAMOUNT,TEXT,FILLER1,FILLER2,ACCREF1,ACCREF3,EMPLOYEENO,REPORTTYPE,ZADIGCODE,ACC_TYPE,RESERVED,CENTURY
RECORDSET.fieldFixedLengths 2,6,1,3,4,3,2,1,2,12,18,13,13,20,8,8,12,12,6,4,6,1,1,2
RECORDSET.lastFieldsOptional yes
When I feed in a file with 77 records I would expect it to split it into 7 * 10 recordset and then 1 * 7 - why is it not doing this?Hi Lynn,
And... what is the result you are getting?
Try to change Recordset Structure with something different that Recorset name.
Something like:
Recordset Name = RECORDSET
Recordset Structure = row,*
row.fieldNames RECORDCODE,ACCOUNTID,CONST_E,CONST_Z2M,MONTHYEAR,JOURNALCODE,FOLIOCODE,RECORDTYPE,DAY,GLACCOUNT,CODINGBLOCK,DEBITAMOUNT,CREDITAMOUNT,TEXT,FILLER1,FILLER2,ACCREF1,ACCREF3,EMPLOYEENO,REPORTTYPE,ZADIGCODE,ACC_TYPE,RESERVED,CENTURY
row.fieldFixedLengths 2,6,1,3,4,3,2,1,2,12,18,13,13,20,8,8,12,12,6,4,6,1,1,2
row.lastFieldsOptional yes
Follow the example is described in:
http://help.sap.com/saphelp_nw04/helpdata/en/2c/181077dd7d6b4ea6a8029b20bf7e55/content.htm
Regards,
Carlos
Maybe you are looking for
-
Question regarding RV016 and subnetting
I am fairly new to subnetting and have been reading up on it a little bit. What I want to do however seems to be fairly simple so I am hoping someone can help me out here. On my RV016 I have created a subnet of 192.168.8.x with SNM of 255.255.255.0.
-
I need help with my mobile site using Go daddy
my website will not work properly
-
How toTrigger a workflow on saving invoice
what are the different ways of triggering a workflow in generic? And in particularly when an parked invoice(without PO) is saved. Appreciate your inputs. thanks, Vinay
-
Open BLOB Content from an Interactive Report in a New Window
Hi All, I have an Interactive Report with the following query: SELECT ID, FILE_NAME, FILE_MIME_TYPE, FILE_CHARACTER_SET, DBMS_LOB.GETLENGTH(FILE_CONTENT) FILE_CONTENT, FILE_LAST_UPDATED FROM FILESThe Number/Date Format property for the
-
I would like to open a photo from my iPhoto library in Photoshop. In PS I select File>Open, and I get a dialog box. I scroll down to Places and click on the Pictures icon (on the left) - and here is the snag: iPhoto Library is greyed out, but PhotoBo