Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.31 KB | None | 0 0
  1. package app;
  2.  
  3. import java.io.FileWriter;
  4. import java.nio.file.Path;
  5. import java.nio.file.Paths;
  6. import java.text.SimpleDateFormat;
  7. import java.util.ArrayList;
  8. import java.util.List;
  9. import org.apache.commons.csv.CSVFormat;
  10. import org.apache.commons.csv.CSVPrinter;
  11. import org.apache.commons.csv.QuoteMode;
  12.  
  13. import com.sforce.soap.enterprise.Connector;
  14. import com.sforce.soap.enterprise.EnterpriseConnection;
  15. import com.sforce.soap.enterprise.QueryResult;
  16. import com.sforce.soap.enterprise.sobject.LoginEvent;
  17. import com.sforce.soap.enterprise.sobject.SObject;
  18. import com.sforce.ws.ConnectionException;
  19. import com.sforce.ws.ConnectorConfig;
  20.  
  21. public class LoginEventApp {
  22.  
  23. static final String USERNAME = "hoge@hoge.com";
  24. static final String PASSWORD = "password";
  25. static EnterpriseConnection connection;
  26. static final String SOQL =
  27. "SELECT "
  28. + "AdditionalInfo, "
  29. + "ApiType, "
  30. + "ApiVersion, "
  31. + "Application, "
  32. + "AuthServiceId, "
  33. + "Browser, "
  34. + "ClientVersion, "
  35. + "EventDate, "
  36. + "LoginGeoId, "
  37. + "LoginHistoryId, "
  38. + "LoginType, "
  39. + "LoginUrl, "
  40. + "Platform, "
  41. + "SourceIp, "
  42. + "Status, "
  43. + "UserId, "
  44. + "Username "
  45. + "FROM "
  46. + "LoginEvent";
  47.  
  48. public static void main(String[] args) {
  49. ConnectorConfig config = new ConnectorConfig();
  50. config.setUsername(USERNAME);
  51. config.setPassword(PASSWORD);
  52. try{
  53. connection = Connector.newConnection(config);
  54. List<LoginEvent> loginEvents = queryLoginEvent();
  55. printCsv(loginEvents);
  56. }catch(ConnectionException e){
  57. e.printStackTrace();
  58. }
  59. }
  60.  
  61. private static List<LoginEvent> queryLoginEvent() {
  62. List<LoginEvent> loginEvents = new ArrayList<LoginEvent>();
  63. try {
  64. Boolean done = false;
  65. QueryResult qr = connection.query(SOQL);
  66. if(qr.getSize() > 0){
  67. while(!done){
  68. for(SObject sobj : qr.getRecords()){
  69. loginEvents.add((LoginEvent)sobj);
  70. }
  71. if(qr.isDone()){
  72. done = true;
  73. }else{
  74. qr = connection.queryMore(qr.getQueryLocator());
  75. }
  76. }
  77. }
  78. } catch (ConnectionException e) {
  79. e.printStackTrace();
  80. }
  81. return loginEvents;
  82. }
  83.  
  84. private static void printCsv(List<LoginEvent> loginEvents){
  85. CSVFormat format = CSVFormat.RFC4180.withDelimiter(',').withQuoteMode(QuoteMode.ALL);
  86. CSVPrinter printer = null;
  87. try{
  88. Path path = Paths.get("test.csv");
  89. printer = new CSVPrinter(new FileWriter(path.toString()), format);
  90. for(LoginEvent le: loginEvents){
  91. printer.print(le.getAdditionalInfo());
  92. printer.print(le.getApiType());
  93. printer.print(le.getApiVersion());
  94. printer.print(le.getApplication());
  95. printer.print(le.getAuthServiceId());
  96. printer.print(le.getBrowser());
  97. printer.print(le.getClientVersion());
  98. printer.print(new SimpleDateFormat("yyyy/MM/dd HH:mm:dd.ss").format(le.getEventDate().getTime()));
  99. printer.print(le.getLoginGeoId());
  100. printer.print(le.getLoginHistoryId());
  101. printer.print(le.getLoginType());
  102. printer.print(le.getLoginUrl());
  103. printer.print(le.getSourceIp());
  104. printer.print(le.getPlatform());
  105. printer.print(le.getStatus());
  106. printer.print(le.getUser());
  107. printer.print(le.getUsername());
  108. printer.println();
  109. }
  110. printer.flush();
  111. }catch(Exception e){
  112. e.printStackTrace();
  113. }finally {
  114. if(printer != null){
  115. try{
  116. printer.close();
  117. }catch(Exception e){
  118. e.printStackTrace();
  119. }
  120. }
  121. }
  122. }
  123.  
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement