Advertisement
airton-junior

SOSL II

Mar 23rd, 2023 (edited)
670
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.66 KB | None | 0 0
  1. string getType(SObject obj) {
  2.     if(obj==null) return '';
  3.     return obj.getSObjectType().getDescribe().getName()+'';
  4. }
  5.  
  6.  
  7. List<List<SObject>> contas = [FIND 'United' IN Name Fields RETURNING Account(Name, Phone), Opportunity(Name)];
  8. // System.debug(contas);
  9. // System.debug('Minha listona tem '+contas.size()+' listas dentro dela');
  10. Integer contadorDeListas = 0;
  11. List<Account> soContas = new List<Account>();
  12. List<Opportunity> soOportunidades = new List<Opportunity>();
  13. for(List<Sobject> listas:contas){
  14.   // System.debug('Minha listinha possui '+listas.size()+' objetos dentro dela');
  15.   // System.debug('Minha listinha '+contadorDeListas+' é essa: '+contas[contadorDeListas]);
  16.   Integer contadorDeObjetos = 0;
  17.   for(Sobject so:listas){
  18.     if(getType(so) == 'Account'){
  19.       soContas.add((Account)so);
  20.     }else if(getType(so) == 'Opportunity'){
  21.       soOportunidades.add((Opportunity)so);
  22.     }else{
  23.  
  24.     }
  25.     // System.debug('Este é o objeto '+contadorDeObjetos+' da minha lista de objetos '+contadorDeListas+': '+so);
  26.  
  27.    // Map<String, Object> objEmMap = so.getPopulatedFieldsAsMap();
  28.  
  29.     contadorDeObjetos++;
  30.   }
  31.   contadorDeListas++;
  32. }
  33.  
  34. for(Account a:soContas){
  35.   System.debug(a.Name);
  36.   System.debug(a.Phone);
  37. }
  38. for(Opportunity o:soOportunidades){
  39.   System.debug(o.Name);
  40.  
  41. }
  42. //********************************************************************/
  43. //Exemplo do método getPopulatedFieldsAsMap()
  44.  
  45. Account a = new Account();
  46. a.name = 'TestMapAccount2';
  47. a.phone = '123-4567';
  48. a.AccountNumber = '12345678';
  49. insert a;
  50. System.debug('a: '+a);
  51. Map<String, Object> fieldsToValue = a.getPopulatedFieldsAsMap();
  52. System.debug(fieldsToValue);
  53. for (String fieldName : fieldsToValue.keySet()) {
  54.     System.debug('field name is ' + fieldName + ', value is ' +
  55.         fieldsToValue.get(fieldName));
  56. }
  57. //************************************************************************************/
  58. string getType(SObject obj) {
  59.     if(obj==null) return '';
  60.     return obj.getSObjectType().getDescribe().getName()+'';
  61. }
  62.  
  63. List<List<sObject>> burs = [FIND 'oil' RETURNING Account(Name, Phone), Contact(Firstname),
  64. Opportunity(Name, Amount WHERE Amount > 500000)];
  65.  
  66. System.debug(burs[2]);
  67.  
  68. //***********************************************************************/
  69. List<List<sObject>> burs = [FIND 'oil' RETURNING Account(Name, Phone), Contact(Firstname),
  70. Opportunity(Name, Amount, CreatedDate ORDER BY Name)];
  71.  
  72. System.debug(burs[2]);
  73.  
  74. //sem o order by, retorna em ordem decrescente por createdDate.
  75. //com o order by name, porém sem o ASC, retorna em ordem ascendente por padrão
  76.  
  77.  
  78. //***********************************************************************/
  79. String palavra = 'Z*1';
  80. List<List<sObject>> burs = [FIND :palavra IN ALL fields RETURNING Account(Name, Phone), Contact(Firstname),
  81. Opportunity(Name, Amount, CreatedDate ORDER BY Name)];
  82.  
  83. System.debug(burs);
  84.  
  85. //EXERCÍCIO
  86. /*
  87. Construa uma classe com um método estático em que se informe como parâmetro uma palavra que
  88. deverá ser buscada nos objetos Account, Contact e Opportunity, buscada em todos os campos
  89. e que retorne de Account, o Name, de Contact, o firstname e de Opportunity, o nome da oportunidade.
  90. Deve ser utilizado o método apresentado no início desses códigos para se determinar o tipo da lista
  91. dinamicamente e criar um map, contendo todos os dados, porém, em que a chave do Map de todos os tipos de objetos, deverá ser como se segue: de Account, deverá ser a letra A seguida de um número auto incrementável, para dizer que significa uma conta, a letra C quando for um contato, e a letra O quando for uma Oportunidade, todos da mesma forma, com o número auto incrementável.
  92. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement