I cannot delete row from Data Source via Data Load with deleteRow(Map)
Question
I'm trying to delete a row from a Data Source via Data Load with the deleteRow(Map) function but it does not work: the row in the Data Source is not deleted after the Data Load is finished. The Data Load finishes without an error.
Answer
The target DatamartRowSet is basically a map of row key -> row values. The key is a combination of the target (usually DS or DM) key field values. That makes sure you cannot load duplicate rows.
The values are the actual data being loaded to the target table. If there are entries with isDeleted=true, then those rows will be deleted.
If a row is not represented in there (because it was not added to the target rowset or it was deleted with deleteRow), then it would not be able to affect the data in the target table.
But if there are no new rows, then the delete also does not occur.
Some times ago I discussed this topic with Serge and I was told, that set isDeleted=true is not reliable and we shouldn’t use it. Instead of it we should create our own flag and use truncate DL for the 100% sure deletion. And I know with isDeleted=true was an issue sometimes. Does it change? And is this a new standard?