IBM Connections: Criando funcoes para Mapeamento de Campos

From Wiki

É possível criar funções para Popular Campos no Profiles (PEOPLEDB), caso não existam no LDAP.

Para isso é necessário adicionar a função no arquivo profiles_functions.js e mapear esta função no arquivo map_dbrepos_from_source.properties.

Veja os exemplos abaixo.


Populando o Pais

No arquivo map_dbrepos_from_source.properties

#countryCode=c
countryCode={function_X_countryCode}

Salve e feche o arquivo

No arquivo profiles_functions.js e adicione

function function_X_countryCode(fieldname) {
       var result = work.getString("c");
       if(result == null) {
          result = "br";
       }
       if(result == "") {
          result = "br";
       }
       return result;
}

Salve e feche o arquivo


Populando o Fuso Horário

No arquivo map_dbrepos_from_source.properties

#timezone=null
timezone={function_X_timeZone}

Salve e feche o arquivo

No arquivo profiles_functions.js e adicione

function function_X_timeZone(fieldname) {
       var result = "America/Sao_Paulo";
       return result;
}

Salve e feche o arquivo


Populando o Idioma

No arquivo map_dbrepos_from_source.properties

#preferredLanguage=preferredlanguage
preferredLanguage={function_X_preferedLanguage}

Salve e feche o arquivo

No arquivo profiles_functions.js e adicione

function function_X_preferedLanguage(fieldname) {
       var result = work.getString("preferedlanguage");
       if(result == null) {
               result = "pt_BR"
       }
       return result;
}


Salve e feche o arquivo


Populando um campo a partir de 2 ou mais atributos

No arquivo map_dbrepos_from_source.properties

title={function_X_map_title}

Salve e feche o arquivo

No arquivo profiles_functions.js e adicione

function function_X_map_title(fieldname) {
       var result = work.getString("employeeNumber");
       var result2 = work.getString("employeeTitle");
       if(result != null) {
               result2 = result + "-" + result2;
       }
       return result2;
}

Salve e feche o arquivo

Calculando o Último Nome, caso não exista

No arquivo map_dbrepos_from_source.properties

surname={func_X_compute_sn}

Salve e feche o arquivo

No arquivo profiles_functions.js e adicione

function func_X_compute_sn(fieldname) {

task.logmsg("INFO", "-------------- ENTROU NO FUNC_X_COMPUTE_SN -----------------");
var snAttr = work.getString("sn");

tokenizer = new java.util.StringTokenizer (snAttr, " ");
work.setAttribute ("values", null);

i=0;
newSn ="";
while (tokenizer.hasMoreTokens ()) {
       token = tokenizer.nextToken ();
       if (i>0) {
               antSn = newSn;
               newSn = token ;
               if (token.equals("Junior")) {
                       newSn = antSn;
               }
               if (token.equals("Filho")) {
                       newSn = antSn;
               }
               if (token.equals("Neto")) {
                       newSn = antSn;
               }
       }
       i++;
}

result = newSn;
task.logmsg("INFO", "RESULT: ---> "+result);
task.logmsg("INFO", "-------------- SAIU NO FUNC_X_COMPUTE_SN -----------------");

       return result;
}


Salve e feche o arquivo


Calculando o SurNames

No arquivo map_dbrepos_from_source.properties

surnames={func_X_compute_surnames_2}

Salve e feche o arquivo

No arquivo profiles_functions.js e adicione


function func_X_compute_surnames_2(fieldname) {
task.logmsg("INFO", "-------------- ENTROU NO FUNC_X_COMPUTE_SURNAMES_2 -----------------");
var fullName = work.getString("sn");

var pos = fullName.indexOf(" ");
if (pos > 0) {
       result = fullName.substring(pos+1);
} else {
   result = fullName;
}

task.logmsg("INFO", "result: ---> "+result);
task.logmsg("INFO", "-------------- SAIU NO FUNC_X_COMPUTE_SURNAMES_2 -----------------");
 return result;
}


Salve e feche o arquivo


Ver também