Created 07-07-2025 03:45 AM
Hello Folks,
I’ve the issue with JoinEnrichment Processor
The ORIGINAL flowfile looks like below:
{
"ticketserialnumber" : "TSN00000012",
"tranheaderid" : "TH00000012",
"entrymethodid" : "EM6",
"deviceid" : "DEV22",
"prodid" : 1,
"isbetrejectedbytrader" : true,
"isexchangeticket" : false,
"terdisplayid" : "TER41",
"createddate" : "2025-06-17 22:24:00.0",
"requestid" : "REQ00000012",
"userdisplayid" : "USR863",
"cartid" : "CART00000012",
"transactiontype" : 1
}, {
"ticketserialnumber" : "TSN0000001",
"tranheaderid" : "TH001",
"entrymethodid" : "EM001",
"deviceid" : "DEV001",
"prodid" : 1,
"isbetrejectedbytrader" : false,
"isexchangeticket" : false,
"terdisplayid" : "TERM001",
"createddate" : "2025-06-17 22:10:00.0",
"requestid" : "REQ001",
"userdisplayid" : "USER001",
"cartid" : "CART001",
"transactiontype" : 1
},And the ENRICHMENT Flowfile is looks like below:
{
"tsn" : "TSN00000008",
"uuid_schema" : "VREQ00000005",
"event_date" : "2025-06-17 22:26:53.610071",
"terminalid" : "TER25",
"userid" : "USR244",
"locationid" : "LOC001",
"cartid" : "CART00000008",
"tranheaderid" : "VTH00000005",
"from_table" : "vbt",
"winningamount" : "399.09",
"rebatereclaim" : null,
"validationtypeid" : "VALD"
}, {
"tsn" : "TSN00000008",
"uuid_schema" : "VREQ00000005",
"event_date" : "2025-06-17 22:26:53.610071",
"terminalid" : "TER25",
"userid" : "USR244",
"locationid" : "LOC001",
"cartid" : "CART00000008",
"tranheaderid" : "VTH00000005",
"from_table" : "vbt",
"winningamount" : "399.09",
"rebatereclaim" : null,
"validationtypeid" : "VALD"
},SELECT o.entrymethodid ,o.prodid ,o.isbetrejectedbytrader ,o.ticketserialnumber as ticketserialnumber ,o.requestid as uuid_schema ,1 as transactiontype --,(o.createddate + INTERVAL '8' HOUR) as event_date -- Sửa cú pháp INTERVAL ,TIMESTAMPADD(HOUR, 8, CAST(o.createddate AS TIMESTAMP)) AS event_date ,o.terdisplayid as terminalid ,o.userdisplayid as userid ,e.locationid as locationid ,o.cartid ,o.tranheaderid FROM original o INNER JOIN enrichment e ON o.terdisplayid = e.terminalid WHERE o.prodid IN (1, 2, 3, 4, 5, 6) AND o.transactiontype = 1 UNION ALL SELECT o.entrymethodid ,o.prodid ,o.isbetrejectedbytrader ,e.tsn as ticketserialnumber ,o.requestid as uuid_schema ,3 as transactiontype ,e.event_date as event_date ,e.terminalid as terminalid ,e.userid as userid ,e.locationid as locationid ,e.cartid ,e.tranheaderid FROM original o INNER JOIN enrichment e ON o.ticketserialnumber = e.tsn WHERE e.from_table = 'vbt' AND o.prodid = 1 AND ((COALESCE(CAST(e.winningamount AS DECIMAL(10, 2)), 0.0) > 0.0) OR (COALESCE(CAST(e.rebatereclaim AS DECIMAL(10, 2)), 0.0) > 0.0)) AND o.transactiontype = 3 UNION ALL SELECT o.entrymethodid ,o.prodid ,o.isbetrejectedbytrader ,e.tsn as ticketserialnumber ,e.uuid_schema as uuid_schema ,3 as transactiontype ,e.event_date as event_date ,e.terminalid as terminalid ,e.userid as userid ,e.locationid as locationid ,e.cartid ,e.tranheaderid FROM original o INNER JOIN enrichment e ON o.ticketserialnumber = e.tsn WHERE e.from_table = 'vbt' AND o.prodid IN (2, 3, 4) AND ((COALESCE(cast(e.winningamount as decimal(10, 2)), 0.0) > 0.0) AND e.validationtypeid = 'VALD') AND o.transactiontype = 3 UNION ALL SELECT o.entrymethodid ,o.prodid ,o.isbetrejectedbytrader ,e.tsn as ticketserialnumber ,e.uuid_schema as uuid_schema ,3 as transactiontype ,e.event_Date as event_date ,e.terminalid as terminalid ,e.userid as userid ,e.locationid as locationid ,e.cartid ,e.tranheaderid FROM original o INNER JOIN enrichment e ON o.ticketserialnumber = e.tsn WHERE e.from_table = 'vbt' AND o.prodid IN (5, 6) AND (COALESCE(cast(e.winningamount as decimal(10, 2)), 0) > 0 AND e.validationtypeid = 'VALD') AND o.transactiontype = 3 UNION ALL SELECT o.entrymethodid ,o.prodid ,o.isbetrejectedbytrader ,e.tsn as ticketserialnumber ,o.requestid as uuid_schema ,2 as transactiontype ,e.event_date as event_date ,e.terminalid as terminalid ,e.userid as userid ,e.locationid as locationid ,e.cartid ,e.tranheaderid FROM original o INNER JOIN enrichment e ON o.ticketserialnumber = e.tsn WHERE e.from_table = 'cbt' AND o.prodid = 1 AND o.transactiontype = 5 UNION ALL SELECT o.entrymethodid ,o.prodid ,o.isbetrejectedbytrader ,e.tsn as ticketserialnumber ,o.requestid as uuid_schema ,2 as transactiontype ,e.event_date as event_date ,e.terminalid as terminalid ,e.userid as userid ,e.locationid as locationid ,e.cartid ,e.tranheaderid FROM original o INNER JOIN enrichment e ON o.ticketserialnumber = e.tsn WHERE e.from_table = 'cbt' AND o.prodid IN (2, 3, 4) AND o.transactiontype = 5 UNION ALL SELECT o.entrymethodid ,o.prodid ,o.isbetrejectedbytrader ,e.tsn as ticketserialnumber ,o.requestid as uuid_schema ,2 as transactiontype ,e.event_date as event_date ,e.terminalid as terminalid ,e.userid as userid ,e.locationid as locationid ,e.cartid ,e.tranheaderid FROM original o INNER JOIN enrichment e ON o.ticketserialnumber = e.tsn WHERE e.from_table = 'cbt' AND o.prodid IN (5, 6) AND o.isbetrejectedbytrader = FALSE AND o.transactiontype = 5 /* Start Here */ UNION ALL SELECT o.entrymethodid ,o.prodid ,o.isbetrejectedbytrader ,e.tsn as tsn ,e.uuid_schema as uuid_schema ,3 as transactiontype ,e.event_date as event_date ,e.terminalid as terminalid ,e.userid as userid ,e.locationid as locationid ,e.cartid as cartid ,e.tranheaderid as tranheaderid FROM original o JOIN enrichment e ON o.ticketserialnumber = e.tsn WHERE (e.from_table = 'vbt') AND o.prodid IN (5, 6) AND e.validationtypeid = 'RFND' AND o.transactiontype = 3
If I put the SQL from /Start Here/ the Join Enrichment will show the error as below JoinEnrichment[id=e3cb63a3-0197-1000-9980-b2fb1481e3ad] Failed to join 'original' FlowFile FlowFile[filename=5a8e2b97-533f-425b-a5aa-40d2753c80f9] and 'enrichment' FlowFile FlowFile[filename=5a8e2b97-533f-425b-a5aa-40d2753c80f9]; routing to failure: java.lang.NumberFormatException: Character v is neither a decimal digit number, decimal point, nor "e" notation exponential mark.
I have debug but I can’t find any problem with the SQL. If I remove it the SQL from /Start Here/ the JoinEnrichment can run but if I put it into The JoinEnrichment Processor will pop up the error.
Can you please help on this issue?