-
Notifications
You must be signed in to change notification settings - Fork 0
/
tasks.robot
209 lines (105 loc) · 5.18 KB
/
tasks.robot
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
*** Settings ***
Documentation Salesforce API examples.
... Prerequisites: See README.md
Resource resources/CommonEnvironment.robot
#Resource C:/Users/upiscopo/AppData/Local/Programs/Python310/Lib/site-packa
# ges/cumulusci/robotframework/Salesforce.robot
library SeleniumLibrary timeout=20
library OperatingSystem
Library Collections
Library RPA.Robocorp.Vault
Library RPA.Salesforce
Library String
Library RPA.Tables
Library RPA.Browser.Selenium
Library RPA.Word.Application
Suite Setup Authenticate
Task Setup Generate random name
*** Variables ***
${ACCOUNT_TEST} 001B000001SbJzNIAV
${URL} https://ssss6-dev-ed.develop.lightning.force.com/lightning/page/home
${search_NameFieldAccount} //*[@name="Name"]
*** Tasks ***
Change account details in Salesforcepy
# &{account}= Get Salesforce Object By Id Account ${ACCOUNT_TEST}
# &{update_obj}= Create Dictionary Name=Nokia Ltd BillingStreet=Nokia bulevard 1
# ${result}= Update Salesforce Object Account ${ACCOUNT_TEST} ${update_obj}
Create a new Salesforce object (Opportunity)
# Salesforce -> Setup -> Object Manager -> Opportunity -> Fields & Relationships.
# Pass in data as a dictionary of object field names.
${account}=
... Salesforce Query Result As Table
... SELECT Id FROM Account WHERE Name = 'Accord Lemo Auto Supplier'
${object_data}=
... Create Dictionary
... AccountId=${account}[0][0]
... CloseDate=2022-02-22
... Name=${RANDOM_NAME}
... StageName=Closed Won
${object}= Create Salesforce Object Opportunity ${object_data}
${opportunity}= Get Salesforce Object By Id Opportunity ${object}[id]
Log Dictionary ${opportunity}
Create a new Salesforce object (Account)
# Salesforce -> Setup -> Object Manager -> Account -> Fields & Relationships.
# Pass in data as a dictionary of object field names.//div[@class="slds-form-element__control slds-grow"]....umberto32//*[@id="input-189"]
${object_data}=
... Create Dictionary
... Name=${RANDOM_NAME}
${object}= Create Salesforce Object Account ${object_data}
${account}= Get Salesforce Object By Id Account ${object}[id]
Log Dictionary ${account}
Create_Account
Open Chrome Browser ${URL}
RPA.Browser.Selenium.Wait Until Element Is Visible xpath://input[@id='username'] RPA.Browser.Selenium.Wait Until Element Is Visible xpath://input[@id='password']
RPA.Browser.Selenium.Click Element xpath://input[@id='username']
RPA.Browser.Selenium.input text //*[@id="username"] pdev@sf.com
RPA.Browser.Selenium.Click Element xpath://input[@id='password']
RPA.Browser.Selenium.input text id:password umberto32
RPA.Browser.Selenium.Click Element xpath://input[@id='Login']
sleep 5s
RPA.Browser.Selenium.Wait Until Element Is Visible //one-app-nav-bar-item-root[@data-id="Account"]
RPA.Browser.Selenium.Click Element //one-app-nav-bar-item-root[@data-id="Account"]
sleep 3s
RPA.Browser.Selenium.Click Element //*[@id="brandBand_1"]/div/div/div/div/div[1]/div[1]/div[2]/ul/li[1]/a/div
sleep 3s
RPA.Browser.Selenium.Wait Until Element Is Visible ${search_NameFieldAccount}
Sleep 1s
RPA.Browser.Selenium.Input Text ${search_NameFieldAccount} ${RANDOM_NAME}
Sleep 1s
RPA.Browser.Selenium.Click Element //button[@name='SaveEdit']
sleep 8s
RPA.Browser.Selenium.Click Element //span[@class="uiImage"]
Sleep 3s
RPA.Browser.Selenium.Wait Until Element Is Visible //a[@class="profile-link-label logout uiOutputURL"]
RPA.Browser.Selenium.Click Element //a[@class="profile-link-label logout uiOutputURL"]
RPA.Browser.Selenium.Close Browser
Query objects using Salesforce Object Query Language (SOQL)
# Salesforce -> Documentation -> Example SELECT Clauses.
# Salesforce -> Setup -> Object Manager -> <Type> -> Fields & Relationships.
${opportunity}=
... Salesforce Query Result As Table
... SELECT AccountId, Amount, CloseDate, Description, Name FROM Opportunity
${list}= Export Table ${opportunity}
Log List ${list}
Describe a Salesforce object by type
${description}= Describe Salesforce Object Opportunity
Log Dictionary ${description}
Describe all picklist values for a Salesforce object field
${description}= Describe Salesforce Object Opportunity
FOR ${field} IN @{description}[fields]
IF "${field}[name]" == "StageName"
Log List ${field}[picklistValues] END
END
Get the metadata for a Salesforce object
${metadata}= Get Salesforce Object Metadata Opportunity
Log Dictionary ${metadata}
*** Keywords ***
Authenticate
${secret}= Get Secret salesforce
Auth With Token
... ${secret}[username]
... ${secret}[password]
... ${secret}[token]
Generate random name
${random_string}= Generate Random String
Set Suite Variable ${RANDOM_NAME} Random name ${random_string}