-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathpcd_add_option_to_optionset.py
More file actions
70 lines (57 loc) · 2.05 KB
/
pcd_add_option_to_optionset.py
File metadata and controls
70 lines (57 loc) · 2.05 KB
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
# pip install pandas # if needed
import pandas as pd
from utils.session_manager import SessionManager
from utils.dynamics_config import get_config
# Parameters
PathToDotEnv = "env.example"
PathToOptionSetCSV = "data\OptionsToAdd.csv"
ValueOfFirstAddedOption = 201300004
OptionSetLogicalName = "OPTION SET NAME"
LanguageCode = 1033
UniqueSolutionName = "SOLUTION NAME"
# Getting authenticated Requests object.
config = get_config(PathToDotEnv)
manager = SessionManager(config)
session = manager.get_authenticated_session()
# reading the CSV
df = pd.read_csv(PathToOptionSetCSV)
successful_updates = 0
expected_updates = len(df)
request_uri = f'{config.api_base_url}/InsertOptionValue'
print("Adding...")
for index, row in df.iterrows():
label = row["Label"]
color = row["Color"]
post_json = {
"OptionSetName": OptionSetLogicalName,
"Value": ValueOfFirstAddedOption,
"Color": color,
"Label": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": label,
"LanguageCode": LanguageCode,
"IsManaged": 'false'
}
],
"UserLocalizedLabel": {
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": label,
"LanguageCode": LanguageCode,
"IsManaged": 'false'
}
},
"SolutionUniqueName": UniqueSolutionName
}
r = session.post(request_uri, json = post_json)
if r.status_code != 200:
raw = r.content.decode('utf-8')
print(raw)
break
else:
print(label)
successful_updates += 1
ValueOfFirstAddedOption += 1
print(f'{successful_updates} UPDATES MADE OF {expected_updates} EXPECTED UPDATES')