سلام ، روز بخیر
import requests
from zeep import Client
from datetime import datetime
REST_API_URL = "http://192.168.40.18/api/v1/report/datasource/PowerBI/24cbdfb1-9ce4-4706-8863-f6cea34604ce"
SOAP_FORM = "http://192.168.40.18/services/api/iform.svc?wsdl"
SOAP_opportunity = "http://192.168.40.18/services/api/iopportunity.svc?wsdl"
username = "Admin"
password = "@dmin14592"
def run_daily_task():
log("Starting daily task...")
try:
# Step 1: Call the REST API
response = requests.get(REST_API_URL, auth=(username, password))
response.raise_for_status()
items = response.json() # Expecting list of {"key": "...", "data": {...}}
# Step 2: Prepare SOAP client
soap_client_opportunity = Client(wsdl=SOAP_opportunity)
soap_client_form = Client(wsdl=SOAP_FORM)
today = datetime.now()
# Step 3: Call SOAP service for each item
for item in items["Result"]:
BPMS = item.get("BPMS")
IdentityId = item.get("IdentityId")
Subject = item.get("Subject")
try:
if "salesopportunity" in BPMS:
payload = {
"userName": username,
"password": password,
"opportunityInfo": {
"CrmObjectTypeCode": str(BPMS),
"IdentityId": str(IdentityId),
"Subject": str(Subject),
"OpportunitySourceType": "تغییر وضعیت عضو",
"OpportunityType": "استاندارد",
"CreatDate": today,
"ModifyDate": today
}
}
result = soap_client_opportunity.service.SaveOpportunity(payload)
log(f"SOAP call successful for {BPMS}: {result}")
else:
payload = {
"userName": username,
"password": password,
"formInfo": {
"CrmObjectTypeCode": str(BPMS),
"IdentityId": str(IdentityId),
"Subject": str(Subject)
}
}
result = soap_client_form.service.SaveForm(**payload)
log(f"SOAP call successful for {BPMS}: {result}")
except Exception as soap_err:
log(f"SOAP call failed for {BPMS}: {soap_err}")
except Exception as err:
log(f"Error during task: {err}")
def log(message):
with open("daily_task_log.txt", "a") as f:
f.write(f"[{datetime.now()}] {message}\n")
run_daily_task()
کد فوق به منظور ایجاد فرو و فرصت فروش می باشد .برای ایجاد فرم مشکلی وجود ندارد اما برای ایجاد فرصت با ارور مواجه هستیم
@mahdi_nasiri
با سلام و احترام
لطفا اروری که در ایجاد فرصت مواجه شدید را ارسال نمایید .
Message : type code salesopportunity_burned was not found
@mahdi_nasiri
با سلام و احترام لطفا در نرم افزار crm تان چک کنید فرصتی با کد "salesopportunity_burned" موجود باشد.
ارور نشان میدهد که فرصتی با این کد موجود نمیباشد.بنابراین امکان سیو هم فراهم نیست.
بله ارور این موضوع را نشان می دهد ، ولی این فرصت با این کد وجود دارد.
@mahdi_nasiri
با سلام و احترام
ارور نشون میدهد که مقدار BPMS که به عنوان CrmObjectTypeCode استفاده میکنید، در سیستم CRM تعریف نشده است.
در نرم افزار در شخصی سازی crm باید برای یک تایپ فرصت به عنوان کد "salesopportunity_burned" وجود داشته باشد.
اگر میفرمایید این کد موجود میباشد با توجه به اینکه متد save وب سرویس opportunity با ابزار wcf تست شده و مشکلی ندارد بنابراین سمت کدتان را باید بررسی نمایید.
ممکن است شرط if "salesopportunity" in BPMS ایجاد مشکل کرده باشد به جای آن از
if BPMS.startswith("salesopportunity") هم میتوانیداستفاده نمایید.