Question
· Aug 12, 2019

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 ?

Discussion (1)0
Log in or sign up to continue

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 "