setFieldValue() and setFieldValues()

Viewing 1 reply thread
  • Author
    Posts
  • April 18, 2021 at 2:47 AM #44197

    Victor Warner
    Participant

    I have a simple requirement: for an existing record I wish to set certain fields with particular values (they are linked to pick lists).

    According to the function lists I can use record.setFieldValue() or record.setFieldValues() but it is not working. Ideally I would like to use a Form script (and assign to shortcut key) as these default values only apply for some records but not others.

    The script is as follows:

    var name_id = 'fld-db21a48449d84ef4bfb6f4fb28473fa8';
    var namex = record.getFieldValue('fld-db21a48449d84ef4bfb6f4fb28473fa8');
    
    var deed_id = 'fld-9fe105d0c1a344b988899fafbb1f6e01';
    var deed = record.getFieldValue('fld-9fe105d0c1a344b988899fafbb1f6e01');
    
    var n_as_witness_id = 'fld-20109866d84b4587866be0cb63853547';
    var n_as_witness = record.getFieldValue('fld-20109866d84b4587866be0cb63853547');
    
    var number_of_witnesses_id = 'fld-7038bb074b3f42bca3ca6411c38ebe8b';
    var number_of_witnesses = record.getFieldValue('fld-7038bb074b3f42bca3ca6411c38ebe8b');
    
    var public_form_id = 'fld-e50974efdf284413abafd8aa9ebf36f1';
    var public_form = record.getFieldValue('fld-e50974efdf284413abafd8aa9ebf36f1');
    
    console.log(namex + " " + deed + " " + n_as_witness + " " + number_of_witnesses + " " + public_form);
    
    record.setFieldValue(namex,'James Smith');
    record.setFieldValue(deed, 'Yes');
    
    // record.setFieldValues({[deed]: 'Yes',[n_as_witness]: 'Yes', [number_of_witnesses]: '1', [public_form]: 'No'});
    
    document.saveAllChanges

    produces no errors but also does not set the fields to the defined values. I am sure there is something basic I am missing

    Also is the syntax for record.setFieldValues correct?

    The sample database is attached.

    Help would be gratefully received.

    Attachments:
    You must be logged in to view attached files.
    April 18, 2021 at 9:44 AM #44199

    Daniel Leu
    Participant

    Both record.setFieldValue and record.setFieldValues require the field id as argument. That’s why your script doesn’t do anything since you provide a variable that doesn’t contain a valid ID.

    var name_id = 'fld-db21a48449d84ef4bfb6f4fb28473fa8';
    var namex = record.getFieldValue('fld-db21a48449d84ef4bfb6f4fb28473fa8');
    
    var deed_id = 'fld-9fe105d0c1a344b988899fafbb1f6e01';
    var deed = record.getFieldValue('fld-9fe105d0c1a344b988899fafbb1f6e01');
    
    var n_as_witness_id = 'fld-20109866d84b4587866be0cb63853547';
    var n_as_witness = record.getFieldValue('fld-20109866d84b4587866be0cb63853547');
    
    var number_of_witnesses_id = 'fld-7038bb074b3f42bca3ca6411c38ebe8b';
    var number_of_witnesses = record.getFieldValue('fld-7038bb074b3f42bca3ca6411c38ebe8b');
    
    var public_form_id = 'fld-e50974efdf284413abafd8aa9ebf36f1';
    var public_form = record.getFieldValue('fld-e50974efdf284413abafd8aa9ebf36f1');
    
    console.log(namex + " " + deed + " " + n_as_witness + " " + number_of_witnesses + " " + public_form);
    
    record.setFieldValues({[deed_id]: 'Yes',[n_as_witness_id]: 'Yes', [number_of_witnesses_id]: '1', [public_form_id]: 'No'});
    
    document.saveAllChanges

    I don’t really know what this script does since you are reading values and then overwriting them. But at least it stores the values now.

Viewing 1 reply thread

You must be logged in to reply to this topic.