Использование кода Zapier для разделения полного имени на имя Фамилия - PullRequest
0 голосов
/ 11 октября 2019

Мы используем веб-крючок для передачи данных из Vimeo в Zapier и отправки их в нашу CRM (InfusionSoft).

У меня нет опыта работы с кодированием, и у меня возникают проблемы с запуском простого скрипта JS в Zapier Code. Цель состоит в том, чтобы разделить встроенное имя клиента, которое приходит как Имя и Фамилия, на два вывода: Имя, Фамилия.

Код, который я нашел и попробовал из Zapier, таков:

if ' ' in input['fullName']:
    first, last = input['fullName'].split(' ', 1)
else:
    first, last = input['fullName'], None # fallback
return {
    'firstName': first,
    'lastName': last
}

Любая помощь здесь очень ценится!

Спасибо, Морган

Код Zapier Ошибка возвращена

Ответы [ 2 ]

1 голос
/ 11 октября 2019

Это версия вашего кода на Javascript. Вы можете просто изменить значение null на любое значение, которое вы хотите в предложении else.

let first, last;
if ( input['fullName'].indexOf(" ") != -1 )
    [first, last] = input['fullName'].split(' ', 2);
else
    [first, last] = [input['fullName'], null];
return {
    'firstName': first,
    'lastName': last
}

Для вашей последующей проблемы. Я думаю, потому что вы используете это как сырье, а не как функцию, поэтому я напишу для вас исправление. Для Zapier их документ сказал, что все ваши значения и переменные начинаются с inputData. Таким образом, чтобы применить приведенный выше код raw, а не в вызове функции, вам придется сделать это.

if ( inputData.fullName ) {
    let first, last;
    if ( inputData['fullName'].indexOf(" ") != -1 )
        [first, last] = inputData['fullName'].split(' ', 2);
    else
        [first, last] = [inputData['fullName'], null];
    return {
        'firstName': first,
        'lastName': last
    }
} else {
    // inputData.fullName is not available, do something else.
}

Если вы собираетесь использовать его при вызове функции, выполните следующие действия:

function getFullName(inputData) {
    var first, last;
    if ( inputData['fullName'].indexOf(" ") != -1 )
        [first, last] = inputData['fullName'].split(' ', 2);
    else
        [first, last] = [inputData['fullName'], null];
    return {
        'firstName': first,
        'lastName': last
    }
}

if ( inputData.fullName ) { 
   var someobject = getFullName(inputData);
} else {
   // no inputData.fullName
}
0 голосов
/ 12 октября 2019

У вас есть два варианта, только для будущих читателей, когда ответ принят.

var arr = inputData.fullName;
if (arr != undefined && arr != null) {
  var name = arr.concat(" ").split(' ');
  var i = 0;
    if (i < 2){
      name[i] = name[i]; 
      i++;
    }
  return {'firstName': name[0], 'lastName': name[1]};
} 
else {
  return {'firstName': 'N/A', 'lastName': 'N/A'} 
}

С помощью этого кода вы можете при необходимости использовать второе имя позже. Это также проверит на null или нулевые значения и предоставит ответ (который вы можете редактировать по мере необходимости).

Во-вторых, вы могли просто использовать действие Форматирования Zapier, запустить текстовое событие и выбрать split на [: space:].

Я понял, что в моем первом посте была опечатка с проверкой нулей, что вызвало путаницу (спасибо Кевину за ваш вклад). Это, конечно, не будет быстрее, но не должно вызывать ошибки на zapier независимо от ввода.

...