2017-12-15 16 views
-1

Google 스프레드 시트에서 사용자의 이메일 주소를받는 앱에서 작업합니다.Google App Maker - 다른 데이터 소스의 이메일을 기반으로 한 디렉토리 정보

해당 이메일 주소를 사용하여 전체 이름 및 섬네일 사진을 디렉토리에서 볼 수 있습니다.

Screenshot of the UI - 이메일 & 이름은 내가 모든 사용자에 대해이 내가 Directory에서 첫 번째 사진을 얻을에 연결하려고 할 때, 지금까지

사용자 데이터

를 보호하기 위해 숨겨져.

디렉토리가 새로운 관계를 추가하는 것을 지원하지 않으므로 두 아이디어가 어떻게 연결될 수 있는지 아이디어가 있습니까?

+2

코드와 예제를 더 자세히 설명하는 데 적합한 데이터를 제공해주십시오. – LordWilmore

+0

필자는 데이터 바인딩만을 사용하여 작성하려고 했으므로 작성한 코드가 없습니다. 두 개의 데이터 소스 - MyDataSource & Directory가 있습니다. MyDataSource에서 전자 메일, 관리자를 Accordion에 가져 왔으며 각 레코드에 해당하는 Full Name 및 Thumbnail을 Directory에서 가져 오려고합니다. 불행히도 그것은 아무것도 가져 오지 않거나 디렉토리의 첫 번째 항목을 가져오고 각각의 사진과 이름이 아닌 다음 레코드 각각에 대해 동일한 항목을 표시합니다. –

답변

1
  1. 새로운 계산 모델
  2. 에서 만들기 데이터 소스 탭의 서버 스크립트에 아래 코드를 추가하십시오.
  3. 모델 이름과 입력란 이름이 일치하도록하십시오!

.

//Get the Spreadsheet Data 
var spreadsheetData = app.models.MySpreadsheetSource.newQuery().run(); 
var combinedData = []; // Place to store output for calculated model 
spreadsheetData.forEach(function(record){ //iterate the ss data 
    var query = app.models.Directory.newQuery(); //start a query for directory 
    query.filters.PrimaryEmail._equals = record.email; //set the query for the email 
    var dirRecord = query.run()[0]; //get the one record 

    //make a new record for the calculated model 
    var newRecord = app.models.Directory_Spreadsheet.newRecord(); 
    //add the data from both SS and Directory models 
    newRecord.Email = record.email; //from ss 
    newRecord.address = record.address; 
    newRecord.Full_Name = dirRecord.FullName; //from Directory 
    newRecord.Thumbnail = dirRecord.ThumbnailPhotoUrl; 
    //Add More Fields 

    combinedData.push(newRecord); //add to output 
}); 
return combinedData; //return the combine object 

아코디언에서이 데이터 소스를 사용하여 결합 된 데이터를 표시 할 수 있습니다.

+0

이것은 제임스 덕분에 너무 많이 일했습니다! 플립 사이드에서는 데이터를로드하는 데 약 30 ~ 45 초가 소요되지만 새 데이터 소스에 대한 모든 바인딩을 업데이트하더라도 더 이상 작동하지 않습니다. 그럼에도 불구하고 나는 놀아서 기능을 결합하기 위해 할 수있는 것을 살펴볼 것이다.다시 한 번 감사드립니다. –

0

하나의 레코드 만 표시하는 경우 스프레드 시트에서 전자 메일을받은 다음 이와 같은 작업을 수행 할 수 있습니다.

표시 할 필드에 텍스트 필드 본드가있는 디렉토리 및 레이블 위젯으로 설정된 데이터 소스가있는 페이지 또는 패널. 당신은 당신이 클라이언트 측에 반환하는 가정, 스프레드 시트에서 이메일을 후에

enter image description here enter image description here

, 사용 :

app.datasources.Directory.query.filters.PrimaryEmail._equals = emailFromSpreadsheet; 
app.datasources.Directory.load(); 
+0

Thanks James. 나는 사람 목록에 대한 아코디언을 가지고 있으며 아코디언의 모든 세부 사항은 스프레드 시트 데이터에서 가져온 것입니다. 디렉토리에서 가져 오려고하는 유일한 항목은 미리보기 이미지 및 전체 이름 - 스프레드 시트 데이터에 포함되지 않은 항목입니다. 저는 여전히 코딩의 초보자입니다. 위에서 제시 한 코드 스 니펫을 정확히 어디에 추가합니까? 이메일 추출 스프레드 시트 필드를 찾으려면 다음과 같이 다시 작성하십시오. app.datasources.Directory.query.filters.PrimaryEmail._equals = app.datasources.MySpreadsheetSource.item.Email_Address 그런 다음 위와 같이 directory.load를 입력하십시오. –

+0

계산 된 모델을 만들고 데이터 소스 탭은 아래 코드를 서버 스크립트에 추가합니다. 코멘트가 너무 길기 때문에 다른 답변을보십시오. –