Skip to main content
Question

Tester filter not working


Forum|alt.badge.img+5

I am trying to get the result when both "insert" and "unchanged" have values, but if one of them doesn't have a value, it's going to fail. Can anyone please help?

38 replies

Forum|alt.badge.img+5
  • Author
  • July 20, 2023

Screenshot 2023-07-20 at 6.06.48 PM


ebygomm
Influencer
Forum|alt.badge.img+39
  • Influencer
  • July 20, 2023

A feature can never be inserted and unchanged...


Forum|alt.badge.img+5
  • Author
  • July 20, 2023

is there any way


Forum|alt.badge.img+5
  • Author
  • July 20, 2023

Yes, when I use "OR," it works. But I need to push unchanged data to the database if there is a value "inserted".


Forum|alt.badge.img+5
  • Author
  • July 22, 2023

anyone


geomancer
Evangelist
Forum|alt.badge.img+50
  • Evangelist
  • July 24, 2023

FME tests individual features. When you use AND in the Tester, no features will pass, as an individual feature cannot have the value fme_db_operation = INSERT and fme_db_operation = UNCHANGED at the same time. When you use OR in the tester, some individual features wil pass because fme_db_operation = INSERT, other individual features will pass because fme_operation = UNCHANGED; features with other values will fail the test.


Forum|alt.badge.img+5
  • Author
  • July 25, 2023

When insert and unchnaged values, I need both values to be inserted. If only a value is unchanged, it should not be inserted. how can I achieve this


geomancer
Evangelist
Forum|alt.badge.img+50
  • Evangelist
  • July 25, 2023

Can you provide us with some example data of all relevant categories, with a short description of the data that should pass, and the data that should not pass, and why this is the case?


Forum|alt.badge.img+5
  • Author
  • July 25, 2023

There is Three Columns

One is Basin (“AL”,”EP”) 2nd Column is Stormnum (“1”,”2”) and time (“2023/07/25 9:00:00z)

Storm num and time change everything when they release the new data

There are two areas and two files.

extracting the data from two files and If they release the data for "AL" at 2:57, my script will insert this (Consider as new). Then, at 3:00, the "EP" release will occur, and my script will run again. It will truncate the "AL" file and insert the new record for "EP".

 and we don't need any historical data when new data arrival just truncate the old one and insert the new one

 


Forum|alt.badge.img+5
  • Author
  • July 25, 2023

you can change the time in validtime or stormnum for your testing


Forum|alt.badge.img+5
  • Author
  • July 25, 2023

if database doest work please yo can use excel to compare


geomancer
Evangelist
Forum|alt.badge.img+50
  • Evangelist
  • July 25, 2023

Can you provide the Excel file please?


geomancer
Evangelist
Forum|alt.badge.img+50
  • Evangelist
  • July 25, 2023

I want to check if I understand correctly. Is this the data flow you are looking for?

An AL feature enters. Add it to the database.

An EP feature enters. Add it to the database, and remove all AL features that have the same values in ADVNUM, BASIN and VALIDTIME as the EP feature.


Forum|alt.badge.img+5
  • Author
  • July 25, 2023

NO

Now you can see there are 2 records in AL and 1 Records in EP right

1st Scenario

now if EP changes the storm number then in the Excel file only change the EP and AL stays there.

2nd Scenario

if both change the storm number then truncate the data and insert the new one.


geomancer
Evangelist
Forum|alt.badge.img+50
  • Evangelist
  • July 25, 2023

New try. The last one for today, as I am at the end of my working day.

Is this data flow correct?

An AL feature enters. Add it to the database.

An EP feature enters. If it's storm number already exists in the database, update the EP feature in the database that has the same storm number with the data from the new EP feature (don't touch the other features). But if it's storm number does not exist in the database, remove all data, and insert the new EP feature.

If it is not correct, can you describe the different data flows?


Forum|alt.badge.img+5
  • Author
  • July 26, 2023

Any basin feature enters. Add it to the database.

An EP/AL feature enters. If its storm number already exists in the database, update the Any basin feature in the database that has the same storm number with the data from the new

 

 but maybe EP has a new record and Al will not so we don't know which basin update first and which one is not.

 

 

 


Forum|alt.badge.img+5
  • Author
  • July 26, 2023

For Example at the moment we have this is excel file

 

Basin StormNumber validTime

AL. 3 2023/07/25 9:00:01z

AL 4 2023/07/25 9:00:00Z

EP. 3 2023/07/25 9:00:01z

 

 

 

NOW NEW data arrive at 25/07/2023 10:00:00z

 

Basin StormNumber validTime

AL. 3 2023/07/25 10:00:00z

AL 4 2023/07/25 9:00:00Z

EP. 3 2023/07/25 9:00:01z

 

 

so my script will work and truncate the all data and insert only this one

AL. 3 2023/07/25 10:00:00z

logically I need

AL 4 2023/07/25 9:00:00Z

EP. 3 2023/07/25 9:00:01z

this one as well in data as source have this records as well but in my data inserting only new one

 

again if data release the data at 25/07/2023 10:30:00z

AL. 3 2023/07/25 10:00:00z

AL 4 2023/07/25 9:00:00Z

EP. 3 2023/07/25 10:30:01z

 

so I need all records in database

 

I think you get my point


geomancer
Evangelist
Forum|alt.badge.img+50
  • Evangelist
  • July 26, 2023

In the example you give above, you can always truncate the existing data, and then write the features from the Inserted port of the ChangeDetector (with Match Selected Attributes set to BASIN STORMID VALIDTIME).

If I understand correctly, you are writing to Excel, so you can simply write the inserted features, overwriting the existing Excel file.


Forum|alt.badge.img+5
  • Author
  • July 26, 2023

no i m not writing on excel I m writing on snowflake database

what if source have new data with old data

target will truncate the old one and insert the new one and what about the unchanged one

 

so bascly I want when insert has value and unchanged also then insert the data if unchanged only then script stop there


geomancer
Evangelist
Forum|alt.badge.img+50
  • Evangelist
  • July 26, 2023

Sorry, I still don't understand the logic of the different data flows. The information is shattered across too many posts in this topic. Can you please make a summary?

 

I hope it is as simple as this:

When a feature enters with BASIN = AL, and STORMNUM is already present in the database, do this: ...

When a feature enters with BASIN = EP, and STORMNUM is already present in the database, do this: ...

When a feature enters with BASIN = AL, and STORMNUM is not present in the database, do this: ...

When a feature enters with BASIN = EP, and STORMNUM is not present in the database, do this: ...

 

But maybe it is more complicated. In your examples 2 AL features and 1 EP feature enter at the same time. So possibly there are dependencies between the features?


Forum|alt.badge.img+5
  • Author
  • July 26, 2023

When a feature enters with BASIN = AL, and STORMNUM is already present in the database, Do Nothing (Stay unchanged)

When a feature enters with BASIN = EP, and STORMNUM is already present in the database, Do Nothing (Stay unchanged)

When a feature enters with BASIN = AL, and STORMNUM is not present in the database, Insert it as New But truncate the exiting one

When a feature enters with BASIN = EP, and STORMNUM is not in the database, Insert it as New But truncate the existing one

When a feature enters with BASIN = AL or EP and STORMNUM is not in the database, Insert it as New But truncate the existing one but if EP or AL and STORMNUM are already present in the database Do Nothing (Stay In database)

 

So If New data arrive in AL or EP insert with unchanged

 


geomancer
Evangelist
Forum|alt.badge.img+50
  • Evangelist
  • July 26, 2023

Unfortunately I'm even more confused now...

 

Earlier you wrote:

"For Example at the moment we have this is excel file

Basin StormNumber validTime

AL. 3 2023/07/25 9:00:01z

AL 4 2023/07/25 9:00:00Z

EP. 3 2023/07/25 9:00:01z

 

NOW NEW data arrive at 25/07/2023 10:00:00z

Basin StormNumber validTime

AL. 3 2023/07/25 10:00:00z

AL 4 2023/07/25 9:00:00Z

EP. 3 2023/07/25 9:00:01z

 

so my script will work and truncate the all data and insert only this one

AL. 3 2023/07/25 10:00:00z"

 

I interpreted this as: When a feature enters with BASIN = AL, and STORMNUM is already present in the database, if VALIDTIME is more recent, remove all existing features from the database and insert this feature.

But now you say: "When a feature enters with BASIN = AL, and STORMNUM is already present in the database, Do Nothing (Stay unchanged)", which seems to be inconsistent with what you wrote before?


Forum|alt.badge.img+5
  • Author
  • July 26, 2023

When a feature enters with BASIN = AL or EP and STORMNUM is not in the database, Insert it as New But truncate the existing one but if EP or AL and STORMNUM are already present in the database Do Nothing (Stay In database)


geomancer
Evangelist
Forum|alt.badge.img+50
  • Evangelist
  • July 27, 2023

At one place you say that the record in the database should be updated when STORMNUM is already in the database, at another place you say to do nothing. It's not possible to do both at the same time.

Truncate is to remove all records from the database table. But it seems that sometimes it is wanted to remove only all records of one basin?


Forum|alt.badge.img+5
  • Author
  • July 27, 2023

There are two scenarios I want :

1. When both insert and unchanged values are present.

2. When only insert values are present.

I need the change detector to insert and unchanged values when both are present and when only insert values when there are no unchanged values. Otherwise, it should do nothing.

either remove only the records of one basin or remove all records


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings