Mule Batch -Part2

Mule 4 Indepth Processing large number of records using Mule Batch
10 minutes
Share the link to this page
Copied
  Completed
You need to have access to the item to view this lesson.
One-time Fee
$69.99
List Price:  $99.99
You save:  $30
€67.18
List Price:  €95.97
You save:  €28.79
£55.86
List Price:  £79.80
You save:  £23.94
CA$97.87
List Price:  CA$139.82
You save:  CA$41.95
A$107.62
List Price:  A$153.75
You save:  A$46.13
S$94.24
List Price:  S$134.64
You save:  S$40.39
HK$544.83
List Price:  HK$778.36
You save:  HK$233.53
CHF 62.54
List Price:  CHF 89.34
You save:  CHF 26.80
NOK kr774.97
List Price:  NOK kr1,107.14
You save:  NOK kr332.17
DKK kr501
List Price:  DKK kr715.75
You save:  DKK kr214.74
NZ$119.95
List Price:  NZ$171.37
You save:  NZ$51.41
د.إ257.07
List Price:  د.إ367.26
You save:  د.إ110.19
৳8,361.58
List Price:  ৳11,945.63
You save:  ৳3,584.04
₹5,909.84
List Price:  ₹8,442.99
You save:  ₹2,533.15
RM312.71
List Price:  RM446.75
You save:  RM134.04
₦118,484.88
List Price:  ₦169,271.38
You save:  ₦50,786.49
₨19,443.22
List Price:  ₨27,777.22
You save:  ₨8,334
฿2,412.28
List Price:  ฿3,446.26
You save:  ฿1,033.98
₺2,418.32
List Price:  ₺3,454.90
You save:  ₺1,036.57
B$406.01
List Price:  B$580.04
You save:  B$174.03
R1,267.89
List Price:  R1,811.35
You save:  R543.45
Лв131.37
List Price:  Лв187.69
You save:  Лв56.31
₩98,301.65
List Price:  ₩140,436.95
You save:  ₩42,135.30
₪259.10
List Price:  ₪370.16
You save:  ₪111.06
₱4,125.14
List Price:  ₱5,893.31
You save:  ₱1,768.17
¥10,832.35
List Price:  ¥15,475.45
You save:  ¥4,643.10
MX$1,429.79
List Price:  MX$2,042.64
You save:  MX$612.85
QR255.18
List Price:  QR364.56
You save:  QR109.38
P956.90
List Price:  P1,367.06
You save:  P410.16
KSh9,061.51
List Price:  KSh12,945.58
You save:  KSh3,884.06
E£3,475.01
List Price:  E£4,964.52
You save:  E£1,489.50
ብር8,566
List Price:  ብር12,237.67
You save:  ብር3,671.66
Kz63,900.87
List Price:  Kz91,290.87
You save:  Kz27,390
CLP$69,057.73
List Price:  CLP$98,658.13
You save:  CLP$29,600.40
CN¥506.93
List Price:  CN¥724.22
You save:  CN¥217.29
RD$4,217.06
List Price:  RD$6,024.63
You save:  RD$1,807.57
DA9,397.90
List Price:  DA13,426.15
You save:  DA4,028.25
FJ$159.29
List Price:  FJ$227.57
You save:  FJ$68.27
Q540.13
List Price:  Q771.64
You save:  Q231.51
GY$14,638.82
List Price:  GY$20,913.50
You save:  GY$6,274.67
ISK kr9,776.20
List Price:  ISK kr13,966.60
You save:  ISK kr4,190.40
DH703.91
List Price:  DH1,005.63
You save:  DH301.72
L1,275.33
List Price:  L1,821.98
You save:  L546.64
ден4,132.76
List Price:  ден5,904.20
You save:  ден1,771.43
MOP$561.01
List Price:  MOP$801.48
You save:  MOP$240.46
N$1,268.91
List Price:  N$1,812.81
You save:  N$543.90
C$2,574.70
List Price:  C$3,678.31
You save:  C$1,103.60
रु9,449.77
List Price:  रु13,500.25
You save:  रु4,050.48
S/265.32
List Price:  S/379.05
You save:  S/113.72
K281.71
List Price:  K402.47
You save:  K120.75
SAR262.77
List Price:  SAR375.40
You save:  SAR112.63
ZK1,934.92
List Price:  ZK2,764.29
You save:  ZK829.37
L334.42
List Price:  L477.77
You save:  L143.34
Kč1,702.59
List Price:  Kč2,432.37
You save:  Kč729.78
Ft27,646.05
List Price:  Ft39,496.05
You save:  Ft11,850
SEK kr772.42
List Price:  SEK kr1,103.50
You save:  SEK kr331.08
ARS$70,259.44
List Price:  ARS$100,374.93
You save:  ARS$30,115.49
Bs483.50
List Price:  Bs690.75
You save:  Bs207.24
COP$307,238.59
List Price:  COP$438,931.09
You save:  COP$131,692.49
₡35,641.51
List Price:  ₡50,918.63
You save:  ₡15,277.11
L1,768.23
List Price:  L2,526.16
You save:  L757.92
₲546,248.87
List Price:  ₲780,388.98
You save:  ₲234,140.10
$U2,983.14
List Price:  $U4,261.82
You save:  $U1,278.67
zł291.40
List Price:  zł416.31
You save:  zł124.90
Already have an account? Log In

Transcript

Welcome back. So I'll continue from same point where they left in the earlier video. So, we have actually created one simple flow to understand about batch let us simulate failures. Now. See here I have modified step one, just a small modification in step one, what I have done is, I have a choice router, where in the first when condition, if the payload is 10 or 20 or 30. I'm just going to raise an error just for demonstration the error name is AP current, my error just for testing.

So, three records processing will fail when the period is 10 or 20 or 30. This is going to raise an error. And in second step, we can see our consequence second step already Accept only when payload is divided by two and no failure. That means the records with payload 10 2030 should not go to second step. And step in third step. I want to accept all sectors that we'll be able to accept.

And the period is 10, not 20 or 30. So like that, we can configure some steps to ignore processing of the records based on failures. And also you understood accept expressions, right? And you can also do one thing, we can set variables also in one of the steps, this will create a variable in the record. Okay, just for demonstration I'm writing here. If you set a variable in any one This step, let's say self process.

So process, I can actually make it as True or False. False. So, I could remove this reasoner. So I can set a variable this variable is a record level variable. If you set a variable before that job, that is a variable at the Muley event level. If you remember the structure of mule event, a mule event also has variable right.

So if I actually configure a variable before batch job, it is a variable at New Levent level but it's a configurable variable in any one of the steps, it is considered to be your record level variable. That variable will be visible only for that record. So if you want to set any variables on a record, you can just configure a variable in any one of the steps. Okay, so that's the concept. Now, let me just run this. I think it's already running.

Yeah. So your request is a request to slash test. and here we can see the processing of the course. Yeah, I can see that error is log. And you can see in step one, I can see some messages. Still, after they're also step one continue.

The case processing of the requests continues even though there is one error. Okay, and you can see in step two, you can see the record number 10. Didn't come you can see 246 810 did come 20 rate committee new saw 20 didn't come 30 didn't come. So like that the records are not accepted in step two for failures. But for step three, you should be able to see record with number 10 six, step three has got 10 step three has got 20 right, normally what it was to handle errors. For last step, you can configure the Accept policy is only failures.

So only failure records will come to last step. And here you can do whatever you want. Maybe you can write to a database, or you can push the failure record to a JMS Queue or anything whatever you want. So in this case, step three will be executed only in case No failures. Okay, that's about how to create a variable record level variable and how to handle errors. Okay, I'll just show you one more use case which we'll be implementing in the exercise.

So what I want to do is I want to fall for new files. So I want to call for a file, which contains CSV records. So I have a file, this sales dot CSV, which contains a lot of sales information. It contains a lot of fields like name, city, state and all this. What I want to do is I want to pull file system for this files, and then store that in a database. table name says, right now for this demonstration, I have a sales table with only name and city and this table is I want to read from the sealed sales dot CSV.

And I want to write into database let us see. So what I've done is I've configured this on your upload file which will fall for the file in input directory. Once it gets it's transforming and it's converting to a Java list. Right? Then, here I'm setting a variable set variable transformer where I'm setting the payload size of payload as a variable. This is a variable if you set before batch this that means, what is the scope of this variable?

It is available at the new Levent level right. Then if I set a variable in any one of the steps, it will be a variable in record level. Now, the payload after this transfer will be a list and setting a variable favorite vegetable list. Now what I want to do is in step one, I want to extract the value of name and city and stored in a variable. See here I have written a transform message where this is an expression for variable name. I'm extract I'm extracting payload dot name and setting it as a variable is the record level variable.

And I'm creating another variable city by extracting it from paragraphs. Then in step one, what I want to do is I want to fire select where to check if this record is already exist. Now see here the query Select star from cells where name is equals to my name, and city. And here is the value for input variables my city and my name I'm extracting from that's Rasmus here in this case, the records variable record variable which I have set in transform message So, the output of this select component will be a list of size zero if the record is not existing, or if the record for the record is existing, the size will not be zero. Yes, size will be zero, right. So here I'm setting up variable again, under Advanced, I'm setting a variable is present.

So the phase of payload, the query results in more than one row, record is present. Right? I'm setting this variable and I don't want second step to be executed if the variable is present. The variable is not present in the database, then only I want to do the insert. So here in step two are configured accept expression Would you accept only if the record is not present, I'm using this record. And here I'm just logging.

I don't want each record to be executed individually. So that's why I have configured a batch aggregator here and the aggregate size 50 it'll aggregate up to 50 Records. And once records are aggregated then I am inserting into database by using the bulk insert. So I want two steps. And in uncomplete, I'm just printing what are the number of processed records so this is a simple example to read from a file and write to a database and here you are seeing batch aggregator how I am using. So this will be doing in the access.

Now you have an exercise, you can just open the document for batch processing. Go ahead and complete this Access you'll get confidence. So that's about how to process batch of records in new. See you next video.

Sign Up

Share

Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.