Converting RecordMap to Batch
Hello,
Has anybody successfully taken a recordmap business service to business operation integration and converted it into a Batch pipeline? I am trying to wrap my head around the documentation (https://cedocs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=EGDV_recmap_batch) and cant seem to get this to the finish line, what I end up with is publishing a batch record with exactly one record in it in real-time while when I really want to excersise the RollOver limit of about 50 records. I have no requirement for fancy headers or trailers, just multiple records.
Here was my process:
1. created a BatchRecord, by taking the original recordmap, specifying a new name for the batch record, and compiling the record map. This generates a Batch class. It generates it with the correct 'Records' cardinality of the recordmap I created it from.
What I have now is the business service is successfully sending BatchRecords (with one record in it) to the business process.
2. Instead of just an FTPOperation, I used:
Extends EnsLib.RecordMap.Operation.BatchFTPOperation
This is my understanding that the operation can now accept either a batch object, a single record object, or a RollOver request.
3. Then, I setup the operation with the following settings:
I check "UseDefaultBatch" - my understanding here is that if a Record comes in, it will add it to the DefaultBatchClass when shipping it out.
I declare "DefaultBatchClass" as the one generated from the record map above.
I do not specify a rolleroverschedule.
I do not check to writeEmptyBatches.
I set a RollOver limit kinda low, lets say 5 for testing.
I do not check "DelayDefaultBatchOUtput"
I do not specify an alternate "IntermediateFilePath"
I do specify the appropriate RecordMap.
What I get back is a BatchResponse (which is expected), but no matter how I turn the dials to generate the batch, I always just get a Batch Object sent to the target with exactly one record in it.
Any ideas on what I am doing wrong ?
Comments
Ron,
I am running into a similar situation. Did you figure this out?
** Update **
I figured it out. Key point here is, The request you are sending should not be associated with a batch. So now I have
"UseDefaultBatch" selected with batch class specified in "DefaultBatchClass". I do not have Rollover Schedule specified, But I have "RolloverLimit" specified at 50. As soon BO receives 50 "Record" requests, It is rolling over into a file. I can see these records being added into a temp dir I specified in "IntermediateFilePath "