수색…


소개

매스 업데이트의 반환 된 검색 결과가 표준 검색의 결과와 다를 때가 있습니다. 이는 대량 업데이트 검색의 일부 제한 사항 때문입니다. 예를 들어, Rev Rec Journal 항목이 있습니다. 따라서이 문제를 해결하기위한 방법은 표준 저장된 검색에서 데이터를 가져 와서 대량 업데이트 기능을 사용하는 대신 스크립트를 사용하여 Excel 데이터를 읽고 업데이트하는 것입니다.

Rev Rec 날짜 및 규칙 업데이트

/**
 * Save the results from the saved search as .csv and store in file cabinet 
 * Get the file's internal id when loading the file
 * Use \n to process each row
 * Get the internal id and whatever columns that need updating
 * Create a filtered search and pass the internal id
 * If the passed in internal id finds a record match, then update the rev rec dates and rule
 */

function ProcessSearchData()
{
    var loaded_file = nlapiLoadFile(4954);//loads from file cabinet 
    var loaded_string = loaded_file.getValue();
    var lines = loaded_string.split('\n');//split on newlines
    nlapiLogExecution('DEBUG', 'lines', lines);
    var values;
    for (var i = 1; i < lines.length; i++)
    {
        nlapiLogExecution('DEBUG', 'count', i);
        values = lines[i].split(',');//split by comma
        var internal_id = values[0];//first column value
        nlapiLogExecution('DEBUG', 'internal_id', internal_id);
        var start_date = values[1];
        var end_date = values[2];

        if(internal_id)
        {
            UpdateDates(internal_id, start_date, end_date)
            nlapiLogExecution('DEBUG', '"""REV REC PLANs UPDATED"""');
        }
    }
    return true;
}


function UpdateDates(internal_id, start_date, end_date)
{
    var filters = new Array();
    filters[0] = new nlobjSearchFilter('internalid', null, 'is', internal_id);

    var columns = [];
    columns[0] = new nlobjSearchColumn('internalid');
    columns[1] = new nlobjSearchColumn('revrecstartdate');
    columns[2] = new nlobjSearchColumn('revrecenddate');

    var rev_rec_plan = nlapiSearchRecord('revenueplan', null, filters, columns);
    if(rev_rec_plan)
    {
        for (var i = 0; rev_rec_plan != null && i < rev_rec_plan.length; i++)
        {
            var record = nlapiLoadRecord('revenueplan', rev_rec_plan[0].getValue(columns[0]));
            var id = record.getId();
            record.setFieldValue('revrecstartdate', start_date);
            record.setFieldValue('revrecenddate', end_date);
            record.setFieldValue('revenuerecognitionrule', 2)//Exact days based on Arrangement dates
            nlapiSubmitRecord(record);
        }
    }
    return internal_id;
}


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow