#javascript #google-apps-script #google-sheets #google-workspace
#javascript #google-apps-script #google-sheets #google-workspace
Вопрос:
Я импортирую пользователей в Google Suite из таблицы Google, используя скрипт Google Apps. Я создал «пользовательские атрибуты» в консоли администратора Google, некоторые из них настроены на ввод электронной почты. Все работает отлично, за исключением случаев, когда у одного пользователя отсутствуют эти адреса электронной почты.
Мои пользователи — дети, и адреса электронной почты относятся к родителям ребенка. У одного дочернего элемента может быть 1 родитель и 1 электронная почта. У других детей 4 родителя и 4 электронных письма.
Если все переменные (epost1, epost2, epost3 и epost4) заполнены адресами электронной почты, пользователь добавляется. Если одна из переменных пуста, скрипт останавливается со следующим сообщением:
Исключение GoogleJsonResponseException: не удалось вызвать API для directory.users.insert с ошибкой: Неверный ввод: custom_schema (строка 272, файл «nyeMedlemmer»)
Я пытался вставить if-оператор в код, но это было невозможно. Есть ли способ, которым я могу указать скрипту просто игнорировать эти ошибки?
Мой код (после установки переменных):
var user = {
primaryEmail: epost,
name: {
givenName: fmnavn,
familyName: etternavn
},
addresses: [
{
type: "home",
formatted: adr
},
{
type: "other",
formatted: adr2
},
{
type: "home",
postalCode: postnr
}
],
phones: [
{
value: mobil,
type: "home"
}
],
emails: [
{
address: epostPriv,
type: "home"
}
],
recoveryEmail: epost1,
locations: [
{
floorName: grad,
type: "desk",
area: "desk"
}
],
gender: {
type: kjonn
},
orgUnitPath: "/Speidere/Stifinnere/" tropp,
customSchemas: {
Personlig_informasjon: {
skole: skolen,
hensyn: hensynet,
bursdag: dato
},
Innmeldingssvar: {
hjelpe_til: hjelpen,
teste: testen,
merknad: merknaden,
bilde: bildet,
samtykke: samtykket,
innmeldingsdato: innmeldingsdatoen
},
Foresatt: {
foresatt_navn: [
{
value: navn1
},
{
value: navn2,
},
{
value: navn3
},
{
value: navn4
}
],
foresatt_epost: [
{
value: epost1
},
{
value: epost2
},
{
value: epost3
},
{
value: epost4
}
],
foresatt_mob: [
{
value: mobil1
},
{
value: mobil2
},
{
value: mobil3
},
{
value: mobil4
}
]
},//foresatt
},//CustomSchemas
password: passord
}; //var user
user = AdminDirectory.Users.insert(user);
Ответ №1:
Иногда все, что мне нужно, это немного оторваться от кода… Меня внезапно осенило, что я мог бы сделать if ранее в коде:
var epostForesatt = "{value:" epost1 "}";
if (epost2 != '') {
var epostForesatt = epostForesatt ",{value:" epost2 "}";
}
if (epost3 != '') {
var epostForesatt = epostForesatt ",{value:" epost3 "}";
}
if (epost4 != '') {
var epostForesatt = epostForesatt ",{value:" epost4 "}";
}
А затем, позже, в «var user customSchemas» я редактирую код, чтобы использовать эту переменную.
Foresatt: {
foresatt_navn: [
{
value: navn1
},
{
value: navn2,
},
{
value: navn3
},
{
value: navn4
}
],
foresatt_epost: [epostForesatt],