Flow is updating existing records without a .update()
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-16-2025 11:20 AM
Hey all,
I'm running a Flow Designer action that uses a Script step to insert records into a custom table (sn_customerservice_certificate_information). I'm using .initialize() followed by .insert(), and not calling .update() anywhere.
However, when the same correlation_id is used, instead of inserting a new record, it seems to update an existing one, even though I'm explicitly calling .insert().
Is this expected behavior? Could a unique index or something on correlation_id be causing GlideRecord to silently update instead of inserting?
(function execute(inputs, outputs) {
var payload = JSON.parse(inputs.inqPayload)
for (var v in payload.body.Item.certNumbers) {
var match = payload.body.Item.certNumbers[v].match_status;
if (payload.body.Item.certNumbers[v].isthisaseriesrequest.toString() == "Yes") {
var gr = new GlideRecord('sn_customerservice_certificate_information');
gr.initialize();
gr.parent = inputs.parentRec;
gr.correlation_id = payload.body.Item.certNumbers[v].recordNumber.toString();
if (match != 0) {
if (payload.body.Item.certNumbers[v].institution_details) {
var contact_name = payload.body.Item.certNumbers[v].institution_details.contact_name != null ? payload.body.Item.certNumbers[v].institution_details.contact_name : "";
var contact_phone = payload.body.Item.certNumbers[v].institution_details.contact_phone != null ? payload.body.Item.certNumbers[v].institution_details.contact_phone : "";
gr.u_transfer_pay_agent = contact_name + " " + contact_phone;
gr.u_institution = payload.body.Item.certNumbers[v].institution_details.name_of_institution ? payload.body.Item.certNumbers[v].institution_details.name_of_institution : "";
var address_line_1 = payload.body.Item.certNumbers[v].institution_details.address_line_1 ? payload.body.Item.certNumbers[v].institution_details.address_line_1.toString() : "";
var address_line_2 = payload.body.Item.certNumbers[v].institution_details.address_line_2 ? payload.body.Item.certNumbers[v].institution_details.address_line_2.toString() : "";
gr.u_address = address_line_1 + " " + address_line_2;
gr.u_city = payload.body.Item.certNumbers[v].institution_details.city != null ? payload.body.Item.certNumbers[v].institution_details.city.toString() : "";
gr.u_state_province = payload.body.Item.certNumbers[v].institution_details.state != null ? payload.body.Item.certNumbers[v].institution_details.state.toString() : "";
gr.u_zip_code = payload.body.Item.certNumbers[v].institution_details.zip != null ? payload.body.Item.certNumbers[v].institution_details.zip.toString() : "";
}
gr.u_record_update_flag = payload.body.Item.certNumbers[v].record_update_flag;
gr.u_processing_complete = payload.body.Item.certNumbers[v].processing_complete;
gr.u_preliminary_report = payload.body.Item.certNumbers[v].preliminary_report;
gr.u_disputed_item = payload.body.Item.certNumbers[v].disputed_item;
}
gr.u_transaction_number = payload.body.Item.certNumbers[v].transaction_number;
gr.u_denomination_shares = payload.body.Item.certNumbers[v].denomination;
gr.u_certifcate_prefix = payload.body.Item.certNumbers[v].certificate_prefix;
gr.u_issue_date = payload.body.Item.certNumbers[v].issuedates;
gr.u_certificate_serial_numbers = payload.body.Item.certNumbers[v].certFrom;
gr.u_inquiry_status = payload.body.Item.certNumbers[v].match_status;
gr.u_stop_type = payload.body.Item.certNumbers[v].stop_type;
gr.u_denomination_hit = payload.body.Item.certNumbers[v].denomination_hit != null ? payload.body.Item.certNumbers[v].denomination_hit : "";
gr.u_issue_date_hit = payload.body.Item.certNumbers[v].issue_date_hit != null ? payload.body.Item.certNumbers[v].issue_date_hit : "";
gr.u_certificate_hit = payload.body.Item.certNumbers[v].certificate_prefix_match != null ? payload.body.Item.certNumbers[v].certificate_prefix_match : "";
gr.u_cancelled_indicator = payload.body.Item.certNumbers[v].cancelled_indicated != null ? payload.body.Item.certNumbers[v].cancelled_indicated : "";
gr.u_counterfeit_indicated = payload.body.Item.certNumbers[v].counterfeit_indicated != null ? payload.body.Item.certNumbers[v].counterfeit_indicated : "";
gr.u_criminially_indicated = payload.body.Item.certNumbers[v].criminality_indicated != null ? payload.body.Item.certNumbers[v].criminality_indicated : "";
gr.work_notes = "Individual response from " + payload.body.Item.certNumbers[v].recordNumber.toString() + " series request.";
gr.u_original_record = orgRecord(payload.body.Item.certNumbers[v].recordNumber, "sn_customerservice_certificate_information");
gr.parent = orgRecord(payload.body.Item.rpt, "sn_customerservice_case");
gr.u_type = "response";
// gr.state = "3"; //closed complete
gr.insert();
} else {
var gr = new GlideRecord('sn_customerservice_certificate_information');
gr.initialize()
gs.info("Testing process inquiry" + match.toString());
if (match != 0) {
if (payload.body.Item.certNumbers[v].institution_details) {
var contact_name = payload.body.Item.certNumbers[v].institution_details.contact_name != null ? payload.body.Item.certNumbers[v].institution_details.contact_name : "";
var contact_phone = payload.body.Item.certNumbers[v].institution_details.contact_phone != null ? payload.body.Item.certNumbers[v].institution_details.contact_phone : ""
gr.u_transfer_pay_agent = contact_name + " " + contact_phone;
gr.u_institution = payload.body.Item.certNumbers[v].institution_details.name_of_institution ? payload.body.Item.certNumbers[v].institution_details.name_of_institution : "";
var address_line_1 = payload.body.Item.certNumbers[v].institution_details.address_line_1 ? payload.body.Item.certNumbers[v].institution_details.address_line_1.toString() : "";
var address_line_2 = payload.body.Item.certNumbers[v].institution_details.address_line_2 ? payload.body.Item.certNumbers[v].institution_details.address_line_2.toString() : "";
gr.u_address = address_line_1 + " " + address_line_2;
gr.u_city = payload.body.Item.certNumbers[v].institution_details.city != null ? payload.body.Item.certNumbers[v].institution_details.city.toString() : "";
gr.u_state_province = payload.body.Item.certNumbers[v].institution_details.state != null ? payload.body.Item.certNumbers[v].institution_details.state.toString() : "";
gr.u_zip_code = payload.body.Item.certNumbers[v].institution_details.zip != null ? payload.body.Item.certNumbers[v].institution_details.zip.toString() : "";
}
gr.u_record_update_flag = payload.body.Item.certNumbers[v].record_update_flag ? payload.body.Item.certNumbers[v].record_update_flag : "";
gr.u_processing_complete = payload.body.Item.certNumbers[v].processing_complete;
gr.u_preliminary_report = payload.body.Item.certNumbers[v].preliminary_report;
gr.u_disputed_item = payload.body.Item.certNumbers[v].disputed_item;
}
gr.u_transaction_number = payload.body.Item.certNumbers[v].transaction_number != null ? payload.body.Item.certNumbers[v].transaction_number : "";
gr.u_inquiry_status = match;
gr.u_denomination_shares = payload.body.Item.certNumbers[v].denomination != null ? payload.body.Item.certNumbers[v].denomination : "";
gr.u_certifcate_prefix = payload.body.Item.certNumbers[v].certificate_prefix != null ? payload.body.Item.certNumbers[v].certificate_prefix : "";
gr.u_issue_date = payload.body.Item.certNumbers[v].issuedates != null ? payload.body.Item.certNumbers[v].issuedates : "";
gr.u_certificate_serial_numbers = payload.body.Item.certNumbers[v].certFrom != null ? payload.body.Item.certNumbers[v].certFrom : "";
gr.u_stop_type = payload.body.Item.certNumbers[v].stop_type != null ? payload.body.Item.certNumbers[v].stop_type : "";
gr.u_denomination_hit = payload.body.Item.certNumbers[v].denomination_hit != null ? payload.body.Item.certNumbers[v].denomination_hit : "";
gr.u_issue_date_hit = payload.body.Item.certNumbers[v].issue_date_hit != null ? payload.body.Item.certNumbers[v].issue_date_hit : "";
gr.u_certificate_hit = payload.body.Item.certNumbers[v].certificate_prefix_match != null ? payload.body.Item.certNumbers[v].certificate_prefix_match : "";
gr.u_cancelled_indicator = payload.body.Item.certNumbers[v].cancelled_indicated != null ? payload.body.Item.certNumbers[v].cancelled_indicated : "";
gr.u_counterfeit_indicated = payload.body.Item.certNumbers[v].counterfeit_indicated != null ? payload.body.Item.certNumbers[v].counterfeit_indicated : "";
gr.u_criminially_indicated = payload.body.Item.certNumbers[v].criminality_indicated != null ? payload.body.Item.certNumbers[v].criminality_indicated : "";
gr.u_original_record = orgRecord(payload.body.Item.certNumbers[v].recordNumber, "sn_customerservice_certificate_information");
gr.parent = orgRecord(payload.body.Item.rpt, "sn_customerservice_case");
gr.u_type = "response";
gr.insert();
}
var inq = new GlideRecord("x_g_afss_inquiry_inquiries");
inq.addQuery("sys_id", inputs.parentRec);
inq.query();
if (inq.next()){
inq.u_cusip_changed = payload.body.Item.u_cusip_changed;
inq.update();
}
}
})(inputs, outputs);
function isMatchValue(match) {
var answer = null;
if (match == "N") {
answer = "0"
} else if (match == "Y") {
answer = "2"
} else if (match == "P") {
answer = "1"
}
return answer;
}
function orgRecord(recNo, tbl) {
answer = null;
gr = new GlideRecord(tbl);
gr.addEncodedQuery("number=" + recNo);
gr.query();
if (gr.next()) {
answer = gr.sys_id.toString();
}
return answer;
}​
Any insight or workaround would be appreciated, I need to keep every submission as a new row, not overwrite previous ones.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-20-2025 03:53 AM
Hard to say from this, but consider changing your GlideRecord names to something else.
Using gr everywhere just makes it possible for another part to steal the process. For example perhaps your orgRecord function ends up replacing your insert gr with the found record and it messes something somehow. You might also have business rules that are all using gr.
Try replacing each separate gliderecord with their own unique variable names, so that there's no chance for them to match with something else.