Hello All,
Using webservices, we can create object in 3DEXPERIENCE platform. Here, we will see how to create Mfg object using Python script
How we can use Python scripting for 3DEXPERIENCE object manipulation without using postman or any other tool.
To create object using web services we have to follow following steps:
- Get Login Ticket
- URL example : <3DSpace_url>/iam/login?action=get_auth_params
- CAS Authentication
- URL example <3DSpace_url>/iam/login
- Get CSRF Token
- URL example <3DSpace_url>/resources/v1/application/CSRF
- Create Mfg Object using inputs which we get in pt. 1, 2, 3
- We will get Create Mfg Item web service from developer assistance
- webservice URL : "<3DSpace_url>/3DSpace/resources/v1/modeler/dsmfg/dsmfg:MfgItem"
It requires input data in json format as given below
//--Headers
headers={
'SecurityContext':Security_Context,
'ENO_CSRF_TOKEN':csrf_value
}
//--Body of webservice
data={
"items": [
{
"attributes": {
"title": "MfgAssembly555",
"description": "CreatedByWebService",
"name": "MfgAss005test",
"type": "CreateAssembly"
}
}
]
}Python Script
In following snippet we will see whole python script of how we can create Mfg Item
From Python library, we are importing requests library here for HTTP requests to web server
# Import Libraries
import requests # making HTTP requests to web servers
import urllib3 # disable warnings
import urllib.parse # manipulate url
import json
urllib3.disable_warnings()
# Input Parameters
base_url = "https://vdemopro0000plp.extranet.3ds.com"
Security_Context = "VPLMProjectLeader.0000000001.SSI27_Usage"
s = requests.Session() # create session. The session stores the cookies.
s.verify = False # don't check the certificates from the services.
# Define URLs
Login_ticket = f"{base_url}/iam/login?action=get_auth_params"
Cas_URL = f"{base_url}/iam/login"
CSRF_URL = f"{base_url}:443/3DSpace/resources/v1/application/CSRF"
CreatMfgItemURL = f"{base_url}/3DSpace/resources/v1/modeler/dsmfg/dsmfg:MfgItem"
# STEP 1: Get Login Ticket
r = s.get(Login_ticket)
login_tkt = r.json()['lt']
print(login_tkt)
# STEP 2: Get CAS Authenticate
headers = {
'SecurityContext': Security_Context,
}
params = {'username': "ssi27", 'password': 'XXXXXXXXX', 'lt': login_tkt}
response = s.post(Cas_URL, headers=headers, data=params)
# STEP 3: Get CSRF Token
r = s.get(CSRF_URL, headers=headers)
print("step 5 =", r.status_code)
print(r.json()["csrf"])
csrf_value = r.json()["csrf"]["value"]
print(csrf_value)
# STEP 4: Create Manufacturing Item
headers = {
'SecurityContext': Security_Context,
'ENO_CSRF_TOKEN': csrf_value
}
data = {
"items": [
{
"attributes": {
"title": "MfgAssembly6",
"description": "CreatedByWebService",
"name": "MfgAss006test",
"type": "CreateAssembly"
}
}
]
}
res = s.post(CreatMfgItemURL, headers=headers, json=data)
print(res.content)